If you want traffic, specialize your content

Jakob Nielsen’s latest AlertBox makes a point about Web publishing that may not be obvious: your influence has very little to do with your ranking in the overall media universe, your influence is based on how coherent your readership is within the niche you target. Game Developer, a magazine I founded almost 10 years ago, has a small circulation by trade industry standards (and a trivial circulation compared to mass-market magazines), but that circulation includes programmers at every game software company in the world.

The same rules apply to Web sites and blogs. It should not be your goal to be parodied, it should be your goal to reach people whose readership means something to you. In my case, that means readers who know that the gaps between the possibilities, perceptions, and common practices of software development will determine the success or failure of a programming technology. My goal isn’t to improve the state-of-the-art, it’s to improve the state-of-the-practice. I can’t post like Chris Brumme on CLR internals , but I know from the people that I talk to that many programmers have not fully internalized the concepts of object-oriented programming, much less the Common Type System. My goal is to be a link (hopefully, with some influence in both directions) between people who are making .NET the platform for enhancing productivity for software developers and the people seeking those gains, while working full-time just trying to do their job.

So, if you think some of my posts are too obvious and some my posts are too theoretical, you’re my audience!

Programmer salary surveys conflict, Gov. says long-term bright, applicants disagree

InfoWorld is reporting a second year of wages essentially flat, with “Developer”s making a median of $84,146. Software Development reports a huge post-2000 slowdown, with current compensation of $78,000 compared to 2000’s $95K. (SD’s survey goes to a much larger sample size than InfoWorld’s, but I’m not prepared to criticize anyone’s methodology.)

Meanwhile, the United States Bureau of Labor Statistics says that being a computer programmer is going to be the fastest growing profession of the decade. According to an article at http://www.bls.gov/oco/ocos267.htm, there were about 697,000 “computer software engineer” jobs in 2000 (note that this probably represented the peak year of dot-com employment), of which 380,000 were application programmers and 317,000 systems programmers. A total of 49,000 were self-employed. Median salary was $67,670.

On the Dot-NET jobs list (http://discuss.develop.com) there have been some ridiculous postings lately, notably one for a Manhattan-based Tech Lead with salary “to $50K.” That triggered a discussion as to whether salaries are just soft or whether there’s a genuine salary collapse. Everyone agreed that off-shore development has rapidly become viable in the minds of technical managers and is definitely beginning to have an effect on the domestic market.

Do IDEs spoil beginners?

IDEs are very powerful but….. (From Rahul Chaudhary’s Weblog) via [Artima Weblogs]

One of the more controversial things in The Book Formerly Known As Thinking In C# is my “strong recommendation” not to use an IDE (specifically, Visual Studio) until at least one has reached the chapters on GUI programming, which are 3/4 of the way through the book. Although there’s a lot to be said for bare-bones code, the downside is that the sample programs are generally simple console programs that seem far removed from “real programs.”

I have been considering ways to bridge that gap: I have thought of building training material based on Terrarium but keep returning to an ever more radical thought: Wouldn’t it be interesting to teach programming manipulating the world’s most commonly used programs?

Java Is a Language for the Masses

Dumbing down the language by not providing more powerfulexpressions is a way of promoting to a wider audience. However, is it the only way of supporting communites? (From Carlos Perez’s Weblog) via [Artima Weblogs]

Carlos is talking about Java, and a comment by Gilad Bracha that “[In designing a language, one] one can contrast the Scheme-like philosophy of using a small number of very general constructs, with the more mainstream approach of having a great many highly specialized constructs, as in C or Modula style languages.” And the contrast is made very well in Paul Graham’s Hundred-Year Language essay. There’s a real language-design buzz going on in the industry right now; my brain melted last week during a 3-hour conversation with Sergei Dmitriev of JetBrains (makers of IDEA). If I were smarter, I would have learned something about “universal grammars for describing domain languages.”