4 Tips for the Student Programmer
I’ve recently been going through countless rounds of interview with Computer Science students for an entry level position opening at my company. I wanted to share some pieces of advice for all programming students based on what I observed during those interviews. In this tight economy, even graduating with a sought after diploma such as a Computer Science degree is no shoo-in for a job, certainly not one that you would find “fun” and “challenging”.
First some background on me. When i graduated in 2003, I was an international student and the reason why I find worth mentioning is that it limited my opportunities. As a F1 visa, you are limited to working only 20hrs on campus only, the reason being work should not be a detriment to the reason you got your visa in the first place which is studying. The computer science department at my school was small, and Bakersfield, California is not exactly known to be a tech hub, (if you’re looking for an oil fields related job though….) While going to school I looked up everything I could to be able to intern with a programming shop in town (INS Law, loopholes etc). The one time I was able to interview and effectively get an offer for C++ related internship, I ended losing it because my school’s International Student office was ignorant in the provision under INS law that would have allowed me to take the internship and gain school credit for. They were not interested in learning either and I was denied the opportunity. It hurt at the time. I was so close! I ended graduation without any formal internship on my resume and within a few interviews I came to realize how crucial that experience is to increasing your chances to get a job. Luckily, due to my interest in music, I had learned on my own PHP, HTML and CSS programming during my school years and used it to build a few sites for my personal and friends’use and this was my real foray into the world of web development, which was my ticket into my first job (notwithstanding all the interviews where my visa status precluded me from getting the job, nobody wanted to sponsor at the time, especially at an entry level). Which brings me to my first advice:
- Intern: All the classes you are taking right now, or have taken, it’s nice and all to list them on your resume, but guess what, so are the other hundreds of students taking the same courses, IT MATTERS LITTLE, or maybe it does if your objective is to get an internship, but for a job, a real one, more is required. Looking at it from the perspective of the employer, we expect no less. The question is, what skills are you bringing to the company? Most of you probably already know this, but for those of you who don’t let me break it down for you: A Bachelor in Computer Science degree prepares you well for a … Masters in Computer Science. I am not putting down CS degrees by any chance. What I want you to take away from it is that the curriculum will teach you well the theory and history behind Comp Sci, but little in terms of the skills you will need on the job. A Comp Sci degree won’t teach you about version control or IDEs. It will teach you a language but not a framework i.e you will learn Java but that won’t help you understand much of J2EE and what is a J2EE application and what developing a J2EE application in Eclipse means. Those are the type of skills that can only be learned on the job. That is why i encourage you to try and intern every year of your schooling up until you graduate, especially if immigration laws aren’t holding you back. If you are a foreign student, you have to be exceptional, the onus is on you. Sponsoring does not come cheap to a company and you’d truly have to be exceptional for it to take a chance on you.With all that said, it is a fact that for residents and foreigners alike, getting an internship is not easy. This is where my second advice comes into play.
- Build: You are doing programming so obviously you are no BooBoo The Fool…Build, create, develop ON YOUR OWN. I keep repeating that to my younger brothers and sisters in the field. There is nothing that warms the heart of an employer more than a student walking in for an interview and already having some on the job skills especially if they are self-taught. Understand that when you are walking in for a job, the question in our mind is: “If I give this new employee this particular task, would he or she be able to handle it to completion with the minimum amount of supervision”. Building your own apps show that you got it. You have an independent, self-motivated and persevering spirit and that gets you half there already. Programming is one of the satifying/frustrating job you could ever have depending on what you are working on but it takes a certain kind of individual to thrive in it. Do not be fooled into thinking you will be good with JUST DOING SCHOOLWORK. Your resume will be at the bottom of the pile way below your fellow students who created a mini Facebook or Instagram in their dorm room or college appartment. In the age of CodeCademy, PeepCode, CodeSchool, Udemy and many others you have no excuses for saying “I didn’t learn that in school”. Some of it is not free of course but think of it as an investment that will pay off ten-fold. Building on your own shows that you are self-driven and can be relied on to complete the tasks you will be given. My side projects doing websites helped me get a job more than my degree; now don’t be fooled, the degree looks good for an employer, to have an educated workforce, but realize that if it comes down to getting the job done and a lot of time it comes down to that, experience will beat the degree almost every time. The way I see it, a degree is just a minimal certification for an employer that you can have a basic intelligent conversation about your field of study. So if you have ideas, build them, try until you succeed. If you can not get an internship over the summer for whatever reason, use that time to build your own application.
- Passion: Within 2 mns of a phone screen, I can already tell the passionate students from the disinterested ones. You gotta ask yourself why am I doing this? I once talked to a student who told me he was studying Computer Science because he heard “it was a good industry where there were a lot of jobs”. That might have been his true feelings but I’d rather here a “I do it because I love solving problems and the challenges that come with programming”. It just made the screening easier. We are not looking for
pencilkeyboard pushers, whether it’s at an entry level or a senior position. As cliche as it sounds, we, and I suspect other employers are looking for people who “are doing it for the love”. Sure it pays well but don’t be fooled, it’s no easy money.
- Be Mentored: Do you know anybody that is working as a developer? Talk to them. It is imperative, and I don’t mean a superficial conversation. Ask questions, tell them about what you are doing and ask for feedback. It will help you a long way into figuring our what you are lacking and how to improve upon. He or she can help you find out what you should be learning outside of school and even help you get started with your own app or help you review or build it.
I hope you do heed some of this advice as it comes from personal experience. As a student you might think it unfair for you to be expected to know all that, you would be partially right. I think Computer Science departments across the country can also do a better job of preparing their students for the real world of programming. My first suggestion would be a mentoring program where working developers from the local community would be paired with either Junior or Senior students in order for them to have a real continuous conversation about the demands of the job and help direct the students in their career move (An hour a wee). At the very least on campus seminars (not recruiting fairs, at that point it is too late) meant at conversational and instructional gatherings between students and developers. This would be helpful for both sides, helping students hone their skills and evolving into viable candidates on graduating, and giving employers a better qualified pool of entry level developers to choose from. I’d like to keep the conversation going from both the student and developer side? What is you current experience in school if you are a student, and what are your expectations of students if you are a developer looking to hire?