Three Skills Every New Programmer Should Learn
In a recent interview, Joel Spolsky (the co-founder of StackOverflow) declared that the three things he would advise new programmers to learn are economics, writing and C programming. At first glance, that might seem like a curious choice, yet digging deeper soon reveals the wisdom of those words.
Spolsky advises learning economics, because “programmers often don’t know that and consequently don’t understand how they add value to a business”. Think about that for a minute. How often do we hear designers and developers complaining about nightmare clients and their unreasonable demands? I’ll give you a clue, it’s pretty often. But while these clients definitely exist, it’s easy to overlook the fact that our primary role as web devs is to bring value to a client’s business. Understanding that makes for a considerably better working relationship.
Additionally, an understanding of economics would help many freelancers to better market themselves (or at least have a better appreciation of the time they spend on something in correlation to the value it brings a client). And it would help them (and web devs in general) convey the value that a successful website can bring to a business when a client turns up with the aforementioned unreasonable demands.
Spolksy also advises learning writing (as well as communication in general), because “essentially, the most successful people are the ones who can explain their ideas the best”. He’s right! Communication is a vital, yet often underrated skill. It doesn’t matter if you’re an ace programmer, if you cannot communicate your ideas with the rest of your team, then you can fuggedaboutit.
And that’s not just true of programming, but of life in general. As an editor I have to deal with a reasonably large number of article pitches. The ones that are clear, articulate and well thought out are the ones that move through fastest.
But what do you think? What are the three things you would advise someone who new to web development and/or programming to learn?