IT/Software career thread: Invert binary trees for dollars.

Noodleface

A Mod Real Quick
40,346
20,316
I generally agree that knowing syntax has little value.

But understanding data structures, processing dynamics like threading, memory management, artifact (package storage), branching strategy for collaboration, distributed architecture, and most other design and computer science principles are just as critical. Also knowing what features a programming language provides, like in your recent Rust vs Python vibe code project.

Just because you do not know the syntax to express them in some given language does not change the fact that you need to understand the issues itself. Suppose you vibe code something that solves the right now problem, but cannot scale because of a Big O notation issue with dynamic nested looping or poor memory management. AI will not solve that immediately because you did not present that as a requirement for design. If you lack the ability to even understand or describe the issue because you do not know foundational computer science principles then AI cannot help you resolve it.
I do agree with you. It's tough to step back and think how much of my knowledge I'm just inserting into the vibe coding because it's a part of me vs someone completely foreign to engineering asking it to do something.

The reason I switched from Python to rust was exactly because of that. I didn't know the syntax but I did know rusts benefits.
 

ShakyJake

<Donor>
8,852
21,653
I generally agree that knowing syntax has little value.

But understanding data structures, processing dynamics like threading, memory management, artifact (package storage), branching strategy for collaboration, distributed architecture, and most other design and computer science principles are just as critical. Also knowing what features a programming language provides, like in your recent Rust vs Python vibe code project.

Just because you do not know the syntax to express them in some given language does not change the fact that you need to understand the issues itself. Suppose you vibe code something that solves the right now problem, but cannot scale because of a Big O notation issue with dynamic nested looping or poor memory management. AI will not solve that immediately because you did not present that as a requirement for design. If you lack the ability to even understand or describe the issue because you do not know foundational computer science principles then AI cannot help you resolve it.
I agree that someone needs to have a deeper understanding of these things. I just don't think every developer needs that same depth of knowledge anymore. The people who have the interest and the mind for it will still dig into how everything works. That expertise still has value, but I think AI is making it less of a requirement for the average developer.

I look at it sort of like cars. At one time, knowing how to fix your own car was a pretty big advantage, and sometimes a necessity. These days, the average driver gets along just fine without understanding everything going on under the hood. We still need mechanics and engineers who understand those things, but everyone driving a car doesn't need to be one. I think software development is moving in a similar direction.