Source: XKCD Sandwich
- What to do THIS Summer?
- TMI? Start Basics here
- Want a Good List of new languages to learn? Check this out.
- Move stuff with mobile phones? Find that here
- Want to get your hands dirty with some Web Development?
- Better yet, How about Mobile App Development
- Fancy some Data Magic
- But first, better your logic abilities and programming skills
- Some Game Development
- General Exploration and the World of CS
- Some technical Books to read
- Other Miscellaneous Things to do to make life easier.
- Advanced Technologies and stacks you can checkout. Beware, they may seem complicated...
- Some slight flavour of Motivation for yall.
- Stuff you DON'T want to end up doing in your free time.
Hi everyone, If you have no clue what you will do after the first 4 exciting days at home, we have come up with a bunch of interesting things you could try out.
-
Check out what comes inside Computer Science by watching this video Map of Computer Science. [Bonus: Map of Mathematics ]
-
Install a Linux based OS (Ubuntu,Arch Linux) on your laptop and learn how to operate Linux based Operating Systems.
-
Make it a point that whatever(yes!! literally everything) you do in your computer you do it through command line. Even when it comes to copying, moving or renaming files. Refrain from using file explorers and GUI clients until you really get a firm grip on Linux commands.
-
Make a Github Account (Very Important).
-
Install and Learn how to use GIT from here (Very Important).
-
You need to learn at least five languages by the time you pass out of college. Some really good languages both for competitive programming (mainly for object oriented programming) and web development are:
-
Learn C++: Here
-
Learn how to use STL with C++: Here
-
Python: The Python Tutorial
-
Java:
- Part 1 and Part 2 (A good introduction to Object Oriented Programming Concepts)
- Official Java Tutorials by Oracle
-
Golang: Here
-
Rust: Here (Mainly for system programming languages and device drivers. Check it out if you're interested and read the documentation.)
-
-
Buy a Raspberry Pi and make a small project with it (list of projects here).
-
Buy Arduino and make a small project with it (list of projects here).
-
Learn about IoT and what it exactly is and how to make something that is IoT enabled.
-
Start with https://www.w3schools.com/ It is the best place for starting web development.
-
Learn how to make a website with a FrontEnd Framework (Angular JS, React JS, Vue JS).
-
Learn Django - a web framework in python if you are a fan of DRY principle and pythonic cultures. CodingEntrepreneurs is an awesome youtube channel to get started with django.
-
Learn android app development using Kotlin or Java. This is a great place to start. The guy explains both theory and practicals with the right balance.
-
Check out Corona SDK. This will get you up and running very quickly. It uses a language called Lua which is very similar to python as the base.
-
Also this is Kivy for you python aficionados. Do give it a quick visit.
-
For ios/android development, check out Flutter. Has a differnet approach to front end unlike others. Follows reactive design principle. (Like ReactJS). Is programmed in Dart (similar to c, Object oriented and easy to pick up). Made by google. And builds both ios/android app from just one code. Here's how to Get Started.
-
Learn Swift for iOS app development.
-
For Cross platform app development use React Native.
-
Learn about database system like MySQL or MongoDB.
-
Learn how to use MongoDB or MySQL and interface it with some language like C++ or JavaScript.
-
Learn how data centers and large data clusters work.
-
Try solving atleast 2 problems a day from HackerRank / CodeChef / HackerEarth.
-
Try Learning more about Data Structures and implement them in at least one language.
-
There are a lot of "learn the language" domains like this one for python on hackerrank. They are also Really good for practice.
-
Explore stuff from Github Explore.
-
Look at this blog for more on JS and ReactJS.
-
Here are some websites where you can find news about upcoming technologies and really awesome stuff
-
Here is a comprehensive list of cs books that everyone should definitely read.
-
Try Reading CLRS, you can easily get a pdf online.
-
These are places where you can get any programming book you will ever need for free !!!
-
If you are interested to develop some Augmented Reality, Vuforia (used along with unity) is for you!
-
Learn how to use APIs (All the Google Applications like Drive, Calendar, Contacts, YouTube are mostly on GitHub).
-
For example, try accessing or downloading your drive files through your command line and try printing your liked videos from YouTube by using their APIs.
-
You can imagine anything more you want and play around with them which in turn gives motivation.
-
-
Sign up for Github Student Developer Pack to get some sweet goodies (like free private repositories on github).
-
Check out GSOC (Google Summer of Code) and what is it about. Wikipedia link: Google Summer of Code
-
Check out Google Code Jam. Wikipedia link: Google Code Jam
-
Check out this amazing list of courses from the world's best universities.
- Docker
- Kubernetes
- The above two are related. So check out both of them.
- Docker Ebook Please try out and practice. Hit the command line.
- MainFlux IoT
- ThingsBoard IoT
- Both of the above IoT platform are used extensively in startups.
- Rancher OS (The OS itself is completely dockerized and so are all of its services.)
- Gitter It is not a technology but a tech community platform where developers help each other just like Stack Overflow but faster help given.
Some motivation so that you don't think you're a piece of **** This is for people who can listen to this and won't get bored immediately.
- Read a lot. Read large amounts of documentation. There are two types of intelligence. 1. Technical. 2. Functional.
- Always go for Functional. Technical intelligence is "you do it when you're given a task. You somehow find out a way of achieving it. Like a robot."
- Functional is when "you know why you're doing it. In that way you find out ways of optimising stuff and improving.
- Go deep into the mechanisms of anything. Fingertip understanding. One thing I personally found out after years of being in fear was "Nothing will happen to your computer machine. If something goes wrong you can always re-install anything." You just gotta have some ISOs in hand when stuff goes crazy.
- Read more than you do. The worst part of implementing anthing or trying out new technologies is reading the official documentation. But cold coal doesn't give you ironed clothes. You have to work hard in order to live an extra ordinary life.
-
Don't waste your time binge-watching a TV series.
-
If you go to youtube to see a video, then don't click on the suggested videos after that, it will take you into an infinte spiral of endless entertainment. Disable autoplay.
-
Don't sleep 12+ hours a day.
-
Don't be lazy.