There are a ton of great resources all over the internet (including a very awesome wiki) on the materials you should be studying before attending Dev Bootcamp. Inevitably, each student makes up their own Frankenstein of a study guide by cobbling together content from a myriad of different message boards, wikis and blogs. I’ve done no differently, curating my own set of ebooks and sites from which I have either learned a ton or loathed (a selection is provided at the very end, scroll to bottom if feeling impatient).
However…
Providing my list, while helpful, still leaves a lot unsaid. I have read plenty of great write ups about the best tutorials and how to progress through them yet I have always felt there was a distinct lack of practical advice that a new programmer can immediately apply. Advice that could be remixed and handed directly to other new programmers in an endless loop of blogging tradition.
I wanted to attempt to fill that gap and it is my hope that most of this advice is immediately actionable. This is only a jumping off point in an endless quest for enlightenment so try not to worry too much about everything you do not know.
With that said:
Be Ready to Fail, ALOT
You cannot be afraid of failure and must actively seek it out. The faster you fail the quicker you will get to a solution that is actually workable. Failure is only a minor bump in the road to your ultimate destination, just ignore it completely.
Get Comfortable with the Ruby Docs
Ruby documentation is always your first and best stop for figuring out everything in the ruby world. They are indespensible and you should never be ashamed when you have to look up something in the core documentation. You will consistently refer to them throughout the rest of your Ruby career, you can’t hold all of that knowledge in your head.
Hartl Should not be Your Intro to Ruby
Hartl is something that a beginner should shy away from initially (at least until you have a somewhat firm grasp of Ruby). As good as the rails tutorial is Hartl only spends about 1 out of his 11 chapters on basic Ruby and then breezes right back into Rails. A lot of Rails will appear as complete and utter magic without some Ruby in your repitore (and even after you have a good understand of Ruby it still looks like magic sometimes). Take the time to go through a good intro Ruby tutorial like this:
Jumpstart Labs Ruby in 100 Minutes
Give Yourself time Before you Google
I always end up asking for help or Googling for my specific far too quickly. After I have received an easy answer to the problem, I actually feel like I was robbed of something precious. Struggling with a problem and actually making a breakthrough will definitely cement your knowledge. Give yourself time to work through a problem but always set a hardstop so you don’t struggle past the point of fustration. Depending on the issue I am tackling I usually give myself an hour.
Spend as much time as you can reading other people’s code
This is where you will gain the most insight into how many different ways there are to do something in both Ruby and programming in general. Reading as much code as you can will get you used to asking question, stepping through a whole program and following a consistent syntax styleguide. Go look at any popular open source project and just absorb its structure and try to get in contact with the maintainers. You will be surprised at how much this helps!
Don’t do just tutorials
Tutorials are great but I always felt like I was reading and typing more than I was ever learning anything. I always had the immediate urge to just break off the beaten path and just start playing with the various items I was supposed to be learning. Inevitably you will get bored going through any of the long tutorials. Take a break! Try to go build something for yourself or just have some fun playing around with various functions. You can’t always just study, need to hit the jungle gym from time to time.
Try to glance at another language
If you feel like you are burning through everything rather quickly and you really want to expand your world view, go have a peek at another language (try python). Now, I am not telling you to go learn the ins and outs of a whole different language but at least go appreciate and understand the differences that other languages bring the the table. As my good friend would tell me, “Don’t just be a Ruby fan boy”.
Don’t look at an example out of a book without IRB
Alays make sure you are typing examples you see in books directly into IRB. While IRB can be cumbersome at times it is an invaluable tool for testing all of the included ruby core methods. Take every opportunity you can to type examples out for yourself as it will lead to better understanding in the long run.
Get a whiteboard
Besides being great fun to draw on, whiteboards provide a very accessible way to quickly talk through a variety of different programming problems. Programmers love whiteboards as you can discuss functions, database schemas, site maps or even wireframe out designs. Get a small one for your office or room. Best purchase you could make beyond purchasing the Well Grounded Rubyist ebook :)
Find a dev and become friends with them
You must have a developer Bat Phone. Behind every good developer is another good developer who can be called upon for advice and/or problem solving assistance. I don’t think I would be where I am today without all of my dev friends being extremely generous with their time and having extreme patience with my newness.
Meetups, have you looked in your city
Look for your local Ruby group and get involved. It’s great to socialize with other developers and you will be surprised by the fact that many of them are ready to volunteer their time to help you level-up. I have always appreciated how inclusive meetups have been and just how welcoming everyone I have meet at them has been.
Some or all of this advice may not work for you and that is just fine. There isn’t a single “Right” way to learn how to program or become a developer. Each path is unique and that is what makes the journey so interesting. Forget most, if not all of what I said and you will be fine.
Bonus, my links
Links go in order of advancing difficulty:
Beginners guide to HTML and CSS