Hacker News new | ask | show | jobs
by savant 5858 days ago
The fact remains that it is much easier to:

- Perform Unit/Functional/User Test

- Use version control

- Be exposed to a variety of both tools (editors/ides) and services (github.com, getexceptional.com)

- Work in a distributed manner

- Get real world feedback on your application from people other than the Professor

- Work with more than the String class of your language

- Collaborate on related, but not dependent, code in the same codebase

- Learn different patterns (Observer, Singleton, etc)

- Develop the way you would in the real world (Scrum? Waterfall? You name it. No real cowboy coding)

when doing web development than doing most "Random Number generator" or "Porpuquine" projects assigned in CS to show recursion or proper OOP.

I'm probably biased though, as I'm a web developer who went through the Java bullshit and didn't learn a damned thing until I actually tried to make a web application that someone other than my Professor of Data Structures and Algorithms II was testing/grading/using.

ADDENDUM: As for the CS portion of the degree, learning all the aforementioned skills will hopefully allow you to more easily grasp things like the difference between PSPACE and NP-Hard problems, Genetic Algorithms, AI, etc. I'd hope to god that someone designing AI would at least use version control on their application. It would be a nightmare to find a bug that sliced a person in half when they are in surgery without a tool like "git bisect" :)