
Advice From An Old Programmer - bemmu
http://learnpythonthehardway.org/book/advice.html
======
DanielBMarkham
Edw's comment aside, I can understand being bored with programming. After you
learn your way around a dozen or so different platforms, if you're not getting
bored you might want to check to see if you don't have a bit of Asperger's.

But he nails it when he points out that all of this programming talk is
bullshit. It's just stuff to chat mindlessly about while you're not helping
people. Programming is making computers help people. Never forget that. The
more you focus on the computers part, the unhappier you are going to be.

I will extend my analogy. If after the 50th article you read on HN about some
upcoming technology you haven't figured out that something is wrong with your
focus you should seek help. If you want theory, computer science is a great
field to study. For the vast majority of us, it is not an end to itself.

It's all very easy to get good at critiquing Judy arrays and suck at making
something people want. You can carry on like this for the rest of your life.
Don't do that. You provide a bridge to the future for millions of people.
Please, the rest of us need your help.

~~~
michaelochurch
When I was 21, I thought the fun part was learning new technologies and the
hard, frustrating, somewhat boring part was writing the code. (I also only
knew C++ and Java, so I thought the accidental complexity of these languages
was an intrinsic fixture of programming.) Learning Python, then Ocaml, then
Lisp, was a lot of fun. (The REPL makes a huge difference in the experience of
programming. It makes the code _real_ rather than some hazy gobbledegook.) It
was even better to start using these languages for real-world problems.

I'm 28 now and I find the writing of code to be the fun part, because I'm now
good at it and know better technologies than C++ and Java. I get into "the
zone" and before I know it, 4 hours have passed. Unfortunately, that's not the
reality of industrial software engineering where, if you're lucky, 25% of your
time might be spent writing code. Learning new platforms (often with so many
of them that I can only learn enough to glue them together) is _often_ boring.
It's fun to learn new technologies when there's something genuinely new in
them, but I'm sick of having to learn new and often less useful ways of doing
old things.

~~~
DanielBMarkham
I love programming and find it very relaxing.

I would probably also like re-arranging chairs at a charity function. Or
solving mathematical puzzles in books. I also love instrument flying, which is
like real-time fluid dynamics where you die if you screw it up.

But I've come to understand that these are just properties of the types of
people who grok computers -- detail-oriented, able to spend many hours in the
zone, and in love with complexity. At some point, the "benefits" from this
personality type become drawbacks. There are a lot of guys spending thousands
of hours on code in their spare time that might help 3 people -- who are also
programmers. I'm not saying this is a bad choice. It just seems to me like we
programmers as a whole like trivial things and can spend most of our time on
them as long as they tickle our analytic bone. Continuing my flying example,
there have been cases of people flying airplanes into the sides of mountains
in perfectly good weather while they were fiddling around with the flight
computer. Many of us are doing the same thing -- only in very slow motion.

By the way, the fun part _is_ learning the technology. The hard part is
working with people to make something they want -- which is why it's about a
million times more important.

~~~
wladimir
_By the way, the fun part is learning the technology. The hard part is working
with people -- which is why it's about a million times more important._

That's very interesting, and indeed seems to mark a certain personality type.
Most people would see that exactly the other way around, that working with
people is fun and easy, but the technical stuff is hard and extremely
frustrating.

It depends completely on your skill and what you're used to. Almost all people
tend to think their own area of expertise is easier compared to others and
don't understand why other people don't get it like they do (which has a
simple answer: years of experience).

 _There are a lot of guys spending thousands of hours on code in their spare
time that might help 3 people -- who are also programmers_

Nah, helping 3 people in your spare time is more than helping no one. You're
right, if your goal is to help as many people as possible, programming isn't
the right time sink. Better to sign up for some volunteer job. On the other
hand, you could also be reading a book, playing a game or watching TV and
helping exactly no one :)

Edit: and don't forget many non-programmers also spend their spare time on
very trivial stuff. The problem is not exactly limited to technical people...

~~~
michaelochurch
_That's very interesting, and indeed seems to mark a certain personality type.
Most people would see that exactly the other way around, that working with
people is fun and easy, but the technical stuff is hard and extremely
frustrating._

Learning technology is fun _when it adds something new_. For example, if you
know functional programming, then Gang-of-Four "design patterns" are
completely useless cruft and not especially interesting to learn. It's painful
to learn that sort of stuff when it's less powerful than what you already have
and would be able to use in a better environment.

