My business is Franchises. Ratings. Success stories. Ideas. Work and education
Site search

What should a programmer be like? Programmer « To help graduates « Useful information

Daria Gaina, head of web development at JMA SRL, told Tipler about the qualities that effective programmers should have.

We often have to challenge ourselves to find talented, experienced programmers, especially if the salary offered must match the budgets of the projects. Over the past few months, we have had to hire a large number of developers due to a significant expansion of our client base. This was a big problem, since our company is not large, and it is necessary to have a special talent of persuasion in order to interest a specialist to leave an impressive company with a large salary to work in our agency.

I decided to write a short article about some of the characteristics that I think are very important to consider when hiring a good programmer, based on our experience. In addition to knowledge of the programming languages ​​necessary to perform the work, there are other specific requirements for these specialists.

I have identified 14 qualities that will help select the right applicant.

1. Good technical skills

One mistake that many managers make is hiring according to a list of approved requirements. Instead of requiring two years of work with 1C Bitrix, look at the big picture of programming experience. A programmer who has worked with other control systems for many years, but has recently started learning Bitrix, will be an ideal fit, since his many years of experience gives him an excellent basis for development.

For example, in an interview you might ask: Describe your experience with other management systems.

2. Willingness to learn

Technology is always evolving, and the skills and abilities that a programmer has today are likely to become obsolete in a few years. It is important to find a specialist who is interested in following the latest trends and who is eager to participate in any continuing education opportunities.

For example, in an interview you might ask: what have you done and are doing to keep your programming skills up to date?

3. Troubleshooting

Writing code is only part of a programmer's job. When software is not working properly, a professional technician is expected to be able to fix the problem quickly and efficiently. Instead of spending hours blindly making changes, a good programmer prefers to carefully examine his code and fix possible problems until a positive result is obtained.

For example, in an interview you might ask: how do you track and fix bugs in your code?

4. Ideal working environment

Some programmers need complete silence to concentrate, while others may work in a noisy office. An employee's personal preferences are an important part of their productivity, so it's best to be clear about the situation in the office, avoiding problems when the new employee is already on the job.

You can ask: Describe your ideal work environment.

5. Ability to solve problems

For those who have never tried to build an application from scratch, programming is best compared to solving an extremely complex mathematical equation. A good programmer thrives on finding ways to make something work, despite all the difficulties and difficult conditions. Otherwise, you may hear the phrase "It can't be done" every time you propose an innovative new project.

A good interview question is: how would you create (you could suggest dismantling a very complex project using new technologies)?

6. Passion for work

While some programming staff may just be doing the nine to five functions, many managers are interested in finding someone who is happy to stick around when the situation calls for it. Often these employees can be singled out during the interview based on their main interests.

Good interview question: What are your hobbies?

7. Stress resistance

Programming can be an extremely stressful profession. When deadlines are “burning” and nothing seems to be working, you can get a lot of stress. The ideal programmer candidate will be able to handle the most stressful situations calmly and, most importantly, be able to continue working in such conditions.

Interview Question: Describe a time when you were under a lot of pressure and your project didn't work due to bugs in the code. What did you do in this situation?

8. Communication skills

As a rule, programmers are not required to have high customer service skills. It seems that they sit in front of the computer all day. However, programmers must interact regularly with managers, employees, and clients, so good communication skills are essential to working with other people. This is especially true if your programmers are sometimes asked to take part in customer meetings to explain how the system works.

Interview example: Explain how your favorite application works so that a layperson can quickly understand the process.

9. Business vision

It's easy to lose sight of the big picture by focusing on building one piece of software. The ideal programmer has a business focus that allows him to go beyond the current project. A business-oriented programmer will come up with ideas for new projects that will help improve and automate work.

Example of an interview question: Have you ever had to make a proposal to improve business processes?

10. Ability to plan

Instead of jumping straight into a new task, it's a good thing for a programmer to learn about the desired end product. Only after this analysis, the programmer will be able to develop the project structure and start writing the program code.

