

How I Learned to Code - suneel0101
http://viniciusvacanti.com/2013/07/30/why-you-will-never-learn-to-code/

======
Jgrubb
This is almost offensively linkbait-y. In the "most popular posts" sidebar you
have "Everyone at Yipit is Now Learning to Code". Why will I never learn to
code? You never get to that part.

By the way, I decided to "learn to code" at age 30, and I find it interesting.
Then again, I was also full of platitudes when I was in my 20s.

edit: the submission was retitled to something actually pertinent to the
article's content, rather than the title of the article "Why You Will Never
Learn to Code", which is shit IMO.

~~~
soneca
Exactly. I share a very very similar story with the author, execpt that I am
not successfull yet. His story had everything to inspire me, someone who
followed my exactly same path and made it.

Then, after reading it, I feel that he is more interested in creating a brand,
building an audience, than sharing his story and inspiring people. I think I
will have to find out some other "learned to code and created a company" role
model.

------
noonespecial
Doing "whatever it takes to make it work" creates profoundly different results
as opposed to "learning how things work".

~~~
ne0phyte
This is so true. I did an apprenticeship as software engineer (but already
coded for 3 years before that). In my whole class at vocational school there
was not a single person who was genuinely interested in e.g. the data
structures they were using.

Most people used java.util.ArrayList all the time but they couldn't answer why
nor did they want to know why a LinkedList, Map, Tree etc. would be better for
a specific case. While it is nice to have all those high level types and
classes available it's kind of sad that most people aren't interested in the
inner workings.

Edit: The various Java collection implementations aren't really "low level"
either, but you get the idea.

~~~
kazagistar
Pity they used ArrayList, it is kinda a shitty data type for a lot of use
cases. I would say that something like the Lua "map" (essentially, a resizing
associative array with some optimization to make array-like access efficient)
is more optimal as a "use this for everything" data type, due to greater
versatility.

------
kafkaesque
As someone who writes for a company, I understand the goal is to get a person
to read your article, but I feel uncomfortable by the disingenuity of the
title. It tells me one thing, then the article ends with the opposite
conclusion.

Sure, you got me to read it, but it felt too forced/contrived and salesman-
like.

Anyway, I'm a beginner in programming/coding/scripting. I take courses online.
After work. On the weekends.

I'm sure there is certainly a group of people for which what Vinicius says is
true, so in terms of that, it's good to have someone write this out. However,
it is more important to see/analyse if what he says applies to you.

What he says does not apply to me. I am 30 years old, have just started
learning to program, and my birthday is a week away.

I am genuinely interested in it. My mind always worked in ways which help when
programming. While I spent most of my life in the (liberal) arts, I think
there is a strong correlation between my excelling in my previous endeavours
with my capability to grasp programming concepts. I can't say my approach is
the only way to do extremely well in it, because, as they say, there is more
than one way to skin a cat. But I guess this middle-ground type of writing is
not very good copy.

All that aside, congratulations to Vinicius for learning to code.

------
dragonwriter
The biggest problem with this article is that it is -- and this is non-obvious
until you've read through the whole thing -- written with a very specific
audience in mind. To wit, the audience the article is directed to is _people
similar to the author in his earlier circumstance while he was still working
in finance_.

It is assumes that whoever is reading the article is similarly situated to
that earlier version of the author both in terms of career circumstance and
interests.

This is particularly clear in this excerpt:

 _I found that there are two types of people that power through the
frustration [...] [t]hose that are really intellectually interested in
learning to code. If you haven’t learned to code by now, it’s highly unlikely
you’re one of them._

------
billyjobob
All the good coders I've ever met had already taught themselves to code before
the age of 10. (Most of them were so passionate about it they went on to do
computer science degrees which polished their raw skills and taught them
rigor.) The question isn't how to learn to code: if you have the innate
ability you can't STOP yourself from coding the first time you encounter a
computer. I'm all for people learning new skills later in life, but to force
yourself to learn something you have no passion for just because you want to
'do a startup' is ridiculous.

~~~
ctdonath
Indeed; coding is akin to music, art, etc. in that it's not so much you learn
to do it, but it's just what you do as a result of you being you. Sure,
learning is necessary to grasp the tools and make them do what you want, but
once you have enough tools to get started (editor/compiler, guitar, paint &
brush) you just run with it. At age 10 Dad brought home a terminal and had me
type in a 3-line program; ran it once, and immediately wanted to change it,
already grokking loops and output formatting. Programming as "work" isn't so
much a means to an end as someone funding my needs so I can do what I can't
stop myself from doing: code.

