DISCLAIMER: This is just my opinion based on what got me a job and what my company looks for when we’re evaluating junior candidates.In the past five months I’ve gone to programming school demo days, career fairs, and other recruiting events to help recruit more junior developers to our team. As a recent grad myself, students ask me what they should focus on post graduation to help them get a job. The problem, I tell them, is you want to get a job ASAP and there is too much to learn and not enough time to do it in. Generally people advise you to, review everything you’ve learned in the past 9-12 weeks, and then give you 30 other things study…oh yeah, and go to Meetups, ask people to coffee, write blog posts, and work on side projects. Assuming you don’t have another three months to practice programming without making any money, don’t do this. You need to focus! Below is my advice for what to focus on, which I think can be realistically achieved in one week i.e. the last week of your program or the week after you graduate.
1. Figure Out What Type of Job You Want
2. SOLID Object Oriented Code
Understand what good OO code is and start practicing (I’m still working on this). Regardless of the language, if an applicant solves our code challenge using one big method, it’s an immediate deal breaker. Assuming you want a Rails job, I would read and watch the following resources in the given order and then apply what you learn to your code. Hopefully a code challenge from a potential employer.
Sandi Metz’s Rules - learn these rules and try to follow them as best you can.
Refactoring From Good to Great - this is a great talk! All Ben’s advice is super actionable and can be easily applied. In fact I’m going to go re-watch this right now.
SOLID Object Oriented Design - Sandi Metz explains SOLID OO design principles. I’ve watched this a couple of times, took notes, and tried to apply it, and you should too.
3. Learn Basic Unit Testing
In my last few weeks at Flatiron I studied and practiced basic unit testing with RSpec in my spare time. With several hours of practice, I got to the point where I could TDD simple problems like the first few on Project Euler. This greatly improved the quality of my code challenge for AlphaSights and set me apart from other applicants because most new programmers don’t write tests. If setting you apart from other applicants isn’t incentive enough, realize you’re going to need to learn testing for any decent Rails job—might as well start learning.How I learned Basic Unit TestingBelow are the simple steps I took to learn the basics of writing unit tests. If you follow them you should become comfortable writing basic unit tests in 2-6 hours of study and practice.
Four Phases of Testing - read Thoughtbot’s post on the four phases of testing. This will help you understand the fundamentals of testing and how to write the actual tests.
Practice on Euler Problems - take what you’ve learned from the first two blog posts and solve several Project Euler problems using TDD. At this point you’ll be on your way to learning testing.
What About CS Interview Questions
In regards to CS interview questions like the ones you find on Interview Cake. You may or may not need to know them. I personally made a bet that any company I’d be working for would care more about my code quality than my CS knowledge and that I could learn it on the job later. My bet was right and I didn’t get asked any of these types of questions. This doesn’t mean you won’t so take this advice with a massive grain of salt and it least be aware of what things like Big O and link lists are.
That’s All Folks
That’s all I got. In my opinion you should be able to complete everything I recommend in 5-10 days if you’re doing nothing else but programming. Hopefully you’ve found this helpful. Please let me know your thoughts on what you think programming school grads should be focusing on in their first few weeks post graduation.Stay in touch with Kyle on Twitter. Get in touch if you’d like to hire a grad or have any suggestions on what our students should learn in order to land their first programming jobs.