What You Need to Succeed in Coding

Most often, the university gives a set of tools for building anything and everything, but it is silent on how to build a career. Respectively, after a higher educational institution, a junior developer thinks that knowledge of a certain set of tools will give him the “laurels” of an IT guru. This is not the case.

Perfect knowledge of a hammer, its weight, its shape, and how to wield it does not give you any understanding of what a “cottage” is or how to build it. And the moment such a junior is asked to build a cottage, he starts building a “cottage,” using a hammer wherever he can and cannot. But if you’ve been wondering about a staff software engineer google salary and want to reach all your career goals, it’s time to learn the things you need for success.

Necessary things to know

Understanding application architecture (e.g., what a monolith is, or a “three-link”) is crucial for your practice. Strange as it may sound, in practice, 90% of university graduates do not know how software is built.  Also, you should know what OOP is, with the basic principles. An overall understanding of relational databases is also a must. Let us clarify, NOT knowledge of SQL, but an understanding of relational databases, what/why/why, etc. Algorithms and data structures are also important. This point is the most confusing for most beginners from the “why” point of view. If you can’t imagine in your head an approximate algorithm for building this or that functionality, it’s sad. You can get tons of other knowledge, but without algorithms, the way to “hardcore progress” is closed.

Other important skills

Everyone’s resume tends to say the same thing: self-taught, stress-resistant, team player. Undoubtedly, all points are important and necessary, but in fact, many do not even understand the criteria by which to evaluate themselves, how much they are self-trained, stress-resistant, or not. The advice is simple – first, decide on the criteria and how you will track that this skill is improving because knowing the points of reference makes it easier to move.

So, to summarize

Hard skills: learn the “base” first, not the toolkit. “Base” is the foundation; the walls and roof will go if you don’t have a good foundation.

Soft skills: socialize, take on more responsible tasks, and everything will be rewarded according to its merits.

We think that the most important of the soft skills for a Junior developer is not being afraid to ask questions. But these questions should not be endless, but questions that have been thought over and prepared in advance. It is very nice to see when a person has spent some time on a problem, has realized that it is not yet within his power, and, in order not to delay its solution, turned to an older colleague. Companies always support this.

In light of recent developments related to the mass move to remote work, soft skills are becoming very important: most teams are distributed, and team members are often not in the same city or even in the same country. This is where communication comes in first. You have to make a lot of calls, correspond, discuss, and decide. And the lack of ability to communicate in such a format, even for advanced developers, can be a barrier to their further growth. That is, the basic skill is communication. Of course, it is worth mentioning logical thinking and knowledge of English.

Hard skills are a little more complicated because it all depends on the direction in which the specialist wants to work and develop. Of course, the “basic” technologies are welcome: basic knowledge of at least one programming language, the principles of relational databases and OOP, and the ability to write an SQL query.