Stop calling yourself a programmer and other career tips

Original author: Patrick McKenzie
  • Transfer
There is one course that I would add to the curriculum for any engineering specialty, and it is not about compilers or the complexity of algorithms. This is an “Introduction to the reality of the industry”, because they do not talk about it and this leads to unnecessary bummer. This article claims to be README.txt for a young career engineer. Her goal is to make you happier by filling in the gaps in education regarding how the real world works. I do not urge you to follow the written as a detailed guide, but I hope that this information will be more valuable to you than nothing that you were told about it at the university.

90% of the work for the programmer is corporate software

Fundamentals of economics: the price of anything (including you) is a function of supply and demand. Let's look at demand first. Most software is not sold in boxes and is not available for download on the Internet or the App Store. Most software are dreary highly specialized enterprise applications that support the global economy from every imaginable side. These applications calculate costs, optimize shipping costs, help prepare accounting reports, design new interfaces, calculate insurance prices, flag suspicious orders for manual verification, etc. Software solves business problems .

Software solves business problems despite its heartbreaking dullness and lack of technological complexity. For example, imagine an electronic travel expense report form. For a company of 2,000 people, it can save about 5,000 man-hours per year compared to manual paper processing, which, with an average cost of an hour of work of $ 50, will save $ 250,000. Companies do not care that this is the most primitive CRUD application in the world. The only thing that matters is that it cuts costs or generates profits.

There are companies that create software that real people use, and this description covers almost everything that comes to your mind when you think about software. It is very unlikely that you will work in such a companyunless you take targeted steps for this. And even if you find yourself in such a company, most programmers still do not work on the user part of the application.

Programmers are hired so that they benefit the company, not so that they program

Periodically, companies undertake some of the irrational or political reasons (read below), but basically their actions are aimed at increasing profits or reducing costs. A well-placed company lists people who do just that. (Which may, but by no means necessarily, mean the work actually being done.) Those who decided to hire one or more programmers decided not to do this because he likes the geeks in his office, but because these geeks will allow to finish the project (or projects) that will increase profits or reduce costs. Creating beautiful software is not the goal, nor is it to solve complex programming problems or write hassle-free code. Increase profits or reduce costs - your only tasks.

Peter Drucker - you may not have heard of him, but he is respected by people who sign financial documents - he proposed the definition of a profit center and a cost center. Profit centers are the part of the organization that directly earns bread and butter: partners in law firms, sales people in companies, investors on Wall Street, etc. Cost centers are essentially the rest. You need to be part of the profit center., because it will bring you more money, status, and more opportunities in everything that you would like to do. This is not difficult: an intelligent student will easily determine the profit center of the company according to its description, one paragraph in length. If you want to work in this company, aim there. If you can’t, then either a) go to work somewhere else, or b) arrange a transfer for yourself after you are hired.

Programmers are especially expensive cost centers, which causes optimization itching in any MBA graduate. This translates into such wonderful initiatives as outsourcing, which can be understood as “let's replace very expensive cost centers that deal with some kind of magic, the essence of which seems to be not important to us, but without it, cheaper cost centers in a country with more low labor costs. ” (Lyrical digression: you can absolutely safely ignore outsourcing as a threat to your career if you read this article to the end.) No one will ever outsource profit centers. Attempting to do so will give rise to many managerial jokes. It is as if you were asked to replace the version control system with files on floppy disks.

Stop calling yourself a programmer

“Programmer” sounds like “an abnormally expensive slave writing inscrutable nonsense in other incomprehensible nonsense”. If you call yourself a programmer, know that someone is already working to fire you. Heard about Salesforce, Software as Service Company? Their slogan “No Software” literally tells future customers: “If you used Salesforce, you could fire half the programmers working on your internal software and put the difference in your pocket.” (This, by the way , there’s nothing to worry about. You are in an industry that robs people of work. If you think this is wrong, go back to university and learn something unnecessary.)

Instead, talk about yourself in the context of your accomplishments to increase profits and reduce costs for other employers. If you have not yet had the opportunity to achieve something in this, talk about yourself so that it is clear that you are able to increase profits and reduce costs and talk about your ideas in this regard.

There are many highly paid professionals who work with code, but do not call themselves programmers. Kvonts ( from “quantitative analyst” - analysts involved in the algorithmization of trading on the exchange, risk modeling, etc.- approx. a Wall Street translator) is the clearest example of this: they use computers and knowledge of mathematics to make decisions more efficiently than a group of people without such support, and as a result their companies earn millions of dollars. Bonuses for a successful quota in a good year exceed the salaries of many talented programmers over a dozen years.

Similarly, even if Google seems like the right company for you, there are also programmers there, and there are people whose work has increased the click-through rate of AdWords ads by 1%. (The latter cost millions of dollars, is the hint clear?) I recently stumbled upon a guy’s site who wrote in his professional biography: “I created the code for the billing system through which 97% of Google’s profit passes.” Now he is engaged in angelic investment (this is a beautiful way to say that he is very rich).

You are not limited by your technology stack.

I recently asked on Twitter what novice programmers would like to know about how to build a career. Many were interested in which programming language or technology stack to learn. My answer: it does not matter.

Do Java programmers make more money than .NET programmers? Everyone who considers himself a Java programmer or .NET programmer is already in flight, because a) they are programmers (and you, as described above, no) b) they close the possibility of being hired for most positions. In the real world, learning the basics of a new language takes a couple of weeks, and after 6-12 months no one will guess that you have not been doing this all your career. I was engaged in Enterprise Java development back in March 2010 ( article written in October 2011- approx. translator). Believe me, everyone doesn’t care. If a Python development company is looking for a techie who can make money with it, the fact that I have never written a single line of Python code in my life will play against me.

Talented programmers are rarely found, much less often than there is a need for them, so now the most favorable conditions are for applicants in almost all sectors. Matasano writes in Ruby. If you do not know Ruby, but you are a good specialist, you will still be hired. (A good specialist has experience in - repeat after me - increasing profits or lowering costs.) FogCreek uses the Microsoft stack. I cannot write ASP.NET without an error, but they will still hire me.

There are companies with such a crooked hiring process that if your resume does not contain the keyword you are looking for, they won’t even invite you for an interview. It is better not to work in such companies, but if you really want to, after spending several evenings and days off you can add the necessary words to your resume. But it’s even better to influence the choice of technology at your current place of work so that it promotes your career. Want to learn Ruby while working in a .NET company? Make a one-time Ruby project. And oh, you became a professional Ruby programmer, you wrote in Ruby and paid for it. (Funny? I checked it out at a Java company. The one-time Ruby project earned us $ 30,000. My boss was expectedly happy and never wondered what the project was done on .)

Colleagues and bosses are not your friends

You will spend a lot of time with colleagues. Sooner or later, with some of them you can become friends, but in the general case, within three years you will change jobs and, despite the warm relationship, never invite any of them to visit . And they will treat you the same way. You should be nice to all the people with whom life brings you — it’s just right, and besides it will help to develop ties - but do not be in the illusion that everyone around you is your friend.

For example, when you talk to a nice 28-year-old guy when you apply for a job, who seems to you to be just an improved copy of yourself from the future, this leads to nothing. He does not see you as a friend, you are no more for him than a resource necessary for the activities of the company, which he seeks to acquire at the lowest price. The chatter about World of Warcraft is nothing more than making contact, and he will surely (hopefully, decently) try to do something that your friends will never allow, for example, to let you loose a few thousand a year from your salary, or to manipulate so that you linger and work longer when you could spend this time with your real friends. Also, you will have other colleagues who, courteously and decently, will offer things that run counter to your interests, from “I will take your merits on this project” (perhaps this will be stated a little shorter) to “we should do that promotes my professional interests, not yours. ”

You greatly overestimate the average market competency level of your competitors, focusing on those people who directly surround you