"Working with people" can be fun, to a point. It's enjoyable when there's no
power relationship, or a symmetric one. What's difficult is the context-switch
from programming to interpersonal communication. It takes some time.

~~~
hackinthebochs
The point is that different personality types enjoy different aspects of
programming. For some people the technology itself is the fun part. For some
its what you can accomplish with it. There is no right or wrong here.

~~~
wladimir
Yes, exactly. I think it's overall too easy to call someone else's use of
spare time "trivial" because we don't understand why it could be useful for
them, or to other people. We're all limited by our skills and interests. If
only we could all be world-savers doing work of great impact and help to every
person on earth in our free time...

------
api
"People who can code in the world of technology companies are a dime a dozen
and get no respect. People who can code in biology, medicine, government,
sociology, physics, history, and mathematics are respected and can do amazing
things to advance those disciplines."

That is the best thing in his advice column.

It's hard to pull off though. I started programming at 5 and am at a skill
level comparable to this poster, but I studied biology in college with an eye
to doing exactly this sort of thing. Then I discovered that bio is a Ph.D's
only club and that you cannot get any kind of job in the industry if you don't
at least have a Masters'. I didn't want to do this for various reasons (money,
not liking school), so I found myself back in IT/programming where the pay was
3X higher than what I could get in the bio world with a BS only.

~~~
AznHisoka
With a degree in biology, even with no PhD, it's still vastly useful when
paired with programming skills. You have a good high-level overview of the
problems in the industry, and that's an important first step.

But it seems like in today's competitive market (especially when it comes to
doing a startup), you need 2 degrees. Computer Science is not enough. It's
just a set of tools but if you don't have a domain where you can apply those
tools, it's useless. It's like knowing how to write. Great! if you don't got
anything interesting to say, or expertise in a specific area, it's almost
useless. Of course I guess you can write about writing, which is analogous to
writing developer tools.

~~~
ExpiredLink
In the corporate world domain knowledge is more important for developers than
technical knowledge. The complexity of real-wold domains (e.g. insurances,
banking, ...) is amazing. For an experienced developer programming is the easy
part of his job.

------
ferids
Also a part of this problem is that many programmers are assholes. Going out
to the world while thinking "im to smart for the rest of the world, tha hell
with them" is just a big social failure in general. One need to be able to see
things out of different perspectives, a bit more open minded. Just because a
person like to do other things in life then CS-stuff, does not mean they are
automatically stupid.

Programming is not everything in life as many would like to think. Handling
different kinds of people in different kinds environments for example is much,
much harder then learning how to code.

Connecting this all together has made up a history of non sympathetic people
doing "the coding stuff" at the office where everyone else just stop caring
about these guys cause you can't really talk to them. Now im just talking
about the stereotype thats has been biting us in the ass for ages. Portrayed
in media etc etc

This has been covered well in the beginning of the social network where Mark
get lectured up by his girlfriend at the bar....

So really from experience, a good way out of this is not going to management,
but just to "listen" to other people and open up your mind a bit...

/coder since age of 13, 29 years now, startup, the whole 9 yards

~~~
zedshaw
You're right, the real way to be an asshole and have people love you for it is
to say:

"im too tough for the rest of the world, tha hell with them"

Because being smart and confident is just uppity, but being tough and
confident is baller yo.

~~~
amouat
Nothing wrong with being smart, confident and/or tough.

It's being arrogant and snarky that upsets people.

(I'm not aiming this comment at anyone btw!)

------
nadam
"People who can code in the world of technology companies are a dime a dozen
and get no respect" Generally in business, those people whose job title is
'programmer' or 'developer' or 'software engineer' get relatively little
respect even with lots of experience. (I am 37 years old and programming since
12) Previously I thought the only way out of this is to become a 'manager',
which I never really wanted to do... Recently I have discovered 'quantitative
finance' which is a quite respected and interesting geek profession (with lots
of math, which i like), and I am planning to transition into that in the long
term. (Theoretically a relatively smooth transition is possible because there
are 'quant developer' jobs out there.)

~~~
atomicdog
a) Is "respect" really so important to you that you are willing to sacrifice a
25 year career? Surely if the pay is good and you enjoy that's all that
matters.

