7 ms·
A hugely important thing to keep in mind when learning is "humility is endless". I remember when I started out I felt like I knew hopelessly nothing. Well it
by Homunculiheaded 15y ago
A hugely important thing to keep in mind when learning is "humility is endless". I remember when I started out I felt like I knew hopelessly nothing. Well it turns out that this is actually a good thing. You learn much better when you approach everything with the attitude of "I don't know this so I am open to everything" (There's a concept of 'Beginners Mind' in Zen Buddhism which is similar). I find that new programmers are discouraged by this feeling, when in fact the most dangerous thing is when you start to approach problems with the attitude (and we've all done this) "Okay I'm a smart guy , this should be easy to understand". So cherish that feeling of ignorance, and work to maintain it (the feeling not the actual ignorance).
And of course the biggest thing is to try to put in 1-3 hours a day of practice. Coding a problem you have solved before is not practice. Always be pushing yourself. At first this is very easy since everything is new, just code 1-3 hours a night. But as you get better continue to try to learn new things, code problems from a book you're reading, start learning a programming language that challenges you, implement new algorithms, refactor and improve something you've written etc. Essentially practice is very closely related to humility.
Put in enough hours of true practice and you will be a better programmer.
I also should add that I did find taking formal classes helpful (and it can help with pushing you to realize how much you don't know, force you to practice etc). People make a distinction between autodidactic and formal learning, but really the best solution is both, and they are not mutually exclusive so there's no reason not too.
- freshfey 15y agoIs there a reason why you recommend 1-3 hours and not let's say 6-8 hours (split wisely)?
- viscanti 15y agoIt really depends on the person. I find I'm not able to absorb more than 1-3 hours of new stuff each day. It's also a lot easier for me to commit 1-3 hours every day. There's an idea that you need to learn a lot up front, and then you're a "programmer". Doing 1-3 hours of learning a day, gets you in the habit of ALWAYS learning. You never know enough, so it's not a 3-4 month process where you come out at the other end and you're done. I think 1-3 hours a day is manageable by everyone, and you don't ever run into diminishing returns for the day. That doesn't apply to actually programming. If you're building something, and you have the time, more hours in the day is generally better. If the focus is on learning, 1-3 hours is probably good for most people, and something that's easy to keep up with for years.
- Homunculiheaded 15y agoBecause your goal is to get to thousands of hours of practice. I think the probability of burnout is way too high if you put 6-8 hours of practice in a day. The only way to get to thousands of hours is to practice every day for a long period of time. With 6-8 hours it's very easy to say to your self "Well I did put in all the time yesterday, so today I'll take a break", and this in turn tends to lead to finding yourself spending weeks/months without practice. Slow and steady and whatnot ;)