Flatiron School’s co-founder and dean Avi Flombaum hosted a Quora AMA recently, answering top FAQs on Learning to Code.
One of the most-read Q&As, coming in at 1.5 Million views, is:
Given that you’re asking me, I’m going to assume you’re an informed beginner–meaning you haven’t been writing code professionally and are just looking to pick up a new language, but you also are not in the situation where you’ve never tried it before- maybe you’ve messed around with some online tutorials and are thinking about taking it more seriously.
I know all that sounds a little hokey, but I truly see my biggest responsibility as an educator as inspiring students to fall in love with code. Hence the Flatiron School homepage (“Learn Love Code”) and the giant quote on the wall on campus:
Now that that’s out of the way, let’s look at some specific options.
Assuming you’re not necessarily interested in system programming (like building an operating system), you’ll first want to figure out if you’re interested in the Front-End or Back-End.
Regarding back-end languages, you have a few primary choices.
Java– I believe Java is the most common programming language in use today. It’s what the AP uses to teach Computer Science and is the lingua franca at most universities for those considering a CS degree. It’s also the core language needed for Android development. So, if you’re looking to get a Computer Science degree or build native android apps, you may want to start here.
Python– Python is what’s used at Google and is also being increasingly taught at universities. It’s true strength is in data, so if you’re looking to become a data scientist, you’ll likely need to learn python somewhere along the way. Aside from that, it’s got its own web framework (Django) which makes it a great option for building web applications.
Ruby– My bias will shine through here- I absolutely love Ruby. It was developed in the 90’s and exploded in popularity after the creation of rails, which allowed people to easily build apps for the web. Ruby is very similar to python in a lot of ways, but the small differences are what makes me love it (and make it such a great language for people starting out). First, ruby has a tremendously active and welcoming open source community. One of the core tenants of Ruby is MINSWAN, which means Matz (creator of Ruby) Is Nice So We Are Nice. Additionally, ruby is incredibly expressive. Where in Python it is viewed that there should be one, and only one, right way to do something, rubyists believe that the way we write code is an expression of our values and individuality.
Finally, it’s incredibly readable and expressive. This is how one would write a simple “Hello World” program in Java-
This is “Hello World” in Ruby-
While eventually, it’s important to learn what is abstracted away in ruby, as a beginner, this allows you to focus on the logic rather than the syntax.
Ultimately though the first language will be the hardest. It’s like learning to play guitar for the first time. You have to train your brain to work in an entirely new way. After that, picking up another instrument is relatively trivial. So focus on whatever’s going to get you fired up and keep you motivated and you’ll do great.
If you’re interested in learning to code or preparing yourself to take one of our coding bootcamps, check out one of our free courses:
From Avi’s Quora AMA: