`
flysheet
  • 浏览: 44747 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Joel on Software Talk at Yale: Part 3 of 3 by Joel Spolsky

阅读更多
Wednesday, December 05, 2007

This is part three of the text of a talk delivered to the Yale Computer Science department on November 28. Part one and part two already appeared.

I despaired of finding a company to work for where programmers were treated like talent and not like typists, and decided I would have to start my own. In those days, I was seeing lots of really dumb people with really dumb business plans making internet companies, and I thought, hey, if I can be, say, 10% less dumb than them, that should be easy, maybe I can make a company too, and in my company, we’d do things right for 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 about our customers and solve their problems when they called, instead of blaming everything on Microsoft, and we’d let our customers decide whether or not to pay us. At Fog Creek we’ll give anyone their money back with no questions asked under any circumstances whatsoever. Keeps us honest.

So, it was the summer of 2000, and I had taken some time off from work while I hatched the plans for Fog Creek Software and went to the beach a lot. During that period I started writing up some of the things I had learned over the course of my career on a website called Joel on Software. In those early days before blogs were invented, a programmer named Dave Winer had set up a system called EditThisPage.com where anyone could post things to the web in a sort-of blog like format. Joel on Software grew quickly and gave me a pulpit where I could write about software development and actually get some people to pay attention to what I was saying. The site consists of fairly unoriginal thoughts, combined with jokes. It was successful because I used a slightly larger font than the average website, making it easy to read. It’s always hard to figure out how many people read the site, especially when you don’t bother counting them, but typical articles on that site get read by somewhere between 100,000 and a million people, depending on how popular the topic is.

What I do on Joel on Software—writing articles about somewhat technical topics—is something I learned here in the CS department, too. Here’s the story behind that. In 1989 Yale was pretty good at AI, and one of the big name professors, Roger Schank , came and gave a little talk at Hillel about some of his AI theories about scripts and schemas and slots and all that kind of stuff. Now essentially, I suspect from reading his work that it was the same speech he’d been giving for twenty years, and he had spent twenty years of his career writing little programs using these theories, presumably to test them, and they didn’t work, but somehow the theories never got discarded. He did seem like a brilliant man, and I wanted to take a course with him, but he was well known for hating undergraduates, so the only option was to take this course called Algorithmic Thinking—CS115—basically, a watered-down gut group IV class designed for poets. It was technically in the CS department, but the faculty was so completely unimpressed that you were not allowed to count it towards a CS major. Although it was the largest class by enrollment in the CS department, I cringed every time I heard my history-major friends referring to the class as “computer science.” A typical assignment was to write an essay on whether machines can think or not. You can see why we weren’t allowed to count it towards a CS degree. In fact, I would not be entirely surprised if you revoke my degree today, retroactively, upon learning that I took this class.

The best thing about Algorithmic Thinking was that you had to write a lot. There were 13 papers—one every week. You didn’t get grades. Well, you did. Well, ok, there’s a story there. One of the reasons Schank hated undergrads so much was that they were obsessed with grades. He wanted to talk about whether computers could think and all undergrads wanted to talk about was why their paper got a B instead of an A. At the beginning of the term, he made a big speech about how grades are evil, and decided that the only grade you could get on a paper was a little check mark to signify that some grad student read it. Over time, he wanted to recognize the really good papers, so he added check-PLUS, and then there were some really lame papers, so he started giving out check-minuses, and I think I got a check-plus-plus once. But grades: never.

And despite the fact that CS115 didn’t count towards the major, all this experience writing about slightly technical topics turned out to be the most useful thing I got out of the CS department. Being able to write clearly on technical topics is the difference between being a grunt individual contributor programmer and being a leader. My first job at Microsoft was as a program manager on the Excel team, writing the technical specification for this huge programming system called Visual Basic for Applications. This document was something like 500 pages long, and every morning literally hundreds of people came into work and read my spec to figure out what to do next. That included programmers, testers, marketing people, documentation writers, and localizers around the world. I noticed that the really good program managers at Microsoft were the ones who could write really well. Microsoft flipped its corporate strategy 180 degrees based on a single compelling email that Steve Sinofsky wrote called Cornell is Wired . The people who get to decide the terms of the debate are the ones who can write. The C programming language took over because The C Programming Language was such a great book.

So anyway, those were the highlights of CS. CS 115, in which I learned to write, one lecture in Dynamic Logic, in which I learned not to go to graduate school, and CS 322, in which I learned the rites and rituals of the Unix church and had a good time writing a lot of code. The main thing you don’t learn with a CS degree is how to develop software, although you will probably build up certain muscles in your brain that may help you later if you decide that developing software is what you want to do. The other thing you can do, if you want to learn how to develop software, is send your resume to jobs@fogcreek.com, and apply for a summer internship, and we’ll teach you a thing or two about the subject.

Thank you very much for your time.

 

From: http://www.joelonsoftware.com/items/2007/12/05.html

分享到:
评论

相关推荐

    Joel on Software

    《Joel on Software》是由Joel Spolsky撰写的一本著名IT著作,主要涵盖了软件开发、团队管理、软件工程以及互联网行业的多个重要方面。这本书以其深入浅出的讲解和实战经验分享,深受程序员、项目经理和技术领导者们...

    Joel on Software[English Version] .rar

    在《Joel on Software》中,Spolsky分享了他的许多核心观点,这些观点对于理解软件开发的本质及其背后的商业逻辑至关重要。以下是一些关键知识点的详细说明: 1. **软件质量**:Joel强调软件质量的重要性,主张开发...

    More Joel on software

    美国著名程序员Joel Spolsky关于软件管理和技术公司管理精辟论述,读来受益匪浅,特别是其中给大学计算机系学生的建议。

    Joel On Software

    Joel On Software 大家都知道这个东西哈。挺不错的

    More Joel on Software

    Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work ...

    Apress.More.Joel.on.Software.Jun.2008.pdf

    《More Joel on Software》是Joel Spolsky的著作,由Apress出版社于2008年出版。这本书深入探讨了软件开发、设计与管理领域的多样性和相关问题,旨在为软件开发者、设计师、经理以及与他们合作的人士提供有价值的...

    软件随想录 - More Joel on Software

    《软件随想录 - More Joel on Software》是乔尔·斯波斯基(Joel Spolsky)的一本经典著作,他是一位知名的软件开发者、企业家和博客作者。这本书汇集了他在软件开发、团队管理、产品设计等多个领域的深入思考和经验...

    Joel_Spolsky对计算机学生的七大建议

    ### Joel_Spolsky对计算机学生的七大建议 #### 第一大建议:毕业前练好写作技巧 Joel Spolsky强调,对于计算机专业的学生而言,掌握优秀的写作技能是至关重要的。他通过举例说明了这一观点: - **Linus Torvalds*...

    Joel说软件

    根据提供的文件内容,可以看出这是一篇关于Joel Spolsky和他的网站Joel on Software的文章,但文本中包含了大量的乱码和非中文字符,这可能是由于编码错误或原文本的特殊处理造成的。尽管如此,我们仍然可以从有限的...

    软件随想录(英文版) - More Joel on Software

    根据提供的文件信息,我们可以推断出这是一本关于软件开发、设计与管理的书籍,作者是Joel Spolsky。本书包含了对各种与软件开发者、设计师及管理者相关的议题的深入探讨,同时也为那些与这些专业人士合作的人提供了...

    软件随想录:程序员部落酋长Joel谈软件

    Joel Spolsky是一位在软件开发领域有着丰富经验的老兵,他的思想不仅对软件开发者有启发性,对于设计人员、管理人员乃至与之合作的所有人也同样具有重要意义。 #### 二、作者Joel Spolsky介绍 Joel Spolsky是业界...

    The Best Software Writing I

    根据提供的文件信息,我们可以推断出这是一本关于软件写作的书籍,名为《The Best Software Writing I》,由Joel Spolsky编辑选择并作序。虽然我们没有完整的书籍内容,但可以通过标题、描述以及部分版权页的信息来...

    Youngberg_Joel_CIS14A_48076:RCC JavaScript 存储库

    《深入理解Youngberg_Joel_CIS14A_48076:RCC JavaScript 存储库》 在当今互联网技术飞速发展的时代,JavaScript作为前端开发的核心语言,其重要性不言而喻。"Youngberg_Joel_CIS14A_48076: RCC JavaScript 存储库...

    spolsky-sheets:修订的Excel电子表格,用于Joel Spolsky所述的基于证据的计划。 修正案Andreas Traut:添加了一些注释,并对流程进行了少许修改,以使流程更易于理解

    《基于证据的计划:Joel Spolsky的修订版Excel电子表格解析》 在项目管理领域,有效的规划和控制是成功的关键。Joel Spolsky,一位知名的软件工程师和企业家,提出了基于证据的计划方法,强调了数据驱动决策的重要...

    joel-test:评价软件团队的素质!

    PS:以上是按照Joel Spolsky编写更好代码的12个步骤。 满分为12分,可以接受的分数为11分,但满分为10分或更低,这说明您遇到了严重的问题。安装$ npm install --save joel-test用法var joelTest = require ( 'joel...

    Joel-Yuhas-Code:代码数据库

    Joel-Yuhas-Code:代码数据库

Global site tag (gtag.js) - Google Analytics