📜 ⬆️ ⬇️

Where are you going, software developer?


All companies in the article are fictitious by their creators ... and are directly related to reality.

- Could you tell me which way to go? - asked Alice.
“It depends on where you want to go,” replied the Cheshire Cat.
- Yes, I, in general, anyway ... - began Alice.
“Then it doesn't matter and which way to go,” remarked the Cat.
- ... If only to come somewhere, Alice explained.
- Oh, there you will certainly come, the main thing is to go long enough and not to turn anywhere. "
L. Carroll, "Alice in Wonderland"

Being poor is bad because it takes all your time.
Willem de coning

')
You work in a company that develops software, programming. If this suits you, then this article is not for you.
And maybe it seems to you that everything seems to be all right, but something is wrong, it’s not clear what’s next? You have become many times more efficient, and the tasks are the same as before, salaries do not grow in accordance with your experience. There is a desire to change something. And you begin to consider options for further development. These options may not be immediately apparent.
The article describes some of the possible options for the development of the programmer and gives some examples where which option has already been implemented. This is done very briefly, since the format of the article does not allow to describe everything in detail.

About scalability


I chose a developmental measure - efficiency.
If possible, I will mention possible ways of scaling up various directions, which is an opportunity to fundamentally increase my efficiency. I believe that the complexity of the tasks is solved with high efficiency, while it is desirable to use a minimum of resources. Successful application of scalability will inevitably affect the amount of income - which is a good indicator of success.

We go to the managers


The most obvious development option is to try yourself as a manager. You become a manager and you immediately understand why they say that the most difficult thing in programming is working with people.
For example, it is not always easy to explain to a certain Pete that if he is often asked what his code does, this is not a reason to consider himself popular, but you need to think about the fact that he is probably the source of the bydlocod .
At first, this is something new for you, but over time you realize that you can use the potential not only of your personal, but of the whole team. You begin to think more ambitiously, you understand that this gives you new opportunities in solving problems and you want to develop in this direction, receiving by delegating all the great opportunities for solving problems.
You start to climb higher and higher on the career ladder, more and more you understand how the company functions, you reach the CEO. And what next, how to scale? And at some point you understand that you yourself are able to create a company (not immediately, but possible), and you are engaged in this. So the company Mriya-Soft appeared .
It is possible and without the experience of a top manager to open your company, if you have confidence in your abilities and knowledge. So the company Acvitas .
Although of course someone may never engage in the opening of his company. All the same, the question here seems to be only whether a person can make a willful decision or not in order to look for something new, and does he need it?
But if you still decided on this path, then it is better to think about working in a company that is growing and developing and you have the opportunity to take part in it and get the very necessary experience.
And a pronounced case of growth is to open and develop an office of an existing company in your country or to take an active part in it. So there was the Kiev office of the Materialize company . Another example is the rather young office of Oberon Media in Kiev, you can find reviews on how it looked outside in the first half of 2009 - at first it is not always nice and comfortable. Games in Vista and Windows 7 are their handiwork.
Here it should be noted that not all top managers are ready to create their own company. For some reason, as soon as they are offered to think about a new direction, they scatter and look for a new place - apparently, they think that ideas about a new business direction arise when there are problems with the old one.
Another approach is not to grow in one company, but on the contrary, often change and convert them.
focus on how companies make money. So SultanHolding appeared.
Moreover, it may not be necessary to start with a programmer, perhaps even better with a tester or support engineer. The obviousness here is that the tester checks whether the task meets the requirements, the support engineer understands the user's problems. As development, it is to take part in setting goals, interacting with a product manager and gaining experience in this activity. In the future, most become a product manager. In a nutshell, the task director’s growth potential is usually higher than the person who performs them.
The topic of the career is devoted to the new project Stratoplan , created by people who have achieved career heights in a relatively short time.

The path of the manager does not fit


