avva: (Default)
avva ([personal profile] avva) wrote2017-02-28 03:00 pm

дьявол в деталях

Вот чего я никогда не понимал в программировании, так это как люди помнят все подробности месяцы и годы после того, как они этим пользовались. Какой синтаксис тут, как называется функция там. У меня это все подчистую исчезает из памяти максимум через полгода, а обычно быстрее. Типа, полгода не писал на Перле - забыл ВСЕ. Понадобился язык снова - вспоминаю... не как с нуля, понятно, но не особо легче, чем что-то, чем 10 лет не пользовался.

Но вот что изменилось в последние годы - благодаря Гуглу и Stackoverflow все такие подробности и решения мелких проблем можно подсмотреть за пару секунд, практически без исключений. В результате таких, как я, становится больше, и таким, как мы, уже не нужно полгода, чтобы забыть основные вещи в языке, можно их просто не запоминать.




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

[identity profile] prol-prolych.livejournal.com 2017-02-28 01:08 pm (UTC)(link)
Да, есть такое. Я запоминаю не содержание, а где его найти. :о) До интернета я запоминал в какой книге и примерное место где я видел цитату. Теперь стало проще, гуглю книгу, где я видел цитату :о)))

Запоминается то, что не случайно.

(Anonymous) 2017-02-28 04:11 pm (UTC)(link)
Надолго запоминаются те конструкции языка, которые не случайны, а являются следствием каких-то абстрактных принципов.

[identity profile] a-konst.livejournal.com 2017-02-28 01:08 pm (UTC)(link)
+1. Если я не вижу перед глазами в коде на экране взятие длины строки, и если я не писал это в пределах последних нескольких дней, то лезу в доку. Просто для уверенности.

[identity profile] redis.livejournal.com 2017-02-28 01:10 pm (UTC)(link)
Да, есть такое, даже в языке, которым постоянно пользуюсь, но вот конкретный функционал нужен раз в полгода. Гугль даже услужливо подсказывает, что я уже это искал :)

По этой причине не хожу на собеседования, где надо наваять программу на бумаге - давно так не умею, да и необходимости не вижу

[identity profile] a-konst.livejournal.com 2017-02-28 01:48 pm (UTC)(link)
Да и вообще концепция, что на интервью надо проверять знание технических деталей, устарела.

(no subject)

[identity profile] rednyrg721.livejournal.com - 2017-02-28 13:59 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-02-28 14:05 (UTC) - Expand

(no subject)

[identity profile] edo-rus.livejournal.com - 2017-02-28 14:18 (UTC) - Expand

(no subject)

[identity profile] garkara.livejournal.com - 2017-02-28 14:59 (UTC) - Expand

(no subject)

[identity profile] rednyrg721.livejournal.com - 2017-02-28 15:02 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-02-28 15:07 (UTC) - Expand

(no subject)

[identity profile] aosypov.livejournal.com - 2017-02-28 23:54 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-03-01 06:28 (UTC) - Expand

(no subject)

[identity profile] aosypov.livejournal.com - 2017-02-28 23:51 (UTC) - Expand

(no subject)

[identity profile] redis.livejournal.com - 2017-03-01 06:39 (UTC) - Expand

(no subject)

[personal profile] migmit - 2017-02-28 13:56 (UTC) - Expand
(deleted comment)

[identity profile] catpad.livejournal.com 2017-02-28 01:16 pm (UTC)(link)
Абсолютно то же самое. Всё ещё усугубляется тем, что они все постоянно меняются - Python 2.7, Python 3, C++11, C++14, C++17 - не успел какое-то правило выучить, оно уже поменялось.
Вот вчера только пытался запомнить, чем xrange отличается от range и в какой версии. Сегодня забыл.

[identity profile] gianthare.livejournal.com 2017-02-28 04:55 pm (UTC)(link)

Миша! Ты пишешь на Питоне?!

(no subject)

[identity profile] catpad.livejournal.com - 2017-03-01 01:04 (UTC) - Expand

(no subject)

[identity profile] tr1gger.livejournal.com - 2017-02-28 22:00 (UTC) - Expand

[identity profile] maxdz.livejournal.com 2017-02-28 01:24 pm (UTC)(link)
>как люди помнят все подробности месяцы и годы после того, как они этим пользовались

Подробности синтаксиса и прочей языко-зависимой мишуры, повода помнить нет. Но что именно уже писал и примерно где - помнить полезно. Иначе, есть риск часто переизобретать велосипеды.

[identity profile] roma kraminskij (from livejournal.com) 2017-02-28 01:25 pm (UTC)(link)
Гугл само собой, но зачем вообще помнить точное имя метода? Или его синтаксис? Базовый функционал IDE, той же студии сам предложит список методов объекта и проверит синтаксис при его вызове. Более того система проверяет правильность кода в контексте системы, например предупредит о deprecated коде.

Помнить нужно как примерно работает фреймворк(движок) или объект, точное знание синтаксиса необходимо для идиотских собеседований где требуют писать на бумаге работающий код.

[identity profile] heinza.livejournal.com 2017-02-28 02:57 pm (UTC)(link)
+++

(no subject)

[identity profile] tr1gger.livejournal.com - 2017-02-28 22:22 (UTC) - Expand

(no subject)

[identity profile] roma kraminskij - 2017-02-28 22:24 (UTC) - Expand

(no subject)

(Anonymous) - 2017-03-02 05:07 (UTC) - Expand

(no subject)

[identity profile] tr1gger.livejournal.com - 2017-03-02 18:57 (UTC) - Expand

[identity profile] shadow-ru.livejournal.com 2017-02-28 01:29 pm (UTC)(link)
Я так понимаю, это волна, вызванная этой статьей:

http://www.yegor256.com/2017/02/21/say-no-to-google-recruiters.html

[identity profile] pritkiy-kaban.livejournal.com 2017-02-28 02:18 pm (UTC)(link)
Все же идиоты в рекрутинге - тема более широкая, чем вопрос "кто как поддерживает инструменты в заточенном виде и надо ли это делать" :)

(no subject)

[identity profile] shadow-ru.livejournal.com - 2017-02-28 14:40 (UTC) - Expand
ext_605364: geg MOPO4 (Default)

[identity profile] gegmopo4.livejournal.com 2017-02-28 01:41 pm (UTC)(link)
Как перебрать все элементы массива в Си?
for (i = 0; i < length; i++) {
    x = a[i];
}

Как получить длину строки в Си?
strlen(s)

Как перебрать все символы строки в Си?
for (i = 0; i < strlen(s); i++) {
    x = s[i];
}

Теперь я понимаю, как получается такой код.
epimorphisms_split: (Default)

[personal profile] epimorphisms_split (from livejournal.com) 2017-02-28 05:00 pm (UTC)(link)
Следующая ступень — понять и рассказать, как получается такой код:

strncpy (dst, src, strlen(src));

Я который год бьюсь, а сформулировать не могу.

(no subject)

[identity profile] gianthare.livejournal.com - 2017-02-28 17:33 (UTC) - Expand

(no subject)

(Anonymous) - 2017-02-28 17:45 (UTC) - Expand

(no subject)

[identity profile] gianthare.livejournal.com - 2017-02-28 17:58 (UTC) - Expand

(no subject)

[personal profile] epimorphisms_split - 2017-02-28 18:25 (UTC) - Expand

(no subject)

[identity profile] gegmopo4.livejournal.com - 2017-02-28 19:51 (UTC) - Expand

(no subject)

[identity profile] mtyukanov.livejournal.com - 2017-02-28 20:36 (UTC) - Expand

(no subject)

[personal profile] epimorphisms_split - 2017-02-28 21:40 (UTC) - Expand

(no subject)

[identity profile] e2pii1.livejournal.com - 2017-03-01 03:40 (UTC) - Expand

(no subject)

[identity profile] the-chiffa.livejournal.com - 2017-05-06 11:32 (UTC) - Expand

[identity profile] norian.livejournal.com 2017-02-28 01:42 pm (UTC)(link)
чтобы запомнить кучу мелких деталей, надо потратить кучу времени и усилий, и эти знания с некоторой вероятностью никогда не пригодятся, ну и забывание со временем тоже присутствует - нейроны освобождаются для новых задач

тырнет и поисковики вообще избавили от такой необходимости, ага, теперь проще за 5 минут найти инфу или даже готовое решение, чем его придумывать

изучать надо концепции и иметь общее представление об элементах, а как именно их использовать сейчас не есть биг деал

Edited 2017-02-28 13:48 (UTC)

[identity profile] hervejoncour.livejournal.com 2017-02-28 01:45 pm (UTC)(link)
О, да! Если каждый день какие-то проблемы и задачи необходимо решать, то вспомнить что ты написал 5 месяцев назад, если это только не критический кусок, практически невозможно. Я в таких случаях говорю, что мне нужно пару минут to refresh my memory.

Nice excerpt :)))