I half expected the article to consider the sheer scale of the programming
stack: today, the conceptual layers from NAND gates & machine code to
graphical resource editors are so numerous and complex that I can scarcely
comprehend how any student of programming starting out these days any later
than grade school can absorb the material in any sensible timeframe.

~~~
Dewie
> Indeed; coding is akin to music, art, etc. in that it's not so much you
> learn to do it, but it's just what you do as a result of you being you.

That's pretty easy to say for someone who's dad seems to have had the same
interest. I was brought up by a mom that can't tell a bass guitar from a
guitar and a dad who doesn't really have an interest in music other than a
music 'collection' of 8 CD's from the sixties and who probably does not have a
sense of rhythm. Thankfully I had some peers who played music and parents that
bought me my first instrument, but actually practicing and getting good at an
instrument is (to me) a very tedious and deliberate form of practice that can
take a very long amount of time if you happen to be mainly interested in a
type of music that happens to be challenging to play - like what I was
interested in. Practicing programming for four hours is more fun and less
draining than properly practicing an instrument for one hour, for me. To keep
it short; low self-esteem, and especially a lack of social self-esteem, and
lack of discipline when it comes to practice; if my so-called "passion" for
music wasn't able to help me battle through those things, I guess it wasn't
much of an interest or passion to begin with, eh...

------
j4pe
Yes, granted, the title's intention is to inspire controversy, but it's still
worth pointing out that the author's two concluding avenues to 'learning to
code' \- all-or-nothing desperation and irresistible intellectual attraction -
are baseless. I'm confident that they're entirely false. Just more evidence-
free platitudes dreamed up by a fellow twenty-something. I'd wager that these
two extremes represent a very small percentage of real coders.

To answer anecdotal proof with anecdotal proof, I studied finance and taught
myself to build web apps. I didn't do it because I had to. I didn't do it
because I couldn't stop myself. I just forced myself to do it the same way I
force myself to memorize Chinese characters, the same way I force myself out
of bed every morning. Willpower isn't some mythical ability granted to the
anointed few. It's just asking yourself, what am I doing right now? Is it what
I want?

There's also a troubling perception of what 'coding' is behind this post and
many others. I write code for a living and I'm under no illusions about my
abilities. As James Somers pointed out in Aeon, I'm a kid playing around with
tools given to me by adults. Nobody like myself or the author is going to
build a Rails, a V8, an Ember, a Heroku. If I learned how to use a brush I
wouldn't call myself an artist. It's fine that we're becoming more abstracted
from the machine's reality - thank God DHH didn't have to use punchcards - but
with that abstraction should come a bit of humility about what we've actually
learned. Because for web development, at least, it's mostly syntax.

I'd better stop before I exceed than the original post length. If you'd like a
tl;dr, it is: fuck the author's position, my experiences contradict it, and
the author is confused about what 'real' code constitutes. (However, I
wholeheartedly agree with his suggestion to learn by building something you
yourself want.)

------
rayiner
What a load of crap. Coding is a skill, and like nearly every skill you can
learn it on the side. It's like saying that you'll never learn to play the
violin unless you quit your job and force yourself to play violin for your
supper. Indeed, it's even more of a silly assertion, because you can be
"pretty good" at playing the violin and still not be good enough to make
something out of it, but you don't even have to be that good at coding to do
something useful with it.

------
aylons
Yet another reason for teaching programming at high school. This is not about
learning programming, but about gaining a mindset that is not easily learned
unless you really need (or want) to get through it.

And people who does not understand how systems so central in our society work
is in the core of several recent political problems and conflicts.

------
benjamincburns
[Insert obligatory gripe about title/writing style here].

Moving on...

I'm a software engineer. That is, it's not just my job, it's a very strong
part of my identity. I learned to code before I was 10, and in some respects I
still haven't finished. However, I've had the honor of teaching a handful of
people to build software, and it's taught me a thing or two about how people
tend to pick it up.

If you're grabbing a "Learn [language] in [X time]" book, or similar, you're
not going to succeed. These books market themselves in the same way as fad
diets. Your expectations should be similar. That is, you'll probably make some
early progress, but without loads of discipline [1] it won't live up to your
ideals.

If you're like me, you know this already. You probably have a few of these
books on your bookshelf, but they're collecting dust as you devoured them
years ago before quickly moving on to better materials.

But most people aren't like me. Most people don't look at code as a thing
which holds intrinsic value. Most people don't feel an emotional response to a
clever quine or well-thought architecture. Instead, most people (rightfully)
view code as a tool. It's something that helps them achieve their end.

