In my line of work, I meet far more people than I would prefer. Many of these people are freshly graduated from a boot camp or college. One thing that shocks me is how totally unprepared to code they are for being a inspiring professional programmer.
If you want an easy project to test new concept or languages on, try a 4 function calculator.
What do you mean totally unprepared to code? They have wallpaper that says their ready.
No offense to their expensive interior decorator at the bursars office, but they are. Sure they understand the most basic level of programming. Knowing chapters 1-7 in four languages just makes you bad in four languages and stupid to your need to improve. This is not their fault. I had the same problem when I came of school. They had taught me Java, VB.NET and C but gave me no path to “hey there is more to programming than the remaining chapter 8-16”. There was no “hey make sure to learn this because it will make your first year out less frustrating for you and your employer”. I look at the list of things that I should know even today and sigh. The kids are even worse shape. I at least know how tall the mountain I am about to climb is.
Hey it is understood they know how to learn. They can learn.
Yes, that is true. For a 25 year old, it is easier for them biologically to learn something than it is for my late 30 something year old brain. They waste it on bad things to learn. So to try to save people from a sad fate of failing their first year, here is a list of thing to at least be familiar with before your next interview. You don’t have to be competent at it. You don’t need to be particularly effective with it. Just before you apply for your first job, take a few hours on weekend and run through a tutorial or two on each topic in the job requirements to get the gist.
So what do I need to look at?
First you want to play with unit testing. You don’t need to be an expert in it. You just need to understand what it does and kind of how to do it. Tell me the difference between unit testing and integration testing. It does not have to be pretty or detailed. Just know the basic difference and have setup a couple of tests before interviewing. It is a far better answer in an interview to say, “I played with that on Saturday for the first time” than “Huh?”
Next, make sure you know how to use Windows. I cannot believe how many kids don’t know how to use Windows. It is unfathomable that 15% or so of the junior programmers I have met, do not know Windows. Shops that use Macs or Linux, expect you to probably be bad at it. They are the minority OS in the industry. The learning curve is factored into the hiring equation. Windows shops expect you to know how to use Windows.
If you have to spend a few weeks becoming competent in Windows, you will spend a long time as the village idiot of the shop. I have been completely flabbergasted at the number of 25 year olds who are resisting learning Windows. I want to scream at them on why are you acting like a 50 year old.
Stop it, you have 40 years of career left ahead of you. Becoming resistant to change at 25 is horribly bad.
Another thing, if the place uses .NET and SQL Server, make sure you know Windows because they are almost certainly a Windows shop. Likewise, if they do iPhone development, learn how to use iOS. It is a two way street.
Learn a single design pattern. In doing so you will know what one is and attempt to use it. It will make your life easier and you seem more competent. I would recommend learning the MVC pattern. It has a lot of market saturation and will be really useful if you go into web work.
After that shocker, we have databases. If the shop uses a relational database make sure you can write a SELECT, UPDATE, DELETE and INSERT statements. I don’t run into very many shops that depend on their junior devs to build and optimize databases but most require the junior devs to manipulate data from them.
Finally go to a place like manning.com. They write technical books. Pick something big, ie don’t pick a how to program in Python. Select something like functional programing or deep learning. Pick something trendy and read chapter 1. Manning generally allows you to read chapter 1 for free. You will learn about the topic in a conversational way. It is always good to be able to talk about something trendy in the tech news in an interview. It humanizes the relationship and establishes a level of authority. There is likely someone in the room that likes technology and you look proactive and smart because you are trying to be.
In the end, you want to focus your learning to the kind of job you want. You do not want to be that person who is totally unprepared to code. This is just a generic list of things, I think will make you memorable and useful in your next job. Other then Windows item, this list should take you less than a day to do. It will get you on a firmer foundation so the time you are totally unprepared to code is minimize. Do not underestimate how much work it is going to be to learn the design patterns, methodologies, coding standards and culture of the place you are entering. Front loading some of these basics will be immensely helpful.