TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Zero programming experience and badly want to learn. Where to start?

55 pointsby wanderboyover 14 years ago
I have zero programming experience, since I work mostly on the nontechnical side of start-ups. Ruby and other languages are extremely interesting to me and I am definitely interested in learning how to use them, but I want to have a basic idea of the time involved. Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?<p>The problem I have is that I have at least one idea that I'm really interested in fleshing out, and I'm wondering whether I'm going to have to sit on it for a year if I want to code the web app myself. Like I said, I'm usually on the non-technical end of start-ups.

28 comments

ezlover 14 years ago
<i>Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?</i><p>Comfortable? I don't know. Capable? a few months. Starting to flesh out your ideas? Within 1 month of starting an EARNEST effort to learn what it takes to write web apps.<p>I was in your shoes about 15 months ago (roughly).<p>I had ideas and wanted to be at least "sort of" able to flesh them out on my own. I had more than zero exposure to programming, but by most standards not much more. I had recorded and hacked up some VBA macros for work, had no idea what objects in object oriented programming were, and in college I had used Mathematica. I had just started using python and the longest script I had written was less than 100 lines.<p>I had ideas and I wanted to be able to execute (even poorly).<p>The general "I can't hack but I want to" theme comes up quote frequently on HN. There are a ton of resources for this. This link by by iamelgringo is the one I first read and it was immensely helpful, partially because it gave me time targets to try to beat. I more or less tried to follow this path.<p><a href="http://iamelgringo.blogspot.com/2008/05/teach-yourself-you-to-hack-in-6-9.html" rel="nofollow">http://iamelgringo.blogspot.com/2008/05/teach-yourself-you-t...</a><p>After you get started though it'll become clear to you what you need to learn and the process will take on a mind of its own.<p>Other resources from HN:<p><a href="http://news.ycombinator.com/item?id=190518" rel="nofollow">http://news.ycombinator.com/item?id=190518</a><p><a href="http://news.ycombinator.com/item?id=149482" rel="nofollow">http://news.ycombinator.com/item?id=149482</a><p><a href="http://news.ycombinator.com/item?id=127952" rel="nofollow">http://news.ycombinator.com/item?id=127952</a><p><a href="http://news.ycombinator.com/item?id=123903" rel="nofollow">http://news.ycombinator.com/item?id=123903</a><p><a href="http://news.ycombinator.com/item?id=90782" rel="nofollow">http://news.ycombinator.com/item?id=90782</a><p>If you're really at absolute ZERO on programming, I've been recommending Zed Shaw's python book:<p><a href="http://learnpythonthehardway.org/" rel="nofollow">http://learnpythonthehardway.org/</a><p>By lesson 20, you should be concurrently working on iamelgringo's lesson plan.<p>I am really happy on the python/django side, still awful at CSS, can barely deploy a server right, and use the reference manual all the time for jQuery. What you'll realize is that being comfortable has less to do with being able to sit at a blank terminal and typing than knowing how to traverse the documentation for each project.<p>People WANT to help you learn. As long as you make some effort to try yourself, hang out in the python, django, jquery rooms and ask questions whenever you need. I still do all the time. Spend 5 earnest minutes each question looking for the answer. If you keep asking questions that are answered by the first google hit, nobody will want to help. But if you're making an effort to self-learn, people will be very sympathetic.<p>Typing "terminal" above also just reminded be that learning to use linux and vim was an entirely separate battle. The process is the same. You'll keep hitting tasks you don't know how to accomplish. Google it and ask someone. I still suck with both, and I'm still learning.<p>Its a tough battle, I definitely recommend you reach out to people in your city, find startups and say "hey I suck, want a free intern?" (I did this). Try to sit in the same room as them once a week and hack. Having an immediate resources available to answer questions verbally is huge.<p>You don't have to "know" how to do all that stuff to be able to write apps quickly, you need to know where to find all the information.<p>I'm probably slow by most people's standards here, but less than a year after I started I felt comfortable with deploying a small weekend project. For the first 3 months, I was hacking 60+ hours a week, not because I felt like I should, but because once you start learning, you realize how much you still need to learn and you get obsessed. There's a sick satisfaction to banging on your terminal and watching your vision come to life, little by little. Every month you'll look back at your code and want to vomit. This is a good sign (I think?). Don't worry about memorizing anything, just worry about doing it more and more. The things that you look up a lot will stick and your production efficiency will improve.<p>Last week I spent 60 hours to produce a crappy MVP of a project I"m working on, roughly 2300 lines of code. I was on IRC the whole time asking questions.
评论 #1798604 未加载
评论 #1798576 未加载
评论 #1850416 未加载
techiferousover 14 years ago
If you've never programmed before, the effort would be comparable to becoming fluent in another language or becoming proficient with a musical instrument.<p>When learning programming for the first time, you'll be able to do some basic things pretty quickly, similarly to how you can learn basic phrases/words in another language or learn how to do scales/simple songs with a new instrument. But to get to the point to be able to code any idea you have into reality it takes much more time. As in years, not months.
greglockwoodover 14 years ago
I was in the same position as you a few months ago. I had an idea for YComb!, and I didn't know any technical guys well enough to be a technical co-founder, so I decided I was going to be the technical co-founder.<p>I would recommend picking up SAMS Teach Yourself HTML and CSS in 24 Hours: <a href="http://www.amazon.com/Sams-Teach-Yourself-Hours-Coverage/dp/0672330970/ref=sr_1_1?ie=UTF8&#38;qid=1287249172&#38;sr=8-1" rel="nofollow">http://www.amazon.com/Sams-Teach-Yourself-Hours-Coverage/dp/...</a> and O'Reilly's Learning PHP, MySQL, and Javascript: <a href="http://www.amazon.com/Learning-MySQL-JavaScript-Step---Step/dp/0596157134/ref=sr_1_2?ie=UTF8&#38;qid=1287249246&#38;sr=8-2" rel="nofollow">http://www.amazon.com/Learning-MySQL-JavaScript-Step---Step/...</a><p>Do the SAMS guide first, then O'Reilly. Do the examples, do the examples, do the examples. That's the most important part. Even if you only have a few spare hours per day, you can get through 3-4 chapters of HTML/CSS, but I would recommend only doing one chapter of the O'Reilly book a day, since it's a bit more to learn than the SAMS book. So, it should take you about 3 weeks to work through both of those, and have at least a competent grasp on web dev. From there you can probably make your own decisions about where you want to go from there.
评论 #1798382 未加载
frou_dhover 14 years ago
Zed Shaw recently made a nice free book for those with zero programming experience:<p><a href="http://learnpythonthehardway.org/" rel="nofollow">http://learnpythonthehardway.org/</a><p>That's not a path, but a start.
grovulentover 14 years ago
I started learning python in March of this year. I couldn't tell you how much time I've put into it - it's hard to keep track of.<p>Within two months I had my first rudimentary web app up and running. I used Django for the app itself and used linode for the hosting.<p>Now it's not a great app by any means. It doesn't make a real contribution to the world. But the experience was enormously satisfying and genuinely life changing.<p>One thing that astonished me was that I had to learn a whole lot less than I thought I would in order to actually get something done. One of my best mates has been coding in PHP for years and years and watching him made me think that the process of deploying a webapp was monumental. I thought - wow, I have to learn html, mysql, css, before I can even make use of my pythony backend.<p>But it's just not true anymore. There is so much free code out there - enormous amounts. It's a wonder to me now why everyone isn't coding. It's really only one level of effort removed beyond learning to deal with the shitty interface on over hyped product X you just blew your hard earned on.<p>Just over six months on from the time I started - I certainly don't count myself particularly skilled as a coder - not by any means. But no matter what I think up to do next, within a few days I've figured out how to do it. I kinda feel like there just isn't anything I can't do if I put my mind to it. As my confidence grows I come up with ever more ambitious ideas. It's a wonderful feeling.<p>So stop worrying about how much time it's gonna take you to get to your (probably myopically) perceived endpoint - and just get on with putting code to screen to see what you can do right now. It's a lot more than you think.
k3dzover 14 years ago
A must read before starting the journey.. <a href="http://norvig.com/21-days.html" rel="nofollow">http://norvig.com/21-days.html</a>
agentultraover 14 years ago
You can probably hack something out from tutorials, books, etc... but it won't be <i>good</i>. It'll work and seem impressive, but you might be surprised by security holes or server outages. Dealing with those issues will teach you other things... but it takes a certain amount of thick skin to learn in such a "trial by fire."<p>If it's your own time/money -- go for it.<p>However, mastery of anything demands sacrifice and dedication. If you want to go beyond practical application and become really good at something where you can create and contribute new ideas; it will take you years of work and study. You will have to crack open text books, take notes, read source code to old operating systems, review the important academic papers, constantly hack on new projects, and spend a lot of time developing poor vision, lower back pain, and RSI. Learn to fear the outdoors and make sure you find a partner who'll remind you to take care of yourself and stop sitting in front of the computer so much.
ze_dudeover 14 years ago
This says it much better than I can: How to Build a Web Site from Scratch with No Experience (<a href="http://lifehacker.com/5336113/how-to-build-a-web-site-from-scratch-with-no-experience" rel="nofollow">http://lifehacker.com/5336113/how-to-build-a-web-site-from-s...</a>)<p>It details how the author built mixtape.me starting with basically zero experience, and is quite worth your while.<p>The advice below uses Rails as the framework, but will work whichever one you choose. The steps stay the same: build a basic app with help (from a book, tutorial, etc.) to understand the framework/language, start building what you want to create and learn at the same time.<p>What I'd suggest is to obtain a copy of "Agile Web Development with Rails (4th edition)" (<a href="http://pragprog.com/titles/rails4/agile-web-development-with-rails" rel="nofollow">http://pragprog.com/titles/rails4/agile-web-development-with...</a>). Side note: it's not published yet, so make sure you get the beta version (an e-book version, and you'll be notified of updates as content is modified/added).<p>Then read through the book while building the example application in the book (a basic shopping website). This approach is great, because you learn by doing and you also get to glance at agile methodologies.<p>Once you've gone through the toy app and understood it, you'll be quite proud of yourself and will be able to build simple things already.<p>At this point, you should start to work on your own idea, it's much more motivating and you'll always learn the most when working on a "real" project.<p>To be noted: the Rails book does assume you have passing familiarity with Ruby (or at least a programing language), HTML, etc. If you need/want to learn programming first, you should probably also get an appropriate book on the subject, such as "Learn to Program (2nd edition)" (<a href="http://pragprog.com/titles/ltp2/learn-to-program" rel="nofollow">http://pragprog.com/titles/ltp2/learn-to-program</a>) or, if you're more advanced, the Pickaxe (<a href="http://pragprog.com/titles/ruby3/programming-ruby-1-9" rel="nofollow">http://pragprog.com/titles/ruby3/programming-ruby-1-9</a>).<p>Oh, and the reason I mention PragProg books isn't because I'm affiliated with them (I'm not), but because I have yet to get one of their books that doesn't live up to my expectations.
evo_9over 14 years ago
I'd start much simpler than any of the full-on backend languages mentioned like Ruby, Python, Java, etc.<p>Get the very basics down - it will be fast and easy and you'll feel good you are making progress. HTML and CSS - don't get bogged down in HTML5 or any latest cutting edge thing or another. Just the core for now.<p>Once you've got this down, which really is pretty simple stuff, I'd go into jQuery and Javascript. Both are fairly easy to approach though deceptively so maybe, with a ton of upside; and with the push that NodeJS is making, that may be all the programming you need even for the backend.<p>I don't have any good rec's on learning HTML but google it, there's a ton out there.<p>CSS I'd do the same, though I also really like <i>CSS - The Missing Manual</i> by McFarland.<p>For Javascript you'll be hearing a lot of <i>Javascript - The Good Parts</i> by Douglas Crockford, a must read if you are serious.<p>And jQuery, honestly is so fun/powerful/addictive, if you get a big of Javascript down you will be off and running. There are countless tutorial websites on jQuery and more books coming everyday. Bookwise it's hard to rec right now as the new version of jQuery just dropped today and everything is a bit out of date as it stands.<p>Bottom line, don't get caught up in trying to learn too much to begin with. Also, good UI Coders are hard to come by and you can always find a Rails/Python/back-end guy to help out until you get that stuff down too.
cool-RRover 14 years ago
My advice is: Before you think "how many months/years it will take me to create program X", just dive in for a couple of weeks to basic programming. The information you'll have from this experience will allow you to decide much more wisely whether you want to continue on this path or not.
jim_lawlessover 14 years ago
You're going to need to learn more than a programming language. You should really learn how web transactions work, the roles of the browser and web/app servers, browser-side markup and programming, ...etc.<p>I would recommend that you pick up the book "Using Google App Engine" by Charles Severance. The book teaches the reader how to build applications specifically for the GAE, but it contains very good introductory chapters for the person who is trying to come up to speed quickly on web development technologies.<p>The early chapters begin with explanations of the mechanics of web transactions. The next chapters deal with HTML and CSS. Another chapter in the progression then provides rudimentary Python programming instruction ( programs in this chapter are executed under a command-prompt ).<p>After these fundamentals have been covered, the GAE web programming specifics are introduced. At least one of the programs that had been an exercise in the command-prompt-Python chapter is then rewritten as a web application to illustrate some of the differences.<p>Development for the GAE itself is different than other approaches to web development, but I believe that if you become conversant with the subject matter covered in this book, you could more readily learn other web development technologies.
dpavlenkovover 14 years ago
I've been programming for probably 17 years, since high school, and just recently I appreciated JavaScript. For all its shortcomings, it's beautiful. If you'd just understand it, you would be able to easily understand other languages, dynamic or otherwise.
评论 #1798825 未加载
untamedmedleyover 14 years ago
1. If you don't already have familiarity with HTML and CSS, learn those first. I recommend a book called Learning Web Design: <a href="http://www.learningwebdesign.com/" rel="nofollow">http://www.learningwebdesign.com/</a><p>It teaches like a math book, with practice problems after each lesson.<p>2. Pick a language to learn. I had a C++ background that I hadn't touched since high school, so I found Ruby a little confusing. But it may also be because of the teaching style of the books I used...<p>Anyway, I switched to PHP and learned from Larry Ullman's book, PHP 6 and MySQL 5 (<a href="http://www.dmcinsights.com/phpmysql3/" rel="nofollow">http://www.dmcinsights.com/phpmysql3/</a>)<p>3. Going through both of these will probably take you 2-3 months if you're diligent. But once you're halfway through the second book, I'd say you know enough to start building something and using the PHP book as a reference.<p>What you'll find is that as you build things, you will learn a lot more about how to make your app come together.<p>Also, I disagree with the comment that it takes years to be able to do something decent with your newfound programming knowledge. Yes, it will take years before you can talk shop with the best of them, but as someone who has taken several languages (Spanish, Japanese, Latin) and played several instruments (piano, flute), I know it doesn't <i>have</i> take years to get past doing scales.<p>That's has more to do with ability to learn quickly and dedication.
japherwockyover 14 years ago
I'm teaching a dozen people or so how to build "websites" with HTML/CSS/Javascript/python. There's four intro lessons that take about an hour-ish, and then we review code once a week or so.<p>The idea is to give you the absolute minimum exposure you need to build what you want to build, show you how to look up the rest, and introduce you to some of the more abstract principles by correcting your code as you go.<p>Definitely still in Beta / Guinea Pig mode, but send me an email if you'd like to try it out: japherwocky [at] pearachute.com
alttabover 14 years ago
Start with more basic tasks like script automation and you'll be able to work your way up. I went like this (if its any help):<p>HTML, IT-Basic, Visual Basic, C++, Java, C, PHP, Ruby.<p>Of course there's small pieces of python, shell, more Javascript than I'd want to admit, and a couple of others.<p>But I first started writing HTML. This helps because it makes you think technically at multiple levels. First what you want to do (the goal), then the language needed (HTML), and why what you wrote (HTML) isn't what you want (the goal). Trial and error will get you into a program's mind.<p>Then I ended up using TI-Basic to program every math problem I would have to solve in high school into menu-based programs for tests.<p>Then I started writing VB programs (hangman, calculators) and even wrote a fully animated GDI game. It was slow, the VB code was absolutely terrible. Which moved me into C++ / DirectX for making games... etc.<p>So mainly, start with something small and consumable. Once you can eat that, hopping to the next, bigger problem seems smaller from where you are?
ashitvoraover 14 years ago
Don't think of it as learning a language. You will never be able to learn everything.<p>Best way is to pick a project. Any simple small project to begin with. And start implementing it.<p>Dont worry about anything (optimization and all stuff) as far as you are getting results.<p>If you are not able to find any Simple project, just try to implement a To-do list.
smutticusover 14 years ago
I'm a believer that in order to learn programming you first need to find a problem you want to solve. Then solve it. It really, really helps if there is someone who you can ask questions of. But it's not absolutely necessary.<p>Which language you pick is less relevant than finding the right problem to give you the motivation to want to learn.
cleshmdover 14 years ago
I've written a very basic introduction to Django, no programming experience is required, or assumed:<p><a href="http://www.instantdjango.com" rel="nofollow">http://www.instantdjango.com</a><p>It also includes a standalone Django development environment for Windows, so you don't need to waste time learning how to install and configure everyting. Give it a shot, and see if you can follow along. If you like it, there are plenty of great free Python and Django resources out there.<p>As an aside, I'm also writing an iPhone game programming tutorial for complete beginners:<p><a href="http://coconutcollege.net" rel="nofollow">http://coconutcollege.net</a><p>It's not done yet, but the first four courses should get you up and running with Cocos2d for iPhone. I should have the next two courses finished and posted within the next two weeks.
efedorenkoover 14 years ago
I'm trying to learn programming with zero experience too, and highly recommend book "Learn to Program" (<a href="http://pine.fm/LearnToProgram/" rel="nofollow">http://pine.fm/LearnToProgram/</a>). It was worth every hour even while my goal is to learn JS and book based on Ruby. Now I'm reading JS book with much better understanding of basic things.<p>Also, "Ship It!: A Practical Guide to Successful Software Projects" (<a href="http://www.pragprog.com/titles/prj/ship-it" rel="nofollow">http://www.pragprog.com/titles/prj/ship-it</a>) gave me a good understanding of development process. I think it's worth to read even if you are going to work on project alone.
jacobroufaover 14 years ago
Everyone's gotta start somewhere. My advice to you is to stop worrying about how long it's going to take you to do what you want. Just keep putting one foot in front of the other and working towards that (those?) goal(s) and you'll be there before you know it. If you've worked with startups before, just not the technical side, talk with some of the programmers you know and ask them to give you a lesson or two or even just direct you towards some good resources and cheat-sheets (these are a lifesaver for me). Just stop worrying about the time; you'll drive yourself crazy and it will feel like going nowhere fast.
jashkenasover 14 years ago
If Ruby intrigues you, there's no better place to start than with the Poignant Guide:<p><a href="http://mislav.uniqpath.com/poignant-guide/" rel="nofollow">http://mislav.uniqpath.com/poignant-guide/</a>
评论 #1797979 未加载
leifover 14 years ago
<i>At a university.</i><p>I can't tell you how sick I am of laypeople thinking they can just pick up one or two programming languages in a couple hours a week and get a job. These people end up with a very small skillset and no knowledge of what things they don't know or where they might learn those things, and therefore they're of negative worth to a programming team. You need the experience and breadth of at least topical expertise before you'll be of any use to anyone.
评论 #1798434 未加载
评论 #1798727 未加载
phamiltonover 14 years ago
<a href="http://www.greenteapress.com/thinkpython/" rel="nofollow">http://www.greenteapress.com/thinkpython/</a><p>This will get you a very good understanding of basic programming. After that, try <a href="http://railstutorial.org/" rel="nofollow">http://railstutorial.org/</a> if you want to learn rails. (while ruby is a different language, Think Python teaches concepts that apply is all languages. Python is just the transport.)<p>Good luck
Locke1689over 14 years ago
<i>Was it weeks/months/years until you felt comfortable writing an entire Web app with basic functionality?</i><p>Felt comfortable? Probably months.<p>Looking back -- was actually competent? I'm not sure that I am now but I'd wager 2-3 years before I knew enough to both code an app, debug said app, and secure the app.
zataraover 14 years ago
I understand the common HN view for just jumping in and trying to build stuff. Nevertheless, I wonder when would you consider a good time to attack some more complex stuff (e.g. SICP, PAIP, K&#38;R, etc)?<p>I guess it is the kind of thing you don't miss, until you go through them and really see what you're missing.
评论 #1798195 未加载
评论 #1798189 未加载
petervandijckover 14 years ago
Choose a programming language, and write an application where anyone can add links+titles, and people can leave comments on them. Doing something will make you learn a lot more than reading books.
LInuxFedoraover 14 years ago
I can also relate to this problem ? I want to learn programming from scratch. Should I start with C and then go for C++ and then to Python or which way ? For me difficulty of learning is of no concern, I can manage ? But how and where to start ?
nozepasover 14 years ago
It shouldn't take long. You should be able to do it in weeks time.<p>Just search the internet for something like 'ruby tutorial'
评论 #1798401 未加载
评论 #1798406 未加载