9 ms·
I'm in the process of teaching one of my friends how to program. He's starting off with almost no knowledge, but he's a smart guy, so hopefully it won't be too
by stevewepay 12y ago
I'm in the process of teaching one of my friends how to program. He's starting off with almost no knowledge, but he's a smart guy, so hopefully it won't be too painful.
The #1 thing I told him to do is start by programming small, useless programs and work up to more and more substantial programs. The more you program, the more you learn, and you build on that wealth of knowledge. And more importantly, you learn how to avoid the mistakes that you made from your previous programs. I'm in the process of learning Scala on my own, and this is the tract that I'm taking as well, and I've been programming for years now.
And in the process, the key thing you learn is perseverance. If you don't have perseverance, there is no way you can be a programmer, because that is the life of a programmer. You hit roadblock after roadblock, and you need to figure out how to get around those problems by yourself. You have to try 100 times to fix a problem, so that the next time it might only take 97 times, etc, etc.
- leeoniya 12y ago> The #1 thing I told him to do is start by programming small, useless programs I couldn't disagree more. Seeing useful results on day 1 is a major motivator. Doing purely theoretical tasks for the sake of understanding is mind-numbingly boring. You only need to get into the details after you see the way to just get it working. I think this is why weakly typed, high-level scripting languages are so good at starting out with. Learning pointer arithmetic in C as a first exercise never made anyone want to program more.
- stevewepay 12y agoThat is the point I'm making: start small, make useless programs and see results quickly. If you start from scratch, trying to tackle something big will only frustrate you because there's too many things you need to learn before you can get a complex program up and running. No one needs a program that outputs the listing of a directory, but if you can get that working, then that's a huge accomplishment, especially for someone that hasn't taken formal programming classes.
- leeoniya 12y agoi guess everyone has their threshold and qualifiers for "useless" :)