• Stars
    star
    278
  • Rank 143,781 (Top 3 %)
  • Language
  • License
    MIT License
  • Created about 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of resources and reading material that we recommend

SDSLabs Recommends

This is a collection of all resources on technology that we use and recommend you to read with us!

We have divided these in several categories that make them easier to digest.

Contents

Starter Packs for Beginners

1. Web Development

  • w3schools: This is generally the first site that anyone has opened to get into development. It explains various concepts related to web development effortlessly with the help of examples.
  • CSS-Tricks: It is considered one of the best sites to learn about CSS concepts. Each example has code snippets with easy-to-follow explanations of the code and theory behind the specific concept. It also lists possible issues you may run into with the code that is often addressed, so you know how to tackle bugs that may pop up.
  • JavaScript30: If you want to practice your js skills but do not have ideas, this playlist is for you. It contains 30 videos, all of which try to teach a new concept with its real-time implementation.
  • JS Hero: This is a JavaScript tutorial with interactive exercises. On each page, you will find a lesson and an activity. You can answer the task directly on the page and see them running.
  • Academind: Academind has lots of different types of development videos which would scratch quite a few itches when it comes to learning something new. Apart from some web development concepts, it contains tutorials on various other CS fields like data science, android development.
  • freeCodeCamp: Freecodecamp is an open-source community as it provides many best tutorials from different instructors for Python, CSS, React, Data Science, JavaScript, etc.

2. Competitive Programming

For Practice

  • Codeforces: Codeforces is an online competition platform for coding, improving your coding skills. At Codeforces, you can both practice and compete. Apart from this, there are also editorials and discussions where you can learn about new ways used by other peoples to solve a problem.
  • CodeChef: It is similar to Codeforces. The long challenges are beneficial for starters as it provides a ten-day window to solve 8-10 problems, so you can easily algorithms and implement them.
  • Some other platforms: AtCoder, A2oj

For Theory

  • CP-Algorithms: It described many algorithms and data structures, especially popular in the field of competitive programming.
  • GeeksForGeeks: The content on GeeksforGeeks has been divided into various categories to make it easily accessible for the users. Whether you want to learn algorithms, data structures, or it is the programming language on its own, which interests you, GeeksforGeeks has covered everything!

3. Mobile App Development

Android

  • TheNewBoston Android Tutorial: This is a classic playlist of tutorials which teaches a lot starting from the Android fundamentals to creating super cool games. The author has explained the essential concepts lucidly.
  • Android Tutorial for Beginnners: Another brilliant tutorial but recently published making it in line with the newest Android concepts and incorporating them in the tutorial.
  • CSN193A - Android App Developement: A popular structured course material available freely for the ones who prefer text over videos. Really informative and hand crafted by a professon veteran in this field.
  • Kotlin Development for beginners: Another popular language for Android developent. Lately, this is gaining a lot of traction and a well quite many apps are being developed using Kotlin. This video series streamlines the learning and makes it fun.

iOS

4. Information Security

Practice

  • Overthewire Bandit: Probably the best set of challenges to get you started with security, covering a large number of areas ranging from using the linux shell to the fullest to network security. And the best part, it is itself aimed at absolute beginners.
  • Backdoor: Armed with the basics, you can set your feet on some beginner level challenges here. The first challenges are designed to be informative and simple and gradually escalates the difficulty.
  • Cryptopals: A set of challenges in increasing order of difficulty for the crypto junkies.
  • PicoCTF: Another beginner level CTF to brush up your skills.

Theoretical Concepts

  • Liveoverflow: Contains a lot of mini tutorials on topics such binary exploitation and security in general. Remember to look for the relevant playlists in this channel.
  • x86 Crash Course: A crash course on the x86 architecture.
  • Basics of Networking: An article explainng the general concepts involved in computer networks.

5. Data Science and Machine Learning

