The story of one developer, or Shooting the stars, you get into the moon

Hello everyone,
Especially students, novice programmers and everyone who wants to become them! I would like to tell the story of my juniorism, I hope that my invaluable experience will be useful to someone (and will help not to fill up bumps where it is not necessary).

Immediately make a reservation that I do not belong to that wonderful part of humanity that began to program in childhood or at least in youth. Until the end of school, I was such an avid humanist that it was already disgusting. My admission to some pretty good technical university in St. Petersburg is an irony of fate, but the details are not relevant to the case.

So, there is a twenty-year fourth-year student studying in the specialty “Information Technologies in Education” with a specialization in “Project Management”. In passive - a very modest amount and quality of teaching programming in high school and the humanitarian past. The asset is a great desire to become a highly qualified specialist in the development of highly loaded Java applications (such a formulation came much later, at an early stage it was something like this: “Java is cool, I want to code cool on it!”). The task is to realize your dream. Below is the algorithm, at least formulated at the end of the analysis of all the mistakes made in attempts to solve this problem.

Step one

In every possible way to use the opportunities of training which are turned up at university. Unfortunately, this understanding came to me too much, and after finishing the sixth year, I realized how much I had missed. Higher mathematics, discrete mathematics, theorver ... When you study, it seems that all this is not so important, and most importantly - to learn the language. Hell no! Now I’m trying to independently study something that is not easy to understand without a teacher and what I was completely voluntarily taught at the university. The only thing I paid attention to at the university was the term papers in Java. The problem statement for the term paper was something like this: “Here is TK, here’s a book for you - do it!” The positive experience gained from this is this: it is best to choose a more complex task, a more complex implementation, in order to get at least some experience that can be operated on when working with the employer.

Second step

Sooner or later, the understanding comes that you know nothing! Therefore, you have to study on your own, and moreover on your own. It is very important. Real experts learn all their lives, so you need to start as early as possible. The main thing here is to find suitable books, and in this place I got my second shot - it was an active use of courses on the Intuit website. Intuition is good, of course, but it would be better if I read Java Philosophy five times instead. And a couple of times Meyer's Basics of Object Oriented Design.

Step three

It seems that you already have some knowledge; it is time to apply them. And for this you need to get a job as soon as possible. Theoretical knowledge and student work are all good, of course, but you can’t go far. Here I filled up another bump - I dragged on for quite a while (the idea of ​​becoming a Java programmer came to me in my fourth year, and I got a job only in the fifth). All the time it seemed that I was not ready - either the book should be read, or the course on the site to take ... So, all this is nonsense. A student who is in search of his first job has a number of advantages, you just need to present them correctly.
First of all, do not be shy of your inexperience, because what comes up at the first step is useful here - some, but real programs. You can and should talk about your theoretical knowledge. Well, the most important thing is to emphasize what is beneficial for the employer: you are ready to engage in arbitrarily tedious coding in order to gain the necessary experience in a real project. Then more experienced programmers will be able to do interesting, and most importantly, important tasks, and everyone will be in the black. And at the same time you have to pay mere pennies. When I got my first job (then my experience came down to just a term paper in Java, and of the most serious of the authors I read in the language, there was only Schildt), I was happy to hell: well, I will be taught Java, and even and pay for it!

Fourth step

When the interview is behind, and you are finally involved in a real project, the main thing, paradoxically, is to leave it in time. At first you, of course, are cool there. They teach you, you grow professionally every day, begin to solve more and more complex tasks, and at the same time you get the opportunity to communicate with experienced specialists, consult with them on the choice of professional literature, etc. But sooner or later, depending on how fast you develop, the process of your growth stops. All this is due to the fact that you were accepted to the position of Junior Developer, who solves boring programming tasks, and, in fact, you have changed, but the project has not. Those tasks that seemed interesting to you half a year, a year and a half ago, are now as boring as they were then for senior comrades, for the discharge of which you, in fact, and hired. It’s good if you found yourself in a company that assumes the constant growth of your employees, but in my case it was different, because there the easiest way to switch from Junior Developer to Middle is to quit and then get hired again. To understand this, I spent a whole year trying to either increase the complexity of the tasks and at the same time paycheck (I managed it once, but not for long: I soon outgrew this level again), then I got a job in a neighboring department, where Middle Developers seemed to be required. As a result, I had to quit. But I would like to repeat again: do not wait for an increase! It’s better to regularly go for interviews as a preventive measure, but more on that in step five. since there the easiest way to switch from Junior Developer to Middle is to quit and then get hired again. To understand this, I spent a whole year trying to either increase the complexity of the tasks and at the same time paycheck (I managed it once, but not for long: I soon outgrew this level again), then I got a job in a neighboring department, where Middle Developers seemed to be required. As a result, I had to quit. But I would like to repeat again: do not wait for an increase! It’s better to regularly go for interviews as a preventive measure, but more on that in step five. since there the easiest way to switch from Junior Developer to Middle is to quit and then get hired again. To understand this, I spent a whole year trying to either increase the complexity of the tasks and at the same time paycheck (I managed it once, but not for long: I soon outgrew this level again), then I got a job in a neighboring department, where Middle Developers seemed to be required. As a result, I had to quit. But I would like to repeat again: do not wait for an increase! It’s better to regularly go for interviews as a preventive measure, but more on that in step five. then get into the neighboring department, where it seems that Middle Developers were required. As a result, I had to quit. But I would like to repeat again: do not wait for an increase! It’s better to regularly go for interviews as a preventive measure, but more on that in step five. then get into the neighboring department, where it seems that Middle Developers were required. As a result, I had to quit. But I would like to repeat again: do not wait for an increase! It’s better to regularly go for interviews as a preventive measure, but more on that in step five.

Fifth step

And here you are - a young programmer with some experience and a great desire to prove to the world the whole depth of his steepness. Of course, the easiest way to do this is through an interview at some attractive position.
At this step, my experience was a little over two years. Professional growth at my work stopped about a year after I got a job, and therefore the only salvation was constant self-development: reading books, attending seminars, etc. It should be noted that the interview itself contains some educational component, because if you don’t know something, you can either find out from the interviewer or, later, from other sources. At least that's why it's worth going for interviews, even if you are not in search of work. In addition, the interviews keep you informed of events, allow you to meet interesting people and projects, and, finally, what the hell is not joking, maybe you can really find an interesting position? Another pretty useful tip: it’s worth setting the desired salary in a resume more.

You can look for a new job not only on relevant sites like hh.ru, but also at various job fairs and festivals. By the way, I found my current job thanks to the Find IT festival in the spring of 2012, jumping from the Junior Java Developer level right to Senior.

Summing up all of the above, I would like to do the following
conclusions


1. Learn, study and study again! Theoretically, practically, independently, on courses - as you like! The main thing is in non-stop mode!
2. Chat, chat and chat again! With colleagues, experts in related fields, interviewers, lecturers ... This is also a training option.
3. Regularly attend interviews as when you are an inexperienced student, as when you are already an experienced specialist.
And most importantly - do not be afraid to set significant goals. Shoot the stars, then you’ll certainly get at least the moon!

Also popular now: