Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How I learned to Code (medium.com/teaching-learning)
48 points by zan2434 on Sept 17, 2013 | hide | past | favorite | 12 comments


> I learned by doing small project after project... slightly outside of my skill-set

Not to toot my own horn, but this is exactly the approach I take when I teach students to code (which I have done quite a lot of).

You can see the basic sequence of projects I use here[1]..

Then at Zed Shaw's prompting I wrote a book: Learn Java the Hard Way[2].

[1] http://programmingbydoing.com/ [2] https://learnjavathehardway.org/

Doing project after project, each stretching your ability is a really good way to learn ANY skill, but especially coding.


Really happy to see a post like this. It was an awesome post too... However, as an adult over 30 who just learned to code, I can say that it was not as helpful as it might have been, primarily because it makes the author sound as if he is brilliant--and clearly--most people thinking about approaching programming are far from starting a tech start-up at 30+... Much less 19!!!

I am obviously old enough to not have benefitted from a CS course in HS, is it did not exist. So, to have gone 8 paragraphs deep into this post and still there was no mention of a particular language or medium to learn left me quite dry. Again, not to take anything away... I'm just saying.

The way I learned to code... Codecademy/google tech talks/web/books: in this order. I decided to focus on Javascript because of ECMAScript 5, NodeJS++ gave JS a new look and promising future. Codecademy got me off and running fast but then I finished all the courses and still felt like I did not know sh1! The tech talks helped me understand the context of -this- and that. The books were for Ninja-hood.

I hope more people write about how they learned for those of us coming from other industries and majors. Perhaps I will blog of my travails of a bootstrapping, indie, tech start-up... At the moment, still busy playing catch-up and learning to code.


[Corrections] Really happy to see a post like this. It was an awesome post too... However, as an adult over 30 who just learned to code, I can say that it was not as helpful as it might have been, primarily because it makes the author sound as if he is brilliant--and he clearly is--most people thinking about approaching programming are far from starting a tech start-up at 30+... Much less 19!!!

I am obviously old enough to not have benefitted from a CS course in HS, as it did not exist. So, to have gone 8 paragraphs deep into this post and still there was no mention of a particular language or medium to learn left me quite dry. Again, not to take anything away... I'm just saying.

The way I learned to code... Codecademy/Google tech talks/web/books: in this order. I decided to focus on Javascript because of ECMAScript 5, NodeJS++ gave JS a new look and promising future. Codecademy got me off and running fast but then I finished all the courses and still felt like I did not know sh1! The tech talks helped me understand the context of -this- and that. The books were for Ninja-hood.

I hope more people write about how they learned for those of us coming from other industries and majors. Perhaps I will blog of my travails of a bootstrapping, indie, tech start-up... At the moment, still busy playing catch-up and learning to code.


> In the interest of continued learning, I’d much rather you finish building something small and useless than give up building something big for your first project.

This is huge. It took me a quite some time to believe in this concept when I first started learning to code. I spent weeks on sites like Codecademy but thought their projects were irrelevant or too small. It wasn't until I took the Thinkful [https://www.thinkful.com] course that I realized I need to complete these small projects before moving on to bigger things. A project-intensive curriculum should be the trend in all University CS classes.


Still trying to learn to code at 33 years and because just I love to.

I have a full-time job which makes finding time to learn very hard. I'm trying for 3 years and feel like I haven't made any progress because I made nothing in this time.

I know about Python, Javascript, Django, Flask, what a callback is, how to create a REST Api and many things but all the information is scattered. I can't make anything on my own.

Spending a couple hours a week is just not enough. I wish I didn't have to provide for my family and I could just give up everything and find a small to no fee job just to learn.

Another drawback is you can't find any jobs for Python or any other open source language in my country, 95% of the jobs are Microsoft or PHP.

Nothing new is created here, everyone is copying others work and just changing it a little bit. I looked at elance for a job but people with significant experience always proposes even for the simplest jobs.