Practice

  • Kaggle: Kaggle is a no-setup, customisable, Jupyter Notebooks environment by Google. With over 19,000 public datasets and 200,000 public notebooks, this platform provides one of the best places to practice data science computational problems. This cloud computational environment supports Python 3 and R and enables reproducible and collaborative analysis where one can explore and run machine learning codes seamlessly.

Theoretical Concepts

  • ISLR: ISLR is a theory/math-intensive book & the codes are written in R and thus you may refer to the bookโ€™s python conversion here.
  • Probability and Statistics: Probability and statistics will help you understand the fundamentals behind Machine Learning Algorithms, hence, having good understanding is important. You can follow this blog series for getting started with probability and statistics.
  • CS229 / CS109: You can follow any of the two courses โ€” Andrew NGโ€™s CS229 Machine Learning or Harvardโ€™s CS109 Data Science for basic concepts of ML and DL.
  • PyTorch / Tensorflow: You can go either for PyTorch Tutorials or Tensorflow Tutorials. Start and excel in one of these as it is the implementation that matters ultimately.

Competitive Programming

  • CS 97SI Introduction to Competitive Programming: Fantastic repository of theory and practice problems across various topics for students who are interested to participate in ACM-ICPC.
  • E-Maxx Algorithms: A tutorial website which provides descriptions of many algorithms and data structures especially popular in field of competitive programming.
  • Introduction to Algorithms: It's one of the most popular textbooks for university algorithm courses. This book covered various algorithms and data structures in great detail.

Database Systems

  • Database Systems Course: Database systems is a course by Andy Pavlo based on the design and implementation of database management systems. The course also includes case studies on open-source and commercial database systems to illustrate design techniques and trade-offs. There are more courses in the series by Andy Pavlo focusing of different aspects of database systems.
  • awesome-database-learning: awesome-database-learning is a list of learning materials to understand databases internals, including but not limited to papers, blogs, courses and talks.
  • Database Internals: Database Intenals is a book to deep dive into how distributed data system works. The book contains relevant material gleaned from numerous books, papers, blog posts, and the source code of several open source databases.

Distributed Systems

  • Distributed Systems for fun and profit: Distributed systems for fun and profit is an e-book focused on distributed programming and systems concepts one will need to understand commercial systems in the data center. The book is an excellent starting point for delving into distributed systems programming with resources to dive deep into some concepts.
  • Designing Data-Intensive Applications: Designing data-intensive applications is an excellent book that bridges the massive gap between distributed systems theory and practical engineering. It helps developers make smart decisions as they design and implement data infrastructure and systems.
  • Designing Distributed Systems: Designing Distributed Systems is a 160 pages e-book containing an introduction to distributed system concepts along with a more in-depth explanation for building robust distributed systems.

Game Development

  • r/gamedev: r/GameDev on Reddit is a community of 400K+ game developers that shares the latest techniques, tips and news, all related to the AAA and indie game development industry. You will find interesting project displays, blogs and technical help in this subreddit, all at one place.
  • Game Developers Conference: The Game Developers Conference (GDC) brings the game development community together to exchange ideas, solve problems, and shape the future of the industry across five days of education, inspiration, and networking. Attendees include programmers, artists, producers, game designers, audio professionals, and business leaders. Check out the talks that happen at GDC on their YouTube channel.
  • Red Blob Games: A site with great visual and interactive explanations of algorithms and data structures, mostly related to game development. A great place to learn and understand Procedural Generation/Textures.

3D graphics

  • Paul Bourke: A site explaining stuff used in advanced 3D graphics, mostly procedural stuff. A specific page to get you started would be this Noise article where you'll find some creative uses of noise functions in terrain generation.
  • Procedural World: This site is completely dedicated to Procedural Generation. A highly suggested read would be this page which suggests an approach to flatten bumpiness in lake-beds generated due to noise.

