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.

Want to learn to code? Start here.

132 pointsby kineabout 12 years ago

26 comments

justjimmyabout 12 years ago
So I set up a VPS for the first time this week, here's how it went:<p>1. Shell? SSH? Wtf is this? Console? Huh? Why am I using something that looks like DOS, it's 2013! Where is the GUI and menus?!<p>So I learned about Shell/SSH, connected to my server, root and all that stuff.<p>2. Navigating folders and directories - dear god, this was a nightmare. I never used 'cd \' since '98 and that's only cause I wanted to run DOS games.<p>3. Kept seeing all these commands with '-' that makes installing extensions seem oh so easy! I wanted APC for PHP, stared at this page (<a href="http://pecl.php.net/package/APC" rel="nofollow">http://pecl.php.net/package/APC</a>) for an hour, trying to figure out what to do. Googled like mad. Searching for <i>anything</i>.<p>Learned about "pecl install APC", nope no luck. Then I was told to compile it from source. Yeah, I know <i>exactly</i> what that means! Spent the next 4 hours trying to understand why phpize wouldn't work!<p>Oh, I wasn't doing it from the right directory. -_-<p>I mean, I'm slowly beginning to see how it all fits together but none of the education sites teaches you this stuff!<p>It's like learning cooking recipes when you don't know how to turn the stove on, or what a stove even looks like. Or what's the difference between gas and electricity stove, how to turn on the tap to get water, etc. You learn a great recipe, know all the ingredients and the cooking time down to the second, but when it comes to use the tools and actually cook? Nope - cause I don't know how to turn on the stove or know what a stove looks like! (I know this is an extreme analogy)<p>I wish tutorials would start with projects and setting it up from scratch. If you're going to show me how to do something localhost, you have to show me how to do it on a server (and set up) as well or else I'll never be able to make that connection. (Well not never, but makes it harder)<p>Oh, editing files in the terminal is a blast too :P <a href="http://amath.colorado.edu/computing/unix/vi/" rel="nofollow">http://amath.colorado.edu/computing/unix/vi/</a> This saved my life that day.<p>So…I definitely vote for teaching the environment before programming.<p>PS: I did eventually install APC…after an entire day :P Now I'm trying to find and learn about setting up master/staging/production (and what it all means).<p>Edit: Just to give some context of why I needed VPS - I wanted root access so I can make a wiki have clean URL (rewrite) and figured why not, learn about VPS. Then that's where I realized I need to learn 10 other things to do this one single thing. The APC was a suggested caching option to improve the site, and trying to do that also needed me to learn more stuff. So it's all kind of ties together when you're trying to accomplish a (seemingly) tiny thing.
评论 #5470142 未加载
评论 #5470126 未加载
评论 #5470588 未加载
评论 #5471499 未加载
评论 #5475426 未加载
austenallredabout 12 years ago
As a marketer who has been trying for some time now (I'm too embarrassed to admit how long) to learn how to code, I've heard this advice <i>a lot</i>. Here is my issue with it.<p>Everyone says, "Just pick something you want to build, and learn how to build it." I don't know what I <i>want</i> to build, because I don't know what I <i>can</i> build. That's like taking someone who says "I want to learn calculus" and saying "Well just think of a problem you want to solve."
评论 #5471700 未加载
评论 #5471657 未加载
评论 #5471646 未加载
cuppyabout 12 years ago
I'm one of those people who have been trying to learn how to code, and I did start out using Codecademy. I quickly figured out what you're saying here: it kind of sucks. It was helpful for making me think about things with a programmer mindset and also helped teach me syntax, but I completed the entire JavaScript and Python tracks without any clue how to go on to make my own project. Also, it had so many bugs that half the time I ended up checking the Q&#38;A section and just copy/pasting code that worked.<p>On the contrary, I'm now doing One Month Rails, a $20 course from Skillshare. The very first lesson taught me how to set up Git, get Ruby &#38; Rails all set up on my machine, created a new project, and deployed it to Heroku. This was already a world more helpful than the Codecademy lessons. (I'm blogging about it here in case anyone is interested: <a href="https://cuppycode.wordpress.com/" rel="nofollow">https://cuppycode.wordpress.com/</a> )<p>Next I'm going to go through the Rails 3 Tutorial. If there are things like this (project focused, help you set up the dev environment) for Python, could anyone recommend?
评论 #5470000 未加载
评论 #5470024 未加载
评论 #5469964 未加载
aviswanathanabout 12 years ago
As someone who went from design (Photoshop) to frontend (HTML, CSS, JS) to backend (Ruby), I can totally vouch for ditching the 'one-stop-shop' sites that claim to be able to teach you everything about programming. In my experience, the most important thing to do is fork, break, and fix. Only if you immerse yourself in programming are you able to understand and start applying the concepts.<p>Also, I think a huge skill for any programmer is being able to search and find answers quickly and efficiently. It sounds silly, but being able to quickly Google search for a particular answer or abstract a StackOverflow question to apply to your situation is huge when getting started because those are the resources you come to use all the time when you're actually building a product.<p>Just my $0.02.
评论 #5469826 未加载
hkmurakamiabout 12 years ago
<i>&#62;1) Nights, weekends are bad</i><p>Not sure how I feel about (1) since that's the maximum most people can afford to put in (they have to pay rent, etc) and I'm ambivalent about telling them "your max effort isn't enough. You have to go all in". I agree with the premise but I'm really not sure how practical it is in practice.<p>That being said, love the rest of the post.
评论 #5470391 未加载
评论 #5469840 未加载
评论 #5470042 未加载
darrellsilverabout 12 years ago
"Have a real project you want to build" and "You have to throw yourself in or you will fail." are spot on.<p>At Thinkful (<a href="http://thinkful.com/" rel="nofollow">http://thinkful.com/</a>) our students spend more than half their time on projects they start from scratch, using real tools for exactly this reason. As a result they have 10x the engagement and completion rates vs other online ed tools (MOOCs et al).<p>Failing is learning, but failing is tough. We make that easier.
rachelbythebayabout 12 years ago
I've been working on something which lets people follow along at their own pace and see exactly what goes into building a project. It involves a fair amount of just plinking away at a text editor and then compiling it and giving things a test run.<p>I set it up to show my sessions including any little lags, typos, or whatever else I might make along the way. The idea is to show how a real person works at this stuff, and to encourage other people to give it a spin at their leisure. To that end, I have a pause button, variable speed playback, buttons for jumping forward and backward, and of course unlimited restarts. All of this happens in the browser, and it's just text, not video, so it's pretty quick.<p>I use my own favorite text editor and build tool, but anyone so inclined can certainly use their own favorites and it will work out just the same. I try to twiddle a few things here and there to show what sort of differences they make in the end.<p>So far, people really seem to dig it.
评论 #5470894 未加载
mattangriffelabout 12 years ago
So my One Month Rails class is the biggest class on Skillshare at the moment (5000 students) and I can't echo this point enough:<p>"Here's why Codecademy doesn't work in the long term... You don't know how to set up a development environment. Any time you have the slightest inkling to build something for yourself leveraging what you've learned in Codecademy, you can't and probably don't know where to start."<p>I'm all for encouraging a solid understanding of the syntax of code, but it's a totally different skill set from building web applications – which requires an understanding of topics like MVC, authentication, authorization, deploying, and using 3rd party libraries (and which to use).<p>This is the kind of stuff people want to learn when they talk about learning how to code and most sites bait and switch them into learning loops, variables, and functions.
evantahlerabout 12 years ago
I can't for the life or me remember who said it, but:<p>"Learning to code is a try{}catch{}. Always be prepared to handle things going to wrong, because they will. Every language has a try catch for a reason. Try() is doing, Catch() is learning"
评论 #5470128 未加载
drexelabout 12 years ago
I rolled my eyes when I read the title expecting another compendium of codeacademy-like resources which get you started and then leave you out to dry. I'm finally beginning to feel like I'm actually learning to code by doing pretty much exactly what you described!
评论 #5469759 未加载
banachtarskiabout 12 years ago
Totally agree on not having newbies learn to code in a browser. There are so many intangible things that they need to learn to actually produce anything meaningful aside from typing the code itself.<p>People I know who have tried codeacademy or something similar complain that they are just typing "magical" words that produce effects on the screen. Perhaps a way to remedy this is to have them actually download the source files after a lesson is done or something so they can see what they've actually created, outside of the course's blackbox framework.
viscantiabout 12 years ago
&#62; 7) Coding is failing a ton and understanding why. It's painful and frustrating<p>I'd argue that an aspiring programmer's ability to deal with frustration is probably the single biggest indicator of "success". Obviously it's an on-going process, and you're always learning, but I'd say the biggest difference between "trying to learn" and being able to do some basic programming is how you deal with those initial frustrations. It's really easy to give up and go do something you think you're better at.
woahabout 12 years ago
I am learning how to code, and one important thing that I have realized recently is that it can be bad to focus on building specific projects too much. I have spent a lot of time banging my head into the wall on specific implementation problems that might have been spent more efficiently learning from tutorials or books. Since I have started setting aside time for "pure learning" I have gained the background knowledge in languages and libraries to figure out how to solve problems that come up.
评论 #5472749 未加载
SeanAmabout 12 years ago
I would recommend Harvard's CS50 program. It is the most complete package I've come across for beginners. Downloadable VM's with everything set up - video lectures, problemsets, forum for questions and so on. And the good part is that it isn't just one language - you are exposed to many of the building blocks(C,HTML,SQL,Javascript++) of modern computing.<p><a href="https://www.edx.org/courses/HarvardX/CS50x/2012/" rel="nofollow">https://www.edx.org/courses/HarvardX/CS50x/2012/</a>
Paul_D_Santanaabout 12 years ago
I totally agree. I started with installing Eclipse, creating a new Android project, adding a single button and... Just going from there.<p>I had no intention of publishing it to the official Google Play Store, but I did, purely as a learning experience (and I sure learned a heck of a lot because it's definitely not a straightforward process).<p>And I'm sure we all have experiences like that, right? You'll be amazed at what you can do by just jumping in.
ataleb52about 12 years ago
Thank you for the awesomeness you have infused your post with. I began on the very road you've suggested not to take about a year, never got anywhere with programming. Got a 9-5 after graduating then finally started doing what you've suggested...<p>Quit my cube job, got a technical internship, and code practically every breathing moment I'm not at work...friends and fun...what are those again? :P
steven2012about 12 years ago
&#62; Coding is failing a ton and understanding why. It's painful and frustrating<p>I get what he is saying but I disagree, in that I think that coding is actually <i>succeeding</i> to get something working by any means necessary, even if you don't quite understand why. Be it getting your first web site up and running, getting your first program compiled, fixing your first bug, etc. There are a lot of hurdles and roadblocks you will face, especially when you are starting out, it will seem that every single piece of information is just out of your reach, like Tantalus and the grapes. It takes a lot of patience and perseverance to get through most programming problems, but that feeling of satisfaction of getting past these roadblocks is amazing. I still get that feeling of satisfaction and accomplishment, even though I'm 20+ years into my programming career.<p>The followup to that is that you look back at your code 6 months later, cringe, and then rewrite it to something that is an order of magnitude better.
akristofcakabout 12 years ago
Nice article.<p>Zack, you say pick a language "Ruby or Python". I started out in PHP (I have no recollection why) and while I'm far from perfect, I know it well enough to build functioning things and more importantly to figure where to find answers when I'm stuck.<p>Yet whenever I read other people's writing about coding, almost without fail people say "PHP sucks, do Python" or "PHP sucks, learn Ruby".<p>Without getting into the arguments about which language is better (I am fairly aware of the differences), can people who have experience with all three opine on whether it makes sense to throw out the time and energy I have invested in PHP (not to mention lot of well functioning code) and start from scratch with one of the other two?
评论 #5473154 未加载
jurassicabout 12 years ago
&#62; Forget Codecademy<p>This. Getting everything installed and the environment configured is huge.
评论 #5470103 未加载
评论 #5469985 未加载
评论 #5469783 未加载
mgshuhebabout 12 years ago
I am learning to develop in Ruby on Rails. Thanks Mattan Griffel from Grow Hack who's also a teacher on SkillShare [dot] com. He has made a series of 'straight to the point' lectures guiding any person with any level of coding to create a basic version of Pinterest by the use of RoR. The series is called 'One Month Rails' (<a href="http://onemonthrails.com" rel="nofollow">http://onemonthrails.com</a>). I have been using and I am currently enrolled in his class on Skill Share. Personally I have browsed through hundreds of website looking for learning material and these videos have been the best for me so far!
jthreeabout 12 years ago
If people are interested in learning Ruby, Rails, or JavaScript in a "real" environment (running on your own machine, as a normal developer would), we have both a Environment Setup Guide (<a href="http://tutorials.jumpstartlab.com/topics/environment/environment.html" rel="nofollow">http://tutorials.jumpstartlab.com/topics/environment/environ...</a>) and dozens of tutorials from complete walk-throughs to open-ended projects at <a href="http://tutorials.jumpstartlab.com/" rel="nofollow">http://tutorials.jumpstartlab.com/</a> , all Creative Commons Non-Commercial.
评论 #5529997 未加载
catshirtabout 12 years ago
i have no formal experience in teaching, but given my own experience i'd have to say that having a technical mentor who is close to you is the single most important factor. important enough that it could probably stand alone (with the proper ambition of course).<p>i'd like to see some sort of matching service that helps match potential programmers with mentors, based on common interest. the "student" gets to learn in a context relevant to their interests, and the mentor gets an extra hand on their project.
评论 #5470219 未加载
tomasienabout 12 years ago
Tommy Nicholas, cited in this article, here. Love this, disagree with the "forget Codecademy" part. Codecademy is incredibly useful and I still use it to learn things today, but it's really really important to understand what it's teaching you and what it's not.<p>It walks you through the thought process of various things you do when you write code and makes you actually write it, which is awesome. But that's where it ends so you've got to take the leap from there and actually BUILD something.
评论 #5469957 未加载
评论 #5469998 未加载
评论 #5470106 未加载
bjoe_lewisabout 12 years ago
&#62;forget codeacademy<p>That's a good phrase.<p>Though it does a great job mastering you in syntax and semantics, with which you could solve trivial problems the world's never going to face, real learning comes from setting up a dev environment in your machine, and diving in. Learning from mistakes best apply in learning to code, more than any other context.
grannyg00seabout 12 years ago
"8. Stop trying to figure out what you should do and just start."<p>I would say this last point is the most important one. And it also kind of cripples most of the other points.
评论 #5470213 未加载
Vlaixabout 12 years ago
HN gives me the impression that on a bi-daily basis there's someone, somewhere (generally an American brogrammer with too much hair and weird glasses living in the Valleyr or NY) who <i>WANTS</i> that I want to learn to code.<p>Is that someone actually the exact same person (looks like it) ? Does he know that code can be executed outside of a browser ?