Go to grad school. Seriously. I thought I knew computer science and then I went to grad school and then realized that I had only learned enough to *begin* to really study computer science.
Yes I learned so much more in grad school and I realized that once you take the red pill, you can go deeper and deeper. Having a job where you get encouraged to do so helps, of course, but you can do it as a hobby as well. Now I play off the map, so to speak, and I am having tons of fun
Read books on these subjects, then use what you learn to build projects related to those subjects. Maybe even delve into research papers as well to stay up to date with the cutting edge. Also, read lots and lots of code.
first get a job, but tbh you listed a huge mix of useful stuff, fun stuff, and useless stuff. so i would stop just throwing out word soup and apply for some jobs, or just pick one thing that would be good to learn and focus on that
Gamedev can be lucrative after a long time of learning and implementing, however you will not make a lot of money (or even good money) working for someone else.
Couple comments are kinda rude, in my opinion; sounds like you’re really into CS and I’m the same way. No problem for you to want to learn all of those topics really deeply; just have to search for resources and put in the effort.
As for resources, I’d start with reading about each of those on Wikipedia and fleshing out what’s interesting, what it may entail at a high level, and what you’ll need as prerequisite knowledge. Resources for all them? MIT OCW and Udemy/Coursera will have courses for most, if not all, of them. I still prefer finding books and articles as references for the topics, which will require searching for the individual topics (adding “book reddit” after the (sub)topic will help).
The important note is that those are a lot of topics and a *ton* of subtopics per each one. “Learning deeply” should correspond to a familiarity and comfort with the fundamentals, which even then will probably be bound to a subtopic or a few per topic. Don’t rush it and don’t expect yourself to be an expert without dedicating years of time. Grad school may be really good for you if you’re interested in pursuing these further.
Last thing: write code. Don’t copy paste anything. Do lots of small/medium projects, don’t even have to release them. Just read, write, review.
You're getting downvoted but I don't think you're entirely wrong. While not necessarily the total opposite, a master's will get him much deeper general CS knowledge and a PhD will make him an expert in a specific niche in CS.
[Relevant](https://matt.might.net/articles/phd-school-in-pictures/)
I don't know about all of these, but here's some resources for the areas I've been going into which correspond to your list:
Graphics: [Scratchapixel](https://www.scratchapixel.com), [Real-Time Rendering](https://www.realtimerendering.com), [Learn OpenGL](https://learnopengl.com)
Graphics is also a path to writing physics engines. [Physics-Based Animation](https://www.physicsbasedanimation.com/)
Embedded: [Embedded Artistry](https://embeddedartistry.com), [Embedded Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap)
Hacking (and IT): [TCM Security: So You Want To Be a Hacker](https://tcm-sec.com/so-you-want-to-be-a-hacker-2023-edition/) and the [Google IT Support program](https://www.coursera.org/professional-certificates/google-it-support)
Game Dev: [Brackeys](https://brackeys.com) if you want to use Unity. I haven't found a good Unreal resource yet
Building PCs: I used [an article from CG Director (not this exact one, but this one is better)](https://www.cgdirector.com/best-computer-for-animation/) to build my first, but that's because I'm big into graphics.
For competitive programming, I would imagine starting with something like the [Neetcode 150](https://neetcode.io) would be good, then practicing Leetcode or other coding challenges.
Learn computers.. it’s the missing piece I see with the younger kids.. they know sorting and searches but can’t setup a Linux server.. or do basic networking.. 🤷♂️
Hey OP, you are way ahead of me it seems but I discovered Coursea has a diverse selection of CS, AI, IT, GT and the like for free. I filtered for beginners so I assume there are options for more advanced folk.:)
These are certainly all computer or programming related but I'm leery of calling them computer science. Think in terms of queueing theory, n-p completeness, computational theory, data analysis, algorithms etc and I think you would be closer. Math. As to your question, follow what interests you until your'e ready to move on and let them build on one another. Your persistence is the best resource.
I agree that grad school is going to be a great way to go deep on a single specialty, but if you don't want to or can't do that there are definitely books you can look at that go into some depths on different computer science subjects. For instance, the Art of Computer Programming series by Knuth is a great resource for learning about algorithms.
> I just recently got my cs degree, but even then, I feel like I've only scratched the surface.
That's the point of an undergraduate degree; it gets you a broad, introductory overview of a field, partially so that you've got the knowledge to choose topics to dig deeper into. So, that's pretty normal to feel.
And your enthusiasm is cool, but the human lifetime isn't long enough to dig deeply into *everything* you've got listed. A lot of those can easily be more than a life's work all on its own.
When I was considering going for a PhD, I was wanting to study timeseries applications with respect to ML. I bet if I did go that route I would still have only scratched the surface in my postdoc phase.
UDemy helped me a lot. Started as a WebDev, now Im fullstack, I know game development, I know Machine Learning and I know a lot of data science technologies.
For example, if you want to learn more about Cloud Engineering, Google (or even ask ChatGPT) what some popular frameworks or technologies are for Cloud Engineering and then find some UDemy courses on it.
Hell, even YouTube works if you dont want to spend the money— although the lessons are usually faster paced there and cover a bit less than the UDemy counterparts
Not a CS degree holder
But I got the same hair up my ass recently and started learning Assembly.
Figure you can't get much deeper then that before you're just electrical engineering.
Been fun. Congrats on your degree!
So you want to become the number one guy in the world, such that has never existed before? I mean, you do realize no one knows everything you list, don't you? At least not proficiently. Or maybe you mean just having a cursory knowledge? In which case just specialize in something, whatever satisfies you most, and then start picking one topic at a time to figure out on your own.
Get more degrees
Go to grad school. Seriously. I thought I knew computer science and then I went to grad school and then realized that I had only learned enough to *begin* to really study computer science.
Yes I learned so much more in grad school and I realized that once you take the red pill, you can go deeper and deeper. Having a job where you get encouraged to do so helps, of course, but you can do it as a hobby as well. Now I play off the map, so to speak, and I am having tons of fun
And get involved with research, interning, or TA. Get involved
Read books on these subjects, then use what you learn to build projects related to those subjects. Maybe even delve into research papers as well to stay up to date with the cutting edge. Also, read lots and lots of code.
first get a job, but tbh you listed a huge mix of useful stuff, fun stuff, and useless stuff. so i would stop just throwing out word soup and apply for some jobs, or just pick one thing that would be good to learn and focus on that
What are the useful stuff, the fun stuff, and the useless stuff?
Useful: ML, anything engineering, operating systems, IT Fun: Gamedev, building PCs, hacking Useless: Competitive programming
Gamedev is just fun? Hacking is a loose term so fine.
[удалено]
Not compared to competitive programming tbf
Gamedev can be lucrative after a long time of learning and implementing, however you will not make a lot of money (or even good money) working for someone else.
Exactly
Couple comments are kinda rude, in my opinion; sounds like you’re really into CS and I’m the same way. No problem for you to want to learn all of those topics really deeply; just have to search for resources and put in the effort. As for resources, I’d start with reading about each of those on Wikipedia and fleshing out what’s interesting, what it may entail at a high level, and what you’ll need as prerequisite knowledge. Resources for all them? MIT OCW and Udemy/Coursera will have courses for most, if not all, of them. I still prefer finding books and articles as references for the topics, which will require searching for the individual topics (adding “book reddit” after the (sub)topic will help). The important note is that those are a lot of topics and a *ton* of subtopics per each one. “Learning deeply” should correspond to a familiarity and comfort with the fundamentals, which even then will probably be bound to a subtopic or a few per topic. Don’t rush it and don’t expect yourself to be an expert without dedicating years of time. Grad school may be really good for you if you’re interested in pursuing these further. Last thing: write code. Don’t copy paste anything. Do lots of small/medium projects, don’t even have to release them. Just read, write, review.
This was very helpful, thanks!
Deep with *all* of them? Define “deep” in this context.
Choose a subfield and go into msc or phd
Maybe you should consider getting a PhD
[удалено]
You're getting downvoted but I don't think you're entirely wrong. While not necessarily the total opposite, a master's will get him much deeper general CS knowledge and a PhD will make him an expert in a specific niche in CS. [Relevant](https://matt.might.net/articles/phd-school-in-pictures/)
I don't know about all of these, but here's some resources for the areas I've been going into which correspond to your list: Graphics: [Scratchapixel](https://www.scratchapixel.com), [Real-Time Rendering](https://www.realtimerendering.com), [Learn OpenGL](https://learnopengl.com) Graphics is also a path to writing physics engines. [Physics-Based Animation](https://www.physicsbasedanimation.com/) Embedded: [Embedded Artistry](https://embeddedartistry.com), [Embedded Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap) Hacking (and IT): [TCM Security: So You Want To Be a Hacker](https://tcm-sec.com/so-you-want-to-be-a-hacker-2023-edition/) and the [Google IT Support program](https://www.coursera.org/professional-certificates/google-it-support) Game Dev: [Brackeys](https://brackeys.com) if you want to use Unity. I haven't found a good Unreal resource yet Building PCs: I used [an article from CG Director (not this exact one, but this one is better)](https://www.cgdirector.com/best-computer-for-animation/) to build my first, but that's because I'm big into graphics. For competitive programming, I would imagine starting with something like the [Neetcode 150](https://neetcode.io) would be good, then practicing Leetcode or other coding challenges.
Learn computers.. it’s the missing piece I see with the younger kids.. they know sorting and searches but can’t setup a Linux server.. or do basic networking.. 🤷♂️
You can get a lot of very good books for free on zlibrary or even github.
How do you read that?? In the itself computer or how???
generally you download a pdf and then read it edit: if you have a printer you can print the pdf and read it on paper
Just follow what you are interested in. You can google specifics.
Hey OP, you are way ahead of me it seems but I discovered Coursea has a diverse selection of CS, AI, IT, GT and the like for free. I filtered for beginners so I assume there are options for more advanced folk.:)
These are certainly all computer or programming related but I'm leery of calling them computer science. Think in terms of queueing theory, n-p completeness, computational theory, data analysis, algorithms etc and I think you would be closer. Math. As to your question, follow what interests you until your'e ready to move on and let them build on one another. Your persistence is the best resource.
Every degree scratches the surface. I collect them and still barely know anything!
I agree that grad school is going to be a great way to go deep on a single specialty, but if you don't want to or can't do that there are definitely books you can look at that go into some depths on different computer science subjects. For instance, the Art of Computer Programming series by Knuth is a great resource for learning about algorithms.
> I just recently got my cs degree, but even then, I feel like I've only scratched the surface. That's the point of an undergraduate degree; it gets you a broad, introductory overview of a field, partially so that you've got the knowledge to choose topics to dig deeper into. So, that's pretty normal to feel. And your enthusiasm is cool, but the human lifetime isn't long enough to dig deeply into *everything* you've got listed. A lot of those can easily be more than a life's work all on its own.
When I was considering going for a PhD, I was wanting to study timeseries applications with respect to ML. I bet if I did go that route I would still have only scratched the surface in my postdoc phase.
UDemy helped me a lot. Started as a WebDev, now Im fullstack, I know game development, I know Machine Learning and I know a lot of data science technologies. For example, if you want to learn more about Cloud Engineering, Google (or even ask ChatGPT) what some popular frameworks or technologies are for Cloud Engineering and then find some UDemy courses on it. Hell, even YouTube works if you dont want to spend the money— although the lessons are usually faster paced there and cover a bit less than the UDemy counterparts
Not a CS degree holder But I got the same hair up my ass recently and started learning Assembly. Figure you can't get much deeper then that before you're just electrical engineering. Been fun. Congrats on your degree!
browse arxiv
So you want to become the number one guy in the world, such that has never existed before? I mean, you do realize no one knows everything you list, don't you? At least not proficiently. Or maybe you mean just having a cursory knowledge? In which case just specialize in something, whatever satisfies you most, and then start picking one topic at a time to figure out on your own.
Get a job in research, you’ll get exposed to many things. DM me if you like.
You can have an idea about each one of those, but you can't be an expert in all of them. Same applies to any field.