Information Security

  • liveoverflow: liveoverflow is a member of team Alles and makes videos about CTFs, bug hunting and cool vulnerabitlies, focusing primarily on binary exploitation and reverse engineering with occasional content about web security. His binary exploitation series, though a little tough to follow at first, is a great resource for beginners looking to get started in the field of infosec
  • PortSwigger academy: PortSwigger offers detailed theory and a number of accompanying practice labs for popular web app vulnerabilities
  • John Hammond: A youtube channel which regularly posts videos related to information security (mostly CTF related). This channel demonstrates the use of tools used in CTFs.
  • Null Byte: The official Null Byte channel for video content! They focus on creating videos for aspiring ethical hackers, computer scientists, and the InfoSec community.
  • Introduction to Cryptography by Christof Paar: This is a complete basic to intermediate level course on Cryptography by Professor Christof Paar. You would love how this course has completely nil (or maybe very minimum) prerequisites. The accompanying book for this course is available here
  • Matasano Cryptopals: This is a set of challenges on Cryptography, covering all the classical topics in Cryptology, this acts as a cherry on top of the above course.
  • Cryptohack: CryptoHack is a fun platform for learning cryptography. The emphasis is on breaking bad implementations of "modern" crypto, such as AES, RSA, and Elliptic-curve.

Language Specific

C++

  • TheChernoProject: TheCherno has been a quite valuable resource while developing our game engines, viz. Rubeus and Rootex (ongoing). This YouTube channel dives into advanced topics of C++ (although his earlier videos taught Java) occasionally while keeping a solid foundation based on just one thing: Building good C++ software. You will not find any random videos on things you will probably never use.

Python

  • Sentdex: Sentdex makes beginner friendly videos about everything python. From basic python, to Flask and Django, to Deep learning and sentiment analysis. Sentdex has got it all covered and is a great resource for anyone looking to familiarize themselves with python
  • Automate the Boring Stuff with Python: Well, let's say you are py newbie. But you have a fire within to 'Build Things'. And you are to lazy to go down the long way. Then here's the place for you. An application based approach to learn one of the most popular programming languages.
  • Practical Python Programming: Learn python practically with this course.

Go

  • Go by Example: Wondering where to start learning Go? The tutorials bore you as hell? Why not learn by implementing mini examples that will keep engrossed till the end. This website covers all the important topics from the classic Hello World to Goroutines to HTTP servers using annotated example programs.
  • justforfunc: Programming in Go: This Youtube channel features some popular as well as some unconventional takes on Go programming. From trying out Tensorflow Go to gRPC, it unfolds the potential of Go in an interesting way.
  • Go Tour: It's a concise introduction to the Go programming language. Teaches all the basic concepts of the language by writing short examples of code. If you're familiar with some other programming language, it's a nice way to dive into Go.

Rust

  • The Rust Programming Language - Book: This is a book that explains Rust concepts, including Ownership and Borrowing, the key concepts of the language, and is hosted by the official rust-lang.org website.
  • Learn Rust With Entirely Too Many Linked Lists: Teaches you Rust by creating, as evident by the title, many linked lists. From explaining the basic syntax to how memory is managed by Rust, this unofficial book covers everything. Beware, this does require some prior understanding of programming and data-structures like linked lists and stacks.

Machine Learning

  • Stanford CS231n โ€” Convolutional Neural Networks for Visual Recognition: This course is a deep dive into details of the deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification.
  • Stanford CS224n โ€” Natural Language Processing with Deep Learning: This lecture series provides a thorough introduction to the cutting-edge research in deep learning applied to NLP, an approach that has recently obtained very high performance across many different NLP tasks including question answering and machine translation.
  • Deep learning book: This textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular.
  • r/MachineLearning: r/MachineLearning on Reddit is a community of 900K+ machine learning enthusiasts that shares the latest research, discussions, projects etc, pertaining to machine learning.
  • WildML: WildML is an excellent blog maintained by Denny Britz focused on Natural Language Understanding and Reinforcement Learning.

Networking

  • Beej's Guide to Network Programming: Beej's Guide to Network Programming is little how-to guide on network programming using Internet sockets, or "sockets programming".
  • Debian's linux networking guide: Debian's linux networking guide is a helpful resource to understand basics of linux networking along with introduction to concepts like ARP, Encapsulation, Subnetting etc.
  • netdevconf: Netdevconf is a community-driven conference geared towards Linux netheads with focus on Linux kernel networking and user space network apps.

Web Development

  • Mozzila Developer Network: MDN is the one stop shop for learning all kinds of open web development technologies. You will find the best resources on HTML, CSS, JS, Web APIs, etc.

System Administration

  • SysAdvent: SysAdvent is a blog that posts one article about system administration for each day of December, with the goal.
  • KataKoda: Katacoda is an interactive learning and training platform for software developers focusing on system administration. Each student is given access to a new environment without the need to install all the required components by themselves.

Android Development

  • Android Developer Fundamentals: This is a course made by Google which covers the basics of android development such as activities, intents, lifecycles, minimal UI, broadcast receivers, services, async-tasks and storage.
  • Advanced Android Development: This course also made by Google focuses on advanced android development topics like fragments, sensors, performance optimization, geo-location, animations, audio/video streaming etc.

How to add stuff?

How to add a new topic?

Open an issue/a PR and we will add it in

How to add a new resource under a new topic?

Open a PR and add it as a bullet-point.

## Previously Existing Topic
* my new resource

More Repositories

1

gasper

Your Cloud in a Binary
Go
414
star
2

Rootex

An advanced C++ 3D game engine powering an in-production game yet to be announced
C++
210
star
3

Rubeus

A cross platform 2D game engine written in C++ for beginners
C++
181
star
4

kiwi

A minimalistic in-memory key value store.
Go
159
star
5

zap-db

An easy to use JSON database written with ease of setup and memory management of slack bots in mind.
TypeScript
104
star
6

jinora

Slack webhook app to create anonymous public channels
CoffeeScript
88
star
7

hackview

webRTC based multi-person video chat with a collaborative editor.
JavaScript
84
star
8

beast

Jeopardy-style CTF challenge deployment and management tool.
Go
74
star
9

gut

A version control system with gut feeling.
Shell
59
star
10

playCTF

An Open Source CTF hosting platform
Vue
55
star
11

watchdog

๐Ÿ”‘ Lightweight server access management system, written in Rust
Rust
43
star
12

quark

An open source framework to build competitive platforms
PHP
34
star
13

gsoc

Google Summer of Code: Ideas, Links, Proposals, etc.
HTML
31
star
14

jee

IIT-JEE Name wise Result
HTML
30
star
15

studyportal-nexus

Backend API for studyportal
Python
25
star
16

DSL

Run Ubuntu easily on macOS (Big Sur compatible)
Swift
24
star
17

studyportal

The solutions portal of IITR
24
star
18

phoenix

Redis based phantomjs queue
JavaScript
23
star
19

studyportal-axion

The ReactJS frontend for Study Portal
JavaScript
22
star
20

bot

Our personal chat-bot
CoffeeScript
22
star
21

Problem-Statements

21
star
22

codebot

CodeBot is an alternative terminal style interface for Project Euler.
PHP
21
star
23

play

โ–บ Internal Music Player @SDSLabs
JavaScript
21
star
24

pinger

Pinger is an uptime and status monitoring application.
Go
21
star
25

makers-21

Makers 2021
20
star
26

gctl

Gasper on the command line. Deploy and manage applications and databases from the terminal.
Go
20
star
27

nano

A no distraction, minimal playlist player for SDSLabs' Muzi
JavaScript
19
star
28

Curvy

An addictive, multiplayer game in which one has to control a curve
JavaScript
18
star
29

gRoot

