Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save DoughBoiKush/52fc542bdfc35aa710f3776336360d66 to your computer and use it in GitHub Desktop.
Save DoughBoiKush/52fc542bdfc35aa710f3776336360d66 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 (internet's archive), Anna's Archive (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 (Linux, Neovim, Dev Tools, Languages, Configs, Security, and Dotfiles).
  • B. (go) Complementary Subjects (Linguistics, English, Security, OpSec, Psychology, Anthropology, History, Philosophy, Economics, Business, Cooking, Xenology, and Self Defense).
  • C. (go) Fundamentals of Science and Technology (Logic, Physics, Mathematics, Game Theory, Geology/Geography, Business, Chemistry, Biology, Medical, MCAT, and Their Applications).
  • D. (go) Computer Science and Competitive Programming (CPU/OS/Linux/CMake, Git/Vim/Cronjob/Regex, Object Oriented/Functional Programming, Lua/Python/JavaScript/C/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 (Assembly/C, Embedded Systems, Interpreter/Compiler, Control Theory, and Robotics).
  • F. (go) Game Dev and Digital Arts (Game Theory, Worldbuilding, Game Design, Godot, Lua/Love2D/Defold, C++/OpenGL, Aseprite/LDtk/Tiled/Krita/Inkscape, Gimp/Blender/Kdenlive, and LMMS/Audacity).
  • G. (go) Fullstack Dev and Backend Engineering (Figma/JS/TS/Vue/React/NextJS, Java/Spring, Go/Pprof/DevContainers/Testcontainers, Python/Django, Bun/HTMX, PostgreSQL/MongoDB/SQLite/Supabase, REST/GraphQL/GRPC-Protobuf/NSQ/NATS/Kafka, NGINX/Certbot, Docker/Kubernetes/OpenTelemetry/Prometheus/Grafana, AWS/Jenkins/Ansible/OpenTofu, Dart/Flutter/Android, and Rust).
  • I. (go) Preparation for Job Search and Realities of the Industry (Head Ups, Pathways, Resume, Interview, and Reflections).
  • J. (go) Pet Project Ideas and advice on open-source contribution.
  • K. (go) Interview Questions that I've been asked (Fundamentals, DS&A, Go, JS, and React).
  • L. (go) Interview Preparation Template (Frequent questions, how to avoid traps and answer them properly).
  • M. (go) Some non-free resources (books & Udemy courses, wait for sales).
  • N. (go) Streamlined Noob to SWE L7 Roadmap with 10 milestones (Effective Training, Frontloading Method, Foundations, Fundamentals, Languages, Tools, Web Dev, Infrastructures, and Production-grade Software).
  • O. (go) Productive Daily Plan for NEETs (Daily normal days and Uposatha/Sabbath days).
  • P. (go) Philosophy in Action (Internal Analysis, External Influences, and Layman's Primer).
  • Q. (go) Chess Practice (Fundamentals, London, CaroKann, NimzoIndian, and Bullet).
  • R. (go) Speedcubing Resources (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

I. Preparation for Job Search and Realities of the Industry

  • If you’re following along this list, you may need to have a proof of work, i.e. a document or a portfolio to list all of your projects ordered by themes, this acts as a degree for when you go to interviews (up).
  • It’s essential to be able to read official documentations, search on Google, and prompt the AI. But be aware that AIs can hallucinate stuffs, last time I ask Bard it said its hallucination rate is 57%.
  • Keep resume simple, condense, one single page if possible, don’t leak your picture or address, and don’t lie or add unnecessary things.
  • Avoid scammy recruiters, offshore sweatshops, and dodgy domains like gambling, drugs, dating apps, weapon sellers, blockchain, property development, PR, quant.
  • One applicant per day is a good rate, too much will lead to overwhelm and drop in quality of job and preparation. Upwork, Workable, GolangProjects, Turing, Toptal, LinkedIn, etc. Or just directly apply to the companies' career portal.
  • Practice makes perfect, just keep studying, building pet projects, implementing your practical ideas, and interviewing a lot & take notes.
  • It’s just a number game, don’t take it personally if you constantly fail, keep up the grind.
  • Even if you’re employed, don’t stop job seeking, or else you will get complacent, delusion, and atrophy. And you have zero leverage in case of laid off.
  • If you're still in school, please, for the love of the Buddha, finish them. Despite their pointlessness, having them is just much better in a grim market, just get as much degrees and quality certifications as you can, because the industry is mostly nepotism, cronyism, and favoritism. Meritocracy is a myth. But still it's always important if you have the real skill to back yourself up. This is why this resources guide exist. If you're a drop out, you will need to work twice as hard and apply quadruple as much. Life is rigged and cruel, you just have to bite the bullet, know the game and how to navigate it.
  • Building your own knowledge base with free/OSS tools like Anki, and Vim/Neovim (up).

.

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.

  • 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).
  • Try to create something that will help people, make the world a little bit better for somebody (up).
  • A fully functional text editor that support undo/redo, search/replace, tables, and drawing (up).
  • A free blog/writing collection website with headless CMS (up).
  • A statistical analysis and solution website that based on the United Nation's 17 Sustain Development Goals (up).
  • A peer-to-peer messaging app (up).
  • A habits, health, and nutrition tracker (up).
  • A free course website (Netflix clone but instead of movies you deliver educational content) (up).
  • A content/project management system with task synching and scheduling (up).
  • A 4chan clone (up).
  • A multi-threaded web indexing spider (up).
  • An e-commerce website/app (Amazon clone) that integrate with map, payment, and delivery (up).
  • A decentralized peer-to-peer (not blockchain) barter transaction app with proper backend system that can support a large Anarchy society (up).
  • 3D Printing hardware and software (up).
  • A grid gallery portfolio website with pure HTML/CSS and host on GitHub Pages (up).
  • A personal project/habit/income/expense planner from scratch with NextJS (up).
  • 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).
  • A turn-based 2D RPG with physics-based-slingshot-combat from scratch with Defold/Krita and release on Steam and Google (up).
  • 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).
  • 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).

  • (DSA) Explain and compare Object Oriented, and Functional Programming; explain MVC, MVVM, and ECS.
  • (DSA) Explain the concept of array, linked list, tree, hash map, stack, queue, and priority queue.
  • (DSA) Explain DFS, BFS, topology sort, and their practical applications.
  • (DSA) Implement a string reverser, palindrome checker, prime number checker, or reverse a linked list.
  • (DSA) Solve an array problem like two sum; or a 2D array problem like find all isolated islands.
  • (DSA) Solve a dynamic programming, a medium string manipulation with trie, or an easy graph problem (up).
  • (JS) Explain hoisting, scope, and closures; explain expression precedence.
  • (JS) Difference between var, let, and const; explain null, undefined, NaN, and Optionals.
  • (JS) Explain DOM manipulation; how to center a div both horizontally and vertically.
  • (JS) Explain class, arrow function, map-filter-reduce.
  • (JS) Explain async and await; list and explain some ES6 features.
  • (JS) Explain Node's single threaded event loop model.
  • (JS) Explain callback and promise.
  • (JS) Implement word count; tricky questions asked to do in one single loop.
  • (JS) Implement an event emitter from scratch.
  • (JS) Implement map-filter-reduce from scratch.
  • (JS) Implement promise and async/await from scratch; resolve chain promises.
  • (JS) Implement signal from scratch (up).
  • (React) What's the difference between function component and class component.
  • (React) What are props and how children prop works.
  • (React) How Virtual DOM works.
  • (React) Explain all built-in React hooks; explain react router.
  • (React) Best practices of using Redux, Store, State Management, Context and Redux Middleware.
  • (React) How to use GraphQL with React; the difference between REST and GraphQL; the n+1 problem.
  • (React) Implement a listing page in React with TDD using a public API.
  • (React) Build a virtual DOM from scratch (up).
  • (Go) What's the difference between ACID and BASE; explain in the context of PostgreSQL and MongoDB.
  • (Go) Which features of PostgreSQL/MongoDB did you use; drop all required data in PostgreSQL.
  • (Go) How to use JSON data in PostgreSQL; how to store money and discounts in PostgreSQL/MongoDB.
  • (Go) Explain normalization and indexing; concurrent transactions, blocks, and isolation levels.
  • (Go) How to read 10gb of data from PostgreSQL; how would you read a 10gb file with Go.
  • (Go) What's the difference between HTTP, TCP, UDP, WebSockets, and GraphQL.
  • (Go) Explain HTTPS; what's the difference between certificate and public key.
  • (Go) What's the difference between symmetric and asymmetric encryption.
  • (Go) Name and explain some important services in a cloud platform; cronjob scheduling.
  • (Go) How to scale with and without a cloud platform; how Kubernetes works.
  • (Go) Identify bottleneck in production environment; explain tracing, distributed logging, and metrics (up).
  • (Go) Explain some design patterns that are commonly used in Go.
  • (Go) The difference between parallelism and concurrency; Go's concurrency features and their use cases.
  • (Go) How Go's scheduler works; compare it with the OS scheduler.
  • (Go) Practical ways to use closure in Go.
  • (Go) Explain context package in Go; how would you implement time out; how would you handle errors.
  • (Go) How would you write unit tests in Go; explain mocking and dependency injection.
  • (Go) How would you test a database layer, a service layer, a handler layer, or a 3rd-party callback layer.
  • (Go) Explain common concurrent patterns in Go and their usages.
  • (Go) Explain CAP theorem; how Event Driven works in Go services; orchestrate a micro-services architecture.
  • (Go) Explain producer, consumer, and offset in Kafka; how to concurrently consume and retry.
  • (Go) Implement a task with generics; design and implement an inventory and storefront system.
  • (Go) Implement a parallel URL fetcher with 5 async processes and print a specific field in the JSON respond.
  • (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. Some non-free resources


N. Streamlined Noob to SWE L7 Roadmap

  • How to train from tutorials and documentations effectively: after every item,

    • summarize in your head what that tut/doc is about, take notes is useless as you'll most likely never look at it again,
    • redo all the code without looking at the tut/doc, add your own spin to it and see how it goes,
    • try to explain to and teach yourself the concept,
    • only proceed to the next items when you've completed these 3 tasks, or else you're just wasting your time (up).
    • You don't need to go through all the items in the D and G list, it depends on the jobs you're going to apply and refer K list for direction on what to focus on.
  • Primary subjects:

    • 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, role-based authorization, and weebhooks integration
    • 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, react/vite, and nextjs
    • a grid gallery portfolio website
    • 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).
    • if you interested in game dev check out section F.
  • The Frontloading Method - Finish these free foundations first and proceed with the D, G, and K lists concurrently:

    • GitHub Skills (go).
    • Youtube: Golang Tutorial (go).
    • Youtube: PostgreSQL Tutorial Full Course 2022 (go).
    • Youtube: GitHub Actions Certification Course (go).
    • Youtube: Learn Algebra 1 and 2 in One Video (go).
    • Youtube: Learn Trigonometry (go).
    • Youtube: Learn Learn Precalculus (go).
    • Youtube: Learn Probability (go).
    • MDN: Curriculum (go).
    • MDN: Getting Start with the Web (go).
    • MDN: JavaScript (go).
    • Youtube: Node.js Crash Course 2024 (go).
    • Youtube: React Crash Course 2024 (go).
    • FrontendMasters: The Last Algorithms Course You'll Need (go).
    • Project Odin: Foundations (go).
    • Project Odin: Full Stack JavaScript (go).
    • Youtube: Go and React Query (go).
    • Youtube: Complete Next.js Course (go).
    • Youtube: From 0 to Prod with React (go).
    • Youtube: Build and Deploy Banking and Finance App with NextJS 14 (go).
    • Front End Interview Handbook (go).
    • Tech Interview Handbook (go) (up).
    • Building React/Vite projects throughout the process (split 8/2 for example, dedicate 2h everyday building side projects, while 8h focus on main plan progressing).
    • Start applying to every single decent platform after 20 work days while continue training.
    • Youtube: Errichto's Algo Lectures (go).
    • Book: Principles of Algorithmic Problem Solving (go).
    • Algorithms for Competitive Programming (go).
    • Book: Competitive Programmer’s Handbook (go).
    • CSES Problem Set (go).
    • Blind 75 Must Do Leetcode Problems (go).
    • Advent of Code (go).
    • Youtube: Kubernetes 101 Workshop for Absolute Beginners (go).
    • Kubernetes Ultimate Hands-on Labs and Tutorials (go).
    • Kubetools - A Curated List of Kubernetes Tools (go).
    • Youtube: AWS Cloud Complete Bootcamp Course (go).
    • AWS Workshops (go).
    • Udemy: Backend Master Class (request free coupon from the author) (go) (up).
    • NSQ Documentation (go).
    • Youtube: Understanding and using NATS Server in Golang (go).
    • Youtube: Tiago's Go videos (go).
    • Youtube: ProgrammingPercy's Go videos (go).
    • Youtube: Anton Putra's DevOps videos (go).
    • Gokatas (go).
    • Spring Academy: Spring Framework Essentials (in case apply to Java jobs) (go).
    • Final Project: Mutual Aid Platform with Go/GRPC backend and React/Vite frontend, SQLite database (go, go).
  • Seven milestones (up):

    • Milestone 1 - Drill Design Patterns, Networking, and Distributed Systems while building a grid gallery portfolio website with HTML/CSS, host on GitHub Pages; check all job sites, and start applying for SWE L5/6/7 and freelancing.
    • Milestone 2 - Finish DS&A and Mastered CSES Set, 75 LeetCode problems, and Advent of Code with Go.
    • Milestone 3 - Processing The One Billion Row Challenge using Go and build an inverted index system.
    • Milestone 4 - Build a production-grade REST API in Go with tests, autho/en, caching, rate limit, migration, OpenTelemetry, PostgreSQL, GitHub CI/CD.
    • Milestone 5 - Build a simple distributed system handling concurrent transactions in Go using only stdlibs.
    • Milestone 6 - Build a distributed system for mutual aids with Go, NodeJS, React/Vite, REST/GRPC/NSQ/NATS, Docker/Kubernetes/Prometheus/OpenTofu/AWS.
    • Milestone 7 - Get that sweet SWE job (up).

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.
  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.
  7. 6 hours of gaming, chess, cubing, or researching, writing, and making videos (up).

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

  1. 7 hours of sleep (11pm-6am); 1 hour morning stretching and breath meditation, 1 hour night stretching and breath meditation.
  2. 2 sets of 1 hour of walking meditation.
  3. 2 hours of reading scriptures.
  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.
  7. 2 hours of listening to dhamma talks.
  8. 1 hour of reflection and contemplation (up).

A detail timetable 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

Aim for strong principles, tactics, endgames, and strategies; Simple London for White and Caro-Kann/Nimzo-Indian for Black.

R. Speedcubing Resources

Aim for decent enough in all WCA events. Main 3x3, 3BLD, 2x2, Pyraminx, Megaminx, OH, 4x4, 5x5.


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. Prefer back the the OpSec sections above.

(up).

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