Many of those who are currently working as a senior programmer cannot actually write FizzBuzz . A curtain. The main conclusion: you are most likely competent enough to work in a dream company. Let them hire the best of mere mortals, but nonetheless, they hire mere mortals.

"Ad. Summary. Interview. Work. ”Is the exception rather than the rule in the hiring process.

Most vacancies will never be announced publicly, just like the best candidates are never openly available (read about it here ). Information about the vacancy is distributed at about the speed of a glass of beer, and is sometimes smeared by email correspondence. Someone wants to hire a programmer. He reports this to friends and business partners. Some of them definitely know someone suitable - a family member, a roommate from a university dorm, familiar from the conference, a former colleague, etc. People are introduced to each other, meetings happen, they reach an agreement in principle on hiring. And only after that dances with a resume / human resources / contract and other formalities begin.

This is especially true of the most worthwhilevacancies. Being the first employee of a successful startup has a certain flair among IT specialists, and not one of these vacancies has been closed with the help of a resume sent to the personnel department, partly because the startup of 2 people does not have enough subcutaneous fat to organize the personnel department. (Most likely, you should not strive to become the first employee of a startup, rather become the last of the co-founders.) Want to work at Google? They have an official process to push you forward just for the recommendation of another Google employee. (In addition, a Google employee sympathizing with you still has some decent informal ways to influence this process. One option is to buy the company you work for. When you have a couple of billion in your pocket, you have many interesting ways to solve problems.

There are many reasons why hiring is private. One of them is that in response to the published vacancy, a huge amount of unwanted resumes (especially in the current situation) comes from blatantly inappropriate people. Another is that some companies are so incapable of hiring that if no one is personally familiar with the candidate on the part of the employer, they can easily hire someone who is unable to write FizzBuzz.

Networking is not just TCP packets

To develop relationships means a) to meet people who may one day prove useful to you (and vice versa) and b) make a good impression on them.

There are many places to meet. For example, industry events such as conferences or open lectures at universities. User groups are another option. Keep in mind that these events attract different audiences, and adjust accordingly.

Always strive to help. This is the right thing, especially considering that people tend to remember well who helped them or accepted their help. If one day it happens that you yourself cannot help a person, but you know someone who is able to solve his problem, introduce them to each other. If everything is done correctly, these two will be happy now and are disposed to help you in the future.

You can get acquainted on the Internet, but something in our brain inherited from a monkey attaches particular importance to face-to-face interaction. I met people on the Internet and then transferred the contact to the real world. A physical handshake is a big shift in a relationship, even if you have already helped someone earn more while communicating online with your tips. Write a blog, participate in forums on Hacker News or other resources that are notable in your industry, but remember to attend real meetings.

Universities are far from the real world

Your average score does not matter (with rare exceptions, as in one international advertising agency). It only affects whether your resume will be selected for an invitation to an interview. If you read what is written above, then you know that sending resumes is not the only way to get an interview, so do not spend too much time optimizing what works quite well already (since with an average score of 3.96 you will be called like this as often as with 3.8), or something that you simply don’t need (since you can find work by inviting the right people to coffee).

The specialty and the department in which you studied do not matter. Most industry leaders do not know the difference between computer science and applied mathematics. There was a thing, I was ready to cry because a small puncture with my studies called into question my opportunity to get a more prestigious specialty in a diploma. In the scientific community, these little things are important. In the real world, no.

Your teachers may know how the labor market works in the scientific field (in a nutshell: it is wildly inefficient and confusing beyond all human understanding), but they have quite idealistic ideas about how this happens in the real world. For example, they can convince you to get additional specializations, because a) it seems to them a good idea b) they always need slaves working for Rollton to conduct their scientific work. Remember that the market value of a specialist who is able to conduct scientific work is $ 80 - $ 100 thousand per year. Rollton for this money you can get hold of.

The teacher, whom I wrote scientific work, offered me a place in the department, tuition, and as much as $ 12,000 a year as a scholarship, if I subscribe to work with him for the next 4-6 years. This is a great offer if and only if you have just immigrated from a country with a lower wage and you need support in obtaining a visa.

