

Ask HN: How to teach a business person to program - mpiccino

I hear a lot of advice that if you want to start a company, but you don't know how to code, either don't bother at all or learn to code first. I used to fight this notion, mostly because I really wanted to start a company but was too worried that I wouldn't be able to learn to program even if I tried.<p>Yet now that I have a start-up (web-based), I feel the need to know how program more intensely than ever. I have a technical person on the team, but just delegating everything is starting to feel very limiting. I wish I could do what he does, and help out more.<p>So my question is, is it realistic for me to think I can learn, and how do I start? My undergrad background is in math so I have some familiarity with algorithms and thinking in that way. But I've never written a line of code.<p>Any books / courses you might recommend? What language to start with if my objective is ultimately to program for the web? Any advice would be awesome.<p>I know I open myself up to criticism by posting this, and maybe I sound like I don't have a clue, but really I just want to learn.<p>Thank you so much!
======
kloncks
The big thing to consider is that programming, like any other art or skill,
takes a lot of time to be good at. Even more time to be "great" at. Most will
agree that in order to be an "expert" in something, you'll have to dedicate
about 10 years to it. Obviously, you can achieve that in a shorter time-span
if you work harder/longer but just keep that in the back of your mind.

That being said, a guy with a background in math hanging around Hacker News
could very well easily learn programming.

I would start with general web markup: HTML & CSS, as they're (relatively)
easier to pick up and much easier to teach yourself (as you can look at source
code and what not).

If you want to learn programming, I say don't worry about the language that
much. What you'll find is that you don't really learn too much about a
specific language; rather, you will want to learn about overarching concepts
in Computer Science (iteration, algorithm, conditions, objects, functions,
etc). So, pick a language just knowing it's simply a tool for you to get that
material.

PHP's popular. So is Ruby on Rails or Python. After learning one and excelling
at it, it's not that hard to pick up the semantics of another language. I
started with PHP.

\----

Edit: Forgot book recommendations. For an absolute beginner, I think these
books are awesome. They assume you're starting out at the very beginning and
take you step-by-step, rather than just being a "language manual/catalog" like
most books out there:

\- PHP for the Absolute Beginner or Python for the Absolute Beginner

~~~
mpiccino
Thank you. That's awesome advice. Yes, I know it will be difficult and I
shouldn't kid myself into thinking I can learn in a short period of time what
really takes a decade to learn, but thanks for giving me somewhere to start!

------
zugumzug
I also wanted to learn to program and some friends recommended Ruby and Rails.
I can't tell you if it's <i>the best</i> but it definitely does have a few
things going for it.

1\. A robust online community. This is not to be underestimated, 98% of
problems I run into are solved by a quick Google search. 2\. A number of
strong tutorials and books, many of which are free online. I would link to
them but there are already good lists out there for the googling. 3\. Fairly
easy to understand. I came from literally no programming experience. I've had
a number of different jobs, but none was really computer related. My last job
was managing a bakery.

With all that said there are a few things I'm glad I did. First and foremost
you've got to have somebody willing to take the time to help you through when
you get stuck. Fortunately geeks love to geek out. If you find a friend that
will geek out and explain stuff to you, buy his beer as often as possible and
ask away. Second, realize that it is going take a lot longer to do what you
want to do than you wish.

------
mpiccino
Thanks for the advice, guys. I'll start with the HTML and CSS then... And then
Ruby on Rails?

