3 ms·
If you can afford it before you start your career, and if it's a good comp sci program, and if you take it seriously, then it's very much worth $40K. Or in my c
by munchbunny 8y ago
If you can afford it before you start your career, and if it's a good comp sci program, and if you take it seriously, then it's very much worth $40K. Or in my case well north of $100k.
The general pattern I see that distinguishes the self-taught or "picked it up along the way" programmers from the formally trained programmers is the theoretical base. I taught myself programming in high school and probably could have gotten a job by teaching myself the LAMP stack and skipping college. Which I did, except I still went to college.
My degree covered:
1. Linear algebra, multivariate calculus, some more heavy duty stuff for fun, discrete math, graph theory, algorithmic analysis and techniques for performance modelling
2. Computer architecture - building my own CPU, instruction pipelining, caches, branch prediction, interrupts, etc...
3. OS fundamentals (processes, threads, memory virtualization, paging, I/O, memory mapping, file system fundamentals, etc.)
4. Functional programming patterns
5. Network stack - BGP, TCP, SSL, HTTP, DNS, etc. Had to implement several of those protocols as homework.
6. Machine learning basics
7. Patterns for distributed applications (async I/O, modeling server load, techniques for decentralized decision-making, re-entrant operations...)
8. Relational algebra and database algorithms
9. Cryptography basics
I would never have picked all of that up after four years on the job because it's just really hard to fully immerse yourself in theory heavy subjects when you have a day job. The day job heavily incentivizes you to get better at what you already do. The degree lets you spread out.
I think the best way to describe how I feel about it is this: if you think in terms of iterating on various skills, the four year degree is probably the best way to make sure you never have to do the first round of reps again.