If you're like most people, you need a goal first. But not just any goal, a
goal that you _really_ care about. A master carpenter can show you you all of
the ins-and-outs of joinery, but that will (almost) never help you write a
book, mow your lawn, do your dishes, or achieve any other goal that doesn't
involve sticking two pieces of wood together. The same is true in software. If
you have no intrinsic motivation about the process (coding), and you have no
intrinsic motivation about the outcome (the thing you're building and its
purpose), then you won't succeed.

Extrinsic motivation isn't good enough. Writing code is really, really boring
when you don't care about anything to do with what you're doing. Saying "this
will somehow make me money someday" isn't going to get you there.

So to borrow another metaphor, if you don't care to swing a hammer and you
don't want to drive nails, why would you ever go searching for nail-shaped
problems when you don't even have a hammer anyway? Further, why would you bet
your livelihood on them?

1: If you had loads of discipline, would these books be nearly as appealing to
you?

------
vacanti
Author of the post here. Agreed with the general criticism of the title and
have changed it to "How I Learned to Code".

------
teilo
In writing we call this "The Genius of Desperation".

~~~
kranner
That is an interesting expression. If it's very established, do you have a
reference where I can read more about it? Google turns up nothing but a quote
by Disraeli.

~~~
teilo
I heard it from an old colleague and mentor of mine who is now long dead,
having lived well into his 90's. I've used it ever since. I'd never heard the
Disraeli quote before. Good stuff.

~~~
kranner
Thanks for sharing that.

------
bmac27
The time investment is key and the OP is dead on. I can speak to trying to
learn Objective-C last year on nights/weekends and not really learning the
fundamentals behind I was doing, despite being able to follow along with the
books I was reading and the rudimentary apps I was building. It requires a
full-time commitment, which is why so many of the development "intensive"
programs and workshops are time intensive (at least 8 hours per day) over
anything else.

Unfortunately, the time commitment becomes prohibitive to those that have to
keep running the job/consulting treadmill and can't fall back on an investment
banker salary (or similar) to fund their creative ambitions for a year or
more. That unfortunately is the real answer to the post's title.

------
awaxman11
As an investment banking analyst who was learning to code "on the side" for 6+
months and then finally decided to quit my job and learn to code full time in
January, I can't agree more with this article. Learning to code part time
doesn't work. You need motivation, and you need to dive into coding head
first. Zach Shapiro has some great tips related to learning to program similar
to this article:

1\. Nights, weekends are bad 2\. Forget codecademy 3\. Have a real project you
want to build

Check out the full article here: [http://blog.zackshapiro.com/want-to-learn-
to-code-start-here...](http://blog.zackshapiro.com/want-to-learn-to-code-
start-here/)

~~~
scrabble
Maybe this depends on your age. A lot of people learn to code as a child, and
at that stage you're really not doing anything full time.

Starting as a 10 year old, I began learning to code and spent maybe 20-30
hours / week on it combined with school and friends. All of that time was
during nights and weekends.

I think having a real project you want to build is a good start. I also think
that a keen interest in the topic and a passion for learning will overcome
most other obstacles.

------
mcphilip
I didn't really start learning to code, even though I had a year of CS under
my belt, until I found a problem that I wanted to solve. I was using
Audiogalaxy to download music over a 56.6K modem and I wrote a program to
monitor the download folder and move any file after it was completed in order
to prevent automatically sharing/uploading it to other users.

It wasn't as technically difficult as most CS homework, but it was the first
time I started thinking about programming as a tool to solve an actual problem
I was experiencing.

------
anuragramdasan
A LOT of people learn to code on a need to know basis. It may be a common
practice too but i really do not think it should be propagated as the thing to
do. This is a really horrible approach to coding. Searching for stackoverflow
will only lead to you getting a solution to the problem without having any
understanding of the problem itself. There is a good chance that if you learn
this way, you will find yourself heading back to stackoverflow when the
problem arises again and you forget what you did last time.

------
jeandlr
This piece is bound to push you back yet another time to see whether you
really have the guts to learn coding. The author simply shares his experience
and some advices. I think it's pretty straight and consistent actually.

------
chas
Never and ten years[1] feel pretty similar in month two.

[1] [http://norvig.com/21-days.html](http://norvig.com/21-days.html)

------
joshdance
TLDR - Don't just read books, build something that interests you. Some people
need large external motivation to learn to code.

------
ExpiredLink
Developing software != 'coding'.

