Resources for software development
![]() | This article is incomplete. |
The internet is filled with a plethora of resources that might overwhelm someone just getting started in software development. Here is a list of resources for basics that can be a good place to start.
For each topic, there is at least one reading source and one video tutorial source. All the resources are open and free.
Which language?[edit | edit source]
- This list is incomplete; you can help by expanding it.
We don't have any definitive answer for this question, but if you want to [1]:
I want to learn how to | Consider using |
---|---|
make iPhone Apps | Swift |
make Android Apps | Java |
build a website | JavaScript, CSS, HTML5 |
write Windows desktop applications | C# |
make 2D/3D games | JavaScript, C#, or C++ |
program Arduinos/micro-controllers/robots | C |
do scientific/mathematical computing or data analysis | Julia, Python, R, or Matlab |
do automation and scripting | Many languages (Python, Ruby, Bash, Powershell, AutoHotKey...) |
Programming Languages[edit | edit source]
Language | Reading Resources | Video Tutorials | Others |
---|---|---|---|
C | |||
Go | |||
Python | |||
Rust |
|
Tools to use[edit | edit source]
Git[edit | edit source]
Git is a version control software which is used by most of the open source projects.
Useful resources for learning Git:
- Official Git website (The most important one)
- Github's resources for learning Git
- How to fork, branch and send a PR
- Git Magic - Stanford
- Git Concepts simplified
- Get git working under proxy
- Understanding Git Conceptually
- Understanding Git's core
- Ry's Git Tutorial
- For the video lecture course: https://www.udacity.com/course/how-to-use-git-and-github--ud775
Frontend Web Development[edit | edit source]
Language / Framework | Reading Resources | Video Tutorials |
---|---|---|
HTML and CSS | ||
Javascript | ||
React JS | ||
Angular JS |
Backend Web Development[edit | edit source]
- This list is incomplete; you can help by expanding it.
Topic | Reading Resources | Video Tutorials | Others |
---|---|---|---|
Flask | |||
Node JS |
Devops[edit | edit source]
Topic | Reading Resources | Video Tutorials | Others |
---|---|---|---|
Docker |
|
||
Kubernetes | |||
System Design |
Database Development[edit | edit source]
P.S: Reader please be mindful that database development and using a database (such as MySQL, PostgreSQL, MongoDB etc.) is quite different, this section has resources related to database development.
- Reddit: r/databasedevelopment ,
Books[edit | edit source]
- Designing Data Intensive Applications
- Database Internals
- Readings in Database Systems (The Red Book)
- The Internals of PostgreSQL
Courses[edit | edit source]
- The Databaseology Lectures (CMU)
- Database Systems (CMU)
- Introduction to Database Systems (Berkeley) (See the assignments)
Build your Own Guides[edit | edit source]
- chidb
- Let's Build a Simple Database
- Writing a SQL database from scratch in Go
- Build your own disk based KV store
- Let's build a database in Rust
- Writing a document database
- Let's build a distributed Postgres proof of concept
Data Engineering[edit | edit source]
App Development[edit | edit source]
Topic | Reading Resources | Video Tutorials | Others |
---|---|---|---|
Android | |||
Kotlin | |||
React Native |
| ||
Flutter |
Game Development[edit | edit source]
- This list is incomplete; you can help by expanding it.
Blockchain[edit | edit source]
- This list is incomplete; you can help by expanding it.
Topic | Reading Resources | Video Tutorials | Others |
---|---|---|---|
Bitcoin | But how does bitcoin actually work? - 3Blue1Brown | ||
Ethereum | |||
Solidity | |||
Hyperledger Fabric |
Important Basics[edit | edit source]
- This list is incomplete; you can help by expanding it.
Linux[edit | edit source]
- This list is incomplete; you can help by expanding it.
- It's FOSS: Beginner friendly website focusing on open-source in general and Linux in particular.
- Dual boot Ubuntu alongside Windows - It's FOSS
- Introduction to Linux:Overview of the Linux Operating System, geared toward new users.
Opportunities[edit | edit source]
- This list is incomplete; you can help by expanding it.
Misc[edit | edit source]
- Teach Yourself Programming in Ten Years
- School of SRE
- Every Programmer Should Know
- Project Based Learning
- Github Student Developer Pack
- Roadmap to explore various fields
- How to Ask Questions Smartly
- The Art of UNIX Programming
- Resources for studying Computer Science