b) By switching professions to a more "respected/cool" one do you not think
you're just contributing to the problem of programmers not being taken
seriously?

~~~
DougBTX
> more "respected/cool"

By using "cool", I get the impression that you're thinking more about respect
from people outside work, rather than those you are working with. I think the
article was talking about respect from the people you work with and work
under, in the sense that if you are not respected, then you likely won't get
paid what you are worth. From the point of view, point (a) is a contradiction
- if you are not respected by the company you work for, the pay won't be good.

~~~
lrobb
Pay isn't that well correlated with respect.

Exhibit: The "starving artist" vs the "slimeball lawyer".

~~~
michaelochurch
Whatever people say about "lawyers", people tend to have a lot of respect for
_their_ lawyers. It's lawyers as an aggregate that people tend to stereotype.

------
amirmc
> _"People who can code in biology, medicine, government, sociology, physics,
> history, and mathematics are respected and can do amazing things to advance
> those disciplines"_

True. I have a theoretical physics friend who's now applying a ton of machine-
learning techniques to biophysics stuff (in an academic setting).

I've no idea exactly what he's doing other than he's _always_ snowed under and
people keep coming back to him for more.

~~~
sdfjkl
My favorite example of this is OsiriX[1], a GPL'd medical imaging (DICOM)
viewer written by a radiologist who couldn't find existing software that did
what he wanted. It's now an established part of the DICOM world.

[1] <http://www.osirix-viewer.com/Snapshots.html>

~~~
samuel
I have known people who started as programmers and became highly valued domain
experts, so it works in the other way, too.

------
padobson
When I read pieces like this, it reminds me there are many reasons for
learning to code. Some learn just because the technology is interesting. This
is a fine reason, but what's interesting today will not continue to be
interesting tomorrow.

Some have learned to code because they want a steady job. This is an ok
reason, but being an accountant, plumber, carpenter, or "running a fast food
joint" has the same benefits.

The best reason to learn to code, and the reason I did, is because your head
is full of..... stuff. Stuff that is always there, choking out simple thoughts
like "I'm hungry" or "I'm tired". And the supply of stuff never runs dry, it
constantly increases and overwhelms other thought and builds up immense
pressure on the sides of your cranium until your head feels like it'll burst.

And the only way to relieve the pressure is to turn that stuff into code.

That's why you should be a programmer.

------
opining
Would have been a great article except for the last 3 paragraphs.

Instead, I like the letter from _why in this post:
[http://delicious.com/redirect?url=http%3A//www.smashingmagaz...](http://delicious.com/redirect?url=http%3A//www.smashingmagazine.com/2010/05/15/why-
a-tale-of-a-post-modern-genius/)

It goes:

I do not write tests for my code. I do not write very many comments. I change
styles very frequently. And most of all, I shun the predominant styles of
coding, because that would go against the very essence of experimentation. In
short: all I do is muck around.

So, my way of measuring a great programmer is different from some prevailing
thought on the subject. I would like to hear what Matz would say about this.
You should ask him, seriously.

I admire programmers who take risks. They aren’t afraid to write dangerous or
“crappy” code. If you worry too much about being clean and tidy, you can’t
push the boundaries (I don’t think!). I also admire programmers who refuse to
stick with one idea about the “way the world is.” These programmers ignore
protocol and procedure. I really like Autrijus Tang because he embraces all
languages and all procedures. There is no wrong way in his world.

Anyway, you say you want to become better. I mean that’s really all you need.
You feel driven, so stick with it. I would also start writing short scripts to
share with people on the Web. Little Ruby scripts or Rails programs or
MouseHole scripts to show off. Twenty lines here and there, and soon people
will be beating you up and you’ll be scrambling to build on those scripts and
figure out your style and newer innovations and so on.

— _why

------
phatbyte
"Finally, I'll say that learning to create software changes you and makes you
different. Not better or worse, just different. You may find that people treat
you harshly because you can create software, maybe using words like "nerd".
Maybe you'll find that because you can dissect their logic that they hate
arguing with you. You may even find that simply knowing how a computer works
makes you annoying and weird to them."

This is very true, unfortunately being a programmer requires dedication, non-
stop learning to keep up. And this can lead to a very lonely life in a way
that you don't socialize too much by favoring what we love to do. If you live
with a tech-oriented city you should be fine, but for the rest of us it sucks
a little, knowing that most of your friend/relatives don't understand what you
do, and why do we spent so much time in front of a screen.

