I really enjoy James Hague's blog, although he does have a
gloomy view of the programming field.
What I mainly take from his posts is:
- Favor minimalism[1]. Better hardware is not an excuse for complexity.
- Never stop learning, or else you won't last in this industry.
- Learn stuff that matters. Knowing the dark corners of your favorite API is nice. Learning the theory behind it is a much more portable skill.
- Work on problems you care about.
That last one seems a bit utopic, but it isn't. When you have a goal (like solving math challenges, developing a business tool, or inventing your own game), you are a bit more liberated from technological obsolescence. From experience, I find that web developers have a nasty tendency to drop whatever technology they're using to adopt the newest flavor
du jour every time something tops Hacker News (raise your hand if you're already thinking of dropping Coffeescript for Microsoft's TypeScript).
Other fields are far more conservative, and righteously so. It's time to start looking at your current tech for a long run. Of course there's no way you can keep up with the constant evolving Cocoa framework. If your Mac isn't going to last 10 years, then you're making the wrong investment.
[1]: I've been wanting to write something about "Minimalism" in software for a while. I just cannot find the proper structure yet. Something about the benefits of running a 100MB operating system, or why I gravitate more and more towards "barebone" programming languages like Scheme and Lua, as opposed to "battery included" behemoths like Python, Java or the whole .Net suite.