spamsink: (Default)
[personal profile] spamsink
Пишет тут один кадр,

I’ve come to realize that understanding pointers in C is not a skill, it’s an aptitude. In first year computer science classes, there are always about 200 kids at the beginning of the semester, all of whom wrote complex adventure games in BASIC for their PCs when they were 4 years old. They are having a good ol’ time learning C or Pascal in college, until one day the professor introduces pointers, and suddenly, they don’t get it. They just don’t understand anything any more. [...] For some reason most people seem to be born without the part of the brain that understands pointers.

Date: 2015-06-14 12:18 am (UTC)
oryx_and_crake: (Default)
From: [personal profile] oryx_and_crake
For some reason most people seem to be born without the part of the brain, period

Date: 2015-06-13 10:21 pm (UTC)
From: [identity profile] scholar-vit.livejournal.com
Yes, this is true. Different people have their brains wired differently, and the understanding of pointers seems to be among the variable features.

(no subject)

From: [identity profile] scholar-vit.livejournal.com - Date: 2015-06-14 03:32 am (UTC) - Expand

Date: 2015-06-13 10:24 pm (UTC)
From: [identity profile] archaicos.livejournal.com
Дык. Я асм понимал, а указатели в Це не понимал. Потом недостающая часть мозга выросла. По правде сказать, асмопонимающие и васикопонимающие части мозга тоже были приобретённые. Выменял. :)

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-13 11:20 pm (UTC) - Expand

Date: 2015-06-13 10:25 pm (UTC)
From: [identity profile] solomon2.livejournal.com
The bigger point is that pointers is a low-level behind-the-scene concept, totally unnecessary for high-level programming. Low-level programming is obviously more difficult than high-level, so less people have aptitude for it.

(no subject)

From: [identity profile] solomon2.livejournal.com - Date: 2015-06-13 10:57 pm (UTC) - Expand

(no subject)

From: [identity profile] solomon2.livejournal.com - Date: 2015-06-13 11:30 pm (UTC) - Expand

(no subject)

From: [identity profile] solomon2.livejournal.com - Date: 2015-06-13 11:46 pm (UTC) - Expand

(no subject)

From: [identity profile] solomon2.livejournal.com - Date: 2015-06-14 12:15 am (UTC) - Expand

Date: 2015-06-13 10:32 pm (UTC)
From: [identity profile] yatur.livejournal.com
Я думаю, это преувеличение. Мне кажется, достаточно склонности к абстрактному мышлению. Если человеку можно объяснить машину Тьюринга, то ему можно объяснить и указатели. А без машины Тьюринга какой ты computer scientist?

Другое дело, что синтаксис С в этом смысле весьма коряв: символ "звездочка" путается с умножением, да и стрелочка из минуса и знака "больше" делу не сильно помогает. С++ еще больше запутывает дело наличием ссылок (references).

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 10:54 pm (UTC) - Expand

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 11:08 pm (UTC) - Expand

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 11:21 pm (UTC) - Expand

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 11:29 pm (UTC) - Expand

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 11:40 pm (UTC) - Expand

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2015-06-13 11:45 pm (UTC) - Expand

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2015-06-13 11:58 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2015-06-14 05:09 am (UTC) - Expand

Date: 2015-06-13 10:53 pm (UTC)
From: [identity profile] proxfessor.livejournal.com
Извините, что встреваю в диалог. Мне тоже кажется, что источник непонимания - не сама природа указателей, а синтаксис С/С++. В связи с чем - вопрос: какой альтернативный синтаксис мог бы помочь студентам понять указатели? Может быть, что-нибудь "векторообразное" (типа теховского \overleftarrow{a} - указатель на a).
Edited Date: 2015-06-13 10:58 pm (UTC)

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-13 11:47 pm (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-13 11:59 pm (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 03:32 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:11 am (UTC) - Expand

Date: 2015-06-14 05:39 am (UTC)
From: [identity profile] ilya-dogolazky.livejournal.com
сюрприз: условно говоря "99%" программистов в индустрии не описываются словом scientist, есть таже такое отвратительное слово "кодер", которым большинство себя называет

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:13 am (UTC) - Expand

(no subject)

From: [identity profile] ilya-dogolazky.livejournal.com - Date: 2015-06-14 11:19 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:25 am (UTC) - Expand

(no subject)

From: [identity profile] ilya-dogolazky.livejournal.com - Date: 2015-06-14 11:28 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:45 am (UTC) - Expand

Date: 2015-06-13 11:17 pm (UTC)
From: [identity profile] rkatsyv.livejournal.com
Не понимаю как это можно не понимать :)
Реально ж не rocket science :)

