

Why I'm a Programmer - toddynho
http://nathan.ca/2012/12/why-im-a-programmer/

======
zxcdw
I am programmer because I am naturally curious and because I love creative
problem solving. What honestly pisses me off, is that these days programming
is way more boring than what it used to be. The paradigm has shifted from low-
level to high-level and as such we've lost steady, stable interfaces and
systems and moved to very rapidly changing playground which promotes dirty
lookups of stackoverflow and google for details and quick hacks over problems,
rather than coming up with creative, well thought solutions and superior
implementations to problems faced. I simply can't keep up. I love C because I
can say I am very familiar with how it works, with what it interfaces and how
set of libraries operate. And that has been for 10 years, and will probably
remain so until the end of this decade - at least. But working with things
like C in 2013 is about living in the past. The future is now. The future is
more rapid changing systems, less truly _understanding_ how things work, and
more and more just _looking up_ what's needed and then hacking it together.

I am afraid of change, because it requires me to move out from my comfort zone
to something which does not interest me nearly as much as what originally got
me into programming - understanding how a computer works and how to tinker
with it. These days there's no place for actually understanding systems when
it comes to modern programming tasks which mostly happen in the web space.

Makes me feel sad. What to do? Have others moved to something more modern from
mere bit twiddling and actually found the new ways interesting?

~~~
Peaker
It is entirely possible to move higher up to very HLL's and still have a very
deep understanding of how things work.

I have been using Haskell, a very high-level language for about 4 years now,
and there is so much _deep_ stuff to learn. Not superficial "playground is
changing" stuff, but deep, nature of computing and logic stuff.

The Haskell eco-system is very open, and the optimizers and compilers have
excellent utilities to look under the hood. This all makes it very possible to
_actually understand_ what's going on.

It is definitely harder than it used to be, because we're using more
sophisticated tools to solve larger problems.

~~~
batgaijin
I'm sorry, could you be more specific?

~~~
_ft
I started learning Haskell for the same reason that Peaker described. From
what I understand so far, Haskell is a very high level language which lets you
do more with less.

One of the examples that come often is quicksort which you can write in like 3
lines:

quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where
lesser = filter (< p) xs greater = filter (>= p) xs

But the thing is you still have to understand a lot of stuff before being able
to use it correctly. I think one of the most difficult (and interesting) topic
would be monads, there are tons of tutorials online if you're interested on
reading on it.

~~~
xentronium
It's not a quicksort. It's a quasi-quicksort, which is actually not quick due
to memory allocations.

Here's how quicksort looks like in haskell:

    
    
        import Data.Vector.Generic
        import qualified Data.Vector.Generic.Mutable as M 
    
        iqsort :: (Vector v a, Ord a) => v a -> v a
        iqsort = modify go where
                 go xs  | len < 2   = return ()
                        | otherwise = do
                            p <- xs `M.read` (len `div` 2)
                            m <- M.unstablePartition (< p) xs
                            go $ M.slice 0     m         xs
                            go $ M.slice (m+1) (len-m-1) xs
                        where len = M.length xs
    

Or something like this (u-u-ugly)
[http://www.haskell.org/haskellwiki/Introduction/Direct_Trans...](http://www.haskell.org/haskellwiki/Introduction/Direct_Translation)

At this point it's less for more.

I don't understand why they chose quicksort to show off.

------
endlessvoid94
"if I had chosen instead to be a lawyer, or doctor, or some other “accredited”
profession, I very likely would’ve helped a grand total of zero people in my
career thus far, and couldn’t for another five or so years given that I
(likely) wouldn’t even be in law or med school yet."

I get what he's saying, but that part is a little naive. You can always help
the people around you.

~~~
yen223
It's not just naive, it's incredibly arrogant. As much as I'd like to think
otherwise, doctors contribute a lot more to society than programmers do.

~~~
sp4rki
Arrogant? I think you missed the most important part of that statement.

"... couldn’t for another five or so years given that I (likely) wouldn’t even
be in law or med school yet."

You can become a "programmer" at 18 for example. You can't become a "doctor"
at the same age though - Doogie Howser excepted. He never said that doctors
aren't important or that he believes that programmers contribute more to
society than doctors do. He said that the path he chose enabled him to give
back earlier and in a grander scale than compared to the traditional paths to
become part of the doctors and lawyers of the world... And he is correct in
making said statement.

How about if next time you call someone arrogant, you make sure you didn't
leave reading comprehension out the door?

~~~
yen223
His point here is that being a programmer is better than being a doctor or a
lawyer because you can begin contributing at an earlier age.

Here's the "arrogant" part: for that point to be valid, one has to assume that
the future contributions of being a doctor aren't worth as much as the
contributions to software one made as a teenager. From my point of view, that
is simply not the case.

~~~
sp4rki
That is something that was not said or implied on the text in question. As a
matter of fact, the point given across has very little to do with how helpful
either one of us perceives a programmer's and doctor's "contributions" over
the course of their careers, but how there is no age limitation which stops a
person from "helping" others and how the "value" of your service is determined
by talent, discipline, and effort while not necessarily being attached to a
title.

Here's a thought, I come a family of doctors, lawyers, and architects (in
order of occurrence within the family), and I've achieved the realization that
thinking the "importance" of a person is defined by their profession is
incredibly misguided. Being a doctor does not mean that you'll save a life,
and being a programmer does not mean that you wont. Actually, there are as
many type of doctors as you have organs, diseases, and appendages, as many
lawyers as there are clauses in a EULA, and as many programmers as programming
language books... and all of them are _just people_ whose helpfulness will be
defined by what they do with their life's and not because one's a doctor and
the other a circus clown.

