📜 ⬆️ ⬇️

About novice developers and how to work with them

image

Over the past ten years, many novice developers have gone through me. Yes, and what a sin to conceal, I, too, was once a novice developer. During this time, I received thousands of questions a la “how to become a developer,” as well as requests to take people into my practice. Unfortunately, even under the strict guidance of more experienced specialists, not everyone has the strength and motivation to move to a qualitatively new level. Statistics is a stubborn thing: the number of “trying” and “achieving success” is distributed according to the Pareto principle, i.e. 20/80, where a maximum of two out of ten people manage to pass the initial test. The rest fall off on the road or the learning process is stretched over many years. And yet, what should a novice developer be, what skills and knowledge should he have? This will be discussed in the article.

Most often, a novice developer (hereinafter we will call him simply a junior) is a third or fourth year student, sometimes a graduate of a college or university who decided to link his future activities with the IT sphere. A junior differs from a specialist in that he does not have (or very little) practical commercial experience. That is why juniors are usually asked questions on knowledge, logic, etc., in order to weed out completely unreliable ones.
')
The first question I usually ask a junior is: in what area would you like to work? Develop desktop applications, for example, or write games or mobile apps, or web / cloud products, or maybe even move towards design or testing? This is very important, because each region has unique properties and knowledge that must be possessed. Although the solution here is quite simple: you need to offer the junior to try himself in different areas, and in a month to ask what he liked more. Well, then move in this direction.

The second point, which I immediately emphasize, is that I explain to the junior that he will not be able to get a lot of money in a month, a tennis table and a masseuse in addition, and he will have to work hard to achieve all this.

Thus, I immediately let the juniors understand that without a solid investment of effort and time, as well as a clear understanding of the road map of their development, it is better not to even begin.

And then we start talking. Our conversation is analyzed for the presence of certain phrases. Let's sort them out in order.

As me for # university ball, a waste of time

Yeah, and then you spend a week on the matrix multiplication function, try to build a triangle at two points, write a search using a full brute force and make square eyes when I ask the application to encrypt passwords using an RSA algorithm or implement a digital signature. (If you think that these are made-up examples, then I will disappoint you).



Life shows that without a theoretical and mathematical background, you can easily become a successful coder, but not a high-level specialist. There are exceptions to this rule, but they are exceptions.

The second signal that this phrase sends me sounds like this: I do not know how to manage my time . Time management is one of the most important junior skills. If a person cannot combine university and practice, then most likely he will not cope with deadlines and critical tasks in the future.

Microsoft - g # vn, I will write for Linux

We change Microsoft to C #, and Linux - to Java or Microsoft to Linux, and Linux - to Microsoft, and we get a typical portrait of a fanatic. Fanatics do not need to be contacted at all. For fanatics, the process is important, not the result, for them it is not important that the task be carried out in the most optimal way, and most importantly, that it is on the “right” technologies. I want to add that in the first year of my junior work I wrote on Pascal, Turbo C ++, Visual C ++ (MFC and WinAPI), .NET 1.1, PHP, ColdFusion, Perl, Java, until I realized that I was closer and more understandable. It will be very difficult for a person who is initially fixated on a specific technology to become a really good specialist.

I will not hide the fact that the “technology problem” is often found among already established specialists. Recently, I witnessed a demonstration of one project that could be implemented in a maximum of four hours using standard ASP.NET MVC and jQuery tools. But, first, the project’s implementation was stretched for almost a year (to be fair, it should be noted that this was not a commercial project), and, secondly, such words as open source, node.js, database in json file. All this was poured through the command line on github, after which it was compiled using special scripts, and then another script laid out the HTML page on the hosting.

image

Suddenly!

Suddenly, a junior session may begin, passing the course, he can find a job as a car mechanic or a pizza peddler, because “they are already paying there,” and “here you exploit me for free”. Due to the fact that a person may disappear at any time, many employers do not want to take junior jobs or practice or do not assign important tasks to them. The task of the junior is to take a difficult task as early as possible and successfully complete it. Only after that a minimal level of trust may appear to the junior, which, naturally, it is desirable to develop and not screw it up. By “screw it up,” I mean getting into a situation, the description of which begins with the word “suddenly.”

