When I finished my CS degree, a few other students were surprise not to land a job as a developer super easily. Due to the shortage in developers on the labor market, they thought recruiters would fight for them as soon as they graduated. The truth is, although companies are fighting to find developers, they’re above all fighting to find good developers.
Don’t assume they’re looking for any developer
You can observe job postings, and see that many companies would rather have an open position unfilled for a very long time than hire someone who won’t be a fit. That’s because it’s usually very difficult to fire someone, and even when they can, they lost money anyway investing in the wrong candidate (this is relevant for the European job market, I’m aware this might not apply to other geographies).
As you have no or little work experience, they need to know they can invest time and money in you. Companies don’t expect junior developers to know it all and deliver the same quality of work as senior ones, but they need to see how much you can evolve. Hard skills can and will be learned on the job naturally. Your investment in inter-personal skills is mostly your responsibility.
Soft skills make a huge difference
Companies are really searching for developers with some soft skills and (inter-)personal qualities like time- and self-management, good communication, team collaboration, will to improve personally, organization, curiosity, team skills, readiness for change, commitment…
They want developers who will integrate well in the development team, are open to learning new things or expanding their scope, won’t be afraid to communicate with the users or their interface. Working on those skills, that are rarely taught at school, is a way of differentiating yourself from other graduates with the same background.
If you have previous work experience (might also be an internship, voluntary work, scholar clubs…), those can showcase how you used your soft-skills, things you achieved while collaborating with others, how you handled some situations… Even if no tech is involved, you can usually find situations where you used your skills in leadership, team collaboration, organization, communication…
Specialize
I know some will argue about this one. Public speakers often take the position that juniors shouldn’t specialize too early, should learn high-level concepts and be open to anything. I have a different point of view, and after five years’ experience as a software engineer, I’m really happy of how I chose to grow my skills.
When starting to work in IT, my fantasy was to end my career as a Java Rockstar. That’s precise! I decided to work hard on Java, because I love the language. I passed certifications, I studied many courses about Java, learned advanced concepts while I was just beginning my career, watched news about the technology… I was able to pass harder Java tests than most developers with my seniority.
I was really stubborn and focused solely on Java, although I faced criticism several times due to my decision. On the other hand, it was not totally stupid as there was a huge need for Java developers on the job market. As a perfectionist, I couldn’t accept to work with Java without having deep knowledge of the language.
How being super specialized allowed me to have a broader skillset
Being super nerdy about Java allowed me to understand a lot of principles and because super at ease with learning new ones. The language itself was my support, my reference, but what I was learning would be the basis for all the new technologies I would use later.
Little by little, I opened to new languages and noticed how easy it was to apply the same concepts to them. Once I was at ease with most concepts, I could slide to other technologies and work on a bigger picture. Nowadays, I’m really open to learning new languages, I’ve become really curious and enjoy trying new things.
I’m still cultivating my Java knowledge and extended it to “JVM based languages”, which is my strong asset when applying for jobs requiring Java, Kotlin, Scala… development. I really love them and I’m happy to have such a good technical understanding and so much hands-on. In parallel, I’ve also become efficient in frontend development, Cloud technologies, scripting in Python, SQL…
Even though you wouldn’t want a career focused on a single technology, or you’re not interested in building super deep knowledge of one in particular, I think telling a recruiter you’d take any job in any field with any technology shows low interest.
If you’re absolutely not interested in any technology in particular, you should be able to explain why and prove that it’s not a sign of low commitment and motivation. Apparent lack of motivation is really something that a lot of CS school fellows received as feedback when they were not selected for a job.
Knowing your career goals also make good impression. It’s not necessary knowing the exact path you want to take until you retire (that path will change oftentimes, trust me), but showing that you can project yourself in your upcoming career is reassuring for the employer.
There’s a huge difference between “yeah I don’t know, I just like to code…” and “Well, I’m really curious about DevOps, I hope I can learn some about it in my job and find out if that’s my interest” or “I think sharing experience is key in our field and I totally see myself being the lead dev and showing Juniors their way around“.
Developers who “like to code” are everywhere…
Do and show
You’ve heard it before: do side projects, and be ready to show them. Prove that you can think of a problem to solve, start a neat project and take it to the end. Start small, no one is going to read a hundred files of code anyway. Even just coding a utility class, or finishing a guided project (like the ones at JetBrains Academy) that you can show on your public Git and explain during an interview is great material.
As a Junior, you’re not expected to know it all and to produce something perfect. Being able to explain your way of thinking with a concrete example, show that you can use a git repo, explain things you had to learn to achieve your goal and how… is a great conversation starter.
Trainings and course (wisely chosen)
Additional trainings and courses you attended show that you’re aware of what your skills that could be improved, what technologies and principles are needed in companies, and that you want keep up-to-date.
On the other hand, if I had to recruit someone, I would more value a profile with few courses, but relevant to the person’s goal and to current needs, than someone who does a lot of courses randomly. Let’s be honest, if you’re doing a lot, like A LOT, one might think you’re just rushing through them to get your completion badge and didn’t actually practice. If you’ve done just a few relevant courses, and you’re able to explain what you learned and how you implemented it, that’s way more interesting.
Some certifications are also big assets. Again, make them relevant and study wisely. When I see someone with 15 years of Cloud experience sharing that they passed the Azure fundamentals, it raises a lot of questions in my head (Is it even challenging them? Did they learn anything new, while they’re supposed to be expert in the field? Are they passing certifications just to brag?).
On the other hand, when someone who’s just ouf of school passes expert level certifications one after another with zero experience on the job, that’s a big red flag: I’m pretty sure they found some dumps of the exam and studied by heart, without learning anything (it usually shows during interviews…)
Learn English
The more you can read, write, speak and understand English, the better. Developers isolated in a corner only reading documentation is over. They’re now part of a team, which is part of a department, which is part of a company with end users, product owners, partners, stakeholders, suppliers, and even colleagues whose native language is different from yours.
In a lot of companies, you’re expected to communicate in various contexts. Reading is an absolute must, most of the documentation, tutorials and forums are in English. Writing is necessary for internal and sometimes external communication (think about support services and Stack Overflow). Speaking and listening will often be necessary as well, as a software engineer will probably participate in meetings, at least from time to time.
Share about what you like and what you learn
I guess you noticed, I’m a big fan of writing. I know that’s not for everybody, I’m lucky this is my passion. The good news is, other format like podcasts, video, streaming, micro-blogging… are trending, probably more than blogging!
Even when you think you don’t know a lot, don’t refrain from publishing content if you feel like it! Showcasing your interest in IT is a great way to advocate for yourself. And that’s a great way to learn, make sure you understood what you learned, see which information you’re missing, and prove that you learned. It also shows you’ll probably be a great addition to the team, showing knowledge sharing skills.
I invite you to read this article on the Stack Overflow blog, “How writing can advance your career as a developer“. Julia Evans also wrote a great post about how to write to help others and why you are legit to write even if you don’t know it all.
Tech watch
Tech watch is really important. During. Your. Whole. Career. It means keeping up with the news in the field (either generally or, in a specific domain). There are tools to subscribe to newsfeeds (RSS feeds, Twitter aggregators, Google news…).
My own thing is to follow “influencers” on LinkedIn. Sad enough, very few Java influencers are found on that network so don’t hesitate to share my posts there 🤪 and give your recommendations in the comments.
Tips for LinkedIn users: you can filter out most of the recommended posts, usually the ones written by FAANG employees (I personally don’t find them interesting as most of the time I can’t identify to their situation, and more than often they’re just clickbait/provocative thoughts to provoke many reactions). That’s how I keep my LinkedIn feed interesting and fit to my needs. Choose the “Most recent first” view in your feed (top right, just under the form to start a new post.).
Some recommendations for tech watch
For Java news, I follow JetBrains, as they publish monthly an aggregation of the latest news about Java (they do it for many programming languages). As they sponsor Java and Spring related events, I get to know about them thanks to their feed too.
There are also groups of interest on LinkedIn which you can join (this one about Java for example). For JavaScript and Angular news, I follow Minko Gechev. For AI, I follow Reaktor. I also follow a few Java Rockstars, Java advocates, and Oracle employees. And Microsoft Azure to discover new Cloud features.
On Facebook, I follow the Java magazine and I also subscribed to the newsletter. On Youtube, I subscribed to a few channels of Java and Spring related conventions, which publish the videos afterwards in free access.
I also like a lot the content of Julia Evans (Wizard zines) and subscribed to her newsletters. She also does great content about evolving in your tech career (things like how to communicate with peers and your boss, getting a problem solving mind, writing about tech…).
Most companies have their own blog. The articles might be about pure tech or about market news. Whenever you find an interesting blog or account, subscribe and share interesting insights on your own medias (quoting the source) or share articles/posts directly.
When you’re interviewed, as a Junior you’re not expected to master 15 technologies, but just being able to say “Yes, I’ve heard of Kubernetes, I know it does that and it can work with this, I’ve watched an introductory video, but I haven’t used it yet” is way better than “No I don’t know what it is I haven’t learned it at school“.
What about the degrees?
Having a degree in computer science, or related field, is not always mandatory, although some companies still make it a must-have. In my situation, I was able to land two jobs in IT before I graduated from evening classes, without any tech, scientific or mathematical background/degrees.
In both cases, the proposal for interview came to me, I didn’t have to look for those jobs myself. I made efforts to improve, I dedicated time to my goal, I knew where I was heading, I showed motivation. I really think it made a difference and that’s how recruiters got interested in my profile.
No career start is easy, whatever the need of the market. Anything you can do to stand out from the crowd will be rewarded.
Then good stuff, making efforts will also allow you to ask for more money! Read how to estimate your value and get that salary you deserve.