University students that are still studying and fresh graduates find it very hard to get that first job or internships. Here are a few tips to help you get started. I had the tech industry in mind when writing about this but this advice applies to pretty much any industry.
1. Have a Good CV
You CV should not only look good and be presentable, but it should have good content on it. There is a lot of templates online for different roles and you can adopt and modify them as you see fit. If you wanna be fancy, you can create your own design and there are many software that can aid with this from simple ones like MS Word to more sophisticated ones like Adobe Photoshop or InDesign. I personally did my CV in MS Publisher.
The content of your CV is obviously just as important. You should know what you should include on your CV and what you should leave out. Do some research on the skills required for the role(s) you are applying for and put them on your CV if you have them. Sometimes you just don’t know what skills you have until you research. For example, I use Verilog and VHDL a lot in my courses but it never occurred to me that I could add Hardware Programming as a skill on my CV :D. There are lots of resources that talk about how to build a good CV… use Google to your advantage.
2. Have Work Experience
This is the one phrase no one wants to hear. You need work experience and it’s very hard to understand why it’s so important to have work experience, if you’ve never worked before. I group work experience into two groups:
- Industry Work Experience: This is the work experience you gain from the industry you are looking for a job in. This does have to be a paid/formal job but it can be volunteer work you did.
- The Rest: These are the jobs you get outside your industry. These include jobs and roles like being a committee member of some societies, volunteer work, part time jobs like tutoring, delivery jobs, photography (ME!), etc… This work experience is very important because it shows that you have experience in a work environment, working with customers, etc. In fact, I see these as things that help back up your CV. I mean, if you call yourself a hard-working student but you have no work experience of any sort of your CV….daw what exactly you working on?
So, try get as much work experience as possible. If you struggling with getting jobs and internships…then you should have…
If you don’t have work experience, at least have projects. Projects show that you are enthusiastic and keen to be a good programmer since you spend a lot of extra time working on yourself. The ONLY way you can be a better programmer is if you work on projects and this is the only way you will stay a good programmer.
Projects can be very simple and can range from very simple projects to learn a new language or concept to larger ones where you are trying out new technologies or products you create for other people. You can also contribute to Open Source projects on GitHub (employers love this!)
Lets talk about what it means to “know a language”. In my opinion, to know a language you need to know things beyond how to print “hello world”; you must satisfy the following requirements:
- Syntax – Obviously
- the pros and cons of that language.
- where it is suitable for use (and not suitable) – like is it best for backend of frontend web-development? high performance? embedded programming? etc.
- the type of language it is… is it functional? object oriented? scripting language?
- Special traits and features of that language.
- Compile process of that language. What happens from source code to the code executed on the CPU.
- Memory management. There are some languages you will never have to work about memory management…and then there’s C and C++. You also need to know things like how variables and objects are passed around by default and all.
Now that we have that out of the way, you need to know at least one language (preferably 2 languages). In most cases when you ae starting out, you will most probably not meet language requirements that are posted on job postings but this should not discourage you at all. If you understand the fundamentals of programming, learning a new language WILL be quite easy and recruiters know this so don’t be afraid to apply for that job.
These are basically things outside your degree and these are the things that scare off a lot of people when they look at job postings and they are things you’ve never heard of like NodeJS, Django, etc. and some of these are just expected of you when applying for certain jobs. Computer Science courses rarely teach you these things therefore it’s up to you to teach yourself. This is why it’s important to do a lot of personal side projects because they can expose you to a lot of new technologies.
Last but not least… Having good grades means that you most probably understand programming concepts like data structures, programming models, etc…but the inverse is not true. I have personally come across a lot of people who have average (and bad) grades but they are extremely good programmers. Academics is not for everyone. I have always said this:
Good grades can get you a job interview…but they can’t guarantee you a job offer.
So that’s it from me. This list is not exhaustive…I personally have not had a full-time job myself so I definitely left out a couple of important details. I summarised everything in this video on my YouTube.