Skip to content

Instantly share code, notes, and snippets.

@lavantien
Last active May 12, 2024 16:15
Show Gist options
  • Save lavantien/dc730dad7d7e8157000ddae845eddfd7 to your computer and use it in GitHub Desktop.
Save lavantien/dc730dad7d7e8157000ddae845eddfd7 to your computer and use it in GitHub Desktop.
Modern Software Engineering Resources

Modern Software Engineering

Knowledge and Education should be open and free. Hierarchy and Exploitation must be abolished.

Wayback Machine (archive of internet), Anna's Archive (open ebooks/papers library), 1337x/bk (archive of all media).

  • Z. (down) Notes below. Avoid all funnel sales and paid bootcamps at all cost, and don't ever work free for someone (avoid take home projects, one way interview, etc.), you're just feeding the scammers and grifters while wasting your time and resources. Also don't forget proper OpSec (don't talk about your personal details, identifiable pictures/location/voice/metadata; aware of social engineering, sunk cost fallacy, FUD, FOMO, and identity theft; and do threat modeling, etc.), self defense gears, and physical/mental strength.
  • A. (go) Development Environment (10 items) (Linux, Neovim, Dev Tools, Languages, Configs, Security, and Dotfiles).
  • B. (go) Complementary Subjects (157 items) (Linguistics, English, Security, OpSec, Psychology, Anthropology, History, Philosophy, Economics, Business, Cooking, Xenology, and Self Defense).
  • C. (go) Fundamentals of Science and Technology (95 items) (Logic, Physics (Classical/Quantum Mechanics, Thermodynamics, Electricity, Relativity, Electronics, Electromagnetism, Optoelectronic, Semiconductor, Fusion), Mathematics (Calculus, Linear Algebra, Probability/Statistics, Group/Category/Ring Theory, Applied Math), Game Theory, Geology/Geography, Business, Biology, Medical, MCAT, and Their Applications).
  • D. (go) Computer Science and Competitive Programming (181 items) (CPU/OS/Linux/CMake, Git/Vim/Cronjob/Regex, Object Oriented/Functional Programming, Lua/Python/JavaScript/C/Haskell/C++, Data Structures and Algorithms, Artificial Intelligence, Design Patterns, Database Design, Networking/Security/Encryption/Cryptography, Distributed Systems, and System Design).
  • E. (go) Low-Level Programming (10 items) (Assembly/C, Embedded Systems, Interpreter/Compiler, Control Theory, and Robotics).
  • F. (go) Game Dev and Digital Arts (192 items) (Game Theory, Worldbuilding, Game Design, GDevelop, Lua/Love2D, Python/PyGame, TypeScript/KaboomJS, JavaScript/Canvas/Phaser, C/Raylib, Godot, C++/OpenGL, C#/Unity, Unreal Engine, Aseprite/LDtk/Tiled/Krita/Inkscape, Gimp/Blender/Kdenlive, BeepBox/LMMS/Audacity, and GodSVG/Pixelorama/SpookyGhost/KennyAssets).
  • G. (go) Fullstack Dev and Backend Engineering (279 items) (Figma/JS/TS/Vue/React/NextJS, Java/Spring, Go/Pprof/DevContainers/Testcontainers, Python/Django, Bun/HTMX, C#/DotNet, PostgreSQL/MongoDB/SQLite/Supabase, REST/GraphQL/GRPC-Protobuf/NSQ/NATS/Kafka, NGINX/Certbot, Docker/Kubernetes/OpenTelemetry/Prometheus/Grafana, AWS/Jenkins/Ansible/OpenTofu (Free Terraform), Angular, Dart/Flutter/Android, and Rust).
  • H. (go) Optional Practice (31 items) with other stacks (Zig, Svelte, PHP/Laravel, Ruby on Rails,Swift/Vapor, Cobol/Mainframe, Others, CNCF IoT Edge Computing, Data Science/Machine Learning/Large Language Model/PyTorch, and CTF/Reverse Engineering/Hacking).
  • I. (go) Preparation for Job Search and Realities of the Industry (40 items) (Head Ups, Pathways, Resume, Interview, and Reflections).
  • J. (go) Pet Project Ideas (20 items) and advice on open-source contribution.
  • K. (go) Interview Questions (50 items) that I've been asked (Fundamentals, DS&A, Go, JS, and React).
  • L. (go) Interview Preparation Template (7 sections) (Frequent questions, how to avoid traps and answer them properly).
  • M. (go) Example 7-month and 100 days SWE L5 Plans with 100K SLOC project and Some non-free resources (4 sections) (books & Udemy courses, wait for sales).
  • N. (go) Streamlined Noob to SWE L7 Roadmap (43 + 481 items) with 10 milestones (Effective Training, Frontloading Method, Foundations, Fundamentals, Languages, Tools, Game Dev, Web Dev, Infrastructures, and Production-grade Software).
  • O. (go) Productive Daily Plan (2 sections) for NEETs (Daily normal days and Uposatha/Sabbath days).
  • P. (go) Philosophy in Action (3 sections) (Internal Analysis, External Influences, and Layman's Primer).
  • Q. (go) Chess Practice (25 items) (Fundamentals, London, CaroKann, NimzoIndian, and Bullet).
  • R. (go) Speedcubing Resources (39 sections) (Rubiks, Big Cubes, Blindfolded, and Side Events).
buddhistanarchism

(a manifesto).

Hierarchy is inherently problematic because it will always have the problem of asymmetries: power and information, and thus, will inevitably lead to corruption and exploitation.

Copyright Law is a capitalist mechanism created for the perpetuation of domination and monopoly. All form of knowledge and education should forever be open and free without any restriction.

"Wage slavery refers to a person's dependence on wages or a salary for their livelihood, in a world where the distribution of and conditions for these wages is determined by a specific class."

It's just rebranded feudalism, where the elites own all the lands and means of production, most wealth are inherited, self-made is a myth created to gaslight the masses, while slavery becomes systemic. "Butttt, you can choose your employer." Good luck saying this with a hobo, a neet who for years cannot land a single job, or a minimum wagie. The vast budget (thievery via taxes) in the army, wars, law enforcement, consumerism propaganda, and entertainment industrial complex is solely for protecting the system and to make the population dull and indulging. The elites, meanwhile, prepped for the worst with their underground cities and luxury New Zealand villas. They can just safely farm the population, and everything is going as planned.

"A wise man should avoid unchastity as a pit of glowing charcoal. If unable to lead a celibate life, he should not go to another’s wives." - KN Snp 2.14

(up).


A. Development Environment

B. Complementary Subjects

C. Fundamentals of Science and Technology

D. Computer Science and Competitive Programming

E. Low-Level Programming

F. Game Dev and Digital Arts

G. Fullstack Dev and Backend Engineering

H. Optional Practice with other stacks

I. Preparation for Job Search and Realities of the Industry

J. Pet Project Ideas

Try to build them yourself without watching tutorials. I gathered some these on the internets, not all are my original ideas. If you want to work with an open source project, contact their team first and see how it goes. Please don't spam open source projects fishing for contribution, it's just not worth it and you only degrade yourself, only if you're using the software and run into problems, then try report the issue and contact the maintainer first. Check out the Nix Drama.
Build ones that are not too basic and you can explain them well. Also check the project based learning list.

  • 1. Something that you are interested on or have a need to solve, your personal website, discord bots, tools and mods for hobbies or video games you're playing, emulator, memory trainer, repertoire trainer, maze solver robot, automated irrigation system with an app for calibrations and monitoring, sudoku solver, ant simulator, genetic algorithm visualizer, invent a new board game, schema generator, or just simply automate and sync your daily repetitive tasks (up).
  • 2. Try to create something that will help people, make the world a little bit better for somebody (up).
  • 3. A fully functional text editor that support undo/redo, search/replace, tables, and drawing (up).
  • 4. A free blog/writing collection website with headless CMS (up).
  • 5. A statistical analysis and solution website that based on the United Nation's 17 Sustain Development Goals (up).
  • 6. A peer-to-peer messaging app (up).
  • 7. A habits, health, and nutrition tracker (up).
  • 8. A free course website (Netflix clone but instead of movies you deliver educational content) (up).
  • 9. A content/project management system with task synching and scheduling (up).
  • 10. A 4chan clone (up).
  • 11. A multi-threaded web indexing spider (up).
  • 12. An e-commerce website/app (Amazon clone) that integrate with map, payment, and delivery (up).
  • 13. A decentralized peer-to-peer (not blockchain) barter transaction app with proper backend system that can support a large Anarchy society (up).
  • 14. 3D Printing hardware and software (up).
  • 15. A grid gallery portfolio website with pure HTML/CSS and host on GitHub Pages (up).
  • 16. A personal project/habit/income/expense planner from scratch with NextJS (up).
  • 17. Code 15 classic games from scratch with ECS using Rust/Bevy and Aseprite/LDtk (Street Fighter, Pokemon-like RPG, Shoot 'em Up, Bomberman, Tower Defense, Graph Visualizer, Pacman, Tetris, Galaga, Asteroid, Arkanoid, Frogger, Snake, Cellular Automata, and Pong) (up).
  • 18. A turn-based 2D RPG with physics-based-slingshot-combat from scratch with Defold/Krita and release on Steam and Google (up).
  • 19. Setting up a production-grade REST API with tests, autho/en, caching, migration, PostgreSQL database, and GitHub CI in Go from scratch with Docker/Pprof and AlwaysData/Oracle Cloud Free Tier hosting (up).
  • 20. A fullstack market app for mutual aids with distributed system in Go, NodeJS, GRPC, NextJS frontend, and Docker/K8s/OpenTelemetry/Prometheus/OpenTofu/AWS (up).

K. Interview Questions

  • That I've been asked (Fundamentals, DS&A, Go, JS, and React) (up).

  • 1. (DSA) Explain and compare Object Oriented, and Functional Programming; explain MVC, MVVM, and ECS.

  • 2. (DSA) Explain the concept of array, linked list, tree, hash map, stack, queue, and priority queue.

  • 3. (DSA) Explain DFS, BFS, topology sort, and their practical applications.

  • 4. (DSA) Implement a string reverser, palindrome checker, prime number checker, or reverse a linked list.

  • 5. (DSA) Solve an array problem like two sum; or a 2D array problem like find all isolated islands.

  • 6. (DSA) Solve a dynamic programming, a medium string manipulation with trie, or an easy graph problem (up).

  • 7. (JS) Explain hoisting, scope, and closures; explain expression precedence.

  • 8. (JS) Difference between var, let, and const; explain null, undefined, NaN, and Optionals.

  • 9. (JS) Explain DOM manipulation; how to center a div both horizontally and vertically.

  • 10. (JS) Explain class, arrow function, map-filter-reduce.

  • 11. (JS) Explain async and await; list and explain some ES6 features.

  • 12. (JS) Explain Node's single threaded event loop model.

  • 13. (JS) Explain callback and promise.

  • 14. (JS) Implement word count; tricky questions asked to do in one single loop.

  • 15. (JS) Implement an event emitter from scratch.

  • 16. (JS) Implement map-filter-reduce from scratch.

  • 17. (JS) Implement promise and async/await from scratch; resolve chain promises.

  • 18. (JS) Implement signal from scratch (up).

  • 19. (React) What's the difference between function component and class component.

  • 20. (React) What are props and how children prop works.

  • 21. (React) How Virtual DOM works.

  • 22. (React) Explain all built-in React hooks; explain react router.

  • 23. (React) Best practices of using Redux, Store, State Management, Context and Redux Middleware.

  • 24. (React) How to use GraphQL with React; the difference between REST and GraphQL; the n+1 problem.

  • 25. (React) Implement a listing page in React with TDD using a public API.

  • 26. (React) Build a virtual DOM from scratch (up).

  • 27. (Go) What's the difference between ACID and BASE; explain in the context of PostgreSQL and MongoDB.

  • 28. (Go) Which features of PostgreSQL/MongoDB did you use; drop all required data in PostgreSQL.

  • 29. (Go) How to use JSON data in PostgreSQL; how to store money and discounts in PostgreSQL/MongoDB.

  • 30. (Go) Explain normalization and indexing; concurrent transactions, blocks, and isolation levels.

  • 31. (Go) How to read 10gb of data from PostgreSQL; how would you read a 10gb file with Go.

  • 32. (Go) What's the difference between HTTP, TCP, UDP, WebSockets, and GraphQL.

  • 33. (Go) Explain HTTPS; what's the difference between certificate and public key.

  • 34. (Go) What's the difference between symmetric and asymmetric encryption.

  • 35. (Go) Name and explain some important services in a cloud platform; cronjob scheduling.

  • 36. (Go) How to scale with and without a cloud platform; how Kubernetes works.

  • 37. (Go) Identify bottleneck in production environment; explain tracing, distributed logging, and metrics (up).

  • 38. (Go) Explain some design patterns that are commonly used in Go.

  • 39. (Go) The difference between parallelism and concurrency; Go's concurrency features and their use cases.

  • 40. (Go) How Go's scheduler works; compare it with the OS scheduler.

  • 41. (Go) Practical ways to use closure in Go.

  • 42. (Go) Explain context package in Go; how would you implement time out; how would you handle errors.

  • 43. (Go) How would you write unit tests in Go; explain mocking and dependency injection.

  • 44. (Go) How would you test a database layer, a service layer, a handler layer, or a 3rd-party callback layer.

  • 45. (Go) Explain common concurrent patterns in Go and their usages.

  • 46. (Go) Explain CAP theorem; how Event Driven works in Go services; orchestrate a micro-services architecture.

  • 47. (Go) Explain producer, consumer, and offset in Kafka; how to concurrently consume and retry.

  • 48. (Go) Implement a task with generics; design and implement an inventory and storefront system.

  • 49. (Go) Implement a parallel URL fetcher with 5 async processes and print a specific field in the JSON respond.

  • 50. (Go) Implement a REST API with a database layer, caching, and rate limiting using only standard libs ((up).

L. Interview Prep Template

I'm looking for a full-time software development job in X (A, B, C; great if remote). Back-end or full-stack regarding anything Go and/or JavaScript (NodeJS, ReactJS, NextJS). I love to work on a quality product or project with proper git workflow, code review, and unit tests. My salary requirements: $X-X/month gross with standard benefits (9-to-5, 13th month pay, full social insurance, health insurance, yearly health check, etc.).

Introduction (up)

  • I'm Lavantien, a Y born in X, and I studied computer engineering at UIT, majoring in embedded systems, and minoring in robotics. Now I'm working mostly as a web developer, I enjoy programming and solving problems. I mostly use Go and JavaScript. I can do front-end but I love develop my back-end skill because there's always something new to learn, like networking, protocols, security, dealing with distributed systems and databases, setting up a robust testing pipeline, and working with third-party integrations and cloud services. During the 7 years of my web development career, I've been involved in some large projects like ETCC E470 and Ackio Mesh, but most of them were small projects and startups where I had the chance to build things from the ground up and participate in the whole development process.

Values that I will bring to the team (up)

  • Good sense of responsibility.
  • When in doubt, I always directly ask questions and clarify with others. I'm open to feedback and welcome criticism.
  • I am good at analyzing problems, reading documentation, and searching for solutions. I always try to find the best ways to save costs and improve profitability for my clients.
  • I have a strong foundation of core programming techniques, data structures and algorithms, design patterns, and networking. I have a robust mental model for debugging and writing code.
  • And I am very intimate with all aspects of backend development and all the nuances of the Go and JavaScript languages. I am very familiar with complex code bases, distributed systems, and third-party integrations.
  • I focus on team objectives. I have a win-win mentality.
  • I love to learn from other people and to constantly improve myself.

Potential incompatibilities with company culture (up)

  • I don't want to speak with anyone unless it's necessary for the job.
  • I don't like to work on a legacy code base or just pure maintenance work.
  • I don't like most of the meetings where people are just bantering and wasting time on what could be just email.
  • I don't like to give vague estimations. I hate it when PMs give unrealistic timelines just to
  • I might come across as being critical, as I don't want to flatter.
  • I love meritocracy. I hate micromanagement, nepotism, cronyism, and favoritism regarding performance reviews.

Description of my favorite project (up)

  • It was a remote international team at Dropezy, a quick commerce app that allows customers to quickly buy necessities like food, vegetables, water, toiletries, etc., applies discounts with a seamless payment process, guaranteed delivery in under 15 minutes, no matter where they are located in supported cities. Our code base is entirely in Go and Flutter. We use GRPC with Protobuf for communication, HTTP callbacks for third-party integrations, and Docker Compose for local development. Our code base is comprised of four monorepos: one for the backend, one for the mobile app, one for the protobuf schemas, and the last one for platform tools like Kubernetes, Terraform, and GCP. I'm fortunate to join in very early in the development process, and I'm also fortunate to be a part of the first production release. My work there focuses mostly on the inventory-order-payment-delivery pipeline, delivery services integration, research on geolocation optimization, writing unit tests to ensure proper coverage, and lastly optimizing MongoDB aggregation pipelines.

Points I would like to clarify with HR (up)

  • Real salary range? Full social insurance? Payment method and frequency?
  • Yearly health checkup? PTO policy? OT policy? Work log?
  • 13th month policy? Project bonus?
  • Who are the clients of the company? What are the domains of projects in the company? What are the sources of funding? How stable is the profitability of the company?
  • What is the longest project in the company, and how did it end up?
  • Layoff possibility? "We can keep the contract but no more salary, or you can write a resignation letter"?
  • Is there nepotism in the company (e.g., HRM is the CEO's wife and CTO is the CEO's brother)? Cronyism? Favoritism regarding performance reviews? Micromanagement?

Questions I would like to ask the tech lead (up)

  • Is there a minimum standard for the code base? Like, regression testing, 80% on the test coverage, or all PRs need to be reviewed and rebase before merging? And what does the CI pipeline look like?
  • Are there sufficient onboarding documentation and a development wiki? How many SLOC in the code base?
  • What are the problems that you expect this position to solve? Could you describe a typical ticket or story?
  • How are stories and tickets divided? What does a typical sprint look like? Timeline and release cycle?
  • How are estimations and decisions made? Evident-based solutions, data-driven approach, i.e., profiling and benchmarking first? Does the team keep decision records?
  • I've heard about the term, but what are your definition of Clean Code? Who decided whose code is cleaner?
  • How many users are the system serving? What kind of architecture? Why chose microservices? What are the network latency between each service and the amount of serialization and deserialization on each request? Are you solving problems you don't have?
  • How does the team evaluate performance? What are the specific metrics? Are there peer reviews?
  • What are the types of meetings? How does each of them go? What does a typical working day look like?

Feedback for the interview process (up)

  • Try to focus on the positive.

M. Example 7-month and 100 days SWE L5 Plans and Some non-free resources

An examples of a SWE L5 roadmap with 100k SLOC project in 7 months (using Google Gemini), and another 100 days plan created manually:

The prompt

Make a 7-month (2100 hours total, 300 hours per month, 70 hours per week, 10 hours a day) preparation for job seeking SWE L5 plan focus on these subjects, with the emphasize on efficiency and minimal context switching:

  • data structures and algorithms, database design, system design, distributed systems
  • go: composition, error handling, concurrency, middlewares, testings, memory model, garbage collection, containerization-docker/compose, profiling-pprof, tracing-opentelemetry/prometheus/grafana
  • postgresql, mongodb, sqlite, migration, mock
  • restapi-http, grpc-protobuf, grpc-web, graphql, websockets, nsq, nats, authentication and roll-based authorization
  • git workflow with rebase/pull request/review/merge, ci/cd with github actions
  • orchestration and deployment: helm, kubernetes, local deploy with minikube, cloud basics with aws
  • javascript: runtime model, garbage collection, async, fetch, implement js features from scratch, html/css, vue, react, nextjs
  • a complex project: the mutual aid project, where users login via google oauth2 can post offers, request aids, get notified, have category to subscribe to, have a voting based merit system, fraud detection and anti cheat system, there'd be no payment everything will be via barter library economic system, and delivery is arranged between 2 users
  • Tech Interview Handbook, Front End Interview Handbook, FreeCodeCamp's Coding Interview Prep, Principles of Algorithmic Problem Solving, Algorithms for Competitive Programming, Competitive Programmer’s Handbook, Project Euler, Rosetta Code, CSES Problem Set, Blind's 75 LeetCode Problems, Advent of Code (up).

Here's a 7-month (2100 hours) preparation plan for SWE L5 job seeking, focusing on efficiency and the provided subjects with minimal context switching

Months 1-2 (600 hours): Foundational Knowledge (10 hours/day) (up)

  • Data Structures & Algorithms (DSA) (300 hours):
    • Dedicate 5 hours daily to practicing data structures and algorithms on platforms like LeetCode.
    • Focus on problem-solving techniques, time/space complexity analysis.
  • Database Design (150 hours):
    • Allocate 2.5 hours daily to learning relational (SQL) and NoSQL (MongoDB, PostgreSQL) database fundamentals.
    • Understand normalization, indexing, query optimization, and data modeling.
  • System Design (150 hours):
    • Spend 2.5 hours daily grasping high-level system design principles like scalability, reliability, and fault tolerance.
    • Practice designing systems for real-world scenarios with books like "Designing Data-Intensive Applications".

Months 3-4 (600 hours): Go Programming (10 hours/day) (up)

  • Core Go Concepts (300 hours):
    • Dedicate 5 hours daily to mastering Go fundamentals like composition, error handling, concurrency, and memory management.
    • Build simple Go applications to solidify understanding.
  • Advanced Go (150 hours):
    • Allocate 2.5 hours daily to delve into middlewares, testing frameworks (Go testing), and profiling tools (pprof).
    • Learn containerization with Docker/Compose and tracing with OpenTelemetry/Prometheus/Grafana.
  • Messaging Systems (150 hours):
    • Spend 2.5 hours daily understanding messaging systems like NSQ and Nats.
    • Implement them in Go applications for asynchronous communication.

Months 5-6 (600 hours): Databases, APIs, DevOps, Cloud & Frontend (10 hours/day) (up)

  • Databases (100 hours):
    • Allocate 1.5 hours daily to refining your knowledge of PostgreSQL and MongoDB, including advanced features like transactions, indexes, and replication.
    • Learn SQLite for simple data storage needs.
  • API Design & Protocols (100 hours):
    • Dedicate 1.5 hours daily to mastering REST APIs (HTTP), gRPC (protobuf, gRPC-web), WebSockets, and GraphQL.
    • Implement these protocols in Go for your practice projects.
  • Git & CI/CD (100 hours):
    • Spend 1.5 hours daily mastering Git workflow with rebase, pull requests, review, and merge practices.
    • Learn CI/CD principles and implement automated workflows with GitHub Actions.
  • Orchestration & Deployment (100 hours):
    • Allocate 1.5 hours daily to understanding container orchestration with Kubernetes.
    • Learn to deploy applications using Helm charts and practice local deployments with Minikube.
  • Cloud Basics (100 hours):
    • Dedicate 1.5 hours daily to gaining essential cloud computing knowledge with AWS, focusing on core services like EC2, S3, and VPC.
  • JavaScript Fundamentals (50 hours):
    • Spend 1 hour daily solidifying your understanding of JavaScript's runtime model, garbage collection, and asynchronous programming.
    • Learn to build basic web applications with HTML, CSS, and vanilla JavaScript.
  • Frontend Framework (50 hours):
    • Choose a framework (Vue or React) and invest 1 hour daily in mastering its core concepts and best practices.
    • Build a small frontend application using your chosen framework.

Month 7 (300 hours): Final Project & Interview Prep (10 hours/day) (up)

  • Mutual Aid Project (200 hours):
    • Dedicate 3 hours daily to implementing the Mutual Aid project using Go, chosen database, and messaging systems.
    • Integrate user authentication (Google OAuth2), offer/aid posting, notification system, category subscriptions, voting system, fraud detection, and barter library economic system.
  • Technical Interview Prep (100 hours):
    • Utilize resources like Tech Interview Handbook, Front End Interview Handbook, FreeCodeCamp's Coding Interview Prep.
    • Focus on algorithms, data structures, system design, and behavioral questions.
    • Practice problem-solving on LeetCode (Blind 75), Project Euler, Rosetta Code, CSES Problem Set, Advent of Code, allocating 1.5 hours daily.

Key Points for Efficiency and Minimal Context Switching: (up)

  • Create a Detailed Schedule: Allocate specific 1-hour slots within your 10-hour study blocks for each subject, including breaks.
  • Utilize Online Resources: Leverage online courses, tutorials, and practice platforms for efficient learning.
  • Build a Portfolio: Showcase your skills through the Mutual Aid project and smaller practice projects.
  • Participate in Online Communities: Connect with other developers for discussions and feedback.
  • Adapt and Adjust: Be flexible and adjust your schedule based on your learning pace and progress.

Remember, consistent effort and focused learning are crucial for success within this accelerated 7-month timeframe.

Manual Planning

Make a 100 days of 8h/d plan exclude weekends to confidently apply SWE L5 positions:

  • 1. GitHub Skills (go).
  • 2. Udemy: The Complete JavaScript Course 2024: From Zero to Expert
  • 3. Youtube: Golang Tutorial (go).
  • 4. Youtube: PostgreSQL Tutorial Full Course 2022 (go).
  • 5. Youtube: GitHub Actions Certification Course (go).
  • 6. Youtube: Learn Algebra 1 and 2 in One Video (go).
  • 7. Youtube: Learn Trigonometry (go).
  • 8. Youtube: Learn Learn Precalculus (go).
  • 9. Youtube: Learn Probability (go).
  • 10. MDN: Curriculum (go).
  • 11. MDN: Getting Start with the Web (go).
  • 12. MDN: JavaScript (go).
  • 13. Youtube: Node.js Crash Course 2024 (go).
  • 14. Youtube: React Crash Course 2024 (go).
  • 15. Coursera: Algorithms, Part I and II (go, go).
  • 16. FrontendMasters: The Last Algorithms Course You'll Need (go).
  • 17. Project Odin: Foundations (go).
  • 18. Project Odin: Full Stack JavaScript (go).
  • 19. Youtube: Go and React Query (go).
  • 20. Youtube: Complete Next.js Course (go).
  • 21. Youtube: Build and Deploy Banking and Finance App with NextJS 14 (go).
  • 22. Front End Interview Handbook (go) while continue building React/Next Projects throughout the process (split 6/2 for example, dedicate 2h everyday building projects, while 6h for progressing) (go, go).
  • 23. Tech Interview Handbook (go) (up).
  • 24. Youtube: Errichto's Algo Lectures (go).
  • 25. Book: Principles of Algorithmic Problem Solving (go).
  • 26. Algorithms for Competitive Programming (go).
  • 27. Book: Competitive Programmer’s Handbook (go).
  • 28. CSES Problem Set (go).
  • 29. Blind 75 Must Do Leetcode Problems (go).
  • 30. Advent of Code (go).
  • 31. Youtube: Kubernetes 101 Workshop for Absolute Beginners (go).
  • 32. Kubernetes Ultimate Hands-on Labs and Tutorials (go).
  • 33. Kubetools - A Curated List of Kubernetes Tools (go).
  • 34. Youtube: AWS Cloud Complete Bootcamp Course (go).
  • 35. AWS Workshops (go).
  • 36. Udemy: Backend Master Class (request free coupon from the author) (go).
  • 37. Youtube: Understanding and using NATS Server in Golang (go).
  • 38. Youtube: Tiago's Go videos (go).
  • 39. Youtube: ProgrammingPercy's Go videos (go).
  • 40. Youtube: Anton Putra's DevOps videos (go).
  • 41. Gokatas (go).
  • 42. Start applying to every single decent platform after 100 work days while continue training (up).
  • 43. Spring Academy: Spring Framework Essentials (in case apply to Java jobs) (go).
  • 44. Book: Let's Go.
  • 45. Book: Let's Go Further.
  • 46. Udemy: Working with Concurrency in Go.
  • 47. Book: Learn Concurrent Programming with Go.
  • 48. Book: 100 Go Mistakes and How to Avoid Them.
  • 49. Udemy: Design Patterns in Go.
  • 50. Book: Introduction to Algorithms, Fourth Edition.
  • 51. Udemy: Building Web Applications with Go.
  • 52. Udemy: GRPC Master Class.
  • 53. Udemy: Working with Microservices in Go.
  • 54. Udemy: Docker and Kubernetes: The Complete Guide.
  • 55. Book: A Philosophy of Software Design, 2nd Edition.
  • 56. Book: Writing an interpreter and compiler in Go.
  • 57. Book: Designing Data-Intensive Applications.
  • 58. Book: Distributed Services with Go: Reliable, Scalable, & Maintainable Systems (up).
  • 59. Udemy: The Ultimate React Course.
  • 60. Final Project: Mutual Aid Platform while building React/Next Projects (go, go).
  • 61. Book: Distributed Algorithms, Second Edition - An Intuitive Approach.
  • 62. Book: Patterns of Distributed Systems.
  • 63. Book: Amazon Web Services in Action, Third Edition - An in-depth guide to AWS.
  • 64. Book: Cloud Native Go: Building Reliable Services in Unreliable Environments.
  • 65. Book: Zero to Production in Rust: An introduction to backend development.
  • 66. Udemy: Infrastructure Automation with Terraform.
  • 67. Udemy: Terraform for AWS (up).

Some non-free resources:


N. Streamlined Noob to SWE L7 Roadmap


O. NEET Productive Daily Plan

Normal days

  1. 7 hours of sleep (11pm-6am); 30 minutes of morning stretching and breath meditation, 30 minutes of night stretching and breath meditation.
  2. 2 sets of 30 minutes of walking meditation; 15 minutes of melee combat (Muay, Boxing, Jiu-jitsu) and weapons training (Knife, Staff, Bow, Gun, Concealed); 15 minutes of alternate-day body-weight exercises:
    1. On Mon, Wed, Fri: Strength, 4 sets of:
      1. upper body: 7 push ups, 2 pull ups;
      2. lower body: 14 squats;
      3. core: 7 hanging knee raises;
      4. rest: 21 breaths.
    2. On Tue, Thu: Cardio, 7 sets of 40 jumping rope reps with a 21 breaths rest.
    3. On Sat, Sun: rest day.
  3. 1 hour of training Pali or English (7am-8am).
  4. Abstain:
    1. from killing any being whether human or animal, abortion, euthanasia, suicide, wars;
    2. from stealing, thievery, slavery, exploitations, fraud, bribery, nepotism, cronyism, favoritism;
    3. from sexual misconducts, assaults, adultery, prostitution, masturbation, hookups, transactional relationships;
    4. from lying, deceiving, cheating, forgery, propaganda;
    5. from alcohol, drugs, smoking, gambling, pornography, overeating, clubbing, partying, etc.
  5. 30 minutes of one meal of vegetables, fruits, and pasture raised chicken eggs; 15 minutes of house chores.
  6. 8 hours of programming (8am-4pm).
  7. 5 hours of gaming, chess, cubing, or researching, writing, and making videos (5pm-10pm) (up).

Uposatha/Sabbath days, average 4 days per month, base on lunar calendar

  1. 7 hours of sleep (11pm-6am); 1 hour morning stretching and breath meditation (6am-7am), 1 hour night stretching and breath meditation (9pm-10pm).
  2. 2 sets of 1 hours of walking meditation.
  3. 2 hours of reading scriptures (8am-10am).
  4. Abstain:
    1. from killing any being whether human or animal, abortion, euthanasia, suicide, wars;
    2. from stealing, thievery, slavery, exploitations, fraud, bribery, nepotism, cronyism, favoritism;
    3. from all sexual activities;
    4. from lying, deceiving, cheating, forgery, propaganda;
    5. from alcohol, drugs, smoking, gambling, pornography, overeating, clubbing, partying, etc;
    6. from meals at the wrong times and at night;
    7. from entertainments and beautification;
    8. from sleeping on high or luxury beds.
  5. 30 minutes of one meal of vegetables, fruits, and pasture raised chicken eggs; 30 minutes of house chores.
  6. 8 hours of programming (10am-4pm, 5pm-7pm).
  7. 2 hours of listening to dhamma talks (7pm-9pm).
  8. 1 hours of reflection and contemplation (10pm-11pm) (up).

A detail time table example

daily-routine.md

P. Philosophy in Action

1. Internal Analysis (Buddhism) (up)

  • 8 external influences: gain and loss, fame and disgrace, blame and praise, pleasure and pain.
  • The keeping of the five precepts and eight precepts on Uposatha days; strengthening Right View and analysis frameworks.
  • The training in Noble Eightfold Path.
  • The training in healthy lifestyle, strength, and endurance.
  • The training in self defense and weapons usage.

2. External Analysis (Anarchism) (up)

  • 8 core aspects of a society: infrastructure, healthcare, welfare, education, council of direct democracy, economics, defense, intelligence.
  • 3 core analyses of hierarchy: mean-end disunity; violent domination, exploitation, and deception; self perpetuation.
  • The abolition of all forms of hierarchy, state, class, slavery, involuntary servitude, exploitation, domination, prison system, and taxation; the uprooting of any chance of re-arising of any form of hierarchy, state, or class; the prevention of any form of upstartism and exploitation.
  • The abandonment of all forms of private property and land ownership or representation, and the protection of personal properties based on usage.
  • Freedom and solidarity; stateless classless moneyless society via library economy; freedom of movement, of speech, of assembly, of horizontal association, of religion, to self defense and to keep and bear arms, of restoration or social sanction or eviction or excommunication of bad people from a community; the protecting of the ecology and the conscious continuous ongoing revolution, of mutual aids.

3. Layman's Primer - A collection of 30 discourses (up)

Read and try to understand and memorize by heart the discourses to develop Right View, what’s right and what’s wrong, what’s to be done and what’s not to be done, and to be able to recall the Dhamma in dire circumstances. Keep the five precepts (understand all the specificities, not break them yourself, not encourage the breaking of them, and not praise the breaking of them) everyday, keep the eight precepts on Uposatha days. Practice the Noble Eightfold Path according to the Buddha’s instructions (pay attention to Right Livelihood as you’re a lay person). Develop the habit of contemplation and meditation (both sitting and walking), see what’s obstructing the mind and what’s nourishing it.

(up)


Q. Chess Practice

R. Speedcubing Resources


Notes

My reference resources and some experiences as a software engineer (60% backend/game/robotic, 30% frontend, 10% ops, working in game dev since 2007, robot engineering since 2015, and web dev since 2018), it should be a good “birds-eye view” for a programmer who want to learn things the bottom-up approach. This list is handcrafted and not generated by AI nor contains any affiliation. Some notes before proceeding with the list (up):

  • This guide is based on 100% free and quality resources vetted and curated by me. It’s not mean to be an exhaustive list. It aims to provide just a minimum skeleton that built from the ground up. If you found something cool please share in the comment below and I can add it to the list after vetting. Copy/clone/fork this so that you can use the checkboxes.
  • Avoid sinking time into pointless videos made by grifters and course/dream sellers, don’t let them exploit your emotions and insecurities for views and money. This is not a get rich quick course, or get 6 figures salary roadmap, it's just my knowledge base.
  • Practice the habit of always checking official documentations first before watching tutorials, endure the inconvenient in the moment, you'll become much better and more independent in the long run. Take the knowledge and leave, don't worship the educator.
  • For YouTube videos, just blast through them in 2x speed or even 4x speed, enjoy the ride, and code along. Beware the sales funnel in some videos and don't waste money on those. Make sure the concepts are well sticked to your mind before moving on or else you're just wasting your time. Use uBlock Origin and SponsorBlock to combat the evil advertisement industry.
  • For someone who’s self-taught, it will take more than 18 months to thoroughly finish the whole Streamlined Noob to SWE L7 Roadmap, assumes that you spend at least 8 hours everyday working on it, there is no shortcut.
  • Remember the 80/20 rule: you only need to do 20% (easy things first) to achieve 80% of results (good enough). The rest 20% is exponentially expensive, so tread carefully. Have a plan in mind and focus on a certain niche, for example, if you want to be hirable fast focus on web dev with Go and NextJS, if you want to have a lot of fun and can do useful things right away and can earn money via selling games on Steam then focus on game dev and robotics first. And also participate in free competitions or game jams if you have chance.
  • Have a Daily Routine planed out in details and stick with it. Cultivate good habits and drop bad habits gradually. Please stay healthy in both body and mind.
  • Just go through the list in a top-down order, one-by-one, and you’re good to go. Stuffs inside parentheses mean optional. Numbers in the bracket are total duration in 2x speed and number of video in that playlist.
  • All you need is a large sample size (build a lot of projects) for a comprehensive mental model. It all comes down to muscle memory. And also to have a beefy portfolio of finished projects.
  • Think about the problems in your life or others that you want to solve and try to apply your knowledge.
  • Regarding code editor, using whatever feels comfortable is good enough, but Vim motions is a must-have. I recommend Neovim, but you can also use Emacs, it has great org mode for note taking, it’ll be much more enjoyable when you have full control of your dev environment.
  • If you're using magnet/torrent, consider keeping the files for at least 7 days or 1.0 ratio for seeding so that you can pay back the community.
  • Prefer Monero over any other types of monetary if you can, as they're all compromised, the glowies will track and silence you. Prefer back the the OpSec sections above.

(up).

@lavantien
Copy link
Author

buddhistanarchism

@lavantien
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment