Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Non-programming skills every programmer should have (singhrahul.com)
57 points by rahul_rstudio on Oct 19, 2012 | hide | past | favorite | 47 comments


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 literal meaning.)

> Also, it's good to have some management and leadership skills.

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.

> A programmers aim shouldn't be to simply write good programs, rather it should be developing really great products.

Yes, but programmers can work on teams with great designers. They don't need to do all the jobs.

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?

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.


> 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 literal meaning.)

I would like a word -- and perhaps it exists already and it just eludes me at the moment -- which is a milder version of should. A word that means "Your life would probably be improved by doing these things, even though what you're doing now may also be good."

If we had such a word, it would make it easier to have "You should" conversations without people becoming offended. Our world may be great, but I think that a world with a word like that would be a little bit better.


1) There's nothing wrong with using a phrase (like "Your life would probably ...") instead of a word. That's kind of what they're for?

2) What about "can"? It's not a drop-in replacement for "should", but it has a lot of what you're going for. "Non-programming skills every programmer _can_ have" is about aspiration not judgement, possibilities not failures.


Not a big fan of the article either, but I think there is some benefit to at least trying to develop some skills outside of your core skill set. This is not necessarily to get good at those skills, but to develop empathy for others who've decided to specialize in those skills.

For example, I've personally realized that management is not really my thing, but having done it for a while I understand better now where my ex-managers were coming from and feel that I'm now a better employee because of that. Same for design work, etc.

And frankly I wish other people did that too. Wouldn't it be great if your manager understood your explanation of why that "tiny" feature will actually take weeks, or the designer keeps potential code complexity in mind when designing something? I think this advice applies to everyone, not just programmers.


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.

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.


Hey, he had to work Hacker News in somewhere.


"Spiritual - I am still not sure whether I should have included this one or not."

And I can see why! There might be a point in this section, but it's tough to find among all the fluff.

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.


I'd suggest that "spiritual skills" encompass an understanding that there are connections between ourselves and our surroundings that defy precise, scientific description. Whether that's a feeling of camaraderie with your teammates, or a sense that one's office is warm and inviting or cold and unpleasant, or an immediate response upon meeting someone for the first time that you can trust them implicitly--or that you absolutely cannot--these are skills that can be developed and improved over time, and the effective use of which can enhance an individual's overall health, productivity, and success.


All of those things you mentioned are to a large degree explained by science.

Spirituality appears to require at least some belief in something beyond the material world. There are certainly things that can be taken from spiritual practises that can be useful but in most cases there is an explanation for this value that does not require any belief in the supernatural.


Relying on some kind of placebo or customs to enrich our lives is perhaps not very crazy. If we take everything at face value, the universe is vast in time and space and so our lives are very insignificant or meaningful; its hard to justify doing anything at all in that case.

Just replace spirituality with custom, culture, emotion, and its not so anti-intellectual.


The article talks about stuff like meditation, that isn't really a placebo or custom. There is research done that is showing benefits of this.


None of what you describe is what I would categorize as "spiritual".


I can't shake the feeling that we could be having a much more fruitful conversation if we simply removed the word "spiritual" from it, and talked about the concepts themselves. Arguing over the definitions of words has got to be one of the most exhausting and futile acts in existence.


That's kind of my point. Why label a section with a title that's bound to be controversial and confusing, only to include almost nothing relevant to that title?


The "spiritual" word is often used in non-religious contexts to mean the mastery of the inner world.

Meditation is often used as a way to take control of your thought processes (which are sometimes negative), so that's why it's often classified as a spiritual practice.


Huh, I don't think I've heard it used like that before, or didn't understand it that way in any case. "Spiritual" to me, being based on "sprit", always has connotations of external supernatural entities.


Etymologically, the word 'spirit' originally meant one's life force or 'breath'; its supernatural connotations came later.


The word spiritual is usually used as an intentional avoidance of religious particulars.


Clarity? Calmness of Mind.


Those seem like good skills, but I have no idea why they'd be placed under a heading of "Spiritual".


Because telling everyone that they have to have religion is such a strong compulsion that people can't even resist doing it in an article supposedly aimed at programmers.


He very clearly states its not about religion and that he isn't religious. Just a poor title.


