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!
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.<p>That being said, a guy with a background in math hanging around Hacker News could very well easily learn programming.<p>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).<p>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.<p>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.<p>----<p>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:<p>- PHP for the Absolute Beginner
or Python for the Absolute Beginner
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.<p>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.<p>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.