I'm interested in hearing from people who learned how to code because they were interested in developing one of their ideas. I'm at a point in the development of a Web application where my financial situation is preventing me from moving forward with it, and I'd like to make progress by learning how to code it myself. Is this at all feasible given that I know EXACTLY what I want to do with the Web application?<p>Can anyone give me advice on the best way to approach a scenario like this? Is there a way for me to scan through the books to find information relevant to my project?
I am hands-on founder, and I've have done quite a bit of coding myself for the project, although I haven't actively coded since college and never made a living as a programmer. As a mediocre programmer, I can tell you: no matter how much you know exactly what you need to do, you will be shocked to find out how deep the rabbit hole really goes. That has been my experience, but I think it's true for a lot of non-coders.<p>The building blocks all seem to make sense. All information and tools you need to get started are out there. You think you are picking it up pretty fast going through all the tutorials online, but when it comes to actually fleshing out a feature or design, you get bogged down in minutia. Keeping the coding skills fresh takes constant practice. I started out erring by as much as 300% on the time estimates for some of the tasks I had to complete. I am now down to underestimating by about 50%, which is a huge improvement in 6 months, and as clear evidence as any that the ramp up is long and the learning curve is steep.
I think you'll be surprised at how fast you can get something up. Just keep it really basic. Figure out the simplest thing you can do that will get people to sign up, build that, and then keep building more. Even if you build at an extremely slow rate, you can have something up relatively soon.<p>Start with a page that tells users what the site will do and collect email addresses while building the second part.<p>I coded in high school in 2003-2004 and stopped for 5 years or so. I came back and it took me about 1.5-2 months to build a full website that guides hs athletes through the recruitment process and builds them a profile. It took a lot of learning through errors and hours of trying to determine what was wrong only to find I was missing a semi-colon. Build with jquery & php. Now I feel as if the same project would only take me two weeks.<p>The more you code, the quicker it will become to build anything.<p>I built another website that helps you share what you're wearing and buy clothes through shopping api's. The core functions were built in about a week and a half and the rest of the time was spent perfecting the ui and building the graphic design.
It depends on what you want to build. Keeping it simple helps.<p>I designed my last web site in about a month: dev time + learning an MVC framework (CakePHP), not working full time. Prior background of php web dev (non pro). Also, the framework has evolved, and a lot of things I had to do by myself at the time are now in the core.<p>In the end, what took me time is: back office stuff (end of day jobs, tracking user actions), design integration (we brought a designer in, though), UI (caching and ajax calls to speedup the site, and effects using scriptaculous), having our email platform good to go through spam filters.<p>Also, even when it seems straightforward, it takes more time than you may think. And coding is just the beginning.<p>tl;dr: Depends on your requirements and experience. Also, next time you'll be faster.
How long have you been learning how to code? I can tell you right now that even though you know exactly what you want, you'll have to consider something called "dependencies" which is basically anything (technologies, libraries, or programming languages) you must do, learn, or build before you get what you want. I'm experiencing this right now learning to code and building something at the same time, and it's frustrating knowing a small feature takes a lot of work and figuring things out before working correctly.<p>As has been stated, get the simplest thing up and running, and iterate on that - using google and online communities as your guide.<p>Good luck!