Dmitry Mishin from Ryazan began his career in IT as a tester, but from the university he wanted to become a developer. For two years he was looking for bugs at work, and in his free time he studied .NET himself.
Dmitry is currently working as a senior .NET programmer. He told how he managed to go from testing to development.

How I became a tester
I graduated from the University with a degree in Electronic Computer Engineering Design in 2005. In the last courses I realized that I wouldn’t work in a profession - studying for five years was never able to inspire. Then I decided to develop in the direction of IT.
')
Usually students look at work while studying in the last courses - I did the same. In the fifth year, I joined VDI, the largest IT company in Ryazan, which a year later merged with EPAM. They had free developer courses, but at that moment the set was closed there. But the group formed on testing. In 2005, almost no one heard about testers - in Ryazan for sure. Still, I decided to join the group. I decided to start with testing, and then figure out how to go into development.
After the courses I worked as a tester for two years, but I could not feel myself in my place. I think a lot depends on internal predisposition. There are people who, by their nature, are more diligent, attentive and scrupulous than I am - these are excellent testers.
I knew that EPAM had its own developer courses. Mostly in the group recruited undergraduates of technical universities. I went to the management and asked to study - I was so bored with what I was doing then. I was offered two directions to choose from - Java or .NET. I chose the latter because I was already starting to independently study C # and .NET.
How to start learning .NET
The next four months I studied from morning to evening. Despite the fact that it was more than ten years ago, I can give newcomers some tips from my experience that are relevant today.
Studying, if you try to combine it with work, can drag on indefinitely. If you seriously want to immerse yourself in a new specialization, you must either quit your job or agree with your superiors about a long vacation. I finished the courses in four months only because I was released from the project and allowed to spend all my time on study.
- Not sure where to start learning .NET, - take courses
Choose those where, in addition to the theory, practical tasks and their detailed analysis are provided. Online .NET courses can be found at Pluralsight, Udemy, Codeschool, Lynda, Microsoft Virtual Academy.
If you live in a city where there is
an EPAM training center , you can get to the
free .NET courses . They, of course, have become more advanced compared to those on which I studied. The program changes every year and is closely related to production.
I advise you to start with these:
Andrew Troelsen "C # and the .NET platform"Jeffrey Richter "CLR via C #"- Understand the documentation
Carefully read the MSDN, C # Language Specification, SQL Server Books Online. Knowledge of the documentation will help in further work.
Most courses, books, technical documentation is written in English. If you own it at a good level, it will be easier to learn.
How to develop a novice
Immediately after the courses, I started working as a junior-developer on a financial project. I remember my first impressions - the shock of the volume of production-code and a complete misunderstanding of how to approach it. At that moment I realized that I would have to study for a long time.
Here's what I advise programmers to do, which, like me then, just started working on the project:
As you progress in training, pay attention to these:
Jon Skeet "C # in Depth"Joseph Albahari "C # in a Nutshell"Robert Martin "Clean Code"Steve McConnell "Perfect Code"- Learn open source projects
On github you can find a
huge number of projects in C # and. NET that you can learn. This will help to better understand someone else's code and teach you to navigate in projects with a lot of code. And it is also very useful to join such a project and contribute to your free time.
- Connect with more experienced developers.
Feel free to ask questions and seek advice from senior colleagues. Discussing any task with experienced programmers, each time you expand your professional horizons.
At first you will be given the simplest tasks - fix bugs, change UI, implement simple business logic. Be ready for this and do not try to immediately ask for something more interesting. The more you are involved in the process, the faster you will begin to give more complex tasks. In due course in the head the complete picture of the project will be built and you will understand that all bulk of a code can be reduced to elementary structures.
It took me a year to come to this and grow to a middle developer. A few years later I became a signor. By that time, I was more engaged in infrastructure tasks: access to data, security, key business logic algorithms.
The path of the programmer is a continuous development, and I try to follow this principle. Today, for example, full-stack developers are in great demand. On the current project I have to work with HTML, CSS, JavaScript, Typescript, React, Redux.
Tester skills also help in the work. I am more responsible and attentive to my code, always testing for myself what I wrote. So those two years in the QA department were not a waste of time.
I have been working in IT for 13 years, but I haven’t experienced an insight in the spirit of "now I finally became a real programmer." There are still tasks that cause shock and incomprehension. Above them you need to think, try to approach from different sides. And this cycle “from overwhelming tasks to insight” does not end. I am sure that every developer is familiar.