Hacker News new | comments | show | ask | jobs | submit login
How To Learn To Code In 2013 (enoughtobedanger.us)
27 points by nbashaw 1542 days ago | hide | past | web | 25 comments | favorite



>> The reason it’s so hard for adults to learn new things is that there is no authority figure punishing them if they fail.

I think it's way more than that. Once you're out of school, there is no one to set goals for you. Even assuming you do have goals, there are no structured classes or textbooks to get you to those goals with your eyes closed. You are essentially both the teacher and the pupil and you must figure out your own curriculum in addition to doing the learning.


I agree. Studying CS in college I never had an Aha! Moment or a specific moment where I knew I "learned to code", but the cumulative knowledge I gained from following the strict college computer science curriculum gave me that skill over time.


Great point! I totally agree


I dislike how people say "Learn to code" and that automatically implies that it's HTML, CSS and JS: There is a whole world out of that.


Especially since HTML,CSS and JS is actually a way to not learn to code. (Or rather a dangerous way to learn coding.)

To expand a bit, the most fun part of coding is clever tricks based on understanding a system. But with building a website, you get nice results by just treating coding as a complicated way to do photoshop, and settle for this.


I agree - I'm just saying it's the best starting point, not that it encapsulates all "coding".


  In my experience, the best way to learn to code is to find someone who needs a website built and offer to do it for really cheap, though not free.
I'd highly disagree on this. The minute someone offers some sort of compensation for work, the dynamic of the relationship changes -- from helper to employee (and in some cases servant) -- especially at the low-ball prices. From what I've found, the people thinking a website can be built for $100 are the type of people who will bug you as to why it's not done, demand extra features, wonder why it doesn't look like {{insert_dynamic_million_dollar_website_here}}, etc. And if you are just starting out, you probably don't have much contracting experience to have contracts ready with expectations of work/time to commit/deadlines/etc.

The best solution I found when I wanted to learn to code was that I had something I wanted to create that I couldn't -- not anything huge, just something small. Once I got it up and working, I had so many questions -- "why did it do that?", "why didn't it work?", "what if I wanted to do X?", and that fueled me to find out more information so I could answer those questions.

I also disagree that "we have to create a context where we have no choice but to learn." What people need, instead, is to bring back our child sense of curiosity. When I was reading up on the fiscal cliff, I was confused -- why were we in this mess? Why couldn't we do X, Y, Z? If you are overwhelmed with questions, many will just quit, feeling the answers are too insurmountable. The trick is to ask just enough questions so that you can understand a slightly larger view of the puzzle, which will help you answer the next set of questions.


> "The minute someone offers some sort of compensation for work, the dynamic of the relationship changes"

That's the point. If you're doing something for free as a helper then there's no consequence for saying "hey sorry i haven't gotten around to the website yet, i've been really busy...". More often than not, that's exactly what we'll end up doing, because learning a foreign language makes our brain hurt.

> "What people need, instead, is to bring back our child sense of curiosity."

I'm really glad you are able to make that work, but I'm positive that curiosity is not as reliable as fear.


>That's the point. If you're doing something for free as a helper then there's no consequence for saying "hey sorry i haven't gotten around to the website yet, i've been really busy...".

Agreed, but if you have no experience, nothing will turn you off faster to learning than a client who yells or berates you for your lack of experience. A teacher is there to nurture your love of learning -- a client doesn't give a damn about you wanting to learn, they just want the project done at a certain time/budget/capacity.

>I'm really glad you are able to make that work, but I'm positive that curiosity is not as reliable as fear.

The problem with fear that I've found, is that it only pushes you to slightly outrun that fear, not run miles ahead of it. I don't need to outrun a lion, for example, I just have to make sure that I run faster than the person next to me. When you use that for learning, you'll only learn what you need to complete the task, not use creativity to ask questions and learn and expand your knowledge.

When projects come from a question, or from a problem, I feel much more likely to keep asking questions and learn to fix my problem.


> "...nothing will turn you off faster to learning than a client who yells or berates you for your lack of experience"

I never got berated, because I made it clear up front that I was a beginner and that I was charging a very small fee. It motivated me to make something that was worth it. I'm confident that most people have the ability to make something good enough to justify a $100 fee, it's just that they don't have a reason to try hard enough.

> "The problem with fear that I've found, is that it only pushes you to slightly outrun that fear..."