------
edw519
Thoughts from an Older Programmer...

 _I've been programming for a very long time._

Me too.

 _So long that it's incredibly boring to me._

Actually, it's more interesting to me than ever.

 _...I knew about 20 programming languages and could learn new ones in about a
day to a week depending on how weird they were._

I have a cursory knowledge of quite a few myself. But I know one really,
really well.

 _Eventually though this just became boring and couldn't hold my interest
anymore._

That may be because you're too focused inwardly and not toward your users.

 _This doesn't mean I think programming is boring, or that you will think it's
boring, only that I find it uninteresting at this point in my journey._

Not me, and I'll tell you why shortly...

 _What I discovered after this journey of learning is that it's not the
languages that matter but what you do with them._

Yes!

 _Actually, I always knew that, but I'd get distracted by the languages and
forget it periodically. Now I never forget it, and neither should you._

Yes fellow programmers, this is a trap! Even after 33 years of building stuff
for my users, I'll have a day when I realize that it's already dinner time and
I haven't done a damn productive thing all day long. Just played around for
the fun of it. (This is not a bad idea every once in a while, just as long as
you know its a trap, and eventually you have to get back to work. Do this for
months and you can really lose your way.)

 _Which programming language you learn and use doesn't matter. Do not get
sucked into the religion surrounding programming languages as that will only
blind you to their true purpose of being your tool for doing interesting
things._

Yes. I've made about 4,500 Hacker News comments, but I don't think I've ever
participated in a language war. Fortunately, I instinctively knew that this
was pretty much a waste of time for me.

 _Programming as an intellectual activity is the only art form that allows you
to create interactive art. You can create projects that other people can play
with, and you can talk to them indirectly. No other art form is quite this
interactive. Movies flow to the audience in one direction. Paintings do not
move. Code goes both ways._

What about stand-up comedy? By definition, the audience is part of the act.
Anyone can tell jokes to their cats, but killing a room is an entirely
different story. (I found this out the hard way.)

Oddly, with the users I've had lately, I often forget whether I'm doing comedy
or programming. I have to check to see if I'm sitting or standing to be able
to tell the difference.

 _Programming as a profession is only moderately interesting._

Take out the words "as a profession" and re-read that sentence. It shouldn't
make any difference. If you love programming, you can easily love it as a
profession (in the right conditions, of course). If you don't love
programming, do the world a favor and do something else as a profession.

 _It can be a good job, but you could make about the same money and be happier
running a fast food joint._

Money really shouldn't have anything to do with it. You can earn a living many
different ways. Do what you love.

 _You're much better off using code as your secret weapon in another
profession._

I disagree. I've met a lot of non-programmers who knew a little programming.
They were more dangerous than effective.

 _People who can code in the world of technology companies are a dime a dozen
and get no respect._

This was a nice post from OP until this sentence. This is just stupid. There
may be lots of mediocre and poor practioners in any vocation, but _good_
programmers and _not_ a dime a dozen. Also, respect is relative. If you're
worried about getting respect, you're worried about the wrong thing.

 _People who can code in biology, medicine, government, sociology, physics,
history, and mathematics are respected and can do amazing things to advance
those disciplines._

People have often asked me how I've used my programming skill to help the
world. I always answer immediately, "With everything I've ever done." Sure,
the disciplines OP mentions are sexy, cool, and important, but so is
manufacturing stuff, distributing it, accounting for the money exchanged, and
a million other "boring" things. Programming to keep the world working is just
as important as all that sexy stuff too. (Maybe even more important, what were
all those "sexy programmers" doing for food, shelter, and essentials when they
were busy changing the world? You better believe that a "boring programmer"
built something to help bring those things to them.)

 _Of course, all of this advice is pointless._

Not really. Even though I've disagree with OP on a lot of stuff, his advice is
_not_ pointless. There's something to be learned from everyone else,
especially those with lots of experience.

 _If you liked learning to write software with this book, you should try to
use it to improve your life any way you can. Go out and explore this weird
wonderful new intellectual pursuit that barely anyone in the last 50 years has
been able to explore. Might as well enjoy it while you can._

Great advice. I did it and I'm so glad I did. Many others should, too.

 _Finally, I'll say that learning to create software changes you and makes you
different. Not better or worse, just different._

This is true of just about anything. And most definitely true of programming.
I can't imagine what my life would have been like otherwise. (In another
century, I probably would have been a cook or something. I probably would have
been happy, but I'm so glad things worked out the way they did.)

 _You may find that people treat you harshly because you can create software,
maybe using words like "nerd". Maybe you'll find that because you can dissect
their logic that they hate arguing with you. You may even find that simply
knowing how a computer works makes you annoying and weird to them._

Another hard lesson: others' opinions of you should not matter. If it does,
slow down and think about this again. You should be focused on your work and
your users. Don't worry about the naysayers.

 _To this I have just one piece of advice: they can go to hell._

My feelings exactly, but I'd like to think I'd use different words. Be nice.

 _The world needs more weird people who know how things work and who love to
figure it all out. When they treat you like this, just remember that this is
your journey, not theirs. Being different is not a crime, and people who tell
you it is are just jealous that you've picked up a skill they never in their
wildest dreams could acquire._

It took me a long time to realize that I was an "outlier". Once I understood
that, lot of other things came into perspective. That's probably true for lots
of other programmers, too.

 _You can code. They cannot. That is pretty damn cool._

Please remove the sentence "They cannot." That's bad attitude and doesn't
matter. The resulting paragraph, "You can code. That is pretty damn cool."
pretty much sums up exactly how I've always felt about it. Thank you, OP!

~~~
SatvikBeri
> I disagree. I've met a lot of non-programmers who knew a little programming.
> They were more dangerous than effective.

I'm sure you're well aware of this, but there's a ton of opportunity for even
very simple programming to help in cases where people have never thought of
programming as a possible solution. (This is how I contributed roughly $3MM of
value to one company as a kid who barely knew how to program). On the other
hand, it takes a lot more sophistication (I assume, don't have first-hand
experience) to add value to a place that already recognizes the value of
programming and automates their work.

~~~
etrain
Fully agreed here. It's amazing how many people could be replaced (or freed up
to do better things) by very simple shell scripts or excel macros. This is
where someone who knows a little programming but understands the business
process really well can be highly effective.

The danger, in my view, is that these first simple solutions tend to have more
and more bolted on to them and over the years maintaining them is more time
consuming than the job they were designed to replace. This is when you hire a
good programmer or two to fix things.

The trick is figuring out when to pull the plug on the prototype and make
things good. I'm reminded of this quote from Mike Lesk about the early days at
Bell Labs: "He wouldn’t issue long speciﬁcations; he’d lash together some
combination of shell scripts and awk code that did roughly what was needed,
tell the customers to send him some clerks for a few days, and then have the
customers come in and look at their clerks using the prototype and tell him
whether or not they liked it. If they did, he would say “you can have it
industrial strength so-many-months from now at such-and-such cost”."

~~~
mseebach
It's really a tragedy that the same company - Microsoft - is the origin of the
only reasonably successful business-focused programming environment (VBA) and
the notion that interacting with a computer through _any other_ means than
point-and-click - _especially_ typing command and editing text files - is
_hard_ and is only for stupid geeks with bad hygiene.

~~~
loso
Microsoft is not responsible for people hating to type commands in the command
line, early computing is. In the past you were forced to type commands to get
anything done and a lot of people hated it. The introduction of the GUI made
things "easy" for most people.

~~~
mseebach
No, they didn't invent it, and for the most part, GUIs are leaps and bounds
better than CLIs.

What I'm opposing is the notion that commands and text files are something to
be scared of and shun, when there's nothing so hard in it that most regular
office workers couldn't pick up the basics on a three day course. And
Microsoft pushed that agenda _very_ hard.

------
zerostar07
I think this piece keeps coming up every so many days. It's a great piece of
advice, and i think most developers come to the same conclusion after a few
years. I think a useful corrolary from this is "Do not reinvent the wheel all
the time by changing programming styles, instead try to extend the frontiers
of technology" (I 'm looking at you, web frameworks).

~~~
lrobb
This. I was reading someone's blog the other day about how they were rewriting
their app in node.js... whereas a few years before that, I remember that they
had rewritten the app in rails... Their product could've been so much further
along had they just stuck with php/.net (whatever is was originally).

~~~
gaius
An app that can be rewritten on a whim is not a significant app. Harsh but
true.

------
vacri
"Programming as an intellectual activity is the _only_ art form that allows
you to create interactive art." (his emphasis)

Kinetic sculptures? Fashion? Hell, go to a science museum and you'll find
endless halls of interactive art, little of which involves programming.

~~~
zedshaw
Let me know when you can tell a Fashion designer you hate their dress by
writing on the back of some girl wearing it. Oh, and doing that without
software.

~~~
vacri
Eh? Are you saying that the random hate commentary at the bottom of online
articles is required for something to be art? Your comment just doesn't make
sense.

------
juliendsv-mbm
"People who can code in the world of technology companies are a dime a dozen
and get no respect" , I disagree with that, I think you got a lot of respect
in a company that is focused on technology. But If you are working into a
marketing company in the development team, then yes you will not get much
respect..

~~~
OoTheNigerian
What I think he means by "if you have coding as a secret weapon" in this case
would be, if you are a Marketer that can code as an extra, you will be highly
valued.

I think it is hard to argue with that.

~~~
gaius
Do you know any such marketeers?

~~~
tsunamifury
I am a marketer who can code in a rudimentary manner. I've done projects on a
shoestring budget that have netted companies thousands of new customers and
hundreds of millions of dollars.

What helps is that even if I can't code the entire project, I do know how to
properly source and manage people who do. I have enough of an understanding to
respectfully manage all the business and technical partners in a marketing
project -- and help them work together in a way that produced a better sum of
the parts.

------
loup-vaillant
> _Which programming language you learn and use doesn't matter. Do not get
> sucked into the religion surrounding programming languages as that will only
> blind you to their true purpose of being your tool for doing interesting
> things._

That, is a dangerously double-edged wording. I see two ways of interpreting
this, which are almost opposite.

(1) "Languages don't matter, in the sense that whichever you chose doesn't
change the end result." Which is flatly, provably false. Different languages
have different strengths and weaknesses, which makes them suited for different
sets of problems. Use the wrong tool for your particular job, and you will
find that your program took too long to write, or has too many errors, or is
too slow to execute. Just thinking about C, Python, video encoding, and quick
sysadmin work should make it obvious to about anyone here.

(2) "Languages don't matter, in the sense that they are a _mean_ , not the
_end_." Which is true for exactly the same reason the first interpretation is
false: what should control your choice of language is your end goal. Personal
preferences only matter to the extent you expect to have more fun. Given that
your choice of language _will_ change the end result, you'd be wise not to
give it too much weight.

I think the author meant the second interpretation. The key words are " _their
true purpose [is] being your tool for doing interesting things._ ". A tool is
only good to the extent it serves its purpose. For any given purpose, some
tools are better suited than others. If no such tool suit some purpose of
yours, consider crafting a custom one. In this regard, programming languages
are no different.

~~~
zedshaw
1) No I could actually write the same thing with the same quality in most any
language I know, baring a few esoteric ones like brainfuck. One language may
take me longer than others, but the error rate would not be higher or lower
usually.

2) This is more what I'm saying.

