Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programmers using high-level languages develop models about how programming works, particularly around memory management, type safety, and abstractions. These models don't transfer to C, so they must be "unlearned" to some degree, which research shows is often harder than learning from scratch. Programmers accustomed to Python, TypeScript, or C# face specific conceptual "paradigm shifts" when switching to C such as manual memory management (as you said), pointer discipline and lack of abstraction (you have to take care of many things which the high-level language offered or took care of).

Programming beginners (to whom my statement applied) lack preconceived notions about what programming "should" be like. They build their mental models around C's paradigms from the start, avoiding the cognitive dissonance experienced by those expecting automatic memory management or rich standard libraries and integrated build systems.



I suppose, but i tried to learn C before i tried to learn anything else. If it had been my only option, i wouldn't have stuck with programming (in fact i didn't, several years passed between trying to learn C and successfully learning Typescript)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: