So you’d like to learn to code? Computer programming and basic computer knowledge are useful skills to have regardless of your purpose. Programming expertise has a high potential value for employment or start-up prospects, and you can figure out if programming is something you’d love and be good at with little time investment.
There are numerous routes to obtaining a programming career, studying programming, or achieving any other goal. There is no “one true approach,” and there will be a lot of competing suggestions on how to learn “best.” Honestly what is best is going to differ individual by person, and depends on your interests and ambitions. I’ve put together a guide based on my own experience, which I’ve revised based on input from other programmers. Because those are the things I’ve had the most experience with, they seem like decent places to start, and they seem highly employable, this guide focuses heavily on web development and Ruby on Rails. That isn’t to say that learning new languages isn’t beneficial. This guide was created with the goal of helping you uncover your passions as quickly as possible. However, it’s possible that it’s not quite perfect for you. Your results may vary. The greatest thing to do is to simply begin. See if this guide works for you, change if it doesn’t. Please let me know.
Furthermore, you must be willing to accept the possibility that programming is not a suitable fit for your abilities and interests. Keep in mind that actual programming ability can only be acquired over time. There is no such thing as “learn X language in two hours” – even 100 hours of study will only provide you with a basic understanding of one language. Only years of hard effort can earn you the title of “programmer hero.” So, if you want to succeed, it’s critical that you enjoy it and stick with it. Programming also appears to be easier when you have many, uninterrupted, consecutive hours to dedicate to it – it looks to be far more difficult when you only have 30 minutes here and 30 minutes there.
The first step is to enroll in Codecademy.
If you have no prior experience with programming, Codecademy is a wonderful place to start. Choose from the Python and Ruby lessons. Spend approximately 5 to 10 hours on one of them (no need to finish it).
Here’s an excellent test – Can you implement FizzBuzz in either Python or Ruby? Is bubble sort possible in either of those languages? If you said no to the first question, you should definitely proceed to the next step. Consider taking this step if you replied yes to the first but no to the second. If you responded yes to both of these questions, you may skip this step.
If you do this, wait 5-10 hours to see how you feel. How much fun did you have? How much of a struggle was it? How much hours each week were you able to spend to it? Is this something you can see yourself doing?
I don’t think it’s required to finish the course at this point, but feel free to do so if you want.
Step Two – Hartl’s Ruby on Rails Tutorial
I have both good and bad news to share with you. The good news is that real programming is a lot more enjoyable and engaging than Codecademy. The bad news is that Codecademy does not teach you how to program. Codecademy is a useful learning supplement, however it isn’t thorough enough. So we’ll hunt for something a little more suitable.
I’m going to recommend that you finish Michael Hartl’s Ruby on Rails lesson at this time. Ruby on Rails is a very popular and useful language right now, and it’s a great language to know if you want to work in the start-up or IT industry. The guide also includes introductions to GitHub, RSpec, and Heroku, among other crucial supporting tools. Important concepts like Model-View-Controller and test-driven development will also be covered.
When you’re through with this instructions, always retype the provided code by hand rather than copying and pasting it. If you merely copy and paste, you won’t fully understand it. Additionally, complete all of the exercises in each section. This is how you broaden your horizons.
I estimate that the tutorial will take you 30-60 hours to complete. If you don’t feel like you’re getting enough hours in, use Beeminder or something similar.
Optional Second Step – If you didn’t like Hartl’s tutorial…
Hartl’s tutorial was a lot of fun for me, and I think it’s a terrific foundation for not only Ruby on Rails, but many other things as well (e.g., GitHub, getting a text editor, etc.). But don’t worry if you didn’t enjoy it. It doesn’t mean you’re not cut out for programming; it just means you’re not like me.
Sign up for Code School and work through all of the Ruby lessons to master the right amount of Ruby on Rails to move to step three. This is an investment, but it is well worth it. In my perspective, this is a good way, and I believe it is Ozzie Gooen’s favourite method.
Buck Shlegeris dislikes Hartl’s instruction and recommends that people first finish the Codecademy Ruby class and then work through Test First’s Ruby Tutorial. I haven’t tried it myself, but Buck seems to have come out okay, so it can’t be too horrible. After completing the Test First tutorial, Buck recommends enrolling in Code School and working through all of the Ruby classes.
Another optional additional step two is to consider enrolling in a programming bootcamp.
If you enjoy programming and want to make a career out of it but have struggled with self-teaching, you might want to consider enrolling in a programming bootcamp. These are intensive, more-than-full-time programs that teach you programming and assist you in finding work. Here, you set aside 10+ weeks, enroll in the site, learn from the program, and ideally pop out with a job on the way.
App Academy is largely regarded as the greatest program, and it has received a lot of attention on LessWrong. App Academy essentially completes Steps 2-17 of this tutorial while also providing you with support, formal instruction, and a positive learning atmosphere. Buck Shlegeris is a TA at App Academy, and he’d be pleased to be a point of contact if you’d need further information about applying and/or coaching through the process. For more information, check out Buck’s interview about App Academy.
If you can’t get into App Academy, Buck and Chris Hallquist (who went to Hack Reactor) claim Hack Reactor is the second-best program (it is somewhat selective). Here’s a comprehensive list of all available boot camps, complete with descriptions.
It’s worth noting that App Academy may be the greatest option for those in the United States. Maker’s Academy, on the other hand, appears to be a suitable option for those living in the London area.
A Personal Rails Project is the third step.
You should now have enough knowledge to move forward with your own project. Now that you’ve gotten off the bunny slopes, it’s time to ski down the hill. Personal projects are one of the most interesting and practical ways to learn to code, and you should now know just enough (and not much more) to try your hand at building your own Rails application. So go ahead and make something!
This may be difficult, but with some Googling and StackOverflow, you should be able to get further than you think. It might also be a good idea to find a personal mentor or two who can guide you through the inevitable stumbling blocks.
Another Rails Tutorial is an optional fourth step.
If you’re having trouble with this stage, try working through another Ruby/Rails tutorial to re-learn some of the concepts in a different context. “Agile Web Development with Rails” appeals to me. If things are going well, there’s no reason to do this.
Step 5: Reconsider your options.
You are a qualified Ruby on Rails novice at this point. Congratulations! You could certainly secure an internship or a Junior Developer position with a quickly growing software business at this stage. For 200 hours of labour, it’s not terrible.
But, more significantly, you should now be able to determine whether programming is right for you. Are you finished with your personal project? Was it enjoyable? (It should be enjoyable.) Was it difficult? (It should be difficult.) Congratulations if you enjoyed it and were able to devote a significant amount of time to it each week – programming may be for you! But be honest with yourself, and don’t force it just because programming seems glamorous.
Step Six is an optional step in which you can learn Python.
I suggested that you look into Python or Ruby in Step One. Python is a prominent programming language in the startup industry, though not as popular as Ruby on Rails. Python, on the other hand, is quite popular in academia. It provides good support for statistical programming and features a framework named Django that operates similarly to Rails.
It’s a useful language to know, but several of us don’t believe it’s worth the time investment if you’re only interested in entering the startup scene and don’t plan to utilize it.
If you’re interested, however, now is a fantastic time to get it. Work your way through “Learn Python the Hard Way” if you like, skimming as needed. Also, have a look at “Think Python,” though you’ve probably already learned a lot of it from “Learn Python the Hard Way.”