What do senior programmers think?

The author of the material, the translation of which we publish today, supports the idea of ​​Ralph Waldo Emerson that we become what we think about. Here we will talk about the way of thinking of senior programmers.



It is impossible to learn absolutely everything


There is a huge amount of technology. It is impossible to study them all.

Find the technology stack that suits you best. Choose the technologies that allow you to create what you need and study it thoroughly. For example, if you are interested in modern web development, the MERN stack would be a good choice. It includes MongoDB, Express, React, and Node.js. These technologies are for those who like JavaScript.

There are, of course, other sets of technologies. For example, the MEAN stack. Here, instead of React, Angular is used to develop the frontend. Among other sets of technologies that can be mastered, it is worth noting, for example, a combination of PHP, MySQL, HTML and CSS. Here, the frontend uses pure HTML and CSS. If you are interested in server development, you can pay attention to Ruby and Ruby on Rails.

The main idea here is this: whatever you choose, it is best to stick to this choice and bring to perfection your knowledge in the relevant field. You should not become, so to speak, the “apprentice of all crafts”, a developer who has not achieved mastery in anything concrete. This leads to walking in a circle, and this is clearly not what you need.

Developers are not only people with relevant education documents


I am a self-taught developer. In my business, I succeeded thanks to a combination of hard work, patience, persistence, concentration.

The fact that in order to become a developer it is not necessary to graduate from a university does not mean that development is simple. Becoming a developer is not easy. And in moving towards the goal, you should not allow yourself to consider the end of everything a small defeat at all costs. It is all about striving for a goal.

If, faced with the difficulties caused by a lack of basic education, just give up, then, of course, nothing will be achieved. The secret is, after something goes wrong, try again. It is to make one more attempt, and to keep one’s line always, every day, every time, when it seems that everything is already lost. When such a feeling arises, when it seems that it’s the bottom, you need to remember that this is usually a sign that the goal is almost achieved, that there is very little left. In such cases, you just have to offer yourself to try again and turn obstacles into opportunities.

Most people at the first sign of failure are ready to immediately abandon their goals and intentions. And only very few fight to the end, despising all difficulties, until they achieve their goal.

Napoleon Hill

Learn the art of searching online


Now that you have started programming, you should know that you will have the feeling that everything you do is pointless. It is normal to not know the answers to all questions, especially when you are just starting your journey. It is important to know where to look for answers.

Programming is a solution to problems. If you cannot think of how to solve the problem you are facing, find a way to solve it on the Web. Search the Internet for someone who knows how to solve the problem you are facing and learn from him. This is exactly the best way to learn programming.

Here is valuable advice for you: all the tasks in the programming sphere that confront you today have probably already arisen before programmers before. Do not reinvent the wheel. It’s better to take this wheel, already invented by someone, and use it.

Deadlines tend to break


No matter how good the plan is, evaluating deadlines is always very difficult. There are several strategies used by companies in project management. I believe the most popular of these strategies is Agile.

It doesn’t matter how detailed the development process is. In the course of work, there will always be some obstacles. It doesn't matter how good the team members are, from business analysts to software quality specialists. The deadline date for completion is always inaccurate. This date will have to be moved. Deadlines are always only approximate. In most cases, in large companies, when developing enterprise applications, increasing the deadlines by a couple of months is normal.

But if we are talking about small projects that are done for small companies, the deadlines for commissioning such projects are already more stringent. If you plan to engage in a third-party project, then, during negotiations, clients most often ask the question of when everything will be ready. Some business representatives are not interested in how the business will be done. It is important for them to know only the deadline for the completion of the project.

Therefore, be careful when naming dates and setting deadlines. Usually those with whom you are talking consider these deadlines to be something unchanged. It is best to rely on the fact that the work will take more time than planned. We are talking about solving unexpected problems, debugging and other things like that. It is better to surprise the client with the delivery of the project ahead of schedule than upset by breaking the deadline. In general, as they say, keep the brand.

Debugging is 60% of the work, and programming is 40%


Perhaps the idea put forward in the title is the most accurate estimate of the programmer’s time distribution that I have come across.

I spend most of my time debugging. The last project my team developed was an Android app for a healthcare client. We used React Native. I was engaged in frontend in this project.

Suppose that in a month it took about 10 days to create the client part of the application. The rest of the time was spent on debugging, on the fight against errors. For example - with errors caused by dependencies and incompatibility of different versions of different packages.

This was my first project for the Android platform. The weeks were spent only on debugging some parts of the application, and on checking that they are arranged exactly as needed, including the use of certain versions of dependencies in them.

Creating an application is interesting and enjoyable. But debugging is hard, and even very long. But nowhere to go. This is part of the programmer's job.

I want to give here one recommendation regarding the mindset of senior programmers. If you are unsuccessfully battling the same problem, say, for an hour, try taking a break. Do something else, free your mind ... Sometimes we ourselves are the source of the problems we face.

You will pretend that you know a lot of things, although, in fact, you do not know


I did that too. For example, several colleagues discussed some of the technologies that they used, or new technologies that they were interested in. Listening to them, I assented, and behaved as if I had a good understanding of what was being discussed. But actually it was not so. Actually, I want to convey to you the idea that this is normal, and that you are not alone in this.

There is a huge amount of technology. It’s unrealistic to understand all these technologies.

Do not remember. Strive to understand


I have been paying great attention to the importance of learning the basics of programming.

Initially, training consists of copying code from tutorials, from repositories, and from other places. This is normal, but as long as the person who copies the code understands it. If you do not understand the code, copying itself will not teach anything.

After several months of such studies, a deeper understanding of what will begin to come. Namely, a person will begin to learn syntactic code constructions and some programming principles. Then the moment should come when it will turn out, without prompting, to solve some problems yourself. It requires the conscious efforts of someone who is learning to program. Namely, you need to solve problems by creating code yourself, using your own approach to solving problems, your own style, your own ideas.

The point here is not to spend too much time “copying” the code. Do not be afraid to independently solve various problems. The path of trial and error will teach more than copy-paste, so it’s worth taking tasks and working on them until what seemed complicated starts to seem simple and understandable. This, of course, will take time, but this is programming.

Documentation is your salvation


You from the future will thank you today for the well-documented code.

When you start programming, you will slowly work on a couple of projects. Then a few more projects will be added to them. And then you get lost.

And then it will be so. You are working on project No. 11, and the boss, quite unexpectedly, reminds you of project No. 2. You need to continue working on this project. Project No. 2 is now your most important business. And earlier, a year ago, project No. 2 was postponed indefinitely.

Nobody told you that project No. 2 can become important again, so you did not take care to create documentation for this project. As a result, when you return to your code, you are very likely to forget about some important details of its implementation. And the most unpleasant thing here is that you told your boss that project No. 2 was 60% ready. Therefore, they will only give you a couple of weeks to complete it.

Actually, the moral of this fable is this: you need to devote time to documenting all the projects you create. Documentation saves lives.

Be prepared for the fact that you have to constantly learn


This is a very important thought.

The fact that you have perfectly mastered several languages ​​or some technology stack that you use does not mean that you have nothing to learn. There are a lot of things around that you will need to study. Technologies are developing, and you need to keep up with them. Do not fall prey to the fallacy that what you know today will be relevant in ten years. It will not happen.

Continue to learn, strive to learn more, to become better. The fact is that web development is continuous learning. I think that here lies the whole charm of this matter when you try not to miss the chance to learn something new and interesting.

Opportunities come and go. They can appear for a moment, and in an instant they can be missed. Therefore, be prepared to act. Be prepared to meet the opportunity when it knocks on your door.

What ideas do you think help programmers grow professionally?


All Articles