Computer Programming: What are some real life good habits that programming gives people?
Persistence solving non-people problems - When something goes wrong, it is because some X has caused the wrong behavior. You can test subsystems to reduce the possible space of X, until you finally find the root cause. Programmers don't rely on miracle or luck for something to fix itself.
Logical thinking - This old joke has something that still rings true for programmers: An Accident and an Engineer, Manager, and Programmer
Computers use strict logic, and there's no way to "trick" a computer to do something. You have to do what provably causes the computer to do that thing. Programmers are used to thinking very strictly logically and will always test that X really causes Y in the context of C, for most situations. It's not easy for mass media to trick or brainwash a programmer.
Abstraction ability - Programmers, or rather computer scientists, are used to thinking in abstractions. The economy is a multi-agent system. Human language is a communication protocol. Reading is extracting semantics from literals. Writing is representing semantics in literals. Finding where my key is is a search problem (many algos and heuristics to solve this efficiently). Arranging items in my room is a data structure problem. Teamwork is a peer-to-peer system (not master-slave system). By thinking this way we can apply common solution frameworks to common problem types.
Life optimization - From experience dealing with systems and performance, we'll always see ways to optimize things in life, like:
- Naming and reordering our real items in your room or our digital items for most efficient insertion and lookup
- Measuring throughput (not length) of grocery queues for minimum wait time, and optimizing path for grocery shopping for minimum time
- Rearranging tasks to match energy level of the day to maximize output
etc.
Probably only programmers with a certain personality does this.
Appreciation for technology that works - It's the hardest to create technology that seems to just work that people take it for granted. The more noticeable ones are those with usability bugs so people mistakenly "feel" that the system is complex. By working on technology, we get to appreciate how hard (and rewarding, and underappreciated) it is to make something so seamless that people are completely ignorant of what makes it work (like power grid, the internet, wireless communication, etc.).
SOURCE-QUARA
Logical thinking - This old joke has something that still rings true for programmers: An Accident and an Engineer, Manager, and Programmer
Computers use strict logic, and there's no way to "trick" a computer to do something. You have to do what provably causes the computer to do that thing. Programmers are used to thinking very strictly logically and will always test that X really causes Y in the context of C, for most situations. It's not easy for mass media to trick or brainwash a programmer.
Abstraction ability - Programmers, or rather computer scientists, are used to thinking in abstractions. The economy is a multi-agent system. Human language is a communication protocol. Reading is extracting semantics from literals. Writing is representing semantics in literals. Finding where my key is is a search problem (many algos and heuristics to solve this efficiently). Arranging items in my room is a data structure problem. Teamwork is a peer-to-peer system (not master-slave system). By thinking this way we can apply common solution frameworks to common problem types.
Life optimization - From experience dealing with systems and performance, we'll always see ways to optimize things in life, like:
- Naming and reordering our real items in your room or our digital items for most efficient insertion and lookup
- Measuring throughput (not length) of grocery queues for minimum wait time, and optimizing path for grocery shopping for minimum time
- Rearranging tasks to match energy level of the day to maximize output
etc.
Probably only programmers with a certain personality does this.
Appreciation for technology that works - It's the hardest to create technology that seems to just work that people take it for granted. The more noticeable ones are those with usability bugs so people mistakenly "feel" that the system is complex. By working on technology, we get to appreciate how hard (and rewarding, and underappreciated) it is to make something so seamless that people are completely ignorant of what makes it work (like power grid, the internet, wireless communication, etc.).
SOURCE-QUARA