Joel Spolsky is a software engineer in the United States whose blog, Joel on software, is famous for the number of readers who can rank in the top 100 in the world.
At 28th last month, he returned to his alma mater, Yale University, to talk with students in computer science. He gave a speech, reviewed his life experience, and summed up some personal experiences.
I read his speech, very touched, feel his life experience is very enlightening. This speech is very long, divided into three parts (one or two, three). Here are some of the highlights, with a total of four paragraphs.
(Update: The full text of this speech is included in my translation of the "Software Caprice" book, the People's post and Telecommunications publishing house, published in 2009. )
First, the most useful courses in the university
Joel said that the most useful lesson he had had in college was a class that he had only once, and that he had never been to.
Because the parents are all university professors, relatives and friends are in academia, most of them have a doctorate, so Joel decided from a young age that he would also go to the doctor, in the future to engage in academic. However, one of the courses changed his mind so that he did not go to graduate school in the end.
This course is called "Dynamic logic". In the first lecture, the Professor proved a proposition. Suppose that there is a program "f: = Not F," and "F" is a logical value that represents true or false, so the conclusion is that the value of F remains the same after the program has run an even number of times. The entire proving process is lengthy and takes several hours to explain, with a total of dozens of steps. After-school exercise is to prove that if the F value remains the same, then the program must run an even number of times.
After class, Joel spends a lot of time doing problems and borrowing reference books from the library. But he gradually felt that it did not make sense to use a lot of trivial, error-prone steps to prove a proposition that can be identified by intuition, which is not a productive way of working. In Joel's view, computers are more likely to be used to solve errors than to get people into a logical trap to produce errors. (I decided that this Dynamic Logic stuff is really not a fruitful is the proving things about actual, interesting compute R programs, because you ' re more likely to make a mistake in the proof than you is to make a mistake in your own intuition In this case, he realized that he was not suitable for purely speculative academic research. As a result, he returned the course and did not choose to go to graduate school in the future.
Joel believes that this is the only one in the class, just become the most useful lesson he had in college, because it helped him to choose the right path of life.
So, Joel's first conclusion is that the important thing in life is to focus on the real problems (real problem), not to get bogged down in meaningless trivial problems (trivial problem). Just like Socrates said, "Know yourself."
In addition, Joel said, there is also a class called CS 323, also useful. This course has a lot of after-school exercises, are about programming, on average, spend 40 hours per week to do the problem.
Joel found that he was able to do most of the topics, and more importantly, he found himself enjoying doing them. In this way, he knew that he was suitable for programming. On the other hand, many other students feel a great headache for this course and feel that programming is both dull and painful, and it is a penalty to do it 40 hours a week. These people understand that although they are also students of computer science, they are not suitable for programming. This is a good thing, because then they avoid choosing the wrong career. Otherwise, let a person who does not like programming, the whole life to deal with the program, what a tragic thing Ah!
Second, in the days of Viacom
After graduating, Joel worked for a few days at Microsoft, then went back to New York and went to Viacom to write software for the giant entertainment company and become a programmer in the IT department (in-house programmer).
Later, Joel recalled that it was the most painful day of his life and advised computer students not to do "in-house programmer" as much as possible.
There are three reasons.
First of all, you will never be able to write software correctly, you have to use the most convenient way to write software. Because software spending is so expensive, companies are asking for as much savings as possible, and you can't try new technologies and use only the most mature and conservative technologies available.
Second, you have no way to achieve perfection in a project. Once the program is up and running, your work is over and you can go on to the next project in the company. Your role is to solve the problem, not to write the software as well as possible. If you are in a professional technical company, such as Google or Facebook, the situation is completely different, and the better your software is written, the more successful the company will be, so the company will support you to keep doing it on a project.
Finally, programmers in the IT department of traditional companies belong to the company's internal maintenance staff, not the people who are directly involved in the core business. Therefore, you will always be able to enter the management layer. But in a technical company, programmers become CEOs.
For these three reasons, Joel thinks in-house programmer is not a good career, unfortunately, 80% of programmers belong to this category, year after year, a lot of people's lives are so drained. (IT ' s frightening because this was what probably 80% of programming jobs was like, and if you ' re not very, very careful whe n you graduate, might find yourself working on in-house software, by accident, and let me tell you, it can drain the L Ife out of your.)
Joel's second conclusion is: When choosing a career, do not just consider whether the position is professional counterparts, should try to choose the business direction with your professional company.
Although the Viacom parent company (Viacom) verbally expressed great importance to the Internet, but the workshop assigned to programmers, always very small room, the light is dim, but also use shelves to split the small room for three people to use. Managers ' offices are completely different, with large windows that overlook the Hudson River.
At a Christmas party inside the company, Joel met with an executive director responsible for the Internet strategy. Joel asked him how the company intends to use the Internet, and the latter is simply saying that the internet is important and that this is the way forward. Joel was disappointed that he believed the Executive Director had no knowledge of the Internet, but was merely echoing it. At the end of the year, the Director may not matter at all, he has a yearly salary of $2 million, and it is best to keep the status quo. For him, Joel was a typist, "the guy who wrote the page," What Joel did and what he did at work, he didn't care. (It convinced me that he had no flipping idea whatsoever what It is that is happening and what the internet meant or WHA T I did as a programmer, and he is a little bit scared of it all, but the Who cares, because he ' s making 2 million dollars a Year and I ' m just a typist or "HTML operator" or whatever it was that I didn't, how hard can it was, his teenage daughter can D O that.)
So, Joel decided to resign.
Third, the role of management personnel
After leaving Viacom, Joel entered an internet company called Juno Online Services, which offers free e-mail services online. That was the middle of the 90, when Hotmail and Gmail were not yet established.
As a programmer, Joel worked very happily here, but the company itself was not successful. Although it is an internet company, Juno Online Services uses the traditional "top-down" management approach, where leaders come up with an idea and then command the programmer to implement it, and the result is that people who know nothing about technical details decide everything.
This is quite different from the way Silicon Valley is, where managers are only responsible for creating a good working environment and then letting real smart people make things out. (What I am used to from the West Coast were an attitude that management are just an annoying, mundane chore someone have to do so, the smart people can get their working done. The inner workings of Silicon Valley companies are more like academic seminars in universities, and the role of the President is only to preside over meetings.
Joel's third conclusion is that the role of corporate management is to move furniture, clear space, and allow talented researchers to make first-class products. (Managers exist to get furniture out of the the-the-so-real talent can do brilliant work.)
Juno Online Services ' unsuccessful operation and disrespect for the talent of the staff made Joel determined in 2000 to stop working for others and start a business.
Iv. the importance of the ability to express
At the start of his career, Joel didn't know what to do. He saw a lot of stupid people, with a stupid business plan, to start an internet company. He thought, such a company can open, then I can start the company, as long as I am less stupid than they are 10%, I want to manage according to my ideas, to each programmer to give the most respect, so that there is a chance to make high-quality products. We do not care about the venture capitalists say, there is no high leadership, we only care about the feelings of customers, with software to solve customer problems, so as to get paid, survive. (In those days, I were seeing lots of really dumb people with really dumb business plans making internet companies, and I t Hought, hey, if I can, say, 10% less dumb than them, that should being easy, maybe I can make a company too, and in my COM pany, we ' d do things right-a change.) we ' d treat programmers with respect, we ' d make high quality products, we wouldn ' T take any shit from VCs or 24-year-olds playing president, we ' d care to our customers and solve their problems when th EY called, instead of blaming everything on Microsoft, and we ' d let us customers decide whether or not-to-pay.)
Encouraged by this idea, Joel founded Fog Creek software company.
From the start, Joel began to write his ideas and the things he encountered, published on the internet. There was no such thing as blogging, but he was actually writing it. Joel slowly discovered that his articles were really viewed and that more and more readers, many of whom eventually accepted his ideas. In fact, many of Joel's writing is not original, including some jokes from time to time, but readers don't care, "Joel Talk Software" has become a popular site, with an average of hundreds of thousands of or even millions of readers per article.
It was a great help to Joel's business, Fog Creek was originally an unnamed small software company, but because many people read Joel's articles, they also know and trust Joel's company. This makes Fog creek profitable from the first year of business and develops every year.
Joel's success in entrepreneurship was partly attributed to his training in writing at the university, when a professor wrote papers every week and hated mediocre articles for credit. This makes Joel learn to make complex topics clear and understandable and fascinating.
Therefore, Joel's fourth conclusion is that the difference between an ordinary staff member and a leader is that there is no good expression. (Being able to write clearly on technical topics are the difference between Being a grunt individual contributor programmer And being a leader.)
Joel's speech at Yale University