-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpost.html
149 lines (117 loc) · 11.1 KB
/
post.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Shivansh Srivastava's Blog">
<meta name="author" content="Shivansh Srivastava">
<link rel="icon" type="image/png" sizes="32x32" href="./images/favicon-32x32.png">
<title>Shivansh's Blog</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this blog -->
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!-- Custom styles for this blog -->
<link href="css/clean-blog.min.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand" href="./blog.html" target="blank">Shivansh's Blog</a>
</div>
</nav>
<!-- Page Header -->
<header class="masthead" style="background-image: url('images/temp.jpg')">
<div class="overlay"></div>
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto">
<div class="post-heading">
<h1>Getting started with Computer Science as a Freshman</h1>
<h2 class="subheading">A complete roadmap for all the freshman out there.</h2>
<span class="meta">Posted by
<a href="https://sastava007.github.io" target="blank">Shivansh Srivastava</a>
on July 14, 2019</span>
</div>
</div>
</div>
</div>
</header>
<!-- Post Content -->
<article>
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto">
<p>In this era of internet there is continuous connectivity between people and constant exchange of knowledge and wisdom all around. I just want to be a tiny part of it to be able to make a big change in the society someday.</p>
<p>On multiple ocassions I searched the internet to find roadmap for learning different skills in multiple disciplines of computer science. This kind of exposure is really important for a freshman in college who are often confused by the overwhelmingly large number of disciplines in Computer Science. There is really big confusion in deciding what they should do in their college and on what topics should they invest most of their time. In this post I'll discuss what's the best way to spend your time <b>according to me</b> so that at the end of the freshmen year you are not left with any "I should have..."</p>
<h2 class="section-heading">1. Switch to Linux</h2>
<p>This is the first thing you should do after joining college, if you really want to learn and explore the stuff then make some sacrifice of windows interface and shift to a less attractive but powerful Linux. You can get started with it by dual booting your machine in Ubuntu.</p>
<!-- <blockquote class="blockquote">The dreams of yesterday are the hopes of today and the reality of tomorrow. Science has not yet mastered prophecy. We predict too much for the next year and yet far too little for the next ten.</blockquote> -->
<h2 class="section-heading">2. Learn a Programming language</h2>
<p>Start with a basic programming language, it can be either C or C++(suggested). No matter how outdated you think these languages are but once you have gained a good fundamental knowledge of these languages you can easily shift to high level languages like Python or Java. Don't wait for your profs. to start teaching (bcoz they never gonna do), there are already tons of <a href="https://www.tutorialspoint.com/computer_programming_tutorials.htm" target="blank" class="post-link">resources</a> available online which you can use to learn any programming language.</p>
<h2 class="section-heading">3. Start solving problems</h2>
<p>Now when you have understood the basic fundamentals of language, it's time to start solving problems in it. Get yourself registered on an online judge preferably <a href="https://www.hackerrank.com/" target="blank" class="post-link">Hackerrank</a> and start solving basic implementation problems.</p><p>By this time you'll notice that why native CPP is not sufficient to solve problems on OJs so it's time to master STL through <a href="https://www.topcoder.com/community/data-science/data-science-tutorials/power-up-c-with-the-standard-template-library-part-1/" target="blank" class="post-link">Topcoder tutorials</a>. Once you have gained enough confidence in solving problems shift to <a class="post-link" href="https://www.hackerearth.com" target="blank">Hackerearth</a> or <a class="post-link" href="https://www.codechef.com" target="blank">Codechef</a> and start participating in online constests to master your skills.</p>
<h2 class="section-heading">4. Build some Projects</h2>
<p>The best way to master any programming language is by doing some real life projects in it. If you are from CPP/Python background then you have plenty of options available, like try learning OpenCV library for image processing or QT/Tkinter for making GUI applications and make some cool projects with it. Here's a list of some interesting <a href="https://www.geeksforgeeks.org/computer-science-projects/#C++" target="_blank" class="post-link">projects </a>which you should give a try.</p>
<h2 class="section-heading">5. Learn about GIT</h2>
<p>Learning git is the next most important thing. GIT is a version control system that helps you maintain your codebase properly. As for now you can consider GIT as your google drive where you can place your code but it also helps to keep track of the commits which you made to your codebase from time to time. Till now you have developed a project and have solved decent number problems, so it's time to start pushing (uploading) your code to <a href="https://www.github.com" target="_blank" class="post-link">Github </a>so that other people can also see and contribute to your projects. A really simple tutorial can be found <a href="http://rogerdudler.github.io/git-guide/" target="_blank" class="post-link">here </a> You don't need to learn them all just couple of commands are enough to get your work done.</p>
<img class="img-fluid" src="images/github.png" alt="Github Commit Graph">
<span class="caption text-muted">Make your Github commit graph green like a forest</span>
<h2 class="section-heading">6. Explore different disciplines</h2>
<p> It is time to explore all the different ideas and topics that make up computer science so interesting. If you have followed all the steps till here properly then you must have gained enough skills to implement any idea in code without much efforts. You can have a look at some of the most popular domains–
<blockquote class="blockquote">
<ul>
<li>Web Development</li>
<li>Mobile application development</li>
<li>Image Processing</li>
<li>Scripting and Automation</li>
<li>Data Science (not suggested)</li>
</ul>
</blockquote>
Learn about them and build at least 2-3 projects around the domain you find interesting which you can showcase in your portfolio.
</p>
<h2 class="section-heading">7. Contribute to Open Source projects</h2>
<p>By this time you have gained enough skills to start contributing to open source projects. Explore github and find project which matches your interest, read their documentation and look if you can fix some issues or add a new feature to it. Always remember no contribution is small, even if you just fix some typo or added a brand new feature to it. <blockquote class="blockquote"> Each contribution matters!</blockquote>
If you enjoy contributing in open source projects, then don't miss the opportunity to try for <a href="https://summerofcode.withgoogle.com/" target="_blank" class="post-link">GSOC</a>. You have plenty of time in your freshman year so even if you don't make it through, then also you'll get to learn alot about how actual software development process works.
</p>
<h2 class="section-heading">8. Maintain a decent GPA</h2>
<p>This is the first thing which your potential recruiter sees when you apply for an internship or even for a full time role, if a student has a good GPA then it shows that how consistent he was throughout his academics and he'll put equal efforts during his time at job also.
<blockquote class="blockquote">CGPA is not just a number it’s a cash. The more you have, the more are the opportunities</blockquote>
</p>
<h2 class="section-heading">9. Explore as much as you can</h2>
<p>The best thing about Computer Science is the variety of disciplines it has. Nobody can master all in just four yrs of undergrad but you should never stop exploring.
Don't limit yourself to just your college, meet and connect with students from other universities around the globe, learn from them and make the world's knowledge grow. <p>
<blockquote class="blockquote">Not all classrooms have four walls and computer science is one such class with no limitations, so never stop exploring.</blockquote>
<h2 class="section-heading">10. Decide what you find interesting</h2>
<p>Once you have followed all of the above steps, you are self sustainable. Now you know that what excites you the most and what you love doing. So what next, just resarch and explore more about that domain and start hustling.</p>
<blockquote class="blockquote">You don't need to be jack of all, just master of one is enough!</blockquote>
<div id="app"></div>
</div>
</div>
</div>
</article>
<hr>
<!-- Footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-8 col-md-10 mx-auto">
<p class="copyright text-muted">Copyright © <strong><a href="https://sastava007.github.io" target="blank" style="text-decoration-line: none;">Shivansh Srivastava</a></strong> 2019</p>
</div>
</div>
</div>
</footer>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react.min.js"></script>
<script:src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react-dom.min.js"></script>
<script:src="https://cdnjs.cloudflare.com/ajax/libs/mo-js/0.288.1/mo.min.js"></script>
<!-- Custom scripts for this blog -->
<script src="js/clean-blog.min.js"></script>
<script src="js/clap.js"></script>
</body>
</html>