

Business guy still looking for that elusive code monkey? Read this first. - stevencorcoran
http://blog.lawnstarter.com/

======
austenallred
I have to say, as a "business guy" cofounder who is finally pushing out his
first apps, that starting with Codecademy is probably the worst way to go
about things. I don't know how many times I started different Codecademy
courses and ended up saying, "OK, I can create a loop... now what?" That is
decidedly _not_ the first step in learning how to program.

The first step is learning how to use the command line, getting a text editor,
linking those two, and figuring out how to push something live. You can code
loops all day long, but until you have any practical implementation of that
(i.e. building even the simplest of apps and pushing it live), coding will
feel abstract and unreachable.

If I were to start over (I'm learning Ruby/Rails) I would start with a
tutorial (Michael Hartl's rails tutorial, Treehouse or One Month Rails), but
really I would use them all at the same time, because their emphases are
different and each picks up on parts that the other leaves out. Only once I
had "finished" a couple of apps following the tutorials (which cover
everything from getting a text editor to using github, pushing to Heroku and
connecting Heroku with a DNS) would I go back to Codecademy and learn Ruby.
The context of knowing what you can actually do with those snippets of code is
incredibly important.

And yes, as others have pointed out, building a simple rails app and putting
bootstrap on it is not the goal of programming, but knocking that process is
like saying "You shouldn't learn to count on your fingers because really you
need to multiply."

~~~
AndrewKemendo
Agree with this wholeheartedly. I started learning C++ back in 1997 with
"Learn C++ in 21 days" and other books. I quickly got burned out with building
simple print out programs and over the past 16 years have started different
languages in fits and starts.

There are so few one language projects that are worth using, that the single
language approach seems really outdated.

To me a much better approach would be to have learning structured around a
specific project type. In general projects fall into only a handful of
categories so I don't think it would be terribly hard to structure. For
example "Web commerce" (Javascript, CSS, HTML5, mySQL), "Machine learning"
(Python, Java) etc... You wouldn't learn all the details of a language up
front but you would get to your goal more quickly and have a
framework/template for future projects.

------
ef4
> "Get help setting up your development and production environments. In
> English, this means set up where you write your code and where you see the
> results of it. Setting this up is the biggest pain for us non-technical
> people. In fact, I think that it is the single most difficult thing in
> learning to code."

As a lifelong hacker, this is something its easy to lose sight of until you
try to help someone else get started.

Last time I needed to help a newbie get running, we tried
[https://www.nitrous.io/](https://www.nitrous.io/) and it was helpful. It
defers dealing with all the environment / sysadmin stuff until later, so the
learner can get positive feedback sooner.

------
haydenjameslee
Can't agree more with this advice. Everybody's talking about MOOCs,
CodeAcademy etc and while I used those platforms for sure, looking back it was
the experience that really helped me. The hours and hours of not knowing why
your code is not compiling and learning the hard way is invaluable - but
schools and classes can't emulate that well enough.

~~~
railsnew
I took my first software classes 2 years ago at the University and HATED every
second of it! That summer I landed a co-op where I spent 6 months (I was
invited back to mentor) learning Ruby on Rails and related technology. During
that time, I tried to throw up as many apps as I could for practice. Thos
included Rails apps, Cordova apps, JS apps etc...Those 'practice apps' landed
me my first starter position making the industry standard for a rails dev with
2 years or so of experience. I am learning WAY more now then I ever thought I
could and have built a hell of a resume over the past year with real world
experience. Online tools got my foot in the door. A year and a half later, I
am making an honest living and developing features that I thought would take
me years to master. I started with a single GOOGLE search...For me, it was a
mix. The experience of the co-op was the driver to what I have today though.

------
alooPotato
It seems like the development environment is the hardest part for beginners.
Seems like a niche that all the cloud development environments could go after?

------
excitom
Great advice, will this work for other technical professions, too? Say, brain
surgery, for instance.

~~~
shill
You don't need to learn brain surgery when you can just trade your brain
surgeon friend a six-pack of beer for their services.

------
vezzy-fnord
It seems a lot of people misinterpret "don't reinvent the wheel" as "if they
exist, use lots of pre-written libraries". End result is I see projects with
ridiculous numbers of dependencies.

Reinventing the wheel is very useful as a learning experience and to take a
peek at how things work behind the scenes. Often you may only need a portion
of what a certain library does, and it is perfectly feasible and correct to
implement it yourself.

Especially horrible is the message encouraging use of Bootstrap to style web
pages. The last thing web design needs is _more_ generic and blatantly obvious
Bootstrap layouts. It can be a useful tool, but most people use it wrong and
it very often leaves a bad taste.

Rather, the idiom one should follow is "Don't reinvent the wheel, but feel
free to refine or re-implement it, as long as you don't end up reinventing the
flat tire."

~~~
haydenjameslee
So are you saying that novice developers (i dont think the author would even
call himself that) should not use bootstrap and instead waste extra time
learning how to structure their pages? Its not hard to insert a 'pre-written'
bootstrap css stylesheet and completely change how a bootstrap page looks
while still taking advantage of the grid system etc.

~~~
vezzy-fnord
Learning how to structure your pages is not a waste of time. It's quite
essential, actually.

~~~
haydenjameslee
If your aim is to make websites, yes. If your aim is to make a website for
your startup, no.