Date: 2015-06-13 11:31 pm (UTC)
ak_47: (default)
From: [personal profile] ak_47
Нет, я в корне не согласен со Спольским. Я не верю в такую узкую специализацию мозга. Скорее всего препод толком не объяснял людям, а потом уже они сами рукой махнули и так и не знают. Так же как и с синусами/косинусами, например. Если человеку не повезло и ему с самого начала толком не объяснили, то так и будет жить и думать что это нечто сложное и непонятное. Тем более, что пойтеры как концепция, ну не rocket science ни разу.

(no subject)

From: [identity profile] proxfessor.livejournal.com - Date: 2015-06-13 11:41 pm (UTC) - Expand

(no subject)

From: [personal profile] ak_47 - Date: 2015-06-14 01:09 am (UTC) - Expand

(no subject)

From: [personal profile] ak_47 - Date: 2015-06-14 04:45 am (UTC) - Expand

(no subject)

From: [identity profile] b0p0h0k.livejournal.com - Date: 2015-06-14 12:27 pm (UTC) - Expand

(no subject)

From: [personal profile] ak_47 - Date: 2015-06-14 11:46 pm (UTC) - Expand

Date: 2015-06-13 11:59 pm (UTC)
yigal_s: (Default)
From: [personal profile] yigal_s
это он ещё про монады не слышал...

Date: 2015-06-14 12:17 am (UTC)
From: [identity profile] alextr98.livejournal.com
C - это страх и ужас, когда дело доходит до указателей.
Но это же сложилось исторически - взяли машинные команды манипуляции с адресами и внесли в язык.
Ну вот типа (*а).b это всегда a->b или нет?

(no subject)

From: [identity profile] alextr98.livejournal.com - Date: 2015-06-14 12:28 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 02:46 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 04:34 am (UTC) - Expand

(no subject)

From: [identity profile] inconceivable2.livejournal.com - Date: 2015-06-14 05:33 am (UTC) - Expand

(no subject)

From: [identity profile] alextr98.livejournal.com - Date: 2015-06-14 12:33 am (UTC) - Expand

(no subject)

