DEV Community

loading...

Discussion on: Do they teach "pointers" in bootcamp? Should they?

Collapse
tiguchi profile image
Thomas Iguchi

Joel Spolsky has a pretty radical point of view (not sure if I really share it, but it's interesting): The Guerilla Guide to Interviewing

Asking questions about pointers and recursion is apparently part of his interviewing routine, and one of the deciding factors for hiring someone

I’ve come to realize that understanding pointers in C is not a skill, it’s an aptitude. [...] Pointers require a complex form of doubly-indirected thinking that some people just can’t do, and it’s pretty crucial to good programming.

Now the question is, whether it's only crucial to good programming in C or higher level languages that abstract memory management away, but Joel seems to be saying: a good programmer understands pointers (and recursion). Bad programmers don't.

Interesting point of view, but not sure what to think about that 🤷

Collapse
waynejwerner profile image
Wayne Werner

I'm not terribly convinced that this isn't a skill. It might be a skill that's difficult to acquire, and perhaps a skill that's difficult to retain or even be really good at. And maybe some people are just better at thinking about really weird problems.

But pointers aren't a hard concept, and probably everyone has used a pointer at one point in their life, without realizing that's what they were doing.

a href? Pointer
Library card catalog? Pointer
Yellow Pages? Pointer
Address book? Pointer
Table of contents? Pointer
Index? Pointer

The problem is that most people who understand pointers don't do a good job of teaching what pointers are.

Collapse
miguelmj profile image
MiguelMJ • Edited

I agree with you. In my opinion, pointers scare starters because of their bad reputation. In reality, the scary thing of pointers is that the errors they produce are difficult to track and debug, so you need some solid good practices.

But conceptually, they are not more difficult to understand than other data types out there.