If you really like the atmosphere at the university, then no problem, put a backpack on your shoulder and you can enter the building of any university in the United States at any time. Buying a backpack is much cheaper than staying in science. In commercial companies, you can also work your head, but at the same time there will be less politics and you will be better paid. You can even publish in magazines if you need one. (The field of how the mad atmosphere of the scientific community will allow you to do so may rightly begin to doubt whether publishing in a scientific journal is anything more significant than, for example, publishing an article in a blog that is read by smart people.)

How much do programmers earn?

Wrong question. The correct question is: what job offers do programmers usually agree to? Because salary is just one of the levers that can be used to attract you. And my answer to this question will not really help you: for all sorts of things.

In general, large companies pay more (money, social package, etc.) than startups. Programmers who know their worth earn more than those who doubt themselves. Older programmers earn more than younger ones. People who work in more money sectors earn more than those who work in less money sectors. People who know how to negotiate earn more than those who are not strong at this.

We have a cultural taboo never to talk about salary. But that is not absolute. In many cultures, talking about money is perfectly acceptable in a professional context. (If you were a middle-class Japanese, you would have thought it appropriate to tell your income at the second meeting to anyone, from the guys from your football team to the chef who turns sushi for you. If you were the owner of the company, you would probably , were more evasive speaking about themselves, but the salaries of their employees would be discussed just as programmers discuss compilers - often enough and without a shadow of embarrassment.) If I were a Marxist or a supporter of conspiracy theory, I would suggest that American culture was specially imprisoned under the interests of employers and against the interests of employees. Before discussing salaries with a potential employer, it is worth talking to someone who already works in this company in a similar position and clarify the plug. In the courtyard <% => ;, such a person can easily be found on the network (using LinkedIn, Facebook, Twitter or any other non-graph social network).