Interview example: Explain your approach to a new project. What do you do first?

11. Patience for mistakes

Programmers rarely get it right on the first try. In fact, development failures are almost guaranteed. It is important to find a specialist who sees his mistakes and perceives them as an opportunity to improve his skills, and not as a sign of defeat.

Sample interview question: Have you ever spent many hours in code and come to the conclusion that you have wasted them? What did you do in this situation?

12. Teamwork skills

A programmer rarely works alone, even if he is the only developer in the company. It is important for a programmer to be able to work with designers, managers, marketing and sales specialists, as well as with other programmers.

13. Ready for research

The programming language is only part of the job. A good developer must be able to dive into a specific industry in order to develop programs that work for a specific audience and in a specific area.

Sample Interview Question: Tell us about a time you needed to learn about a specific business/industry? How did you have to conduct studies and research in such a situation?

14. Respect for deadlines

Most programmers work on projects with specific deadlines. Although it is important that managers allocate reasonable time for development. Programmers must also understand and stick to deadlines. It is very important and invaluable if the programmer is able to do everything possible to complete the work on time.

Sample question: Describe a time when you had to complete a project on a tight schedule.

Only the technical requirements for candidates are constantly indicated, but it often remains unclear whether any additional qualities are required and which ones are necessary at all. Let's find out anyway!

It would seem that in order to write code, you do not need any personality traits - it is enough to be a technically trained specialist. But without certain qualities, you will not be able to both develop and exist in a team, in a company team.

Therefore, we suggest that you familiarize yourself with the personality traits of a programmer that will help you develop yourself and feel at ease in the workplace.

  • Logical thinking.

Programming without logic is hardly possible, but not everyone is equally good at finding solutions to complex problems. Therefore, you need to constantly maintain your analytical thinking. For example, play logic games, solve logic puzzles, tests, crossword puzzles.

  • Attention and ability to focus.

Since the programmer is constantly looking at the monitor while working with the code, one cannot do without attentiveness and the ability to concentrate. You need to be able to keep your attention on one task for a long time, not be distracted by extraneous conversations, notifications and letters, as well as thoughts and feelings in your head while doing your work. Of course, you must not forget about breaks, but holding your attention for a couple of hours will be very useful to you.

We mistakenly think that we need time in the morning to get ready for work. In fact, in the morning your body is in good shape, rested and ready to tackle the most difficult tasks. Therefore, put off the news feed, checking your mail (if it can be postponed) until the afternoon, and take care of the most difficult tasks. Your level of concentration will be the highest, you will be surprised how pleasant and easy it is to work in the morning.

  • perseverance.

The job of a programmer is a sedentary job. It is logical that perseverance in one place will come in handy if you want to stay in this area. Working hard for a long period of time can lead to success pretty quickly.

  • Curiosity.

We mean professional curiosity, not the desire to know "who invented the air conditioner?". The curiosity that you need is the desire to know more if you understand that your knowledge is limited to a certain technology, language, and so on.

  • Responsibility.

The work of a developer involves a lot of responsibility for the code that he creates. Responsibility, first of all, to yourself, and then to the client, the customer.

  • Striving for self-improvement.

The desire to develop, to be better every day than yesterday and only go up is an atypical feature of programmers. But, if you have it, you can be sure that it will be yours. This quality of a programmer's personality guides him along the entire career path, leading him to managerial positions or making him a first-class specialist in his technology. Don't forget to keep learning, learning the latest frameworks, and networking with peers.

  • Imagination.

If they tell you that programming is not a creative profession, then they never wrote code. A good imagination, coupled with other qualities of a programmer, will allow you to find non-trivial solutions and simplify the code so much that others will simply wonder how the developer could have thought of this before. On the other hand, imagination is a great way to mentally visualize code. When a programmer creates code, he must understand what he is doing in the real life plane.

  • Sociability.

