Let’s talk about job hunting in programming. It’s no secret that software development is one of the most promising fields out there — yet, as hundreds of developers learn the language, it’s easy to feel insecure about job prospects.
Today, I will be answering a question that is on every developer’s mind — how much do you need to know to stay relevant? Since I’ve worked in software development for many years, I thought a change of perspective would be more valuable for novice programmers. That’s why I reached out to my software development students — here’s what they had to say.
At some point, I got curious about what entry-level developers worry about when looking for their first Java job. After a few hours of research and chatting to my students, I realized most programmers share the same concerns, such as:
- Not having the skills that match the job description or being called out as a pretender during the job interview.
- Having no portfolio or case studies to demonstrate your proficiency and losing to more experienced candidates.
- Having no work — a lot of developers are actually worried that Java is not in style anymore.
- Overshooting or undershooting in salary expectations. Although the two problems seem worlds apart, they have a common denominator — not understanding how much your work is worth.
Looking for a job in Java programming is stressful. On the one hand, there are thousands of openings — on the other, a lot of these are top-tier, require the advanced understanding of frameworks and assistive technologies most entry-level professionals don’t yet have.
That’s why finding the right opening is a bumpy road with a lot of room for mistakes. The good news is, you will not have to make these on your own. To make your path to Java proficiency and a well-paid job easier, my students shared their job hunting lessons.
Andres is my Java student from Mexico. Having a college degree and years of experience of career-building in a non-tech field, he was confident in his people skills and the ability to present himself. His Java coding skills were quite impressive — Andres knew how to design and maintain basic but functioning mobile apps, and he had hands-on experience with Spring, Maven, and Hibernate.
Yet, job hunting wasn’t easy for him because he struggled with English.
“Once I got a call from a big European game development company. Using basic English I explained that working in a different language is a challenge for me. Regardless, the HR manager scheduled an interview. It was a disaster! I could barely understand what the team lead was talking about — I’m pretty sure I got the theory wrong not because I didn’t know the answers — rather, poor language knowledge and anxiety took a toll on me.
Surely, I could settle for a domestic, or Spanish-based offer but I didn’t want to limit my reach. That’s why I took learning English seriously, with tools like Duolingo, Anki cards, and Italki. I needed time to get comfortable using the language but the impact of the change was drastic. I was moderately confident on interviews and got a junior Java developer offer effortlessly.”
Java is a complex language — you need to learn its syntax, know how to handle databases, be skilled in frameworks, understand the concept of concurrency, focus on both mobile and web development…the list could go on forever. Some of my programming students struggled to switch from learning to job hunting — Ashley was one of them.
“Only in retrospect, I understand that imposter syndrome and perfectionism were the main reasons why job hunting took me so long. At one point, I was learning Java for over three years and never sent a single CV. The language fascinated me — that’s why after acquiring the basic understanding of syntax, database handling, and frameworks, I didn’t stop. I learned patterns and algorithms, meddled quite deeply in concurrency — all without looking for jobs.
Eventually, I created a LinkedIn account, shared a link to my GitHub, and described my skills — my inbox exploded. Recruiters were reaching out with offers I had no idea I’m worthy of. Needless to say, I got to choose the opening on my terms. Everything turned out fine — yet, I often wonder why I didn’t start job hunting earlier. That way, I’d have much more working experience and would ultimately be a better professional.”
Working is important to get more experience, but finding a job with no experience is an impossible conundrum every college graduate or self-taught learner faces eventually. Java developers are no strangers to the issue since the lack of portfolio did get in the way of some of my students. One of them, Soren, shared his story:
“I started job hunting early, as soon as I was confident in my skills. However, the reality check hit me sooner than I had expected — it turned out, if you don’t have portfolio samples to back your expertise, HRs will not look past your CV and schedule an interview.
After a week or two of silence, I realized what my problem was. So I changed my cover letter and mentioned that I’d happily complete a test task for the company. Senior developers might see it as a waste of time but, for me, this was a win-win decision. In the best-case scenario, I’d have a job, while the worst one was me getting more portfolio samples.”
If you are set on it, even a Reddit community can become a powerful job-hunting pool. Similarly, a destination as obvious as the “Careers” page is often a dead-end since hundreds of candidates use it to send CVs.
One of my students, Arnold, who’s now a middle Java developer, used this strategy for networking:
“When I need to find a job, I find the least famous social media channel of a company or contact the HR directly. In the first case, if no one else reaches out to your prospective employer via Twitter, your message will definitely stand out and get noticed. Finding the contacts of hiring managers directly is harder and requires more research (personally, I use hunter.io to get in touch with people from different companies.
Careers or job boards? I am not a fan of these. They are swooning with candidates. Remember, the number-one rule in job hunting is standing out — that means avoiding being a part of the crowd and looking for creative ways to get in touch.”
If you have job-hunting-related anxiety, doing interview prep really helps. This way, rather than stressing mindlessly and tanking your chances at employment, you’ll be tackling a problem proactively and becoming a better developer.
Even if you think you’ll be fine with no beforehand preparation, the truth is, on job interviews, there’s always enough room for surprises. Eve, my Java student, still has anecdotal stories to share about her job hunting.
“I used to mock prep interviews thinking that if you are good enough, the employee will see it. However, the fun ended when I was getting questions about the three classical SQL forms, needed to quickly reference deadlock examples, and so on. At first, I tried to come up with something, eventually, started admitting to my knowledge gaps. Now Effective Java is among my go-to resources and I do a short round of prep before each interview. It definitely improves my confidence, as well as interviews’ overall success.”
To know if you’re ready to work as a junior Java developer, it’s helpful to know what entry-level specialists should know. Personally, I break all junior job offers into three groups: entry-level, decent junior, and confident junior. The first type of openings is the one where employers are open to teaching you and don’t mind you making mistakes as long as you have a basic understanding of the language.
The second type of openings is the one where you get a narrow range of tasks to handle on your own — these are often specific and repetitive but you need to handle them autonomously.
Lastly, confident and relatively well-paid juniors should already know enough Java to know how to use the language to improve the project’s functionality and performance and create solutions that offer a smooth user experience.
- Basic OOP principles — abstraction, encapsulation, inheritance, polymorphism, and others.
- SOLID principles and the way they apply to Java.
- Knowing how to manage interfaces, classes, and objects, understand the difference between these elements.
- A deeper knowledge of Object methods and their top applications.
- Hierarchy of collections and exceptions.
- Basics multithreading, understanding the concepts of threads and processes.
- Superficial command of lambdas, streams, and functional interfaces.
- Basic understanding of pile and stack — speed, memory consumption, structure, the garbage collector (decent command).
- Collections, processing null-statements using HashMap and TreeMap.
- Handling generics, using abstract class constructors, “IS-A” inheritance.
- Methods, wrapped classes, hash-code, equals, boxing-unboxing.
- Basic multithreading concepts, understanding how to create a safe thread.
- Exception handling.
- Basic understanding of NIO and I/O.
- Data and period handling.
- A deeper understanding of multi-threading, handling main concurrent classes, understanding which elements the synchronization is centered around.
- Understanding main garbage collector strategies.
- Inheritance of exceptions.
- Where to find info about classes and methods in runtime.
As a beginning Java programmer, you should invest some time in creating a stack of learning resources to support you through each step of the learning curve. Here are my favorite resources to help beginners master the programming language:
- Codegym — The first tool I recommend to my students. As a Java-only learning platform, it approaches the language deeper than other platforms. The platform combines bit-sized theory lectures with practice quizzes. There are over 1,200 practice problems that cover Java Core, concurrency and multithreading, APIs, and frameworks.
- Programming by Doing is another decent platform for Java learners. Although it’s not highly practical, this resource hosts comprehensive tutorials on Java and other relevant topics (design patterns and OOP). To put the theoretical understanding of main language concepts to practice, a student can complete five practical assignments given at the end of each lecture.
- Cave of Programming — A platform that hosts hundreds of Java tutorials, written by John Purcell (one of the leading experts in software development). It will definitely give you a solid theoretical grasp of the language.
- Head First Java.
- Effective Java.
- Learn Java in One Day and Learn it Well.
- Think Java: How to Think Like a Computer Scientist.
- Java: The Complete Reference Guide (11th Edition).
At first glance, it might seem that getting a job in Java is all about programming language proficiency. However, there’s more to it. By working on improving your English skills (if you are from a non-English-speaking country), building a solid portfolio, and preparing for interviews thoroughly, you will make job hunting much easier.
Firstly was published on Better Programming.