For when you need a friend with root access.
C#
18
star
30

makers

Makers tasks by SDSLabs.
17
star
31

forsit

A Cross Platform Problem Recommendation Engine
Python
17
star
32

slack-utils

Interact easily with the various slack APIs
CoffeeScript
15
star
33

slack-github

A webhook for GitHub that posts to your slack chat using an Incoming Webhook integration in slack.
JavaScript
14
star
34

portkey

File transfers using RTC over QUIC
Go
14
star
35

IITR-Shoot-Em-Up

A VR game where the player must shoot cannon balls at giant zombies to save the IITR Main Building
14
star
36

join

Our recruitment page
SCSS
13
star
37

styleguide

Internal coding styleguide for SDSLabs.
12
star
38

team

SDSLabs team page
JavaScript
11
star
39

portfolio

Portfolio repository for SDSLabs built with CSS & โค๏ธ
JavaScript
11
star
40

leaderboard

A leaderboard application to keep track of all social scores of a team
PHP
11
star
41

bruter

brute but stronger
Python
11
star
42

broCLI

A command line tool to streamline your game development process with Rubeus.
Go
11
star
43

redmine-to-gitlab

Scripts to import data from an existing redmine setup to gitlab
Python
10
star
44

katana

An advanced yet simple attack/defence CTF infrastructure in Go
Go
10
star
45

slack-lens

A search backend for Slack using Elasticsearch and MySQL
Clojure
8
star
46

martie

Party Music management application for GDG New Delhi DevFest '13
JavaScript
8
star
47

sdslabs.github.com

SDSLabs Blog
SCSS
7
star
48

gitlab-controller

Automates handling of SSH keys for Gitlab
Python
6
star
49

rusticos

Rustic OS written completely in Rust
Rust
6
star
50

lectures

Lectures taken by SDSLabs
JavaScript
5
star
51

codematics-problems

The problem repository for CodeBot. Please fork and add problems
5
star
52

muzi-scanner-old

Music Scanner for Muzi
Python
5
star
53

gbemu

A GameBoy emulator in C++
C++
4
star
54

Echo-Backups

Java
4
star
55

git-lecture

Git Lecture @SDSLabs
4
star
56

botdb

Self hostable single JSON Bucket for our Bot
JavaScript
4
star
57

gasper-dockerfiles

Dockerfiles used in Gasper (https://github.com/sdslabs/gasper)
Dockerfile
3
star
58

game-portal

CSS
3
star
59

SDSLabs-Issue-Labeler

This is test repo for github bot
Python
3
star
60

data-mining-lectures

Repository of code/presentation used for Data Mining lectures
Python
3
star
61

muzi-scanner

Python
2
star
62

syntaxerror

Landing page for Syntax Error 2013
CSS
2
star
63

presence-3D

JavaScript
1
star
64

Onyx

Indexing Engine for ECHO Search Engine
Java
1
star
65

monopoly

Monopoly is web game based on IITR map
JavaScript
1
star
66

security

Our security disclosure policy
1
star
67

BOSCH-TRAFFIC-SIGN-RECOGNITION-frontend

The frontend electron app for BOSCH-TRAFFIC-SIGN-RECOGNITION project developed for Inter IIT
JavaScript
1
star
68

coming-soon

The coming-soon page of SDSLabs
JavaScript
1
star
69

Gasper-API-Client

API Client for Gasper in javascript
JavaScript
1
star
70

Agent

Safe shutdown for servers.
1
star
71

watchdog-homepage

Website for the Watchdog tool
CSS
1
star
72

data.sdslabs.co

Collection of schema for applications of SDSLabs
JavaScript
1
star
73

nymeria

Complete reimplementation of `Login` in Go using ory.sh in our applications.
Go
1
star
74

keyhouse-template

Python
1
star
75

enroute

https://enroute.sdslabs.co
JavaScript
1
star
76

katana-services

Python
1
star