Most developers now work in a team in one way or another. Therefore, if you learn how to communicate effectively, not be afraid to ask for help or ask for the opinion of a colleague, your business will go uphill. Sociability refers to soft skills, the possession of which will help to become an integral part of the team.

Communication can be understood as the ability to write code that any developer can understand. Communication between developers often occurs through code. If the computer understands you even with “dirty” writing, then a person may not only not understand what you wanted to do here, but also not know how to fix an error in such code.

  • Persistence.

Perseverance is a personal quality that allows you to pursue long-term goals and not deviate from them. Persistence is also useful when defending your own solution to a problem or introducing a new feature. Often, this quality saves time and resources on the project.

We are sure that you can add to this list of personality traits of a programmer, especially if you have experience in IT. Of course, some personal qualities are pushed forward, pushing the rest into the background, depending on the specialty in IT.-sphere. So, a business analyst will need the ability to communicate with people much more than a regular developer. Just like a developer needs perseverance more than. But we know for sure that if you can develop at least 50% of these qualities in yourself, you will pass interviews more successfully and do your job better, solve problems easier and find the right solutions faster.

Many people know or have heard somewhere that a good programmer must be a lazy programmer, but I think that not very many people know where it all came from and what is behind it. And for some reason, everyone remembers laziness, but they don’t remember the other two qualities that Larry Wall spoke about in his book Programming in Perl. Actually, he was the author of these "three unique qualities for a programmer", for a good programmer, as he believes, and these three qualities are laziness, impatience and pride.

Let's start with laziness

Everyone thinks that a lazy programmer is a programmer who is too lazy to lift his ass and do something, and so he sits like that and therefore he misses the deadlines and therefore he is too lazy to answer something, he is too lazy to write documentation, he is too lazy to write tests, he is too lazy to write everything , he is lazy and therefore, as it were, a good programmer. But in reality this is not so, this is a somewhat special kind of laziness and this is the kind of laziness that encourages the programmer to automate those tasks that he does not want to spend his energy on or that have to be repeated over and over and over again, in fact one of the qualities of the Perl language is regular expressions. Larry Wall himself, as far as I know, worked a lot with text and he became so lazy to constantly do the same tasks with text that he created the Perl language to automate text processing in the first place, of course you can argue how good Perl is or Perl is a bad language as a programming language, but this language did its job and was at one time a pretty strong player, let's say, in the programming scene. So let's read what Larry Wall himself writes about laziness: “Laziness is the quality that makes you make great efforts to create tools that will save human labor, your labor and the labor of other people”, i.e. people will use these tools day after day and let's just say they won't waste energy and labor on these endless things that you automate with these programs of yours. But he also writes that it is important not only to create these tools, but it is very important to document these tools, because you are too lazy to answer these endless questions “how does this work”, “how does that work”. Those. not only did you create something useful, but you also documented it so that you would never be asked for that advice again. Larry Wall seems to be saying that “I’m lazy, so I not only wrote (invented) Perl, but I’m also writing this book on how to use Perl so that you don’t ask me these questions.” What else can be included in the same piggy bank? I would say that sometimes a lazy programmer is a good programmer - when he starts asking the question "why?" and sometimes questions "features" that he does not understand. Those. sometimes it happens that a customer’s problem can be solved without programming at all, because for example this “feature” is not needed, or it can be solved with one email, or it can be solved with one Google spreadsheet or Excel spreadsheet and you don’t need to program anything at all and you save your energy and you basically solve the problem of the client - I think that this can also be attributed to laziness.

Now let's talk about the second quality, which is impatience.

Impatience manifests itself when your computer slows down or your program slows down, or your webpack build slows down, or your tests slow down, etc. you get mad waiting for all these things, you just start working on speeding up your build, speeding up your tests, so that everything works for you, so that your program works quickly and so that you have fast feedback - that's it and there is impatience.

And the very last third quality of a programmer that Larry Wall talks about is pride.

