9 ms·
"Good CS knowledge" isn't 'learning git'. It's mathematics, theory of computation, recursion theory and type theory and PL, compilers, complexity theory and alg
by wfo 11y ago
"Good CS knowledge" isn't 'learning git'. It's mathematics, theory of computation, recursion theory and type theory and PL, compilers, complexity theory and algorithms, advanced data structures, concurrency and distributed systems etc. If you know these, you should be able to pick up more applied subjects on the job quickly.
You very much need a university to teach you this.
Social sciences will make you a more well-rounded person able to see past just technical concerns.
Physics and social sciences will help you understand the world around you.
And it sounds like you want university to help you write business logic for accounting software, so an accounting class will do you well.
If all you want to do is write simple code for say CRUD applications then you're right University isn't the place to learn that and a trade school would be better. In tech you already have the best trade school in the universe, the internet, and the best resume in the universe, a github.
We have learned a long time ago that letting students decide to study exactly what they want when they are 18 gives you lopsided uneducated graduates who know a tiny bit about the things they were good at already; being well-rounded is EXTREMELY valuable, even more valuable than being an excellent programmer even in tech. The hard parts of software in practice are not writing the code, they are understanding what the user/client wants and how to translate that from vague fuzzy human communication to something specific and technical.
- gravypod 11y ago> theory of computation, recursion theory and type theory and PL, compilers, complexity theory and algorithms, advanced data structures, concurrency and distributed systems etc All of those are fairly basic topics that most people can pick up in an afternoon or two. These are all things that anyone who has been programming, reading, and interacting in the field of computer science understand. I could understand someone requesting that knowledge be provided to them in a college environment. What I object to is universities charging for the "well-rounded"-ness that you speak of. Can you please define for me what it means to be well rounded? From what I have seen is that no, no one can define what it means to be well rounded. What do you have to do to be well rounded? No, no one can tell me that either. Some how having gone through a university you are proscribed this trait of being in the "know". You automatically are transformed into a scholar, a person who is now magically "well rounded". Don't get me wrong, I think that there needs to be a structured curriculum, but only of things you need to understand make it in your respective specialization. For me, I'd love to get into building compilers, operating systems, digital signal processing, and general software development. For me, I'd say this is the perfect regiment for me: * Full understanding of the computer booting process, understanding of modern processor features. - Write a self hosting operating system, bootloader, and learn to write a BIOS for an example computer * Software maintenance and revision control - Following the current industry best-standard practices * High level math with a focus in signal processing * Familiarization with X top programming languages at the time of graduation - This should include standard formatting for each language, understanding implementation details, and full familiarization with X top used libraries and standard library * Understand logic and problem solving You may notice that I have annotated some of the things I feel I should learn, others I have not. If I have annotated it, it is because I have learned to do this on my own time and I want to expand that knowledge and I know it will help me professionally. The things I have not annotated are things that I have a basic understanding of, but I need someone to teach me although I am not getting that at a university. I don't know, maybe I'm wrong about this. I think these are fairly rational claims that I am making. Maybe I'm completely wrong and being able to quote shake-spear will help me when I need to learn the documentation for int 0x13 when I need to load a file on a 30 year old IBM PC when fixing a kernel level bug at some company, or when I need to write software to process data coming from sensors at 100GHz. Edit: Updated formatting.
- solipsism 11y ago> theory of computation, recursion theory and type theory and PL, compilers, complexity theory and algorithms, advanced data structures, concurrency and distributed systems etc All of those are fairly basic topics that most people can pick up in an afternoon or two. ... I think these are fairly rational claims that I am making Um... no. Not fairly rational claims at all.
- gravypod 11y agoWhen I get into my classes at my university I get the textbook, read into the book a little and say "ok, I remember learning about this from X, Y, and Z project I've worked on". I then go on to goof off in every class, as I am doing right this moment. Nothing I have learned is of substance in my algorithms, computer science, or programming classes that I did not already know before I enrolled. I'm bored, and I want to learn something new. I'm holding out for some 300 & 400 level courses, but from what I hear the courses I am looking forward to on operating systems is nothing more than "This is how you open a file in C" and the data structures classes I look forward to is basically "this is how you define a tree and how you traverse a tree".
- brodawg 11y agoWell, maybe if you listened in class you would realize the benefit of what they're trying to teach you. If you really think you can understand complexity theory, algorithms, and advanced data structures in "an afternoon or two", I think about 90% of it went right over your head.