How Shoes Rub Your Feet

Having a lot of experience in programming, I want to show beginners how calluses appear on the feet from the first days of entering to this profession.
Programming courses will not prepare you for work
The courses teach the basics, general practices, everything that will make it possible to pass a technical interview, but this knowledge is far from the real tasks that have to be performed at work.
Teachers are unable to prepare a project that would simulate real working conditions, just because it would increase the cost of the courses tenfold. And are you ready to work on a project where you are the sponsor?
Forget about working on projects from scratch
As a rule, at the new workplace you will have to work with projects that had been written a long time ago, have formed teams, consist of tens of thousands of lines of code.
Your programming freedom is limited, there are often rules that were never mentioned in the courses.
You can spend a week over a bug, the problem of which could be solved by one line of code.
Pure code is like sea salt – not applicable to the wound
They don’t give promotions for clean code, don’t give pat on the shoulder.
While clean code doesn’t make it more efficient, let alone more productive, colleagues will expect it exactly like that.
The main purpose of programming for the company is to write quickly and efficiently.
The user of the application does not know what is happening behind the interface, the management in tight shoes calculates the profit, the management prepares tasks, and your task is to write the code so that the eyes of those who work with it are not bleading.
And the damn with those people
If before joining IT you formed the opinion that only competent people get here, leave it alone, do not make self-deception.
A lot of people come here for money, not a calling, which creates a toxic atmosphere, reduces the productivity of the team, and disrupts deadlines.
Everything starts innocently, a colleague asks for help to complete a task, or does not know how to do something. One by one and you do his job. The main thing is to bite off such a person right away, and give a nudge out of the door at the first opportunity.
However, if you are used to be kind to people, you should not be upset, such parasites do not stay in one place, they are fired, or winged by their own self-confidence, they change jobs and create problems in another company.
What about the time estimation?
Business is built on numbers, so the customer demands them from the contractor. The management knows that the project has its price, to calculate it you should focus on the time estimation of the work, so you will often be asked how much time you will spend on a particular task.
Only Quasimodos can predict: a sudden urgent task from the manager; a bug in a third-party library that will send the entire system to the abyss; that Jeff Bezos will close AWS and take up ballet classess, etc.
Be that as it may, at the beginning you will not be able to adequately assess the volume of work, even if you thoroughly immerse yourself in the details of the task. Even if you specify a deadline with a margin, prepare to work overtime.
The only positive point in all this is that gaining experience will pass quicker, and the appearance of gray hair will become a topic of conversation at corporate parties.
There are two things you need to have in your inventory to justify missed deadlines: the awareness that you did everything in your power and the soft skills to prove it.
Soft skills god damn it!
If programming is like learning a poem, then developing software skills is like writing it.
This talent needs to be developed by taking the initiative into one’s own hands, expressing one’s opinion in front of the team, participating in communication with customers as a pair with the manager.
Drops of sweat on the forehead and a beetroot face in front of the audience is a big price for improving soft skills, but their level directly affects career growth and the thickness of the wallet.
Wanna be a nice man, bring down the bug with a pan
Bugs are an integral part of any application. They are everywhere, appear just like that, disappear not like that, return in a dream, make your head scratch so you feel.
If you approach the question with a cool head, you will understand that fighting bugs is a skill, a skill that needs to be developed. Over time, their appearance will not cause stress, the speed of solving them will increase.
If you saw the bug in code, make him suffer, make him rot!
In conclusion
The described problems are only the tip of the iceberg, if they scare you, find the strength to overcome them, if not, remember that the IT profession is not for everyone, you should not make dreams out of trends.