In one form or another, programmers are usually offered social services. package. In the United States, it makes sense to worry about health insurance (usually the employer pays most of the cost) and about pension savings, which are usually offered in the format “we will report to your retirement account an amount equal to what you pay there, up to a maximum of x% of your annual salary. ” What you get as a result is easy to calculate: x% of the annual salary. (This is extra money, so always make the most of your employer's retirement plans. Invest this money and forget about it for the next 40 years.)

There are other goodies like free drinks, office dinners, paid programming books, etc. This is more of a social pa. If I offer to buy you drinks, this first of all speaks about the rules in my company and how I will relate to those who work for me. (Literally, “I am going to inspire inexperienced young programmers for labor exploits, putting them a penny of soda and saving tens of thousands of dollars on wages, while helping them ruin their health.” I love soda.) Be able to see such social pa and react accordingly. For example, a company that is willing to pay for the training of its employees may be a worthwhile place to work, but do not settle for a significantly lower salary in return for the fact that you can easily go and buy yourself.

How do I become a better negotiator?

You can write a whole article about this. But in short, then:
  1. Remember that you are selling a solution to business problems (increasing profits and reducing costs), and not your programming skill or an intelligent person.
  2. Negotiate moderately aggressively and confidently, like a professional. From that side they will hold on to just that. If you strive to come up with a mutually beneficial offer, do not agree to everything.
  3. “How much did you earn in the previous place?” Understand how “tell me the reason to offer you less.” Answer accordingly.
  4. Always have a counter offer on hand. Be prepared to bargain with anything but money. If they cannot offer you a bigger salary, ask for a longer vacation.
  5. Talking about money is appropriate only after you have reached a basic agreement on the transition. Usually this conversation takes place at the very end, when they, for their part, have already invested quite a lot of time and money in getting you, that is, not at the interview . Remember that not being able to negotiate with you at this stage promises them losses, so they most likely will not insist too much on things insignificant for the company, but essential for you, as if you had thrown a few thousand on their salary offer and it was firmly upheld.
  6. Read the book. A lot of them have been written on the topic of negotiations. I like Getting to Yes. The idea that inability to negotiate costs you thousands of dollars annually can be confusing, and therefore programmers often do not make a directed effort to learn this, instead spending time on games with some new technology.

How much are stocks

Roll d100. (Are you one of these? I apologize, rand (100).)

0 - 70: Your stock is worth nothing.

71 - 94: Your shares are worth approximately the amount that you did not earn when you went to work in a startup, instead of a large company with a higher salary and social benefits. package.

95 - 99: The value of your stock will significantly change your life. However, you will not feel rich, because many of those with whom you have worked closely in the last couple of years are richer than you are by definition. But then your family will no longer criticize you for not going to work at $ TA_SAMAYA_KOMPANIYA as a good $ NA_KOGO_VAM_PREDLAGAUT_RAVNYATSYA

100: You worked for Google's killer and your fortune is huge. Congratulations.

An inquisitive reader will notice that 100 will never be the result of calling d100 or rand (100).

Why are you so skeptical about working for stocks?

Because you strongly overestimate the likelihood that the startup in which you work will shoot, and very strongly overestimate the piece of cake that you will get if this happens. Read about the sequence of payments to shareholders during the liquidation of the company on Hacker News or Venture Hacks, and then think about how the people who write about it understand the issues of venture transactions no less than you do in programming, and how you can conjure in code when several million dollars are at stake.

Should I start a career in a startup?

There is a high probability that for a couple of years you will be working very hard, breaking off often and painfully, in the end you will be left without work and will be looking for a new startup. If you really want to work as a startup, work for a large company, save up money, experience and connections and make your own a couple of years after graduation.

When you work in a startup, the same startupers as you yourself become your circle of friends. In a few years, most of these people will not be able to hire you. Working in a large company, you are spinning around among people who work in large companies. In a few years, many of them will be able to offer you a job themselves or recommend you to someone.

So work in a startup or not?

Work in a startup is, of course, a career path, but to a greater extent it is a way of life. This is somewhat reminiscent of work in the financial industry or in science. These are three very different approaches to life. Many people try to lure you there out of their own interests. If you sincerely enjoy living as a startup, go ahead. If you like only certain aspects, then remember that if you really want, then a lot can be organized for yourself and so on. For example, if you want to work with the latest technologies, and at the same time it is important for you to be home by 5:30 in order to have time to see children, then you can work with new technologies in a huge number of large companies.

(Except for jokes. If something generates profit, then companies will invest in it. Of course, in addition to this, they will also make a huge number of CRUD applications, but startups are not much different from large companies, except that it’s better to describe them nicely your CRUD application.) The first hour of work on a new social network is trying to make the CRUD application interesting, the rest of the time it’s the drama of divorcing a couple of heterosexual men.)

Communication is your primary professional skill.

Always remember that programmers are not hired to program, but to benefit the business. The main quality that affects whether or not you get a job is your ability to convince others that you are useful . At the same time, being completely useful is not necessary.

Many of the best programmers I have met are pathologically unable to keep up the conversation. As a result, other people a) do not want to work with them b) underestimate their contribution, because in order to find out something about what they have done, you need to talk about it, and they simply do not implement this protocol. The converse is also true: people on average think that I am one of the best programmers they have ever met, because a) I can obviously program b) I write and speak very, very well.

(There was a time when I considered myself a programmer “slightly below average.” Since then, I realized that I had a rather distorted idea of ​​the distribution of skills, that a programming skill is not something to focus on, and that my modesty plays against me. Today, if you ask me how cool I am as a programmer, I’m most likely to start telling you how I wrote a system that helped millions of children learn how to read or that helped a company earn millions. Where am I with my programming skills in r nobody cares Afik normal distribution, so why should I worry?)

