Answer the question
In order to leave comments, you need to log in
How to overcome the crisis of a novice specialist?
The problem is this. Now I am a student, it is not so easy for a student from the street
to get a permanent job these days , employers offer project employment for 1-3 months.
In six months, I'm already at my third job.
I notice a pattern.
At first, especially during test tasks, I am interested in projects, I am ready to sit for a long time, not to watch the hours spent and strive for results.
As soon as I get a job, the first three weeks are also interesting for me to work, but then something begins. The work slides into the galley, I begin to notice more and more shortcomings. Nowhere is it required to write it yourself: you need to change ready-made solutions from github. Digging into other people's code is below average pleasure, given the kind of documentation that many people write. You have to dig for a long time, tune the parameters, think out. It takes an amazingly long time to do this, you don’t want to look at the code after a working day; self-education is thus gradually swept aside. Writing my own decisions (I work at DS) is unreasonably long, I don’t think that any employer will agree to this.
I asked my friends: using ready-made solutions is the norm for the industry. But in this case, I don’t feel any buzz from programming, since I’m more pumping my bash skills, and not the OOP paradigm, python syntax and DS algorithms.
At the same time, I like the subject area in which I work.
How to overcome such a crisis?
How do programmers really work?
Answer the question
In order to leave comments, you need to log in
Yes, a programmer is not as romantic in practice as it seems)
Because, unlike any dreams, in real life the question is tied to money, and money is for time.
The programmer works for the customer, the customer needs it quickly and cheaply - hence the ready-made solutions and crutches now, with an eye to sort it out later (but then also crutches)
At first, all this is very annoying and breaks the tower - we were taught not like that, we were taught to strive for simple and optimal code, and everywhere around they wind the wildest crutches, and this is tin, but ...
Over time, you realize that it’s better to quickly make a crutch now, and forget about it, perhaps forever, than spend 3-4 times more time, but do it according to the canons ... It's just that a programmer doesn't have that much time...
In the end, in reality, the work of a programmer is not so difficult, and in many ways not as beautiful as expected - for the most part it is a chore and cleaning up someone else's terrible code, debugging and sculpting your own terrible code, regretting that there was no opportunity to do well, and joy when you come across something interesting, or something that you did well, with high quality
. As with any job, there are bright and dark sides. And the money is not so easy to get - the programmer generously pays for them with nerves. Like a doctor, and any other specialist
Who said it would be easy?
99% of programmers spend 90% of the time catching bugs in terry legacy or slapping. There's only one way to be in the top 1% of true creators, and that's to be an artist capable of writing something truly remarkable.
How to overcome such a crisis?
Work rolls into the galley
Writing my own decisions (I work at DS) is unreasonably long, I don’t think that any employer will agree to this.
I asked my friends: using ready-made solutions is the norm for the industry.
This is the real job of a programmer)
You can try to change jobs, but the new one will be about the same.
Humble yourself or try yourself in other professions.
But if you have something to live on besides your salary, you can try to do your own projects. There you will be the master of the situation, feel like a creator. But whether at least one of them will shoot is the question ...
Yes, there is a problem, BUT you are not looking there. You have a typical beginner's problem, it's on a different plane. You are too self-confident and think that you know a lot / are able / deserve_more. At the beginning, many things seem "unnecessary" and "stupid". I would like not to use a framework, but to write it myself. I want to write another bike and my OS.
The reverse side of self-confidence is the desire to cover everything possible with third-party libraries. Even if it is in your framework and is called by one function, then it’s all the same to google a separate library.
Then, with years and experience, it passes. Even in the scientific community there is a definition of this phenomenon.
When I started, I also had the stress of mismatching expectations with reality. After all, while reading books, it seems that software development is something ideal, building flawless castles in the air. But in reality, every day you have to deal with crutches, big ball of mud, and even, what a horror, to write crutches yourself.
You have to understand that life is life. In books and movies, there is always only an idealized one-sided picture of life.
It's not just about programming. And this does not mean that we should not strive to be better and do better. But life will bring many more surprises when it turns out that everything in it is not as it seemed from the books and stories of others.
Another example: Before I came to any country, I read books, forums and blogs about that country. And every time I came I was amazed: how much everything differs from my ideas received from reading.
And there is no recipe how to make it easier. You just find your way as you get older. Try one or the other. Realize that there is no silver bullet. Although there are also people who do not understand this for a lifetime. Everyone has his own path.
Welcome to the real world. This is what it is - working as a programmer.
The problem is this.
Now I am a student, it is not so easy for a student from the street to get a permanent job these days, employers offer project employment for 1-3 months.
At first, especially during test tasks, I am interested in projects, I am ready to sit for a long time, not to watch the hours spent and strive for results.
As soon as I get a job, the first three weeks are also interesting for me to work, but then something starts. The work slides into the galley, I begin to notice more and more shortcomings.
The problem is that if you get carried away and start writing a beautiful implementation of some garbage, then later it turns out that you did not take into account all the nuances, and your beautiful thing does not work the way it should. And it takes more time and time to finish this, and the employer swears and says that it was necessary to fix a minor problem yesterday.
As a result, a fresh creation also begins to acquire crutches, and the further it goes, the more it becomes like those terrible constructions that he undertook to rewrite. It is now, of course, not so ugly, but its bugs have been added.
You will have to rewrite 2 or 3 times, and there will definitely not be enough time for this, and the desire will already melt like smoke.
Therefore, it is easier to add your crutch to an already existing pile and forget about it.
I think it's the middle developer syndrome, you outgrow it over time.
What are you good at? Do you have a pool of knowledge that an employer can put to good use? If you're great at bash but don't need it, what do you expect? Go to a high-tech project, but you don’t have experience and knowledge. The employer does not need everything that you know, he needs to do what is needed now, BUT no one says that in a month bash will not be useful. If the company is small, then this can not be avoided. Because you can’t hire a company of 5 people: an architect, a database developer, a sysadmin, a team lead, a backend junior, a backend middle, a backend senior, a designer, a coder, a js junior, etc.
I hate making crud admins and screwing up templates, it's easy, but it's so dreary, so boring. In my head, everything is already ready, but it is necessary. Yes, I can do more, but the project does not need it at the moment.
So you need to level up, and given that you are a student with no experience, it is, in principle, risky to give something difficult at the first stage. And there will always be someone else's code that you have to deal with, it is not only in the project "for yourself", and even your own code in a few years is already like a dark forest. Don't like working with github? And what is faster to fasten the finished one or write from scratch? So you leave, after you a new student will come and it will be easier for him, because he will see that you are using something ready and will be able to search for information about it. Everyone sooner or later comes to a situation where they are bored. You cannot become a high-class specialist in the shortest possible time.
And yet, are you sure that you are so cool that you are bored and you have a crisis? About 5-7 years ago, I could make a website engine in a week and thought that I was incredibly cool. Now I understand that it was not a fucking engine and a week is definitely not enough for me now.
If there is no strength for self-development, then try this: work remains at work; do not recycle; use breaks so that the brain rests, and not go to the balcony and continue thinking there; learning technology for yourself, not for the project (if you can screw it up well, but this is a bonus, not a goal); find new technologies and play with them (I played so much with go and neural networks, these are not at all my areas, which made it easier, because new and every, even a small success, pleases) and not an it-hobby (I have a Rubik's cube and calligraphy, they are always on the table and I can be distracted for a couple of minutes).
It is not often necessary to do something from scratch, this is normal. Usually some ready-made frameworks are used that have to be studied, and new components are created based on them. I myself am not familiar with working in DS (is it Data Science or something else?), maybe everything is different there.
You can engage in self-education and knowledge of OOP in your free time or, for example, while performing some tasks, google along the way how best to implement this or that thing, I usually got self-education at work (if I had time).
Employers do not like "from scratch" and they are not interested in what the programmer wants to upgrade or develop. More precisely, it is interesting, but if he does this in his own time. And at work, you have to dig into legacy projects that have already been abandoned by their "creators". I worked, for example, on a project that left at least 5 "architects", the code was painful to look at, but nothing, and a lot of useful things came out of it. You have to read the code much more often than write your own, and this is a common thing.
Nowhere is it required to write it yourself: you need to change ready-made solutions from github.
The amount of mental fuel that the body stores for each day is strictly limited, so it is very naive to believe that it will turn out to work from early morning until sunset and there will still be strength left for the pet-project. At the same time, it is still very desirable to sleep regularly, qualitatively and enough. And in order to sleep well, it is necessary to receive a sufficient level of insolation (and with this, everything is not so rosy).
There is only one way out - to bring everything that is possible and impossible to the level of reflexes, doing the job well enough, but at the same time spending the minimum possible amount of mental fuel, then there are chances. Reflexes are formed over the years, so only time and patience will help here.
Shit code was, is and will be at all times, but business needs it to work, and no one canceled the staff turnover, so refactoring and doping is forever, you have to stupidly put up with it.
I am often bombed on someone else's code, this is a fact, but then, when I combed it and it turned out to be candy, you feel satisfaction that the world has become a little more perfect ... At the same time, it is categorically painful for me to do extra work, so I try not to jump on the embrasure with a fool. ..
PS: Max Dorofeev talks about thought fuel in an interesting way.
I don't work for DS myself, but I have colleagues in my team who are involved in this business. In my opinion, this is a separate subculture of specialists. Very interesting people and have their own excellent view of the world and concepts. It was a lyrical digression)) I want to say that when you start, you are given the opportunity to delve into someone else's more authoritative code and you are simply engaged in its support. When you go further, you will be given the opportunity to adapt it to your tasks and partially modify it. Only after a while, when you reach a certain authority of your colleagues and start to get recognition and deserve attention, will you be able to write your own code...
BUT what I would like to say in the end, no one bothers you to write something in your free time from the main tasks, the only thing is that it most likely cannot be entered into your timesheet, BUT it is student time for that.
Good luck, everything will work out for you)))
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question