
It's not too late to learn how to code - tylerneylon
http://www.jeanhsu.com/2011/10/16/not-too-late-to-learn-how-to-code/
======
achompas
I saw my first Unix prompt two years ago, nested inside of this editor called
"Emacs." In my 23 years I had only programmed conditionals in Excel, and now I
was responsible for using this system to maintain some of the most important
econometric models in the world.

Fast forward to present day, where I'm writing linear classifiers in a Lisp
dialect I had never seen before this weekend. I've previously built scrapers
in Python, a website with Django, side projects with a bunch of technologies
(R, JS, SQL, Redis, MongoDB, etc. etc.). I enjoyed working on all of these
enough to start a graduate program in CS.

People start writing, running, painting, and working on other awesome trades
at all ages. Coding shouldn't be any different. Click on pg's link to
Codecademy, go check out MIT's introductory CS courses on OpenCourseware, and
don't worry about how old you are!

------
edw519
I always chuckle when anyone says, "It's not too late to..."

It's never too late to do _anything_.

And it's never too late to get good at almost anything, especially
programming.

My story:

    
    
      Age 21 - graduated college
      Age 23 - graduated graduate school
      Age 24 - got my first job programming
      Age 24 - touched my first computer (that's right)
      Age 27 - touched my first personal computer
      Age 30 - purchased and set up my first personal computer
      Age 31 - wrote my first framework
      Age 32 - did my first start-up
      Age 36 - did my second start-up
      Age 46 - build my first web page
      Age 50? - wrote my millionth line of code
      Age never - got as good as I wanted to be
      Age always - loved it!
    

A few other thoughts about OP:

 _It’s easy to think that it’s too late, because look at those people who
spent four years in college learning to code!_

Don't look at anyone else. That's your problem. Just look at the problem at
hand and your approach and solution. It's just you and your computer, mano-a-
mano. Pretty primitive. That's when you stop worrying about the negatives and
just go ahead and build something. And that's when you know nothing else
really matters.

 _It is difficult!_

Not really. Difficulty is relative. Start out by copying a "Hello World"
program and getting it to run. Then add one new capability and get that to
run. Then another. Then another. Always saving your last good version so that
you can go back and start each step over, just in case you really fudge things
up. Hey, you're programming! It wasn't that hard, was it?

 _I used to think I was cursed, because every time I tried to setup something
new (new development environment, tool, library, etc), something would always
go wrong._

There's a difference between systems administration (which all of this is) and
programming. I hate the former (which I view as a necessary evil and takes 1%
of my time) and love the latter (takes the other 99%).

 _Do you like it? ...do you feel a rush of excitement?_

Yes! Nothing else I've ever done gives quite the same feeling as experiencing
something I've built working for the first time ever. Happy dance!

~~~
simon
Yup. It's only too late if you don't want to do it in the first place.

While I started programming at 13, I didn't become a pastor until age 40. I
suppose I could have said that I was too old to add such a different activity
to my life, but I wanted to do it and dove in with enthusiasm. Was it
difficult? Yes thank you. It's a small congregation and I still have to work
the day job as a programmer, but coming up on five years now and we are close
to doubling the original size of the congregation (was just over twenty
people). It's the best job I've ever had and my dream is to eventually go full
time ... just gotta get Ramen sustainable!

------
Cushman
Not to argue with the sentiment -- you can and should always learn new things
-- but I wonder... How true is it?

In linguistics, the conventional wisdom is that native-language acquisition is
fundamentally different from non-. Anyone besides a small child will quite
likely _never_ develop native fluency in a new language, no matter how long
they speak it.

I often feel that way about programming-- I started learning C at an
incredibly young age, and while I sure wasn't very _good_ at it, I do think it
patterned my brain somehow.

I get the sense when I work with other developers, people who learned to code
in their teens or twenties, that there's something different going on. They're
fluent in the language, they probably know more about it than I do, but
they're _thinking_ differently. I'm certainly not a genius or a savant, I've
never taken a programming class in my life that taught me something, and I
don't brag about my code, but I often experience a near-effortless acquisition
of new languages, styles, even paradigms that other, talented devs seem to
struggle with. I'm sure there must be many other people out there who share
this experience.

So this is just speculation, but is it possible there's some underlying aspect
of code- _thinking_ which, sadly, it _is_ too late to learn?

~~~
franticpedantic
I am not a linguist, but I have been working on learning Portuguese, and based
on what I read the conventional wisdom among laymen is that native language
acquisition is different for children, but the research actually shows the
opposite. The only thing I've seen research suggest children are different at
is accents. Furthermore, I think many of us know Americans who immigrated in
their teens and have been here for a long time and really are
indistinguishable from native speakers.

I also am highly skeptical of your claim you are more native in programming,
but I started when I was in my early teens so I'm not sure I can comment.

I think your skill at learning languages rises when you are very young, and
you face diminishing returns after that, so adults never get that much better
at learning a language than when they were young. With other things you begin
later in life, you start at the bottom of the learning curve and improve much
more. So adults and kids are usually about as good at language learning,
unlike most things, so people think kids are magically gifted at learning
languages because they are about as good as adults. And of course, adults are
actually much better because they already know all the real world concepts
from their L1. I've also seen it asserted many times that children learn
languages faster, and I've only seen research supporting the opposite, so I
think your claim is just the programming version of that fallacy.

~~~
Cushman
I'll believe you've seen people saying that kids learn languages faster, but
I'm not :) There's a lot of research both ways, and second-language
acquisition is very similar to first-, but there's definitely something
different going on or we wouldn't have any idea how a baby can learn a
language starting from knowing none.

There's also solid evidence that learning two or more languages as a child,
while being slightly slower, sets you up better to learn more as an adult, as
well as just making you a cooler person overall.

That aside, though, I share your skepticism. I was just relating my
experience, and hoping maybe we could, you know, have a conversation about it
:)