And he cites as an example (meaning) pride from Greek mythology, i.e. pride for which Zeus killed many people who became proud and began to exalt themselves above god. This is how proud a programmer should be, and he writes that this is one of those qualities that does not allow you to release bad code, poorly written code, for which you will be scolded and blamed. You write such code as if the next one after you, who will support this code, knows where you live, you do not allow yourself to cut corners, knowing that these cut corners will simply hurt you or your colleague in the future. Here again, we must remember that there is always a balance, there is premature optimization - one of the evils of programming. Here it is about that necessary minimum quality for which you are respected in the circle of your programmers.

Technical skills are fundamentally important for any IT professional. In fact, they represent the core of knowledge that an IT specialist needs to be an IT specialist. However, if a person wants to become truly successful in his profession, he needs other qualities as well. These are skills that will help a specialist to successfully interact with people. Here are 10 qualities that an IT specialist needs.

Ability to communicate

An IT specialist is forced to send a huge number of emails, coordinate projects and terms of reference. Therefore, even the most talented programmer must be tritely literate. Oral communication is also important. A very valuable skill for an IT specialist is the ability to explain complex things in simple terms to those who do not understand them.

Listening skills

An IT specialist should not only talk about his ideas and thoughts, but also listen to the ideas and thoughts of others. By listening carefully to what your client or boss wants, you will be able to understand how to implement this task. And feel free to ask clarifying questions.

Teamwork

Very often, IT projects are implemented by a team of professionals, and not by one person. Therefore, it is very important for an IT specialist to learn how to work in a team. As mentioned above, he must be able to express his thoughts and ideas to colleagues, as well as be able to listen and accept someone else's point of view.

Leadership

Even if you are not formally a manager, in your work you will most likely encounter situations where you will be required to manage a project for some time. Leadership skill requires strong communication skills, the ability to delegate authority and an understanding of the ultimate goal.

Mentoring

IT professionals often find themselves in the role of teachers instructing new employees or clients. An employer will always value an employee who is able to patiently and effectively train others.

Flexibility

IT professionals sometimes face unexpected challenges or unforeseen changes. It could be a completely new problem or a last-minute change of task by the customer. An IT professional must be flexible to quickly deal with such changes and look for creative ways to solve unusual problems.

Creativity

IT professionals are constantly working "for the future" by predicting and developing solutions to potential technical problems and needs. Such preventive thinking requires a developed imagination and creativity. Employers are looking for people who can approach work creatively.

Ability to negotiate

Regardless of the specific specification, the ability to negotiate will be useful for anyone involved in the IT sector. It can serve in a variety of situations, from hiring people to a project to finding investors or selling a startup. Also, the ability to come to mutually beneficial agreements is a skill that is very necessary for building a career.

Ability to make presentations

Whether it's a one-on-one demo or a speech in front of a large audience, the ability to present your work is a very useful skill for an IT professional.

purposefulness

Many IT projects die due to lack of funding, problems with clients, poor teamwork. For a project to live, the people who work on it must be focused on the end result and understand what they intend to achieve in the end. An employer will always appreciate an interested and purposeful IT specialist who does not leave the project in case of temporary problems, but stays with him from the beginning to the victory.

In our country, the profession of a programmer is treated differently. Some believe that its representatives are geniuses who sit at the screens of their devices all day long and receive millions. For others, the direction seems boring and is associated with monotonous duties. In fact, programming is just for the elite. Profile training is now available to everyone. But it should be considered only if there are certain qualities, understanding the specifics of the work.

Expert opinion

Ekaterina Kolokolova

Career orientator. Diploma in Children's Engagement in Education. She has more than 10 years of experience in conducting seminars, trainings and lectures with audiences of all ages.

A programmer is a person who develops computer programs and creates them on the basis of codes, special mathematical models. It can be a game, a computer OS, an algorithm for a piece of household appliances, a web or a mobile application. When creating programs, a professional uses a special programming language (today there are already several of them), consisting of letters and / or special characters.

