When someone says "I learned how to ride a bike over the weekend", the response is never "I don't see you doing tricks in a half-pipe, so you really only 'learned how to pedal down the street'. Don't call that learning how to ride a bike."<p>If "knowing how to code" means that you've built webapps, databases, embedded systems, mobile apps, operating systems, console games, and a compiler and mastered 19 programming languages, then very, very few people in world are coders.<p>Hacker News, stop being pedantic downers, and instead applaud someone for picking up a new skill in life (and trying to help others learn as well).
Finally, a "learning to code" article that actually mentions version control and its importance.<p>Of course it's an extra thing to learn when all a beginner wants to do is get something cool (often a website or game) working quickly. But what happens when that beginner wants to experiment? "Fail fast" is meaningless if those fast failures irreparably break that simple, cool website or game that used to work. Fail fast means the ability to reset (or even revert) or stash or branch and <i>keep moving</i>.
I agree that the title should be "Learning to develop web applications".<p>"Web Application Development" is only a subset of "Application Development" which is again only a subset of "Coding/Programming".<p>There are many kinds of application development - web application development, desktop application development, mobile application development, embedded application development, games development etc. So, web application is just the most popular kind of application development.<p>Also not all coding is done to develop applications. There is difference between a program and an application. Sometimes people code to write utility programs, e.g. shell scripts which isn't application.<p>I believe undergraduate courses should be designed to provide solid fundamental knowledge of computer science and how various fields of computer science relate to each other while postgraduate programs should provide specialized education.
I studied programming in college...and while I liked the assembly-code + controller projects, I wish there was more focus on web development...because the one thing that has gotten me excited about programming is the potential to share (i.e. brag) about my work.<p>Making clever paint/tic-tac-toe/sudoku programs in Java/C++ are good exercises...but I lost interest in programming when I couldn't see it being used for more day-to-day practical tasks.<p>One specific topic I wish had been taught was regular expressions. In my first year of comsci classes, regexes were in the optional chapters of the book. Knowing about them would've led me to do more data-processing/information-gathering type programming, which is the track I am on now.<p>Plus, they're just damn plain useful in every coding context, even for project code-search-and-replace.
Google cache copy:<p><a href="http://webcache.googleusercontent.com/search?q=cache:kdVysoZ_6XAJ:jimmy-li.net/blog/%3Fp%3D62+http://jimmy-li.net/blog/%3Fp%3D62&cd=1&hl=en&ct=clnk&gl=us" rel="nofollow">http://webcache.googleusercontent.com/search?q=cache:kdVysoZ...</a>
I actually do think the web is a good place to start, especially with a backend in python or ruby. You get to quickly see the results of what your doing, which will spur you to learn more.<p>I definitely do not think that books, tutorials or classes are the way to learn programming at first. The thrill of discovering the concept of recursion on my own really hooked me onto coding. I remember googling "a function calling itself" semi-hoping that no one else knew about this yet...<p>I did Neuroscience and BME undergrad, so I only had taken the 1 required class of Java (which I couldn't stand at the time, it was just too messy). I'm glad I didn't take more CS in college, it might have turned me off for good. Yes, once you get to where your fluent, I think classes (or books if your self-motivated) in algorithms, data structures and other hard CS are essential. But to get to that point, think of a creative project and try to build it, you'll really fall in love with the language you use, and you'll understand the real reason why people program: because it makes you feel like god.
Great post and a lot of useful information. Particularly relevant for me as I'm a noob starting out on my first project, much like described in the post.<p>I've followed a very similar roadmap in learning bits of html/css (highly recommend the Head First book), javascript, version control, ruby and doing Hartl's, 'Rails Tutorial'.<p>I didn't get a job at Pivotal Labs in SF like the author (which I'm guessing would be a pretty awesome learning environment) but I've managed to convince the 'Pivotal Labs' of the Philippines to take me in & provide mentorship ;) If anyone is interested I've just started keeping a log of each step along the way at <a href="http://www.ralphy.tumblr.com" rel="nofollow">http://www.ralphy.tumblr.com</a>. (Will update with more posts soon).<p>So far, it's been tough and I'm realizing how little I know in the whole spectrum of Rails, let alone web development. Having said that I'm already building stuff on the web I can actually see and show my friends, which is kinda awesome.
I am following exactly what this guy says, but it took me a long time, over three years, to finally settle on whats important for this kind of career. I revisited C so that I can keep up with git code and learn from it; I bought a Rails book,and I am trying, although very slowly, to do anything that comes to my mind in Ruby. This is not about Rails, its about a healthy shortcut. I was not lucky enough to read something like this sooner. This is excellent advice, and I commend him for saying it.
I have always wondered how much of CS coding knowledge applies to web apps and how necessary it is to take some of the killer math courses offered in university to be able to code web apps proficiently. And if there is that big of a difference between coding and web apps, then shouldn't universities and students be better off learning how to code web apps since they seem to be in dominant usage anyway?<p>Btw, I am not a technical person, hence the curiosity. Insights would be much appreciated.
I used the exact same approach, except I went with Django and DotCloud. I think Rails people have it even easier with better guides - and possibly documentation.
great article! I wish I had read this when I first started coding. I am sending this to all my friends that are now asking how they can learn to build web apps.
As someone in the process of learning Rails myself I absolutely agree with your blog post. Especially your admonition to begin working on a project of your own much earlier than when you feel ready. That is the surest way to reinforce what you may be learning through a tutorial.
Apologies for the site's been down. It's back up now: <a href="http://jimmy-li.net/blog/programming/how-to-get-started-in-web-development/" rel="nofollow">http://jimmy-li.net/blog/programming/how-to-get-started-in-w...</a>.
Sounds very interesting but I think the site is down. All I get is:<p>Forbidden<p>You don't have permission to access /blog/ on this server.<p>Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
The thing is... you probably also need rather high aptitude to make that much progress in 6 months. These blog posts never mention that cause the authors are too modest.
Learn Javascript follow some tutorials on jquery ;)<p>Think it's funny most people see javascript is the same as jquery.<p>Learn to code is the same a learning a framework?