Due to the easy introduction to the word freelancing, those who are admitted to study computer science will start earning by freelancing very easily by thinking. Freelancing is okay too. It’s okay to think of earning. You have to earn after completing your studies. But it’s not just time to think. As soon as you get admitted, if this thought is put in the head, the study will not progress much. Maybe if you try, you can start freelancing. They will also start earning. But you have to ask yourself in exchange for what? How to prepare yourself while studying computer science.
Freelancing is easy. If you try a little, everyone can do it. You don’t have to study computer science. Since I wanted to study computer science, why should you be satisfied with a little bit? Where can you do something extraordinary? If you start working with little knowledge to do freelancing in the first year, the opportunity to learn will be wasted. I’m a freelancer myself. I don’t look down on freelancing. But I’d say build yourself first. For something better.
The first year
In the first semester, students are introduced to computer programming. Apart from this, those who are thinking of getting admission to computer science will also learn a programming language first. You can learn C/C++ or Python.
After taking a basic idea about programming, you can try to solve the programming problem by going to online jazz. There’s a lot of online jazz. You can start with https://codeforces.com/ or https://onlinejudge.org/. In the beginning, you can try to solve Ad Hoc problems. It may be difficult to understand at first. After solving two, everything will be easy. For example, UVA can start with the 100,102, 111, 113, 119, 120, 133, 136, 146, 147, and 347 problems of online jazz. These are relatively easy. Try to learn about ICPC. Those who are participating in ICPC, contact them to know how you can contest ICPC yourself.
Many people may not like competitive programming. They will have to learn the subjects of the academic course well.
The Second Year
The second year will introduce the general graph theory, and data structure, to the algorithm. These things may seem difficult to many. But learning will be useful for the rest of your life. In job interviews, these general-related questions are more common. These issues are related to the problem that is allowed to be solved in the interview. If you do not understand anything without cheating, then you have to learn with the help of a teacher or senior. Pasha Pasi online jazz will have to try to solve the problems related to these issues.
If you go to online jazz, the problems can be sorted according to the category. If the problems seem difficult, then easy problems can be found through Google. For example, you can see the problems of Beginning Algorithm Contests (Rujia Liu). In the same way, graph theory, data structure, and dynamic programming can try to solve related problems.
The third year
Generally, advanced algorithms, databases, advanced math, new programming languages, etc. are taught in the third year. In the open credit system, this can be the way. Because then the course can be taken according to your own will. However, it takes time to complete the pre-qualification courses.
So after knowing the advanced things, you can solve more problems. You can try to solve advanced problems in online jazz.
Those who do not like competitive programming can learn a popular framework of their favorite programming language.
Whether you do competitive programming or not, the following concepts should be known well by the third year.
Discrete Mathematics related algorithm: Tree (BST, Tree Traversals), Graph, DFS, BFS, Topological Sorting, Minimum Spanning Tree (Prim’s Minimum Spanning Tree (MST), BackTracking (n-Queen’s Problem), Shortest Paths (Dijkstra’s shortest path algorithm), Maximum Flow ( Ford-Fulkerson Algorithm for Maximum Flow Problem), etc.
Sorting Algorithm Insertion Sort, Selection Sort, Merge Sort, Quicksort, Counting Sort, Heap Sort, etc.
Algorithms related to data structure: Stack, Queue, Linked List, Min Heap, Max Heap, etc.
Other algorithms such as It is necessary to know about the algorithms related to Brute Force, Divide and Conquer, Greedy Programming, and Dynamic Programming.
The Fourth Year
This year, specialized courses are usually done. There is an opportunity to do major courses. Basically, we try to do a job on a subject that we do not have as a major. Some do web development-related courses. Some do software development-related courses. Some do courses in Artificial Intelligence or Machine Learning. Some do data science-related courses. Some do game development courses. If you learn the subject you will take as a major, you can do both job or freelancing.
The competitive programming that you have done for so long, it will be useful to do major courses. You can easily understand everything. At the same time, if you want to work in a good company, it is also possible. The interview will be easy for you. Now even if you do not want to do a regular job, there is no problem. You can easily start freelancing. Or you can do a remote job. Which do you like? If you start freelancing, InshaAllah’s income can also be better than others.
Most of those who do competitive programming can easily go to companies like Google, Apple, and Microsoft. You can see the preparation for the interview as a software engineer.
If someone does not want to stop here, I will suggest reading about machine learning, data science, etc. Also to start the Cagle competition.
Now someone can say, I will not do this competitive programming to gaming. I’ll do freelancing. I can also give him a simple guideline.
After knowing about programming in the first year, you have to find any major sector. Such as mobile app development, web development, software development, etc. Of these, software development is comparatively complicated. If someone wants something simple, they can learn mobile app development or web development.
Mobile App Development
In the case of mobile apps, there are two options. Android or iOS. If you want to learn Android app development, you have to learn Java or Kotlin programming. Since there are ideas about basic programming, I hope it will not be a problem to learn them. Then you can learn to create an app.
For iOS, you need to learn Swift or Objective C programming. I would suggest learning swiftly. Then you can learn iOS app development. For this, however, you will need a Mac.
If you want to learn web development
Whether it is mobile or web, different courses learned in the university will be useful in both cases. They will also be useful in algorithms, data structures, graph theory, software development processes, databases, etc. So whether you do freelancing or not, it will be useful to learn the things taught at the university. Those who want to build a career as a software engineer.
Most of the above things are related to boring studies. If you study all the time, life will become miserable. So you can go somewhere in the semester gap. The mind will be wide. It will be advisable to read other books as well as academic books. Most of the writing above is about problem-solving. If you read books outside the academic book, the thought of solving every problem in a different way will come to mind. I want to end with a sentence: