Learning to Code - Choosing a Language
Based on all the feedback I’ve been getting from interviewing all the Developer Mentor Program, the first problem that comes up when someone decides they want to learn to code is often “Where do I begin?” This should help all the #learntocode2012 people narrow down what you want to learn.
Backend vs Frontend
Web programming is divided up into two sides (you may have heard these terms before); front end and back end. The frontend includes everything the user sees and interacts with. The backend provides all of the functionality, storage, and business logic for the application/website. If you really want to be able to build things from scratch by yourself you’ll need to learn both sides. That may sound daunting, so my advice is to start small and break it into manageable chunks.
Choosing a language
Now that we know generally what the frontend and backend are we can start deciding what language(s) to start learning.
When I read the Backend vs Frontend paragraph I thought…
1) “Frontend! I want to be able to make things pretty and useable”
2) “Backend! I want to create awesome features to solve problems”
3) “Dammit I want to learn both now get on with it!”
If you answered (1) or (3)…
Frontend languages for modern websites and web applications:
you probably took an introductory course to html at some point in your life. If not, right click on this webpage and select “view source.” That’s html and it’s what gives a webpage something to look at.
this makes said webpages pretty. It styles all of the elements on the page and determines the look and feel (sexiness)
This is what drives those subtle interactions you probably never realized. It’s what allows you to make things feel “snappy” and “fast” and prevent lots of page loads. It can do a ton of other things, but the reason it’s cool is that it’s baked into all browsers.
If you answered (2) or (3)…
Backend languages for modern websites and web applications:
It’s no secret, I love me some Python. It was my first scripting language and I find it to legible, expressive, and relatively easy to grasp. It has an incredible community and a well developed web framework called Django.
Who uses python?
Ruby has become the backend language of choice for a large amount of the web applications you see out there today. People who want to build web application fast and furious (many startups) use the Rails (you may have heard of RoR or Ruby on Rails) web framework. It does a lot of magic behind the scenes so you spend less time configuring and more time building.
Who uses Ruby on Rails?
- Every startup on the east coast ;-) (no but seriously though, there is a huge demand for ruby developers in the startup community)
PHP has been around for awhile. That’s about all I’m qualified to say about it. It’s a proven backend that has been used many times over, but recently I’ve noticed that it has fallen out of favor in the startup community (which is largely python, ruby).
Who uses PHP?
- Facebook (you may have heard of them)
Who uses Node?
- The good folks at Shelby.tv
- There’s definitely others, feel free to leave me a comment about it
Which one should I go with?
If you want my advice (and you should), go with the one that the people around you are using. If you have some buddies that know Python, go with Python. I already pointed out the languages I would recommend (notice they are all open source, scalable, community-driven, and awesome), but having access to a community of local developers is really important. Why did I learn python? Because my brother and Jordan know python. Simple as that. Just make sure you pick from the ones I recommend above.
* Please no fanboy comments about which language you think is better. That’s cool bro, go code in that.
One More Thing
Stop worrying about which language to learn and just pick one. Using my nifty guide from this post, whichever language you pick, you can’t go wrong. You can build amazing things in any language. It’s the craftsman, not the tools.