I'm not fond of these "should" articles. I'd like to acknowledge the programming specialists out there and the 9-5 programmers. The "should" means that if you're not doing these things, then you're doing something wrong. (That's not even the connotation of "should", that's the <i>literal meaning.</i>)<p>> Also, it's good to have some management and leadership skills.<p>It's good, but not everyone wants to be a leader, and if everyone led it would be chaos. You're not a failure for not getting promoted into management.<p>> A programmers aim shouldn't be to simply write good programs, rather it should be developing really great products.<p>Yes, but programmers can work on teams with great designers. They don't need to do all the jobs.<p>Every skill on this list is a skill that takes the place of something else in your life. There's simply a finite amount of time in each week, and if I want to get better at design does it mean that -- maybe I give up on guitar or baseball or something?<p>I encourage programmers to think about what they really want -- not just at work but in their life -- and remember that the loudest folk are also the strangest.
Every programmer should have the skill of ...startup? What fluff. I think what he's trying to say in this section is
(a) - it is more satisfying to work on a project you care about than to be well paid
(b) - you will be exposed to the entire product lifecycle at a startup and not at a big business, which is useful if you are planning to build products at your own startup later.<p>Aside from the semantic quibble that neither of these are 'skills' that a programmer should have, I think (a) is proposing a false dilemma, and (b) is not necessarily true, and even if true, is not shown to be useful to 'all programmers' (per the title) but just 'programmers who want to be entrepeneurs', a much smaller group.
"Spiritual - I am still not sure whether I should have included this one or not."<p>And I can see why! There might be a point in this section, but it's tough to find among all the fluff.<p>If you're trying to say that meditation is helpful, that's great, but I don't see why that would be labeled "spiritual". If it's something else, I can't find it.
While I'm a generalist myself, and I can relate a bit to his advice, I really don't get this recent trend of patronizing everybody to become one man shows. There is a saying that shallow knowledge can be worse than no knowledge at all. For every generalist you need many specialists, and IMO the most important gain of acquiring side skills is being able to share a deeper understanding of other people's work. As an effect - you can surround yourself with the right people and more easily assess their qualifications.<p>Are non-programming skills helpful? Of course. Do one man bands exist? Sure. Should "every" programmer be one? I don't think so.
while i don't have a problem with anything here, particularly, these kinds of post (and we seem to get a lot) usually strike me as "a list of good things about me" or "why everyone should be like me".<p>i'm not sure how you avoid that. perhaps it is up to the reader to piece together a more balanced view by reading several.
Yes, we programmers should learn how to sketch! Not to produce beautiful art but to communicate ideas visually. I really regret not developing this skill, as I find myself blocked when trying to draw something on a whiteboard. My girlfriend (an interaction designer/visual communications graduate) really kicks my butt here, but then there is pressure in her field for her to learn programming :)<p>Writing (and perhaps presentation) is another skill we should develop. Writing is not just about communication, but it also aids in idea refinement.<p>On the other hand, even though I'm all for zen and all, I think spirtual skills are deeply personal and not necessary. Social skills are also very relative, and if you struggle with these your career as a programmer is not over! Same for biz skills, no one has to be a jack of all trades, but you'll probably absorb these skills at your own pace as you advance in your career.
A lot of people seem to be offended by this article when I think all the author was trying to say is that opening yourself to other, non-programming related stuff simply helps you become a better programmer as a whole. I honestly don't think he's suggesting you should be a pro at all those other points, just have a fairly good knowledge of them.<p>I personally find that, on top of the points mentioned in the article, a large number of programmers I've met or have had the chance to interview have a crucial lack of extra-curricular activities. While it's true most can code, a lot less are able to come up with creative solutions on the spot, and I do think this is a skill that stems from looking "beyond the code".<p>And yes, as some people have mentioned, I also think it applies to other jobs. In fact I think a lot of jobs require very similar skills, it's just the different application of a given mindset.
May just be the way it is worded, but the spiritual section ruins this post for me. "...skills every programmer should have" being able to meditate can mean a lot of non-spiritual things. People are able to clear their head via hundreds of methods that have nothing to do with being spiritual. Even meditation I would not personally consider to having to be spiritual. But listening to music, taking walks, doing something to clear your mind from everything that is currently holding it back. This in itself is not spiritual. I agree, what it is, is an essential skill, one needed in life, not just in programming. We all have periods of losing focus. And being able to recover during these times, it's a valuable skill to have with any task. But I think using the title "every programmer" than attributing the way you personally get by is misleading.
I haven't read the article because I read comments first and the comments are confirming my suspicion that it is mostly nonsense. But I wonder, how does something like this make it to the front page? Are people upvoting it and not leaving comments? Perhaps downvoting of articles should be allowed.
Yes, and I realized this when I start to work for a company and found myself have a lack of explaining the project with my manager and not founding new ideas to implement, and explaining this feature and why we shoud add. A programmer shoud be able to communicate with other people and explain their ideas very well, so I should stat reading one book for each thing that will affect the way i think in programming or in life. I also found that presentation skills are very important and to understand the business side. We are not going to be a business or sketches guys but theses things will help us in programming very well and the way we think.
I'm curious what the author's definition of "spirituality" is if it has nothing to do with religion or a belief in the supernatural. The author mentions meditation, but I don't see any inherent link between meditation and spirituality.
It's funny how many programming jobs are designed explicitly to insulate you and not require any of these skills. Just code and let the adults do all the talking.<p>In many organizations, it's easy to get caught in a catch-22 where to advance, you need nontechnical skills, and to develop nontechnical skills, you need to advance.<p>For some, this means they get to do what they love without much hassle (see "do you still want to be doing this when you're fifty?"), and for others it feels like being stuck in the mud.<p>I'd bet a lot of people contemplate doing startups just to get out of the "technical" tarpit more than actual desire to start a business.
I think it is not appropriate to say that every programmer should have all of this skills.
First, sociability depends from one person to another.
Secondly, designing is a full job.
It is ok to have some knowledge but don't ask too many things to somebody.<p>In this case, why not asking marketing people (for example) to have programming skills ?<p>This kind of thread reminds me this : <a href="http://blog.jitbit.com/2011/05/what-if-drivers-were-hired-like.html" rel="nofollow">http://blog.jitbit.com/2011/05/what-if-drivers-were-hired-li...</a>
I'm not really sold on these kind of self-help articles that tell you how to live, as if there is one way of being happy and fulfilled. Yes, a sense of fulfillment comes from those listed categories but it kind of cheapens the idea when you can point to a bunch of thin pop books on Amazon as the answer to life.
what is up with this ambiguous skill set that you have mentioned? believe me, if your good at what you do... and you are on a team of incompetent dorks, then telling me to develop "social" skills is a lose-lose situation.<p>your thesis gets: "denied"