Skip to content

Learn full stack programming, going through every abstraction layer, from the transistor to the modern web app.

License

Notifications You must be signed in to change notification settings

coding-wiki/learn-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Learn Programming

Program: Input -> Computation -> Output.

output = f(input)

C is effectively Assembly with syntactic sugar. C + Compiler/Assembler? = Assembly/machine code

Assembler vs compiler

Curriculum

Vertical Stack Learning

Start with practical CRUD app development while looping back to computer science essentials.

What is the destination, and what is the journey? From what are we starting with?

Start with writing a Next.js app on day 1, while understanding the fundamental concepts of how a computer works. How computers communicate with each other over a network. What is happening behind the scenes?

Distill primitives and core concepts from everything. Front-end dev can be described in the core primitives of Text, View, Image. Design programs use the primitives of Rectangle/Frame, Text, Image. Code uses the primitives of string, number, etc. How can we apply common thinking to optimitally learn every concept and perform tasks with the minimal amount of work and learning? While having a deep understanding of the entire stack.

Code Examples

main.c

int main() {
  return 1;
}

hello.c

int main(int argc, char *argv[]) {
  printf("Hello, World!\n");
}
man 3 printf

Compiling a C program

gcc hello.c -o hello -Wall

Architecture

(borrow concepts from the architecture world)

Research -> Problem Definition -> Developing Alternatives -> Evaluating Alternatives -> Selection -> Communication

Design

(borrow concepts from the product design world)

Game Development (Practical Programming Experience)

  • https://www.youtube.com/watch?v=uh8XaC0Y5MA – Connecting Unity Clients to a Dedicated Server | C# Networking Tutorial - Part 1
    • Covers designing a communication protocol with UDP/TCP with a C# client and dedicated server in the context of game development.

Resources

About

Learn full stack programming, going through every abstraction layer, from the transistor to the modern web app.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published