News for hackers. Stuff that matters.
Re:C0, an Imperative Programming Language for Novice Compute... by ci5er on Wednesday October 18, 2017 @01:24PM (#15501013)
BASIC is pretty good. I went from that to 6502, then to 680x0 and then to C (then to FORTRAN and then right back to C). I had a fair number of co-workers (years later, you know, when I had a job) who struggled more than a little bit with pointers. They said that they never got them. I re-read K&R to refresh my memory as to the clarity of the author's exposition on the topic and found it crystal clear. I suspect that if I hadn't gone through assembly first, I might have had problems with pointers too?

It might be snobbery, but it seems as if amongst computer programmers, there are those who "get" pointers, and those who do not. For whatever reason - I surely have not figured out how to explain pointers to those who do not "get" them. But I have found that this divide does simplify the software developer interviewing process down to only a couple of short technical questions.

Re:C0, an Imperative Programming Language for Novice Compute... by khedoros1 on Wednesday October 18, 2017 @05:50PM (#15503527)
I knew some C before taking an assembly language class (and I'm young enough that assembly never came up as a thing to learn before hitting higher-level languages). I understood pointers (mostly), but the concept was still a little confusing, and I'd have to consider the correct syntax every time I needed to use them.

Years later, I started doing things like writing an NES emulator and reading disassemblies of DOS games. Function calls, their relation to the stack, and pointers in general became much clearer after having contact with that much assembly.

> I surely have not figured out how to explain pointers to those who do not "get" them.

Makes me think about the difference between the data being represented and the method of representation. Sure, an exe's a binary, but it's also a data file if I choose to interpret it that way.

Re:C0, an Imperative Programming Language for Novice Compute... by nategri on Wednesday October 18, 2017 @06:44PM (#15503936)
Had precisely the same experience except it was for an Apple II project instead of NES emulation. Turned me into one of those a-holes who think everyone should start with assembly if they want to learn C.
Re:C0, an Imperative Programming Language for Novice Compute... by khedoros1 on Wednesday October 18, 2017 @08:26PM (#15504489)
I think there at least needs to be more instruction about how the language is implemented. I feel like I learned the use of the stack in function calls and the difference between stack and heap variables disturbingly late.
Re:C0, an Imperative Programming Language for Novice Compute... by dTal on Friday October 20, 2017 @07:25AM (#15514893)
I found programming in C on a very small device with primitive memory management made that distinction abundantly clear. Heap variables are the ones that leak memory!