Awesome Computer Science
Curated lists of various fields in Computer Science.
This list is currently in progress and probably will continue to be as amazing new technologies, projects, articles and tutorials are continuosly being developed and published. These are the important links that we have accumulated while doing our work and we encourage and insist you to contribute to this list. It is open for everyone to contribute to.
Command Line
General Stuff
- Exploring the basics of computer science
- General CS Books, Images and Resources
- Basecs Podcasts
- YouTube playlist on design patterns present in "Head First Design Patterns" book
- Good blog series on design patterns
Machine Learning and Deep Learning
- Dynamic Evaluation for PyTorch Models
- CSS229: Machine Learning by Stanford
- d2l.ai - Course on Intro to Deep Learning
- Nice tutorials on PyTorch
- mlcourse.ai - A good course on Machine Learning
- Playground for Building Neural Networks
- Guide on Back Propogation in Neural Networks (Medium)
- Data Science iPython Notebooks by Donne Martin
Natural Language Processing and Deep Learning
- Awesome NLP
- Open Parallel Corpus
- Stanford CS 224N NLP course
- Language Sentence Pair Datasets which can be used for Neural Machine Translation
- Speaker Diarization
- FastBert
- Word2Vec
- spaCy Universe - Collection of many great resources developed with or for spaCy
Computer Vision and Deep Learning
- CS231n: Convolutional Neural Networks for Visual Recognition
- GAN Labs - Awesome animations on GANs
- GAN Zoo - List of all the available GANs
- PyImageSearch - Good set of tutorials on Computer Vision
Blockchain
Interview preparation
- 12 Week Interview Preparation Curriculum: Leetcode post
- Programming Camp Syllabus
- Firecode.io - Online coding interview preparation platform
- Programming interview questions list by Arden Dertat
- Java interview questions
- Interview process course by Sunny Patel
- List of questions for different topics by Yang Shun
- Software Engineering Prep Doc by Google
- How can building a heap be O(n) time complexity? When inserting a node into a heap is O(logn) time, shouldn't building a heap be O(nlogn) time in worst case?
Competitive Programming
- Collections of algorithms by William Fiset
- Reddit - Daily or weekly problems on computer science and competitve coding
- Article on how to solve interactive problems
- List of all past, on-going and upcomming contests from all around the world
- Algorithms with Rachit (Youtube Channel)
- Visualize Data Structures & Algorithms
- Competitive Programming Tutorials on TopCoder
- Interactive Coding challenges (By Donne Martin on Github)
C++
- Difference in OOP concepts Java vs C++
- Friend function and classes in C++
- Understanding Memory consumptions
System Design
- System Design by Gaurav Sen (Youtube Playlist)
- System design concepts explanation for interview preparation (By Donne Martin on Github)
- Lock Free Queues - pros/cons and how to implement one
Cryptography and Cyber Security
DevOps
Computer Networks
Internships and Summer Programs
- Google Summer of Code
- Summer Internships Tracker
- GSoC 2019 Application experience and guide by Pujan Mehta
- GSoC 2019 Application experience - Ruturaj Gujar
- Winter Internship Experience at a HFT firm - Dhruv Bhagadia
Other Useful Stuff
- [yapf] Google’s python code formatter (Like Black)
- This is awesome if you listen songs on spotify - Open Source
- Secure tunnels to localhost (ngrok)
- devSwag.io - Swag Opportunities for Developers
- Testing a GitHub Pull Request (StackOverflow)
- Git Large File Storage - If there any large files in your project then git uses text pointer so they become lightweight.
- Using Virtual Environment with Jupyter Notebook (StackOverflow)
- Levels to a software engineer's progress