Post

Study Plan for Tongji Fundamental Software Center Students

Recently, the teacher asked me to write a study plan for the younger students at the Fundamental Software Center. After much thought, I came up with the following. It’s based on my own experiences and lessons learned over the past few years. I hope it will be helpful.

1. Programming Language Foundation

C++ is a must. It’s the foundation for system-level programming. Recommended reading order:

  • “The C++ Programming Language” or “C++ Primer”
  • “Effective C++” and “More Effective C++”
  • “Inside the C++ Object Model”
  • “STL Source Code Analysis”

2. Operating Systems

  • “Operating Systems: Design and Implementation” (Tanenbaum) — with MINIX source code
  • “Understanding the Linux Kernel”
  • For Windows CE developers, read the Windows CE documentation and source code

3. Data Structures and Algorithms

  • “Data Structures and Algorithm Analysis in C++”
  • “Introduction to Algorithms” (CLRS)

4. Software Engineering

  • “The Mythical Man-Month”
  • “Design Patterns” (GoF)
  • “Refactoring”

5. Specific Technical Areas

Based on research direction:

  • For embedded: study ARM architecture, Windows CE/Linux embedded development
  • For compilers: study “Compilers: Principles, Techniques, and Tools” (Dragon Book)
  • For networking: study “Computer Networks” (Tanenbaum) and TCP/IP

Conclusion

Technology changes fast. What’s important is building a solid foundation and developing the ability to learn quickly. Don’t limit yourself to one narrow area. Keep a broad perspective and deep expertise in at least one area (T-shaped skills).

Good luck, everyone.

This post is licensed under CC BY 4.0 by the author.