
Ask HN: Best way to teach programming - ryanmarsh
What is the best way to teach a programming language to someone with little to no software development experience? How have you seen or experienced it first hand?<p>Some of us are self taught, some learned in a classroom. What methods exist other than self teaching with book and a compiler and what have you seen work best? I&#x27;m not talking about something that can be mastered in a few hours like some of these &quot;teach yourself to code&quot; tutorial sites. I mean what is the best way to help people go from 0 to average?
======
ninjaofawesome
I was a frontend hobbyist a couple of years before I decided to pursue this
full time, and for me, I found that a bootcamp for fullstack web development
was the way to go to REALLY get up and running. I found that dedicating half
my day (or more) learning and coding in a classroom with like minds was the
only way I was able to go from a passing interest in this field to something
that I could actually see doing for the rest of my career (and for my own
benefit beyond that).

Having seen more than one person go through them and on my experience though,
not all bootcamps are created equal (in addition to how much work you put into
it). Mine was fantastic, I got lucky. So also be sure to do the research
first, and ask other (hopefully impartial) developers what their thoughts are
on whatever ones you're interested in.

If that's not an option, before I went to my bootcamp and I had some
confidence in my basic skills, I started to ask people who wouldn't have been
able to afford a custom built static site on their own if they'd like a free
one. It gave me practice with my frontend skills, they got a neat product, and
I could have a portfolio piece. Everyone was happy, and I met a lot of neat
people along the way. The TL:DR; on that is I'd suggest doing some practice,
then finding something that you'd like the build (because you need it or want
it), and then try building it with a mentor and plentiful tutorials.

------
mattbgates
To get the basics down, I'd recommend
[http://codeacademy.com](http://codeacademy.com),
[http://teamtreehouse.com/](http://teamtreehouse.com/), or a
[http://udemy.com](http://udemy.com) or [http://lynda.com](http://lynda.com)
course.

I'm self-taught as a youngster, just pure curiosity, started in Visual Basic
3.0 to 6.0, and eventually Visual Basic.NET, and eventually got into web
design (PHP, Javascript).. but I have no idea what would've been had I learned
it later in life. But my girlfriend has used codeacademy.com in the past to
learn the basics of javascript, html, css, etc.

While these are definitely good learning areas, the best way to learn is to
have a real assignment in practical application. In other words, it would be
coming up with a few applications that are useful.

To-Do lists. Reminder lists. Building a contact form. Learning how to use and
implement API. Learning how to connect and utilize a MySQL database.

As for what program to learn? It is best to look up whats in demand and what
is likely going to be in demand in the future. And for that, I could only
suggest learning Ruby, Python, or Java/Javascript.

Go, R, Swift, C++, C#, C, PHP are all languages that wouldn't steer anyone
wrong, either.

Learning the basic concepts of at least two different programming languages
and syntax are especially important. If you can grasp the concept of at least
two, you can most likely learn them all and it wouldn't be much of a hard
transition for any of them.

------
slucha
Do you mean you will be teaching someone or what you can suggest to someone
that goes and reads/does etc to get him to an average programmer?

For me it was always great to see results when learning programming (a
website, a mini app). My first contacts in a classroom environment with
programming where not successful as they where teaching more theory or how
something would work. I really caught on when someone showed me how to write a
real (very basic) app. What I was taught had a purpose and output I could
immediately see.

Since I started learning rails and used his tutorial I still think that
Michael Hartls Rails Tutorial is one of the best to get started. He teaches
you the proper concepts (TTD etc.) and techniques while keeping it simple and
still building something right from the beginning. Ah yes, and it is free
(railstutorial.org/book).

If you will be teaching it to somebody you could also use this book as a
guideline, make them work through it and help him with problems. He/she will
have a working app in the end and have learned the basics of web development
by then.

------
trysomechai
After you have some experience, go to a hackathon

Try to narrow your scope and come up with a short achievable idea. Then,
implement the project with the timeframe of the hackathon. If you have issues,
just talk to the engineers on-site from different companies. They are all more
than happy to help on architecture and application design questions etc. etc.

Somehow, we learn better under pressure and under fire. This is how I got into
python :)

