If I could add one class to every engineering education, it wouldn’t involve compilers, gates, or time complexity, but rather an introduction to the realities of the industry, because no one taught them, so we suffered a lot of unnecessary pain and suffering. I hope this article can become a self-report document of young engineer’s career (raedme.txt). The aim is to fill the gap between how the “real world” works and education, and to make you happy. It took me more than a decade and a lot of suffering to come up with these lessons from being “a moderately smart, but not confident, engineer with no business experience.” I wouldn’t take this as a golden rule, but hopefully it tells you something that the college career center doesn’t.
Ninety percent of the programming comes from in-house software
Economics 101 says that the value of everything, including you, is determined by supply and demand. First, let’s talk about the demand side. Most apps aren’t sold in boxes, and they’re not available on the Internet or downloaded from the App Store. Most of the software is internal company applications, which are often boring and lack long-term thinking. But it serves every aspect of the global economy, from tracking expenses to optimizing shipping rates to helping accounting departments budget, designing new tools, calculating policy prices and identifying malicious orders.Software solves internal problems.Software is always used to solve internal problems, even if they are often tedious and low-tech. Take, for example, an internal travel expense report. Assuming a company with 2,000 employees saves 5,000 man-hours a year compared to processing on paper (the average cost at full capacity is $50 an hour), a total savings of $250,000 a year. The company doesn’t care if the form is the simplest CRUD in the world(that is, Create, Read, Update, Delete and other basic database operations)Applications, whether they save the company money or generate additional revenue.
When you think of software, you think of the software that companies create for customers. But you’re unlikely to actually work for one. Even if you work for one of these companies, very few programmers write software directly for external customers.
You’re hired to create value, not to program
Companies do things for irrational and political reasons (see below), but the main reason they get together to do things is to increase revenue or reduce costs. Businesses that run well often benefit from people who are very good at something. (You can, but you don’t have to.) People who decide to hire one more engineer don’t do it because they like having a Geek in the room, but simply because adding that Geek can complete a project (or projects), increase revenue and lower costs. Developing beautiful software, solving complex technical problems, writing bug-free code, and using attractive programming languages are not goals. The sole purpose is to increase revenue and reduce costs.
Peter Drucker (the father of modern management) — you may not have heard of him, but he was a prophet among bosses — came up with the idea of profit centres and cost centres. Profit centers are organizations that make money: law firm partners, enterprise software sales, Wall Street titans, and so on. The cost center is the rest of the people. Everyone wants to be in a profit center because it brings higher wages, more respect and more opportunities to benefit. It’s not hard: a bright middle-school student can usually identify where the profit centre is by reading a business description. If you want to work there, work for it. If you can’t do that, either work somewhere else, or join the company and change jobs.
Often the cost of engineering is very high, which triggers an MBA’s instinct to optimise costs. So there’s this great idea of outsourcing, “replacing these really expensive cost centers with a cost center in a low-wage country, and these expensive cost centers don’t get us anything.” (Hint: If you read the rest of this guide, you can ignore outsourcing as a career threat.) No one outsources profit centers. Such things can only happen in AN MBA joke. It’s like suggesting a floppy disk with a bunch of copies instead of a source control system.
Don’t call yourself a programmer
“Programmer” sounds like “a programmer who can do difficult things on a complex machine at a very high cost.” If you call yourself a programmer, some people are already trying to fire you. There’s a company called Salesforce, and engineers are familiar with their idea of software as a service.(SaaS, Software as a service). Their slogan is “No software,” and they tell actual customers, “Do you know what your internal programmers are doing? If you use Saleforce, you can fire half the programmers and pocket some of the savings as a bonus.” (There’s nothing wrong with that, by the way. You work for a company that puts people out of work. If you think it’s unfair, go back to school and do whatever you want.)
Instead, you should describe yourself as someone who is involved in increasing revenue and reducing costs. If you haven’t had the opportunity to do so, show that you have the ability or desire to increase revenue or reduce costs.
Many well-paid coders do not describe themselves as coding for a living. Wall Street quants are a group of physicists and mathematicians who analyze financial markets with mathematical models. They believed that mathematical accuracy was the basis for analyzing the most complex human activities and used mathematical techniques to analyze the nervous system to make money. Also known as financial engineers, they refer to themselves as “miners”.) The first and most famous example: using computers and math as leverage, they were able to make decisions that had serious consequences faster and better than people without help, decisions that were funny because “our company made billions of dollars.” (The irony of derivatives?) In a good year, a successful quant can earn more in a year’s bonus than an equally talented engineer can make in a decade or a lifetime.
Similarly, even if you think Google looks like a programmer friendly company, there are programmers out there, and there are some people who are very concerned about a 1% increase in AdWords clicks. (Hint: The probative value is in the billions.) I recently stumbled across a web page of a guy whose resume said, “Wrote background billing code that accounts for 97% of Google’s revenue.” He is now an angel investor (another polite term for “rich”).
Review images
Don’t be constrained by your technology stack
I recently asked on Twitter what young engineers want to know about their careers. Many people ask how to learn a language or protocol stack. That’s not important. Please read down.
Do Java programmers make more money than.NET programmers? Anyone who defines themselves as a Java or.NET programmer is already a Luthor, because first they are programmers (see above for reasons) and second this qualification automatically excludes them from most programming jobs in the world. In real life, it only takes a few weeks to learn a new language, and then another six months to a year to become an expert. Back then, no one cared what language you used to speak. Back in March 2010, I also developed a backend for Java Web applications. Trust me, no one cares about that. If a Python company is looking for a technologist to make them a lot of money, the fact that I haven’t written a single line of Python code doesn’t stop me.
Talented programmers are few and far between — but there are plenty of jobs for them — and in most situations the demand far outstrips the supply. Everyone at Matasono is using Ruby. If you don’t, they’ll hire you right away if you’re a good engineer. (Again, a “good engineer” is one who has a track record of increasing revenues and cutting costs.) Most people in Frog Creek use Microsoft’s protocol stack. I can’t even spell ASP.NET, but they still hire me.
The hr department of some companies will filter resumes based on certain keywords. It’s not worth going to, but if you really want to do it, it’s easy: Invest a few nights and weekends in trying to use that key word in your current project, and then add it to your resume. Want to gain Ruby experience in a.NET company? Do a one-off project in Ruby, and you’re a professional Ruby programmer — you write Ruby code and make money. Are you happy? I did something similar at a Java company. One one-time project earned the company $30,000. As expected, my boss was so pleased that he didn’t even ask what to deliver.)
Coworkers and bosses are not usually your friends
You spend a lot of time with your colleagues. You might end up becoming very close friends with some of them, but usually within three years you’ll have split up and you won’t ask them out to dinner except on friendly terms. They will do the same to you. Anyone who meets you will think you are a good person — it’s a moral thing and it helps your relationships — but don’t assume that everyone is your friend.
For example, in an interview, you’re talking to a nice 28-year-old guy who makes you feel like he’s you years from now, but he’s still in the middle of a deal. You are not his friend, you are just an input to the industrial process, and he will hire you for the least amount of money for the company. When he approaches you with world of Warcraft, he’s building a professional relationship, and he’ll try to do (absolutely professionally, of course) things that your real friends wouldn’t do to you. Like trying to convince you to accept a salary of thousands of dollars, or guilt you into staying longer at the company when you could be with your real friends. You also have other friendly and ethical colleagues who suggest things that can hurt you, from “I took credit for that project you did” (the wording probably doesn’t have that many words) to “We should be doing this; it’s going to help my career, not yours.” Don’t be surprised when these things happen.
Completely overestimating the average of your competitors
In fact, many senior engineers who are hired will not implement the FizzBuzz sequence. You must be in tears reading this. Here’s the key point: You’re good enough for those companies, but you don’t think so yourself. They hire great people, but they also hire ordinary people.
“Read the job AD → Send your resume → Go to an interview → Get an Offer” This isn’t the usual route to getting hired. It’s an accident
Most jobs are never advertised, just as good candidates are rarely found on the market (see here). The job is spread over a beer, and sometimes matched by email. The people who make the decisions in the company are looking for someone. He told his friends and business contacts. One of them just happens to know the person — a family member, a college roommate, someone from a conference, a former colleague, whatever. We made some introductions, we met, and we talked about the job pretty much. Then resumes, hr departments, formal offers and the like come in.
This could be the job you really want. “The first employee of a successful startup” has a certain appeal to many geeks, but the reality is that they can’t find a place to send a cover letter to an HR department, in part because two-person startups rarely need one. (Note: You may not want to be the first employee at a startup, but the last partner.) Want a job at Google? If someone at Google likes you, they have a formal process to help you. (If the Person at Google really likes you, there are plenty of informal ways to shorten the process. For example: Buying the company you work for. When there is a lot of money, there are a lot of interesting options for solving problems.)
There are many reasons for hiring under the table. One reason is that hundreds of resumes are sent to people for job openings (especially in this economy), many of whom aren’t really qualified for the position. Another reason is that other companies have had terrible experiences with hiring, and unless you know the candidate well, you’re more likely to hire someone who can’t even get through FizzBuzz.
Social networks (relationships) are more than TCP packets
The point of networking/networking is to meet people who can help you in some way (and vice versa) and to make a positive impact on them.
There are plenty of occasions to meet other people. Industry events, such as conferences or symposiums, are a good choice. User groups are another option, and people in user groups are completely different and much more useful than people at industry events.
It is the right thing to do to help others as much as possible. People care about those who have helped them in the past. If you can’t help someone, but know someone who can, introduce them to each other. If you do a good enough job, both parties will appreciate you and be willing to help you in the future.
You can meet people on the Internet (omg, can you?). But conventional wisdom leads us to believe that face-to-face communication is better. I’ve met a lot of great people online, and I’ll be visiting this one soon. Even if you’ve gotten to know each other well through online communication, or “got rich because of a suggestion from the other person,” meeting and shaking hands can lead to a better relationship. Blogging and joining industry forums like THE HN are necessary, but they allow people to meet and talk.
Academia is different from the real world
Your GPA(Translator’s Note: Grade-point Average)Not important (multinational advertising agencies are an exception). It largely determines whether or not your resume is selected for the job interview stage. If you read the latter part of this article, you will understand the resume is not to get the main way of the interview, don’t take effort to improve the already good things (no matter GPA score is 3.96 or 3.8, you get a job interview is about the same), or you don’t need (because you invited to the right people go out to drink coffee, And get a job interview).
It doesn’t matter what you major in or minor in. Most decision makers in the industry couldn’t tell the difference between a computer science major and a math major even if they tried. I once broke down in tears because of an academic glitch that called into question my ability to get a bachelor of Computer Science major, which my advisor told me was more famous than the bachelor of Computer Science. Academics care about these distinctions. But the real world doesn’t work that way.
Your professors will probably understand how the academic job market works (Sideshow: They are ridiculously inefficient in engineering. In English, it is too confusing for ordinary people to understand), but they often fantasize about the real world like Don Quixote. For example, they will force you to pursue an advanced degree because from their point of view it’s a great idea, and they like to have coolies (coolies for a bowl of ramen) for academic research. The market value of researchers in your field is 80 to 100k+++. Enough to buy a lot of ramen. When I was in college, I worked for my boss.
Review images
The professor in charge of my research project gave me a seat in the lab, free tuition, and a total of $12,000 scholarship, but I promised to work for him for 4-6 years. This is only a good deal if you have just immigrated from a low-wage country and need someone to negotiate with the government to issue you a visa.
If you really like the college atmosphere, this is great. At any time, in any American university, in any building, you can walk into it with a backpack. Working in academia, you can afford a backpack. You can also be a spiritual leader in your industry — with less politics and better pay. You can even get published in a magazine if you want. (When you’re free from the academic miasma, you might wonder whether publishing a magazine article is more important, personally or socially, than writing a blog for smart people.)
How much do engineers make?
Wrong question. The correct question is “What does an engineer do on the job?” Salary is one of the many levers people can use to motivate you. The answer, without much help, is, “Jobs are everywhere.”
In general, big companies are better than startups (money, benefits, etc.). Engineers who create high perceived value earn more than average engineers. Senior engineers earn more than junior engineers. People in high-cost fields earn more than those in low-cost fields. People who are skilled at negotiating earn more than others.
It’s not in our culture to ask about salary. But this is not common. In other cultures, it’s perfectly appropriate to discuss money in a professional context. (If you’re a middle-class Japanese, it makes sense to tell someone, say, your soccer club member or the guy who makes your sushi, about your salary the second time you meet. If you own a company, you may be tight-lipped about your assets, but you still talk about your employees’ salaries as frequently and without embarrassment as programmers talk about compilers.) If I were a Marxist scholar or a conspiracy theorist, I would argue that the culture of middle-class America was designed specifically for employers to the detriment of employees. As for the salary discussion at any particular target employer, you should talk to people in similar situations and ask them about the salary range for the position. You can find these people online right now. (LinkedIn, Facebook, Twitter, and social networks without graphical databases are all examples.)
In any case, engineers usually get a range of benefits. What’s worth worrying about in the United States is health insurance (you usually get it, and your employer pays most or all of the costs) and retirement plans, which in other words, “We’ll contribute X percent of your salary to your 401K.” This number is easy to calculate: X% of salary. (It’s free, so always find the best employer for your IRA (Individual Retirement Account). Put that money in index funds and don’t think about it for 40 years.)
(: The 401K plan is also known as the 401K clause. The 401K plan started in the early 1980s and is a fully funded endowment insurance system established by the joint contribution of employees and employers. It refers to the provisions of Article 401K newly added in the Internal Revenue Code of the United States in 1978 and recognized by the law in 1979. In 1981, additional implementation rules were added, and the rapid development in the 1990s gradually replaced the traditional social security system and became the preferred social security plan for many Employers in the United States. For private for-profit companies.)
Other perks include “free soda,” “free lunch,” and “free programming books.” These are just social signals. Give a specific example of what I do at work, when I say I’m going to buy you a soda, describe who I want to work for me and how I’m going to treat them. (Which means “I like to distract young, immature engineers and make the job fun by buying 20-cent sodas, encouraging them to harm their health while saving myself thousands of dollars in pay.” I really like soda) read social signals and react appropriately — someone signaling, say, that a company willing to pay for its employees’ education is likely to be a good company to work for — don’t give up a lot of money for a few pennies…
How to improve your negotiating skills in job hunting?
While this could be written for another article, I’ll briefly mention it here:
1) Remember that you are not showing off programming skills or a pretty face, but rather selling a solution to a business need (increase revenue or reduce costs).
2) During the interview, be confident and have an equal conversation. Your opponent is probably doing the same thing. You want a mutually beneficial contract, and don’t say Yes every time they ask.
3) An employer may ask “What was your last salary” when they are really saying “give me a reason to keep your pay down”. You have to decide how to answer the question appropriately.
4) Negotiate. Not just money, but other things you care about. If you can’t ask for more money, try asking for more vacation time.
5) Start salary discussions only after you have been offered the job. Because by then, they’ve invested a lot of time and money in you. At this time, they will say “no, we can’t make a deal”, which will waste a lot of cost. They will feel that some small problems are not worth bothering any more, such as the salary increase of several thousand yuan every year.
6) Read more books. A lot of people have written books on negotiation. I like Getting To Yes | bargaining power, “the book. It’s a bit of a puzzle that negotiating skills are worth spending thousands of dollars a year over a career, but engineers think it’s crazy to learn. They’d rather learn the minutiae of the technology they’re interested in.
How to evaluate equity:
Roll the dice with d100. (For geeks, don’t know what? Sorry, so rand (100) is good.
0 ~ 70: Your equity is worthless.
71 ~ 94: Your equity stake is worth a lot of money, enough to make you give up a good salary and good benefits at a big company to work for this startup.
95 ~ 99: Your equity will change your life. You won’t feel so rich — there are people who have more money than you, and many of the people you’ve worked with in the last few years will be a lot richer — but your family won’t berate you for going into the wrong field.
100: You will work for the next Google and be rich beyond imagination. Congratulations to you.
Careful readers will notice that 100 does not actually appear in D100 and RAND (100).
Why not equity?
Because you overestimate how likely it is that the startup will succeed, and how much of it you will get if it succeeds. Read the discussion on Dilution and liquidation preferences on Hacker News or Venture Hacks, and remember that a lot of people know more about deal negotiation than you do about programming.
Is a startup a good fit for new grads?
If you join a startup right out of college, the most likely outcome is that you work really hard for the next few years, and then the company fails miserably, you lose your job, and you have to go work for another startup. If you really want to work for a startup, you should first work for a big company for two years, save some money, gain some experience, and then go after a carefully selected startup.
When you work at a startup, typically, you’re dealing with entrepreneurs. Most of them won’t be able to hire you after two years; At a big company, you’ll be meeting people from other big companies, many of whom will be able to hire you or hook you up with jobs.
Is working at a startup a good recommendation?
Choosing a startup is a career path, but also a way of life. Like working in investment banking or academia, they are three very different ways of life. When they recommend startups, they’re really recommending a lifestyle that interests you. If you really like this lifestyle, go crazy. If you’re not that into it, let’s be honest, you have plenty of options. You can get them in big companies, too. For example, if you want to dig into the latest technology and still be home at 5:30 to take care of your kids, you can do that in a lot of big companies.
(really. If it creates value for them, they will invest. They will invest in a lot of CRUD applications, but then start a business. They’re just better at marketing CRUD apps than most big companies. The First hour of “The Social Network” is about a cool-looking CRUP app, and the second hour is about an unlikely divorce between two heterosexual men, like a Lifetime series.)
Editor’s note: Lifetime is a Disney-owned network for women.
Review images
Communication is the most important career skill
Remember that engineers are not hired to write programs, but to create value. So you need to convince people that you can create value, which is the most important skill that will help you land a job. This ability is not really tied to how much value you can actually create.
Some of the best programmers I know have trouble expressing themselves. As a result, others either don’t want to work with them or underestimate their value. On the other hand, if you appear to be good at programming and speaking and writing, that’s how people will perceive you.
I once described my programming skills as “below average.” I’ve learned that I have a completely distorted impression of power distribution, that programming ability is not something people really want to optimize, and that I’m not interested in modesty. Now if you ask me what a great programmer I am, I’ll start telling you stories about how the systems I’ve programmed have helped millions of kids learn to read, or made millions of dollars for the company. Questions about where I am on the bell curve don’t bother anyone, so why worry about it?)
Communication is a skill, the more you practice, the better you get. A key sub-skill is being able to explain briefly, quickly and confidently how you’ve created value for people outside of your field and for people who previously had no reason to love you. If, when you try to do this, technical jargon keeps popping up (” By optimizing the index, the 99th percentile’s query time is reduced by 200 milliseconds…” ), remove them and try again. You should be able to explain what you’re doing to a smart eight-year-old, your company’s CFO, or some other professional programmer, with appropriate abstractions.
You are often referred to as “corporate sales” or something to avoid in engineering
Business sales go to a company and try to convince them to spend hundreds of thousands or millions on a system that will increase revenue or reduce costs. Every job interview is a business sale. Politics, interpersonal and communication skills are quite important. Technology is not that important in reality.
When you have a meeting with colleagues and try to convince them to take your advice, you’re doing business sales. If your job is to get things done, your key job is to convince people to get things done. Try to do it well. Be able to communicate effectively through notes, emails, conversations, meetings, and powerpoint (where appropriate). Understand how to bring a technological innovation to market. There are sometimes technological trade-offs to pursue business goals, and rightly so.
Don’t be humble at work
Many engineers are overconfident (I am :)). There are also many people who grow up in cultures where modesty is considered part of personal achievement. Corporate America generally does not value modesty in personal achievement. In interviews, interactions with others, and in life, the right attitude is “controlled, confident professionalism.”
If you’re part of a team whose efforts have resulted in success, “I attribute it all to my team” doesn’t hit the mark unless you want everyone to know you’re being pretentious. Try this one: “It’s an honor to lead and help my team succeed with my expertise.” Stand in front of a mirror and repeat it a thousand times until you say it with a straight face. You may feel that you are exaggerating your achievements. Ignore it. For someone with the title of sandwich master to claim leadership over product optimization is clearly an exaggeration. You are an engineer. Your amazing work makes people’s lives better. If you are in charge of databases, especially if it is a major project involving people, the database work you lead is absolutely critical to the success of the project. That’s the game. If you don’t feel good, you’re like the batter in baseball who feels bad about stealing bases: you’re not morally superior, you just play badly.
All business decisions are ultimately made by one or more people, not rules or algorithms
Human beings are human beings. Social grooming is an important ability. Because they are friends, people often take their friends’ advice even though other suggestions might be better. People are usually friendly to those who share their bread. (There is a business book called Don’t Eat Alone. It’s worth reading, but the title and content are opposite.) People usually like people who are like them and dislike people who are not like them. (This can be nice, neutral, or obnoxious. The first step to using it profitably is to accept it.
In fact, clothes are important too, and it’s easy to get fooled by dressing well, looking professional, and speaking with confidence. Your suit can cost as much as a computer monitor. Your chance to use it comes once in a blue moon, but when you do need it, you’ll be very, very happy.Believe me, if I wear casual clothes to town hall, I’m passed for a hapless, embarrassed twentysomething. If I wear a suit, I’m passed for the CEO of a multinational corporation. Despite the fact that I’m an embarrassed twenty-something CEO of a multinational company, when I need official treatment, I wear a suit and tie.
(People familiar with my company may object to my description of it as a multinational because it is not what most people in the conversation think of as a multinational. Sorry, this is just to simulate a simple conversation. And if you think people get mad when they find out they’re being manipulated, well, there are some people who really hate suits. That doesn’t mean suits are worthless. Be aware of the circumstances. By the way, if the other answer is immigration deportation, answer truthfully.)
In the end, career does not determine happiness in life
Talk to the old folks, or trust the sociologists, who say that family, religion, hobbies, etc., are more likely to bring happiness than money or career success. Adjust it properly. While your career is important right now and may seem like the most important thing in your life, you won’t always feel that way. We work to live, not live to work.