Once mixed baidu, stay safe, now the United States

I graduated from a small company, went to a well-known factory half a year later, and then continued to change jobs between big factories. Now he has married his wife and children, bought a house and settled down. These years have experienced the interview, buy a house, learn to drive, get married, have a child, occupation

The precipitation. It is also a true understanding of the meaning of programming! The meaning of programming is a topic for another day.

Every year, millions of young programmers join the software industry. They learned programming in school, but they don’t know anything about the reality of the industry, and I’m going to talk about some of the reality of the industry today. In the past few years, I have accumulated a lot of technology in the technology blog. Other aspects of success, at least as peers and their own starting point for undergraduates, as the experience of a few things to say:

The first four points mainly apply to those with less than three years of experience. The following points are addressed to peers between 3 and 8 years old, and the last paragraph is addressed to all peers.

1. Don’t be superstitious about “Daniel”

See what you have in the problem tread pit, the technical person’s only bad is to the non-technical blind worship, especially to the non-technical net red. Let’s just say: online “big bull” is mostly unreliable.

The first is that real heroes don’t have time to be life coaches on the Internet. They explain the truth every day and the people who appear in your Timeline all day are either amateurs or have other motives (to make money, intelligence and tax).

Second, his experience may not be useful to you, even if you are a big bull. Daniel said that I learned Python only by looking over the basic syntax and started working on the project that day. “I never read the basics,” Daniel said, “because Daniel is so busy with corporate architecture that he never gets a chance to read the basics.”

2. Cut the crap and write more code

There are many kinds of nonsense. The most common among programmers is to sort out which language/framework/platform/technology is better. The most common question among prospective programmers is, should I learn Java, C and PHP? Is it useful or not? What skills should I learn? Technical discussions are not completely pointless, but until you have a computer foundation, data structures, a good command of at least one language, and a project that you can look at, they are a waste of time, rather than following the trend one day and hearing that the next. Don’t wait for graduation to say XX technical school did not teach, so I will not say this.

Have this time to write more code, brush algorithm problems, find some projects to do, can not find from their own daily side to find some needs to use the code to achieve. Don’t say you don’t have anything to write about. If so, you need to rethink whether programming is for you or not.

All I can tell you is that you can’t do it for the next few years. Don’t say I don’t need to be in the company if you refuse to learn there’s no need to be a programmer.

Be a programmer, not a coder.

The job of a coder is no different from that of a brick remover, just putting a few blocks together, tinkering when something goes wrong, using only one or two techniques you’ve been taught. It’s easy to be a coder, to change the Bug groups every day, and to talk for two hours in 5 minutes. That means code farmers. But being a programmer is a long-term career. What you learn in school is the idea of programming, the logic of problem solving, and the ability to keep learning. Pay attention to basic courses, in-depth study of one or two languages and technology, a thorough understanding of the future to learn other new technology naturally by analogy. Just look around, don’t jump on the bandwagon. You’re in college, not a crash course in skills.

In summary, code farmers like to talk about subversion and replace and they like to talk about preachers. It’s all about new technology.

Programmers focus on basic ability, talk about industry impact, say contribution.

4. Don’t overestimate yourself in the short run and don’t underestimate yourself in the long run

The mistake most people make is to overestimate themselves in the short run and underestimate themselves in the long run. Unless you’re smart, don’t spend your freshman year trying to come up with some awesome program that will blow your mind. Learning to program will go through several bottlenecks, and there will be times in between when you may feel hopeless and even begin to doubt your life.

But trust that as long as you keep writing, the bottleneck will break, and it’s okay to become an above-average professional programmer.

There are a lot of people who get 15 to 20K three years after graduation. It doesn’t mean you are awesome, because the industry curve is like this. But you want to get 60K for 6 years is really few people, after all, 50W annual salary is the ceiling of most people. So don’t lose heart.

5. Finally, believe in yourself and respect your profession

  • Don’t call yourself a “xx dog.” Respect yourself
  • Don’t fall in love just for the sake of falling in love. Don’t believe “Programmers can’t get a girlfriend.”
  • In addition to computer knowledge, also want to learn English + math
  • Solid foundation, learn to calculate hair, do not pursue hot
  • Don’t be obsessed with language, don’t get caught up in the language war
  • Write quality code and don’t fiddle with practice

6.90% of the programming work comes from internal software

Computer science students may have the illusion that most programmers write software that is publicly available or general-purpose.

That’s not true. Most programmers actually write in-house software that is not publicly available, which is called outsourcing. Software to track expenses, optimize shipping costs, help with bookkeeping, design new parts, calculate policy prices, identify malicious orders, and so on.

Various commercial companies develop in-house software to solve their own problems. Most of the demand for programmers in the market comes from this, and very few programmers write software directly for external customers.

Internal software development is often tedious and tiresome. Because of their low technical complexity, very conservative technical decisions, small budgets, and lack of long-term thinking. But that’s what most of the world’s programming does. If you want to be a programmer, you have to be mentally prepared to accept such a job.

You were hired to make profits, not to program

The only thing business companies care about most, or care about most, is increasing revenues and reducing costs. So what they really need is not programmers, but people who can help them increase revenue and reduce costs.

Developing beautiful software, solving technical problems, and writing bug-free code are not the goals of commercial companies. They hire you to help them with a project that will increase revenue and reduce costs, not so you can pursue your own software achievements.

Your only value to the company is how much you can add revenue and reduce costs.

This is why Ali P8 can not get business is the situation of the sack, in no business there is no output, no output there is no profit, then the quality of technology only become you are not easy to be laid off.

Good programmers focus on adding value to the company

In many companies, development managers don’t understand technology. In their mind, programmers are a bunch of high-cost labor who can only do things they don’t understand on a complex machine.

If you call yourself a coder, you only write code. When a company needs to cut costs, the first thing some managers will think of is to fire you because of your high salary.

There is a company called Salesforce whose slogan is “no software.” This means that if managers buy their service, they don’t need other software to manage their sales — that is, they don’t need to hire their own programmers.

Instead, you should describe yourself as someone who is involved in increasing revenue and reducing costs, such as “developer of PRODUCT xx” or “improver.” One Google Adsense programmer’s bio reads, “ninety-seven percent of Google’s revenue is related to my code.

9. Don’t put limits on yourself

Young students often ask, which language or platform should I choose? Is Java easier to find a job than.NET?

There is no need to overemphasize one language or platform. If you define yourself as a Java or.NET programmer, you’ve already lost, because first of all you shouldn’t call yourself a coder (see reason above), and second of all it automatically excludes you from most programming jobs in the world.

In the real world, it only takes a month or two to learn a new language, and then another six months or a year to become an expert. Back then, no one cared what language you used to speak.

Talented programmers are rare, but there are many, many jobs for talented programmers, and in most situations the demand far outstrips the supply.

This means that even if you’re not a talented programmer, if you’re a good engineer, recruiters will hire you right away because they know the chances of getting a talented programmer are slim. (Again, a “good engineer” is someone who has a track record of increasing revenue and reducing costs.)

In some companies, the hr department will filter resumes based on certain keywords, such as Java or.NET. 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.

Understand that languages are just tools, and companies will let you switch languages at any time for profit.

How to improve your negotiation skills in job hunting?

(1) Remember that you are not applying for a job. You are not demonstrating your programming skills. You are selling a solution to a business problem (increasing revenue or reducing costs).

(2) During the interview, be confident and have an equal conversation. 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) Ask for a counteroffer. Not just money, but other things you care about. If you can’t ask for more money, try asking for more vacation time.

11 are startups suitable for new graduates?

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 a few years, save some money, gain some experience, and then carefully select a startup to make your dream come true.

When you work at a startup, typically, you’re dealing with entrepreneurs. Most of them won’t be able to take you in two years; With a big company, you’ll meet people from other big companies, many of whom will be able to guide you or set you up for a job.

Communication skills are the most important professional skills

As mentioned earlier, engineers are not hired because they can program, but because they can create business value. So, you have to convince people that you can create value, which is the most important thing that will help you get a job. This ability is not really tied to how much value you can actually create. In many cases, what you are presenting to others is an expectation of your abilities, rather than your current abilities.

So don’t always talk about technology, because technology is only a means to work, value is your weapon.

Finally, while focusing on technology, don’t forget to focus on improving your own ability. The industry should be prepared to face constant unemployment, because most of the crisis comes from jobs outside the system becoming jobs inside the system.

The final summary

In order to achieve a certain goal, ordinary people need to give up some things.

2. If I have the opportunity to go to a big company or platform in my early career, I should still go to a big company to see the world. A lot of things are not accomplished overnight, if the ability is not enough to take a curve to save the country, as long as the ultimate goal can be achieved.

Technology is fundamental, without technology you have no money. Technology is not the whole story, because you can’t do technology all your life.

4 vision and opportunity are very important, opportunity can meet can not seek, but opportunity comes, vision is not enough to make relatively accurate prediction, make the wrong choice, that is also very hurt.

Education and starting point is not a problem, in fact, ability and vision is the core competitiveness of programmers, big factory is not necessarily an iron rice bowl.

Six people need to learn, and can constantly dare to challenge themselves, to be more likely to succeed.