Bottleneck == Basic Knowledge
I went to the computer book market with a classmate recently, planning to pick up some “bricks” to chew through. But I’ve fallen into an awkward situation.
Before — when I’d just switched to the Software Institute — browsing computer bookstores, I always found many books worth reading. Had to make tough choices due to limited budget. “XX Internals,” “XX Programming Thoughts,” “XX Essence,” “XX Primer” — all worth reading.
But two years later, maybe I’m more seasoned, or maybe I’ve actually learned something. Programming books don’t interest me as much. I never bought “The C++ Programming Language” due to budget, but now I’ve lost interest. Same with “C# Internals,” “ADO.NET Internal” — I’ve grasped the general principles of .NET and ADO.NET data access patterns. When I need specifics, I can look them up quickly.
So what else to read? Software engineering books — “Unit Testing,” “CMM详解,” “The Mythical Man-Month” — I’m lacking there, but software engineering should be experienced in practice. Students shouldn’t幻想 (fantasize) about becoming “Architect” right after graduation.
Then there’s computer science: “AI,” “Pattern Recognition,” “Neural Networks,” “Machine Learning,” “Advanced Graphics,” “Distributed Systems,” “Grid Computing”… These require deep math and physics. Open these books and see formulas, algorithms, formal languages — and I panic. Math has always been my Achilles heel.
So I’m stuck: the “easy” engineering books no longer attract me, but advanced CS books intimidate me due to lack of fundamentals.
Reflecting on my learning style at the Software Institute: always偏向 (leaning toward) engineering, minimizing theory. Great for job hunting after undergrad — our 2000 cohort’s employment proved it. But for higher-level development, is this enough?
I see two directions in software:
- Software science: research, theory, algorithms, papers. Don’t need to know VB, VC, .NET, J2EE.
- Software engineering: follow industry trends, latest technologies, solutions. Code, gain experience, architect systems, manage projects.
I’ve always focused on software engineering. But at school, you reach a point where you can’t go deeper — engineering needs practice, not theory. Software science was neglected. Now I want to start, but hit this bottleneck.
Problem identified. Solution? Come on, come on…