Getting Your Foot in the Door
Many people have asked me what it is like on the other side of code school, and if there is any advice I would give to someone before they get their first programming job. Technical ability, problem solving, and communication skills are all essential to success as a developer, and your online presence is a way to demonstrate all three. Getting your foot in the door requires having something to show — keeping your foot in the door requires a little bit more.
Have something to show
Not every developer spends every waking moment working on open source projects or inventing the next big framework. We all have lives, families, and other pursuits that take priority; however, experienced programmers likely have solid work-related contributions they can point to during an interview. First-timers need some proof that they can apply what they learn. Side projects show potential employers what you are learning, and that you are interested in programming, not just the salary it comes along with.
Create a GitHub account. If you are in code school, you are likely already working towards a portfolio of apps and widgets to show off during an interview. If you are considering code school, this is something you should not wait to do. When you work through a tutorial, commit it to GitHub, give it a README, and include what you are working through and why.
Start filling your toolbox
You can usually assemble a piece of Ikea furniture with only an allen key, but what about that desk drawer that suddenly calls for a screwdriver? Completing the task requires the right tools for the job, and your ability to solve a programming problem is no different. Git, Chrome Developer Tools, and Pry are part of the the Swiss Army knife for any web developer.
Git is like “track changes” for source code. The docs describe it as a series of snapshots of your code base. “Every time you commit, or save the state of your project in Git, it basically takes a picture of what all your files look like at that moment and stores a reference to it.” Source control allows you to work in the same code base with other developers and not step on one another’s toes. Start with Git Immersion for some practical experience.
Pry gives you an interactive debugging session wherever you put a breakpoint in a Rails application.
binding.prythrows you down the rabbit hole into the inner workings of your program’s psyche. Check out exploring the stack for more details about this powerful tool.
Use the docs. Knowing how to find and navigate documentation is more important than remembering how to do File I/O. If you find yourself in a technical interview where they don’t let you search the web for help, share your thought process, imagine the solution you might have found had you performed the search, and work your way through the problem with pseudocode. Experienced developers use Google search and StackOverflow constantly, so pop that error message into the search bar to see what turns up. A word to the wise: if an answer was posted more than two years ago, it may no longer be relevant.
Get to know your community
Your next job in programming is more likely to come from someone in your network than from hitting the street with your resume. If you can claim an acquaintance with someone from a company you want to work for, that is one more point in your favour.
Go to meetups. If you are shy about meeting lots of new people at once, try introducing yourself to the invited speakers at the end — they are usually well connected and respected in the community. If you approach them with your name and a question or comment about their talk, they are likely to remember you.
Do scary things
Not like skydiving, or alligator wrestling. Write blogs, contribute to open source projects, start your own programming language, or become visible on social media. You don’t need to be an expert to have an opinion. Don’t stop taking risks after you land your first job, either.
Find an area of your work that people are avoiding and become an expert. You will be known as the person who can do that thing we all hate, and your colleagues will value your expertise.
Take the hardest ticket from the top of the stack. Don’t sift through them until you find something you think you know how to do. Your best opportunity to stretch your skills is to do something scary and uncomfortable.
I work with a lot of people who don’t have formal computer science degrees, and while their backgrounds vary, they all share a love of problem solving and a willingness to work hard. Take responsibility for your own learning — code school will only bring you so far, and the rest is up to you.