I’ve interviewed and hired new computer grads. I’ve help a few prepare for interviews as they approach the end of school. You’d think after 4 years of learning, they’d know all the basics skills they need to do the job of a software engineer.
But it isn’t so.
So as a small service to humanity, here’s my list.
Source Control
If I was a professor my students would turn in all of their assignments via Git. Because in the real world, that’s how they turn in all of their work.
It boggles my mind that CS students haven’t had to use and become proficient in some form of source control. It isn’t like the concept is new, I was working on Mircosoft’s SourceSafe for the Mac in the 1990s. The dominate software in that area, like all areas of development, changes every half decade, the concept is always there.
Also they should have encountered git on their own as they work on open source projects, but that lack is for another point.
Agile/Scrum
I say Agile/Scrum, but I mean the Scrum framework. Agile is a philosophy and students should be exposed to it. In 80% of cases, the first day they start a programmer job they are going to be on a Scrum Team. Could be another kind of Agile framework, like Kaban, but most likely it will be Scrum. If you are hired by a company that doesn’t do some agile methodology it’s a red flag.
Scrum is also a great system to use in those group projects people dread so much. It’s transparency and daily accountability can help keep everyone working.
Tactical Programming
Tactical Programming is how you write a line of code, name a variable, or structure a function. I’ve written an article about it and this blog has a whole category (Tactical) dedicated to it. But most schools don’t seem to talk about it at all.
Initiative
When I went to the interview for my first job, I went with source code to a program I had written on the side while in school.
When I interviewed programmers for my video game company, I asked them to show me something they had created. Only one of the candidates could do that. He got the job.
People want to hire people who love to code. Who want to do it so much they will do it on their own time.
They want to hire people who they know can do the job because they have already done it.
Many companies also ask for your Github account ID so they can see if and what you’ve contributed to open source projects.
Truth be told there are a lot of programmers who lack these skills that have been doing it for awhile. Those folks need to up their game, but I kind of feel it is the schools letting down the new grads.