📜 ⬆️ ⬇️

“Lead me better”: What will make the work of a novice programmer more effective

Daily work consists mainly of routine tasks, and programmers are no exception. But often it is on such matters that all projects are kept. Therefore, management of workflows in IT companies or departments should include monitoring the activities of employees and a reminder of the importance of these matters.

We in 1cloud believe that programmers are very similar to artists. Just as in the field of art, IT specialists often think creatively. And although art cannot be pushed into any framework, the correct setting of tasks, motivation and control will help keep the company's operation afloat.


/ photo by David Goehring CC
')

1. Continuous learning


The modern IT services market is developing at an insane rate, so companies must be prepared even for unplanned course changes (in every sense of the word). In this regard, it would be a good idea to hire broad-based specialists (most recently we discussed the differences between Programmer, Software Engineer and Computer Scientist).

A true professional should have a broad outlook and understand not only in his narrow field, but also have knowledge of operating systems, distributed computing, computer networks and security, data structure and theory of algorithms, not to mention some basic programming language.

Of course, to create a great program, you will eventually need to write code, but first you need to think through the whole concept. This is well taught at the university, so not least it is worth paying attention to the special education of applicants or employees. They perceive programming as the ability to think and solve problems, which helps them develop in their profession and, if necessary, master any other language or type of programming (for example, functional programming).

Of course, the programmer cannot know absolutely everything, but he must know what tools to use in certain situations. Such knowledge is also useful not only when choosing a language: when a programmer knows what is required to solve a specific problem, he can choose a language with the necessary functionality (for example, static or dynamic typing, etc.).

But learning never ends, programmers have to learn all their lives, and sometimes teach others: co-workers, interns and trainees. We can advise to explain the concepts of programming through other areas closer to non-professionals. For example, it is possible to better understand the monad by referring to philosophy - the idea itself comes from ancient Greece, but many philosophers turned to this concept much later. A philosophy of Gottfried Leibniz even called "Monadology".

2. Logical structuring of work


Creating a product (about how we developed our product ), of course, is not only about writing code, at every step you have to think through a lot of things, starting with the efficiency and maintenance of the code, the choice of language and infrastructure, the structure of the database and algorithms and ending with the choice of the required testing and deployment strategy. And in no case should we forget about the logical aspect. A good technique is to formulate a hypothesis prior to the start of development, test it and adhere to the action plan .

A good team leader should be able to ask the right questions. For example, John L. Miller from Microsoft believes that these questions can be divided into three groups: Why ..? (Why do you need to do this?) What if ..? (What if the machine runs out of memory?) And How ..? (How will the program behave in the future?) This technique helps to move in the right direction and see the big picture. But another important stage - the relevance. If any of the project conditions have changed, then the list of such questions should be updated.

In addition, experts advise not to forget about the banal ways of developing logical thinking: any puzzles (paragraphs 5 and 1) will help improve problem solving skills and teach thinking outside the box. But besides work and the development of abilities, you need to remember about proper rest and even healthy nutrition (how to “bleed” programming skills ... with little or no programming, we told here ).

It has long been proven that lifestyle affects work efficiency, and even some products are capable of influencing logical thinking. For example, a tomato contains the antioxidant lycopene, which prevents the harmful effects of free radicals on the body, which, in turn, improves brain function, memory and logic.

3. Work with someone else's code


Programmers encounter code written by someone else every day. Therefore, according to Ryan Mattes, a developer at the Insite Interactive digital agency, = a true professional is someone who is able to add 300 lines of code to 250 thousand lines already written, and there’s nothing to break. The developer’s activities include not just writing code, but developing a concept and its applicability, dividing the work into several stages and easier tasks, and distributing these tasks over time.

Despite all the routine, working with someone else's code is an excellent training and exercise. But automatism comes only with experience, you just need to start with reading and understanding. Then you can proceed to the analysis of the solutions used, eliminating bugs. And the last stage of such an exercise is the completion of the code and its improvement.

We must not forget about learning. For example, on sites like “ The Code Player ” you can see the whole process of writing code for small graphic elements. You can choose the tempo that suits you, review the difficult part, read the description and comments.

4. Commenting


The benefits of this routine operation are quite obvious, but sometimes it seems to employees that they spend too much time on it, and some of them simply neglect such work. Matt Hammond, co-owner of several Internet platforms, believes that commenting reflects, first of all, respectful attitude towards his colleagues. And, according to Christopher Larkin from Oracle, commenting on the code takes no more than 1/10 or 1/20 of the time spent on the project. The speed and quality of commenting, of course, also come with experience.

Very important is the readability and brevity of comments. To improve these characteristics, the Norwegian developer Gjermund Bjaanes offers programmers to read more books. He is sure that reading fiction forms the ability to quickly perceive information, better and more correctly formulate the code itself and comments to it. By the way, a good selection of books for programmers is not about programming (from fiction to philosophy) can be found here .

5. Process Automation


Programmers often work almost 24/7: someone does their projects in their spare time, someone works two jobs or freelancing. Therefore, another important aspect of work is automation, which simplifies life, or the search for shorter solutions to a problem.

Laziness is a great quality for the developer. We can say that they were created thanks to human laziness. Larry Wall, the author of Perl, spoke about this in the first edition of his book. Laziness ultimately leads to saving time and money, which is good news.

Code reuse is just such a case. The code has already been tested, all the bugs are known, so it makes no sense to reinvent the wheel. But, of course, saving time and laziness for the benefit of technological progress is not at all the same thing as postponing everything for the last moment. It is important to monitor the progress of employees and to be sure that they know the measure and remember about deadlines.

As in any other profession, innate talent will help attain mastery. Which, in turn, any person will have to develop a constant practice. But without perseverance, gaining experience, teamwork skills and love for your work, it is unlikely that you will reach the heights of success.

Some more useful materials on the topic:

Source: https://habr.com/ru/post/316110/


All Articles