DEV Community

Discussion on: Why Java is the best Programming language to Learn Coding for beginners?

Collapse
 
curtisfenner profile image
Curtis Fenner

It's valuable to eventually learn concepts like pointers and memory management.

However, they're not critical to learning programming (and increasingly becoming less relevant as compiler and languages improve automatic/checked management of memory and resources), and distract from far more important concepts like abstraction, schemas, patterns, etc. (a lot of other misfeatures in C and C++ are also bad distractions).

Collapse
 
alansolitar profile image
Alan Solitar

If learning programming then I agree. If learning computer science, then the lower level stuff is usually better for learning concepts. It all depends on your goals.

Thread Thread
 
curtisfenner profile image
Curtis Fenner

If anything, the opposite is true. Computer science does not care about pointers, nor do they care about "low level" details, since those are implementation details that are dependent on hardware.

Pointers don't show up in the formulation of computation in many models (lambda calculus models, Turing machine models, stack machine models...).

They are not particularly important conceptually (in fact, the unsafety of general pointers makes it nearly impossible to talk meaningfully about any nearly computing concepts; you need to severely restrict the discussion to pointers used safely in particular patterns, which is very hard to actually do accurately). They are merely the way that hardware generally implements "constant time" array access.

Even then, that's not true -- there is no such thing as constant time access to memory!

The fundamental concept is just maps, which is entirely obscured by the messiness of pointers.

Thread Thread
 
bobbyconnolly profile image
Bobby Connolly • Edited

what a great comment by Mr Fenner

 
alibas13 profile image
Ali Bas

Hi Alan,

Exactly, do you advice books or sites or blogs to learn the lower level stuff to better learning concepts?

Thanks