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.