

Non-programming skills every programmer should have - rahul_rstudio
http://www.singhrahul.com/2012/10/non-programming-skills-every-programmer.html

======
klodolph
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.

~~~
pjscott
> 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.

~~~
skermes
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.

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

~~~
btilly
Hey, he had to work Hacker News in somewhere.

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

~~~
R_Edward
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.

~~~
jiggy2011
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.

~~~
seanmcdirmid
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.

~~~
jiggy2011
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.

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

~~~
mercuryrising
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.

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

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

~~~
mangler
> 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...

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

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

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

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

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

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

~~~
alanctgardner2
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?

~~~
grownseed
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.

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

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

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

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

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

~~~
MattGrommes
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.

~~~
andrewcooke
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...

------
peekyou
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...](http://blog.jitbit.com/2011/05/what-if-drivers-were-
hired-like.html)

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

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

------
gnarlyjoe
he started programming with 18. what a loser.

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