A detailed description of the profession and the list of duties of its representative depend on the specialization of the employee. Men and women of any age can build a career in this field with equal success. Having a university degree is not required, but deep knowledge in some technical disciplines is an advantage.

A programmer is not always a computer geek who does not take his hands off the keyboard. Some representatives of the profession practically do not work on a computer or spend a minimum of time behind it. Many people prefer to work on paper, and use the equipment to test developments.

The history of the programmer profession

The profession of a programmer arose long before the advent of the computer. The first device that needed programming was the loom, created in 1804. It contained a series of cards designed to form various machine patterns. A little later, the first computing analytical machine was created. And the program for her in 1841 was developed by Countess Lovelace, who became the first programmer in history. It was she who laid the foundations of the direction, invented a number of concepts that are still used today. Thanks to her developments, the first computer was created and programmed in 1941.

Important qualities

The basic characteristic of a programmer includes three qualities: perseverance, analytical mindset, logical thinking. Also, a representative of the profession will need an excellent memory, the ability to systematically approach problem solving, and work in a team. Another employee must be able to explain complex information in an accessible language, be assiduous, attentive and pedantic. Most often, programmers are forced to work in multitasking mode, so the ability to switch from one subject to another will be useful.

A programmer is a specialist engaged in the direct development of software for various kinds of computing and operating systems.

Who suits

To a large extent, programming consists of monotonous actions. The direction is more suitable for introverts who do not feel the need for constant communication, who are able to do monotonous work for hours. At the same time, a representative of the profession should not be an absolutely closed person. He will have to communicate with customers, colleagues, performers. The direction is constantly evolving, so the programmer needs a thirst for knowledge and the desire to learn something new.

Varieties of the profession of a programmer

In programming, the following specializations are distinguished:

  • application programmer - develops software directly for practical use. These can be games, instant messengers, editors and accounting programs, as well as products for video surveillance, fire extinguishing systems, etc. The same employees often install universal software at the facility, adapting it to specific conditions and parameters;
  • system programmer - the most highly paid and sought-after representatives of the direction. They work with networks and databases, create OS. Their activities are based on the development of services that must manage entire systems of installations, ensuring the functioning of products;
  • web-programmer - works with global networks, for example, the Internet. May be responsible for creating a database interface, a dynamic web page, or a site framework.

Also, programmers are divided into groups according to the type of language they work in (C++, PHP, etc.). Professionals are also divided according to the tasks assigned to them (creating databases, games, software, mobile applications, and others).

Profession programmer: pros and cons

The number of requests on the Internet on the topic of learning to become a programmer is growing from year to year. The competition for places in prestigious specialized universities and even secondary specialized educational institutions is increasing. The direction really has a lot of positive aspects, but there are also disadvantages.

Job description example Instruction example (p. 2) Instruction example (p. 3)
Instruction example (p. 4)

Benefits of being a programmer:

  • high level of income - even for ordinary employees of such a plan, the salary often exceeds the average level in the country;
  • a lot of opportunities for additional earnings - programmers often take part-time jobs in parallel with their main employment or launch their own projects;
  • demand - such employees are needed in all spheres of human life, so the demand for them is only growing so far;
  • many options for creative and professional implementation;
  • the ability to work remotely and on a flexible schedule;
  • various career growth scenarios — a professional in the field of programming can grow up to the head of a project, a direction or an entire company;
  • universality that allows you to work in any country in the world;
  • no need to get higher education - among the representatives of the profession there are many self-taught people who did not graduate from universities and even courses.

For real computer lovers, the disadvantages of the direction are subjective.

  • Firstly, it is a sedentary lifestyle, with which it is quite possible to fight if there is a desire.
  • Most of the specialists are under 40 years old, this is not the area to just hold a position until retirement
  • Rapidly changing trends and constant information updates. For those who enjoy learning, this will not be a problem.
  • Often such employees have to work in emergency mode, but this can be avoided. You just need to learn how to manage your time.
  • This specialty is most likely not suitable for people who feel the need for constant communication. Most of the time the programmer spends alone with the computer.

Notable members of the profession

Linus Torvalds

Finnish-American programmer, hacker

Encouraged by reading Andrew Tanenbaum's book on the Minix operating system, Linus created Linux, the core of the GNU/Linux operating system, which is currently the most common free operating system and also the most popular server OS.

Programming training

To learn to be a programmer, you can enroll in a professional college or university in one of the specialized specialties. In the first case, you will first have to complete 11 grades of school, in the second, 9 years of school education is enough. Another option is to study on your own, attending programming courses and other technical programs if necessary.

At the same time, it is important to understand that, when applying for a job, having a university diploma can be a serious advantage. Especially when it is a document of the Moscow State Technical University named after Bauman, the Technical University of St. Petersburg, the Peoples' Friendship University of Russia, the Moscow Technical University of Communications and Informatics.

The profession of a programmer is one of the most popular and sought-after technical specialties in the modern computer age.

What specialties to study

Programming is represented by three basic specializations, but there are almost two dozen directions in it. When planning to study at a university or college, you should initially decide on the specialty. In addition to the basic "Computer Science and Computer Engineering", "Fundamental Informatics and Information Technology", there are interesting and popular profiles today. For example, "Information Security", "Business Informatics", "Electronics and Nanoelectronics" and many others. Popularity in recent years is gaining "Radio engineering", "Radiophysics", "Software engineering".

Programmer's job

The working day of a specialist is not only writing codes in order to create new computer programs. Depending on the qualifications, experience and level of education, he can be engaged in testing "foreign" products, eliminating defects in them. Sometimes programmers are responsible for conducting presentations, preparing related documentation, resolving current issues, consulting stakeholders. Also, representatives of the profession implement and correct developments at enterprises, draw up instructions for users. Individual professionals are responsible for ensuring the information security of developments, organizing the work of all participants in the process.

Demand

Experts believe that a programmer is the profession of the future. An experienced worker of this profile will easily find a job. Also, if desired, he can work for himself as a freelancer, or create or promote his own project. At the same time, it should be borne in mind that such a high level of demand has become the reason for serious competition. Competitions are announced for promising places in reputable companies. Many students, already starting from 2-3 courses, are trying to find a part-time job so that they already have experience.

How much do people working in this profession earn?

The level of income of a programmer depends on his professionalism, field of activity, type of employment, work experience. Today, more and more often, young people already at the training stage work in specialized companies in a part-time format, while receiving from 20-30 thousand rubles. On average, the salary of a programmer in the country is in the range of 60-100 thousand rubles, but if desired, even freelancers earn an order of magnitude more.

Salary as of 31.12.2019

Russia
40000-180000 ₽

Moscow
70000-200000 ₽

Is it easy to get a job

The owner of deep knowledge in computers and programming skills will not remain without work. In particular, a person with specialized education and experience who is able to act independently, but at the same time knows how to work in a team, will not have problems with employment. The peculiarity of the sphere is that practical skills are valued here. Therefore, many newcomers at the first opportunity get a job in a reputable company for ordinary positions, and then reach a high level in a few years.

Sample resume

Career steps and prospects

In programming, there is an unspoken conditional hierarchy that plays an important role in any career development scenario. At its lower level are beginners with no work experience and with a minimum set of practical skills - junior. After 1-1.5 years of active use of skills and an increase in their number, they become middle. After another 2.5-4.5 years, the programmer is assigned the status of senior. Only after that, the employee can begin a real career growth - to the head or curator of the project, the head of the IT department.

Conclusion

Over the past five years, the profession of a programmer has consistently been included in the ratings of demanded, highly paid and promising. To obtain it, you must unlearn at a university or vocational college. The necessary knowledge can be acquired independently, combining the study of theory with the development of the necessary actions in practice.