From: [identity profile] alextr98.livejournal.com - Date: 2015-06-14 12:40 am (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2015-06-14 02:04 am (UTC) - Expand

Date: 2015-06-14 12:33 am (UTC)
From: [identity profile] fatoff.livejournal.com
Вдруг подумалось, а олени лучше. C++, конечно. Концепция ссылки. Я бы попытался дать её детям для начала. А потом предложил бы задуматься, а что же там, у неё, ссылки, внутри. Что это момент имплементации, строго говоря, понятно. И тут рассмотреть собственно адрес, подойти к интересной операции взятия адреса от значения, и ссылки. И кульминация, давайте запишем этот адрес куда нибудь, и будем считать, что по адресу значения определённого типа.

(no subject)

From: [personal profile] vak - Date: 2015-06-14 03:41 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:17 am (UTC) - Expand

(no subject)

From: [identity profile] rkatsyv.livejournal.com - Date: 2015-06-14 03:42 am (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2015-06-14 05:01 am (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2015-06-14 05:11 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:19 am (UTC) - Expand

(no subject)

From: [identity profile] yatur.livejournal.com - Date: 2015-06-14 04:39 am (UTC) - Expand

(no subject)

From: [identity profile] fatoff.livejournal.com - Date: 2015-06-14 04:47 am (UTC) - Expand

(no subject)

From: [identity profile] archaicos.livejournal.com - Date: 2015-06-14 11:21 am (UTC) - Expand

(no subject)

From: [identity profile] fatoff.livejournal.com - Date: 2015-06-14 03:59 pm (UTC) - Expand

Date: 2015-06-14 01:10 am (UTC)
From: [identity profile] ny-quant.livejournal.com

По-моему фигня полная. Конечно, не всем это одинаково легко дается - но как и все остальное.

Date: 2015-06-14 04:31 am (UTC)
From: [identity profile] asy.livejournal.com
когда мы в школе дошли до указателей, это было как какое-то озарение. мы там что-то странное писали с ними. но нифига все равно не помню. 20 лет не сталкивалась

(no subject)

From: [identity profile] b0p0h0k.livejournal.com - Date: 2015-06-14 12:44 pm (UTC) - Expand

Date: 2015-06-14 04:57 am (UTC)
stas: (Default)
From: [personal profile] stas
Че-то мне кажется, что проблема в преподавании, а не в мозге. Почтой пользоваться умеют? По телефону звонить? Понять конструкцию типа "рецепт этого пирога находится на странице 20 в поваренной книге, которая в шкафу в кухне на третьей полке"? Тогда и указатели могут понять.

(no subject)

From: [identity profile] macro11.livejournal.com - Date: 2015-06-14 06:54 am (UTC) - Expand

Date: 2015-06-15 06:24 pm (UTC)
From: [identity profile] sab123.livejournal.com
Я в свое время не понимал указателе в Паскале. А вот когда изучил ассемблер, и понял, что они - адреса, то все встало на свои места. В сях все очень просто - адреса они и есть адреса. После ассемблера и Си и Паскаль стал понятен. Проблемы возникают только когда люди начинают придумывать абстрактные сущности и пытаться объяснять указатели не как адреса.

(no subject)

From: [identity profile] sab123.livejournal.com - Date: 2015-06-15 06:52 pm (UTC) - Expand

Date: 2015-06-16 08:22 am (UTC)
From: [identity profile] orleanz.livejournal.com
я вроде бы понимаю пойнтеры в Си (кстати, а что является критерием понимания, может, на самом деле НЕ понимаю)

но я не понимаю дофига других вещей связанных с пойнтерами

например, когда код скомпилированный в ассемблер и бегущий уже без всякого дополнительного рантайма - вылазит за пределы отведенного ему сектора памяти - как ОС бьет ему по рукам? А ведь бьет же, насколько я знаю (хотя, опять таки, все равно есть какие то способы обойти эту защиту и проблема защиты не имеет окончального решения на 100%)

или, например, как хаккер Вася который получил админский доступ к машине жертвы может написать программу, которая точно знает, где в памяти хранится содержимое эксельного файла, которое юзер запустил параллельно с Васиной программой, причем, каждый раз при запуске обеих программ - я читал, что искать данные надо всегда по какому-то фиксированному адресу, а не понимаю почему он не меняется всегда при запусках Экселя. (то есть, мне кажется что это решаемо но не через фиксированный адрес, а через сложный анализ того, как в данный момент Эксель испрользует память).
Edited Date: 2015-06-16 08:25 am (UTC)

Date: 2015-06-22 10:50 pm (UTC)
From: [identity profile] mynine.livejournal.com
Я тоже сперва не врубался в понятие указателя, долго вспоминал почему и, кажется, вспомнил - любая переменная в программе и есть адрес данных. Тут и возникало недопонимание - что же за еще какой-то дополнительный адрес? Дальше требуется усилие понять что указатель это переменная (то бишь опять адрес места), где хранится адрес другой переменной.

Profile

spamsink: (Default)
spamsink

February 2026

S M T W T F S
12345 67
8 91011 121314
15161718 192021
22 2324 25262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 5th, 2026 08:00 am
Powered by Dreamwidth Studios