4 ms·
As a university student, I feel the same way that there is an infinite amount to learn, but towards mathematics and computer science, which themselves are very
by siraben 6y ago
As a university student, I feel the same way that there is an infinite amount to learn, but towards mathematics and computer science, which themselves are very broad fields. Since the software industry appears to change trends at the drop of a hat, learning a specific framework or library has a short shelf-life (insert deprecated but popular at the time technology here).
Perhaps out of necessity, one useful criterion I've had for myself is to emphasize composable and widely applicable knowledge. For myself, some examples come to mind:
- learning to use a text editor well (Emacs) allows me to edit effectively across programming languages, file formats and operating systems
- learning logic, algebra and programming language theory allows me to reason about and structure programs (written from assembly to Haskell) more precisely, and write interpreters and compilers grounded in well-defined semantics
- learning build systems (e.g. Nix) allows me understand how to package software written in different languages, and how to structure my own projects to make them work across platforms, and how to make reproducible builds
- learning category theory allows me to ask the right questions when I learn a mathematical structure, from topology to algebra (what would the morphisms/products/limits/functors be?), and gives insight into how programming languages organize their own abstractions
Of course, specific knowledge about X technology would still be needed to get things done, but when the winds of change blow, hopefully the deep concepts I've spent time studying will resurface in a new light. Only time will tell.
- uzakov 6y agoI think you are on a right track and seem to know way more than many CS grads know when they finish university!