Live data from Hacker News

The 2 Biggest Mistakes I Made When Learning to Code

suneelius.com

81–90 of 90 posts

Re: The 2 Biggest Mistakes I Made When Learning to Code

#82

Earlier quoted context omitted.

Absolutely right, there's no end to it. What I hope the reader will achieve is the basic ability to prototype their ideas. That's where I am. In no way do I think I've learned all there is to code. Every day I'm learning precisely how little I know. Heck, I just started learning Lisp and truly enjoying how unfamiliar and powerful functional programming can be.

"Heck, I just started learning Lisp and truly enjoying how unfamiliar and powerful functional programming can be." Try Haskell before you have too many preconceptions of what "should" be to burn away. :)

Sounds good :)

Re: The 2 Biggest Mistakes I Made When Learning to Code

#83
post #20

Earlier quoted context omitted.

It is funny. I was talking to a kid that was learning to play guitar because he wanted to play cover songs, and was frustrated by the lessons that seemed to have nothing to do with what he wanted. I told him that he didn't have to wait even one more day, since playing covers songs is one of the best ways in which you learn guitar . His ultimate goal could be accomplished almost immediately by choosing one song he lik…

I learned piano in a similar way. It was a lot of fun, and allows me to play some songs passably, but I still feel hobbled by not knowing certain basic techniques that I would have learned sooner in a more conventional set of lessons. Maybe it comes after the "project" type learning, but at some point, to move up, you have to learn the boring basics.

Agreed! I'm also a pianist, but because I started young, I was lucky that my parents and teacher forced to me practice technique all the time. You should check out the Liszt exercises, they will make you strong and fast: http://books.google.com/books/about/Liszt_Technical_Exercise...

With coding, there was no such outside pressure, so until I joined Yipit, I had tons of bad, hacky habits. In order to get to the next level, I had to rebuild from the ground up and learn the fundamentals really well.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#84
post #77

If you have been starting to write code and study code for a year, you are still learning to code. You have not learned to code, you are not even a journeyman yet. I've been in the industry about 9 years, and coding since I was a child. My parents caught me staying up late with a flashlight under the covers as a teenager reading books on C instead of nudie mags. My first program with an event-driven UI ran on a NeXT…

> So you've made your third biggest mistake; you've vastly underestimated what you are in for. You have never "learned" to program, you are "learning." I am afraid your comment is even more mistaken. Even more it is discouraging in a really bad way. Read carefully and I'll explain. Even if your HN score is 10 times mine. In my opinion you are creating a false dichotomy between having learned and learning. Someone who…

Learning to walk/bike is in no way comparable to learning to code. Learning to walk/bike is primarily a physical muscular action to train your body to keep it's balance etc. Once you have learned to walk or bike, you have learned it. Learning to code is an activity of the brain where there is no clear defining line as to when you have learned. You might feel that you have learned a few languages or frameworks but there is still more or still something else that you can learn. So, it's amore gradual and continuous process. Hope this makes sense.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#85
post #77

If you have been starting to write code and study code for a year, you are still learning to code. You have not learned to code, you are not even a journeyman yet. I've been in the industry about 9 years, and coding since I was a child. My parents caught me staying up late with a flashlight under the covers as a teenager reading books on C instead of nudie mags. My first program with an event-driven UI ran on a NeXT…

> So you've made your third biggest mistake; you've vastly underestimated what you are in for. You have never "learned" to program, you are "learning." I am afraid your comment is even more mistaken. Even more it is discouraging in a really bad way. Read carefully and I'll explain. Even if your HN score is 10 times mine. In my opinion you are creating a false dichotomy between having learned and learning. Someone who…

> In my opinion you are creating a false dichotomy between having learned and learning. Someone who has just started to walk/bike etc has still learned to walk/bike. They are by no means near entering Olympics for the next few years but they have made their own life very much simpler and more enjoyable. (Father of small children here.)

The fundamental difference here is that bikes are ridden in a way that's fundamentally unchanged for decades. Contrary to this "settled" field of knowledge, programming is constantly invalidating itself. Even if you achieve competency in a limited field (perhaps operating system design or web development), that field will almost certainly overturn itself within 5 years for any reasonably broad definition of field. Consider what modern linux looks like compared to the original version; a lot of new techniques have emerged to address requirements.

