Ian Landsman's 10 tips for moving from programmer to entrepreneur is excellent advice. Even if you have no intention of becoming an entrepreneur.
This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/10/does-writing-code-matter.html
Nothing is more fun than coding, than creating something which didn’t exist before and making something happen which couldn’t happen before. That essential joy of creation is what makes coding fun.
If you want to make lots of money, be famous, get girls, whatever, then don’t become a programmer. But if you enjoy coding, then programming is where it is at. Still.
In his book “The Millionaire Mind,” Thomas J. Stanley talks about the personality traits that cause people to not only succeed, but build vast amounts of wealth. Your post hits the nail on the head. Those who are primarily technical (nose in the compiler) often do ok in terms of income, but never move ahead. It is those who develop the people and leadership skills who build businesses and move ahead in terms of wealth.
Become a Swiss Army Knife
I don’t agree with the premise of improvement of weaknesses. I like the premise of enhancing talent and being aware of weaknesses. Like Sun Tzu said:
If you know yourself and your enemy, you need not fear the result of a hundred battles,
If you know yourself and not the enemy you will loose 50% of the time.
If you know neither you will always loose.
“know yourself” doesn’t mean go learn everything and become a Swiss Army Knife.
“We will soon reach the point where like in Star Trek we use natural language processing to interact with the computer. At that point you wil only need to know how to properly phrase a logic statement and concisely define instructions in order to “program” a computer.”
Pray tell, how does that differ from today?
Dan Lawson, surprisingly enough, I have a 1948 Scientific American making nearly the exact same claim (“We will soon reach the point where like in Star Trek we use natural language processing to interact with the computer.”), and while the latest version of dragon naturally speaking is quite useful for writing documents and running some tasks, natural language is very bad at the sort of black and white determinism computers need. Unless you want to introduce a bunch of “RAND .67” to simulate human judgement.
Any number of things can make someone better at their job and a more fulfilled being, but there are some people for whom nothing but coding is fulfilling. That’s why there are technical writers, QA engineers, and user interaction specialists. Everyone should know a little about a lot, but it’s far better to know when and who to ask for help or delegate tasks to.
Raise your hand if you’ve ever poured your heart and soul into an application that never shipped
Kinda like saying sh*t happens.
applications that never ship happens.
I think that unfortunately in our world it is the person that talks the most that always gets the attention, but to go as far as to say that’s more important is wrong.
What we should do is start to challenge all the “media” hype (because that’s what it really is) and finally start to create a world where people that actually do the work get the most attention.
It really isn’t impossible although it sounds idealistic.
Aaaah, people with dreams: “start to create a world where people that actually do the work get the most attention”. Not dreams I would subscribe to though.
Nobody remembers the people who actually BUILT the pyramids. Some people might remember the king they were built for (I think they named a condom after him so even in death he’s 99.9% effective - why did that condom fail, laments Tim’s mom). In WWII, few people remember the “The Desert Private” but many remember Erwin Rommel, “The Desert Fox”. Few people remember Joey Kilroy, PFC in 3rd Army but many remember George S. “Slap the whiney little children of unwed parents until your gloves wear thin” Patton.
History NEVER remembers those who do the work nor should it. There are always tons of people who can do the work. What history remembers, and what Mr. Atwood is referring to, are those few who have the skill and talent to rise above “the work” and marshall together the forces, ideas, strategies, what-have-yous that move and shake the world.
If you are happy doing code, so be it. Don’t expect those around you to pay homage to you or quote your “(for i = 0; i MAX_CAREER_LEVEL; i++)” as poetry gifted from the gods. Those who get the credit are those who understand the importance of why there is a MAX_CAREER_LEVEL and how to rise above it (OK, I over-simplify but I’m on my second glass of whisky, fourth night of insufficient sleep and the yammering of the cockroaches won’t allow me any rest). Those who can manage the complexity without constraining the model to the point where it is irrelevant are the ones that history will and should remember - the Ramses, the Xerxes (no prophylactic there), the Hannibals, the Rommels, the Pattons, the Gates (cringe), the Elisons …
Sure what’s the point in writing great code if it never ships or nobody ever knows about it. I often read good arguments that coders should become better writers, salesmen or business people, but the problem with that argument is that it misses two important points:
First is that often the reason people become coders is because they are much stronger dealing with abstract ideas than with other humans. It’s widely noted that often the best coders are boderline autistic and in a way it’s great that there is such a job as ‘programmer’ that means lots of these people can earn a good living without having too much painfull interaction with other humans:)
Secondly is the complexity of modern society that demands deep specialisation. I have enough trouble just keeping up with what’s going on in the world of .net development, let alone other languages and platforms. There’s simply no way that I’ve got enough mental bandwidth to be a great lawyer or salesman too. So sure it’s good to be at least dimly aware of the reason why you’re writing that code, but I expect for the vast majority of corporate developers, the reason they’re writing that code is because their boss told them to.
Now, if you do have the mental bandwidth to be a great lawyer salesman and programmer, then you’ll probably end up being very successfull anyway. One reads stories of Bill Gates out legalling (is that a word?) his lawyers and he’s obviously a great salesman too, but I think for most of us lumpen programmeren just keeping up with our corner of the coding world is probably work enough.
care not for your money or business or fame, just code for me please, as long as i can pay my rent etc. that’ll do just dandy for me.
Difficulty ((Motivation + Value) * (Action + Thought)) ? Success:Failure;
Fully agree with you. By some chance I was away from coding since last one year - mostly presenting, documenting and interacting with managers and mentoring. I feel exactly the same what you opined here.
I noticed that balancing the coding skills with other skills will also help you to keep your job more secure. Too often it is because we cannot express is why our code is not highlighted our ideas are not bought.
Balance…Balance…is so difficult and also so rewarding.
This gets old after a while. Programmers should be great speakers, great salesman, great lovers, and coincidentally, we should also get in touch with our feminine side (or masculine side for the women).
If everyone were great speakers, salesman, and lovers, what we’d have are no significant demand for speakers or salesman, as well as a lot of happy people.
You could just as easily flip it and say that business people should learn how to code, but then, would they be business people any longer?
You need good communication skills, but you don’t need good writing skills to be a successful software developer. You may as well say that Nurses “Sanitation Engineers” also need great writing skills because they may blog about it.
If we had 100 other Spoelskie’s, then Joel would be nothing, and he would have to come up with something else that differentiates himself from everyone else.
You only need the skills of a businessman if you plan on being a businessman. Some do, some don’t, it’s as simple as that.
I’m not against programming. I like programming and debugging and tinkering and hacking. I just don’t believe we’re going to be able to compete with the automated systems we create at the system through interface programming levels for much longer.
The cpu horse power to do the processing is available. Engineering a programmer is what a programming language’s compiler does all the time. What is to stop a linguistics expert from translating their knowledge of linguistics to do automated translations. Nothing, it’s already been done. There was a voice system product years ago that was pulled off the market rather abrubtly that was a fully automated voice interactive person operater and scheduler. It even synced with you outlook. They didn’t invent anything new. They just ran the product off a mainframe.
It’s very clear to me that you only need a very rudimentary automated natural language programmer to build a very complex automated natural language programmer.
I would guess that the software needed to implement such an automated system is already available. But much like TiddlyWiki it only takes one lone hacker to put together a solution that works.
Well, I think you (Jeff) are right, though it does not apply to all cases. I only write code because I like to, and there’s no need for me to make any profit with code, so I don’t try to finish large projects.
Sometimes I code for others though, usually PHP (guestbooks, content management systems, poll systems …), and it seems that people do know I am a coder, and that is enough for me.
Well, I’ll see when code begins to matter (ie. when I need to provide myself with an income).
I think a lot of people are taking this to one extreme or the other. I think the overall point of the post is that you should not rely on coding skill alone to get your work recognized and appreciated. I don’t think Jeff is advocating us all becoming accomplished writers but sometimes you spend so much time working on and learning about code you forget to take a break and improve yourself in other ways that are just as importent to what you do. At my company many people come to me when they have an issue because they say that they are not able to communicate with the other programmers.
It could be attributed wonky syntax; but if it were really true that hardware horsepower has reached the level of removing the barriers, Prolog would reign supreme. When it became clear that it wasn’t happening, the blame was put on lacking computers. And it could be that declarative logical languages don’t fit humans as well as some think.
SQL is both declarative and logical (and the relational database predates Prolog by a couple of years), and avoided even by (many of) those who profess to be database developers. They’d rather load up the application language, be it COBOL or C.
Absolutely–I’m looking to avoid the labeling of programmers being incapable of communicating their work, and communicating with the general public. Good topic, very important.
Since when did I need to be a businessman in order to be a great software developer?
Honestly, very few people are really so far into coding that they have no other interests. What it really comes down to are a few hundred bloggers who think you should know how to write well because it’s what they do, or a few programmers turned businessmen who think you should you should do like them and learn marketing, business planning, etc.
I love working out, should I tell them that they need to be squatting atleast 450lbs in order to be a geat software developer?
Software development requires certain skills, but marketing great writing isn’t one of them.
You can be balanced without being a writer, or a businessman. It gets irritating to constantly hear people tell you that you should be “just like them”.
Noone is arguing against balance, but maybe you’re not as balanced as you think you are.