Кстати, тут можно поговорить о том, что требуется от программера, знание api calls or understanding of design principles and patterns. Я голосую за второе.

А то я тут вчера столкнулся с кодом, в котором hard-coded paths and catch block is empty.

[identity profile] alxt.livejournal.com 2017-02-28 02:01 pm (UTC)(link)
Тут проблема скорее в python'е.
В java я просто нажимаю . и начинаю набирать очевидное len - и мне предлагают дописать gth(). Потому что всё логично- длина строки это length().

Всё долно быть просто и логично, а python и perl вообще знать не надо :)

[identity profile] edo-rus.livejournal.com 2017-02-28 02:11 pm (UTC)(link)
Всё долно быть просто и логично

я ниже об этом же написал, назвав это "интуитивностью".

P.S. уверен, что для кого-то и перл прост и логичен.

(no subject)

[identity profile] aosypov.livejournal.com - 2017-02-28 23:59 (UTC) - Expand

(no subject)

[identity profile] bolk.livejournal.com - 2017-02-28 14:12 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-02-28 14:25 (UTC) - Expand

(no subject)

[identity profile] bolk.livejournal.com - 2017-02-28 14:30 (UTC) - Expand

(no subject)

[identity profile] shadow-ru.livejournal.com - 2017-02-28 14:42 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-02-28 14:44 (UTC) - Expand

(no subject)

[identity profile] dzz.livejournal.com - 2017-02-28 15:38 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-02-28 15:43 (UTC) - Expand

(no subject)

[identity profile] shadow-ru.livejournal.com - 2017-03-01 08:15 (UTC) - Expand

(no subject)

[identity profile] a-konst.livejournal.com - 2017-03-01 08:21 (UTC) - Expand

(no subject)

[identity profile] shadow-ru.livejournal.com - 2017-03-01 08:40 (UTC) - Expand

(no subject)

[personal profile] epimorphisms_split - 2017-02-28 17:11 (UTC) - Expand

(no subject)

[identity profile] aosypov.livejournal.com - 2017-03-01 00:00 (UTC) - Expand

(no subject)

[identity profile] karajel.livejournal.com - 2017-03-01 06:23 (UTC) - Expand

[identity profile] edo-rus.livejournal.com 2017-02-28 02:08 pm (UTC)(link)
меня удивляет, что такое количество людей отвечает в духе "да это не проблема".

это проблема. мы тратим время и силы на такие мелочи при написании кода, не можем сконцентрировать внимание и более целостно увидеть задачу (переключение контекста дорого не только у процессоров).

КМК решение - использование интуитивных (или хорошо знакомых) инструментов. при этом оценка "интуитивности" индивидуальна.
Edited 2017-02-28 14:10 (UTC)

[identity profile] bolk.livejournal.com 2017-02-28 02:10 pm (UTC)(link)
Ну не знаю, я помню. Когда долго не пишешь, просто дольше вспоминается, но вспоминается. Потом, когда начинаешь писать регулярно, уже ничего из памяти не вылетает, исключая уж совсем какие-то мелочи, но я помню что они есть, по крайней мере.

[identity profile] pritkiy-kaban.livejournal.com 2017-02-28 02:10 pm (UTC)(link)
YMMV. Одно застревает, другое нет.

У меня ВСЕ скриптово-интерпретируемые языки вносит ветром в одно ухо и выносит из другого. Притом, например, не то что не забыл VHDL (с которым, к слову, связаны не лучшие рабочие годы) за 6 лет, а сначала сел и начал работать, и только спустя дни подумал, что шахматы сии не трогал давно :)
Edited 2017-02-28 14:11 (UTC)

[identity profile] yucca.livejournal.com 2017-02-28 02:25 pm (UTC)(link)
О, теперь и я могу признаться, что регулярно забываю, как брать длину строки.

