Having a more grounded understanding of logic, even a 101-level course understanding, can be really helpful in a technical job. I think reviewing materials like these, in combination with a basic understanding of Bayesian probability, has been very helpful when acting as a team lead or cross-team architect with my team of programmers.
It's ultimately stuff that feels obvious-in-hindsight and thus easy to undervalue, but for me it encompasses matters such as:
1) Making sure that a desired solution actually addresses an explicitly understood problem (other than "the problem is that the desired solution isn't in place!") This means being able to explicitly state the problem and symptoms as a state of current reality, separate from discussion of what the solution should be.
2) Resisting the urge to seize on the easiest-to-grasp potential cause of an effect (this is a big one with many programmers, I am constantly asking things like, "are you sure that's the only possible cause?" and "but if that were the cause, wouldn't this other effect, which is not happening, also be happening?") People can waste a lot of time chasing theories that don't fully explain the symptoms.
3) Constantly testing and updating mental models. For instance, I am frequently urging team members to state their expectations before running an experiment, rather than just "seeing what happens". For example, "now that I have set this configuration value, I expect to see this effect". This is to guard against the "let's just hack until it seems to work" phenomenon, which is a recipe for introducing latent bugs from not understanding the whole system/model.
4) Better communication! Engineers have a habit of speaking in shorthand, causing other people to say, "Wait, can we back up a bit?" (Or worse, not doing so when they should.) Explicitly setting context up front, including explicitly stating assumptions up front, better sets the table for group discussions where everyone is on the same page. Under-communicating is more frustrating than over-communicating.
5) The final benefit of #4 is that if you are responsible about stating the premises/assumptions that lead to your conclusion, then you have effectively depersonalized the discussion. Such that, if through discussion you discover that a premise/assumption underlying a conclusion is incorrect, then you can easily switch gears. Since the conclusion flowed from that set of stated premises, rather than "Person X being adamant", then it is easier that Premise #3 is wrong than "Person X being wrong".
Anyway, all of these practices are easier to implement and follow if you have an appreciation for the kinds of logical concepts taught in basic logic courses.