A Career in IT: How to Become PM and Where to Go Next?

A Career in IT: How to Become PM and Where to Go Next?

Who is PM?

Project Manager is a specialist whose main task is to manage the project as a whole: designing and prioritizing, scheduling tasks, monitoring, communication, and quickly solving problems.

PM is a non-technical position, but most PM’s in IT are former developers or testers. So, for the search query “Project Manager” (in the fields of “information technology”, “software development” and “Internet technology”), the LinkedIn search database finds 2905 people, of which 1467 (51%) are former technical specialists: 1182 in the past worked as a “software engineer” or “developer” and 285 “tester” or “QA”.

Tasks and Responsibilities

PM’s primary responsibility and responsibility is to bring the customer’s idea to fruition on time using existing resources. As part of this task, PM’s need to build a development plan, organize a team, set up the project work process, provide feedback between teams and the customer, eliminate interference for teams, control the quality and delivery of the product on time.

PM’s objectives can be classified as tactical and strategic. Tactical this is the solution to the everyday problems of the project, the removal of obstacles from the team. The strategic ones are to coordinate the overall goal of the project, the path to it, as well as the speed of movement.

How to become PM and where to go next?

PM’s main qualities are good knowledge of the business domain, leadership skills, experience working with people, presentation and persuasion skills, ability to negotiate and take into account the interests of different groups of people, the ability to politely and clearly express thoughts in many languages, as well as the ability to collect common a picture of disparate facts. Also required are experience in planning, assessing and eliminating risks, knowledge of flexible and classic development processes and the ability to perform administrative tasks and create a team. Experience in development or testing will be a plus.

“It is important to be able to be a leader, not a slave, and also to find a balance between dictatorship and lack of control.

“Quality first: do not whine! In any situation, even if everything falls and customers call you hysterically, you should be calm. Yes, it fell, but a problem we are working on it. The second point: you need to want and be able to think ahead. They repaired what fell we are heroes But why did it fall at all? And how to make sure that it does not fall?

“The hygienic minimum of our industry is an acceptable level of English. And of course, you need to quickly learn new things.”

The career path to a PM position with a specialist who previously worked in IT looks something like this: Developer (tester) -> Lead developer (tester) -> PM.

“Initially, I chose the profession of a programmer. For several years of work, I realized that I like it better and better manage to communicate with people, and not with debuggers, so I decided to change my position in IT.

“I changed my career track because I wanted to work more with people. It turned out that PM is not just a techie managing a team, but much more. In fact, most of the skills that I developed as a programmer turned out to be unnecessary, and sometimes harmful. The technical background certainly helps to talk with techies. But overall it is secondary. Soft skills were needed much more.

“If you want to become PM’s, your skills should fit the management style in the company, you should have normal or good relations with the leader. Ideally, your candidacy should come to your manager’s head first if he thinks about his replacement.

A logical continuation of the career of a project manager is the growth “horizontally”, that is, the expansion of authority, the degree of responsibility and global tasks, and in the future, taking up the position of Program Manager. If you are interested in developing in other non-technical areas of management, you can go to the sales department or to the customer service department. Generally speaking, the prospects are not limited, including top management: CTO, CEO, CIO, COO.

How to launch a successful IT startup: three tips for beginning entrepreneurs

How to launch a successful IT startup: three tips for beginning entrepreneurs

For those who are thinking about launching their startup, but cannot decide on it at all, I can say that all the paths are open so far. A successful business can be started today, it is realistic. The world is full of empty niches with cheap entry. There are many startups that were launched on the knee, and ideas for them were suggested by some analogs. Working with startups for a long time, I made three important conclusions that may be useful in starting a successful business.

Tip 1: do it!

The main thing that distinguishes any successful startup from an unsuccessful one is that the founder does something. If you sit and do nothing, then nothing will happen. This is even more important than thinking. If you look at the list of unicorns (companies with an estimate of more than 1 billion) for 2018, then approximately every second one implements a trivial idea.

Here are some examples. Oyo Rooms is an Indian hotel chain that helps organize online marketing and attract customers. DoorDash is a food delivery service from restaurants that was not afraid to start when the delivery market was already moving to a mature stage and proved its profitability. Medical is a Chinese marketplace that makes it easy for restaurants and farmers to buy and sell per margin. AiHuishou a service for buying and reselling with a premium of used phones. PolicyBazaar insurance marketplace.

Tip 2: Think About Business, Not About Code

People are often scared by technological complexity. The founder is afraid that without special knowledge in the field of artificial intelligence, machine learning, and so on, he will not be able to realize the idea. But technology often does not play a significant role in the success of a business, this is the case with the unicorns cited as examples above. They do not use any space technologies, and the essence of business is not in them, especially at the start. You can start without being a programmer and without understanding anything. Many people say that successful companies are often created by programmers Gates, Zuckerberg, Breen, etc. However, one can look at it differently: many smart people tend to become programmers, this is an intellectual and fashionable profession with a lot of mathematics. And at the same time, smart people are attracted to success, perhaps this is precisely the case.