Either it seems to you that management is not for you, in spite of all its benefits, or you have already tried what it is and for some reason decided: “No, I don’t want it, I would program something.” Plus, moreover, the salary did not increase much when you became a manager, but hemorrhoids increased. But the place still can not sit. Although if you did not try yourself as a manager, you should definitely try all the same - the experience is just all gold. You will understand many of the "bounce managers" and you, returning to the position of engineer, will communicate more effectively with your bosses.
And actually here is an option to develop further technical - to understand what tasks you are looking for, and look for them in the company or in the companies. Talk, talk, talk, what are you looking for, not to be silent. Work in the company can be combined with freelancing, although it is not very easy due to lack of time ...

Freelance


Here, in parallel, you can look for opportunities to implement one-time freelancing projects. The most difficult thing is to start here, because the exchanges are crammed with nonsense, serious projects in this dump are hard to find, and if they do, then you have little chance of winning the tender. But in the beginning it is always hard, do not be afraid of this - you can make a couple of projects for a penny for a portfolio, and with a non-empty portfolio it is much easier to live. About freelancing is written a lot on the site Kadrof.ru .
Sooner or later, you go to a permanent customer and get the same job as a programmer, but usually with a higher salary than in the office, and with a flexible schedule.
Over time, you will have a large number of orders, either thanks to many small customers or one large.
And if you are interested in scaling, then you can start organizing a team to implement a large flow of orders. But first here you will need to think about paying for the team with your money or customer money.
Separately, I want to mention the transfer of knowledge. If you are doing something fairly rare, for example, a guru in programming applications related to computer security, you can safely transfer your experience to subordinates. There should not beware of the transition of the customer from you to your team members, because they will know you, not the team members. In general, if you are afraid to share your experience, then they will not share it with you either. Over time, you will lose ground.
Although the transfer of knowledge can be earned separately.

Trainings and consultations


If you feel that you own enough relevant information and want to share it, then it’s time for you to engage in consulting and training activities.
This is how the Successful Program Managers Club appeared. - first there was a webinar, then a book on a webinar, etc.
This option is scaled to a training center and / or consulting agency.
The first experience of consulting and training can be obtained in the company in which you work.

Own product or service


In parallel with work or with freelancing, you can start developing your product or service, usually this is an Internet service, in other words, a startup, start your business.
A startup can start with plans to grow and change the world. Here you need to start by searching for something that will appeal to so many users from all over the world.
You also need to be able to interest investors, thanks to the money and experience that your plans can come true. Related resources: Denny's blog , StartupPoint , Startup Crash Test and the growing site GrowthUP .
You can start a startup without Napoleon’s plans, at least at the beginning. Most often this will be a repetition of something existing, which has shown that it works for someone and brings an incomparably greater income compared to hired work.
This may be for example an online store, how to develop then develop online stores. And it can happen and vice versa: develop online stores for the order, and then create your own. Over time, you hire yourself disassemblers and will be engaged mainly in business. This is how the online furniture store VSI-MEBLI.UA appeared , some details can be read here .
A combination of two other options is possible: you strongly believe in your idea, in constant growth, but do not expect such explosive growth, as it is often described about the most successful startups in the world. This is how Terrasoft appeared. And somewhere between these options is the origin of the companies Bolero and Alvas.net - relatively small companies that have found their niche.
Here the important role played by the fact that working as a programmer, you can quite easily make a “financial pillow” and burn the bridges so that there is an incentive to work. But this is already someone better. Someone develops his company first, and then stops working “for his uncle” - here the risks are minimal, but the development is slow, because a lot of time is taken by constant work. And someone first gives up work, and then begins to develop their company - the risks are high here, but then you can devote all your time to creating your company. Although in case of failure “for food” a programmer can always earn. And another option - you can spur reduction, which contributed to the birth of the project Prom.ua , you can read how it was .
It should be noted that when working as a freelance to find an idea for a startup is easier than when working in a company. In a company, everything is usually organized in such a way that you are far from the final customer. When working as a freelancer, customers are closer and more diverse. This contributes to the fact that there is an opportunity to see a greater number of problems of potential customers and the solution of one of them can serve as the basis for a startup.
Sometimes it also happens that you create a project as a hobby, and it suddenly becomes successful. So there were projects Snasti and Flowerbed .