This is a great point - in fact, when I was first starting out I was often ready to be done with projects. They were stressful! But they taught me skills that I don't think I'd have learned otherwise, that I could have more casual, curiosity-driven fun with later. I doubt anyone would put themselves in a stressful situation like that unless they had some genuine curiosity. It didn't permanently scar me. It just was an accelerator, like taking off the training wheels. Stressful and scary but a necessary push forward to learn faster and stretch myself.


I like that, if only because I plan on / am doing that anyway :) I am amazed by what is already possible with "just" a modern browser and a decent machine, and the fact that it will get so much better in the near future..! I played games on my Amiga 500 just yesterday, in the afternoon I painfully tried to get SDL to draw enough pixels fast enough to make particles that look nice (forget alpha!)... now I can draw whatever I want with awesome speed, even without being an optimizing or math guru, send a link to someone or a million people, and they can play it seconds after I made the last change. WTF? Forget flying cars; did any of you see this coming 20 years ago? I love it :D

Oh, and happy new year! May you find many ways to make people happy, so they may make you happy in return.


The reason it’s so hard for adults to learn new things is that there is no authority figure punishing them if they fail. ... If we’re serious about accomplishing our goal, we have to create a context where we have no choice but to learn.

A great way to do this is 1-on-1 tutoring. As an adult, I learn faster under tutoring than in any other context.

Part of the reason is that a (competent) tutor can keep me right at the edge of my ability during a session, which is where learning is fastest.

Another reason is that fear of embarrassment motivates me to do my homework.

You could apply this to programming by defining a specific thing you want to make (e.g. roll your own blogging cms in Rails), then hire a programmer to coach you an hour or two per week and assign homework. You'd learn quickly and build your app at the same time.


Very true, also probably less stressful. When I was a student I couldn't really afford it though. The nice thing about doing freelance is you make money! haha


I think a good first target for a static web site would be a restaurant website.

The goals are pretty simple, you can probably put one together in a few days or a week, and just by not making it awful you actually produce a website that is better than the vast majority of restaurant websites.


That's a cool idea! I had a lot of luck with student organizations since I was a college student. I also built a site for a book my professor was writing, a board game that a friend was launching, and a professional parent psychologist. There's tons of small business out there that have little to no web presence but feel bad about not having something better up. They're more than willing to pay a learner $100 to give it a shot at creating something better.


I think the best way to learn programming is the same as it was in 2012. Or 1995. Or 1970. All you need is a compiler/interpreter for language X, an introductory course for language X, and a nice entry-level CS book. But most of all, you need passion. Without it, you are doomed to quit.


I am going to (try to) learn programming next year. I'll start out with SICP, read all chapters twice and watch all the lectures. If that's to difficult I'll read Simply Scheme first.


First of all, HTML and CSS is not coding, and second it won't result in a 'serviceable website' as sites need to be dynamic these days, and you won't get paid for a static website anyway. This is a bad post and the author should feel bad.


I kind of feel bad that the switch from "learn to code" to "why schools work" was so jarring. I definitely need to do a better job making it a bit more skim-able. But I definitely don't feel bad about advising people to start learning to code by learning HTML and CSS if their goal is to eventually learn to build web-apps.

It certainly is coding in the most literal sense of writing code to be interpreted by a computer, although it's not a programming language. You are correct about that. Nevertheless, it's a great starting place for beginners.

You definitely can get paid for building static websites. Somehow I did.


Thanks for the good article. It definitely resonates with me and I will be trying to develop some habits in the next 30 days (every day). I am certainly not an absolute beginner (I know some html and css)but I am not a programmer at all and your article gives me some food for thought as I embark on learning a bit about javascript.


Awesome! I'm glad you got something out of it. If you ever want to chat about strategies email me! nbashaw [at] gmail


What? Did you read the whole article? An excerpt: "all roads lead to HTML and CSS... Once you understand that, then you can move on to Javascript, Ruby, Python, or whatever else you want."

This sounds logical and correct to me.


It is the opposite of logical because that would be doing it ass backwards. You don't need to learn HTML, your web app that you make while, you know, actually learning how to code, will generate it. Prettifying it with some CSS can be googled after you have something that actually works and has a purpose.


Can you write a web app without knowing HTML and CSS? And how about reading the next sentence?

>Once you understand that, then you can move on to Javascript, Ruby, Python, or whatever else you want.


I guess it's still cool to exclude PHP despite it being the most obvious.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: