What university courses are actually useful for a developer
Tags: discuss, learning
Published: 2022-01-22 18:35:35

As a computer science university student and a developer, I'm always asked the question "How much of the courses you study at the university are used in the real world". Well, the answer is kinda complicated. Here's what I think:
Let me explain
## University is all about fundamentals
What you learn in university especially in bachelor's, is less about making you a developer. Rather, you gain overall knowledge about different aspects of computer science. It is important to know that there are things that you don't know :)
Thus, it is easy to have this misconception that what you learn at the university is somewhat useless as it is not often directly used in your daily work as a developer. The key point here is the fact that you can be a very very good developer without passing a single course in the college or university but, the university tries to provide you with a base on which you can build up your skills.
Think of it as a foundation that helps you learn skills faster and more efficiently. For example, you can develop the best websites without any courses passed at the university. But there, you learn about a series of courses like internet networks, design patterns, algorithm's time complexity, etc. that helps you be more flexible while designing and developing a website.
## University has math! 
So many courses at the university are theoretical. These courses are designed to cover mathematical or theoretical aspects of computer science. *These courses might not be used in all fields in the real world or some of them might only be important while you want to scale up the project or work with large data.*
For example in a small project, the time complexity of algorithms like search or sort might not be that important but if you are into this stuff or working on a scalable project, these concepts definitely come into play.

Now that we have covered these two important points, I want to list some of the most important courses that you learn as a computer science student:
###1. ICSP (Introduction to Computer Systems and Programming):
This is the most basic course and on so many occasions the first time students actually code. If you are a new student, take this one seriously but if you are a developer, you already know everything :)

###2. OS (Operating Systems):
To know the stuff happening under the hood in the operating system will give you an important vision that makes you a better developer. 
If you haven't passed this course yet or are self-taught, [this video playlist](https://www.youtube.com/playlist?list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O) is a good source to get familiar with the core concepts.

###3. Advanced Programming (or courses like design patterns):
OOP and design patterns are two important concepts to know. So many developers are familiar with OOP but fewer might know about design patterns that come with object-oriented methods. 
[This course](https://youtube.com/playlist?list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc) by Christopher Okhravi is very helpful if you're interested. 

###4. Network:
This is an important one too. To take your skills to the next level, knowing about the network is key. 
If you want to know more about networks, I suggest the following YouTube playlist: https://youtube.com/playlist?list=PLDQaRcbiSnqF5U8ffMgZzS7fq1rHUI3Q8

###5. Data structures and algorithms:
If you are not really into competitions, chances are that you might not take algorithms too seriously. As mentioned before, some of these concepts, especially some specific algorithms, are too complicated to apply that our everyday apps don't need them. But having a grasp of DS (Data structures) and DA (Design of Algorithms) will give an edge while designing and implementing technologies. 
The sources for these courses are numerous! My favourite one is [this one](https://youtube.com/playlist?list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu) by WilliamFiest. 

###6. AI and ML:
Even though you are only making apps and have not ever thought about learning about AI or machine learning, these concepts are trends in our world. Overall knowledge about them and even getting deep into the algorithms will for sure make you more creative and flexible. 

##Conclusion
Although university might seem impractical at the first glance, if you look at it as a place to make your network or get overall knowledge about everything in this field, you will realise that getting a college degree might not be that bad of an idea. 
We also looked at some important courses that I find useful and also source to learn them by ourselves.
I'd be more than happy to know about your ideas and experienced. Thanks for reading!