Upload
vikas-kumar
View
9
Download
1
Embed Size (px)
DESCRIPTION
Knowledge
Citation preview
Harshil Lodhi, In Love with Computer from my childhood
Votes by Swapnil Agarwal, Siddhartha Nambiar, Rahul Singh, Shreyas Basarge, and 271 more.
This is a extract of a document that our seniors shared with us two years ago.
The topic was What a CS undergrad should do to compete globally?.
What technology / topics you should be aware of at the end of 4 years?
Web development frameworks
NodeJS
Python / Django
Backbone.js
Jquery
Twitter Bootstrap. This is infact a good way to learn how to write clean CSS design :), try it.
Programming:
Practice from Codechef
Topcoder may be a good choice too
Learn Javascript
Stanford projects
VNS
PintOS
Cool
Find out other projects as they are more organized and enrich knowledge
Contribute to StackOverFlow. There are a lot of other website like stackoverflow for algorithms. Join
them and contribute. Try to solve the questions people ask there.
How to get maximum out of various interesting courses and ignoring the bad ones (you yourself define
your good/bad ones. Some of us liked the following courses. ):
Operating Systems
Computer Networks
Algorithms
Compilers
Advanced courses ( Advanced OS, Topics in Networks )
Machine Learning
What should CS guys do in first year? -
Get a good hang of C and C++ first by self learning and attempt problems on SPOJ/Codechef etc.
Then in the 2nd year, they can start trying various areas (like coding, web/mobile dev, OS, Open source
etc.) and find what interests them most.
GitHub projects. Contribute to at least one open source project. Learn version control.
Just go through linux kernel design once in your 4 year period. This should be done after/along with
studying the operating systems course. You should use a virtual machine for testing the compiled kernel.
Some philosophy: Just remember whatever good work you do, you will find 10 people around you who
can do 10 times better than the work you have done in lesser time. So be humble. Learn from your
friends. The flow of knowledge should always be reciprocated, otherwise it get’s very boring for the
teacher. So discuss with friends openly and try to tell them as much as you can, so that the discussion
gets more encouraging. As I said, always take care that it should not become a student teacher
discussion, because the guy who plays the role of teacher is not getting paid here :-). Also remember
that there is no substitute to self study.
Another Alternative Plan :
Build Up a strong programming background
Learn C/C++
It’s very rare that when you gonna go into industry you will get to write code in C/C++ but C/C++ makes
the backbone of your programming skills. Also they will help you in your placements.
Learn Python
This is easy, fast, widely used language. Go for it, use it for solving programming problems there in
Codechef, Spoj, Topcoder.
Learn Javascript
Awesome scripting language, a must know for all for developers ( considering that in future everything is
gonna be about internet .. so do learn it … ). You may not want to go deep into it, until you are going for
Node.js like things. A knowledge of Jquery will be a great help :) ( Go for it only after you have sufficient
knowledge of javascript, say you have programmed extensively for 2 weeks. Again, this depends on the
individual. )
Java/Csharp [ Optional ]
Getting to know various SDK/Frameworks around [ Only jump into this when u have strong programming
background :) ]
Use projects allotted in the coursework as a place to use different sdk available.
Some sdk to experiment with:
Google App Engine
Android
iOS ( if you are an Apple Fan )
Ability to use SDK/Web services by reading documentation
This is very important, when you are in industry you are expected to learn new sdk and use them in your
code. It is a skill how well you can understand the sdk reading the documentation. This comes from
practice. Read and fail, read again and succeed.
Source - A PDF by Satyadeep Karnati and others.