But like "spirit," "spiritual" is still really a religious word. If (hypothetically) I just happen to think that the universe operates according to normal physical principles, with no gods or magic, and that what is important is life on earth, then I am not "spiritual" and thus, according to this guy, I am a worse programmer.

This is just social pressure to conform to certain kinds of ideas. The fact that the word "spiritual" allows me to self-label as religious even if I don't belong to a large institution like the Catholic church is not very helpful if I am just not religious. And why should I have to be?


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.

Are non-programming skills helpful? Of course. Do one man bands exist? Sure. Should "every" programmer be one? I don't think so.


I don't think it's good for the long run, but having a bit of knowledge about everything is really handy. I'm a non-working recent grad. I'm taking a few months off (graduated in May) to try my hand at making some software stuff. I'm working on a website now, and having even a little bit of exposure to web frameworks, databases, UI, UX, etc. is nice (these are things I never had before, as I'm an EE).

I can see things I never saw before because of it. I would never ever wish this upon someone (I spend hours trying to make the stupidest things work, but then realize I was going in the completely incorrect direction). It's a pain in the ass when I can't make something look exactly how I want it, but for a little bit it's fun. It's nice being able to hack at the backend for a while, get bored, switch to design, get bored, switch to new features I could implement. I'll be ready for the big challenges when they come. It'll be cool when I show some people one day and say "I made this, all by myself, everything that happened I thought of superficially (as I'm using bootstrap, and tons of back end libraries)". We always stand on the shoulders of giants.


Replace programmer with cook and then comes the shocker - these still apply.


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".

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.


> 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".

Yep... That's why the mysteriously named skill, "spiritual" may actually be quite important and why the OP should work on it a bit more. Beginners' minds don't go around dispensing advice. I think that touches lightly on the "social" as well...


> Beginners' minds don't go around dispensing advice.

Cool-sounding advice, I suppose. What sort of mind is yours?


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 :)

Writing (and perhaps presentation) is another skill we should develop. Writing is not just about communication, but it also aids in idea refinement.

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.


If someone had all these skills, why would they be a programmer? :)


Most of us program because we want to, not because we lost some contest and would rather be doctors, lawyers, business leaders.


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.

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".

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.


It's one thing to say that programmers (and everyone, really) should have a hobby outside of work. This is a laundry list of vague ideas - 'Startup' is not a skill - that the author insists every person who programs for a living should be interested in.

What exactly is 'looking beyond the code'? Can you give an example of a problem where two equally skilled programmers were faced with a problem, and one had an epiphany based on their experience last night at the extreme underwater basket weaving club?


I agree this isn't a particularly refined article, I'm just saying he does make a point. A lot of programmers, myself included, have a tendency to be a bit narrow-minded.

And no, I suppose I don't have a specific example. I just notice that the programmers I know who are more than just coders are considerably more efficient, and come up with better, cleaner solutions.

This is, of course, only speaking from personal experience. And in regards to your "extreme underwater basket weaving club" example, well, maybe it does. I learnt Latin for a while and as useless as it may seem on a day-to-day basis, it did wonders to my logical thinking.


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.

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.

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.

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've found that even sitting at the kids' table you can make sure people in the rest of the business know that you're not just a code monkey. I try to ask questions, make suggestions, make sure people know me and that I contribute more than just lines of code to the business. Even though I have little desire to move up to the adult table I think it's good for your long-term career to be known as more well-rounded. Plus if the list of layoffs comes around I don't want to be just a name and title to the people above me.


more than that, you can be both. that's really what consultants are (at least, the "small" kind, like me). there's a market for people that can both code and talk. and, if you like to code more than talk, but can talk when necessary, then it can be quite lucrative.

and it actually makes the coding easier. some of the most frustrating parts of development come from not being in control - you are very much dependent on the person above whose talking to the client. and it helps the client too, because with less buffer they can get faster feedback. which again helps you, because you can do faster iterations and understand more closely what the customer wants...


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.

In this case, why not asking marketing people (for example) to have programming skills ?

This kind of thread reminds me this : http://blog.jitbit.com/2011/05/what-if-drivers-were-hired-li...


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.

your thesis gets: "denied"


he started programming with 18. what a loser.


Isn't that cute? User ``gnarlyjoe'' trolls HN. (What a loser!)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: