DEV Community

Discussion on: How I chose a programming language and beat bad habits

Collapse
 
icidel profile image
del65 • Edited

Programming languages inherit their abilities from paradigms : procedural (aka "spaghetti code"), object oriented (aka "inheritance mess"), functional (aka "stateful memory + stateless statements = call stack hell"), deterministic (aka "proven state machine"), genetic (aka "virtual stupidity"), to name a few ones...

All those languages are in fact translated at compilation time to Assembly, which is in fact a good old Turing machine.

You don't need to understand paradigms to be an average software developer, but if you do a training on school you will receive a glimpse of why paradigms are crucial to make future-proof code which will run even on a Mars rover, and turn unexpected crashes into a quick and safe fallback (... because... Hey ! shit happens !).

Please follow my advice and learn programming paradigms before any language. You will thank me later ! :-)

Collapse
 
bloodgain profile image
Cliff

It's very difficult to learn programming paradigms without some context, which means knowing at least one language. In fact, Python is capable of multiple paradigms, so you could learn them that way.

Also, nothing in a modern computer is a Turing machine. Don't confuse Turing complete with being a Turing machine. For one thing, a Turing machine, by definition, has an infinite memory tape. Also, implementing a computer as a Turing machine would be extremely inefficient. Modern computers are essentially von Neumann architectures or (modified) Harvard architectures, depending a little on whether you're looking at them from the outside or the internal structures.