# Learning List :::spoiler {state="open"} **🧷 Table of Content** [toc] ###### (Keep On Updating) ::: This list is a comprehensive image for becoming a well-rounded super software engineer (SWE) from pratical point of view by the end of 2024, covering essential topics from algorithms to modern programming languages and frameworks. Try to complete this list as much as possible before or even after graduating with a master's degree in CS. __GitHub Page:__ **[William-HuangWY](https://github.com/William-HuangWY)**<br/> __Vist My Website:__ **[WeiYingHuang.com](https://weiyinghuang.com)** <br/> ## 1. **Topics** 🗂️ - ## **LeetCode Problems** ###### (Math & Algorithms & Data Structures) - [X] LeetCode 50 [name=William Huang (黃威穎)] [time=Mon, Aug 12, 2024] - [X] LeetCode 100 [name=William Huang (黃威穎)] [time=Thu, Oct 10, 2024] - [X] LeetCode 200 [name=William Huang (黃威穎)] [time=Fri, Jun 6, 2025] - [ ] LeetCode 400 - ## **Programming Language** - ## ![img.icons8](https://hackmd.io/_uploads/r10vIXqjR.png) C <!-- C --> - [ ] **Pointer** - Array Pointer - Function Pointer - [ ] **Memory Management** - Dynamic Allocate (`malloc`, `free`) - Memory Leak Detection - [ ] **File I/O** - File Stream Operation (`fopen`, `fclose`, `fread`, `fwrite`) - [ ] **Concurrency** - Basic Multithreading (POSIX threads) - [ ] **Embedded Systems** - Basic Arduino / MCU Design - Hardware Interface (GPIO, UART, I2C) - ## ![img.icons8](https://hackmd.io/_uploads/SyerLX9i0.png) C++ <!-- C++ --> - [ ] **STL (Standard Template Library)** - Container(`vector`, `map`, `set`) - Algorithm(`sort`, `find`) - Iterator、Reverse Iterator - [ ] **Threading** - Multithreading & Synchronization(`thread`, `mutex`, `condition_variable`) - [ ] **Memory Management** - Smart Pointer(`unique_ptr`, `shared_ptr`) - Custom Memory Management - [ ] **Design Patterns** - Common Concepts(Singleton, Factory, Observer) - [ ] **Unreal Engine** - Unreal Engine Workflow - Blueprint & Modular Design - Game Dev Structure (`TArray`, `TMap`, `TSet`) - ## ![img.icons8](https://hackmd.io/_uploads/Hks3Um5j0.png) Python <!-- Python --> - [ ] **Decorators** - Creating & Using (`@njit`) - Higher-Order Functions (Wrapper) - [ ] **Iterators and Generators** - `Itertools`, `yield` - Generator Object **∈** Iterable Object - Generator Expression `(``Comprehension``)` - [ ] **Concurrency** - Multithreading & Asynchronous(`asyncio`, `concurrent.futures`) - [ ] **Logging** - Logging Principles - Levels (`DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`) - Handlers (File, Stream) - Formatters (Log Message Structure) - `logging` Module - Basic Configuration (`logging.basicConfig()`) - Creating Loggers, Handlers, and Formatters - Writing logs to a file (`logfile.log`) - Rotating Logs (`RotatingFileHandler`) - [ ] **Pygame** - Basic GameDev Concepts - Game Elements (`Surface`, `Sprite`, `collidepoint`) - Graphics library (`OpenGL`, `OpenCV`) - Simple Puzzle & Graphics Application - [ ] **Web Framework** - **Django** - MVC Pattern (Model-View-Controller) - ORM (Object-Relational Mapping) - Form Handling, Templating - **Flask** - Routing, Middleware - Request Handling, Blueprint - Integration with Frontend (Jinja2, AJAX) - [ ] **Machine Learning** - **Basic Concepts** - Supervised vs. Unsupervised Learning - Regression vs. Classification - **Libraries** - **NumPy** & **Pandas** - Data Manipulation, Analysis - **Scikit-Learn** - Model Training, Evaluation - Common Algorithms (Linear Regression, Decision Trees, SVM) - **TensorFlow** & **Keras** - Neural Network Basics, Model Building - Training and Evaluation, Hyperparameter Tuning - **PyTorch** - Tensors and Autograd - Building Neural Networks, Training Loops - **Deep Learning** - **Neural Networks** - Feedforward, Convolutional (CNN), Recurrent (RNN) - Activation Functions (ReLU, Sigmoid) - **Advanced Topics** - Transfer Learning, Fine-Tuning - GANs (Generative Adversarial Networks) - Reinforcement Learning - **Model Deployment** - **ONNX** (Open Neural Network Exchange) - Serving Models with **Flask** or **FastAPI** - ## ![img.icons8](https://hackmd.io/_uploads/HyD_DX5o0.png) C# <!-- C# --> - [ ] **Basic Syntax** - Variables, Data Types, Control Flow - Exception Handling (`try`, `catch`, `finally`) - [ ] **Object-Oriented Programming (OOP)** - Classes, Inheritance, Polymorphism - Interfaces, Abstract Classes - [ ] **LINQ (Language Integrated Query)** - Query Syntax, Method Syntax - LINQ to Objects, LINQ to XML - [ ] **Windows Forms** - Basic Form Design - Event Handling, Data Binding - [ ] **ASP.NET Core** - Basic Application Structure - Dependency Injection, Middleware - [ ] **Web Development** - .NET Core Basics - MVC Pattern (Model-View-Controller) - RESTful API Development, Routing - Razor Pages, Tag Helpers - [ ] **UnityEngine** - Basic Game Development Workflow - Scene Management, Prefabs, GameObjects - Object Scripting (MonoBehaviour, Physics) - EventHandler & UI Design (Canvas, Buttons, Events) - ## ![img.icons8](https://hackmd.io/_uploads/S1q6zZmnA.png) JavaScript [<i class="ph ph-arrow-square-out"></i>](/WpQizpdlRQ6R_1O4pwasQA) <!-- JavaScript --> - [ ] **Core Concepts** - Variables, Scopes (`var`, `let`, `const`) - Functions, Closures, Arrow Functions - [ ] **Asynchronous Programming** - Callbacks, Promises, `async`/`await` - Event Loop, Microtasks - [ ] **DOM Manipulation** - Document Object Model Basics (HTML, CSS) - Event Handling, Element Selection - [ ] **Frontend Frameworks** - Basic React Workflow - Component Lifecycle, Hooks - Frameworks: React, Vue, Angular, Three - [ ] **Node.js** - Basic Server Setup - Express Framework, Middleware - ## ![img.icons8](https://hackmd.io/_uploads/Hkr7dmqiR.png) PHP <!-- PHP --> - [ ] **Basic Syntax** - Variables, Data Types, Control Flow - Functions, Arrays, String Operations - [ ] **File Handling** - File Operations (`fopen`, `fclose`, `fwrite`, `fread`) - File Uploads, Handling CSV/JSON - [ ] **Database Interaction** - MySQL Integration (`mysqli`, `PDO`) - Query Execution, Prepared Statements - [ ] **Web Development** - Basic PHP Web Pages - Form Handling, Session Management - [ ] **Backend Frameworks** - **Laravel** - MVC Architecture (Model-View-Controller) - Routing, Middleware, Authentication - Eloquent ORM, Blade Templating - **Symfony** - Symfony Components, Bundles - Dependency Injection, Event Dispatcher - Twig Templating Engine - [ ] **APIs** - RESTful API Development - API Authentication (OAuth, JWT) - Consuming External APIs - ## ![img.icons8](https://hackmd.io/_uploads/Hkk9_Q9oC.png) Java <!-- Java --> - [ ] **Basic Syntax** - Variables, Data Types, Control Flow - Exception Handling (`try`, `catch`, `finally`) - [ ] **Object-Oriented Programming (OOP)** - Classes, Inheritance, Polymorphism - Interfaces, Abstract Classes - Encapsulation, Composition, Aggregation - [ ] **Java Collections Framework** - List (`ArrayList`, `LinkedList`) - Set (`HashSet`, `TreeSet`) - Map (`HashMap`, `TreeMap`) - [ ] **Concurrency** - Multithreading (`Thread`, `Runnable`) - Synchronization (`synchronized`, `Lock`) - Executors and Thread Pools (`ExecutorService`, `ScheduledExecutorService`) - [ ] **Spring Framework** - Spring Boot Basics - Dependency Injection, AOP (Aspect-Oriented Programming) - Spring Data, Spring Security - [ ] **Java EE (Enterprise Edition)** - Servlets and JSP - EJB (Enterprise JavaBeans) - JPA (Java Persistence API), CDI (Contexts and Dependency Injection) - [ ] **Mobile Development** - **Android Development** - Basic Android Components (Activities, Fragments) - UI Design (Layouts, Views, RecyclerView) - Data Storage (SharedPreferences, SQLite, Room) - [ ] **Advanced Java Concepts** - Streams and Lambda Expressions - Functional Interfaces, Optional - Reflection, Annotations - - ## ![img.icons8](https://hackmd.io/_uploads/BknvuBci0.png) TypeScript <!-- TypeScript --> - [ ] **Basic Syntax** - ... - ## **Tool&Library** - [ ] **Version Control** - ![img.icons8](https://hackmd.io/_uploads/Syy7YXcoC.png) **Git** [<i class="ph ph-arrow-square-out"></i>](/PK51BwybRkmlJzfaa7L5dQ) - Basic Commands (`clone`, `commit`, `push`, `pull`) - Branching and Merging - Handling Conflicts - GitHub/GitLab Integration - [ ] **CI/CD Tools** - ![img.icons8](https://hackmd.io/_uploads/BysM9XqsC.png) **GitHub Actions** - Workflow Automation, Continuous Integration - ![img.icons8](https://hackmd.io/_uploads/S1eRKQqiA.png) **Docker** - Containerization Basics, Dockerfile Creation - Docker Compose - ![img.icons8](https://hackmd.io/_uploads/B15yjX5i0.png) **Jenkins** - Pipeline Setup, Job Configuration - [ ] **Build Tools** - **Maven** (Java) - Project Setup, Dependencies - Building and Packaging - **Gradle** (Java) - Build Automation, Dependency Management - **Makefile** (C/C++) - Creating and Managing Makefiles - Build Targets and Rules - [ ] **Package Managers** - **npm/yarn** (JavaScript) - Installing Packages, Managing Dependencies - **pip** (Python) - Installing Libraries, Virtual Environments - **Composer** (PHP) - Package Management, Autoloading - [ ] **Testing Frameworks** - **JUnit** (Java) - Unit Testing Basics, Assertions - **pytest** (Python) - Writing and Running Tests, Fixtures - **Jest** (JavaScript) - Testing React Components, Mocking - ## **Computer Network** - [ ] **Network Basics** - **Networking Models** - OSI Model, TCP/IP Model - **IP Addressing** - IPv4 and IPv6 Addressing, Subnetting - **Protocols** - TCP, UDP, HTTP/HTTPS, DNS, DHCP - [ ] **Network Configuration** - **Routing and Switching** - Basic Concepts of Routers and Switches - Configuration of Static and Dynamic Routing - **Network Security** - Firewalls, VPNs - Encryption and Authentication Protocols - **Network Troubleshooting** - Tools (`ping`, `traceroute`, `netstat`) - Analyzing Network Traffic (Wireshark) - [ ] **Advanced Networking** - **Network Design** - Designing Scalable Networks, VLANs - Network Topologies and Architectures - **Cloud Networking** - AWS VPC Configuration - Load Balancers, CDN (Content Delivery Network) - [ ] **Wireless Networking** - **Wireless Standards** - Wi-Fi (802.11a/b/g/n/ac/ax) - Bluetooth (BLE, Classic) - **Wireless Security** - WPA/WPA2/WPA3 (Wi-Fi Protected Access) - Encryption Mechanisms (AES, TKIP) - EAP (Extensible Authentication Protocol) - **Network Configuration** - Access Points, SSIDs - Channel Planning, Frequency Bands (2.4GHz, 5GHz) - **Wireless Troubleshooting** - Signal Strength, Interference Issues - Tools (Wi-Fi Analyzers, Spectrum Analyzers) - [ ] **Web Security** - **OWASP Top 10** - Common Web Vulnerabilities (XSS, SQL Injection) - **Secure Coding Practices** - Input Validation, Proper Authentication <br/> ## 2. **Study Plan** 📅 - [ ] <h3>a. Entry Level<h3> | **Requirement** | **Description** | TimeSpent | **Progress** | |-|-|-| - | | __Git & GitHub__ | Version control basics, using git bash to master commands and visualize on github. | ~2 Weeks | &nbsp;&nbsp;&nbsp;&nbsp;[🔗](/PK51BwybRkmlJzfaa7L5dQ) | | __One language__ | Master solid fundamental design of one programming language (e.g. Python, Java, JavaScript, C++) | ~2 Months | &nbsp;[🔗(JS)](/WpQizpdlRQ6R_1O4pwasQA) | | __LeetCode 100__ | Solve the first 100 problems on LeetCode plateform ensuring to have the ablity of problem-solving, data structure , and write efficient code. | ~2 Months | &nbsp;&nbsp;&nbsp;&nbsp;[🔗](https://leetcode.com/u/user9645eb/) | | __Object-Oriented Programming (OOP)__ | Understand the core concepts of implementing objects: Classes, Inheritance, Polymorphism, and Encapsulation. | ~1 Months | - | | __Design Patterns__ | Proven solutions to common design problem, starting with basic design patterns such as Singleton, Factory, and Observer. _(total 23)_ | ~1 Months | - | | __Databases__ | Relational, data stored in tables and using SQL query to interact with. None-Relational, data stored without a predefined structure. | ~1 Months | - | | __Basic Web Development__ | Learn HTML, CSS, and JavaScript basics. Create simple static web pages. (e.g profolio, calender, puzzle) | ~2 Months | &nbsp;&nbsp;&nbsp;&nbsp;[🔗](https://weiyinghuang.com/) | | __Linux Basics__ | Learn basic Linux commands, file navigation, and shell scripting. | ~3 Months | - | <br/> - [ ] <h3>b. Advanced Level<h3> | **Requirement** | **Description** | TimeSpent | **Progress** | |-|-|-| - | |-|-|-| - | <br/> - [ ] <h3>c. Senior Level<h3> | **Requirement** | **Description** | TimeSpent | **Progress** | |-|-|-| - | |-|-|-| - | <br/> ## 3. **Todo Projects** 🎯 - **Beginner Goals** - [ ] Understand the basics of data structures and algorithms. - [ ] Implement common algorithms. - **Advanced Goals** - [ ] Master system-level programming. - [ ] Contribute to an open-source project.