Which programming language to learn first.
This is the advice I wish I had been given when first starting out. I asked everywhere and couldn’t get a straight answer to the simple question
It’s based on two crucial factors –
- Amount of cool stuff you can do with the language (for those looking to startup).
- Number of job/freelance opportunities and security (in case that doesn’t work out).
If you just want the ordered list of languages in the order I recommend, with timescales, that’s at the bottom under Final Words.
With that said, Let’s get started…
Java – Learn this first. It’s easier than C and a great introduction to object orientated programming (thats OOP – where you have a different file for each thing and things “inherit” traits from other files). Java is easy to learn and get started with and works on pretty much every computer ever created. You’ll need an IDE (integrated development environment) like Eclipse to get started. This is like Microsoft Word is to writing. Eclipse will be the program you open when you want to program some Java.
c++ – The big one as it’s heavily supported by Microsofts Visual range. It’s very difficult to learn for beginners, but if you can “get” it the rest are easy. If you learn this you’ll have a fair bit of job security as it’s always in demand along with Java above due to significant commercial interest.
Cocoa – The programming language for any Apple mac device. Learn this last unless you want to specifically make iphone/mac/ipad apps as it currently has the smallest market share. Uses OOP too, like the others above.
Server Side Programming
These are the language elements the server processes when a user visits your website, as opposed to client side programming which is more often processed by the users browser.
PHP – It’s everywhere and it works. It’s very easy to code in and build something useful and it’s been around for over 10 years. Just learn it. It’s much easier than it looks and the syntax flows well. Because of its veteran status their exist an incredible number of resources to support you when learning; from video tutorials to websites handling nothing but PHP code snippets.
MYSQL – Goes hand in hand with PHP and consists of 4 basic statements known as SIDU (SELECT, INSERT, DELETE, UPDATE). Build the database using PHPmyAdmin and you’re set. Feel free to hit up stackoverflow if you have any further questions on the deeper stuff like joins and embedded conditionals.
LINUX – Learning the command line and linux is fairly easy or incredibly difficult depending on how deep into the rabbit hole you want to go. There are about 8 core command line keys to move through folder structures and such that you’ll need no matter what (like cd.. to move up a folder). Later, when you leave your shared hosting provider because they kicked your account for using too much bandwidth and get a VPS, you’ll need to learn Linux properly. Until then, heed this advice: KEEP YOUR DOMAIN NAME SEPARATE FROM YOUR HOSTING PROVIDER. Should things go wrong, it’s very common for your domain name to be held ransom until you pay $1000’s in fees.
I use these guys for my domains.
VERY IMPORTANT NOTE: Don’t be swayed by the latest and greatest glittering turd (ruby, python, node this or that). Stick to the established languages for now. They are proven, robust and in demand. WordPress and every serious business uses them so they obviously must be good.
Client Side Programming
This is the programming code you send to your users computer to process when they visit your website.
HTML – Easy as pie and a no brainer. Should take a few hours at most, but be careful of dated information, particularly regarding layout, which is now mostly done using CSS. To maximize learning speed avoid using Youtube videos. Open Wordpad and get some tutorials online. TIP: Type the code out by hand, never copy/paste as you’ll learn nothing that way. Rely on muscle memory.
CSS – The syntax is unusual at first, but it’s easy to understand once you get it. Thing name, open curly bracket, its properties, close curly bracket, repeat. Since it’s a visual programming language, learn by doing rather than reading. You give things a name in your HTML by using div or span, then you use that name in your CSS. Easy to learn once you have HTML down.
Other Sources of Programming Advice
Stackoverflow – You may ask anything here. Don’t worry about sounding like an idiot as it was made just for you. Type whatever comes to mind as there’s no stupid questions, only stupid answers, which get removed anyway.
Program language homepages – php.net, jquery.com and mysql.com are amazing resources. Read them often as they are your number one source for new information and kept up to date with the latest developments.
Youtube – PHP academy is the best (British accent too, so you’ll feel classy). He makes a lot of mistakes so you can get a feel of what real programming is like. NewBoston is okay, but is intentionally dumbed down waaaay too much as he tries to spread his videos out into sets of 40 and make more cash. Remember, you’ll learn programming quickest by making code and fixing it when it breaks. So watching a video alone is not enough, always be coding at the same time as watching. Otherwise you’ll get to the end of a 40 set of videos and think you’re a pro until you actually sit down and try it a few days later. Then you’ll realize you’ve wasted 5 hours watching that idiots videos. Stick to PHPAcademy.
In order then, assuming you are going for the full set, I say learn the programming languages in the following order:
- HTML (1 day)
- CSS (1 day)
- PHP (1 week)
- MYSQL (with PHP)
- JQUERY (1 week)
- JAVA (1 month)
- C++ (1.5 lifetimes)
- Cocoa – Maybe if you need it.
That should take a few months to get average in all, then you can take it from there and be a real pro.
Only practice can make you perfect.
Especially so in programming.
Good luck! and leave a comment.
Your timescale is much too short. I would argue 6 months at least for that list, assuming you are content with average proficiency and starting as a beginner. It’s a good article and certainly nice to have something I can link to for any newbs who show up :).
Great common sense here. Wish Id thought of it!.
C++ is not a microsoft product.
It is marketed heavily as a Windows product, hence equivalent to being a microsoft product. In the same way Cocoa is an Apple product.
I see Stephen already made my point: Since when C++ is a Microsoft product? You’re thinking about C#, I guess.
If you don’t learn JS first, Jquery will make very little sense. And no, it is not really that close to Java. As for “WordPress and the others using the old languages”, seriously? I don’t know exactly about WordPress, but Python and Ruby are really big out there.
HTML and MYSQL are considered programming languages in the real world irrespective of what Wikipedia may tell you. The specific nomenclature you have used, although correct of course from a technical standpoint, would confuse the beginner for whom this article is intended and hence was intentionally avoided.
Unfortunately, Python and Ruby are not great for the job market, which was a significant factor (mentioned at the start) and most of the tasks can be acomplished using plain old php if you’re making a webapp/site.
Since C etc. Are predominantly supported by Microsoft (through its Visual range) I put it as a Microsoft product. I would say this contributed significantly to its interest from industry, and its resulting success. However, I concede defeat on this point and have updated the post. Thank you.
Pingback: Which Programming Language Should I Learn? | NERDr.com « Siam Source Code – สยามซอร์สโค้ด
Pingback: Which Programming Language Should I Learn? | NERDr.com | Guide 2 Serv Online
Pingback: Which Programming Language Should I Learn? | NERDr.com | Neorack Tutorials
Nice topic – respect !.
Your article seems to have some common misconceptions, are you aware of this?.
While is may take some shortcuts for simplicity (the article is intended for beginner programmers after all and I wanted to keep it short)
I think it is useful for those looking for an initial push and guidance on which particular direction to take. This article is more than sufficient for this purpose, covering all the leading programming languages currently in use in the market.
Bookmarked, I enjoy your site! :).
Thanks for informative post. I am pleased sure this post has helped me save many hours of browsing other similar posts just to find what I was looking for. Just I want to say: Thank you!.
This is my first time I have visited here. I found a lot of interesting stuff in your blog. From the tons of comments on your articles, I guess I am not the only one! Keep up the impressive work.
Straight to the point and well written, thank you for the information.
“Don’t be swayed by the latest and greatest glittering turd (ruby, python, node this or that).”
This is very tru! PHP is the best language there is, and the only one in the web that actually works. Everything else is just fad. PHP is being used by most web companies, and that only means that it’s the bes choice. These companies are smart enough to choose php, so why choose somthing else? Well said nerdR!.
Thank you herokletus. I was close to starting my web programming journey with Python/Ruby but luckily came across a PHP tutorial on Youtube which swayed me. Now I know the PHP/MYSQL combo. I can do pretty much every web task with it, it’s really very very easy to learn and it’s been around for 10 years now. I could get a job with it fairly easily anywhere in the world and so, in terms of lifetime value, it’s one of the best investments i’ve ever made.
Well, I do not know if that’s going to work for me, but definitely worked for you! Excellent post!.
OP, I know you had the best intentions and I respect you, but please listen. I’m a computer scientist. I put in my time in college, I worked at different companies. I’m active in local programming groups, meetups and open source projects. I’ve written in every language you can think of on every sort of mish mashed project you could imagine. I’ve spent some time teaching programming. With that out of the way:
For a beginner, LEARN PYTHON!!!
You can literally google “I want to do x in python” and there will be an easy tutorial for you to follow to get started.
I’d promote khan academy’s python course to get started.