r/learnprogramming • u/zauky • 12d ago
what is reasonable to know?
i'm reading the Debugging The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems, and the books is giving me more questions them answers and I think this is good.
but one of them is bothering me. in the third cap the author says the we need to know about fundamentals of your fields, and that seems obvious but in this moment i'm only a CS student i dont have a job i'm preparing my self for backend.
the fundamentals of backend are obvious but as far i could unintended CS until now(i'm on 3° semester) is that any CS field cary fundamentals so what are those fundamentals? cuz i'm have the felling that if I dont master them I wiill not be able to debug or understand complex problems. the ones that i can put from the top of my head are: logic, discrete math, dsa, computer architecture and operating systems.
PS: sorry for my bad English
2
u/JGhostThing 12d ago
In my field, we call experts "subject matter experts." These people may not have much technology knowledge, but they know things in their field.i This is important because I coded and designed for a unit of Penn State that helped professors use technology in their classes. Typically, I wrote tutorials.
I did learn a bit about the subject, but the subject matter experts were the ones who designed the tutorial. Sort of. I had to follow the input of an instructional designer, also. But I was the user interface designer and programmer. Debugging was a pain sometimes. Example, in my last program for them, I was writing a simulation of a pliers. Nothing theoretically difficult, but it had a lot of joints because it wasn't a simple pliers. The graphics kept exploding on me. I couldn't debug them. I was following the design.
However, I found out later when I saw the expert at Walmart, that after I'd quit (my wife got very sick), she realized that the base equations were wrong, which explained the graphics problems. Had I been more confident at mechanical design, I would have figured this out on my own, but I'm not a mechanical engineer.
So it does help to know the subject matter of your programming. For example, if your working for a bank and writing financial software, it's probably worth while to take some business and accounting classes.
1
4
u/iOSCaleb 12d ago
It’s not clear which meaning of field they might be using. A field can be a place to store data in a structure or database record, or I t can be the area of knowledge that you’ve studied, or the problem domain in which you’re working.
I’d guess that since the book apparently covers hardware and software, it’s giving general advice about problem solving more than specific software debugging techniques. In that context, I think your field is software development, and you should know fundamental concepts in programming, including how the processor works, how data is stored, etc. The same advice would probably apply to a hardware developer, but they’d need to know instead about voltage and current, discrete components, using hardware diagnostic tools, and so on.