Even when the business is already large, IT does not define competition. Even the newest technologies that have just appeared do not solve the success of a business. If someone is interested in diving deeper into this topic, I advise you to pay attention to Nicholas Carr’s book “Does IT Matter?”.

Tip 3: Take Only The Right Investment

The right investments are investments received at the right time, from the right investors, in the right amount. It must be remembered that taking money is difficult, you take a lot of risks when you take investments. It should be a very conscious step and a choice of how much, when and from whom. The founder’s natural desire is to get as many investments as possible for growth, and this desire is spurred by the complexity of their receipt.

Large investments allow you to win in the market competitors who have little money. However, too much investment can be detrimental to the company. A very striking example of this is the history of the American company Beepi. At the beginning of her development, she managed to get an investment of 150 million with an estimate of 500 million, much higher than fair. When the money ran out, the founders went for a new round. A reasonable estimate by that time had grown, say, to 200 million, and the founders wanted 1 billion, and the attempt failed. The founders decided to lower the rate, which alerted investors and eventually led negotiations to a standstill. The company did not survive, and all because the founders initially took too much investment with too much appreciation.

Another good example is the story of the American company Blue Apron, which delivers recipes for self-cooking. The audience was relatively small, but the company grew in its target niche and attracted another investment with a fairly large valuation of 2 billion. Investors decided that with this assessment it was necessary to expand the target market by telling all Americans about the service offered by Blue Apron and setting up an aggressive advertising and marketing campaign. So, the company began to attract a large number of low-quality customers who, inspired by intrusive advertising, tried the service, but did not come back for it again, because they did not need such a service. At the same time, profitability and business economics fell, because huge amounts of money were spent on advertising. The company showed formal growth as the number of trial users increased. To maintain growth, Blue Apron was giving more and more ads and getting more low-quality users who left even faster. As a result, Blue Apron held an IPO but raised only 600 million. An investor who came with the wrong understanding of the market and influenced the company’s policy did much harm to this business.

What to do to start programming?

What to do to start programming?

In fact, there is only one way to know whether you can or not. “To start programming, you need to start programming. And to start programming, you need to start programming!” Many people think programming is a difficult task, you need to know a lot to work as a programmer. And it is true. If it were simple, they would not be paid such large salaries. But on the other hand, there are many books in the public domain. And most of them are of high quality. Professionals from large companies tend to write huge books or articles that describe their invaluable experience to others. Strange people of course. Instead of receiving huge sums of money for work, they are engaged in writing, for which they pay less or even nothing. These “oddities” will be considered later. And now we need to clearly understand, there are very few secrets in this profession. Most issues are resolved by searching the Internet. Therefore, despite the complexity, programming is one of the most affordable professions.

During the trial period, you need to decide on the technologies on which you will start. They should not be too complicated and long to master. But, on the other hand, they must be in demand by the market so that even those couple of weeks or a month spent on them are not wasted.

Personally, my opinion should be:

1. HTML

Very simple programming language. To be more precise, this is not even the programming language that everyone is used to. Procedural and object-oriented, such as C PHP, Ruby, etc. It is impossible to write on it, “what to do in the store.” This is a markup language that you will find on any web page. The instructions of this language look something like this: “This paragraph should have an oblique font”, “Here display the picture picture.png”, “The font size of this piece of text is 12 points. The color is red. This is a very useful language for beginners. Even if you are not going to web development, this knowledge will be useful to you. Estimated development time, 2-5 days. At the same time, it is not necessary to remember extensive reference data. It is enough to learn how to use these very directories. Among programmers, HTML is not considered serious or complex. But ignorance of the basics of HTML, what you can admit only to the closest people. Employers and colleagues will perceive you as mentally retarded.

As you learn HTML, you will constantly encounter references to CSS technology. Learning is not necessary at this stage. But if you get carried away with CSS, this knowledge will not be superfluous.

2. JavaScript

This is a “real” programming language. His study is closely related to HTML. Here you will find the first real difficulties. Although the language has a huge number of textbooks, video tutorials and all kinds of sites where everything is chewed to the smallest details. This will be a real test.

Surely someone is eager to start learning C, Python, and even Haskell. But even if you are going to become a system programmer. Most likely, sooner or later you will come across HTML and JS.

One of the reasons for choosing JS as the first programming language is its applicability in various fields. Starting with the client-side web page logic. Finishing with a JS-like QML language, where the developers of the Qt framework are dragging us.

If a novice programmer does not know simple things, there is not much difference where to start. The proposed technologies do not require large and heavy development, execution environments. On the a lot of textbooks and reference books in Russian. No need to be confused with address arithmetic and similar specifics. Your task is to learn how to make basic logical constructions such as loops, branches, etc.

Any textbook contains exercises. And at the initial stage, you should do these exercises. The bigger, the better!

However, there are two small categories of people who can replace JS with something else:

1. Those who have good mentors in other programming technologies.

For example, brother matchmaker, who works as a system programmer C. And he is ready to help you. In this case, C may be preferable. But as far as I know, about 30% of programmers are WEB programmers. So with high probability, JS will be the right choice.