------
mattdeboard
I didn't start really learning to program in earnest until I was 31. I got my
first internship the month before I turned 32, and was hired as a full-time
programmer 6 weeks ago making nearly double what I had been making in PR (not
to mention actually enjoying my work).

It is indeed never, ever too late to program.

~~~
brador
How did you get an internship at that age? Was it fresh off a grad program or
through networking? Which languages do you use?

~~~
mattdeboard
No I have no degree but am in school for CS. I had met the hiring manager a
few times at the local Python meetup and given a couple of small talks on
Python tools like Fabric. He gave me a shot via internship based on that and
the relative strength of my github repo.

That, and there's a serious shortage of programmers around here.

------
pg
<http://codecademy.com>

~~~
auston
<http://codeschool.com>

~~~
Hitchhiker
I would add to the ad(d)s here ;-) , become a mentee to || code with other
good programmers. Preferably ones with humility / kindness as much as skill.
Changes your life. Its like guitar.. you've got to find mates to jam with.

And read lots of different code from low-level to SICP.. from early 80s to the
present day. Get ( legit ) access to closed, commercial code as well.

Also, its really weird, but learning in these sorts is rather non-linear.. you
will feel like there is no hope for 10 months, then the 11th month comes and
suddenly you are freaked out about what you can do.

------
Hyena
People need to a good place to start and a map of how to continue. These are
almost never provided together.

~~~
Hitchhiker
That is an exceptional aphorism. Very true. I've not even checked the parent
link yet, but now will do so given this comment.

p.s. there is an additional "to" that you can drop, then its perfect.

------
pxstock
That first line ("Coding is sort of like a superpower; with it you can create
things that millions of people see.") exactly nails it for me. That's what
made me switch about fifteen years ago: I was a geographer (of all things :)
with a Master's degree and I was working for a research company. And then I
met the internet and instantly knew that I wanted to be building stuff there.
So at the tender age of thirty I did my first little scripts. Today I like to
think am a pretty seasoned web developer with lots of projects under my belt.
I could never ever beat the hardcore coders at the company I work for (I'll
always be the allrounder) but I have not regretted learning code for one day.
To be able to make something out of almost nothing and publish it all by
yourself is simply wonderful.

------
helen842000
I have always struggled with coding even though my University major was CS.

I feel like I'm missing so many basics, like a major 'a-ha' moment. I've done
the codecademy & codeschool tuts, the MIT and Stanford online courseware and
built a few bits and pieces.

When I build things I just sort of hack it together from whatever resources I
have available. I've got no idea of how to build robust systems from scratch.

I still don't feel even remotely capable. I think spending time with
established (and patient) coders would be really useful.

Even just videos of folks explaining what working environment they have set up
for themselves, some good practices and how they leave projects ready to work
on again would explain so much.

I want to balance the enjoyment to frustration ratio out a bit more! :)

------
5hoom
Programming can seem really daunting.

It feels like the bits in portal where you find a crack in the shiny polished
walls & go exploring in the grungy maintenance areas outside. There isn't
anyone guiding your hand anymore (for good or ill).

If your program doesn't work (or you can't even install the programming
language to begin with) you are often left with arcane, generalised
instructions or nothing at all. There's no button you can click that will fix
buggy program logic & sort out your unique mess of dependancies.

You need to be able to thrive outside the comfy embrace of the user ecosystem,
& it can be scary out there ;)

------
djloche
I think what bogs down many non-coding people is getting stuck on a problem
for perhaps tens of hours before figuring out a solution does not appear to be
worth it in today's age of instant gratification (especially if you're in a
time limited situation, where you only have 2-4 hours of "free" time each day.

------
kingsidharth
That does make sense but doesn't solve the problem. Why don't they learn to
code is not that it will take them long to learn. But what boggles them down
is the fact that it will take them long before they can reach where they
anticipate to.

If only one could _sell_ them the joy of coding.

Of course they are forgetting that it's fun right from step 1. (Read: The Joy
of Building)

