software engineering 👩‍💻 💯
Spending time sharpening the axe is almost always worth it
You’re going to be renaming things, going to type definitions, finding references, etc a lot ; you should be fast at this. You should know all the major shortcuts in your editor. You should be a confident and fast typist. You should know your OS well. You should be proficient in the shell.... See more
You’re going to be renaming things, going to type definitions, finding references, etc a lot ; you should be fast at this. You should know all the major shortcuts in your editor. You should be a confident and fast typist. You should know your OS well. You should be proficient in the shell.... See more
Marcus • Marcus' Blog
Make debugging easier
There’s so many little tricks I’ve acquired over the years on making software easier to debug. If you don’t make any effort to make debugging easy, you’re going to spend unacceptable amounts of time debugging each issue, as your software gets more and more complex. You’ll be terrified to make changes because even a couple new... See more
There’s so many little tricks I’ve acquired over the years on making software easier to debug. If you don’t make any effort to make debugging easy, you’re going to spend unacceptable amounts of time debugging each issue, as your software gets more and more complex. You’ll be terrified to make changes because even a couple new... See more
Marcus • Marcus' Blog
This pattern (set up, do work, clean up) is common across many different problem domains, so Python has a language feature to help with it. Context managers, defined using the with keyword, manage the setup and cleanup processes. Python's file objects support them, as do most database libraries.
Execute Program
Bad code gives you feedback, perfect code doesn’t. Err on the side of writing bad code
It’s really easy to write terrible code. But it’s also really easy to write code that follows absolutely every best practice, which has been unit, integration, fuzz, and mutation-tested for good measure – your startup will just run out of money before you finish.... See more
It’s really easy to write terrible code. But it’s also really easy to write code that follows absolutely every best practice, which has been unit, integration, fuzz, and mutation-tested for good measure – your startup will just run out of money before you finish.... See more
Marcus • Marcus' Blog
Never be afraid to say that you don’t know something
Don’t be afraid to ask for help
We all suffer(ed) impostor syndrome
Don’t be afraid to ask for help
We all suffer(ed) impostor syndrome
Ólafur Waage • Advice to new Programmers
Try to solve bugs one layer deeper
Imagine you have a React component in a dashboard, that deals with a User object retrieved from state, of the currently logged in user. You see a bug report in Sentry, where user was null during render. You could add a quick if (!user) return null . Or you could investigate a bit more, and find that your logout... See more
Imagine you have a React component in a dashboard, that deals with a User object retrieved from state, of the currently logged in user. You see a bug report in Sentry, where user was null during render. You could add a quick if (!user) return null . Or you could investigate a bit more, and find that your logout... See more
Marcus • Marcus' Blog
Dec. 19 • Advice for new software devs who've read all those other advice essays
Learn to deal with pressure
When you're in a real interview the world changes: You're locked in a cage with a lion. Every heartbeat is a gorilla bashing against the walls. Your mental gears gunk up as your body goes into fight or flight mode. Your clammy hands struggle to write half legible code on the white board. A threat hides behind every... See more
When you're in a real interview the world changes: You're locked in a cage with a lion. Every heartbeat is a gorilla bashing against the walls. Your mental gears gunk up as your body goes into fight or flight mode. Your clammy hands struggle to write half legible code on the white board. A threat hides behind every... See more
Zain Rizvi • Interview advice that got me offers from Google, Microsoft, and Stripe
Software engineers never escape the skill-change vortex, even many years into their careers. Experienced engineers must learn and adopt technologies that didn't even exist when they started out. Developers must constantly retool themselves, even well after their formal education ends.