Improving Your Programming Mechanics
A Microsoft Machine Learning Engineer outlines his tips for building your programming skills to succeed in your dream computer science career.
By Aaron C.
Posted February 3, 2023
Table of Contents
Hi! I’m Aaron C., a Programming and AI/ML Science Coach on Leland. Here is my advice on building your programming skills. I hope you find it useful, I’d be happy to work with you one-on-one on anything computer science-related! Book a free intro call on my profile to get started.
As a budding software engineer, how do you improve your confidence, willingness to dive in and try new things, and ability to think through intricate systems to make impactful changes? Most importantly, how do you learn to enjoy programming more? How can you make it more fun, empowering, and exciting? In my experience, the best place to start is to improve your programming mechanics.
So, what are your programming mechanics? They’re your technical skills, or how well you know how to code.
It ranges from the foundation…
- How are programming languages implemented, for example, what is try-catch actually doing?
- What exactly happens during compilation/interpretation?
- What is going on electrically to make a computer work?
- What is the history of this programming language, system, or product?
To systematic thinking…
- What design patterns or algorithms are best suited to solving this problem?
- How do I profile and optimize my code?
- What can I do to debug complex issues?
To best practices, and more…
- How can I architect this software to scale?
- How can this particular system be improved, and how much effort and time would that take?
- How can I write this code in a way that is performant, yet easy to understand for others?
Improving programming mechanics underpins your ability to make a specific, concrete impact. You’ll be able to speed up tests for new ideas, conduct high-level analyses on the potential aptitude of new features, and generally have a better understanding of the product you’re working with. When you have that kind of power, programming can be both satisfying and enjoyable.
I have spent years obsessing over my mechanics. Throughout my career, I’ve created all sorts of different software products–mobile apps, websites, games, ML models, infrastructure, tooling, embedded systems, etc–which have helped me understand the connection between different contexts of software. I also have a special love for the history of computer science: how was Python created and what was the story behind Software-as-a-Service? Today, I am working on the Github Copilot at Microsoft so it is literally my job to study the mechanics of programmers.
Now, you may be thinking that you already write so much code for class or work that your programming mechanics will improve naturally, right? And I agree, to an extent. However, I would add that dedicating focused sessions to improving mechanics will drastically decrease the time required to improve. You can write 10,000 lines of code and only learn 25% of what you’d learn if you intensely studied 50 lines of code. So, what are the 50 lines that you should study and how can you learn from them?
Perhaps they are the core of a complex CSS animation on Stripe's website, or maybe the infamous fast inverse square root implementation of Quake, or the React diff algorithm. There is a lot of amazing code written by incredible engineers from which you can draw lifelong lessons.
As a coach, I love seeing peoples’ eyes light up when they build something of their own volition that works and is valuable. I want to help you improve your mechanics and show you the effect that doing so can have on every part of your engineering career. I firmly believe that programming is a skill that can constantly be developed and honed; when you put in the effort to improve, it will pay dividends over the rest of your life.
Final Note
If you want to improve your mechanics and are looking for help or to bounce some ideas around, visit my profile and book a free intro call. I look forward to working with you!
Leland provides you with the content, community, and coaching that you need to build your dream computer science career and accomplish other ambitious goals. Sign up today to gain access to additional free resources, community events, small group classes, world-class coaching, and more.