Learning to code is like learning to write. You can do without it but learning
it opens a new world for you. Time to write "Ruby / C / XYZ for babies".

------
dhughes
It depends on the situation.

At 32 I took CS101 at a local university, never had the money to go before so
my first time in Uni, first formal programming training and felt like I was
1,000 years older than my classmates.

I had to drop out do to work problems (laid off), money problems and just the
level of stress from the social part of it. Each day I was soaked when I left
class I was so nervous just being in that environment I felt like I had just
run marathon.

Probably at least twice per week I was in the professor's office getting help.
Years later I learned most people in class just copied samples off the Web,
some assignments I handed in practically blank after being up until 4am trying
to figure it out then have to go to work at 7am.

My mark was 60% for the first part of semester that I completed.

I haven't touched Java since then but I did like it maybe a different
environment would have been better.

------
JoeAltmaier
All very encouraging, good comments, but I disagree.

Its easy to 'code', harder to design, debug, structure, deconstruct,
architect.

So sure, code away, make that webpage or service. But you know who's creating
the ecosystem you're 'coding' in? Somebody that started as a kid, dedicated
their life to computers and software, lives and breathes multiprocess automata
or whatever.

So everybody is right, sure, and there's lots of money to be made in coding so
don't be afraid to jump right in. But like athletics or physics or whatever,
either be a savant or study all your life, but don't fool yourself.

~~~
mattdeboard
Don't fool yourself about what? That it's never too late to learn to program?
I don't really understand the significance of who created the "ecosystem" I
program in. What's an ecosystem, to you? Why does it matter who created it?

I don't get your point but it sounds vaguely insulting.

~~~
JoeAltmaier
I find it explicitely insulting to claim 'programming isn't all that hard;
anybody can do it'.

Its Pollyanna to say "you can be a programmer! Anybody can!" without
explaining the layers of the onion. You can be a (passable) applications
programmer with a little effort. The rest takes sweat and study, sometimes
years of it.

------
bfe
Two outstanding books that will help anyone get started regardless of whether
they have any coding background are Learn Python the Hard Way by Zed Shaw, and
Land of Lisp by Conrad Barski.

~~~
DanBC
Learn Python the hard way is available online for free, or you can buy it.
(<http://learnpythonthehardway.org/>)

Here's the link for Land of Lisp. (<http://landoflisp.com/>)

------
julsonl
I've always admired people who started late in life and went on to succeed
more than child prodigies. I guess this is a biased opinion as I never truly
fell in love with programming until my last year in college. Now I'm trying to
make up for time lost (slacked my way to a diploma) by having a study and
coding regimen outside of work, taking online and offline classes. I'm also
testing the theory that a skill can be learned and mastered with enough
discipline and correct feedback by taking up piano (never touched an
instrument before in my life) and art. Hmmmm... sounds like a good idea for a
blog...

------
namzo
I've been a front-end developer for many years now and lately I've been
considering learning a programming language. I learned html/css first and
focused more on learning design softwares to improve my designs.

But the problem now is when I have an idea for an app, I can't develop it
since I don't know any back-end language. I have developers I work with but
they don't have the time to develop my little ideas. My JS is also weak. I'm
23, I don't think I'm too old to learn but it would have been easier a few
years ago.

I think the problem for most people (including me) is constantly thinking of
how long it would take to reach mastery.

------
keys1234
I first started learning programming with java/android 2 years ago. It took
full 1 yr (3 hrs per day, since i also had a full time job) for me to
understand the IDE, Object model and of course the android framework.

After the initial brush up with a language your coding potential will be
increased exponentially. I build a iOS app, XNA game within next 1 year, and
Currently in the process of creating a web application on rails.

------
rokhayakebe
Great post. I started at 28. Wrote my first DB driven site at 29. Now 30. With
9 out of 10 ideas that come to my head, my first question is no longer "Who
will build it for me?", but "How long will it take me to do it". The last idea
is something I just know I won't be able to code.

------
orionlogic
I think most of the anxiety comes from expecting the results very fast. In
this fast pace lifestyle, reaching a goal, like learning a programming
language is not a craftsmanship challenge but a huge motivational and focusing
challenge.

------
mekarpeles
Code hero is pretty amazing (primerlabs.com). Alex has managed to leverage
Unity to create a 3d game to teach programming.

~~~
rajeshm75
Krazy koder ( <http://www.krazykoder.com> ) is a great way to learn
programming by making games online.

------
HeyItsDiogenes
As good as it is to learn to code, much as is the case with any situation
where you'd normally hire a professional (doctor, lawyer, accountant) don't
kid yourself that you know everything once you can sling some code.

A good example would be how terrible the code the Google Founders wrote. Their
initial engineering hires had to rewrite everything from scratch.

And the Google Founders _did_ have a background that would lend well to
coding.

~~~
ebaysucks
A lot of web apps are very basic from a development point of view.

Sure you need a doctor if you are very ill, but plenty of people can self-
diagnose smaller problems using the internet.

