What Defines a Programmer? Skills, Mindset, and Learning Paths Explained
This article explores the true meaning of a programmer, outlines the essential knowledge structure, discusses learning desire and ability, and provides practical methods for mastering new technologies, reading source code, and building a solid foundation in computer fundamentals and career planning.
What is a programmer?
Code farmer, programmer, programmer‑woman.
Program = data + algorithm.
Software = program + software engineering.
Is a programmer an engineer?
Programmer pyramid.
Programmer knowledge structure
Interview: building rockets; work: killing mosquitoes.
Your lower bound is what you can do now; your upper bound is what you can learn.
Learning desire
Avoid repeating one‑year experience for many years.
How would you solve such problems? How does your solution compare to existing ones? Why did others think of that solution? Is the gap due to lack of experience or missing skills?
Learning ability
It's not about knowing a lot, but learning fast.
Know the why, not just the what: prioritize depth first.
Computer thinking: model reality, build a personal knowledge system, read and take notes, integrate into the system.
Deep thinking: read books.
Hands‑on practice: project‑driven learning, active thinking.
Self‑summary: improve knowledge system, write notes, blog, share.
Continuous learning: leave the comfort zone, keep learning forever.
How to learn new technology
Read the architecture documentation to understand overall structure.
Classify source files by module or hierarchy.
Start with the most independent module (fewest dependencies).
Read the module’s functional documentation.
Read the source code, run the program, debug with breakpoints.
Draw call‑relationship diagrams while reading.
Proceed to the next step.
Reference official docs or classic books.
Computer thinking
Von Neumann architecture: programs are stored and executed sequentially.
Binary storage: solve problems with bits.
Bit operations: high efficiency.
Logical branches: conditionals, loops, recursion.
Personal planning
Long‑term: career vision and goals.
Short‑term: specific skills, promotion, learning priorities.
Fundamental disciplines
Physics: circuit principles, quantum computing.
Mathematics: engineering optimization, linear algebra, calculus.
English: read English papers, learn computer terminology.
Computer organization: hardware components and operation principles, Moore’s law, etc.
Data representation: original code, two’s complement, floating‑point, fixed‑point.
Instruction set: CISC vs RISC.
Memory: hierarchy, cache.
CPU: pipeline, false sharing, caching.
I/O devices: bus, DMA, interrupts.
Operating systems
Abstract hardware, provide job scheduling, process/thread management, inter‑process communication, memory and virtual memory management, file systems, I/O management.
Linux.
Computer networks
Interconnect computers, TCP/IP stack (4‑layer/7‑layer), TCP connection states, TCP vs UDP, HTTP, RESTful, network security, modern Internet: IPv6, IoT, 5G.
Compilation principles
Transform code into machine‑readable binary, enabling DSLs.
Lexical analysis, syntax analysis, type checking, runtime environment, intermediate code, code generation, optimization.
Data structures and algorithms.
Program = data + algorithm.
Motivation
No matter where you are, technical improvement relies on yourself; the internet era keeps you synchronized with the world.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