Communication is a skill. Practice and you will get better and better. One of the important skills of the second order is the ability to quickly, briefly and confidently talk about how you are useful, to someone who does not understand the subject area and who have no reason to be disposed towards you. If during this exercise technical terms appear in your speech (“I reduced the working time of 99 percent of queries by optimizing indexes by 200 ms,” try again without them. You must be able to explain what you are doing to the sensible eight-year-old, the chief accountant of your company, the programmer of another specialty, or see for yourself which abstraction suits you best.

You will have to do sales and other things that you hoped to avoid as a programmer.

Corporate sales - this is when you come to the company and try to convince them to spend a six- or seven-figure amount on software that will either increase their profit, reduce costs. Every interview is a corporate sale. Your political and communication skills, as well as your ability to build relationships, are crucial, while your technical skills are secondary.

When you try to convince colleagues to realize your ideas, you sell too. If doing business is your direct responsibility, then being able to convince people is your main professional skill. Take the time and hone it. This means being able to efficiently redistribute information in official letters, by email, in one-on-one conversations, at meetings, and using PowerPoint presentations (where appropriate). This means being able to write a business case for a technological initiative. This means understanding that sometimes you have to sacrifice technology to achieve business goals, and rightly so.

Your modesty works against you

Many programmers have problems with self-confidence. Many were brought up so that bragging about their achievements was not encouraged. In American corporate culture, such modesty is not appreciated. A more correct tone for interviews and communication can be described as “confident restrained professionalism”.

If you worked in a team and your team succeeded, do not say “this is not my merit, it was the team’s work”, unless you are in such a position that everyone understands that you are lying to seem modest. Try it this way: “I was happy to contribute by coordinating the team’s efforts at $ VASHA_SPETSIALNOST.” Train in front of the mirror until you can say it with a serious face. It may seem to you that you are exaggerating your contribution. Do not think about it. Anyone who claims to coordinate production optimization, in fact being a sandwich maker, exaggerates his contribution. And you are a programmer. You do your magic things and life of people becomes better. If you were responsible for the database on an important project in which other people participated, besides you, damn it, yes, You coordinated the efforts of the database team and this was critical to the success of the project. These are the rules of the game. If you feel uneasy about this, then you are like a baseball player who does not steal the base (base theft - baseball game situation - approx. translator): you are not highly moral, you just do not know how to play.

All business decisions are made by multicellular relatives of chimpanzees, rather than following rules and algorithms.

People are people. Social dancing is an important skill. People often support the ideas of their friends, even though other ideas may be better. People are often more disposed towards those with whom they ate at the same table. (There is such a book, “Never Eat Alone.”) Perhaps you should read it, the name doesn’t lie.) People prefer people who are like themselves. (This can be treated well, neutrally, or in different ways. Just accepting this fact is the first step to take advantage of this state of things.)

Your appearance, too, at least matters, because it’s ridiculous to peoplejust pick up the key with the help of such simple tricks as clothing appropriate to the circumstances, professional appearance, confident tone of voice, etc. Your suit will cost no less than a new monitor. You will need it extremely rarely, but in these rare moments you will be very, very glad that you have it. Honestly, if I go to a government agency, dressed in my everyday clothes, they talk to me like a dysfunctional teenager, while when I wear a suit, they treat me like the director of a multinational company. In fact, I am a dysfunctional teenager, who is the director of a multinational company, but I myself decide what to focus on when I have to communicate with bureaucrats.

(The people I work with may begin to object that I am cunning, speaking of myself as the director of a multinational company, because my company is not very similar to what most people think of when it comes to a "multinational company." Well, excuse me, this is a simple colloquial trick.If you think that people don’t like it when they get dusted in this way, I’ll tell you that there are those who even zealously hate people in suits, but this does not belittle the value of the costume. Just be adequate to the setting. Answers, ve nye only technically - this, incidentally, the best type of response when the migration ministry threatened you with deportation.

In the end, your happiness in life does not depend on career success.

Talk to older people or just believe sociologists who claim to be family, faith, hobbies, etc. more important for happiness than money and career success. Draw conclusions. Making a career is important, and right now it may seem like the most important thing in your life, but there is a chance that you will change your mind over time. Work to live, not vice versa.

Also popular now: