Programming is not doing leetcode problems all day long. Those problems can be a good brain exercise or a good prep for a [misguided] technical interview but in a real programming job you have next to no chance of running into problems like those. Even if you do, you’re an idiot if you spend hours toiling away at a problem that somebody else already solved much more efficiently than you will. Your boss doesn’t give a crap if you pulled all of the code straight from your brain.
Programmers are not hackers. The reverse might be true but hacking is about finding problems (and exploiting them) while programming is about fixing problems.
A programmer can do anything that involves code. Maybe not quite this succinct but I think most will assume you can write a mobile app or a website just because you say you can code. Websites, games, apps, and so on are written in code but they all involve different technologies, toolsets, and standards. I’m sure I could fumble my way through any kind of software but don’t expect it done quickly if it’s not my area of expertise.
Especially regarding the first one: this seems like a very US-centric thing - or maybe a non-german thing. I’ve been in a bunch of interviews on both sides of the table here in Germany and I’ve literally never encountered a single leetcode question. At all.
I’m pretty sure that when programmers and other techies call themselves “hackers”, they don’t mean in the security-breaching sense. It means that you can “hack together” something.
Programmers are not hackers. The reverse might be true but hacking is about finding problems (and exploiting them) while programming is about fixing problems.
You have to find a problem before you can fix it. All good programmers are hackers.
I don’t think either is actually true. I know many programmers who can fix a problem once the bug is identified but wouldn’t be able to find it themselves nor would they be able to determine if a bug is exploitable without significant coaching.
Exploit finding is a specific skill set that requires thinking about multiple levels of abstraction simultaneously (or intentionally methodically). I have found that most programmers simply don’t do this.
I think the definition of “good” comes into play here, because the vast majority of programmers need to dependably discover solutions to problems that other people find. Ingenuity and multilevel abstract thinking are not critically important and many of these engineers who reliably fix problems without hand holding are good engineers in my book.
I suppose that it could be argued that finding the source of a bug from a bug report requires detective skills, but even this is mostly guided inspection with modern tooling.
I’ve got a lot of these.
Programming is not doing leetcode problems all day long. Those problems can be a good brain exercise or a good prep for a [misguided] technical interview but in a real programming job you have next to no chance of running into problems like those. Even if you do, you’re an idiot if you spend hours toiling away at a problem that somebody else already solved much more efficiently than you will. Your boss doesn’t give a crap if you pulled all of the code straight from your brain.
Programmers are not hackers. The reverse might be true but hacking is about finding problems (and exploiting them) while programming is about fixing problems.
A programmer can do anything that involves code. Maybe not quite this succinct but I think most will assume you can write a mobile app or a website just because you say you can code. Websites, games, apps, and so on are written in code but they all involve different technologies, toolsets, and standards. I’m sure I could fumble my way through any kind of software but don’t expect it done quickly if it’s not my area of expertise.
Especially regarding the first one: this seems like a very US-centric thing - or maybe a non-german thing. I’ve been in a bunch of interviews on both sides of the table here in Germany and I’ve literally never encountered a single leetcode question. At all.
I’m pretty sure that when programmers and other techies call themselves “hackers”, they don’t mean in the security-breaching sense. It means that you can “hack together” something.
You have to find a problem before you can fix it. All good programmers are hackers.
You don’t need to be a hacker to find those problems. You need to be a good detective. All good programmers are detectives.
I don’t think either is actually true. I know many programmers who can fix a problem once the bug is identified but wouldn’t be able to find it themselves nor would they be able to determine if a bug is exploitable without significant coaching.
Exploit finding is a specific skill set that requires thinking about multiple levels of abstraction simultaneously (or intentionally methodically). I have found that most programmers simply don’t do this.
I think the definition of “good” comes into play here, because the vast majority of programmers need to dependably discover solutions to problems that other people find. Ingenuity and multilevel abstract thinking are not critically important and many of these engineers who reliably fix problems without hand holding are good engineers in my book.
I suppose that it could be argued that finding the source of a bug from a bug report requires detective skills, but even this is mostly guided inspection with modern tooling.
Programmers have the source code right in front of them, hackers usually don’t. It’s quite amazing what they can do taking shots in the dark.