To enter that field, this new knowledge is not "optional." It's required. The goalposts for competency aren't just shifting; they've got a nuclear power supply and tank treads and they're out of control.

In this, it is not unlike being a doctor. Their knowledge base is similarly in constant flux (although not quite so violently as ours). A doctor who does not constantly improve and update their knowledge will be a substantially worse doctor than one who does. A perfect example of this is pre-scientific doctors like homeopaths, who basically do nothing with an almost frightening level of dedication and fervor.

> Comments like yours are discouraging at least one specific subset of people from doing the one thing that can possibly help them increase their skills

I did not direct this at some 16 year old kid or a non-programmer, nor did I put it in a venue where non-tech people read. Even if I did, citing final consequence is hardly a good argument. In any case, the industry does a pretty good job of discouraging people from joining as it is. When I was in college, there was a 60% dropout rate between lower and upper division classes.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#86
post #77

Earlier quoted context omitted.

> So you've made your third biggest mistake; you've vastly underestimated what you are in for. You have never "learned" to program, you are "learning." I am afraid your comment is even more mistaken. Even more it is discouraging in a really bad way. Read carefully and I'll explain. Even if your HN score is 10 times mine. In my opinion you are creating a false dichotomy between having learned and learning. Someone who…

Learning to walk/bike is in no way comparable to learning to code. Learning to walk/bike is primarily a physical muscular action to train your body to keep it's balance etc. Once you have learned to walk or bike, you have learned it. Learning to code is an activity of the brain where there is no clear defining line as to when you have learned. You might feel that you have learned a few languages or frameworks but the…

> Once you have learned to walk or bike, you have learned it.

Go tell that to someone who competes in running or biking.

> You might feel that you have learned a few languages or frameworks but there is still more or still something else that you can learn.

Again, same goes for biking: There are all kinds of tricks you can do. Yet once people manage to ride a bicycle for a few hundred meters without falling they have picked up the concept and we say they can. Even if there are still lots to learn (traffic rules, all kinds of neat tricks etc)

I argue that the same goes for coding: Once people understand the basic building blocks and start writing their first useful or amusing program from their own imagination we say they can program.

At this point they can start making their own and possibly also other peoples lives more comfortable. Start making their own prototypes which is what I read from the original post.

Would you hire them as programmers? I would not. Do they need to read more books or attend more courses to start prototyping their own ideas like the original post was talking about? Thankfully not.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#87
post #77

Earlier quoted context omitted.

> So you've made your third biggest mistake; you've vastly underestimated what you are in for. You have never "learned" to program, you are "learning." I am afraid your comment is even more mistaken. Even more it is discouraging in a really bad way. Read carefully and I'll explain. Even if your HN score is 10 times mine. In my opinion you are creating a false dichotomy between having learned and learning. Someone who…

> In my opinion you are creating a false dichotomy between having learned and learning. Someone who has just started to walk/bike etc has still learned to walk/bike. They are by no means near entering Olympics for the next few years but they have made their own life very much simpler and more enjoyable. (Father of small children here.) The fundamental difference here is that bikes are ridden in a way that's fundament…

Checked your profile and you seem to be smart, yet I think you are wrong again : ) (sure you have got enough sleep lately? not been talking to much to marketers?)

> "The fundamental difference here is that bikes are ridden in a way that's fundamentally unchanged for decades. Contrary to this "settled" field of knowledge, programming is constantly invalidating itself."

The most well known styles of programming (imperative, functional, object oriented etc) have been unchanged for two or more decades as well.

And a 10 year old c or html tutorial still works and still lets people start solving real world problems.

I guess I'm leaving this discussion here. You know way to many cool expressions for me: '

>"programming is constantly invalidating itself" - this holds true for Java, C and Lisp right? Or are we talking about how for loops aren't valid anymore?

> "Consider what modern linux looks like compared to the original version;" - We are talking about that "unix clone" thing from early ninetys? Has it become a Windows clone without me noticing?

