
Ask HN: Why do you like programming? - tomek_zemla
I am interested to understand why programmers are often so intensly passionate about coding. One obvious aspect is certain economic prosperity that the profession brings, but money is only (small?) part of it.<p>Programmers often work hard on personal and&#x2F;or open source projects in their spare time without any financial benefit. It would be difficult to find accountants spending weekends on their personal accounting projects or any other professionals seemingly always working outside of their paid jobs.<p>So, what is so special, enjoyable, engaging about coding?
======
gpsgay
I fell in love with computers almost 30 years ago. I was 6 and my cousin
connected his 286 or earlier PC to a friend's using a modem. I was soooo
impressed. I then started programming with a friend in his commodore 64 and my
zx spectrum using basic. We created our own choose your own adventure PC games
that way.so it's pure creativity enabling you to create amazing things using
your mind... I don't know... That's what I like about it... Plus you are
always learning.

------
Jugurtha
One definition of a problem is that whenever there is a gap between where you
are and where you want to be and you don't know how to cross that gap, you
have a problem. Programming allows to cross many gaps regardless of
importance, and since throwing something across the room into a bin can bring
a weird satisfaction to humans you can see how programming can bring them
satisfaction.

For example:

I was on a website that allowed people to comment. Their emails were
displayed. It had about a 1000 pages. It was a nice exercise to download all
the pages and extract the email addresses. Now I have 709 unique email
addresses of people using an accounting software from a specific country.

Another example was that I was looking up a job on LinkedIn (being unskilled
does that to you) and the Apply button disappeared. I started writing
something that requested the page every minute and looked for a specific
string that would suggest the job was available again. Then friends called me
to go out and I wanted to use my laptop's SIM card to send me an SMS when this
happens.

Yet another example is my frustration that in my country where most people
have prepaid phones, you can send airtime/credit to a subscriber only if you
are both with the same carrier, do I started writing a sort of impedance
matcher.

I'm not a "programmer" but I mainly do that because it's interesting. I've
never "shipped" anything or made a living from it but I try things (APIs,
OAuth2, Twilio, GAE, Docker, etc) just to have an idea how they work and not
to be overwhelmed when/if I have to build a system involving the different
pieces.

------
drdeca
It is creative puzzle solving, in a sense.

People like to create. People like to solve puzzles.

So, people like to create in ways that involves solving problems.

It is sort of like math in that way, but with the additional thing that it is
easier to make it do impressive "practical" things. However, it lacks the
timelessness of math.

------
mattbgates
When I was younger, I taught myself how to program in Visual Basic 3.0. I had
tried to learn, but I just wasn't getting it. I would open it up and just
stare at the screen for hours, clicking and messing around with everything.
One night, I went to sleep, had a dream about the code, woke up, hopped on the
computer, and wrote my first program. Sure, it was a program like a random
8-ball generator. You asked it a question and you got an answer, but it was
the start of something.

Anyways, when I turned about 19 years old, I lost interest completely and left
the programming world. I became interested in psychology and studying people
and that is what I went to school for and loved it, hoping to help people
understand their purpose and life, find meaning in life, and make money doing
it.

After I graduated, I went to English in another country for a year, and after
my visa was up, I returned home, broke, just having barely been able to pay
for my overweight bag. I remember feeling bad when my brother asked me to go
to a movie and I couldn't even afford the $9 it cost to see.

Anyways, I applied for jobs across the board on Craigslist, many jobs that
required a psych degree but not a single one replied. I decided I would go
into an area where I knew I could do it, but I didn't really have much
confidence, though I would try anyway: programming.

I ended up getting a job fixing bugs and enhancing autobody shop software for
a tyrant who took advantage of my inexperience, paid me a salary that I really
couldn't live on (I moved back home for a while) and I put up with it for
about a year and a half, before acquiring all the knowledge and confidence I
needed to apply for other jobs. I will say that while I may not have gone to
school for programming, I was certainly happy to learn what I did -- and
programmers use psychology everyday in UI/UX design.

I was also freelancing on the side and applied to several web developer jobs,
having gained real interest in that field. It took a few tries, but two
companies called me back, and luckily, one required I worked during the day,
while the other required I worked at home at night. It worked out great and
allowed me to pay off my student loans.

You can read more about my experience with that job here:
[http://www.confessionsoftheprofessions.com/the-
opportunity/](http://www.confessionsoftheprofessions.com/the-opportunity/)

From my love of psychology, I created
[http://www.confessionsoftheprofessions.com](http://www.confessionsoftheprofessions.com)
to still go after my dream of helping people discover their purpose -- though
I found a less formal way to do it, and although I make money from the ads, I
certainly could never quit my day job.

There is something about programming though that I never thought I would love,
wanting nothing to do with computers ever again when I left programming, but
realizing that it was just something in my blood. I love being creative and I
love working on user interfaces, making software or design more user-friendly.
I love troubleshooting and tinkering and figuring out why it works or why it
doesn't work.

I am always learning, always thinking of something new, always freelancing,
and always working on side projects. I ended up creating
[https://mypost.io](https://mypost.io) which is a content creation platform
that allows anyone to have a webpage up on the Internet in seconds -- no
registration or email account required. This project taught me a lot about how
PHP and databases work. Before MyPost, I knew nothing about databases, but by
the time I was finished, I completely understood how information and databases
worked. The more rewarding experience from MyPost is the fact that even
without any advertising at all, it is used by people around the world.

MyPost also taught me the great importance of UI and UX. I used my sister for
beta testing to see how hard it was to use. If my sister had any questions or
doubts about a feature, I revised it and made the website easier to use. If
she got stuck on something, I changed it, and we kept doing that until she
could create a post in seconds without questioning "how to".

I am now on to another side project that has to deal with affordable
communication services for both individual and business. I had to learn even
more than I did, as this will be the very first project where I am working
with subscription-based pricing and recurring charges, using Stripe. Always
something going on in and something new to learn in programming! I love seeing
the results of my work and using things built by my own hands, but I
especially love it when other people find it as useful as I do. That is what
keeps me in the programming world!