Bounty hunting


The bounty hunting option can be implemented if you are the best at solving problems of a certain type, or better at tasks that no one else can do except you.
Your goal is to position yourself so that people turn to you only when there are no other options, in this case you dictate terms and get 5-10 more than the customer planned to pay for it. But you need to be ready to solve problems and, importantly, quickly, which are really very difficult. Usually, when you learn the formulation of such a task, the first reaction is: “This is impossible!”. There are more chances for people who work with innovations and in one way or another understand what creation is really new. This is when, after demonstrating or explaining to someone that you did, people gasp in surprise!

Getting experience in another field


Perhaps you have a desire to change your subject area at all. In this case, you can find a company based on who is developing the software.
For example, if you are interested in the banking sector, you want to learn more, go through trainings related to the banking sector, you may want to work in the EPAM Systems and Barclays .

Full change of a field of activity


Also, quite often there is an option when a part of money is set aside for something which is not at all connected with the IT sphere. For example, someone invests money in deposits and thus creates quite high “pensions” for himself. Someone is building restaurants. Someone ... this is no longer IT and a separate topic, much larger than the topic of our article.

The science


Science has a special place.
Science can help expand the range of tasks that you can rely on. The task of organizing a project has its own specifics - you need to communicate not only with clients and your team, but also with scientists. And here you need to find what a scientist can and teach this computer. So the Viewdle project appeared , and here the creator of the company described the approach.
And if you are a scientist yourself, then your task is made easier because you fulfill two roles at once, and it is easier to communicate with yourself than with someone. The main thing is not to get into the swamp, because in science it is now very much, you may not even notice how you have forgotten how to do anything worthwhile attention, except how to publish in pseudoscientific journals ...

Combining different paths of development


I tried to describe the main options for development, but in reality there are a large number of combinations consisting of these options.
For example, you can freelance and start developing your product, work as a developer in a company and conduct trainings and consultations in another company (just do not forget about NDA ), work as a manager and build a restaurant for the money earned, etc.
Here you can give free rein to the fantasy.

Reason for stopping development


Not all programmers develop, even if they want it.
What hinders the development of programmers? As a rule, a programmer mistakenly thinks that he is doing well, if not 90% of all the software he develops, then 80% is for sure! And accordingly, as a consequence of this, a scornful attitude towards all other types of activity arises, except for directly developing. Perhaps every programmer who does not want to be a manager still needs to spend at least a year to understand his role more adequately.
Here you should add that this feeling is even more pronounced for programmers who are engaged in research and participate in innovations and really come up with new things. If you are such a person, you are just in time to give yourself an estimate by trying yourself in the role of bounty-hunter. Either you find out that you are really very strong, and then you really will solve complex tasks for an appropriate reward, or you will fail and, at best, you will adequately assess your contribution to the common cause, at worst - you will blame that the world is unfair to you. And a correct assessment of the current situation is a big plus if you want to develop.

Reservations


Much of the article is the result of what I happened to know. But sometimes, and maybe very often, I could not understand people correctly. And if there is a contradiction with the information received directly from its source, the latter is considered reliable.
Moreover, the creation of each company, the smallest one, is a separate, long and interesting story that cannot be described in this article, so the description can be quite primitive in mind of the message format.
You could also see that there was almost no mention of big companies. Yes, it was conceived - much has already been written about them and I do not think that I would be able to add something new. Yes, and the creation of such companies may seem unreal, therefore a more “mundane” description was chosen.

Conclusion


As a result, the overall picture emerges: if you want to develop, increase the complexity of the tasks you solve and you are a technical specialist, in any case you need to search for complex tasks, communicate with people, learn new subject areas, which is absolutely not technical skills. Some thoughts on this can be found in the article “About Networking” .
I want to repeat here, the most difficult thing in programming and software engineering is people.

Source: https://habr.com/ru/post/101821/


All Articles