[identity profile] ign.livejournal.com 2017-02-28 03:15 pm (UTC)(link)
Учитывая, что на Perl'е, Python'е, Java, JavaScript'е, Bash'е и SQL это надо делать по-разному (на Perl'e и SQL формально одинаково, но есть нюансы), и плюс к этому надо помнить и не путать с длиной массива, и плюс к этому в Java есть массивы разного вида с разным синтаксисом, неудивительно, что мало кто все это держит в голове.

(no subject)

[identity profile] aosypov.livejournal.com - 2017-03-01 00:03 (UTC) - Expand

(no subject)

[identity profile] ign.livejournal.com - 2017-03-01 00:15 (UTC) - Expand

(no subject)

[identity profile] aosypov.livejournal.com - 2017-03-01 00:29 (UTC) - Expand

[identity profile] dmpogo.livejournal.com 2017-02-28 02:34 pm (UTC)(link)
Проблема что такое отношение к знанию теперь часто и в других областях, не только в программировании. В конце концов это как плохо знать иностранный язык, когда постоянно надо пользоваться словарем. Все эти 'за пару секунд посмотрим' - это про удобство костылей, когда можно было и бежать.

[identity profile] fortunatus.livejournal.com 2017-02-28 02:56 pm (UTC)(link)
s.index(s[-1])+1

[identity profile] fortunatus.livejournal.com 2017-02-28 03:03 pm (UTC)(link)
Упс! Ошибочка.
s.find(s[-1],-1)+1

[identity profile] dzz.livejournal.com 2017-02-28 03:02 pm (UTC)(link)
> писал что-то мелкое на Питоне и не мог вспомнить, как брать длину строки

Это, как раз, нормально для людей, знающих "в принципе" 2-3 десятка языков, но редко на них программирующих. Но сейчас хоть в бумажные мануалы за синтаксисом лезть не нужно.

Я позавчера вспоминал параметры функций для работы с файлами в C, тоже подзабыл порядком.
Edited 2017-02-28 15:07 (UTC)

[identity profile] ign.livejournal.com 2017-02-28 03:05 pm (UTC)(link)
Язык-то, конечно, вспомнить легче, чем учить с нуля... Но вот я помню, как лет 20 назад писал программы на Perl'е с какой-то фантастической скоростью, как мне казалось и тогда и сейчас, самой собой разумеется безо всякого подглядывания в интернет и мануалы. Сейчас мне снова приходится время от времени что-то писать на Perl'е, и боюсь, что тогдашнего уровня я не достигну уже никогда, даже если посвящу этой цели всю оставшуюся жизнь.

длина строки

[identity profile] prol-prolych.livejournal.com 2017-02-28 03:17 pm (UTC)(link)
Вы в каких попугаях длину строки то меряете? :о)))
Везде уже utf-8, а вы тут какие-та баги на це печатаете
epimorphisms_split: (Default)

Re: длина строки

[personal profile] epimorphisms_split (from livejournal.com) 2017-02-28 04:22 pm (UTC)(link)
Как будто у количества символов (кстати, что это?) в строке есть какой-то сакральный смысл. Сколько символов в строке "état", можете с ходу сказать? А в строке "столя́р"? "יָּמִֽין"? "देव"? А также зачем это нужно знать и какой функцией измерить?

(no subject)

[identity profile] salamafiko.livejournal.com - 2017-02-28 22:06 (UTC) - Expand

(no subject)

[personal profile] epimorphisms_split - 2017-02-28 22:16 (UTC) - Expand

(no subject)

[identity profile] salamafiko.livejournal.com - 2017-02-28 22:33 (UTC) - Expand

(no subject)

[identity profile] salamafiko.livejournal.com - 2017-02-28 22:34 (UTC) - Expand

[identity profile] aosypov.livejournal.com 2017-02-28 05:47 pm (UTC)(link)
угу, только в Перле можно сказать подходящее слово, и оно скорее всего будет правильным, а вот в R, например -фигу, надо читать

[identity profile] da-pooh.livejournal.com 2017-02-28 05:54 pm (UTC)(link)
https://www.reddit.com/r/ProgrammerHumor/comments/2rvmn6/indian_government_bans_stackoverflowcom_developer/

[identity profile] angerona.livejournal.com 2017-02-28 09:09 pm (UTC)(link)
ааааа, ты говоришь это нормально?!

Ааааа!

Какого черта я тогда столько лет считаю, что не могу быть программистом (ну то есть что не могла бы быть) потому что я так быстро забываю все эти подробности синтаксиса, в отличии от "Настоящих" программистов, которые их все как раз посмотрели, так всегда помнят?

[identity profile] freedom_of_sea.livejournal.com 2017-03-01 12:50 pm (UTC)(link)
забавно как комментаторы хвалят Перл и силятся вспомнить синтакис Питона

ТОП: 17:00 (московское)

[identity profile] magict30p.livejournal.com 2017-03-01 02:00 pm (UTC)(link)
Вы попали в Т30P (http://www.t30p.ru) самых обсуждаемых тем в блогосфере.
Это Ваш 4-й ТОПовый пост в этом году.
Посмотреть статистику автора можно в карточке топблогера (http://rating.t30p.ru/?avva.livejournal.com&p=tops).Image