If you love to program computers, count your blessings: you are in a very fortunate minority of people who can make a great living doing work they love.
1. Learn to write. The programmers with the most power and influence are the ones who can write and speak in English clearly, convincingly, and comfortably. 2. Learn the underlying concepts of modern languages. 3. Learn micro-economics. A programmer who understands the fundamentals of business is going to be a more valuable programmer to a business. 4. Do the boring classes too. 5. Computer science != programming. Take the programming-intensive classes. 6. Don't worry about India: really good programmers do have jobs. 7. Don't waste your talent on regular summer jobs, get a good summer internship. -- Advice for Computer Science College Students.
Great products are great because they’re deeply debugged and as a result reliable, keeping the customers in. Restaurants, software, it’s all the same. -- Foreword to Painless Project Management.
The articles in this block can be summerized as follows: "FogBugz has a lot of great features. Buy it". That said, I can extract off-topic bits from the articles which look nice to me (which I'm doing anyway).
Listen to your customers, not your competitors. -- The Road to FogBugz 4.0: Part I
Terse and to-the-point mail may seem rude. Being more verbose leaves a polite impression. -- The Road to FogBugz 4.0: Part II
Hungarian notation may not be that bad after all. -- The Road to FogBugz 4.0: Part III
Success of a software product depends only 2% on good coding. The other 98% is customer service, debugging, marketing, demoing and testing. -- The Road to FogBugz 4.0: Part IV
Good coding conventions can make bad code obvious. Hungarian notation was very useful until the dark side took over. Exceptions are the new Goto. They make code less maintainable by breaking the possibility to have the information all in the same place. -- Making Wrong Code Look Wrong.
The software development world desperately needs better writing, i.e. more entertaining and less boring. -- Introduction to Best Software Writing I.
If you try to skimp on programmers, you'll make crappy software, and the software won't sell. Mediocre programmers never produce something as good as what the great programmers can produce. -- Hitting the High Notes.
With a day of usability testing and handful of subjects, you can find where the program's behavior diverges from the user's expected behavior. -- Usability Testing with Morae
If you want to get things done and make fast progress, you have to understand what is the most important thing to get done right now. -- Set Your Priorities.
Microsoft consistently underestimates the value of pervasive, free form, instantaneous search. -- Blog post 2005/10/14.
The term Web 2.0 is not a real concept. It has no meaning. It's a big, vague, nebulous cloud of pure architectural nothingness. -- Blog post 2005/10/21.
Many people who are excellent developers are lousy managers. And: someone who created and ran a profitable lemonade stand is most likely a better manager than someone who has taken two years of finance courses at Harvard. -- Fog Creek Software Management Training Program