Reverse engineer your way to a career
/So a student of ours contacted me the other day asking for some advice on getting started as a software developer. The person is new to the technology industry.
Here is what I told him. Reverse engineer the set of steps that are necessary to get yourself hired. Starting with the role you want, identify the core set of skills that you need and create a set of steps to add these skills to your CV.
Be realistic. While there is a shortage of skilled developers out there, there is no shortage of unskilled developers. When starting out you are going to find yourself in a big pond competing against a lot of other unskilled developers. So how do you mitigate against this?
Be really good at one thing rather than a jack of all trades. Start by learning one language really well. Take for example Python. Immerse yourself in the language. Learn about Object Oriented Principles. Learn about Test Driven Development. By just knowing one language along with an operating system like Linux and a version control system like Git, you have a set of skills and a game plan that you can pitch to a company that needs those skills.
Now you have your foot in the door of a company. Harness that small (yet powerful) number of skills you have by working with the senior developers. Get involved with code reviews. Watch, listen and learn. Even if you only fix bugs and learn how to debug code you will have got some crucial experience.
Once you have reached a plateau, it is time to expand your skill set. You might want to learn a web framework like Django and break into web development.
The point of reverse engineering the set of steps is simple. You present yourself as someone who is credible and that can do productive work for a company. It is a rock solid game plan that will make you shine in interviews.
Be focused.