DEV Community

What are the fundamentals of programming?

Ghaleb Al-Nakhlani on December 22, 2018

what are the core basic fundamentals of programming which if you learn it well you can easily switch between programming languages because the prin...
Collapse
 
temporal profile image
Jacek Złydach • Edited

Managing complexity.

The limit on what programs can be practically written is the ability of human developers to comprehend pieces on which they work on, and their relation to whole. As a developer, your core skill is to manage complexity, so that it's easier and faster to write programs that are more powerful and more correct.

All tools programming languages provide exist essentially for this: to help you subdivide your program into reusable, independently-understandable pieces, so that you can segregate, reduce and hide complexity. The tools may differ slightly between languages, but they serve the same ultimate goal - so once you understand what job they're really doing, it's much easier to switch between languages and be productive quickly.

Collapse
 
somedood profile image
Basti Ortiz

I'd say it'd be the notion of variables and function (AKA methods). It seems like most, if not all, programming languages—not markup languages—have some sort of way to define variables and functions. Master these concepts and you're pretty much set to learn every programming language out there.

Collapse
 
ghalib profile image
Ghaleb Al-Nakhlani

Thank you for the precise and clear answer. Does "variables and function (AKA methods)" have a defined way to learn them I mean what they call them in the programming world? There must be a term for that.

Collapse
 
somedood profile image
Basti Ortiz

I think they're just called variables and functions in general. In functional programming, you would have functions everywhere, as its name suggests. In object-oriented programming, you encounter object methods (in classes) rather than functions. They're still pretty much the same thing, though.

Collapse
 
ben profile image
Ben Halpern

Functions, variables, interfaces. Probably the notion of “mental models”, not a pure programming thing per se, but a very fundamental part.

Collapse
 
ghalib profile image
Ghaleb Al-Nakhlani

Ben Thank you, but I`m still confused. Mental models are applied everywhere but how we can relate them to programming? And could you please elaborate more, still doesn't click in my mind? Also what you mean by "not a pure programming thing per se".