He will talk about OS events, or any low level concept and it makes me feel like I don’t know anything, but he acts like I’m a genius if I talk about JavaScript Runtimes, browser engines, anything frontend.
It’s cool he teaches me new things, I teach him some
Most people know that there is a big difference between experience in something pretty easy vs mastery of something very difficult.
A rocket scientist acknowledges a concrete guy knows way more than he does about concrete, but also knows that doesn't make him a genius because it's easy enough to learn just being around it. Plus, the rocket scientist also knows that since he knows so little about concrete, he wouldn't even be able to judge if the guy is really a concrete genius or just saying things a real pro would label wrong.
Your example isn't that crazy, but still, you should realize your friend is just being nice.
You don’t. Someone else smarter than you handled it already and you just need to integrate their solution.
On bit shifts, pick any Forth programmer and shaders will be almost like a toy for them. They are used to implement double numbers (and maybe floats) themselves by hand by just reusing the only integer numbers they have and writting custom commands to output these pairs of integer as double numbers. They can probably implement multithreading processing by hand in Forth and also know the IEEE standards for floats better than C programmers over 20 years.
Jog on.
GUI interfaces for the enterprise came from Dante's hell themselves. I hate them, they are like the Madhouse from that Asterix movie making satire of the European bureucracy of the day. The often are oddly designed and they are not documented at all, you must guess the meaning by chance of with a senior tutoring you.
The same with anything corporate from Microsoft with AD roles/group policies and the like. Or anything coming from IBM.
Understanding low level code puts you on entirely different level because you can reason about a problem using logic and how systems operate.
No disrespect to any crud devs here but from my personal experience they just know a particular implementation of their domain and rarely even consider how the code base even operates as a whole
It isn't "random", a as business process develop over time to various business/customer/regulatory needs. The business process evolves over time typically.
When you take a business process, you are often formalising it. The fact that you have no appreciation of this, tells me you don't really understand what you are talking about.
> Understanding low level code puts you on entirely different level because you can reason about a problem using logic and how systems operate.
You have to do this in high level languages as well. It isn't something that only low level devs do. In fact to be able to write any good code you need to understand the problem domain.
> No disrespect to any crud devs here but from my personal experience they just know a particular implementation of their domain and rarely even consider how the code base even operates as a whole
You are literally disrespecting them by saying this. It is also false, what you are describing is developers having deal with incomplete/poor specifications and poor documentation. BTW this is rampant through the industry. I wanted to do some stuff yesterday with Docker and Go, the documentation is non-existant.
CRUD developers know that they never, ever will, because business logic is insane.