Computer Science - Things you should know

COMPUTER + SCIENCE are the gifts that are accompanying us and making our everyday life easier. Computer science is a dynamic, yet beautiful area that requires a lot of dedication and time. It is rapidly growing and has become a integral part of the world. The market is expanding and they are looking for talented and passionate people in this field. 

On my experience, sometimes young people confuse the term -computer science-, or expect certain things related to this major, when in fact the reality is totally different...

1. It is A LOT of theory

Majoring in computer science means that you are going to get a more general knowledge, which means more and more theory. Most of the beginning courses are theory, as students need to firstly know the fundamental of CS, understand the pillar of this science and then continue to practice. Even the first programming language students learn are firstly based on theory (professors can stay 2 hours explaining the theory behind & 1 hour practice) and then the logic will stay the same for other languages in the future of the academic years. It may be confusing, but tese kind of subjects are important, since this will be the first encounter with CS and you need to know things since the beginning. Now, it may get boring when you will hear 1 hour of history on how the first computer was invented or how processors work, but this are certain information that students may think that are not worth the time, but is the knowledge needed to expand your baggage. 

2. NOT only MATHS 

I have some friends on the same major as me, who were not aware of the difficulty of the schedule. Of course, computer science is the one subject which contains more math subjects than others,calculus, statistics, discrete maths, algorithms etc., but this is not the main point. Sometimes mathematical models can take us to wrong paths.  I see mathematics as path to get a better understanding on programming, but is not necessary the most important asset to CS. As I said, my friends are great in maths, even better than I am, but still struggle a lot with programming. This is where the commitment part comes out; how much commitment and time you give to yourself balancing your knowledge on mathematics and on programming. 

3. Lot of old methods on your way

As mentioned before, when studying computer science you will get a general knowledge: expect the theory behind it, some good modern skills are ignored. You will not find much information on cloud computing, Node.js, React or game design on your university curriculum. Instead you will spend your whole semester learning some programming language, which is a procedure followed year after year from academic's of the university. The only "update" students can find is by learning these modern technologies by themselves. So, student deal with subjects that are rarely used and this may impact the way to thinking and problem solving. It is useful to think about the complexity of an algorithm, but few need to worry about linked lists. That is a fact to be mentioned because we have created a trust on standard libraries, then dealing with data structures on our own. 

This is something what will always be present, as new technologies come on surface over years and it may be difficult for the universities to adapt with it and find the right specialists for teaching. 

4. NOT only copy and paste

If I would say that I have not copied code from somewhere and place it on my IDE, it would be a freaky lie. Part of programming is also reusing or reproducing code; you do not need to invent the wheel from the beginning. Still, it is important to alter the piece of code you are getting to your project. It may be the solution for the moment, it runs, its perfect, but it can look like the black sheep on your code. Try to adapt with other part of the coding, classes or others. It may contain duplicate code or it can be more advanced for you. The main part when copy&paste code is to understand it, not only you improve your skills but also with better understanding you can reuse the code on other scenarios as well. 

5. NOT like in the movies

There is no way you are going to hack a server on only 10 minutes. Sometimes beginners are excited and pushed from story line on a movie they have watched, and when facing the reality of programming they get disappointed. Over time with strategies to penetrate/hack environments are becoming more difficult, so that fake movie scenario needs to be eliminated on your mind. I have already written some tips and my experience on the determination and time you should dedicate this field. You can check HOW TO GET STARTED and GOOD PROGRAMMING GUIDE