- TODO: - Organize better - Fix organization - Organization based off of level ## Installation ### Windows - Step 1: Install https://sourceforge.net/projects/mingw/ - Step 2: Just do next on everything until the menu comes with different options - Step 3: Choose pretty much everything except for anything with Ada and Fortran - [Video](https://www.youtube.com/watch?v=sXW2VLrQ3Bs) ### MacOS - Step 1: Open terminal - Step 2: Type `gcc` - Step 3: Install Xcode developer tools - [Video](https://www.youtube.com/watch?v=0z-fCNNqfEg) ### Linux - Step 1: Open terminal - Step 2: Type in `sudo apt install build-essential` - Step 3: Type password and press enter - [Video](https://www.youtube.com/watch?v=oLjN6jAg-sY) ### End - Now, you should be able to compile C/C++ files with gcc/g++ ### Unrelated - Compiling game engines as .dylib: - https://stackoverflow.com/questions/42709344/osx-how-to-compile-a-framework-using-gcc-g-sitting-in-a-current-working-direct - https://stackoverflow.com/questions/27263584/build-c-library-on-os-x-mac-using-qt - https://stackoverflow.com/questions/37376223/compiling-dylib-for-mac - https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/CreatingDynamicLibraries.html - `g++ -shared *.cpp -o libname.dylib` ## Basics & Debugging - Coding Styles & Standard - [Cool C](https://gist.github.com/eatonphil/21b3d6569f24ad164365) - [How I C](https://www.youtube.com/watch?v=443UNeGrFoM) - [C Book](https://port70.net/~nsz/c/c11/n1570.html) - [How To C](https://matt.sh/howto-c) - [C Standard Library](https://en.wikipedia.org/wiki/C_standard_library) - [C Standard Library Header Files](https://en.cppreference.com/w/c/header) - [Reserved Names In GCC](https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html) - [Macro Pitfalls](https://gcc.gnu.org/onlinedocs/cpp/Macro-Pitfalls.html) - [Linux Kernel Coding Style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html) - [SEI CERT C Coding Standard](https://wiki.sei.cmu.edu/confluence/plugins/servlet/mobile?contentId=87152044#content/view/87152044) - [IEEE Standard](https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/) - [Global Variables Are Bad](https://wiki.c2.com/?GlobalVariablesAreBad) - [Co-Routines In C](https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html) - Random - [Why Rand() Is Harming](https://www.youtube.com/watch?v=LDPMpc-ENqY) - [Benchmarking Languages](https://www.youtube.com/watch?v=nXaxk27zwlk) - [How Computers Generate Random Numbers](https://www.youtube.com/watch?v=VHJUlRiRDCY) - [PRNGs](https://prng.di.unimi.it/) - [Better Random Number Generators](https://www.pcg-random.org/) - [Romu](https://romu-random.org/) - Libraries - [GLIB](https://docs.gtk.org/glib/) - [LIBC](https://www.gnu.org/software/libc/libc.html) - [SGLIB](http://sglib.sourceforge.net/) - [My Stars](https://github.com/muhammad4li?tab=stars) - State Machines - [State Machine Design In C](https://www.codeproject.com/Articles/1275479/State-Machine-Design-in-C) - [State Machines Basic Of CS](https://www.freecodecamp.org/news/state-machines-basics-of-computer-science-d42855debc66/#:~:text=A%20finite%20state%20machine%20is,to,%20for%20a%20given%20) - [How To Code State Machines In C/C++](https://barrgroup.com/embedded-systems/how-to/coding-state-machines) - [JSON Parser In C](https://www.youtube.com/watch?v=mnIvV-IBI7Y) - Lerps & Normalization: - https://easings.net/ - https://github.com/friesencr/easing.h - Parallel - [Intro To Parallel Computing](https://hpc.llnl.gov/training/tutorials/introduction-parallel-computing-tutorial) - [Multithreading In C++](https://www.perforce.com/blog/qac/multithreading-parallel-programming-c-cpp) - [Parallel Programming Book](https://parallelprogrammingbook.org/) - [Intro To Parallel Computing - GeeksForGeeks](https://www.geeksforgeeks.org/introduction-to-parallel-computing/) - [Parallel Computing Wiki](https://en.wikipedia.org/wiki/Parallel_computing) - [Parallel Computing Course](https://www.cs.cmu.edu/~15210/pasl.html) - [Posix Threads Programming](https://hpc-tutorials.llnl.gov/posix/) - Networking - [Concurrent Servers](https://eli.thegreenplace.net/2017/concurrent-servers-part-1-introduction/) - [Beej's Guide To Network Programming](https://beej.us/guide/bgnet/html//index.html) - [Architectural Styles & The Design Of Network-Based Software Architectures](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) - [MQTT Broker](https://codepr.github.io/posts/sol-mqtt-broker/) - [NTP Client In C](https://lettier.github.io/posts/2016-04-26-lets-make-a-ntp-client-in-c.html) - [Networking Program Tutorial In C](http://www.saminiir.com/) - [Beej's Network Programming Book](https://beej.us/guide/bgnet/html/#intro) - Debugging - [LLDB Debugging Tutorial](https://lldb.llvm.org/use/tutorial.html) - [More LLDB Debugging Tutorial](https://lldb.llvm.org/use/map.html) - [LLDB Quick Start](https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-command-examples.html) - General & CS - [What You Should Know As A Founder Of A Software Company](https://qotoqot.com/blog/founder-skills/) - [How To Write Disposable Code In Large Systems](https://programmingisterrible.com/post/139222674273/how-to-write-disposable-code-in-large-systems) - [How To Write Unmaintainable Code](https://github.com/Droogans/unmaintainable-code/blob/master/README.md) - [Design Patterns & Tips](https://sourcemaking.com/design-patterns-and-tips) - [How I Rewired My Brain To Become Fluent In Math](https://nautil.us/issue/40/learning/how-i-rewired-my-brain-to-become-fluent-in-math-rp) - [How To Remember Anything You Really Want To Remember](https://www.inc.com/jeff-haden/how-to-remember-anything-you-really-want-to-remember-backed-by-science.html) - [Effect Learning: 20 Rules Of Formulating Knowledge](https://www.supermemo.com/en/archives1990-2015/articles/20rules) - [Get Better At Programming By Learning How Things Work](https://jvns.ca/blog/learn-how-things-work/) - [Professional Software Development](https://mixmastamyk.bitbucket.io/pro_soft_dev/) - [Learning 30 Technologies In 30 Days](https://cloud.redhat.com/blog/learning-30-technologies-in-30-days-a-developer-challenge) - [Scientific Programming & Computer Architecture](https://divakarvi.github.io/bk-spca/spca.html) - [How To Design Programs](http://htdp.org/) - [Best Practices For Rest API Design](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/) - [Architectural Styles & The Design Of Network-Based Software Architectures](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) - [Good Sleep, Good Learning, Good Life](https://supermemo.guru/wiki/Good_sleep,_good_learning,_good_life) - [Papers We Love](https://github.com/papers-we-love/papers-we-love) - [Coding Interviews Concepts](https://github.com/kdn251/interviews) - [Tech Interview Handbook](https://github.com/yangshun/tech-interview-handbook) - [API Design Guide](https://cloud.google.com/apis/design/) - [How Top Students Study](https://www.quora.com/How-do-top-students-study) - [The Power Of 10 Minutes A Day](https://medium.com/@alexallain/ten-minutes-a-day-e2fa1084f924) - [40 Lessons From 40 Years](https://schlaf.medium.com/40-lessons-from-40-years-de39d2c622d6) - [40 Key CS Terms In Layman's Terms](http://carlcheo.com/compsci) - [Famous Laws Of Software Development](https://www.timsommer.be/famous-laws-of-software-development/) - [Software Engineering Book](https://sre.google/sre-book/table-of-contents/) - [The Future Of Programming](http://worrydream.com/dbx/) - [System Design Prime](https://github.com/donnemartin/system-design-primer) - [Map Of CS](https://www.youtube.com/watch?v=SzJ46YA_RaA) - [Problems With Simultaneity In Distributed Systems](https://queue.acm.org/detail.cfm?id=2745385) - [Time On Computers](https://unix4lyfe.org/time/) - [The Problem With Time & Timezones](https://www.youtube.com/watch?v=-5wpm-gesOY) - [Programming Talks](https://github.com/hellerve/programming-talks) - [TechDevGuideWithGoogle](https://techdevguide.withgoogle.com/) - [Big-O Cheatsheet](https://www.bigocheatsheet.com/) - [TeachYourselfCS](https://teachyourselfcs.com/) - [How To Compile C/C++ Library](https://www.youtube.com/watch?v=m6RVY84_mQE) - [OOP In C](https://dmitryfrank.com/articles/oop_in_c) - [Collection Of Cross-Platform Single Header C Libraries](https://github.com/Rabios/ice_libs) - [Open MIT Courses](https://ocw.mit.edu/) - [How To Compile A Static Library On Linux](https://stackoverflow.com/questions/2734719/how-to-compile-a-static-library-in-linux) - [Good Sleep, Good Learning, Good Life](https://supermemo.guru/wiki/Good_sleep,_good_learning,_good_life) - [Coding Interview University](https://github.com/jwasham/coding-interview-university) - [Zip Files: History, Explanation & Implementation](https://www.hanshq.net/zip.html) - [Libraries in C](https://halt.software/libraries-in-c-prefix-or-not/) - [The Book Of Secret Knowledge](https://github.com/trimstray/the-book-of-secret-knowledge) - [Visualizing Algorithms](https://bost.ocks.org/mike/algorithms/) - [How I Got To 200 Productive Hours Per Month](https://qotoqot.com/blog/improving-focus/) - [API Design Guide](https://cloud.google.com/apis/design/) - [Design Patterns And Tips](https://sourcemaking.com/design-patterns-and-tips) - [Get Better At Programming By Understanding How Things Work](https://jvns.ca/blog/learn-how-things-work/) - [LazyFoo's Articles](https://lazyfoo.net/articles/index.php) - [101 Design Patterns](https://sourcemaking.com/design-patterns-and-tips) - [Write A Text Editor In C, Kilo](https://viewsourcecode.org/snaptoken/kilo/) - [Write Yourself A Git](https://wyag.thb.lt/) - [A Regular Expression Matcher](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html) - [Regular Expression Matching Can Be Simple And Fast](https://swtch.com/~rsc/regexp/regexp1.html) - [Regular Expression Articles](https://swtch.com/~rsc/regexp/) - [Learn Regex GitHub](https://github.com/ziishaned/learn-regex) - [Rolling Your Own Crypto](https://loup-vaillant.fr/articles/rolling-your-own-crypto) - [Encryption Algorithms](https://gist.github.com/tqbf/be58d2d39690c3b366ad) - [Crypto Wrong Answers](https://gist.github.com/paragonie-scott/e9319254c8ecbad4f227) - [Hashing & Encryption](https://www.integralist.co.uk/posts/hashing-and-encryption/) ## Interpreters, Virtual Machines, Emulators, OSes, Compilers, & Kernels - [Sega Master System - Memory](http://www.codeslinger.co.uk/pages/projects/mastersystem/memory.html) - [How To Write A Chip 8 Emulator](https://multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/) - [Chip 8 Emulator](http://www.codeslinger.co.uk/pages/projects/chip8.html) - [GameBoy Emulator](http://www.codeslinger.co.uk/pages/projects/gameboy.html) - [NES Emulator From Scratch](https://www.youtube.com/playlist?list=PLrOv9FMX8xJHqMvSGB_9G9nZZ_4IgteYf) - [Emulator101](http://emulator101.com/) - [Writing A Chip 8 Emulator](http://craigthomas.ca/blog/2014/06/21/writing-a-chip-8-emulator-part-1/) - [Let's Build A Simple Interpreter](https://ruslanspivak.com/lsbasi-part1/) - [Chip 8 Eumlator](https://austinmorlan.com/posts/chip8_emulator/) - [Create Your Own Chip 8 Emulator In JS](https://www.freecodecamp.org/news/creating-your-very-own-chip-8-emulator/) - [Chip 8 Emulator](https://omalleyshane.com/portfolio/chip-8-emulator/) - [Making A Chip 8 Emulator](https://plrang.com/blog/chip8-emulator-making/) - [How To Build An Emulator](https://www.codemotion.com/magazine/dev-hub/gamedev/how-to-build-an-emulator/) - [What I Learned By Making A Chip 8 Emulator](https://medium.com/@tobywhughes/what-i-learned-about-python-and-emulators-by-making-a-chip-8-emulator-f6ac7f25e095) - [Python Chip 8 Emulator](https://github.com/craigthomas/Chip8Python) - [Emulator 101 - Intro To Chip 8](http://www.emulator101.com/introduction-to-chip-8.html) - [Chip 8 Emulator In C++](https://github.com/JamesGriffin/CHIP-8-Emulator) - [Another Python Chip 8 Emulator](https://github.com/plrang/CHIP-8-emulator-python) - [Bare-Metal Programming On ARM](https://github.com/umanovskis/baremetal-arm) - [Write Your Own VM](https://justinmeiners.github.io/lc3-vm/) - [CraftingInterpreters](http://www.craftinginterpreters.com/) - [Write A C Interpreter](https://github.com/lotabout/write-a-C-interpreter) - [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/) - [Awesome Falsehood](https://github.com/kdeldycke/awesome-falsehood) - [Number Theory Every Programmer Must Know](https://www.codechef.com/wiki/tutorial-number-theory/) - [Numbers In A Computer YouTube Playlist](https://www.youtube.com/playlist?list=PLD71F13843965439D) - [Characters In A Computer YouTube Playlist](https://www.youtube.com/playlist?list=PLhQN_EIoIKBRA0yVTsWDoJzEKZwJY0p3l) - [Build A Compiler In C](https://github.com/lotabout/Let-s-build-a-compiler) - [A Compiler Writing Journey](https://github.com/DoctorWkt/acwj) - [Awesome Compilers](https://github.com/aalhour/awesome-compilers) - [How To Make A Computer Operating System](https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System) - [Write You Own OS](http://mikeos.sourceforge.net/write-your-own-os.html) - [Make Your OWN OS](https://github.com/cfenollosa/os-tutorial) - [LittleOSBook](https://littleosbook.github.io/) - [Roll Your Own Unix Like OS](https://web.archive.org/web/20160412174753/http://www.jamesmolloy.co.uk/tutorial_html/index.html) - [OS Dev Wiki](https://wiki.osdev.org/Main_Page) - [Writing Your Own Toy OS](http://www.independent-software.com/operating-system-development.html/) - [How To Make A Computer OS](https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System) - [Operating System Development Series Blog](http://www.brokenthorn.com/Resources/OSDevIndex.html) - [Brian's Kernel Development](http://www.osdever.net/bkerndev/Docs/title.htm) - [OSDev.org](https://forum.osdev.org/) - [LinuxFromScratch](https://www.linuxfromscratch.org/) - [Operating Systems: From 0 To 1](https://tuhdo.github.io/os01/) - [Mini ARM OS](https://github.com/jserv/mini-arm-os) - [Hack The Virtual Memory: C Strings & /proc](https://blog.holbertonschool.com/hack-the-virtual-memory-c-strings-proc/) - [Write Your Own OS - YouTube Playlist](https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) - [Writing A Bootloader](http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) - [Bitwise YouTube Playlist](https://www.youtube.com/playlist?list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX) - [Bitwise Extra YouTube Playlist](https://www.youtube.com/playlist?list=PLU94OURih-ChlhR_dQ_nfcZoyteSPYfNx) - [Write An OS](https://www.youtube.com/playlist?list=PLmlvkUN3-1MNKwINqdCDtTdNDjfBmWcZA) - [OS Dev S1 YouTube Playlist](https://www.youtube.com/playlist?list=PLxN4E629pPnKKqYsNVXpmCza8l0Jb6l8-) - [OS Dev S2 YouTube Playlist](https://www.youtube.com/playlist?list=PLxN4E629pPnJxCQCLy7E0SQY_zuumOVyZ) - [Make An OS With ReactJS](https://www.youtube.com/playlist?list=PLM88opVjBuU7xSRoHhs3hZBz3JmHHBMMN) - [FlingOS](https://www.youtube.com/playlist?list=PLKbvCgwMcH7BX6Z8Bk1EuFwDa0WGkMnrz) - [Scheme From Scratch](http://peter.michaux.ca/articles/scheme-from-scratch-introduction) - [Implement Your Own Kernel](https://david942j.blogspot.com/2018/10/note-learning-kvm-implement-your-own.html) - [Linux Containers In 500 LOC](https://blog.lizzie.io/linux-containers-in-500-loc.html) - [Writing A Minimal CPP Compiler](https://solarianprogrammer.com/2018/01/10/writing-minimal-x86-64-jit-compiler-cpp/) - [Let's Build A Compiler](https://compilers.iecc.com/crenshaw/) - [Write A Compiler By Nora Sandler](https://norasandler.com/2017/11/29/Write-a-Compiler.html) - [Writing An x64 Compiler From Scratch](https://www.youtube.com/playlist?list=PLCqWq4vJTZafMr50Alt3PIfF4l-ec7AuM) - [Pritam Zope - Low Level Programming YouTube Channel](https://www.youtube.com/channel/UCQLKe-wr36VFu-zVHuhtNJg/videos) - [Operating Systems From 0 To 1 GitHub](https://github.com/tuhdo/os01) - [Create Your Own Kernel In C](https://www.codeproject.com/Articles/1225196/Create-Your-Own-Kernel-In-C-2) - [Create Your Own Kernel](https://www.c-sharpcorner.com/article/create-your-own-kernel/) - [CreateYourOwnOS.blogspot.com](https://createyourownos.blogspot.com/) ## Data Oriented Design, Optimization, & Architecture - [ARM Developer](https://developer.arm.com/) - [Intel Developer](https://software.intel.com/content/www/us/en/develop/home.html) - [Rules Of Optimization Club](https://wiki.c2.com/?RulesOfOptimizationClub) - [Metaprogramming Custom Control Structures In C](https://www.chiark.greenend.org.uk/~sgtatham/mp/) - [Example Of Data Oriented Design](https://gamedev.stackexchange.com/questions/45831/example-of-data-oriented-design) - [DOD Videos Playlist](https://www.youtube.com/playlist?list=PLCqWq4vJTZac8Vftgv4e3gOFkeXNfg-oL) - [What Is Data Oriented Programming? By Yehonathan Sharvit](https://blog.klipse.tech/databook/2020/09/25/data-book-chap0.html) - [Data Oriented Programming By Yehonathan Sharvit](https://blog.klipse.tech/data-oriented-programming-book.html) - [Tips On Writing Data Oriented Code](https://www.gamasutra.com/blogs/MarcCosta/20190409/340374/Tips_on_writing_code_for_DataOriented_Design.php) - [Data Oriented Design - Now & In The Future](https://www.gamasutra.com/view/feature/134714/sponsored_feature_dataoriented_.php) - [An Example In Data Oriented Design: Sound Parameters](https://www.gamasutra.com/view/news/128138/An_Example_In_DataOriented_Design_Sound_Parameters.php) - [What You Have To Give Up For DOD](https://www.gamasutra.com/view/news/126498/Opinion_What_You_Need_To_Give_Up_When_Going_Data_Oriented.php) - [Latency Numbers Every Programmer Should Know](https://gist.github.com/hellerbarde/2843375) - [Better UI - Latency Numbers Every Programmer Should Know](https://colin-scott.github.io/personal_website/research/interactive_latency.html) - [Floating Point Arithmetic Explanation](https://floating-point-gui.de/) - [More Latency Numbers From 2012](https://gist.github.com/jboner/2841832) - [What Ever Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#680) - [What Every Programmer Should Know About Memory](https://lwn.net/Articles/250967/) - [Caching Explained](https://cachingexplained.com/) - [The Algorithm Design Manual](http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK/BOOK.HTM) - [How Do You Prepare For Out Of Memory Conditions?](https://gamedev.stackexchange.com/questions/66771/how-do-you-prepare-for-out-of-memory-conditions) - [In General, How Often & When Should I Optimize My Code?](https://gamedev.stackexchange.com/questions/2190/in-general-how-often-and-when-should-i-optimize-my-code) - [How Can I Boost Cache Performance When Storing Objects In A Scene?](https://gamedev.stackexchange.com/questions/138376/how-can-i-boost-cache-performance-when-storing-objects-in-a-scene-with-managed-l) - [How Do I Use DOD Without OOP](https://gamedev.stackexchange.com/questions/135453/how-do-i-use-data-orientated-programming-without-object-orientated-programming) - [Ways Of Optimization](https://www.agner.org/optimize/) - [Cache Coherence Wiki](https://en.wikipedia.org/wiki/Cache_coherence) - [Cache Coherence Full Explanation](http://www.cs.umd.edu/~meesh/411/CA-online/chapter/cache-coherence-i/index.html) - [High Performance Matrix Multiplication](https://gist.github.com/nadavrot/5b35d44e8ba3dd718e595e40184d03f0) - [Cache Coherence GeeksForGeeks](https://www.geeksforgeeks.org/cache-coherence/) - [Computer Architecture Book](http://www.cs.umd.edu/~meesh/411/CA-online/index.html) - [Cache Coherence Small Explanation](https://www.d.umn.edu/~gshute/arch/cache-coherence.xhtml) - [Understanding Caches](https://docs.oracle.com/middleware/1221/coherence/develop-applications/cache_intro.htm#COHDG5049) - [Cache Coherence Problem & Approaches](https://techexpertise.medium.com/cache-coherence-problem-and-approaches-a18cdd48ee0e) - [How To Optimize Distance Function](https://gamedev.stackexchange.com/questions/69241/how-to-optimize-the-distance-function) - [Optimization Of Rendering Of Cube World](https://gamedev.stackexchange.com/questions/182214/optimization-of-rendering-of-cube-world) - [Optimizing Gravity Calculations](https://gamedev.stackexchange.com/questions/19393/optimizing-gravity-calculations) - [Fast & Slow If Statements Branch Predictions In Modern Processors](http://igoro.com/archive/fast-and-slow-if-statements-branch-prediction-in-modern-processors/) - [Which Opcodes Are Faster At CPU Level?](https://gamedev.stackexchange.com/questions/27196/which-opcodes-are-faster-at-the-cpu-level) - [Bit Hacks](https://graphics.stanford.edu/~seander/bithacks.html) - [Taking Advantage Of Cache Coherence](http://supercomputingblog.com/optimization/taking-advantage-of-cache-coherence-in-your-programs/) - [Designing Fast Cross-Platform SIMD Vector Libraries](https://www.gamasutra.com/view/feature/4248/designing_fast_crossplatform_simd_.php) - [Why Are Big Files Better Than Small Ones For Consoles?](https://gamedev.stackexchange.com/questions/20247/why-are-big-files-better-than-small-files-for-consoles) - [BLOB](https://en.wikipedia.org/wiki/Binary_large_object) - [Memory Blob Reference](https://docs.openvinotoolkit.org/latest/classInferenceEngine_1_1MemoryBlob.html) - [Component Based Software Engineering](https://en.wikipedia.org/wiki/Component-based_software_engineering) - [Web Performance: Cache Efficiency Exercise](https://engineering.fb.com/2015/04/13/web/web-performance-cache-efficiency-exercise/) - [Cache Performance Measurement & Metric](https://en.wikipedia.org/wiki/Cache_performance_measurement_and_metric) - [Cache Friendly Code - Stack Overflow](https://stackoverflow.com/questions/16699247/what-is-a-cache-friendly-code) - [Caching Challenges](https://aws.amazon.com/builders-library/caching-challenges-and-strategies/) - [Cache Wiki](https://en.wikipedia.org/wiki/Cache_(computing) - [Small Memoy Software](http://smallmemory.com/book.html) - [Cache Performance With Arrays In C](https://softwareengineering.stackexchange.com/questions/302354/memory-cache-performance-in-working-with-arrays-in-c) - [How Does One Write Code That Best Utilizes The CPU Cache To Improve Performance?](https://stackoverflow.com/questions/763262/how-does-one-write-code-that-best-utilizes-the-cpu-cache-to-improve-performance) - [Cache Efficient Matrix Multiplication](https://cs.stackexchange.com/questions/86310/cache-efficient-matrix-multiplication) - [Writing Efficient C Code & Optimizing It](https://www.codeproject.com/articles/6154/writing-efficient-c-and-c-code-optimization) - [Memory Management](https://www.tutorialspoint.com/Memory-Management) - [Native Code Performance On Modern CPUS Powerpoint Presentation](https://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fbuild%2f2014%2f4-587.pptx) - [Compiler Confidential Information Powerpoint Presentation](https://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fgonat%2f2013%2fgn2013.pptx) - [C++ Low Level Optimization Tips](https://gamedev.stackexchange.com/questions/853/c-low-level-optimization-tips) - [Native Code Performance & Memory: The Elephant In The CPU Powerpoint Presentation](https://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fbuild%2f2013%2f4-329.pptx) - [Solving Temporary Storage Problem Of C Macros To Implement An Inverse Comma Operator](https://web.archive.org/web/20170429175803/http://www.samnip.ps/thought/macro-storage-for-inverse-comma) - [What A C Programmer Should Know About Memory](https://marek.vavrusa.com/memory/) - [Write A Simple Garbage Collector In C](http://maplant.com/gc.html) - [Category: Optimization](https://en.wikipedia.org/wiki/Category:Optimization) - [Category: Computer Engineering](https://en.wikipedia.org/wiki/Category:Computer_engineering) - [Category: Computer Memory](https://en.wikipedia.org/wiki/Category:Computer_memory) - [Category: Virtual Memory](https://en.wikipedia.org/wiki/Category:Virtual_memory) - [Category: Binary Operations](https://en.wikipedia.org/wiki/Category:Binary_operations) - [Category: Operators](https://en.wikipedia.org/wiki/Category:Operators_(programming)) - [Category: Data Structures](https://en.wikipedia.org/wiki/Category:Data_structures) - [Category: Data Types](https://en.wikipedia.org/wiki/Category:Data_types) - [Data Pre-Processing Concepts](https://towardsdatascience.com/data-preprocessing-concepts-fa946d11c825) - [Data Pre-Processing Wiki](https://en.wikipedia.org/wiki/Data_pre-processing) - [Data Pre-Processing Techniques You Should Know](https://towardsdatascience.com/data-pre-processing-techniques-you-should-know-8954662716d6) - [Data Preprocessing & Visualization In C++](https://towardsdatascience.com/data-preprocessing-and-visualization-in-c-6d97ed236f3b) - [Pre-Processors In C](https://data-flair.training/blogs/preprocessors-in-c/) - [C++ Pre-Processor](https://www.tutorialspoint.com/cplusplus/cpp_preprocessor.htm) - [Pre-Processing](https://topepo.github.io/caret/pre-processing.html) - [Numbers Everyone Should Know](https://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/) - [Design Patterns](https://refactoring.guru/design-patterns/catalog) - [OOP != Classes, But May == DOD](https://roathe.wordpress.com/2010/03/22/oop-classes-but-may-dod/) - [DOD Book By Richard Fabien](https://www.dataorienteddesign.com/dodbook/dodmain.html) - [What is Data Oriented Design - Stack Overflow](https://stackoverflow.com/questions/1641580/what-is-data-oriented-design) - [What is Data Oriented Programming - GameDev.net](https://www.gamedev.net/forums/topic.asp?topic_id=575076) - [Memory Speeds](https://seven-degrees-of-freedom.blogspot.com/2009/10/latency-elephant.html) - [Cache Line Aware Data Structures](https://accu.org/journals/overload/26/146/maness_2535/) - [Molecular Musings, Game Engine Programming Blog](https://blog.molecular-matters.com/) - [Example Of Data Oriented Design](https://bitsquid.blogspot.com/2011/11/example-in-data-oriented-design-sound.html) - [Allocation Adventures](https://bitsquid.blogspot.com/2015/06/allocation-adventures-1-datacomponent.html) - [Benchmarking C](https://stackoverflow.com/questions/5248915/execution-time-of-c-program) - [Profiling C](https://stackoverflow.com/questions/375913/how-can-i-profile-c-code-running-on-linux/378024#378024) - [Game Programming Patterns](http://gameprogrammingpatterns.com/) - [Data Oriented Luddites](https://tomforsyth1000.github.io/blog.wiki.html#%5B%5BData%20Oriented%20Luddites%5D%5D) - [Data Oriented Design Articles](https://gamesfromwithin.com/category/data-oriented-design) - [Data Oriented Hash Table](https://www.reedbeta.com/blog/data-oriented-hash-table/) - [Maximizing Code Performance By Thinking Data First](https://nicolaslopezblog.wordpress.com/2016/07/14/maximizing-code-performance-by-thinking-data-first-part-1/) - [Write A Hash Table](https://github.com/jamesroutley/write-a-hash-table) - [Hash Table In C](https://benhoyt.com/writings/hash-table-in-c/) - [Implementing A Key Value Store](https://codecapsule.com/2012/11/07/ikvs-implementing-a-key-value-store-table-of-contents/) - [Musings On Data Oriented Design](https://solid-angle.blogspot.com/2010/02/musings-on-data-oriented-design.html) - [Niklas Frykholm's Blog](https://github.com/niklasfrykholm/blog) - [Pitfalls Of Object Oriented Programming](https://www.slideshare.net/EmanWebDev/pitfalls-of-object-oriented-programminggcap09) - [Visual Scripting The Data Oriented Way](https://bitsquid.blogspot.com/2010/09/visual-scripting-data-oriented-way.html) - [What Is Data Oriented Game Engine Design?](https://gamedevelopment.tutsplus.com/articles/what-is-data-oriented-game-engine-design--cms-21052) - [Comments On Data Oriented Design](https://gautiertalkstechnology.wordpress.com/2015/02/21/comments-on-data-oriented-design-part-i/) - [What A C Programmer Should Know About Memory](https://marek.vavrusa.com/memory/) - [How Do You Prepare For Out Of Memory Conditions?](https://gamedev.stackexchange.com/questions/66771/how-do-you-prepare-for-out-of-memory-conditions) - [What Every Programmer Should Know About Memory](https://lwn.net/Articles/250967/) - [Memory Basics](https://lwn.net/Articles/250967/) - [Cache Line Size](https://stackoverflow.com/questions/794632/programmatically-get-the-cache-line-size) - [Malloc Tutorial](https://danluu.com/malloc-tutorial/) - [Writing A Memory Allocator](http://dmitrysoshnikov.com/compilers/writing-a-memory-allocator/#video-lecture) - [Component Based Architecture](https://www.tutorialspoint.com/software_architecture_design/component_based_architecture) - [Component-Based Architecture Article](https://medium.com/omarelgabrys-blog/component-based-architecture-3c3c23c7e348) - [Understanding Component Based Architecture](https://medium.com/@dan.shapiro1210/understanding-component-based-architecture-3ff48ec0c238) - [Component-Based Software Engineering](https://en.wikipedia.org/wiki/Component-based_software_engineering) ## Game/Graphics Design & Programming - [Fandom Website, Look For Games](https://www.fandom.com) - [Dead Simple UI Layouts](https://halt.software/dead-simple-layouts/) - [New Approaches To Localization](https://www.wired.com/insights/2013/04/application-coding-new-approaches-to-localization/) - [Particle System In 1 Hour](https://www.youtube.com/watch?v=GK0jHlv3e3w) - [Making A Batch Renderer In 1 Hour](https://www.youtube.com/watch?v=KyCQBQzaBOM&t=1196s) - [Bloom](https://www.youtube.com/watch?v=tI70-HIc5ro&t=33s) - [Building A Peer-To-Peer Networked Game](https://gamedevelopment.tutsplus.com/tutorials/building-a-peer-to-peer-multiplayer-networked-game--gamedev-10074) - [Parallax Scrolling Tutorial](https://gamedevelopment.tutsplus.com/tutorials/parallax-scrolling-a-simple-effective-way-to-add-depth-to-a-2d-game--cms-21510) - https://pygame.org/docs - Postmortems: - [No Time, No Budget, No Problem: Finishing The First Tree](https://www.youtube.com/watch?v=g5f7yixtQPc) - [Self Management For Game Devs](http://michaelb.org/solo-game-dev-kanban-magic/) - [Awesome Game Talks](https://github.com/hzoo/awesome-gametalks) - [Game Developer Roadmap](https://github.com/utilForever/game-developer-roadmap) - [The Game Dev's Toolbox For Students](https://gamasutra.com/blogs/AnnaJenelius/20160411/269662/The_Game_Developers_Toolbox_for_Students.php) - [Getting A Job In The Game Industry](https://www.arrowheadgamestudios.com/2016/04/getting-a-job-in-the-games-industry-part-1/) - [The Cost Of Doing Business](https://medium.com/@morganjaffit/the-cost-of-doing-business-c09cc5cc8728) - [Project Planning For Solo Game Devs](http://hacknplan.com/project-planning-for-solo-game-developers/) - [Techniques To Develop Games](http://gamedevelopertips.com/spiral-model-for-game-development/) - [How To Plan A Video Game](https://www.youtube.com/watch?v=_kx_mpRyVMM) - [How To Survive As An Indie For A Decade Or So](http://www.sizefivegames.com/2017/05/04/how-to-survive-as-a-solo-dev-for-like-a-decade-or-so/) - [Choosing Version Control System For Game Devs](http://ithare.com/choosing-version-control-system-for-gamedev/) - [Modern Approaches To Game Production](https://80.lv/articles/modern-approaches-to-game-production/) - [Efficient Indie Trick To Get Close To AAA Quality](https://www.youtube.com/watch?v=15PAsik0PZE) - [Ship Your Game By Mastering The Development Cycle](https://www.youtube.com/watch?v=P0g8MgBw0X8) - [How To Choose Which Game To Develop - A Step By Step Guide](https://www.gamedev.net/blogs/entry/2271139-how-to-choose-which-game-to-develop-a-step-by-step-guide/) - [CI/CD For C/C++ Game Using GitHub Actions](https://thatonegamedev.com/cpp/ci-cd-for-c-c-games-using-github-actions/) - [86 Games Written In Assembly](https://jaymzroo.tripod.com/games.html) - Graphics Generation & Fixing: - [Fix Your Timestep](https://gafferongames.com/post/fix_your_timestep/) - [Integration](https://www.gafferongames.com/post/integration_basics/) - [Easing In-Out Animations](https://easings.net/) - [Collection Of Game Algorithms](https://www.reddit.com/r/gamedev/comments/1aw8am/collection_of_game_algorithms/) - [GafferOnGames](https://gafferongames.com/) - [Game Programming Gems](https://www.cgf-ai.com/listing_gems.html) - [Game Loop](https://dewitters.com/dewitters-gameloop/) - [SAT](https://dyn4j.org/2010/01/sat/) - [Procedural Content Generation In Games](http://pcgbook.com/) - [Matrix Naming Convention](https://www.sebastiansylvan.com/post/matrix_naming_convention/) - [Spelunky's Procedural Space](http://tinysubversions.com/2009/09/spelunkys-procedural-space/) - [RogueLike Articles](http://www.roguebasin.com/index.php?title=Articles) - [Game Of Life](https://robertheaton.com/2018/07/20/project-2-game-of-life/) - [RedBlobGames](https://www.redblobgames.com/) - [LazyFoo.net](https://lazyfoo.net/) - [Practical Fluid Dynamics](https://www.gamasutra.com/view/feature/129972/practical_fluid_dynamics_part_1.php) - [2D Water Dynamic](https://www.reddit.com/r/gamedev/comments/1h1m5a/2d_water_dynamics/) - [Resources Of Realistic Water Simulation](https://gamedev.stackexchange.com/questions/14605/resources-of-realistic-water-simulation) - [Line Intersection Wiki](https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection) - [Proc Gen Guide Part 1](https://www.reddit.com/r/gamedev/comments/1dlwc4/procedural_dungeon_generation_algorithm_explained/) - [Proc Gen Guide Part 2](https://www.reddit.com/r/gamedev/comments/17kb0d/part_2_of_our_procedural_dungeon_generation_guide/) - [Goal Oriented Action Planning](http://alumni.media.mit.edu/~jorkin/goap.html) - [A Star Search Algorithm](https://www.reddit.com/r/gamedev/comments/1qr5vy/a_search_algorithm_tutorial/) - [Introduction To A Star](https://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html) - [A Collection Of Papers On Procedural Generation](https://www.reddit.com/r/gamedev/comments/19faoy/an_excellent_collection_of_papers_on_procedural/) - [Procedural Generation Wiki](https://en.wikipedia.org/wiki/Procedural_generation#:~:text=In%20computing%2C%20procedural%20generation%20is,create%20textures%20and%203D%20models) - [Procedural Generation](https://blogarithms.github.io/articles/2019-04/procedural-generation) - Graphics Libraries & Design: - [Build You Own Raytracer](https://avikdas.com/build-your-own-raytracer/) - [GameDevelopmentTuts+](http://gamedevelopment.tutsplus.com/categories/) - [Tiny Projects By ssloy](https://github.com/ssloy) - [Game Programming Primer Book](https://tl.net/forum/general/382368-game-programming-primer) - [Game Programmer](https://github.com/miloyip/game-programmer) - [Game Programming Patterns](https://www.reddit.com/r/gamedev/comments/23rwv7/game_programming_patterns_xpost_rprogramming/) - [Multithreaded Game Programming & Hyper-Threading Technology](https://software.intel.com/content/www/us/en/develop/articles/multithreaded-game-programming-and-hyper-threading-technology.html) - [Computer Graphics By TutorialsPoint](https://www.tutorialspoint.com/computer_graphics/computer_graphics_quick_guide.htm) - [Graphics Programming Compendium](https://graphicscompendium.com/index.html) - [GraphicsCodex](http://graphicscodex.com/) - [Learn Modern 3D Graphics Programming](https://paroj.github.io/gltut/index.html) - [Michael Abrahs's Graphics Programming Black Book - Special Edition](http://www.jagregory.com/abrash-black-book/) - [Lode's Computer Graphics Tutorials](https://lodev.org/cgtutor/index.html) - [Computer Graphics From Scratch](https://www.gabrielgambetta.com/computer-graphics-from-scratch/) - [Learn Modern 3D Graphics Programming](https://paroj.github.io/gltut/) - [Graphics Programming Black Book](https://www.drdobbs.com/parallel/graphics-programming-black-book/184404919) - [Handmade Hero Development Channel](https://www.youtube.com/c/MollyRocket) - [Tetris Tutorial In C++](https://javilop.com/gamedev/tetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners/) - [A Modern Rendering Architecture](https://ourmachinery.com/post/a-modern-rendering-architecture/) - [Write Your Own 3D Renderer](https://avikdas.com/build-your-own-raytracer/) - [A 3D Modeller In 500 Lines Or Less](https://aosabook.org/en/500L/a-3d-modeller.html) - [Physically Based Rendering From Theory To Implementation](https://www.pbr-book.org/) - [3D Game Shaders For Beginners](https://github.com/lettier/3d-game-shaders-for-beginners) - [Michael Abrash's Black Book GitHub](https://github.com/jagregory/abrash-black-book) - [ScratchAPixel](https://www.scratchapixel.com/index.php) - [The Book Of Shaders](https://thebookofshaders.com/) - [SDL2 & More C Related Tutorials On Dev.To](https://dev.to/noah11012) - [Big Tutorial Index](https://thenumbat.github.io/cpp-course/index.html) - [Optimizing SDL2](http://osdl.sourceforge.net/main/documentation/rendering/SDL-optimizing.html) - [Old-Style Fire Effect In SDL](https://www.hanshq.net/fire.html#sdl) - [Writing A Game Boy Advance Game](https://www.reinterpretcast.com/writing-a-game-boy-advance-game) - [Program NES Games In C](https://nesdoug.com/) - [How To Program A Text Adventure In C](https://helderman.github.io/htpataic/htpataic01.html) - [Video Player Implementation Using SDL & ffmpeg](http://dranger.com/ffmpeg/ffmpeg.html) - [SDL2 Game Tutorials](https://www.parallelrealities.co.uk/tutorials/) - [LazyFoo's SDL2 Tutorials](http://lazyfoo.net/tutorials/SDL/index.php) - [TwinklebearDev SDL2 Tutorials](https://www.willusher.io/pages/sdl2/) - [Circles In SDL2](https://gist.github.com/derofim/912cfc9161269336f722) - [sdltutorials.com](http://www.sdltutorials.com) - [The Coding Train YouTube Channel](https://www.youtube.com/c/TheCodingTrain/playlists) - [A Star Tutorial](https://www.metanetsoftware.com/technique/tutorialA.html) - [Polygonal Map Generation](http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/) - [Multiple SDL2 Game Development Tutorials](https://www.parallelrealities.co.uk/tutorials/) - [Learn How To Make Your Own GameBoy Games](https://www.youtube.com/playlist?list=PLeEj4c2zF7PaFv5MPYhNAkBGrkx4iPGJo) - [Making A Video Game From Scratch In C](https://www.youtube.com/playlist?list=PL7Ej6SUky1357r-Lqf_nogZWHssXP-hvH) - [Another, Making A Video Game From Scratch, Literally](https://www.youtube.com/playlist?list=PLlaINRtydtNWuRfd4Ra3KeD6L9FP_tDE7) - [SDL2 Isometric Game Tutorials](https://www.youtube.com/playlist?list=PL6Ikt4l3NbVjb7WR-eTgjOBMNCn7f3u7x) - [Writing A GameBoy Advance Game](https://www.reinterpretcast.com/writing-a-game-boy-advance-game) - [A Simple Dungeon Generator For Python](http://www.roguebasin.com/index.php?title=A_Simple_Dungeon_Generator_for_Python_2_or_3) - [SDL2 Polygons](https://www.youtube.com/watch?v=tb3VulK6T7k) - [SDL2 Polygons Playlist](https://www.youtube.com/playlist?list=PL3WoIG-PLjSsg1Gwy5Lv--y5b3MDg47rd) - Physics And Game Engines: - [Broad Phase Collision Detection](http://buildnewgames.com/broad-phase-collision-detection/) - [How To Implement A Spatial Hash For A 2D Game](https://gamedev.stackexchange.com/questions/56590/c-how-to-implement-a-spatial-hash-for-a-2d-game) - [Spatial Hashing To Find Closest Pair Of Points From Input File](https://stackoverflow.com/questions/52396671/spatial-hashing-to-find-closest-pair-of-points-from-input-file-c) - [Spatial Hashing](http://www.sgh1.net/posts/spatial-hashing-1.md) - [Spatial Hashing](https://www.gamedev.net/articles/programming/general-and-gameplay-programming/spatial-hashing-r2697/) - [Spatial Hashing Video](https://www.youtube.com/watch?v=sx4IIQL0x7c) - [Spatial Hash Grids](https://www.youtube.com/watch?v=sx4IIQL0x7c) - [Octrees](https://www.gamedev.net/articles/programming/general-and-gameplay-programming/introduction-to-octrees-r3529/) - [Polygonal Collisions In JS](https://www.youtube.com/watch?v=yIxgLYjW0h8) - [GJK Algorithm For Collisions](https://www.youtube.com/watch?v=MDusDn8oTSE) - [Tips For Developing A Collision Detection System](https://www.haroldserrano.com/blog/tips-for-developing-a-collision-detection-system) - [How A Physics Engine Works](https://www.haroldserrano.com/blog/how-a-physics-engine-works-an-overview) - [A Bunch Of Physics Articles](https://www.gamedeveloper.com/search?q=physics&terms=gdc&terms=gdc-22&terms=gdc-masterclass&terms=disciplines&terms=programming&terms=design&terms=audio&terms=art&terms=production&terms=business&terms=marketing&terms=blogs) - [Box2D Physics Documentation](https://box2d.org/documentation/) - [How Does A Physics Engine Actually Simulate Physics](https://stackoverflow.com/questions/6301458/how-does-a-physics-engine-actually-simulate-physics) - [Valve's Physics](https://www.youtube.com/watch?v=1RphLzpQiJY) - [Worlds Using Maths](https://www.youtube.com/watch?v=C9RyEiEzMiU) - [Game Balance](https://www.youtube.com/watch?v=tR-9oXiytsk) - [A Better Jump](https://www.youtube.com/watch?v=hG9SzQxaCm8) - [Maths Playlist](https://www.youtube.com/playlist?list=PLVmb_qp6XRcwzN9l5mcia6Gh3HOgut3bH) - [GafferOnGames Physics](https://gafferongames.com/tags/physics/) - [Making A Physics Engine: The Math](https://www.codeproject.com/Articles/1029858/Making-a-D-Physics-Engine-The-Math) - [Collision Response](https://en.wikipedia.org/wiki/Collision_response) - [Building Collision Simulations](https://www.youtube.com/watch?v=eED4bSkYCB8) - [Physics For Game Programmers: Understanding Constraints](https://www.youtube.com/watch?v=SHinxAhv1ZE&t=1s) - [Designing A Physics Engine In 5 Minutes](https://www.youtube.com/watch?v=-_IspRG548E) - [Game Development Match Recipes](https://gamefromscratch.com/game-development-math-recipes/) - [Math For Game Programmers: Random](https://www.gdcvault.com/play/1023562/Math-for-Game-Programmers-Random) - [Solving Nintendo's CodinGame](https://www.gdcvault.com/play/1024366/Math-for-Game-Programmers-Solving) - [Harmonic Functions](https://www.gdcvault.com/play/1024371/Math-for-Game-Programmers-Harmonic) - [Geometry Caching](https://www.gdcvault.com/play/1024565/Geometry-Caching) - [Managing Variance](https://www.gdcvault.com/play/1025195/Math-for-Game-Programmers-Managing) - [SIMD Optimized Collision Detection](https://www.gdcvault.com/play/1025126/Extreme-SIMD-Optimized-Collision-Detection) - [The Math Of Deep Learning](https://www.gdcvault.com/play/1024370/Math-for-Game-Programmers-The) - [Bending The Physics Engine To Your Will](https://www.gdcvault.com/play/1021921/Designing-with-Physics-Bend-the) - [Collision Detection & Response](https://www.metanetsoftware.com/technique/tutorialA.html) - [Rigid Body Dynamics](http://www.chrishecker.com/Rigid_Body_Dynamics) - [Game Physics GitHub](https://github.com/giuseppemag/Game-physics) - [Khan Academy's Physics Course](https://www.khanacademy.org/science/physics) - [Game Physics Tutorials](http://buildnewgames.com/gamephysics/) - [Build A 2D Physics Engine - IBM](https://developer.ibm.com/tutorials/wa-build2dphysicsengine/) - [Sketching With Math & Physics](https://kynd.github.io/p5sketches/index.html) - [GameDev Maths Recipes Explained](https://www.reddit.com/r/gamedev/comments/1421jk/gamedev_math_recipes_common_game_math_explained/) - [Math For Game Devs](https://www.youtube.com/playlist?list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My) - [Math For Game Programming](https://www.gdcvault.com/play/1017922/Math-for-Game) - [Data Oriented Design In A Physics Engine](https://gamedev.stackexchange.com/questions/111971/data-oriented-design-in-physics-engine) - [Data-Oriented Rigid Body Physics](https://rasmusbarr.github.io/blog/dod-physics.html) - [Game Physics](http://allenchou.net/2013/12/game-physics-constraints-sequential-impulse/) - [How To Create A Custom 2D Physics Engine](https://gamedevelopment.tutsplus.com/series/how-to-create-a-custom-physics-engine--gamedev-12715) - [Video Game Physics Tutorial](https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics) - [Sketching With Math & Physics](https://kynd.github.io/p5sketches/index.html) - [Designing A Physics Engine](https://blog.winter.dev/2020/designing-a-physics-engine/) - [How Does A Physics Engine Actually Simulate Physics?](https://stackoverflow.com/questions/6301458/how-does-a-physics-engine-actually-simulate-physics) - [Guides On Making A Physics Engine](https://www.reddit.com/r/gamedev/comments/86dy2f/guides_on_making_a_physics_engine/) - [Making A 2D Physics Engine: The Math](https://www.codeproject.com/Articles/1029858/Making-a-D-Physics-Engine-The-Math) - [Nature Of Code](https://natureofcode.com) - [BuildNewGames.com](https://buildnewgames.com/) - [How Physics Engines Work](http://buildnewgames.com/gamephysics/) - [Collisions Using SAT](https://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169) - [Broad Phase Collision Detection Using Spatial Partitioning](http://buildnewgames.com/broad-phase-collision-detection/) - [Build A Simple 2D Physics Engine For JS Games](https://developer.ibm.com/tutorials/wa-build2dphysicsengine/) - [Game Physics Series](http://allenchou.net/game-physics-series/) - [Chris Hecker's Physics Wiki](http://www.chrishecker.com/Category:Physics) - [Chris Hecker's Math Wiki](http://www.chrishecker.com/Category:Math) - [Gafferon Games Physics](https://gafferongames.com/tags/physics/) - [Game Dev Movement Cheatsheet](https://somethinghitme.com/2013/11/13/snippets-i-always-forget-movement/) - [Physics By thenewboston](https://www.youtube.com/playlist?list=PL998613A92710000C) - [Is Collision Detection Always O(n^2)](https://gamedev.stackexchange.com/questions/57470/are-collision-detection-always-on2) - [How Can I Optimize A Collision Engine Where Order Is Important](https://gamedev.stackexchange.com/questions/58061/how-can-i-optimize-a-collision-engine-where-order-is-significant-and-collision-i) - [PhysX 3.4 continuous optimization](http://www.codercorner.com/blog/?p=1207) - [Collision Response](https://en.wikipedia.org/wiki/Collision_response) - [Building Collision Simulations](https://www.youtube.com/watch?v=eED4bSkYCB8) - [Collision Detection Big Tutorial Website](http://www.jeffreythompson.org/collision-detection/) - [3D Game Engine Programming Maths Blog](https://www.3dgep.com/category/math/) - [3D Math Engine Project In C++](https://www.haroldserrano.com/math-engine-project#:~:text=A%20Math%20Engine%20is%20the,Version%200.0.&text=Please%20refer%20to%20the%20wiki,to%20use%20the%20math%20engine) - [Realtime Collision Detection](http://realtimecollisiondetection.net/) - [Vector Math For 3D Computer Graphics](http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htm) - [Math For Game Programmers: Juicing Your Cameras With Math](https://www.youtube.com/watch?v=tu-Qe66AvtY) - [Vector Math For 3D Computer Graphics](https://chortle.ccsu.edu/VectorLessons/index.html) - [Maths & Trig Cheatsheet For 2D & 3D](https://gist.github.com/xem/99930986c5333125a13b0ea50600391f) - [Common Game Development Math Recipes](https://www.reddit.com/r/gamedev/comments/1421jk/gamedev_math_recipes_common_game_math_explained/) - [Math For Game Developers Playlist](https://www.youtube.com/playlist?list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My) - [Linear Algebra For Game Devs](http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/) - [Linear Algebra For Deep Learning](https://towardsdatascience.com/linear-algebra-for-deep-learning-f21d7e7d7) - [CodingMath YouTube Channel](https://www.youtube.com/user/codingmath/playlists) - [Essential Mathematics For Aspiring Game Developers YouTube Video](https://www.youtube.com/watch?v=DPfxjQ6sqrc) - [Math For Game Development](https://www.gdcvault.com/play/1017922/Math-for-Game) - [Game Technologies](https://research.ncl.ac.uk/game/mastersdegree/gametechnologies/) - [Isetta Game Engine Blog](https://isetta.io/blogs/week-0/) - [Cross-Platform Game Engine Architecture](http://www.gijskaerts.com/wordpress/) - [OurMachinery.com Posts](https://ourmachinery.com/post/) - [A Simple Game Engine Written In C, Othello](https://www.hanshq.net/othello.html) - [How And Why To Make A Game Engine](https://medium.com/geekculture/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3) - [Harold Serrano - Game Engine Dev](https://www.haroldserrano.com/) - [Multithreaded Game Engine Architecture](https://www.gamasutra.com/view/feature/1830/multithreaded_game_engine_.php) - [Threading A 3D Game Engine](https://www.gamasutra.com/view/feature/2463/threading_3d_game_engine_basics.php) - [A Basic 3D Engine](https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/) - [Scalable Concurrency In Despair Engine](http://gameangst.com/?p=526) - [Creating Scalable Game Engines](https://www.gdcvault.com/play/1021892/Creating-Truly-Scalable-Game-Engines) - [Building A Scalable AAA Game](https://www.gdcvault.com/play/1024276/Building-a-Scalable-AAA-Game) - [Engine Post-Mortem Of inFamous Second Son](https://www.gdcvault.com/play/1020399/Engine-Postmortem-of-inFAMOUS-Second) - [Building A Multi-Threaded Web Engine](https://www.gdcvault.com/play/1015621/Building-a-Multi-threaded-Web) - [Building A Multi-Threaded Web-Based Engine](https://www.gdcvault.com/play/1015111/Building-a-Multithreaded-Web-Based) - [Rewriting An Engine](https://www.gdcvault.com/play/1014668/ALAN-WAKE-The-Writer-Who) - [3D Development Engine](https://www.gdcvault.com/play/1013650/3D-Development-Engine) - [Game Engine Architecture](http://www.gijskaerts.com/wordpress/) - [Game Loop](https://dewitters.com/dewitters-gameloop/) - [Game Engine Development Blog](https://www.haroldserrano.com/) - [Molecular Matter Blog](https://blog.molecular-matters.com/) - [How And Why To Make A Game Engine](https://medium.com/geekculture/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3) - [Godot's Physics](https://docs.godotengine.org/en/stable/tutorials/physics/) - Entity Component Systems: - [Entity Memory Contiguity](https://ryanfleury.net/blog_entity_memory_contiguity) - [Entity Component System In C](https://prdeving.wordpress.com/2018/06/27/videogames-programming-ecs-system-in-plain-c/) - [A Simple ECS In C++](https://austinmorlan.com/posts/entity_component_system/) - [Entity Component Systems Data Oriented Style](http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/) - [Making A Data Oriented ECS](https://bitsquid.blogspot.com/2014/08/building-data-oriented-entity-system.html) - [How Are ECS Cache Efficient?](https://gamedev.stackexchange.com/questions/82030/how-are-entity-systems-cache-efficient) - [Appropriate Cache Friendly Associative Container For An ECS](https://gamedev.stackexchange.com/questions/155130/appropriate-cache-friendly-associative-container-for-an-entity-component-system) - [A More Data Oriented Design Approach To ECS](https://gamedev.stackexchange.com/questions/138438/a-more-data-oriented-design-approach-to-entity-component-system-game-engine) - [Data Oriented Design Is Not About SoA And ECS](https://www.polymonster.co.uk/blog/dod-ecs) - [Entity Systems Are The Future..](http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/) - [Building A DOD ECS](https://bitsquid.blogspot.com/2014/08/building-data-oriented-entity-system.html) - [The Design Pattern](https://www.gamasutra.com/blogs/TobiasStein/20171122/310172/The_EntityComponentSystem__An_awesome_gamedesign_pattern_in_C_Part_1.php) - Level Editor: - [Level Editor Series](https://www.raywenderlich.com/2732-create-your-own-level-editor-part-1-3) - [Make Your Own Level Editor](https://gamedevelopment.tutsplus.com/articles/make-your-life-easier-build-a-level-editor--gamedev-356) - [A 2D Level Editor In 30 Seconds](https://www.gamasutra.com/blogs/TimConkling/20150616/246253/A_2D_Level_Editor_in_30_Seconds.php) - Chunking System: - [2D Chunk Theory](https://www.gamedev.net/forums/topic/653120-2d-tilemaps-chunk-theory/) - [How To Create A Chunk Loading System?](https://www.reddit.com/r/gamedev/comments/1tbsub/how_to_create_a_chunk_loading_system/) - Graphics APIs: - [Common OpenGL Mistakes](https://www.khronos.org/opengl/wiki/Common_Mistakes) - [Game Development With OpenGL](http://www.learnopengles.com/category/game-development/) - [LazyFoo's OpenGL Tutorials](https://lazyfoo.net/tutorials/OpenGL/index.php) - [OpenGL Math Cheatsheet](http://www.opengl-tutorial.org/miscellaneous/math-cheatsheet/) - [Awesome Vulkan](https://github.com/vinjn/awesome-vulkan) - [Awesome OpenGL](https://github.com/eug/awesome-opengl) - [World, View & Projection Matrices](http://www.codinglabs.net/article_world_view_projection_matrix.aspx) - [Vulkan In 30 Minutes](https://renderdoc.org/vulkan-in-30-minutes.html) - [learnopengl.com - OpenGL Tutorial Website](https://learnopengl.com/) - [OGLDev.org - OpenGL Tutorial Website](https://ogldev.org/) - [Open.GL - OpenGL Tutorial Website](https://open.gl/) - [OpenGL Tutorial](http://www.opengl-tutorial.org/) - YouTube Channels: - [Travis Vroman](https://www.youtube.com/c/TravisVroman/playlists?view=1&sort=dd&shelf_id=0) - [Jonathon Blow](https://www.youtube.com/user/jblow888/playlists) - [Harold Serrano](https://www.youtube.com/c/HaroldSerrano/playlists) - [The Cherno](https://www.youtube.com/c/TheChernoProject/playlists) - [javidx9](https://www.youtube.com/c/javidx9/videos) - [Wintermute Digital](https://www.youtube.com/channel/UCuajyE6kZ9yU-qypGoJmXeQ/videos) - [Tsoding Daily](https://www.youtube.com/channel/UCrqM0Ym_NbK1fqeQG2VIohg) - [Matt Godbolt](https://www.youtube.com/c/MattGodbolt/videos) - [vivaladev](https://www.youtube.com/c/vivaladev/videos) - [454 Live Streams](https://www.youtube.com/playlist?list=PLbtjxiXev6lrSovYDdI2xHVcw8Gk2J3Zw) - [DaFluffyPotato](https://www.youtube.com/channel/UCYNrBrBOgTfHswcz2DdZQFA) - [khanacademy.org](https://www.khanacademy.org/) - [GMTK](https://www.youtube.com/c/MarkBrownGMT) - [Handmade Hero Development Channel](https://www.youtube.com/c/MollyRocket) - Game Design: - [CPU](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=CPU) - [GPU](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=GPU) - [Data Oriented](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=Data+Oriented) - [Animation](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=animation) - [2D](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=2d+) - [Vulkan](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=vulkan) - [OpenGL](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=opengl) - [Graphics](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=graphics) - [Caches](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=caches) - [Engine](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=game+engine) - [Render](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=render) - [Design](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=design) - [Post-Mortems](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=postmortems) - [Programming](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=programming) - [Optimization](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=optimization) - [Physics Talks](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=physics) - [Math Talks](https://www.gdcvault.com/search.php#&conference_id=&category=free&firstfocus=&keyword=math) - [Website](https://gdcvault.com/) - [YouTube Channel](https://www.youtube.com/c/Gdconf/videos) - [Game Mechanic Explorer](https://gamemechanicexplorer.com/) - [GMTK](https://www.youtube.com/c/MarkBrownGMT) - [Accessibility In Video Games](https://www.alanzucconi.com/2021/05/24/accessibility-in-videogames/) - [The Guide To Implementing 2D Platformers](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/) - [Game Accessibility Guidelines](http://gameaccessibilityguidelines.com/) - [The Chemistry Of Game Design](https://www.gamasutra.com/view/feature/129948/the_chemistry_of_game_design.php) - [Game UI Design](https://gamasutra.com/blogs/BrianOppenlander/20151223/262574/Game_UI_design.php) - [How To Avoid Limpness & Rigidity Feelings In Platformer](https://www.gamasutra.com/blogs/YoannPignole/20140103/207987/Platformer_controls_how_to_avoid_limpness_and_rigidity_feelings.php) - [Why The Witcher 3's Sidequests Are So Good](https://www.youtube.com/watch?v=fkA3KKSHx9o) - [A Theory Of Fun - 10 Years Later](https://www.gdcvault.com/play/1016632/A-Theory-of-Fun-10) - [Diable: A Classic Game Postmortem](https://www.youtube.com/watch?v=VscdPA6sUkc) - [How Games Do Health](https://www.youtube.com/watch?v=4AEKbBF3URE) - [Video Game Art Styles - Tumblr](https://videogameartstyles.tumblr.com/) - [Everything You Need To Know About Pixel Art](https://www.reddit.com/r/gamedev/comments/2hdsdi/everything_you_need_to_know_about_pixel_art_60_of/) - [How To Do Pixel Art](https://www.youtube.com/playlist?list=PLAdAph7mbAcZF43uD0YRlo8lpF3L61Aal) - [Understanding Color](https://www.youtube.com/watch?v=Qj1FK8n7WgY) - [Color In Video Games](https://www.gamasutra.com/blogs/HermanTulleken/20150729/249761/Color_in_Games.php) - [Pixel Art Videos](https://www.youtube.com/playlist?list=PLC6BCB8E64F315574) - [Procedural Animations](http://www.alanzucconi.com/2017/04/17/procedural-animations/) - [GPU Performance For Game Artists](http://www.fragmentbuffer.com/gpu-performance-for-game-artists/) - [How To Pixel Art YouTube Playlist](https://www.youtube.com/playlist?list=PLG0tvJ_jRDIVqRSjelh_uyuZpREN-T4ZF) - [10 Commandments Of Color Theory](http://thumbnails.visually.netdna-cdn.com/the-10-commandments-of-color-theory_537dc47b1c394.jpg) - [Composition In Level Design](https://shapeofplay.wordpress.com/2013/06/25/composition-level-design/) - [Less Is More: Designing Awesome AI For Games](https://www.youtube.com/watch?v=1xWg54mdQos) - [Uncharted 4 Analyzed](https://www.youtube.com/watch?v=F1C3g0HNh34) - [A Game Designer Explains The Counterintuitive Secret To Fun](https://www.youtube.com/watch?v=78rPt0RsosQ) - [Visual Storytelling Done Right](https://www.youtube.com/watch?v=2TLRjV137hw) - [Sigmoid Functions In Game Design](https://www.jfurness.uk/sigmoid-functions-in-game-design/) - [Storytelling](https://www.khanacademy.org/computing/pixar/storytelling) - [Designing Game Controls](https://www.gamasutra.com/blogs/AndrewDotsenko/20170329/294676/Designing_Game_Controls.php) - [Video Game Story Structure Guide](https://medium.com/@calebgeizer/video-game-story-structure-guide-f59a8f8c9b0a) - [Intro To Narrative Design](https://www.youtube.com/watch?v=IGluIMhB73Y) - [How To Write A Game Design Document](https://www.youtube.com/watch?v=VO4FNf-Xc58) - [Level Design Patterns In 2D Games](https://www.gamasutra.com/blogs/AhmedKhalifa/20190610/344344/Level_Design_Patterns_in_2D_Games.php) - [Why Does Celeste Feel So Good To Play?](https://www.youtube.com/watch?v=yorTG9at90g) - [5 Game Design Tools To Help Design YOUR Game](https://www.gamasutra.com/blogs/RafaelVazquez/20200309/359272/5_Practical_game_design_tools_to_help_design_your_game.php) - [8 Step Game Design Document](https://www.scribd.com/doc/299827462/8-Step-Game-Design-Document) - [About Combat System Design](https://breadcrumbsinteractive.com/about-combat-system-design/) - [On Making Good Combat Mechanics](http://joesopko.weebly.com/blog/on-making-good-combat-mechanics-part-1) - [On Making Good Combat Mechanics Gamasutra](https://www.gamasutra.com/blogs/JosephSopko/20160630/276193/On_Making_Good_Combat_Mechanics_Part_1.php) - [Why Do FPS Boss Battles Suck?](https://www.youtube.com/watch?v=pAI3klmQCno) - [How Hyper Light Drifter's Ammo Recharges Its Combat](https://www.rockpapershotgun.com/how-hyper-light-drifters-ammo-recharges-its-combat) - [How Pillars Of Eternity Changed The Stats Game](https://www.youtube.com/watch?v=9xP4U2z3d-Y) - [The Applied Value Of A Player](https://www.gdcvault.com/play/1017784/The-Applied-Value-of-Player) - [How And Why To Write A Great Design Doc](http://www.gamesandlearning.org/2015/10/08/how-and-why-to-write-a-great-game-design-document/) - [Game UI Design](https://gamasutra.com/blogs/BrianOppenlander/20151223/262574/Game_UI_design.php) - [8 Step Game Design Document](https://www.scribd.com/doc/299827462/8-Step-Game-Design-Document) - [About Combat System Design](https://breadcrumbsinteractive.com/about-combat-system-design/) - [Why Do FPS Boss Battles Suck?](https://www.youtube.com/watch?v=pAI3klmQCno) - [Can We Improve Tutorials For Complex Games?](https://www.youtube.com/watch?v=-GV814cWiAw) - [GDD](https://vitalzigns.itch.io/gdd) ## Maths & Studies - [Immersive Math](http://immersivemath.com/ila/learnmore.html) - [Ludus](https://www.youtube.com/c/LudusYT/playlists?view=1&sort=dd&shelf_id=0) - [Mathematics For Self-Learner](https://www.neilwithdata.com/mathematics-self-learner) - [Flexbooks Maths](https://flexbooks.ck12.org/cbook/ck-12-interactive-middle-school-math-8-for-ccss/) - [Sciencing](https://sciencing.com/) - [MathScore](http://www.mathscore.com/) - [MathPlanet](https://www.mathplanet.com/) - [Illustrative Maths](http://tasks.illustrativemathematics.org/8) - [mathhelp.com](https://www.mathhelp.com/pre-algebra-help/) - [thatquiz.org](https://www.thatquiz.org/) - [Test & Worksheet Generator](https://www.kutasoftware.com/index.html) - [Basic Maths HS Needs To Know](http://nlvm.usu.edu/en/nav/grade_g_3.html) - [Patrick JMT's Tutorials](http://patrickjmt.com/) - [Lamar's Notes On Maths](https://tutorial.math.lamar.edu/) - [Maths Playlist](https://www.youtube.com/playlist?list=PLWKjhJtqVAbl5SlE6aBHzUVZ1e6q1Wz0v) - [mathwarehouse.com](https://www.mathwarehouse.com/) - [Small Course On Trig](https://www2.clarku.edu/faculty/djoyce/trig/) - [FreeMathHelp](https://www.freemathhelp.com/) - [Statistics Problems](https://stattrek.com/statistics/problems.aspx) - [varsitytutors.com](https://www.varsitytutors.com/aplusmath) - [Vectors](https://www.mathsisfun.com/algebra/vectors.html) - [David E. Joyce Past Courses](https://mathcs.clarku.edu/~djoyce/pastcourses.html) - [MasupMath](https://www.mashupmath.com/math-videos-for-kids) - [GeoGebra](https://www.geogebra.org/m/feq3vqpb) - [MathHelp.com](https://www.mathhelp.com/) - [virtualnerd.com](http://virtualnerd.com/) - [voovers.com](https://www.voovers.com/lessons/) - [aopsacademy.org](https://aopsacademy.org/courses/catalog) - [Study Guides](https://www.cliffsnotes.com/study-guides) - [Maths Lessons](https://www.wyzant.com/resources/lessons/math) - [Trigonometry](https://www.mathwarehouse.com/trigonometry/) - [Precalculus Resource](https://17calculus.com/precalculus/) - [Trig Functions](http://www.math.com/tables/algebra/functions/trig/functions.htm) - [A Course On Combinatorics](https://unacademy.com/a/course-on-combinatorics) - [math.com](http://www.math.com/) - [khanacademy.org](https://www.khanacademy.org/) - [Jensen Math Website](https://www.jensenmath.ca/) - [TheOrganicChemistryTutor](https://www.youtube.com/c/TheOrganicChemistryTutor/playlists) - [GeeksForGeeks](https://www.geeksforgeeks.org/) - [MIT Open Courses](https://ocw.mit.edu/courses/archived-courses/) - https://ocw.mit.edu/courses/archived-courses/#physics - https://ocw.mit.edu/courses/archived-courses/#electrical-engineering-and-computer-science - https://ocw.mit.edu/courses/archived-courses/#mathematics - [IB Resources](https://ibresources.org) - [Cambridge Past Papers](https://www.cambridgeinternational.org/programmes-and-qualifications/cambridge-upper-secondary/) ## Web Development - [Roadmap Video](https://www.youtube.com/watch?v=VfGW0Qiy2I0&t=329s) - Roadmaps: - https://www.freecodecamp.org/news/2019-web-developer-roadmap/ - https://www.freecodecamp.org/news/how-to-learn-web-dev-in-2021-roadmap/ - https://levelup.gitconnected.com/the-2020-web-developer-roadmap-76503ddfb327 - https://dev.to/ender_minyard/full-stack-developer-s-roadmap-2k12 - https://github.com/kamranahmedse/developer-roadmap - https://medium.com/codingthesmartway-com-blog/the-2020-roadmap-to-fullstack-web-development-6d1713697a27 - https://www.freecodecamp.org/news/search/?query=web%20developer%20roadmap%202022 - https://dev.to/ender_minyard/full-stack-developer-s-roadmap-2k12 - [Database](https://cstack.github.io/db_tutorial/) - [Full Stack Python](https://www.fullstackpython.com/) - [Top 10 Web App Security Risks](https://owasp.org/www-project-top-ten/) - [Web Apps Exploits & Defenses](https://google-gruyere.appspot.com/part1) - [Progressive Web Apps](https://developers.google.com/web/ilt/pwa) - [WebDev](https://web.dev/) ## Competitive Programming - Websites: - CodeForces: - Solve problems by rating - 3 Divisions In CodeForces, Div 1, Div 2, Div 3 - AtCoder: - Beginner Contest -> 500 - 1400 In CodeForces Rating - Regular Contest -> 900 - 2600 In CodeForces Rating - Grand Contest -> 1200 - 3300 In CodeForces Rating - TopCoder: - Div 1 -> 1800 - 3000 In CodeForces Rating - Div 2 -> 600 - 2100 In CodeForces Rating - Maths: - Integers: Operations, Comparison, Properties - Modular Arithmetic: Addition, Subtraction, Multiplication, Division - Prime Numbers - Fractions, Percentages - Line, Segments, Angles, Triangles, Rectangles, Squares, Circle - Point, Vectors, Coordinates - Polygons: Vertex, Convex, Area - Euclidean Distances - Pythagorean Theorem - Number Theory - Fibonacci Numbers - Truth Tables - Permutations & Combinations - Factorials - Matrix Methods - Logarithms - Game Theory - Data Structures: - Arrays - Suffix Arrays - Sets - Linked Lists - Stacks - Queues - Hash Tables - Heaps - Tries - Trees - Graphs - Matrices - Segment Trees - Decision Trees - Algorithms: - Searching - Sorting - Graph Searching - Dynamic Programming - Hashing - Regular Expressions - Primality Testing - Prime factors, divisors - GCD & LCM - Fast Fourier Transform - Euler Totient - Binary Exponentiation - Exponentiation By Squaring - Dynamic Programming Algorithms - Loops & Recursion - Backtracking - Multiple Pointers - Sliding Windows - Greedy Algorithms - Logical Math Proofs - Matrix Mutiplication Algorithms - Tree Traversal - Combinatorial Game Theory - Sieve Of Eratosthenes, Or Another Prime Number Sieve - Topological Sort - Convex Hull - Longest Common Subsequence - Index Based Sorting - DFS, BFS, Dijkstra’s Algorithm - Minimum Spanning Trees - Number Theory - Bruteforce - List - Minimax Algorithm - Bit Manipulation - Pointers - Subsequence - Maths - BigInteger - GCD - LCM - Euclidean Algorithm - Extended Euclidean Algorithm - Sieve of Eratosthenes - Segmented Sieve - Modulo arithmetic - Modulo exponentiation - Modulo inverse - Lucas Theorem - Chinese Remainder Theorem< - Series and Sequences - Catalan Numbers - Pigeonhole Principle - Inclusion Exclusion Principle - Divide & Conquer - Greedy Algorithm - Backtracking - Bruteforce - Euclid's Algorithm - Primality Test - Sieve of Eratosthenes - Factorization - Efficient Exponentiation - Array Manipulation - String Algorithms (substring search) - Sequential Processing - Quicksort & Quickselect to find kth smallest element - O(n log n) worst case sorting - Tree Traversal - Shortest Path Algorithms - Minimum Spanning Tree - Resources: - [Competitive Programming Guide](https://www.geeksforgeeks.org/competitive-programming-a-complete-guide/?ref=ghm) - [Competitive Programming Roadmap](https://cp.cyberlabs.club/docs/roadmap/) - [Competitive Programming Trello Board](https://trello.com/b/TWSfC3uS/competitive-programming) - [Competitive Programming Maths Resources](https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md) - [Number Theory Course Codeforces](https://codeforces.com/blog/entry/77137) - [Competitive Programming Course](https://algo.is/competitive-programming-course/) - [Algorithm Design Manual](http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK/BOOK.HTM) - [Planning Algorithms](http://lavalle.pl/planning/book.html) - [O(n) Cheatsheet](https://www.bigocheatsheet.com/) - [Asymptotic Notation](https://learnxinyminutes.com/docs/asymptotic-notation/) - [Dynamic Programming Resource](https://learnxinyminutes.com/docs/dynamic-programming/) - [Algorithmic Resources - GitHub](https://github.com/hkirat/Algorithmic-Resources) - [Every Programmer Should Know](https://github.com/mtdvio/every-programmer-should-know) - [Coding Interview University](https://github.com/jwasham/coding-interview-university) - [Competitive Programming Algorithms](https://cp-algorithms.com/) - [GeekForGeeks](https://www.geeksforgeeks.org/) - [Back to Back SWE - YouTube](https://www.youtube.com/c/BackToBackSWE/playlists) - [Tushar Roy Competitive Programming - YouTube](https://www.youtube.com/user/tusharroy2525/playlists?view=1&sort=dd&shelf_id=0) - [MIT - Introduction To Algorithms - YouTube Playlist](https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb) - [Errichto YouTube Channel](https://www.youtube.com/channel/UCBr_Fu6q9iHYQCh13jmpbrg) - [DSA YouTube Playlist](https://www.youtube.com/playlist?list=PLCqWq4vJTZacyUK65J2vSTWH_bXfF33Rm) - [Rachit Jain YouTube](https://www.youtube.com/c/RachitJain/videos) - [Data Structures In Python](https://runestone.academy/runestone/books/published/pythonds/index.html) - [Data Structures In C++](https://runestone.academy/runestone/books/published/cppds/index.html) - [Data Structures Skillshare Course](https://www.skillshare.com/classes/Data-Structures-and-Algorithms-in-Python/1476385755?via=custom-lists) - [Data Structures Implementation](https://www.codesdope.com/course/data-structures-introduction/) - [TutorialsPoint Data Structures](https://www.tutorialspoint.com/data_structures_algorithms/index.htm) - [Data Structures Implementation In C](https://www.edureka.co/blog/c-data-structures/) - [Learn RegEx](https://regexone.com/) - [Data Structures & Algorithms On Google](https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/) - [Interview Prep On Google](https://techdevguide.withgoogle.com/paths/interview/) - [50+ Data Structure and Algorithms Interview Questions for Programmers](https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0) - [Must Do Coding Interview Questions](https://www.geeksforgeeks.org/must-do-coding-questions-for-companies-like-amazon-microsoft-adobe/) - [DSA Courses & Problems](https://practice.geeksforgeeks.org/?ref=ghm) - [FAANG Questions GitHub](https://github.com/neerazz/FAANG) - [Algorithms / Questions GitHub](https://github.com/vicky002/AlgoWiki/blob/gh-pages/Algorithms/Sources.md) - [Write A HashTable In C](https://github.com/jamesroutley/write-a-hash-table) - [Competitive Programming Articles, Books..etc..](https://github.com/vicky002/AlgoWiki/blob/gh-pages/Competitive-Programming/Competitive-Programming.md) - [Codingame - Competitive Programming By Coding Game Systems](https://www.codingame.com/start) - [Codeforces Competitive Programming Problems](https://codeforces.com/) > [Advent Of Code Competitive Programming Problems](https://adventofcode.com/) - [Atcoder Competitive Programming Problems](https://atcoder.jp/home) - [Data Structures & Algorithms By Google](https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/) - [URI Online Judge](https://www.urionlinejudge.com.br/judge/en/categories) - [TopCoder Arena - Competitive Programming Problems](https://arena.topcoder.com/index.html#/u/practiceProblemList) - [Project Euler](https://projecteuler.net/archives) - [CoderByte](https://www.coderbyte.com/challenges?newAccount=true) - [Exercism.io](https://exercism.io/) - [CSES Problem Set](https://cses.fi/problemset/) - [LeetCode Problems](https://leetcode.com/) - [Timus Online Judge - Competitive Programming Problems](https://acm.timus.ru/) > [USA Computing Olympiad Competitive Programming Problem Archive](http://usaco.org/index.php?page=contests) - [HackerRank Competitive Programming Problems](https://www.hackerrank.com/) - [edabit Competitive Programming Problems](https://edabit.com/) > [Google Coding Competitions](https://codingcompetitions.withgoogle.com/) > [Google Kickstart Archive](https://codingcompetitions.withgoogle.com/kickstart/archive) > [Google Code Jam Archive](https://codingcompetitions.withgoogle.com/codejam/archive) - [Sphere Online Judge](https://www.spoj.com/) - [Algoexpert.io - Interview Questions](https://www.algoexpert.io/product) - [Algorithm Visualizer](https://algorithm-visualizer.org/) - [Visualgo - Visualize Algorithms](https://visualgo.net/en) - [CS Academy](https://csacademy.com/) - [CodeChef Data Structures & Algorithms](https://www.codechef.com/LEARNDSA?order=desc&sortBy=successful_submissions) - [Reddit With Tons Of Problems](https://www.reddit.com/r/dailyprogrammer/) - [Coding Interview Handbook](https://techinterviewhandbook.org/) - [Basic Number Theory CodeChef](https://www.codechef.com/wiki/tutorial-number-theory/) - [Memory Basics](https://lwn.net/Articles/250967/) - [Problem Solving & DSA With C++](https://runestone.academy/runestone/books/published/cppds/index.html) - [Data Structures Implementation](https://www.codesdope.com/course/data-structures-introduction/) - [TutorialsPoint Data Structures](https://www.tutorialspoint.com/data_structures_algorithms/index.htm) - [Learn RegEx](https://regexone.com/) - [DSA Google](https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/) - [Competitive Programming Algorithms](https://cp-algorithms.com/) - [Coding Interview University](https://github.com/jwasham/coding-interview-university) - [Interview Prep Google](https://techdevguide.withgoogle.com/paths/interview/) - [GeekForGeeks Practice](https://practice.geeksforgeeks.org/?ref=ghm) - [Interview Handbook](https://techinterviewhandbook.org/) - [Maths For Competitive Programming TopCoder](https://www.topcoder.com/thrive/articles/Dynamic%20Programming:%20From%20Novice%20to%20Advanced) - [Dynamic Programming TopCoder](https://www.topcoder.com/thrive/articles/Mathematics%20for%20Topcoders) - [Bitwise Operators In C](https://www.youtube.com/watch?v=d0AwjSpNXR0) - [Bitwise Operators In-Depth](https://www.youtube.com/watch?v=7jkIUgLC29I) - [Big-O Cheatsheet For Common Algorithms](https://learntocodetogether.com/big-o-cheat-sheet-for-common-data-structures-and-algorithms/) - [Maths Doc](https://docs.google.com/document/d/1txYhn10FrP8FypZxEjWRkkQ4TQGJ14i-pbxrHwqFHEk/edit) - [Mathematical Expectations For Competitive Programming](https://www.codechef.com/wiki/tutorial-expectation) - Practical: - [CSES Problem Set](https://cses.fi/problemset/) - [Timus Online Judge - Competitive Programming Problems](https://acm.timus.ru/) - [Project Euler](https://projecteuler.net/archives) - [DSA On CodeChef](https://www.codechef.com/LEARNDSA?order=desc&sortBy=successful_submissions) - [HackerEarth](https://www.hackerearth.com/practice/codemonk/) - [CodeForces](https://codeforces.com/contests) - [AtCoder](https://atcoder.jp/home) - [DSA With Google](https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/) - [URI Online Judge](https://www.urionlinejudge.com.br/judge/en/categories) - [TopCoder](https://arena.topcoder.com/index.html#/u/dashboard) - [Exercism.io](https://exercism.io/my/tracks) - [LeetCode](https://leetcode.com/) - [CS Academy](https://csacademy.com/contest/archive/) - [USACO Past Contests](http://usaco.org/index.php?page=contests) - [Competitions With Google](https://codingcompetitions.withgoogle.com/) - [Google Kickstart](https://codingcompetitions.withgoogle.com/kickstart/archive) - [Google Code Jam](https://codingcompetitions.withgoogle.com/codejam/archive) - [Must Do Coding Questions](https://www.geeksforgeeks.org/must-do-coding-questions-for-companies-like-amazon-microsoft-adobe/) - [Over 50 Coding Questions To Do](https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0) - [Articles On Problems GitHub](https://github.com/vicky002/AlgoWiki/blob/gh-pages/Algorithms/Sources.md) - [Competitive Programming Problems GitHub](https://github.com/vicky002/AlgoWiki/blob/gh-pages/Competitive-Programming/Competitive-Programming.md) - [FAANG Questions GitHub](https://github.com/neerazz/FAANG) - [Questions On Algorithms GitHub](https://github.com/hkirat/Algorithmic-Resources) - [Rosetta Code](https://rosettacode.org/wiki/Category:Programming_Tasks) - [Edabit](https://edabit.com/challenges)