
Ask HN: Why did you stop learning to code? - beekums
I know lots of people who are interested in learning to code, but many lose interest very quickly after starting. If you can relate to this: why did you stop?
======
seekingcharlie
While I know HTML/CSS very well, I have unsuccessfully learned how to code
after many attempts.

I agree with another poster here - it felt like there was too much to learn
just to be able to get started.

I've tried to learn Rails for example, following Michael Hartls' step by step
tutorial, and even then I get stuck. Suddenly I'm lost with homebrew, updating
my PATH, rvm, gemsets, versions, etc. To build a simple website, I have to
learn about nodejs, bower, grunt, API's, databases.

Also, there is just something fundamental about the high-level of programming
that I feel is never explained in introduction tutorials. When I've tried to
learn Ruby itself, most tutorials start out with the syntax (integers, loops,
etc), whereas I'd prefer some explanation around how the code is processed to
the result. I know some basic Jquery and I am still confused at how it
actually works - how the "instructions" end up at the result in the browser.

I've tried the online courses but I struggle to learn through videos and I
just find that these courses never really get you to where you can actually
build something. I may just need a mentor or classroom environment.

With all of this said, I've just started a 4 month sabbatical and learning to
code is my top priority, so I'll see how it goes...

~~~
ChicagoBoy11
I can relate to your sentiment. But note that your problems have very little
to do with learning how to program, and everything to do with needing to
navigate the high buy-in tax of learning all of this tooling before first
building a simple site.

I HIGHLY, HIGHLY, HIGHLY recommend you give Steve Huffman's course on
"Introduction to Web Development" at Udacity at shot. Unlike virtually every
single resource I have found, Steve does a great job of explaining the basics
of the infrastructure of how a website works while you are implementing it at
the same time. Also, since he does it on Google App Engine, 100% of the
"tooling" you will need will simply be installing the app engine runtime. I've
found that it is a fantastic introduction to programming for the web. It will
give you a solid understanding of the basic infrastructure, and you will then
have a good mental model onto which you can slowly graft the many other tools
that developers use when making a site.

I felt exactly like you did - and in my case, I had even programmed some in
college but found it hopeless when trying to make a "real" product. Today I
weave between backend and frontend technologies, preprocessors for my styling,
grunt, etc. -- all of the stuff that I was put off by at first. And I'm
confident it wouldn't have happened if I hadn't taken that course first.

~~~
marktangotango
We built www.lite-engine.com partly to fill this need; learn web development
without admining servers or dealing with the backend language slash framework
holy wars. With our paas you create web apps with html, css, JavaScript and
sql. Great for learning these technologies an rapid app prototyping.

------
1npo
For me, I feel as though you need to have a vast amount of knowledge in order
to code anything useful or significant. You can't just learn a language -- you
need to learn a library, or two, or ten in order to finish a project. I often
find myself overwhelmed by the amount of information I need to take in and
process in order to complete a small task.

I've found myself looking to smaller and simpler languages and operating
systems in order to get around this, but it doesn't seem to help. Whether it's
Python on Linux or C in Plan9, it's the same problem for me.

This is probably a bad example, since it could be implemented in a simpler way
on a different system, but it illustrates my point. I wanted to write a small
instant messenger in Plan9. The most efficient way to do it is to use 9p, have
the clients mount a name space, and just read/write to a file. I have to learn
how to use 9p, which has a ton of data structures and functions, most of which
require other knowledge about the system. I have to learn the draw library,
which is also full of the same sort of things. More often than not, trying to
learn how to use a library demands further research in to other things in
order to understand what's happening.

All in all I feel like I'm being overloaded. The amount of learning I have to
do greatly outweighs my desire to persist until I can produce anything
valuable.

~~~
WWLink
The effective way to learn those things (especially with the larger library
languages) involves copious use of search engines and ctrl-f in books/manuals,
lol.

Some things you'll repeat enough that you know it by heart. Other things might
be really basic, but you'll still have to google it from time to time.

What does come nicely with time is you start to build up a mental model of
"hrmm, I want to do this, but I need an XYZ. I know in ObjC I used XYZ, does
Scala have that? Oh neat it has something similar!"

~~~
RUG3Y
This is the only way I've learned anything...repeating a few things until I
can't forget them. I'm by no means a brilliant programmer, but you can do a
surprising amount of things using a few simple concepts.

------
HcommaZK
To be honest: I didn't know _what_ to code.

I took a few 100/200 level CS classes and always was engrossed and did well,
and I even code at work (mostly VBA, some simple MATLAB, and a proprietary
language).

I started learning Android development but never finished it because I had no
idea that I really wanted to implement, no graded assignment to complete, and
no monetary incentive.

