You are viewing a single thread.
View all comments View context
3 points
*

I definitely feel this. I had to take a programing course in university and I was easily able to follow along up until the lesson on pointers, whereupon I completely lost the thread and never recovered.

I’ve known a good number of computer scientists over the years, and the general consensus I got from them is that my story is neither unique nor uncommon.

permalink
report
parent
reply
2 points

Yeah, some folks have trouble with pointers, and computer-engineering curricula are designed to discourage folks from taking third-year courses if pointers don’t make sense. It’s a stereotype for a reason. I’d love to know if there’s an underlying psychological explanation, or if pointers are just…hard.

permalink
report
parent
reply
6 points
*

I am but one man whose only education in programming was a first year university course in C from almost two decades ago (and thus I am liable to completely botch any explanation of CS concepts and/or may just have faulty memories), but I can offer my own opinion.

Most basic programming concepts I was taught had easily understood use cases and produced observable effects. There were a lot of analogous concepts to algebra, and functions like printf did things that were concrete and could be immediately evaluated visually.

Pointers, on the other hand, felt designed purely of and for programming. Instead of directly defining a variable by some real-world concept I was already familiar with, it was a variable defined by a property of another variable, and it took some thinking to even comprehend what that meant. Even reading the Wikipedia page today I’m not sure if I completely understand.

Pointers also didn’t appear to have an immediate use case. We had been primarily concerned with using the value of a variable to perform basic tasks, but none of those tasks ever required the location of a variable to complete the calculations. We were never offered any functions that used pointers for anything, either before or after, so including them felt like busywork.

It also didn’t help that my professor basically refused to offer any explanation beyond a basic definition. We were just told to arbitrarily include pointers in our work even though they didn’t seem to contribute to anything, and I really resented that fact. We were assured that we would eventually understand if we continued to take programming courses, but that wasn’t much comfort to first year students who just wanted to pass the introductory class they were already in.

And if what you said is true, that later courses are built on the assumption that one understands the function and usefulness of pointers despite the poor explanations, then its no wonder so many people bounce off of computer science at such a low level.

permalink
report
parent
reply
1 point

Aren’t pointers just an ID given to a verible that currosponds to its “true” position in the array of bytes thay make up a program’s memory? I feel like I’m missing something

permalink
report
parent
reply
2 points

Thanks for offering your perspective! It’s important that we keep in mind that not everybody who studies computer science becomes a professional programmer, and you’ve offered us good food for thought.

For what it’s worth, pointers are fundamental for Von Neumann machines, which are very common in the computing world; your current machine and the machine serving this page are both Von Neumann. In such machines, memory doesn’t just store data, but also instructions; the machine has an instruction pointer, which is a pointer referencing the currently-executing instruction in memory. So, if one wants to understand how a computer jumps from one instruction to another, then one must somewhat understand pointers.

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 3K

    Monthly active users

  • 1K

    Posts

  • 38K

    Comments