
Ask HN: Who should learn how to program? - Epitopes
I know my question might seem strange, it is not a traditional question of &quot;how&quot; one can learn to program but rather &quot;who.&quot;<p>Firstly, I&#x27;d like to introduce myself. I have been lurking on HN for quite awhile, the topics and conversation on HN are intellectually interesting. But I do not know how to program, nor do I know if I should learn.<p>I&#x27;m drawn to famous stories of programmers having a large influence on the world (i.e., Bill Gates, Wozniak, Zuckerberg. Etc), and having the ability to create this kind of impact is what entices me to programming. Thus, is programming for me? A person who wants to help change the world, or would I be only wasting my time (given my age [early 20s] and other priorities in life)?<p>Thanks
======
orionblastar
It seems these days everyone wants to be a programmer from all walks of life
no matter what subjects they studied or if they are a dropout or something
else.

I've worked with people who had PHDs in Computer Science and still didn't know
how to program and I often had to debug their programs. They would make
beginner mistakes over and over again.

I've also known people who dropped out of college and learned how to program
on their own and gained a lot of experience and were better than me. Until the
Dotcom age and requiring at least a bachelors to screen out applicants and
then they couldn't get a programming job anymore and went to work retail jobs.

If you want to know who should become a programmer, it is a person with an
interest in programming. Almost anyone can become a programmer, the hard part
is learning how to debug and write quality code. Not many can master that.

You will find many MOOCs about learning programming, but you won't find many
about debugging and quality control of code. When you get into a Hacker School
or Hackathon most of what you will write is sloppy code because you have a
time limit to get something done. Quality code takes a long time to get
correct.

Most programmers are faceless, their company owns their IP, and their managers
take credit for the code. Bill Gates and Zuckerberg are famous but had
programmers work for them that made most of the stuff. Wozniak wrote his own
code and designed his own circuits but was phased out when Apple got into the
Macintosh era.

Programming is really hard and stressful work, you'll have times when you
can't figure out what is wrong with your code and the clock ticks on your
deadline for the project. You'll ask for help and even Google search and still
not be able to figure stuff out. Then after hours of no solution, you'll
figure something out and make the code work. It is not for the faint of heart,
managers will treat you like something they scraped off their shoe, end users
will cuss at you when something doesn't work right, you can't fight back and
expect to hold on to that job. You have to be diplomatic about it. You have to
learn how to deal with stress and failures.

------
ankurdhama
Here is my pitch: Software is not just about Computers and Code. It is a new
paradigm(a new way of looking) for building any kind of systems. This idea is
so general purpose that it will help you in any area or domain you want to
pursue in your life. So yes, I would suggest go ahead and learn it, learn it
in terms of a new way of looking at systems, learn it as a new outlook.

The only reason Software has so much impact on the world is not because it is
some specific technology, but because it is a new paradigm and paradigm
impacts everything.

You will probably start with a specific sub set of programming, like web app
or mobile app and you may feel that it is all there is to programming. But if
you continue to program other kind of systems like microcontrollers or
embedded systems you will realize the true potential of it.

------
nostrademons
Impact on the scale of Bill Gates, Steve Wozniak, or Mark Zuckerburg is far
more about luck than about skill or choice of field. Sure, you have to be
pretty skilled and choose a fast-growing field to achieve that. However,
remember that the field of personal computing was tiny - barely existed, even
- when Gates & Wozniak got started. The reason we view them as having had a
large influence on the world is because computing as we know it largely grew
up under their companies.

Instead, ask yourself if you'd be satisfied with the kind of impact and
influence that, say, Paul Graham or John Resig or David Heinemeier Hansson or
Patrick Mckenzie has achieved. _That_ is eminently doable with hard work,
devotion to the craft, and smart choices.

And then ask yourself whether you enjoy the actual process of programming.
That's the most important thing. It's very hard to be successful in a field
that you don't enjoy, and even if you are successful, what's the point if
you're not happy?

------
drdeca
Try doing simple stuff with programming for a weekend and see how you like it.

If you don't like it, well, it's just 1 weekend. If you do like it, could be
worth trying more. If you aren't sure, could be worth trying more.

You don't need to take a class to learn to program. I've heard it said that
really, all programmers are self taught, even if they do take a class.

Programming is basically putting things together, or feeding things into each
other.

"Programming is like any other profession where you spend hours looking into a
box cursing yourself for not thinking more like a machine."-swiftonsecurity

A word of advice though: Don't think you can make the next facebook as your
first project.

However, try it out. It really doesn't require that much time investment to
try it, and it certainly doesn't require much monetary investment (you don't
have to pay anything except for the electricity you are already paying for for
your computer).

Just try it, there's very little cost.