I guess the analogue would be that I've been paid to make tomato sauce and
I've been graded on stretching dough, but I don't have a pizza in my head that
I want to bake.

~~~
Nadya
+1,000 if I could. Honestly, this is my biggest issue with getting _better_ at
programming.

I don't want to reinvent the wheel - and everything I _want_ to exist already
_does_ exist and has an awesome implementation.

"I want to be able to categorize my music as if it were my job." \-->
[http://beets.io/](http://beets.io/) \---> "Oh, this exists and does
everything I could possibly need."

I want beets for arbitrary media (eg: tv shows, photos) but my current
solution covers my needs - I'd just be switching over from grepping text files
for queries to querying a database to obtain the same info...

------
youngButEager
Money. Money as motivator.

Was building hardware devices for musical pursuits (guitar effects) and my 1st
degree was in EE. You can graduate with an EE degree, having taken a course or
two or three in basic programming but it falls out of use and the depth was
never really there anyway, more of a "here's programming" intro.

When I tried to change jobs as a 'hardware guy' I had limited options, unlike
my software engineer friends who had a gazillion options it seemed. Makes
sense, hardware is built once, but a piece of hardware can have an infinite
number of programs written for it; thus one hardware engineer and an infinite
number of software engineers for one piece of hardware.

They (my software engineer chums) also made A LOT MORE MONEY than me.

Went back to school, focused solely on software. Best decision I ever made.

Money as a motivator to learn to code is questionable but I got lucky as I
learned to love it after becoming engrossed in it.

EDIT: Point being -- if you have a big enough "Why" you simply _will_ learn to
code. If you can't make money or have an enjoyable hobby doing coding, your
motivation will be to do something else more enjoyable. Everyone saying "I
couldn't figure it out so I quit" \-- BALONEY. You can figure anything out,
really.

------
tomlock
I now code.

In school, I tried to learn to code several times. But I always stopped, I
think because I didn't have any desire to build things that didn't make a
"product".

I learnt to code when I had something to make that would make my life easier.

~~~
acidburnNSA
I think I got lucky in 7th grade when my friend thought it'd be funny to phish
his cousin who I had a huge crush on. I had to learn some perl to do it. We
pulled it off and now I code all day for work and many nights for pleasure.
Romantically it did not go so well.

------
riprowan
I learned to code in the early 1980s and studied it in university in the late
1980s and early 90s. Since then I've ingested and forgotten countless
languages and technologies.

At a certain point I realized that I had spent more than 1/2 of my life trying
to instruct machines, and it struck me that this was a giant waste of the rest
of my short life.

Now I try as much as possible to be AFK and I'm very pleased with the results.

------
BenWS
I'm new to programming, and am attempting to work my way into a software
development career. While I'm continuing to produce a fair amount of code for
my portfolio, I sympathize with those who are saying the amount to learn is
overwhelming.

This by itself is enough a challenge, but there's also the question of whether
coding will be a thing in twenty years - given the recent advances in AI and
the question of whether jobs in general will be a thing after AI become
sufficiently advanced. I enjoy coding for the creative aspects and the pride I
feel when completing a difficult task - but lately my technophobia has been
winning over my affinity for the creativity involved in the task.

There's also the feeling I get that with the accelerating technology curve,
software development is becoming even more of a 'shapeless' profession as the
years go by - it's difficult to find a sense of identity when the technologies
I'm learning could be obsolete in a couple of years.

Trying to find a way around these thoughts, because they've really become a
barrier to myself really enjoying the learning process - but I think they're
worth consideration.

~~~
beekums
I started a CS degree in 2002. Back then there was a worry about programming
jobs being around due to out sourcing. Fast forward a few years and it turned
out that worry proved to be unnecessary. It turned out that communication was
a critical part of software development and that is hard to do with time zone
differences.

I think AI will also end up not being a huge concern, even in 20 years. Once
you learn more about programming, you'll learn how truly far off we are. One
AI researcher pointed out that worrying about something like that is like
worrying about overcrowding on Mars when we haven't even sent a person there
yet. In the mean time, there is actually a lot of really boring, grinding,
work in a programming job. Better AI will take that over more and more which
leaves more time for programmers to work on more interesting things!

------
personlurking
I've had 3-4 failed starts and (thus far) left it at that. They were all with
Obj-C/Swift, and my recurring problem was a) the amount one has to learn to
make something up to par and b) the disconnect between the text editor and the
product taking shape.

I'm a writer, to use an example. When I want to start a new article, I come up
with the idea, plot it out, do the research and start writing. All points
along that line are easy for me. From the start, I'm well aware of the
direction it's taking (and thus what the finished product will look like) and
within half a day I can already see it taking shape on paper.

In my life I've learned foreign langauges but I can't seem to think of
computer languages as something similar. It just looks like gibberish, even
though I've succeeded in making two simple websites and a two simple apps in
my dabbling phase.

TL;DR: it's half a learning curve issue and half a disconnect.

------
RUG3Y
I stopped learning because I am a Product Owner now. My job doesn't let me
write code often, and I have some big projects that have sucked up my "side-
project" time. At home, I've been focused on writing articles, and building an
e-commerce site that is using Wordpress, so no coding there either.

Eventually I may get back to it.

~~~
mrits
I'd never put a person in position as product owner that doesn't understand
how to develop software. You can certainly be successful without knowing how
to code but in my experience that is almost never the case.

~~~
RUG3Y
I agree with you. I think POs without technical ability have problems
communicating with developers and understanding what's possible/feasible etc.

------
djdelusional
This is something I relate to, as I first started getting into coding while I
was in elementary school. I started with Microsoft Visual Studio, and wrote my
first bits of code in Visual Basic. In high school implemented a DMX lighting
controller driver and built a simplistic binary search in order to determine
which address a given light dimmer was on in the local performance hall. I
built my first webpage in 6 or 7th grade, but the most amazing thing is I gave
up many of these early interests mostly because I wanted to "Fit in" in
highschool. I took on an interest in film and photography, and even did 2
years of college majoring in documentary film.

In my spare time I occasionally tinkered with Arduino and Raspberry Pi's,
trying out python and other things, but never really got very far.

The biggest change happened when I landed a job for a production company, and
5 or 6 months in their lead developer decided to leave. Remarkably, I was
incredibly unsatisfied with where I was in the company. I found that creating
advertising videos for people who didn't want to shell out the cash to do it
right was incredibly destructive to me and my creative drive. I saw an
opportunity to learn, and set out to try to learn to build smart phone apps,
as well as web-apps.

Im 2 weeks away from transitioning to a new job as a full-stack software
engineer. The road is long and hard, but I will say that living and breathing
code for 2 years as a full time job really helps you learn a lot really fast.
It was far more beneficial than taking a Computer Science program in college.

I realize this isn't really why I stopped but kinda how I became what I am
today. Yes it's incredibly confusing. Learning HTML, CSS, and Javascript, then
to find Node, Gulp/Grunt, Sass/SCSS, and Angular. Then to have React come out,
and learning all these libraries that are changing constantly, I totally
understand how getting into the web can be hard. The truth is many people
don't see the joy or power in it, and it seems too hard to even try. The key
is to have a reason to learn. To force you to learn.

Sorry for that long-winded response. :-)

------
CM30
In the past, I stopped coding a fair few times simply because I didn't see any
benefit to it. Everything I wanted to do on my sites already had an off the
shelf solution that simply worked a lot better than any home made equivalent
likely would have. So I just stopped and used the already made one (for things
like a CMS, blogs, wikis, forums, etc).

And it's also kind of why I stopped again and again. Because I just can't find
coding fun in itself, there's always got to be an 'incentive' or 'use' for
what I'm learning. Every time I'd consider doing something interesting, I'd
end up thinking 'what exactly am I going to use this for?' then stop again.

Maybe I'm just not imaginative enough.

------
SFJulie
At first I had a C64 and basic and only the manual. I could not do much with
just a listing of command and their use. You had to guess how to construct a
program from commands, as if you try to learn a language by using a
dictionnary. Not very efficient. But, I did repeated the begin and stop
experience with «learning the language from a dictionary» with a casio
calculator (422bytes code) and a HP48SX.

I dare say that I went way further with the HP, it was an awesome start at
learning programming, because it had all these data structures that where
close to being functional without the burden of being functional crap.

My first try at ASM was in the 1980's a «geek» told me it's easy : he gave a
floppy with an assembler and said to deal with it, that's all you need. Second
time 5 years later a coder gave me a floppy with pascal and nothing more. And
I was demotivated.

Then, I went to university, I had to achieve results in programming with less
than useful training (just C with the difference between pointers and
integers), and it went better. It was code or you'll not be able to graduate
so f*cking find a way fast.

Finally, in my master degree in physics I had an obscure option for interface
programming that was in fact 68000 asm programming. And I had a COMPETENT
teacher that explained us HOW computer worked, and HOW the code was working.

It unlocked so many keys in my brain I understood stuff ranging from OS, to C,
to ASM to even matlab mechanism.

Learning like in sport is made of steps and stagnation. And people often think
it is a bad thing. I think it is human brain normal behaviour, like strats of
learning putting each others on top of one an another.

I also would like to spot in the era of «online is all you need to self learn
anything» that it is bullshit crap: knowledge does not jump from internet to
your brain. A good «craftman» teaching you his craft with the intuition that
comes with is like a catalyser.

Long story short my 15 first years of learning are made of 4 distinct steps of
«stopping to learning code» and I think they were necessary, like both a trial
of faith and a necessary evil.

------
drops
I didn't stop learning to code per se, but I did drop it 3 or 4 times over the
course of a few years because the results were far too abstract to appreciate,
or to even understand why do I code at all.

Maybe I'm too much of a visual person, but unless I see why does a certain
peace of code exists - or should exist - I can't really begin to analyze and
perceive it properly. I still can't grasp the backend of the websites, for
example.

On the other hand, I easily grasped how CSS works as well as video game code
in GameMaker because you can actually see and experience what you make.

------
pawan-sns
Though I'm able to manage coding but I guess people don't know why they are
coding, how come it'll help the world

~~~
dragonsky67
I think you may be on to something here. I have always wanted to be a
programmer, but for a long time may attempts to learn a number of different
programming languages came to nothing.

This all changed when my wife finally got sick of me bemoaning my failure and
persuaded me to take on a part time computer science degree. Ok, there were a
couple of other reasons to do it, but in essence I was scratching an itch.

The courses I studied during the degree not only gave me a direction for my
learning, in that I had to produce the required program to meet the
requirements of an assignment, but I also learned that there is a lot more to
learning to program (or code if you insist) than just learning the semantics
of the chosen language.

I think there are a few things that those who want to learn how to code (ok
you win) need to keep in mind.

\- Programming big things is really hard. You are not going to be able to
build anything more than a fairly simple application without a lot of work and
experience.

\- You really need a purpose for learning. Without this, you will have
followed the bouncing ball on a bunch of exercises and still not have any idea
why you have done it.

\- You need to make mistakes. Without making mistakes you will again just have
followed the bouncing ball on a bunch of exercises. It is when you have to
find what you did wrong that you start to learn. This is not a typing
exercise, you need to understand what you are putting on the screen and the
only way to do that is to make mistakes and fix them.

\- You need to be willing to hack things around. Don't just do the exercises,
they are just typing practice. Take the code you have written in the exercise
and do something different with it. If you are playing with graphic routines,
see if you can make it into a simple game, or make it draw something
different. If you are playing with text, see how many ways you can put the a
set of words together that make sense. Play with your code, this is meant to
be fun. Remember how you used to feel when you were playing with Lego when you
were a kid and see if you can capture that same feeling. Ok, Lego was a lot
more forgiving in how you put it together, but you will learn a lot more once
you start playing with programming, than you will ever learn from following
exercises.

The parent comments that they have to learn a bunch of libraries to do
anything useful. Start with something simpler, you don't need to do a full GUI
application in the first week. See if you can make something that works just
from the command line. There is a lot of very useful programs that work just
by digesting a text file and producing some output. Yes you will eventually
have to learn a number of libraries, but remember you have to walk first.

------
marmot777
I think checking out Python might renew your enthusiasm. It's pretty damn
cool.

------
mattbgates
TLDR; Follow your dreams, follow your passions, and never give up. Keep having
ideas and making them a reality! The moment you give up is the moment your
projects will fail. Each day, you have a chance to seize your opportunity.

Longer story made shorter:

I never stopped learning though I stopped learning code for a long time. In
fact, I had taught myself programming at 12 years old. I had tried and tried
and I just didn't get it. It was Visual Basic 3.0. I kept opening it up and
trying new things, but always was unsuccessful. One night, I had a dream about
programming and designing applications. I woke up and wrote my first program.
It was just an eight ball that chose a random response when a question was
asked, but it certainly led me to write other programs throughout my teenage
years, mostly to interact with America Online.

At 18, I lost interest completely in programming and stopped. Almost a decade
later... from going to college to living in another country, I came home,
broke, with a college degree in psychology that wasn't getting me anywhere,
and I searched Craigslist, applying across the board to every single listing
that seemed suitable. I applied even in areas that I knew I had no chance, or
thought I had no chance, and one of those areas was a programming job.

I never thought I'd get a response, but this software company called me and
tested me on my knowledge. While I didn't get 100%, I got a pretty good score
and they hired me on spot. The job required knowledge of Visual Basic 6.0.
Never thought that would ever come in handy, but it did. After a few months of
training, I was back in the game.

