CodeGym /Java Blog /Random /Life after the first offer. What does a beginner Java dev...
Level 36

Life after the first offer. What does a beginner Java developer need to learn?

Published in the Random group
Hi! Here we talk a lot about how to get your first job, what you need to study, and how you need to behave. That's all well and good, but what do you do after you get your first job? Can you relax and simply go with the flow? Nope. Life after the first offer. What does a beginner Java developer need to learn? - 1Being a professional programmer means that you will continue to learn. A lot. A lot, a lot. So today I would like to speculate a little about areas of further personal development after you receive the coveted first offer. Let's go.

1. Deepen your knowledge of basic topics

To get your first job, you probably already learned Java development basics. Do you think this will be enough? No, no, and one more time, no. The difference between experienced developers and green newbies is their depth of knowledge. The areas of knowledge seem to be the same, but the senior developer can explain nuances that you don't even know exist. On the one hand, you can say that everything is about experience. An experienced developer is said to be one precisely because he or she has already bumped into everything many times. That's why he or she knows it all in such detail. That's true. But only partially. In addition to gaining constant experience through coding, developers also study theory by reading articles and books and watching videos. I would like to note that the theory you choose to study needs to be stuff that will truly expand your horizons on the topic. If you immediately start an inordinately deep dive into a topic that you only know very superficially, then what will you end up with? NOTHING. That will be nothing but a waste of time, so choose your theory wisely.

2. Obtain certificates (Java, AWS)

Many courses now issue certificates when you complete them successfully. But let's be honest. Not every company cares and looks at them. That said, there are some certifications that are important and can set you apart from the pack. I'm talking about Java certification from Oracle and AWS (cloud services). For example, Java certification is provided by companies endorsed by Oracle. These companies create Oracle-approved conditions for testing skills. In fact, that's why these certificates are internationally recognized. AWS certification follows the same principle, but focuses on learning AWS technologies. Of course, it isn't just the "piece of paper" that matters here, but also the level of knowledge that you acquire as you prepare for the test. If you have a certificate, you are unlikely to be stumped by questions about this technology.

3. Study popular technologies

Information technology is constantly moving forward. If you are already in IT, then you'll need to adapt. What you learned a year ago may become irrelevant tomorrow. This is totally normal. A developer's main superpower is the ability to quickly absorb and assimilate new material and forget the superfluous. This means that if you want to remain relevant, you must constantly monitor the situation in the field. For example, technologies like Kubernetes and Docker are currently in demand. AWS technologies are also now very popular, and the use of the Kotlin language is growing rapidly (it is gradually starting to gain market share from Java).

4. Dive deep into a specific technology

Some experienced programmers become professionals in one technology. There is a lot of information out there, even just in the area of Java development, so it is impossible to be a guru in everything. Why don't you also choose one in-demand subject (a technology or framework), for which you will become an absolute master who knows all the shadowy nooks and crannies? If you do this, you could become a very valuable specialist for your company. During the interview new candidates will be brought to you to check their proficiency in your area of expertise. You'll also be asked to review projects that use "your" technology and give advice (provide comments) on how to use the technology more efficiently and correctly. As a rule, companies want to have access to specialists like this. If you tell management about your desire to immerse yourself in any technology, they will certainly help you choose the right one (usually the one currently in demand at the company) and find a mentor at the company. For example, I was offered to undertake a deep study of Camel, since several customers were Java developers with this particular skill. Sure, this technology isn't entirely new, but it is in great demand, and if you're a strong Camel specialist, then you won't be lost in the crowd in the labor market: employers will bend over backwards to have you. Unfortunately, at the time I was busy pumping up my English and adapting to a new project, so I declined. There are various technologies suitable for a deep dive: from Spring as a whole to specific Spring frameworks (Spring Security, Spring Cloud, etc.), or AWS, and so on.

5. Learn a new programming language

Another possibility for further professional development is to study a second programming language. Here I see three options:
  1. A helper language that is often encountered in Java projects. For example, Groovy, which is used to write various supporting scripts, or Python, which is often coupled with Java (at least, I come across it quite often).
  2. Or Javascript and some of its frameworks such as Angular or React. This knowledge will set you up to become a full-fledged full-stack developer. Experts like that are quite rare and in demand, and accordingly, they can command substantial salaries (an order of magnitude higher than ordinary Java developers).
  3. Learn a language that grew out of Java. For example, Skala or Kotlin. These programming languages are now gaining immense popularity and are even beginning to squeeze Java itself out of the market a little. Maybe it's time to get on the bandwagon? Many foundational principles flow from our beloved Java, but there are many innovations and fixes for Java's shortcomings.

6. Level up your soft skills

Soft skills generally mean communication skills. In other words, your ability to communicate with other people, to convey and promote your ideas. If you want to grow into a leadership position, for example, you want to become a team leader or an architect, then you need to improve your skills in interacting with other people. Literature will help you do this. For a start, I would recommend the book "Deadline. A Novel About Project Management" by Tom DeMarco. YouTube videos, online articles, and various courses or trainings will also be useful. But for me, the most important thing to do is to try to communicate more with different people, and the more, the better. Doing that, you will stop being afraid of contact with unfamiliar people. You will begin to find common ground for conversation and avoid awkward pauses. But if you are an introvert by nature and interacting with people bothers you a lot, then you should ponder whether it's right for you. Perhaps it would be better to spend that time becoming a master in some technology? Landing your first job is not the finish line, but rather just the beginning of your journey. Now is precisely the moment when your body of knowledge should grow like mushrooms after rain. This means it's super important for you to determine your areas of focus and your goals. After all, even the fastest ship, with the most experienced captain, will simply drift on the waves without an intended destination. So choose your direction, set a specific goal and time frame for achieving it, and start moving. Perhaps in small but steady steps. I hope that today I pushed someone to think :) Well, that's all for me. Leave likes and learn Java ^^