> "A doctor who does not constantly improve and update their knowledge will be a substantially worse doctor than one who does. A perfect example of this is pre-scientific doctors like homeopaths, who basically do nothing with an almost frightening level of dedication and fervor." - Comparing software developers to doctors. Go tell some doctors. Try car mecanic. They also have to stay up to date.

> "I did not direct this at some 16 year old kid or a non-programmer, nor did I put it in a venue where non-tech people read."

No, but you directed it at a new programmer who shared something that a lot of people in that situation seems to struggle with. Hey, not just new programmers, even Kent Beck has blogged about a similar situation: http://www.threeriversinstitute.org/JustShip.html

Re: The 2 Biggest Mistakes I Made When Learning to Code

#88
post #87

Earlier quoted context omitted.

> In my opinion you are creating a false dichotomy between having learned and learning. Someone who has just started to walk/bike etc has still learned to walk/bike. They are by no means near entering Olympics for the next few years but they have made their own life very much simpler and more enjoyable. (Father of small children here.) The fundamental difference here is that bikes are ridden in a way that's fundament…

Checked your profile and you seem to be smart, yet I think you are wrong again : ) (sure you have got enough sleep lately? not been talking to much to marketers?) > "The fundamental difference here is that bikes are ridden in a way that's fundamentally unchanged for decades. Contrary to this "settled" field of knowledge, programming is constantly invalidating itself." The most well known styles of programming (impera…

> Checked your profile and you seem to be smart, yet I think you are wrong again : ) (sure you have got enough sleep lately? not been talking to much to marketers?)

I am not sure why you decided to include this toxic, thorny little jab in your post. Please know that it's not appreciated.

> The most well known styles of programming (imperative, functional, object oriented etc) have been unchanged for two or more decades as well.

This is not true. The state of the art in all of these has advanced considerably, and many things that were once considered good practice have been discarded over time.

> And a 10 year old c or html tutorial still works and still lets people start solving real world problems.

I'm not sure what definition of "real world problem" you're talking about. Certainly nothing I learned 10 years ago directly pertains to my work today... Not pure math; its quite rare to use C for that sort of problem anymore. Not networking problems, 10 years ago you couldn't write servers the way you can today (nor should you save for perhaps embedded systems like microcontrollers?) Not UI either. Perhaps simple text munging? Doing that in C is pure futility compared to what we have today.

As for HTML, a 10 year old HTML tutorial would give you almost no insight into modern webpages, and a very large amount of it would be "N-hancements".

> No, but you directed it at a new programmer who shared something that a lot of people in that situation seems to struggle with.

I'm not sure what your point is. Nor am I a huge fan of Beck's philosophy in this.

Re: The 2 Biggest Mistakes I Made When Learning to Code

#89

They say you learn best through experience. I learned CakePHP by coding my thesis with it. Now, I wanted to learn python + postgres by planning to port my thesis to it.

Why would you want to switch to Postgres out of curiosity? Also, what MVC framework are you switching to?

I used MySQL and I'm trying Postgres out of curiosity too. Django is the MVC framework that I will use. :)

Re: The 2 Biggest Mistakes I Made When Learning to Code

#90
post #20

Earlier quoted context omitted.

It is funny. I was talking to a kid that was learning to play guitar because he wanted to play cover songs, and was frustrated by the lessons that seemed to have nothing to do with what he wanted. I told him that he didn't have to wait even one more day, since playing covers songs is one of the best ways in which you learn guitar . His ultimate goal could be accomplished almost immediately by choosing one song he lik…

I learned piano in a similar way. It was a lot of fun, and allows me to play some songs passably, but I still feel hobbled by not knowing certain basic techniques that I would have learned sooner in a more conventional set of lessons. Maybe it comes after the "project" type learning, but at some point, to move up, you have to learn the boring basics.

I agree with this. I think the hardest part of learning a new skill is starting out. Working on a concrete problem provides a positive feedback loop that keeps you engaged, learning, and moving foreword. But that doesn't mean you should skip fundamentals.

For coding you could hammer out a project, get familiar with a language and the technologies you used to implement it, then download a Stanford lecture on proper Programming Methodology.

Post reply on HN