------
exor
The meta-topic is about disillusionment, which in this profession comes from
having to learn new libraries and knowledge that you know will soon become
obsolete. Reduce the risk by focusing on learning what interests you (language
& industry), and accept only interesting work if possible (or create your own
fascinating projects, if you're the entrepreneurial type) -- or work as a
contractor, where you pick your projects, focusing on your favorite language.

Don't let yourself become a cog in the machine, learning one company's
proprietary library after another; to me, this is what leads to programmer
burnout.

One of the challenges of a programmer (among other professions) is leading a
balanced life; do not let your work define you too strongly.

~~~
zedshaw
Actually, learning all the cool new stuff that comes out is what I like the
most about programming. I love taking apart new stuff, watching communities
rise and fall, and dissecting the philosophies that come out of it all.

------
bicknergseng
"You're much better off using code as your secret weapon in another
profession."

Exactly. So many students and young people see programming as an end, rather
than a means. They might take a class in Java or Python or somethign, hoping
to learn how to write code. What needs to be impressed on people is that you
don't write code to write code, you write code as part of creating an online
network connecting a billion people around the world or write code to create
an immersive world that tells a unique story every time someone enters it.
Despite the rise of DIY blogs and webpages, people still talk about
programming as if they were an artist talking about learning how to paint in
order to use a paintbrush.

------
JVIDEL
_People who can code in the world of technology companies are a dime a dozen
and get no respect_

Last time I went to a startup meetup the people who could code were a very
small minority, and they were always surrounded by others trying to poach them
for their startups.

------
narag
_Maybe you'll find that because you can dissect their logic that they hate
arguing with you._

I'm glad I don't need to argue with "them" in my current position, but I've
seen this effect a lot: the most manipulative people in a company are against
any logical processes.

~~~
hef19898
And those people usually get their way, too. Quite frustrating to deal with
them, mostly when they come back to you after their way didn't work out and
want you to solve it.

------
oconnor0
This ("the language you use doesn't matter") has never made sense to me. I get
that what we produce is of value to others while the tools we use isn't of
value & doesn't - directly - matter.

But, I know that certain languages are closer to how I want to think & how I
want to be able to solve problems while other languages inhibit that or
restrict the ways I think about & am able to express problems.

I only have about a half dozen years of professional experience so perhaps I
am simply naive here.

~~~
saraid216
Actually, your attitude is exactly the one that advice is trying to foster.
Keep in mind that some pieces of advice are not meant to stand alone; they're
reactive and meant to act as pushback against worse things.

There _are_ religious wars between various languages, as I'm sure you're
aware, and the driving force between a lot of the arguments is that the tool
of choice is more important than solving the problem. If only they focused
more on problem solutions rather than saying that Perl has too many sigils or
Java is full of silly factory patterns, they'd be able to agree that Perl is
useful for many things and Java is useful in many situations.

------
revorad
_You're much better off using code as your secret weapon in another
profession._

That's why Bezos is my hero.

------
_k
I worked for a company where they had a student (internship) set up the LAN,
among other things. He got the job done, they liked to boss him around and
pretty much everyone agreed the guy was lazy and there was no way they were
going to hire him, blah blah. Truth be told, you could see he didn't like it
there. But they couldn't have been more wrong about that guy. And I've seen
this over and over again: it has nothing to do with technology. It has
everything to do with the people you work for and how big of an influence your
job has on whatever it is a company is trying to sell. It's very discouraging
to a lot of people when they're in a situation like that guy was. Fortunately,
he only stayed there for like 6 - 9 months (too long, imo, but he had no
choice), so when his time was up I asked him where he was going. He was going
to work for a company that offered network solutions, he figured that was a
better choice than to go work for a company similar to the one he just
interned for. And he was right. I happened to know the company and the owner,
so I assured him he made the right choice. I checked up on him a few months in
and all I can say is: time to move on when you're in a situation like he was.

------
demallien
"Programming as an intellectual activity is the only art form that allows you
to create interactive art"

Well, except for architecture. And industrial design. And pretty much most art
that requires someone to interpret it (it depends on who you think you are
making your art for - the person interpreting it, or the person watching the
interpretation...)

~~~
zedshaw
Let me know when you can tell the Architect that his building needs
improvement or contact a designer about their devices. Oh, and without
programming.

------
j45
This is brilliant advice.

 _"What I discovered after this journey of learning is that it's not the
languages that matter but what you do with them."_

For those developers who have only discovered the nirvana with one, or two
languages, and love their rails, djangos, closures to death, just know that if
one exists, there's always the possibility that there's more.

Just because you aren't aware of them doesn't mean it doesn't exist. Get
building. Customers simply don't care what you code in, and very few languages
give an overall edge to developing, most languages have very capable
frameworks that all have their pros and cons that even out.

The question is, can developers stop foaming at the mouth and seeing the world
just one way? Seems a little fanatical.

~~~
j45
Wow, I can't believe saying something similar to edw519, and the OP, got
downvoted.

At least, kind of explain, maybe why. I don't think there's anything
inflammatory here.

Thanks!

~~~
zedshaw
I wouldn't worry about it. This part of my book seems to get fairly polarize
results or simple meandering talks about each person's own life and decisions
so it most likely has nothing to do with your comment.

~~~
j45
Appreciate the support, I'm not worried, not the first unpopular /
misunderstood opinion I've had.

Calling insecure lashing out towards others though, all, day, long. :)

------
msluyter
I'm also pretty old, relatively speaking, but I think of myself as young
programmer because I started somewhat later in life. Early in my career I made
the mistake (for me) of going into software testing and I found myself pretty
bored and unmotivated. But now that I'm a dev, I've found that my passion and
dedication to the craft has only grown over time. All that stops me from
coding all night when I get home from work are the physical barriers
(hands/back).

Well, that and my girlfriend. So my advice is that if you want to stay in it
for the long haul, play a long game: be passionate and consumed with what
you're doing but don't burn out. Have friends, hobbies, and a life outside of
work.

------
leeoniya
"Maybe you'll find that because you can dissect their logic that they hate
arguing with you."

QFT

------
demian
I would like to think that the sentiment of this piece is to move programmers
to go and explore more disciplines.

Or to make the point that computer programming is such a powerfull tool that
it's a shame to see that a lot of competent programmers are "just programmers"
who think of code as an end to itself. Higher levels of manipulation and
appreciation are available. Like a car mechanic, stuck with the beauty of the
engine and the physics involved, but not the freedom and happiness and
excitement of the car runing .

------
ankurdhama
Which programming language you learn and use doesn't matter?

Really ?? It doesn't matter for most people because they only know
C/C++/C#/Java/JavaScript/Python and other similar language as they all provide
same kind of "thinking technique" and you have been programming using same
techniques your whole life.

Try to learn languages like Lisp and Haskell and over a period of time they
will change the way you think about programming and if something can change
the way you think about solving problem, it does matter.

~~~
zedshaw
I disagree with the idea that a language changes how you think. I think a more
accurate statement is:

"A programming language teaches you to think like the language's creator(s)."

If you look at it from that more anthropological lens, then you start to see
how you're not necessarily learning new ways of thinking, you're learning
something more like a new language around a group of people who think similar.

Once you understand that you start to see that none of these are any better or
worse than the others, and thinking like you learned some secret weapon at the
Church of Haskell will really just prevent you from exploring other cultures.

~~~
ankurdhama
Hmmm.. the "way to think" doesn't change as that would be like changing the
way human brain works. Still some programming languages allows you to think
more abstractly than others. For ex: You see a problem and in few mins you
come up with an abstract solution because the language you use provide certain
abstractions to help you solve problems. It is interesting discussion though
and in my free time I do try to find about how human brain thinks :)

------
blahblahhhhhh
> You can code. They cannot. That is pretty damn cool.

If it weren't for the last 3 paragraphs, I'd agree completely. But seriously-
who makes fun of developers anymore?

------
MRonney
You may find that people treat you harshly because you can create software,
maybe using words like "nerd". Maybe you will find that because you can
dissect their logic that they hate arguing with you. You may even find that
simply knowing how a computer works makes you annoying and weird to them. To
this I have one just piece of advice: they can go to hell. :D It was worth it
for that alone.

------
thewisedude
The author suggests to not get caught up on a programming language and use
that as just a tool. I think I agree. I also want to add that people get
caught up on using some other tools like vi or emacs or things like that. I
think they should not be taken too seriously either. Creativity and building a
useful product are the most important things of all.

------
stretchwithme
"Programming as an intellectual activity is the only art form that allows you
to create interactive art."

I will have to let the car designers know that. And the great chefs of the
world. And probably dozens of other artists.

------
redthrowaway
>People who can code in the world of technology companies are a dime a dozen
and get no respect.

I guess it just wouldn't be a Zed post without a little light trolling.

~~~
zedshaw
You say "troll", I say "honest".

------
rtisticrahul
Loved this article. 100 % agree with the point that the technology doesn't
matter, what matters is what you do with it. Simple and evergreen advice :)

------
cleaver
"The world needs more weird people who know how things work and who love to
figure it all out."

At your best you can become antibodies in the global cultural organism.

------
commieneko
I would disagree that programming is the only interactive art form. Drawing
and painting are quite interactive when you take into consideration the
interpretation that the audience must perform, and, more importantly, the back
and forth of artists as they see and react to each other's work with their own
work.

In that sense programming is _very much_ like the visual arts.

For what it's worth, I've been visual artist for around 40 years and a
programmer for around 35.

~~~
andrewflnr
First thing that came to mind for me was various forms of sculpture that
interact with people. Not far from where I work there's a shopping center with
fountains right in the floor in the middle of a little plaza, but they turn
off when people come close. I know there are other (better) examples. And
that's not even getting into performing arts.

