How to Learn Programming Systematically--
2021-01-26
The Essence of Programming?
I have been thinking about the essence of programming for years. Here is some analysis at different levels:
-
Classification by process
-
What do you want to do
- Clearly define what you want to do
- Knowing your own purpose is what matters most
-
Breaking down and recombining how events unfold
- Break down what you do
- Know every step clearly
- Put the steps together
- Do things in the most efficient way
-
A dialogue with the computer
- You must understand what a computer can do
- You must be able to speak the computer’s language
- You must know how to organize your words
-
-
Traditional classification
- Data structures
- How data is organized
- Algorithms
- The process of data flowing
- Data structures
Guiding Principles for Learning Programming
A. Practice first
- Programming is highly hands-on
- Results come back quickly as feedback
- Write a decent amount of code before anything else B. Master one thing
- Go deep on one language first
- Get proficient with one toolchain
- Study specialized domains as needed C. Learn in layers
- Level up step by step from your current level
- Copy programs to get them running
- Build simple programs on your own
- Develop complete systems collaboratively
- Build high-performance systems
- As your ability grows at each stage, go deeper into the following areas
- Programming languages
- Operating systems
- Networking
- Domain specifics
A Concrete Process to Follow
-- To be continued