So I'm doing it just because I like to and still hoping for an opportunity.


I'm learning iOS programming by working on an interesting-idea-turned project. The project itself looks simple and promising (well, quite subjective I have to admit). But when I started to write code, my lessons from day one till now are full of what does not work as expected, digging in documents and giving a try and eventually getting it right. I guess this is not the most efficient way to learn coding. However, this might be the best way to motivate myself most.


Interesting that he mentions hackaton's as one of the keys to his success. Does anyone know of a good place/resource to find out about upcoming hackatons?


I think a good start is to go to meetup.com and searching for hackathons. You can also follow Mattan Griffel's advice in his "How to Teach Yourself Code" video here: http://www.youtube.com/watch?v=T0qAjgQFR4c&feature=player_de...


This article, like many others just like it should be renamed to "How I learned to do anything".


Awesome! Great post


Seems like I ended up with the opposite experience with Amazon from not having completed college.

First, a bit about my background. I got my first computer 6 years ago, and within a year, I was obsessed with learning to build for the web. Shortly after, this obsession took me to a few online forums dedicated to development and other similar works. I built a crappy content management system for a game that I played occasionally, which was given to people who ran servers for that same game. Shortly after, I myself started a private server for that game, and developed a lot of interesting game mechanics and interactions that did not exist in the official game. This private server grew to be very popular and had about 3000 players online simultaneously at any given time of day. Soon after, this private server received a cease and desist order by the company that owned the game, and I pulled the plug.

During that time, I met my (future) co-founder through one of our players. We went on to co-found Windows7Center and Windows8Center.com (offline as of 2012), and over 3 years, gained quite a bit of success and popularity. During those few years, between these efforts and school, I took on freelance web development work to satisfy both my passion and my family's monetary needs.

I then decided against taking my full scholarship to law school, and attended a local technical college for Computer Science. After finishing my 1st year in Computer Science, I left school to pursue full-time opportunities because of financial difficulties that arose. Up till now, I've been working full-time for close to 2 years.

When I found out Amazon was hiring in Vancouver, B.C, I applied. I was interested but I was not yet prepared to leave my job in the case of an offer. A few months later, I left the company I was in, and around the same time, was asked to participate in Amazon's phone interviews. Throughout the process, they were aware that I had only completed 1 year of college.

My interview was with a senior engineer working in the same area I was applying for over in Seattle, and went quite well. Subsequently, I was flown down to Seattle for a full day of on-site interviews (for a Vancouver position). Long story short, the interviews went well, and after going through the 7 interviewers, my last interview was with the lead recruiter from Vancouver, who had flown down to interview me.

He then proceeded to spend the remaining 35~40 minutes drawing on the whiteboard the compensation details of the position, including signing bonus, equity options, performance bonus, how I could choose between more options or cash for the bonus, the benefits of choosing one over the other, the base salary, etc. He said "when I send you the offer on Wednesday, you will see _______" on a couple occasions. Then he walked out with me and explained that the team in Vancouver was very diverse and full of cool people, how it was much like a startup, and that I would love it. (I guess he was "selling" me the opportunity) He then said "once you accept the offer, we will fly you back down around 3 weeks later to do the training here, because the Vancouver offices are still quite small and we don't have that many hires that week".

Fast forward a month, and after 3 emails from me checking back with them, I received nothing. No offer, no email, nothing.

It's been a while since that whole experience, and after reaching out to a few employees at Amazon to help me gather some information about what happened, a recruiter told me "All of Amazon’s development roles require a bachelor’s degree". Of course this is not entirely true, as they do have engineers without degrees, but apparently I was rejected without notice because of my lack of a degree.


Self-taught elites might be the next group to have big impact. Not 100% sure if this will happen. But with easier access to then-valuable information, people in different locations on earth will have opportunities to form a group that shares common value system. This may affect the current society structure a lot. It can be a big topic. I guess the possibilities that this will happen is getting bigger and bigger.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: