Quora post on how to learn programming – most of it applies to learning CS
1. You learn by doing. The only way to get better at programming is to actually program. Don’t let an analysis paralysis prevent you from ever starting.
2. Programming isn’t like studying for a test. Memorizing stuff doesn’t matter all that much.
4. Letting problems pile up without checking is a poor strategy. I used to make endless changes to my code and expect it to work right away. The problem with this approach is that it stacks one problem on top of another, and it becomes difficult to figure what went wrong.
5. Learning by yourself is really tough. Talking about code and collaborating with other aspiring developers is a better way to learn for most people.
6. Let go of your emotions. You’re going to see error messages on your journey to becoming a programmer. When screwing up is such an integral part of the process, you need to be ok with making mistakes in order to grow.
8. There’s a BIG difference between a capital letter and a lowercase letter. It took me a while to get used to noticing subtle differences between similar symbols, and it can be pretty frustrating until you get used to it.
9. Trying to understand everything is a lost cause. In the beginning, I tried to chase down the “why” to every problem I encountered. This isn’t necessary. Computers are so complex and there is so much to learn, and you’re never going to understand everything. That’s ok.
10. Pair program as much as possible. There is no faster way to learn how to code.
12. There’s a right way to ask for help. Everybody needs to ask for help at some point. And when you do, make sure that you do these 4 things:
Overcommunicate details that you see.
Explain exactly what you think should be happening.
Explain exactly what is actually happening.
Explain why you think it should be working differently.
When you go through this process, you’ll often come across a solution without ever asking for help. It makes you think about problems in a holistic way.
13. You don’t need to be a math genius. If you’re not a “math person,” that doesn’t mean that you can’t be a programmer.
14. Always celebrate the small wins. Building stuff with code is really cool. I never would have arrived where I’m at if I hadn’t stepped back and admired the awesome things I was building along the way.
21. An algorithm is like finding a name in a phonebook. Algorithms are a step-by-step approach where there is exactly one correct next step. An easier way to think about this is the strategy that you would take to find one specific name in a phonebook.
22. You’re never going to feel like you’re ready to program full time. Imposter syndrome is real. Try to remember that it’s normal to not know everything. The most important thing is understanding that you can figure out the stuff that you don’t know.
23. Programmers never stop learning. New technologies come out all the time, so the programmers that succeed are the ones who continue to learn and develop their craft on an ongoing basis.
25. Programming is about using the right tool for the job. There are so many different open source libraries, tools, and frameworks at your disposal. So you need to grow your developer toolkit and understand which tool makes sense for each problem that they encounter.
27. Learning to code isn’t easy. But that’s why it’s worth doing.
In hindsight, I’m actually really happy that I was so naive in the beginning. Knowing so little back then gave me the motivation to think critically about everything I learned later on.