💻 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.

Current focus: becoming a good and fast problem-solver through Leetcode and Competitive Programming.


Go to Waterloo Software Engineering for things specific to my program + links to course notes.



Programming Languages



Programming Paradigms

  1. Structured Programming
  2. Object-Oriented Programming
  3. Functional Programming

Important Topics (AI / DS / Web)



Software Shortcuts


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.

Will programming disappear?

Some interesting thoughts from the Clean Code book:

  • Code is really the language in which we ultimately express the requirements. We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we will never eliminate necessary precision—so there will always be code.