Responsibility is another critically important feature of juniors.

I understand everything, no questions

Two weeks after starting the practice, I ask how things are going, if there are any questions. If Junior is clear and he has no questions, you can kick him out at the same moment without a twinge of conscience. After all, novice developer questions should appear every ten minutes. Some of them should be found on the forums, some - on StackOverflow, but steadily once a day some question should appear. Observation works flawlessly: if there is no question for a long period, the result can no longer wait, and say goodbye to the junior.

The reverse rule also works here: if questions come in too often, then the junior user cannot use Google. But ...

... another important skill of junior is the ability to independently search for the necessary information and answers to your questions.

By the way, about the timing. The first task I give a junior is never bound to a specific time frame. Those. you will do tomorrow - ok, in a week - ok, in a month - ok. By this I give to understand that I have a lot of time, I can wait. And here it immediately becomes clear how strongly and sincerely the junior wants to turn into a specialist. If the first task for a couple of hours will be done a month, then there is a high probability that a person does not have a big motivation to do something quickly, and this will directly affect the effectiveness of his work.

And how much will I get?

I also hear this question often. You need to understand that juniors in any company are investments in the future, the time of experienced specialists and a huge risk for the company (see. Suddenly!). It is very good if the company gets to the junior, ready to teach him for free, and in general it is wonderful if the company is ready to pay something else.

The record was broken by one third-year student who agreed to work part-time remotely, having experience with a specific technology for 1 month. He wanted a salary of about $ 2,000. Ambition is very good (he is), but you need to know the measure :)

Where to begin?

This is the most frequent question I get. The answer is quite simple: take your hobby (music, sport, numismatics) and make a website, mobile app and / or game for it. Write a website first in PHP, then ASP.NET, then develop an Android application, then port it to iOS. And then try to put the site on the hosting, promote, and publish the mobile application in some of the app store. You will get a minimal, but still experience in the full development cycle of a project from idea to publication, and this may well be indicated in your resume. And at the end of the road you will know exactly what suits you best.

And what about companies and universities?

Many companies are not ready to work with juniors.

The reasons are called different:

- Now we will teach him, and he will go to competitors;
- we are a young international company, we work only with professionals and trained specialists;
- our specialists are too harsh to waste their time on juniors;
- the task to train specialists lies entirely on the state and universities, we have something to do with it?

Despite the presence of such sentiments, many companies have already realized the importance of working with novice specialists. They are taken to practice, read courses, are attracted to non-complex and non-critical projects, sent to conferences and seminars. Indeed, many junas “burn through”, many do not finish the practice, do not cope with the pace of learning, and dissolve in the crowd. But working on the systematization of knowledge and teaching methods, combining practical and theoretical knowledge, combining the efforts of private companies, as well as the state and universities, it is possible to achieve a qualitative and quantitative increase in beginning specialists.

Many also consider online platforms as an alternative to classical learning, where, in fact, everything depends only on the desire and motivation of the students themselves. But that's the problem. After all, all the great initiatives, such as iTunes U, Coursera, etc. face a negligible number of those who complete the course (the number of graduates ranges from 1-3%). That is why the presence of mentors is necessary in order to increase this figure to at least 30%. And here cooperation of all players of the IT market, including the state, is necessary.

Yandex and the Higher School of Economics, which announced the opening of the Computer Science faculty, showed the most interesting and promising example of cooperation in order to train young specialists. This excellent example should be picked up by other companies and universities.

Instead of conclusions

So the perfect junior understands that at first you have to spend a huge amount of time on training, can combine study / work with training / practice, has such skills as responsibility, independence, the ability to search for necessary information, ask questions, and is highly motivated and adequately ambitious. .

For a mentor it is very important to understand that each person has different skills, performance, motivation. The task of the mentor is to find the right approach to a person, to understand his true motives, and most importantly, to see the potential in a person. Potential is the acceleration with which a person can develop, gain the necessary knowledge and improve themselves.

And yes, all of the above can be replaced with one phrase: sit down and work. And for many of these words is enough.

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


All Articles