2. People who need some other language right now to work. System administrators, usually SQL and bash.

In the case of SQL, I would not flatter myself. This is also a “fake” language. The complexity between HTML and JS. Most likely, he will have to be taught to everyone. But over time, I would advise that you still try something like JS that supports the procedural and OOP paradigms. There is still a plus in learning SQL. If you do not master it, there is no point in continuing.

But with bash, everything is different. Heard, JS allows you to replace bash through a module in node.js. So, if you need to write scripts from scratch, JS will be more interesting. If you correct what is written before you, then there is no other choice. Just like with SQL, JS will remain in your queue.

Who Can Become a Programmer?

Who Can Become a Programmer?

Anyone who can work their head can be a programmer. In fact, working with the head is as hard as hard physical labor. The brain under load consumes a lot of nutrients, energy. He must be forced to work by willpower. Fans of working with their heads can be met no more often than people who like physical activity. We all know how many people can voluntarily do exercises in the mornings and go regularly to the gym for years. About the same amount they want to voluntarily load their brain with work. Will and patience will be required. If you are ready to solve complex problems, “insoluble” problems for more than a year, you can become a programmer.

Of course, in this article, I should have listed what kind of education you should have. What courses, diplomas, and competencies you need to have. But all this is secondary. Because diplomas, competencies, and courses are acquired. If there is no willingness to gnaw at the granite of science, nothing shines on you. Otherwise, you can gain all the necessary knowledge in six months.

It is logical that the better you know the computer, the easier your path will be. You must own a computer as an experienced user. Those. to know what a file system is, in terms of how to store your files there, how to open them with different programs, how to install programs and use any of them, if it does not require any special knowledge about what these programs do. I think for six months you can learn how to use a computer to a sufficient degree. Even if before that, you have never seen him.

Most of those who want to become programmers are computer game lovers to whom their parents turned off the Internet in order to return it to reality. Returning to reality, where you need to feed yourself, and not a virtual character, they are arranged by system administrators, the lowest level. They go to work in technical support, because a computer is the only thing they can use well. Such people already have the necessary knowledge.

If you have difficulty communicating with a computer, my advice to you is to learn how to use it confidently first. If only because of the problems that you will encounter when studying programming require the same approach and skills as when solving the problems of a simple user. Therefore, inexperienced users need to become experienced. There are tons of free literature, interactive courses, video tutorials, and advanced users around to help you. At the very least, the tasks of learning programming are an order of magnitude more complicated than the tasks of a simple user. Good computer skills are the responsibility of any programmer!

The remaining knowledge, such as foreign languages ​​and even mathematics, can be considered insignificant at the initial stage.
Of course, there will be people who ask: “Wait a minute And what if I’m stupid (old, disabled, etc.) What should I have IQ In fact, there is no 100% way to determine your programming abilities based on some formal criteria. If you believe one popular scientist a neurophysiologist, the human brain is very volatile. If the weight, height, size of the main human organs vary, conditionally 50% in the bulk of adults, then the sizes of the brain lobes vary by a factor of ten. Therefore, it is very difficult to understand which activity is best for you. To do this, you need to make a new type of already insanely expensive medical device. Then hire rare and expensive specialists who will analyze the readings of the device. Nor is it a fact that for your money, they simply will not make mistakes. As it happens in all complex and expensive projects, at the initial stage.

Of course, everyone thinks, everything can be reduced to something like an entrance exam at a university, where the main subject will be mathematics. And no! I hasten to upset everyone. Mathematics is similar to programming from the outside, but this is only at first glance. I remember that 10 years ago I read an excerpt from a book where the author, an experienced programmer, said that programming is more like linguistics. Yes Yes! In his opinion, professional linguists can be better programmers than professional mathematicians! I can not agree with 100%. But there is a rational grain in this.

Let’s look at an example. You need to draw up instructions for the child to buy products in the store. Type: “You go to the store, look for cane sugar, if it is not there, you buy regularly. Then you buy bread, a loaf of white and black. If there is no black, buy gray ”You will be surprised, but this kind of instruction is pure programming. Moreover, you can write to them in foreign languages. Or you can, using the syntax of a programming language in the same way as a foreign one. And another programmer will be able to understand what is written.

For those who do not believe, let’s look at the simple logic implemented in hundreds of programs. “Request the number of rows highlighted in the table. If the quantity is greater than zero, make the ‘Apply’ button active. Otherwise passive ”You can also write this algorithm in a natural native or foreign language or in a programming language.
You will also be surprised, but translating algorithms from a natural language into a programming language is the most common job. When the programmer is given the task to implement the clear logic invented by others. Conversely, a translation of programmed logic into natural language is also needed. When this “other” needs to describe how exactly the program works. Yes, that’s right, C PHP and other programming languages ​​can be perceived as special foreign ones. Math is also needed, but, as a rule, when performing some highly specialized tasks that you may never encounter. You can start without mathematical preparation.

Programming is a separate branch of science. It is related to mathematics in some way. But it can also be associated with linguistics. Certainly, certain programming technologies are connected to something else. Therefore, you can’t simply say whether you succeed or not.