

In defense of doing it the “hard way” - rfelix2121
http://accidentalninja.net/in-defense-of-doing-it-the-hard-way/

======
mattdeboard
I couldn't agree more with this article. I wrote a post about my personal path
to becoming a programmer, and about the most specific I got about what I
actually programmed was "stuff I thought was interesting." The most specific
advice I gave was "program" and "work hard." The comments I got both here and
on the article made it clear that people wanted specific tutorials and sample
projects they could replicate.

This misses the point entirely. The way to become anything -- at least a good
anything -- is to hard work and repetition. I can't tell you what to program.
I can't give you sample projects based on what I did because why should you
care enough about some dumb thing I made to extract _meaningful_ lessons from
it? Find something you think is neat or cool to make and make it.

When it comes to sports, or tradecrafts like carpentry/masonry etc., singing,
painting, etc., it's understood the only way to become a professional is to
bust your ass. It's the same way with anything in the world. There is no magic
bullet. There's no wand you can wave or wish you can make. You just have to
work. The number of people for whom this is a completely foreign concept is
surprisingly large.

------
bwarp
I think this comes down to "shit is hard" and "a quick tutorial isn't going to
make you an expert". There are too many people after instant gratification
these days.

After 10 years of writing code, I felt that I had a basic understanding of how
things were and what felt right and what didn't. Now on year 22, I feel I know
what I'm doing but still tread carefully.

~~~
greenyoda
Ten years seems about right. Peter Norvig wrote a wonderful article, "Teach
Yourself Programming in Ten Years" -- <http://norvig.com/21-days.html> \--
which is a reaction to people who claim that you can "Learn X in 21 Days".

Another well-known rule of thumb is that it takes 10000 hours of practice to
become good at something (e.g., programming, playing a musical instrument,
etc.).

------
brudgers
I'm finishing up the CodeAcademy Javascript class. I'm not a programmer by any
stretch, but over the past thirty years or so I've written a little script
here and there to solve a problem.

CodeAcademy won't turn anyone into a programmer overnight, though it might
start someone directly down that path - there is a lot of good stuff in the
exercises (even though in the end they are just exercises).

Personally, I had a couple of "Aha!" moments where the hands on nature and
immediate feedback made something I had read about many times just click
clearly into place (recursive functions and passing an object to a function).

The "official" pace of the course is probably a little slow - writing code a
little at a time is the worst approach and the exercises really don't have
enough meat to drag on for the many weeks of the official timeline (unless
meaningful homework is added to the course - in which case it might drag).

It's a good project; it's not going to make someone immediately employable
(particularly if it took them two months to complete it); and there is a lot
of room for growth of the product.

------
graeme
I'm learning to program using K & R, and using Codecademy as a supplement. I'm
finding it useful to see some of the same ideas in another language.

Codecademy (currently) won't teach anyone to be an expert programmer, but
they're just getting started. I can see it turning into something very useful
over time.

~~~
rfelix2121
I'm definitely not saying it isn't useful, just that people shouldn't be going
in with expectations of superhero coding ability when they come out the other
side. I'm sure it will become more and more useful over time.

------
keithpeter
As a non-coder, I'd like to have read a bit about the planning vs code
learning bit. For instance, the author states that "...I built the first
version of Hngry while working through the first edition of that book."

The book presumably dealt with Ruby, the libraries, the agile process, but how
did the author translate the interactions he had in his head into
objects/procedures/whatever in the code?

Abstractionacademy anyone?

~~~
rfelix2121
Actually, AWDWR contained a complete tutorial for building a Rails app. I
basically had an idea, popped open the book and instead of building the app in
the book, used the concepts/instructions to build Hngry instead. For instance,
I read about how to create new database models, and instead of making the ones
the book wanted, I made restaurant/user/menu item models instead.

------
LefterisJP
I admit I have had no experience with code academy so I can in no way be
qualified to judge it but what the post wants to convey is just simply true.

It's not the hard way, it's the right way to go about building something. You
build your knowledge while you are working on your project and learn from your
mistakes. This is how we all started and I suppose that the way to go about it
has not and will not change for a while.

------
toumhi
I don't really see the problem. Code academy lowers the threshold for people
to get to try programming. They can after that find their own ideas, select a
technology, and start to hack.

It's less daunting to do that once you have a better grasp of what programming
means at least. Some people think programming is wizardry you do in front of a
computer to make it do what you want.

~~~
rfelix2121
I wasn't trying to say that there's a problem with Codecademy et al, I'm
trying to say that there's a problem with going into it with the wrong
mindset/expectations.

------
jakeonthemove
That's not the hard way - it's the efficient way. Instead of learning
everything from the beginning, you learn only the stuff that can be
immediately used for your goal/task - fast, efficient and terribly unscalable,
but good enough for most people who don't actually want to be, for example,
programmers, but just want to build an app or something.

------
brudgers
Ms. Benjamin has had a couple of decades to realize success, CodeAcademy has
had a couple of months to do so. I doubt she was suggesting anything as
complex as _Agile Web Development with Rails_ to the children she introduced
to the topic. That sort of thing, I am certain came, much later and to very
few of her former students.

CodeAcademy makes tradeoffs, so do Zed Shaw's _Hardway_ books. Both however
attempt to help people avoid paying the entire dumbtax in learning to program.
I suspect that's what Ms. Benjamin strove for as well.