I'm not trying to be mean spirited or demean the work of doctors or lawyers
(or programmers for that matter), but you've stated that the article's writer
sounded arrogant because _for you_ his opinion was only valid if it followed a
specific train of thought that lead to a direct comparison of two stereotypes
- the lifesaving doctor and the cave-dwelling programmer - and I believe that
to be wrong. I know I'm being overly dramatic with my examples, but let me
finish with one small nugget: Who's "contributions" are worth more? Neil
deGrasse Tyson's or Dr. Robert Rey's?

------
emidln
I'm a programmer because I'm curious and lazy. I see a problem, do it once out
of curiosity (or because I'm being paid), then never want to do it again
(curiosity satisfied, now it's boring). Avoiding "over and over again" is what
keeps me from homicide, and incidentally, employed.

~~~
Adirael
This is the reason why I am a programmer too! I'm flirting with devops lately
and it's being so much fun.

------
Hawkee
I hate to be the one to say it, but I didn't feel very inspired by this post.
I felt the author could have been a little more modest about his
accomplishments. It almost read like a resume highlighting his biggest
development accomplishments. I don't think I can blame him though because I
was just as proud at that age. If you do programming long enough, and
particularly as a freelancer or independent, you'll become quite humbled.
There are moments of pride and accomplishment, but it can be very humbling
with all the competition out there.

~~~
mzarate06
I think citing notable accomplishments was important in supplementing the
point he was making. I also think that also allows us to relate better to how
he feels. E.g. would he feel as proud, and would we relate as much, if this
line ...

 _...software I've written has helped people capture >tens of millions< of
dollars of wealth. It's been run on >hundreds of millions< of computers._

... instead read ...

 _...software I've written has helped people capture >hundreds of dollars< of
wealth. It's been run on >tens< of computers._

I don't think so - scale of accomplishment change how we feel about what we do
and how we relate to the motivation of others. And I think that was the
rationale in citing some of his biggest accomplishments. I didn't take his
post as lacking modesty.

Point taken on the freelancing bit though (upvoted on that point ... I've been
a consultant for 5 years).

------
mckee1
I don't so much see myself as a programmer (and I'm not one professionally,
still at university) but rather an engineer. An engineer who works with
software, I love building software but the joy I get out of programming is no
different to that which an EE would get when building an appliance. It's the
actual building of something useful, solving a problem, that instils my love
of coding. I'm an engineer who has a passion for software would perhaps be the
best way of putting it.

------
demian
Programming is like Drawing.

Drawing the blueprint of an engine is not the same as understanding the
fundamentals of physics and engine design. And it's not the same as drawing a
portrait, a building or a landscape.

------
mcgwiz
> Writing the code is the easy part. I’d say code flows from my brain more
> fluently than English does.

There's a certain irony in this statement. Writing code that works is easy,
but writing code that clearly communicates a simple design to other
programmers is not. Much like the difference between rudimentary use of
English and that which is moving or persuasive. One is mechanical, the other
achieves multiple objectives and requires a mastery of empathy.

------
ruswick
I have a profound respect and reverence for people who pursue careers (or
anything, for that matter) because of an innate passion. Unfortunately, I
don't really feel that way about anything that could be considered or
performed as an occupation. Certainly not programming. For me— and probably a
lot of others— the allure of programming is in the intuitive ease that some
find with it, combined with the inordinately inflated salaries.

~~~
jebblue
>> For me— and probably a lot of others— the allure of programming is in the
intuitive ease that some find with it, combined with the inordinately inflated
salaries.

If you feel that you're getting paid too much to sit for 8 to 10 hours solving
problems by writing code into a machine and trying to work with a team and
trying to meet specifications and ultimately what the customer needs; you
should ask for a salary reduction.

~~~
ruswick
Why?

------
slajax
For me programming started as a means to an end. I am entrepreneurial and I
realized the www was a frictionless distribution method for many great
products and services. I was naturally curious about how things work so it was
easy to learn the skills. Now a days I get joy from solving and automating but
I try to remember that I was an entrepreneur first and in the big picture
hacking is still a means to an end.

------
jebblue
>> To put this in perspective, if I had chosen instead to be a lawyer, or
doctor, or some other “accredited” profession, I very likely would’ve helped a
grand total of zero people in my career thus far, and couldn’t for another
five or so years given that I (likely) wouldn’t even be in law or med school
yet.

That's my view, challenging and rewarding, that's programming.

------
conradev
I have also found that one of the motivations to program is to do things that
have not been done before. Everything you create is an innovation, in one way
or another.

Whereas if one is a doctor or lawyer, introducing innovations into the field
is much, much harder.

~~~
martinced
If you're a doctor it's much harder because a lot of innovations in that field
now require _both_ at least a doctor and a programmer ; )

~~~
yen223
You don't need a programmer to develop new surgical techniques ;)

------
swayvil
I've got some shit I want to make. There's some satisfaction in making
beautiful algorithms but not nearly enough to keep me slobbering over this
autistic sex-substitute roadkill. I program because there's some shit I want
to make.

------
eli_gottlieb
I am a programmer because it's the closest I could get to being a wizard.

------
aaroncray
chicks dig programmers

~~~
nodemaker
If this was reddit I would have upvoted you!

~~~
moccajoghurt
Reddit. I don't like that word.

