How can you prepare for a career as a software developer? Lessons learned from ignoring warnings like this…
I’m betting you’ve already heard this pitch before and if you took heed of it then consider me impressed! But if you’re anything like I was and tend to ignore the thought of life after school , then you’re in luck! Here are what I feel to be the most important steps that you can start taking today that will give you a leg up in your career as a software developer!
Get on LinkedIn
One of the first, and easiest, things you can do is write a CV and get a LinkedIn profile. It’s the premier tool for professional networking and documenting any experience, awards, and accomplishments throughout your academic and professional career. It’s also a great way for recruiters to find you and the best method for keeping in touch with peers you’ve met at various career fairs, social events, hackathons etc.
Go do things!
Participate in hackathons even if you don’t feel qualified enough to do them. I guarantee that you will make it further than you thought you would and attempting something new is always the best way to learn and improve. It’s especially beneficial to do hackathons sponsored by companies because it gets your name out to recruiters and could be a great opportunity for future employment.
Go to career fairs and social events with some of your classmates. You very well might connect with peers who share a same passion or want to collaborate on a project that aligns with your interests. You could also meet a professional who can introduce you to their company and give you an in for a potential internship or job. You never know who you might meet unless you get out there!
Find an interesting project to do outside of school
To make yourself a noteworthy candidate to employers you need to pick a passion project that gets you away from the status quo. Choose something that applies new technologies you’re less familiar with or uses a language/framework that you might have less experience with. Your code doesn’t have to be perfect but I assure you that any project that you put blood, sweat, and tears into will make you stand out as a smart and dedicated applicant to hiring companies. It not only demonstrates your technical abilities, but also important soft skills such as organization and dedication that are required in order to succeed as a software developer. It also lets you explore different areas than might be taught in your program.
Maybe you want to make a new third-party integration for your favourite POS as a fun side project, who knows!
Do things other than school/coding
It’s no secret that interpersonal skills are important to succeed in any career but especially so in software. Staring at a screen writing code might seem like a pretty non-communicative job but knowing who to ask the right questions to can help tremendously with your performance. Being able to efficiently obtain knowledge will directly contribute to how well you do your job. Amongst other resources, you’ll be searching code bases, internal and external documentation, Google and StackOverflow to obtain the information needed to complete your work.
Prioritization is another extremely important part of any software developers day-to-day. At any given moment your inbox/IM platform could have hundreds of messages and while some of those might be directly intended for you, others are more noise that don’t require your immediate attention. Being able to divide your time between the most important tasks is invaluable in making sure you deliver work on time and don’t waste valuable time at work.
As so many skills are utilized daily as a software developer, almost every job you apply for will ask you about non-code related aspects.
A young developer who is highly skilled but has no interpersonal and soft skills will be less likely to succeed in an established company than a young developer who is eager to learn and has the necessary soft skills to balance their responsibilities and duties at work.
You’re still a student, you’ve got time to learn!
But if I was a student again I would spend more time learning:
- Database management systems (DBMS) and the different query languages and tools to write/test/execute them that exist. Even though in school we learned MySQL and how relational databases worked, I spent a single class using databases in my whole academic career and it was very primitive. Work use of a database into one of your web projects and explore the theory behind how they work.
- APIs, what the heck are they and how do they work? Just kidding I know what APIs are now, how to authenticate users for them and use companies third-party APIs to create your own applications but in school there was barely any focus at all on what they are and how to use them. Any modern website today will have an API and any developer should have a good idea how to use one.
- Building a full application, I’ve already preached it a few times here but this is a must for any developer. There are thousands of free tools and tutorials online that can guide you through how to create games, websites, iOS apps, etc. If you run into an issue then you can Google it, talk to your teachers, talk to your friends, read the documentation…
If you skipped the rest of this post, then just remember this:
If you read/code/try something and feel like none of it stuck in your head, well as long as you can retain 10% the first time you try and another 10% the second time then before you know it, you will have learned that new thing and can teach someone else their first 10%.
Stick with it and happy coding.