What did you study each year in college?
Posted by Arunia_@reddit | learnprogramming | View on Reddit | 7 comments
Hiii guys! Soo I am a high schooler and thought I could self learn comp sci, although I have realized I get distracted pretty quickly (watching different programming language tutorials that do nothing to help my web dev skills), or often dont know what to do or where to start learning from,
Soo I tried looking up college syllabus and courses of comp sci classes, focusing especially on web dev and machine + deep learning, and then got even more confused since I didnt know which one to pick, MIT, Stanford, UCs, there's just so many.
And sure, I can follow roadmap.sh, but often times I dont know which ones to follow. I know I need to do backend and AI roadmaps, but shouldn't I know some math too? If yes, which topics? What about networking? Hardware/OS? So yeah I end up spiraling, try to learn everything, then realize I learnt nothing meaningful.
If y'all could share what topics you guys learned in college or what you studied to self teach yourself web dev and/or machine and deep learning, that would help me out a ton!
mandzeete@reddit
1st semester:
1)Refreshment course in mathematics - for who wish to improve whatever they learnt in high school or who wish to go over the high school stuff.
2)Academical English.
3)Introductory course to programming (Python)
4)Advanced introductory course to programming (Python) - for those who already knew how to handle Python.
5)Introduction to university studies - basically how can we apply for a scholarship, where we can register our courses, how a dean office can help us, etc. Informative "course" for all the university and campus related stuff.
6)Refreshment course in physics - same as point 1 but for physics.
7)Introduction to information systems - a pre-req for taking Databases course.
8)Mathematical analysis - worse math than what you had in high school
9)Introduction to CS studies - similar to 5) but about our CS program.
10)A brief history of CS.
11)Discrete mathematics
2nd semester:
1)Cybersecurity
2)Legal aspects of software development - laws and regulations and such.
3)Mathematical analysis 2 - even worse than in the 1st semester. By this moment you had more letters and symbols in math than numbers.
4)Hardware
5)Computer networks
6)Java
3rd semester:
1)Web applications 1 - introductory course to different web application technologies and such.
2)Automated testing - unit testing, integration testing, E2E testing, mocking.
3)Linear algebra
4)Physics - a bit worse than your high school physics.
5)Telecom technologies
6)Java OOP (object oriented programming)
4th semester:
1)UI/UX
2)Cybersecurity administration and management
3)Systems theory
4)Software development - e.g. introduction to actual industry level software development processes. Project management. Code reviews. Jira tasks. Sprint reviews. etc. The organizational part of software development. + a web application that we had to build in a team during that course.
5)Numerical methods - basically applied linear algebra
6)System administration
7)Databases 1
5th semester:
1)Algorithms and data structures (Java based)
2)Electronics
3)Databases 2
4)Automated control systems - whatever one is doing with MATLAB and Simulink.
5)Web application security
6)Web applications 2 (Java, Spring Boot)
7)Preparation for a thesis defense - e.g. how one should express himself while he is defending an academical work.
8)Logical programming - Prolog
6th semester:
1)Cybersecurity incident handling
2)Entrepreneurship
3)AI and machine learning
4)Thesis project
plastikmissile@reddit
Why do you want to self learn? Why don't you go to study CS in college?
Arunia_@reddit (OP)
Because I am a high schooler and can't attend college just yet
plastikmissile@reddit
Since you can't really replicate a university education in the short time left to you as a high schooler, I'd suggest you start with an intro course to CS. Harvard's famous CS50 is perfect for this. It's a free college level course and touches upon lots of CS subjects.
Another good resource is NAND to Tetris. It takes you through the steps of making a Tetris clone starting with the absolute basics of the hardware, through computer architecture, to implementing software.
Both are structured courses, so they're not just random tutorials and YouTube videos, and will give you a very solid base in which to build further.
Beregolas@reddit
I went to 2 German universities, and at all of them (and as far as I know in CS this is quite normal in general), only the first 3.5 Semesters were planned out. Everything beyond that was selected more or less freely from all available courses.
Also keep in mind that self learning computer science is really really hard, because as a scientific discipline it requires a LOT of theoretical knowledge and ways to think, both of which cannot be graded or tested automatically. Programming on the other hand is a craft, which is pretty easy to self learn and requires a lot of similar, but also different and fewer skills.
My syllabus was (approximately):
Sem1:
Maths 1 (analysis, set theory, logic)
programming 1 (functional languages)
philosophy (minor)
Sem2:
Maths 2 (linear algebra)
programming 2 (imperative language / C + Java)
System architecture (transistor to compiler)
philosophy (minor)
Sem3:
Basics of theoertical computer science
Basics of Datastructures and Algorithms
Maths 3 (multidimensional analysis, statistics and sotchastics)
Sem4:
Basics of Cybersecutiry
Software Engineering (programming project seminar)
multithreaded programming
And then I took specialization courses for computer graphics, operating systems and data structures and algorithms.
About half of that is not really interesting to a pure programmer: You basically don't need anything but programming 2, maybe DSA baiscs (although mine were more theoretical than you need, including proofs of correctness and so on) and SE/multithreading and maybe cybersecurity, which are 5 courses at most out of my bachelor.
If you want to go self taught programmer, picking a roadmap from roadmap.sh like Backend and working through that 100% will give you a much easier start. If you want to be a computer scientist, I can only say: Go to college/university. Failing that, try to get good books on every topic I listed above, and maybe take another look at the syllabusses from other universities as well. This will take years and require the ability to comprehend complex topics in maths and computer science basically without enough help.
Arunia_@reddit (OP)
thank you so so much! this helped a lot
Bunker_King_003@reddit
If you want programming, you could follow freecodecamp, cs50 or the odin project resources. There are so many available to start.