

This is Why You Spent All that Time Learning to Program - signa11
http://prog21.dadgum.com/132.html?1

======
PaulJoslin
I understand what the blog post is trying to convey and I agree that
programming is a wonderful craft, allowing anyone who knows how to code an
amazing world of possibilities.

However, the way the blog post tried to convey this, it falls down for two
reasons:

1 ) If you were someone who had studied media rather than programming you
could film your own 'news' channel and upload it to youtube if you thought you
could disrupt the news industry. This being the equivalent of sitting in your
bedroom at home making a site or an app the way you want to. Thus this freedom
to express your ideas does not just apply to programmers.

2 ) Just assuming that the news industry team don't know what they're doing
and as a new hire media intern you would know how to fix it for them if only
they let you, is almost like being a new intern at a software house and
expecting to go in and tell everyone they need to change their methods or
practices because you know best.

I expect you'd get similar resistance to making them change, as in both
examples you as an intern have little experience compared to the people in
either industry. What from an outside observer (or new hire) may seem dumb,
perhaps is the most effective methods after years of A / B testing by the
people within that organisation.

~~~
frozenport
This article makes me wish HN had a downvote button for submissions - its some
upbeat crap with an example that is debatable. It caries neither novelty nor
intellectual investment.

SAGE has been used.

~~~
pa5tabear
SAGE? I know of the herb and the mathematical Python simplification.

~~~
frozenport
[http://dis.4chan.org/read/lounge/1195539988](http://dis.4chan.org/read/lounge/1195539988)

------
praptak
I got into programming as a kid because to me it was like electronics (I make
stuff and it works! I'm almost 40 now and still cannot get over the feeling.)
but without the hassle of running out of 2k resistors (you never run out of
Z80 assembly instructions!) not to mention some of the harder-to-get devices.

So I didn't think as big as the author (fixing world's issues) but the purely
practical aspect of the freedom he describes was enough to get me in.

~~~
gmac
That hits the nail on the head for me. Programming is inventing, but stripped
of the fiddliness, expense and irreversibility of tinkering with physical
stuff. Plus of course there's the Internet now, so if you make something cool
then you can share it with dozens/thousands/billions of others.

~~~
RafiqM
"Stripped of the fiddliness" \- have you ever tried to debug CSS?! :P

~~~
leoedin
Have you ever tried to debug an electronic circuit?

I'd say the "fiddliness" of electronics is orders of magnitude above any high
level software development. Turns out you have the wrong resistor? 2 day wait
for a new one. One slip of a wire? Chip's blown. 2 day wait for a new one.
Weird behaviour? If you don't have an oscilloscope you're completely in the
dark. Debugging CSS may be tricky, but there's a suite of tools available
which are yours in a few minutes. The power available in free debugging tools
is equivalent to a 6 figure rack of electronics equipment.

~~~
fnordfnordfnord
All of that is true, but it isn't as bad as it once was. You can buy a 100 MHz
oscilloscope for ~300 USD now; cheaper than an old used Tek, and better.
Resistors are so cheap, buy a kit of them. Since the internet, not only can
you get parts cheap, you can get them pretty quickly too; though, I have to
admit though, my progress on a weekend project was halted Saturday because I
had procrastinated ordering a few parts.

At least for basic electronic circuits, or even simple software projects, the
difficulty becomes apparent when you move outside your normal comfort zone.
Debugging even simple software is quite vexing to newcomers; I heard someone
say it's like a blind person learning to paint portraits (though the one who
said it wasn't blind).

>The power available in free debugging tools is equivalent to a 6 figure rack
of electronics equipment.

They always charged too much for that crap. Thank goodness for open standards
and cheap digital stuff.

------
benaiah
While this is true, and it's a great freedom that's not offered in many
industries, it can lead to an unrealistic "I will build the perfect system
from scratch in my parents' basement" effect. It's equally important to
realize how much we rely on the work of others, and how little we'd get done
if we actually tried to reinvent the news station/wheel/web stack.

------
atmosx
The argument is flawed. Every job has its own hassles, limits, dogma and so
on. This applies to programming also. You might end up working with a team,
which uses organizational schemes you hate, in a language that you dislike
using tools you consider obsolete (See Linus Torvalds famous talk about git).
In other situations re-writing the tool, is far from realistic, so you do
professional patching, even though you _hate it_.

It's an awesome thing to like your work. But it's unrealistic to expect to do
everything with your own terms and getting paid for that.

------
johnminter
I like the way Cosma Shalizi described it to aspiring statisticians:

INDEPENDENCE: otherwise, you rely on someone else always having made exactly
the right tool for you, and giving it to you.

HONESTY: otherwise, you end up distorting the problem to match the tools you
happen to have.

CLARITY: turning your method into something a machine can do forces you to
discipline your thinking and make it communicable; and science is public.

------
henrik_w
It works on many levels in programming. You decide the algorithm, how to break
down the problem in smaller parts, the method names, the variable names, the
layout etc. There is a lot of freedom, and you get to create things almost
every day. In addition, what you create is actually useful to somebody else.
Plus, you get to see how all the moving parts (figuratively) interact and
execute when the program runs (in a debugger, or following log statements or
similar). Quite a thrill. That's why I still love programming after all these
years ([http://henrikwarne.com/2012/06/02/why-i-love-
coding/](http://henrikwarne.com/2012/06/02/why-i-love-coding/)).

------
manimalcruelty
"You can fix things. You can make new and amazing things." \- yeah, but as a
front-end developer, I still have to program using messy Javascript. I want
packages, classes, public, private and protected, abstract, getters, setters
all running natively - without the hacks or superset/compiled languages (ie.
Typescript, Coffeescript, etc).

I miss Actionscript (not that it was perfect), but to remain commercially
viable (and for other understandable reasons in the Flash vs HTML debate that
I wont go into), I now write Javascript in a way not too dissimilar to how I
used to write Actionscript nearly a decade ago! Things could be better.

Ultimately, what I'm saying is that being a web developer is not all about
freedom, many concessions need to be made. I'd love the freedom to say f __*
IE. Forever.

We know there are better ways of doing things. But when it comes to the web,
we have no choice to wait until it as a unified whole catches up.

Errr... to quote: "So it's not likely I could just step-in and make sweeping
reforms".

------
huhtenberg
Apples to oranges, sorry. Creating an alternative is not the same as taking on
the original.

Sure, you can write a better SalesForce at home, but making it displace the
real thing is exactly the same effort as making a TV station adopt your new
newscast format.

------
qwerta
I dont like attitude that programmers have some sort of super powers. Sure you
can put your tiny script on github, but there are zillions of half baked repos
there (including mine).

To change local news you could start blog, podcasts or video tube channel.
Single person can bring down tv channel or corrupted major, this happened many
times before.

Internet is like amplifier. But sometimes it just multiples number of people
who will ignore you.

------
chuable
"You can fix things. You can make new and amazing things." This could and
should apply equally to teams as well as individuals working alone (albeit
taking different approaches to working).

What's interesting here is the comparison between achieving something as a
team/in an organisation and working alone, which is ultimately what the author
is advocating in order to gain certain freedoms. However, it seems to me that
one can only achieve so much as an individual and this includes effecting
change on a large scale because it takes many hands and cooperation to stir a
big pot.

------
ssreeniv
This is not entirely true. Social media & blogging have indeed provided an
alternative to TV news. It has actually changed the "entrenched structure".
Even established media giants use tweets or posts to spread information. How
many of us prefer tuning in to local news station instead of just logging into
fb/t/g+ to stay updated? These platforms have been built by programmers who I
am sure are happy about the impact they have created.

------
roarroar
>But if you're writing an iOS game, an HTML 5 web app, a utility that
automates work so you can focus on the creative fun stuff, then you don't have
to fall back on the existing, comfortable solutions that developers before you
chose simply because they too were trapped by the patterns of the solutions
that came before them.

This isn't really true at all. It's very difficult to go against the existing
standards. If you think the standards for the web are stupid then you're
simply out of luck. Back to the desktop with you. What about all the hardware
being optimized for C? How many people work in some language they hate because
there's money in it and they have to eat?

The systems we have aren't designed for high level programming. Right from the
start you are hobbled by this choice. Then someone decides to water things
down further by enforcing a high level language on anything running in the
browser environment so you don't even get your nice "raw performance" for the
things the hardware is actually good at. And this high level environment isn't
a a good one, even considered within the constraints set by the hardware! Then
there's C - an awful language even for the hardware tailored for it, but many
are stuck using it for one reason or another?

------
consonants
Funny that the scene for his analogy in the beginning ends with the image of
talking heads bantering about a fluff piece, and then he follows with a fluff
piece for programmers. The genius is in the mocking subtext.

------
christiangenco
Very well said! I made a similar point in a TEDx talk I have last year on the
topic:
[http://christiangenco.com/2012/12/01/tedxsmu.html](http://christiangenco.com/2012/12/01/tedxsmu.html)

The bit about not having to pay any regard for the way things have been done
in the past was particularly resonant.

