Hacker News new | ask | show | jobs
by ActorNightly 652 days ago
The best programmers aren't ones who have memorized how to do stuff based on read materials, the best programmers are ones who can look at any piece of software, from a front end application, to embedded microcontroller, and know exactly how to recreate it.

There is a reason why electrical/computer engineering graduates tend to outperform CS graduates in both general skill and the job market. If you understand how computers do the stuff they do, and can think in that manner, thinking in higher level abstractions becomes very easy.

2 comments

Sorry, you lost me there. I am CS and literally every single one colleague in IT with an electrical engineering background where subpar compared to CS students. (Of course I don't claim that is true in generell or for that there are no electrical engineers who can be great developers.)

One background I will respect is mathematicians, it is always a joy to learn from them and the can model very nice abstractions. Again, in my personal experience, no claim how general this is or that there are no exceptions.

>IT

This is a different field. Many software engineers have no clue how to set up networks or administer things like routers or firewalls. At the same time IT people usually don't know how to write things like backends for web apps.

No, it means something more generic.
Thank you for your input! However, could you elaborate on how you arrived at that conclusion? The field of computer science is so vast that it can be challenging to identify which specific knowledge or skills will give you a significant advantage.
>The field of computer science is so vast

Its vast if you approach it top down (higher abstractions to lower abstractions), seeing all the different languages/frameworks, but if you approach it the other way, you realize that every higher abstraction is pretty simple.

When you start learning things like python, or js, and then move to things like C++/C/Rust, or learn frameworks like react, you get left with a sense that each one of those things is like a separate thing where you have to memorize patterns of how to do stuff.

When you learn from the ground up, like understanding how a CPU works, every new thing that you learn immediately fits in to what you already know as a simpler way to do a combination of low level CPU operations, and you immediately recognize patterns. Memorizing syntax becomes unnecessary, since you can figure things out on the fly.

To give you a real example, most leetcode problems that get asked in interviews pretty much involve some pointer manipulation under the hood. So when you work with enough low level C and assembly, figuring out how to do things more efficiently without copying data around, you can pretty much ace leetcode medium problems without studying.