💻 Software Engineering (Programming)
I want to write software to make physical things move. I really like Robotics and general engineering. That’s why I chose software engineering at Waterloo, and not computer science.
Go to Waterloo Software Engineering for things specific to my program + links to course notes.
- CS137 C
- CS138 basic C++
- CS241E Compiler + Scala
- CS240 data structures
- CS247 more advanced C++
- CS348 SQL
- Garbage Collector
- Virtual Machine
- Application Programming Interface
- Design Pattern
- Adapter Design Pattern
- Over-The-Air Programming
- Computer Network
- Communication Protocols
- Kolmogorov Complexity
- Compiled vs. Interpreted Language
- C Language
Important Topics (AI / DS / Web)
- VS Code
- My personal MY Programming Style Guide
- Software Project
- A great roadmap for learning new stuff: https://roadmap.sh/roadmaps
- Is Software Engineering a branch of “engineering”? https://www.hillelwayne.com/post/are-we-really-engineers/
What makes good code?
Good code should be clear to understand. Optimized for readability and maintainability. See more in my MY Programming Style Guide.
How to get started programming?
For me, I want to be one of the best software engineers in the world. I am giving myself until the end of university. Right now, I’m very focused on building a strong foundation, which means I am really getting my fundamentals down. Understand how code runs and compiles, from transistor level to how apps are built level. This will help me become a better problem solver and programmer.
At first, I learned programming for the sake of using it to build something. Nowadays, I learn programming as an end in itself.
Languages are just tools. Frameworks are tools. Build intuition for how things are built and why they are built. Teaching yourself how to use a tool is always the easy part. But the true geniuses are the ones that build the tools.
- I taught myself through courses on Udemy, Edx, Coursera, and YouTube.
- Start doing small projects and incrementally make them harder. My YouTube page is a reflection of that.
Some languages I recommend and enjoy: Python, C++, C. There’s this roadmap I found a while back to learn anything: https://roadmap.sh/roadmaps. Might be helpful to you. This guy also makes some good robot tutorials: https://www.youtube.com/@ArticulatedRobotics
Feel free to check out my website too, I have links to all sorts of pages: https://stevengong.co. You’ll be able to explore my brain.