en
en
IT specialists, like people in other professions, can not do everything right off the bat. Many skills are acquired only with experience.
At the beginning of his or her path, usually at a college, a future programmer learns imperative programming - writing programs that are a sequence of commands that the computer must execute. In addition to knowing how to write code, the aspiring programmer also learns algorithms and data structures, design patterns, and more.
But his knowledge and skills are so far valuable only from an academic point of view, since the university doesn't teach him what to do with all this and where to use it.
Only if you persistently improve your skills, you can become a great programmer. Not only do you need to read constantly and do a lot of theory, but you also need to practice regularly and a lot. It is not easy, sometimes monotonous and can be boring, but you need a lot of desire and perseverance to achieve it. Practice is very important in programming.
What are the qualities that distinguish an experienced programmer from a beginner? According to surveys conducted among leading IT specialists, the following can be said with certainty:
1. The ability to write simple and beautiful code
Every experienced programmer knows that the quality of a code is not determined by its length or the time it took to write it. Ideally, one should strive to make the code as clear as possible, which should lead to its simplification and, as a result, a reduction in length.
Over the years, the code becomes more and more precise. An experienced programmer has no need to write complicated code to prove something to someone. The beauty and elegance of code lies in its sufficiency, simplicity and understandability. The ability to write short code is often considered an indicator of high quality.
In addition, when a programmer writes his code, he already knows how it will work and what will happen to the computer in the process. In this way, the ability to write fast code develops.
Another distinct skill of an experienced programmer is the ability to write human readable code. This means that he must understand how the developer who will later make changes to the system will think, anticipate his questions and his idea of the task, and leave comments.
2. Design patterns and properly chosen architectural solutions
A programmer encounters a variety of tasks in his work - from writing a simple script to designing large systems. With time and experience, a developing specialist will encounter fewer and fewer tasks, the foundation for which will be something completely new to him.
And that's why for the optimal solution of typical tasks, the tried and tested patterns will be used. An experienced programmer is able to operate with code modules in his head, has an opportunity to pick up great ideas for implementation from different projects, adjusting them to new requirements.
3. Willingness to learn and the ability to admit mistakes
One of the most important qualities required in programming is the ability and desire to learn something new. The need to evolve should be characteristic of the programmer throughout his or her career. The constant expansion of horizons makes it easier for specialists to admit their mistakes.
A modern, experienced programmer keeps up with the times, follows the most advanced technologies and the latest trends in development, adapts his skills and abilities to the current and future needs of the market.
Constant learning and willingness to face new challenges are often more important than specific technical skills.
4. Focus on the results, not the time spent
With experience, maximalism disappears. An experienced programmer understands that writing code quickly does not always mean successfully completing the task. The main thing is still the quality of the final product.
What is much more important is not how many hours are spent on development, but how much time users from all over the world can save. If they have to make three clicks less thanks to the programmer's work, then it is well worth the three days of his work.
5. The necessity of the preliminary work
Very often, the preliminary work plays quite a big role and facilitates the later work, allows you to reduce or completely avoid possible transformations and corrections.
Smart developers spend a lot of time thinking about the code and finding the best solutions to implement. And even 50 lines of code per day take on a whole different value when written very thoughtfully.
According to a survey on Hacker News, many programmers still write in notebooks and even use index cards to organize their thoughts and think through the code before starting the actual work.
6. Self-control
An important skill that a programmer is not born with at the beginning of his journey is self-control. This is an inner discipline, the ability to maintain a balance between research interest and outcome, without which that interest wanes and robs the programmer of his energy and motivation to work and develop. With experience comes self-mastery, which allows you to find a balance between creativity and efficiency.
7. Sociability and rationality
Contrary to the prevailing stereotype about programmers, good communication skills are among the characteristics of a first-class specialist. Outgoingness encompasses two important aspects - the ability to work in a team and to understand customers. An experienced programmer understands that the customer is also part of the team. Listening to him, understanding him and agreeing on the plan and goals of the project is therefore key to creating a successful product.
In summary, we can say that real experience is not always at the level of technologies or algorithms. In addition to practicing, developing and improving your professional skills and self-mastery, it is equally important to learn from your mistakes, value your time and other people's time, and focus on quality rather than speed. And, of course, being a true professional in your field is characterized by the ability to be part of a team, to value and respect those around you, to create together, and to think about what values your work brings.