Long story short... I worked for a tyrant boss that paid me far less than what
a programmer should have been making, and I ended up looking for other jobs.
Instead of searching for another programming job, I began my path into web
design and development. I honestly thank that boss for teaching me everything
I know. I suffered a lot with him because he was so arrogant and loved to talk
down to me, but if there was any great lesson I learned from him that I still
use today, it is that before you can code, you must understand what you are
coding.

That means: WRITE OUT EVERYTHING BEFORE YOU DO IT. EVERY PROCESS, EVERY
OPERATION, AND THE GOAL OF EVERY PROCESS. If you lose the vision of your
program, than you have no program. Keep the focus and you will always be
successful in whatever code you write.

I had already begun building websites, either for free or cheap so I decided
to apply for other jobs about a year and a half after getting that first
programming job.. I saw two jobs at the same time on Craigslist, and I ended
up going for an interview for both.. the latter one didn't hire me right away,
but eventually called me back, stating that they interviewed over a dozen
people and I was the only one qualified enough for major consideration, so I
ended up getting them both. Both were web design jobs, but one required 8 AM
to 5 PM while the other required 6 PM to 2 AM. I was also freelancing on the
side and had several paying clients. So I was pretty much working until I
passed out. I slept very little and never took a day off. Having student loan
debt, I ended up paying off my $40k debt in under 3 years. But the experience
I got in those 2-3 years was equivalent to give me 5+ years experience as a
web designer and developer.

One of the companies that hired me specialized in designing weather modules
that displayed energy data on kiosks for solar panels in corporate buildings.
The other one was a media company and paid me to design custom news web pages
for big corporations like Goldman Sachs, Walmart, Kelly Blue Book, Avon,
TripAdvisor, and many well-known pharmaceutical companies.

After over a year and a half of working non-stop, the solar energy web design
company laid me off. I was upset and it took me a few weeks to get used to the
fact that I no longer would be working at this job. Lucky for me, they had
offered me a severance package: 3 weeks paid vacation on the condition that I
would not file for unemployment. Little did they know, I had the second job,
so I couldn't file for unemployment. So I ended up getting paid for 3 weeks on
top of getting paid for my other job. That company ended up laying off
everyone 6-9 months later and couldn't even afford to pay their employees, my
former co-workers anymore, so they all had to sue to get their paychecks. It
was a blessing in disguise to be the first to get laid off.

Anyways, I still worked for the night company from 6 PM to 2 AM and had my
freelancing business. They would eventually give me a choice: move across the
country or get laid off. I ended up moving and currently still work for them.

As far as what I do now: I picked up some big clients as a freelancer in the
area who are making good money, so they pay me well to maintain their
websites. I also run a few of my own websites that managed to get popular, so
ad revenue kicked in and at least helps pay for the server and a few equipment
items, such as my laptops when they break.

My most popular website is
[http://www.confessionsoftheprofessions.com](http://www.confessionsoftheprofessions.com)
which primarily focuses on what people do for work; mainly understanding jobs,
careers, and the workplace. This attracts people from all walks of life and
helps me network with hundreds of people and companies every year and I get to
learn a lot of new information before it is ever released, as the website is
sometimes a company's primary source of information distribution.

I also learned PHP and MySQL databases so aside from my day job, at night, I
build web apps. Although I'm just getting into it, I'm hoping that it will
bring in some recurring revenue. I cannot reveal all the details of these web
apps at this time, but lets just say: I look around the Internet and if I see
something can be improved or offered at a better price, I build it and become
the competition.

One of these web apps is [https://mypost.io/](https://mypost.io/) which allows
you to create beautiful simple web pages in minutes with just a few clicks. No
registration, no account, no hassle. In addition to this, Google Analytics is
not installed to try and help users remain completely anonymous. This has led
to an increase of visitors particularly in Russia and China with the United
States just behind.

I am always in non-stop learning mode and certainly would love to find the
time to learn Ruby. For my job, aside from building custom news webpages, I
also try to predict and develop new web templates for what the Internet will
look like in the years to come, particularly how people might read their news.
I love my job.. but if you asked me a decade ago if I would be where I am
today, I would have probably believed it was never possible.

I will just finish with this: code is poetry and it is all about understanding
what people want in today's fast-paced ever-changing tech world. Sure, you
have Facebook, Twitter, Google, and other large networks and you might think
to yourself: What can I possibly make that hasn't already been made? The
advantage we coders have over the big companies is that we can specialize in
the small things and give the user a much more personal experience than the
big guys can. It is something they have lost over the years and that becomes
our advantage of developing new web apps. Never stop learning and find your
audience or your customers.

As a software engineer, coder, programmer, web designer, web developer, and
all the other names we have... there is no excuse to be unemployed, out of
work, or bored. You have work to do. Get started.

