Pull to refresh

Comments 419

UFO just landed and posted this here

Программирование это далеко не только написание кода. К сожалению многие об этом забывают.

UFO just landed and posted this here

Программирование: это построение исполняемой системы с заданным, запрограммированным поведением, исполняющей требования заказчика по быстродействию, отзывчивости, надёжности, устойчивости и так далее.
Одно неверное движение и одна ошибка превращается в десять неприятных последствий, простоев, задержек, сбоев, финансовых потерь и, возможно, трагических для жизни и здоровья ситуаций.

UFO just landed and posted this here
Даже если я буду делать для себя умную грядку на ардуинке типа «почва сухая — вылить стакан воды», то одна ошибка может привести к появлению болота вместо помидоров. А потом окажется, что нет проверки на пустоту бака с водой и насос работал несколько часов без воды и сгорел в итоге.
Проект коммерческий? Нет. Привели ошибки к экономическим потерям? Да.
UFO just landed and posted this here
Хорошо, вы делали эту грядку для своего брата-машиниста, он вас попросил. Ваш заказчик — брат, но проект всё равно некоммерческий.
Что, по вашему, меняется от наличия заказчика как отдельной сущности?
UFO just landed and posted this here
Я поставил слово «коммерческая» потому что упомянули «заказчика».

Заказчик — человек, ставящий ТЗ. Внимательно: я не говорю, что он платит, а говорю, что он ставит ТЗ, потому, что разбирается в предметной области. Ещё раз и по буквам: заказчик понимает предметную область, при этом проект запросто может быть волонтёрским (соответственно, не оплачиваться)


Вы запрограммировали с багами.
Ключевое слово — «запрограммировали». Был выполнен акт программирования.

Акт программирования. Я заскринил, это должно остаться в истории


Оно не отвечало, условно, ни требованиям экономической выгоды, ни «быстродействию, отзывчивости, надёжности, устойчивости и так далее».
Программирование при этом было.

Допустим, если я натравлю нейронку на исходники, и заставлю её генерировать что-то, внешне похожее на исходный код. Так вот, выхлоп нейронки, внешне похожий на исходный код, даже если он не будет компилироваться, будет ли являться мифическим "актом программирования"?


Вместо вывода

image

UFO just landed and posted this here
Прекрасная книжка )

В данном проекте — заказчик вы и бенефициары от этой грядки (скорее всего — вы же и ваша семья).

Ну а по моему скромному мнению, всё, что отличается от этого — обучение и подготовка к настоящему программированию. Если продуктом пользуется более одного человека, у вас уже есть реквесты, которые нужно реализовать, есть требования и есть заказчик, даже если это вы один.
Ну или можно сказать, «И так сойдёт», если вы не несёте никакой ответственности за последствия использования вашей программы и возможные убытки.
А на мой взгляд, автор очень ясно высказал свою мысль: легко научиться программировать «черепаху ходить по клеткам», но сложно создать рабочий продукт с многоуровневой архитектурой, нетривиальными алгоритмами, абстракциями и т. д. И первое, и второе можно назвать программированием, что приводит к нечестным или неосознанным спекуляциям по теме статьи.
Рискну высказать предположение (возможно и ошибочное!), что сомнения есть некоторые в потребности тут слова Заказчик. Полагаю имелось имелось ввиду, что слово Заказчик тут попросту лишний такт, обеспечивающий потенциал для неоднозначных трактовок.

Что-то типа того, что Заказчик, это прямая и неразрывная связь с коммерческим фактором (комм. фактор не обязательно выражается в деньгах, но и простое конечное «спасибо» от брата, конечно, комм. фактором не является). То есть, если, для примера, исключить слово Заказчик, то и недоразумения бы не было. Могу и ошибаться.

Кмк, Ваша формулировка очень даже хорошо конкретизирует современные реалии программирования. Причём лично мне, субъективно, вообще вот прямо очень нравится наличие слова «построение».
Заказчиком можешь быть и ты сам для себя. Всё упирается в то, насколько жёсткие у тебя требования.
Если пишешь для себя, может, требования и пониже, зависит от человека. Но когда кто-то другой пользуется программой, тут уже можно и в суд подать, если что.

Ну вот у ваших пет-проектов (если они есть) есть заказчик. Этот заказчик — вы сами. И нет, никаких коммерческих обязательств актор "заказчик" не налагает. Заказчик — это источник требований. Им может быть, грубо говоря и пёс Бобик, которому делается конура.

Я и не спорю с этим всем. Я лишь делаю акцент на то, что слово Заказчик для определения «что такое программирование» не является необходимым и, возможно, в какой-то мере вредно.

Как мы видим (я и сам вынужден был призадуматься), оно влечёт/может влечь за собой дополнительные смысловые включения (да, можешь и сам быть для себя Заказчиком. А может и сторонний Вася им быть, за деньги — комм. фактор — то, о чём я и говорю — доп. смысловые включения, могущие увести не туда).

Без этого слова, ни теряется ни бита ни смысла, ни духа утверждения, значит, вполне вероятно, что в этом слове нет нужды. Примерно таков ход мыслей, который я излагал.

Глубоко ошибается тот, кто думает, что изделиями программистов являются программы, которые они пишут. Программист обязан создавать заслуживающие доверия решения и представлять их в форме убедительных доводов, а текст написанной программы является лишь сопроводительным материалом, к которому эти доказательства применимы
— Эдсгар Вибе Дейкстра

Ну вот смотрите, я был молодым и зеленым третекурсником и так же верил, что программирование — это просто:
habr.com/ru/post/163393
Почитайте комментарии, там много инетерсного и неожиданного.

Поддерживаю. Автор статьи описывает программирование как некую элитную и исключительную профессию. Однако, если бы программирование было действительно таким сложным, то оно бы не стало одной из самых распространенных профессий сегодня.

Конечно, в программировании есть сложные аспекты, как наверно, в любой другой профессии, требующей высшего образования. Кстати об образовании. Для программирования вовсе необязательно иметь высшее образование. Можно закончить средне-специальное и тоже быть программистом. Карьерный успех зачастую зависит от навыков. Даже и без специального образования иногда принимают на работу программистов, если видят, что есть хорошие навыки и мотивация.

Всем сторонникам "прогроммирование — для всех" советую зайти на qna.habr.com, подписаться на всякие популярные теги, типа "программирование", и попробовать поотвечать на вопросы.
Потом ужаснуться от того, насколько тупые бывают люди.


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


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

ИМХО: современный коммерческий фронт — достаточно сложный. Часто в нем есть и оптимизация производительности и многопоточность и "толстая" бизнес-логика. Мы в той точке, когда и "формошлепство" перестало быть совсем простым :)

многопоточность в однопоточном языке или что вы вкладываете в этот термин? Вы не перепутали с асинхронностью?
Мне интересно, за что словил минус? JS многопоточным уже стал? ))

Не бывает однопоточных языков, бывают однопоточные окружения. Касательно js же — даже в браузерах есть web workers, а уж за пределами браузеров с многопоточным окружениям для js всё в порядке.

автор четко указал окружение про которое он говорил
современный коммерческий фронт
, поэтому я и спросил. Если речь про Web workers хорошо, пусть будет так. Но это явно не классическая многопоточность. Где потоки имеют доступ к общему контексту. И где возникают race conditions.

Т.е. вы использовали своё особое определение многопоточности, о котором ничего до этого не упоминали. Ничего удивительного что вас не поняли.

своё особое определение многопоточности


Все-же дополню своей ответ. Я использовал не особое и не свое определение, я использовал классическое определение языка поддерживающего многопоточность(Ниже уже расписал, чем эти языки отличаются от js, пусть браузерного).

Web worker не делает браузерный js многопоточным. Web worker это отдельный процесс, с которым взаимодействует ваш основной js. То, что web worker выполняет какую-то работу для основного процесса, не делает основной процесс многопоточным. Это все равно, что сказать, что ajax запросы делают js многопоточным или shell_exec сделает php многопоточным. Это просто делегирование работы другому процессу. У них нет общего контекста исполнения.

Вы путаете теплое с мягким. Ajax к многопоточности вообще отношение не имеет, ajax — это про асинхронность, а не многопоточность, в общем случае это не перескающиеся вещи. Чо такое shell_exec в php я к сожалению не знаю.


Небольшой дисклеймер: чтобы называть язык многопоточным нужно чтобы в стандарте языка было определено понятие потока и указана возможность существования более одного потока. В JS поток не определен, (как кстати и в C++ до C++11). Это не делает язык однопотоным, это просто означает, что язык не поддерживает многопоточность. Использовать язык без поддержки многопоточности в в многопоточной среде можно (как пример тот же C++ до С++11), однако все что касается многопоточности в таком случае определяется платформой, а не языком.


Web worker это отдельный процесс, с которым взаимодействует ваш основной js. То, что web worker выполняет какую-то работу для основного процесса, не делает основной процесс многопоточным.

Если какой-то процесс (в широком смысле) распадается на несколько потоков исполнения которые выполняются не в фиксированном порядке, то это вполне себе многопоточность по определению.

Т.е. вы использовали своё особое определение многопоточности, о котором ничего до этого не упоминали. Ничего удивительного что вас не поняли.

Использованное "своё особое определение многопоточности" очень даже совпадает с определением каноничным:
https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C
mrsantak, ознакомьтесь с определением многопоточности, и ответьте на вопрос, почему web workers не являются потоками

Я нигде не говорил, что web workers не являются потоками, более того я web workers приводил как пример многопоточности в браузере.


Что же касается "своего особого определения многопоточности", где там по вашей ссылке в определении упоминается, что


потоки имеют доступ к общему контексту. И где возникают race conditions.

?


PS Интересно, что ваше "каноничное" определение несколько различается в русской и английской версиях этой статьи. Видно в разных языках свой "канон".

Технически очень давно стала его реализация, V8 умеет распараллеливать некоторые пути, просто делает он это неявно для программиста

При желании
WebWorkers / WebAssembly в помощь
Выше ответил про web workers

Думаю имеются ввиду Workers. А что вы вкладываете в термин "однопоточный язык"?

UFO just landed and posted this here

Уже не первый раз встречаю подобное мнение и мне оно до сих пор не понятно. Просто любопытно, создать поток в с++98 можно? можно, да в std98 нет сущностей для работы с потоками но там до сих пор нет ни чего и для работы с сетью что же теперь будем говорить что c++ не может в сетевое взаимодействие?

Ну да, все что касалось многопоточности до С++11 — это по большей части фичи предоставляемые конкретными платформами. А в 11 версии появились стандартные примитивы с общими контрактами для всех платформ. Многопоточность — это ведь не только про запустить тред, это еще про то как треды могут взаимодействовать, как происходит обращение к общей памяти, что из неё можно прочитать и т.д.

Ну так реализация блокировок и запуска потоков как была в системных libpthread или в WINAPI так и осталась, ни чего "нового" 11 стандарт касаемо многопоточности не принёс ровно эта же обёртка над системным api уже была в boost за долго до STD11. Так почему же некоторые считают что c++98 с boost::thread или любой другой плюсовой оберткой или без нее не многопоточный, а c++11, в котором фактически полностью перенесли реализацию из boost::thread, стал многопоточным?

C++11 — первая из версий со стандартизированной моделью памяти (memory model).
До этой версии в C++ не было универсального синтаксиса указать компилятору точки синхронизации. Все компилировалось и оптимизировалось как однопоточная программа.

Ну так реализация блокировок и запуска потоков как была в системных libpthread или в WINAPI так и осталась, ни чего "нового" 11 стандарт касаемо многопоточности не принёс ровно эта же обёртка над системным api уже была в boost за долго до STD11.

Вы серьезно не видите разницу между "было в сторонней библиотеки" и "стало частью стандарта языка"?

Да не в этом дело! Многопоточность нельзя добавить в C++ библиотекой. As if мешает.

Без расширения языка ничего не получится. Либо vendor-specific (в прошлом веке), либо C++11 (уже в этом).

А вот графике, сети и куча всего ещё — as if не мешает. Они могут и сторонними библиотеками реализовываться.

Так я ровно это и писал. Все что было до С++11 — это какие-то платформозависимые штуки, которые на каждой платформе работают по-разному. Поэтому многопоточности не было в языке, но она была в платформах.


А если вы про "было в сторонней библиотеки", так речь про возможность запустить поток в принципе.

ок 2 вопроса
С99 это многопоточный язык ведь для него вообще ни чего не изменилось?
в чём отличие std::thread/std::mutex/… от boost::thread/boost::mutex/...?

зависимость от pthread в gcc ни куда не делась и даже не перекочевала в сам stdlib так что же поменялось в «языке»?
вот auto, decltype, variadic templates это изменения в «языке» которых раньше не было и они реализовывались хаками. Но вызов системного api это часть языка и она ни куда не делась и не поменялась, просто завернули это в красивый «фантик»

> платформ зависимые штуки, которые на каждой платформе работают по-разному
они и сейчас работают по разному тут ни чего не поменялось

Вот в js нет «многопоточности» и ни какими средствами языка не создать поток без добавления этой возможности в интерпретатор.
С99 это многопоточный язык ведь для него вообще ни чего не изменилось?
Однако.

в чём отличие std::thread/std::mutex/… от boost::thread/boost::mutex/...?
В том, что для std::mutex гарантируется, что обращение к ресурсу защищённому мютексом компилятор не сделает до взятия мьютекса, а для boost::mutex — это не гарантируется.

Boost, конечно, старается всячески это обеспечить, но без поддержки со стороны компилятора — он этого сделать не может.

Но вызов системного api это часть языка и она ни куда не делась и не поменялась, просто завернули это в красивый «фантик»
Вот только есть одна беда: std::mutex не вызывает системный API (вернее не всегда вызывает — с точки зрения корректности это то же самое).

Вот в js нет «многопоточности» и ни какими средствами языка не создать поток без добавления этой возможности в интерпретатор.
Главная проблема в том, что там нет модели памяти подходящей. А не в том, что нельзя соответствующие системные вызовы в JS «прокинуть».
> В том, что для std::mutex гарантируется, что обращение к ресурсу защищённому мютексом компилятор не сделает до взятия мьютекса, а для boost::mutex — это не гарантируется.

не могу сказать что согласен подобным определением, но это прояснило для меня что подразумевалось под «С++98 не многопоточный».
Сетевое взаимодействие можно локализовать в библиотеке, многопоточность — нет (конкретно в C++, в каких-то других языках может быть и возможно).

Проблема в том, что виртуальная машина, на которой построен компилятор построена на приципе as-if: компилятор может производить любые преобразования программы если обращения к volatile-объектам и внешним ресурсам не перемещаются.
Соответственно любое обращение к одной и той же переменной из двух потоков — может привести к непредсказуемым последствиям.
Независимо то локом и прочего всего.

На практике это ограничивалось тем, что LTO было ограниченным, но всё равно всё время возникали проблемы разного рода. Когда компилятор «видел» слишком много и оптимизировал программу неожиданным образом.

А для сетевого взаимодействия (и многого-многого другого) «as if» достаточно, там не нужно язык менять.
UFO just landed and posted this here
Я вкладываю в этот термин такой смысл:
Это язык в котором две независимые функции из одного и того же контекста не смогут выполняться параллельно. Только одна за другой.

Наглядный пример:
var x = 0;
function test() {
x = x + 1
}
setTimeout(test, 0);
setTimeout(test, 0);


В js (браузер), x всегда будет = 2 т.к. race condition невозможен. В многопоточном языке пришлось бы использовать, например, мьютекс.
У вас просто нормального race condition в js не было.
Просто внутри функции test должно быть не один x=x+1 а несколько вызовов функций и т.д. И в этот момент начинается гонка вызовов
Мой пример показывает, что race condition в классическом его понимании отсутствует. Про какую гонку вызовов вы говорите в js? Приведите пример, чтобы мы общались предметно.
да банальный на коленке:
async function downloadAndSaveContract(syncSystem, id){
const contract = await getContractFromServer(id)
await syncSystem.saveContract(contract)
}


Где система синхронизации может одновременно сохранять только один контракт, потому что делает пересчет структуры. А фишка в том, что пользователь может параллельно делать изменения, т.е. его следующее изменение должно быть вызвано после завершения функции.

Я бы, конечно, реализовал это по другому, но суть такова.
Да в любом месте, где реализуется более одной функции операции и участвуют хоть чуток промисы и setTimeout можно получить неуправляемый код, который будет менять и перебивать очередь исполнения как захочет.
Даже из недавнего: обнаружил баг в интерпретаторе javascript для react.native, когда два вызова вобще работали в одном scope.

А то, что вы описали в обычных языках решается простыми атомарными операциями.
А то, что вы описали в обычных языках решается простыми атомарными операциями.


Формально в js(браузер) все вызовы функций эксклюзивные и атомарные.
Т.е. когда функция начала свое исполнение, то мы можем быть спокойны, что другая функция извне не прервет выполнение текущей или не будет выполнена параллельно. Соответственно для x = x + 1 мне не нужен мьютекс. Если из вашей функции убрать все await, т.е. сделать ее обычной функцией, в которой есть вызов двух связанных асинхронных функций, то это не нарушает принцип атомарности выполнения всей функции. Просто нужно понимать, что асинхронные функции будут отправлены в очередь исполнения, а не сразу же начнут свое выполнение — соответственно это решается просто на уровне архитектуры, без использования каких-либо техник многопоточного программирования, по типу мьютексов или семафоров.

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

НО с вашим примером я согласен, тут потребуется применить те или иные техники(например очереди апдейтов), чтобы синхронизировать асинхронные вызовы. НО их можно решить только с помощью архитектуры и даже без await.
С вами я тоже полностью соглашусь.
Организация управления в голанге или Си\Си++ требует более высокого управления очереди исполнения на основе той же многопоточности (мьютексы, потоки, каналы, атомарность и т.д.).

Однако определенная «правильная» архитектура кода не всегда решает в виде исполнения, поскольку поток исполнения не настолько контролируемый в JS, поэтому и появились все эти недокостыли в виде Promise и setTimeout. Как таковая, по сути, многопоточность отсутствует, ну существует жесткая асинхронность, которая порождает проблемы той же race condition, что и приводит нас к данному результату.

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

P.S.: мне пришлось внедрить систему lock/unclock для того, чтобы освобождать/блокировать поток исполнения определенной функции. Более того, эта проблема даже в виде 2 инстансов на один код, тут пришлось добавлять код в виде
sleep(randomint*(SPECIAL_RANDOM_TO-SPECIAL_RANDOM_FROM))
(почти передал, но вы поняли)
Полагаю речь про web workers, их код насколько я знаю выполняется в отдельном потоке. Так что даже фронт может иметь дело с многопоточностью.

И нода 14 насколько я знаю тоже позволяет запускать отдельные потоки, а не просто асинхронно работать в одном системном потоке.
Повторюсь, чтобы вам долго не искать.

Web worker не делает браузерный js многопоточным. Web worker это отдельный процесс, с которым взаимодействует ваш основной js. То, что web worker выполняет какую-то работу для основного процесса, не делает основной процесс многопоточным. Это все равно, что сказать, что ajax запросы делают js многопоточным или shell_exec сделает php многопоточным. Это просто делегирование работы другому процессу. У них нет общего контекста исполнения.
Некторые люди такого лишены.
Нет таких людей. Когда-то то же самое говорили про банальные квадратные уравнения. А до того — про умение читать и писать.

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

Но даже это ведь не самое главное! Главное в том, что если люди научатся думать, то современное общество просто рухнет. Как можно впариь человеку очередные «закруглённые уголки», если он понимает, что ему они не нужны?

Если всю жизнь только формошлепать, то да — ничего сложного, в общем-то нет. Но в любом более или менее большом проекте возникают "алгоритмы", да и просто надо в голове держать множество абстрактных сущностей и их связи.
Знаете, в статье прозвучала отличная, годная, аналогия:
Приготовление пищи — это сложная задача, требующая терпения и внимания к деталям, много знаний и опыта.
И да, программирование не сложнее, чем умение приготовить вкусный обед «из того, что осталось в холодильнике». И там и там нужно держаь в голове множество абстрактных сущностей и их связей… иначе съев салат из огурцов и запив его молоком — вы получите «превосходный резульатат».

Но при этом неумение программировать — счиается нормой (а иногда чуть ли не доблестью), а приготовить какой-никакой обед — любая домохозяйка умеет. Вот и вся разница.

P.S. И да — любая домохозяйка не сможет поспорить с поваром с мишленовской звездой. И программировать как Джефф Дин тоже сможет не каждый. Но это, всё-таки, другая история. В любом деле есть люди, делающие что-то сильно лучше других…
UFO just landed and posted this here
Лишены ли люди этого с рождения, или просто их никто не научил — совсем неважно.
Зависит от временного масштаба, о котором мы говорим.

В течении столетий человек подавляющее большинство людей находили работу за счёт вещей, которые, с одной стороны, «не требуют никакого обучения», с другой стороны, на самом деле — являются дико сложными. Ну там, умение ходить «на своих двоих», говорить или носить предметы. Даже не буду про нейронные сети и сложности распознавания образов… просто вспомните сколько каждый маленький человечек тратит лет, на то, чтобы освоить эти «тривиальные» задачи.

По сравнению с этим какое-то там программирование — фигня. Нужно будет — освоят. Даже если 100% работ будут этого навыка требовать.

Но вот прямо сегодня, сейчас… да, для людей, которых отучили думать — это всё проблема большая.
UFO just landed and posted this here
Или сломают нафиг станки.
Ну эту-то проблему давным-давно научились решать:
В какое-то время войска занимались подавлением луддитских восстаний сильнее, чем сопротивлением Наполеону на Пиренейском полуострове.
Тоже мне проблема.
Или вот историю про калифорнийского бомжа, которого один чувак учил-учил программированию, даже апп в аппсторе вместе опубликовали, а бомж в итоге решил дальше бомжевать, потому что это проще, вы наверняка слышали. И это воспроизводимая история.
Лехко. Только она говорит не о проблемах изучения программирования, а о мотивации.
Я видел людей, которым правда не помешали бы лишние деньги, ибо их текущая работа позволяет, ну, очень мало благ, но вот программирование что-то не заходит.
Если им програмирование «не знаходит», значит им лишние блага не нужны. Как тому бомжу.

Оставьте уже их в покое.
Почти все истории успешно вошедших в айти — «было техническое образование», «был вуз с лабами по программированию», всё такое.
А почти все истории безуспешного вхождения — «денег я, конечно, хотел, но учиться было лень».

А как эту теорию — каждый может программировать — можно опровергнуть? Или это из разряда "человек — это звучит гордо", являющихся лозунгами, а не теориями?

Смотря, что считать программированием.
Если написание простейшего рецепта или простейшей инструкции без ветвлений считать программированием, то да почти каждый (хотя, тупицы неспособные даже на это найдутся).
Если же речь о профессиональном программировании со сложными алгоритмами, то может отнюдь не каждый.
Если же речь о профессиональном программировании со сложными алгоритмами, то может отнюдь не каждый.
А тут — всё та же аналогия с готовкой еды.

Научиться готовить что-то съедобное и не умереть с голоду — может каждый (все, кто не могли, давно умерли и потомства не оставили).

А вот уже готовить так, чтобы в ресторан с тремя Мишленовскими звёдами взяли — уже нет.
UFO just landed and posted this here
Более того куча людей когда хотят «войти в айти» ориентируются совсем не на минимальные зарплаты айтишников. Им же хочется много зарабатывать.
Им хочется «много зарабатывать после трёхмесячных курсов». Сейчас вообще духнедельные появились. Там учат только писать резюме и собеседования проходить.

А это доступно ещё меньшему количеству людей.
Если бы к программированию относились бы так же, как к хирургии… где вас будут “дрючить” несколько лет, перед тем, как скальпель в руки дадут… 90% (если не 99%) освоили бы.

Конечно если вы только посмотрите курс C++ какой-нибудь, не делая вообще никаких упражнений (зачем зря время тратить) — то на «много зарабывать» вы не научитесь.
UFO just landed and posted this here

Человек забыл написать граничное условие — 90+% дотянувших до выпуска (а не дотянутых деканатом, разница — принципиальная) — те действительно смогут.

Просто для уточнения — ходьба не управляется неокортексом напрямую, это автоматический процесс.
По сути согласен полностью.
Лишены ли люди этого с рождения, или просто их никто не научил — совсем неважно.

Но при этом нельзя забывать о том, насколько тяжело людей этому научить. Например, Читать. Хоть медленно и по слогам, но можно научить читать практически любого человека. Или писать. У некоторых почерк всю жизнь корявый, но учат практически всех.


С другой стороны — рисовать. Как и письмо, это тоже вазюканье чем-то по бумаге. ИЗО есть практически во всех школах, и рисование — одна из самых частых активностей, чтобы занять детей. Тем не менее, рисовать, чтобы хотя бы понятно было, что же там нарисовано, могут далеко не все.


На мой взгляд, программирование — это сложный навык и значительная часть людей не овладеет им, сколько курсов они бы не проходили. Ну, черепашку сдвинуть в форме квадрата они смогут, а спиралью — уже никак.


Просто я встречал людей, которые могут вывести все числа из массива, умеют просуммировать каждое второе число в массиве, но вывести каждое второе — вообще никак не могут. Даже после тыканья носом — вот тут ты выводишь числа, вот тут обрабатываешь как-то каждое второе. Совмести же эти 2 действия! Никак.

… значительная часть людей не овладеет им…
… я встречал людей...

Ваше хобби — интерполировать?:)
Медицина не находит каких-либо фундоментальных причин, почему человек с нормально функционирующим мозгом не мог бы обучиться программированию по крайней мере на среднем уровне. Как и рисованию.
Научиться чему-то может быть очень сложно. В некоторых случаях настолько сложно, что человек возможно просто не готов прикладывать достаточное количество усилий. Но это не означает принципиальной невозможности, что выглядит очевидным при анализе проблемы «аналитическим» умом.
Научиться чему-то может быть очень сложно. В некоторых случаях настолько сложно, что человек возможно просто не готов прикладывать достаточное количество усилий.

Если человеку для овладения навыком нужно 20 лет постоянного обучения с индивидуальным инструктором, то с практической точки зрения можно считать, что этому человеку не дано овладеть этим навыком.


Понятно, что мир не черно-белый, но обратное утверждение "программирование доступно каждому" — оно еще дальше от правды. Оно создает поток вайтишников, "синдром самозванца" у программистов и понижает престиж профессии.

но обратное утверждение «программирование доступно каждому» — оно еще дальше от правды.

С точки зрения формальной логики, утверждение «программирование доступно каждому» все таки ближе к правде, даже с учетом ограничений вроде «у вас не поврежден мозг, нет некоторых заболеваний, влияющих на мышление и вы не слишком стары, чтобы не успеть его освоить».
Оно создает поток вайтишников, «синдром самозванца» у программистов и понижает престиж профессии.

Вы как будто на них обижены. Меня вот крайне мало волнует пристиж профессии, к тому же есть много профессий пристижнее, почетнее и доходнее. Поток «вайтишников» был всегда, это лишь ответ рынка, вы как специалист высокого (на сколько я знаю по комментариям) уровня вообще не должны за это переживать, ваша работа будет только дорожать, т.к. если раньше, условно, вы входили в топ 15%, то будете входить в топ 5%, просто из-за роста базы.
А как с этим связан «синдром самозванца» я вообще не представляю. Это скорее проявление эффекта Даннинга-Крюгера.
У меня в новых для меня темах тоже бывают проявления подобного синдрома, в основном по причине давления извне и открывшегося поля познания, которое вызывает ощущение «блин, как же много всего, как я вообще сюда попал, я не потяну». Но по мере познания обычно проходит и все входит в обычное русло. Конечно на исходе третей пятилетки уже нечасто такое бывает, но все таки бывает.
UFO just landed and posted this here
Корелляция есть, но непрямая. Условно: сделать 10 говносайтов, за 10 часов каждый — выгоднее, чем хороший и быстрый за 100.
Потому и получается первое, а не второе. И когда люди перестают программировать всё на совесть, потому что «иначе не могут», а начинают делать то, за что платят — вот это и получаем.
UFO just landed and posted this here
Тем не менее, рисовать, чтобы хотя бы понятно было, что же там нарисовано, могут далеко не все.
Та же самая проблема. Возьмите учебники, рисуйте, адапируйесь. Через, условно, 1000 часов практики — будете рисовать весьма неплохо.

Нужно ли это вам? Это уже другой вопрос.
могут далеко не все.

на уровне "чтобы хоть что-то было понятно" — могут все. Ещё в школе есть резкий фильтр — нормально учат рисовать — дай бог в 1 школе на 100. Другое дело, что рисовать как Васнецов — вот это да, тут уже сложности начинаются. А вот рисовать на уровне уличных шаржистов графику — может научиться большинство так точно. Времени только надо существенно затратить, а профит гарантирован только для личной эстетики.

Тем не менее, рисовать, чтобы хотя бы понятно было, что же там нарисовано, могут далеко не все.

"Палка-палка-огуречик" рисовать могут чуть менее чем все. И это уже уровень вполне достаточный для донесения мыслей, схем, историй. Опять же, тот же xkcd, ага.

Не совсем. Все таки высказывание wataru звучит как «принципиально лишены», а не «не были обучены». Некий снобизм мне тут слышится с его стороны, откровенно говоря.
Итог один, предпосылки разные, как и разница в том, что научить то можно, а вот «принципиально лишенных» уже не исправишь.
Ну и аппеляция к «складу ума» тоже эм… такая себе. Аналитическое мышление вполне развивается со временем, если к этому прикладывать усилия.
Нет таких людей. Когда-то то же самое говорили про банальные квадратные уравнения.

Тем не менее, общепринято, что математика дается не всем. Понятно, что нет физиологических ограничений — просто некоторым людям для достижения того же уровня что в математике, что в программировании надо приложить гораздо больше усилий. Если человеку, чтобы стать нормальным программистом нужно учиться 20 лет по индивидуальной программе, то с практической точки зрения можно считать, что этому человеку не дано быть программистом.


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

Пахнет теорией заговора.


И да, программирование не сложнее, чем умение приготовить вкусный обед «из того, что осталось в холодильнике». И там и там нужно держаь в голове множество абстрактных сущностей и их связей…

О да… как же много сущностей в холодильнике и помидоры, и курица, и даже молоко, а какие связи… огого. Вы преувеличиваете сложность готовки. Есть просто одна сущность — отношение "сочетаемости" продуктов. Известно, что курица и рис сочетаются хорошо, а соленые огурцы и молоко — нет.


Плюс нужно иметь опыт — набор картинок и чисел, чтобы представлять, что вот такой вот кусок нужно жарить примерно вот столько и на таком огне и когда он такого цвета — он готов. Плюс механический навык нарезки разделывания.

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

Если человеку, чтобы стать нормальным программистом нужно учиться 20 лет по индивидуальной программе, то с практической точки зрения можно считать, что этому человеку не дано быть программистом.
А это уже ему решать. Но фишка тут в том, что если один человек программирует по 5 часов в день (пусть даже на каком-нибудь калькуляторе с его ужасным диалектом Бейсика), а другого загоняют из-под палки раз в неделю в лабу, где она он два часа что-то такое делает только пока на него преподаваель смотрит, то вот у вас и получится, что один за три месяца доберётся до коммерческого программирования, а другой угробит пять лет с худшими результами.

Но это буде не поому что первому «программирование даётся», а второму «не даётся». А потому что первый реально потратит больше усилий.

Плюс нужно иметь опыт — набор картинок и чисел, чтобы представлять, что вот такой вот кусок нужно жарить примерно вот столько и на таком огне и когда он такого цвета — он готов. Плюс механический навык нарезки разделывания.
Ну дык и для программирования нужно плюс-минус всё то же самое. Нужно понимать что и как сочетается грубо — и можно уже что-то такое «ваять».
Нет. Не нужно. Количество усилий на обучение нужно примерно одинаковое у всех. Где-то от 500 до 1000 часов.

Ну, это не так совершенно. Во-первых важен возраст, во-вторых — что называется, "талант", заключающийся в комбе удачи и банальной генетики…
Ну для примера:
https://www.youtube.com/watch?v=2l-3VhZ2Yik
Подавляющее большинство людей НИКОГДА не смогут научиться играть так, как она умеет в 6 (т.е. она училась, фактически, года три, а то и меньше).


Банально неудачная конфигурация сухожилий вам может усложнить обучение на порядок. А если вам под 30 — то не только обучение, но еще и технику игры, т.к. в этом возрасте растянуть сухожилия уже, увы, невозможно. Только на операцию ложиться.

т.е. она училась, фактически, года три
Важно не сколько лет ушло на обучение, а сколько часов. За три года может и 300 часов реального обучения быть и 5000 часов (большинство столько и за всю жизнь на обучение музыке не потратят).

Простите, но ваши рассуждения об обществе и образовании, напоминают то, о чем говорит автор.


Чтобы подчеркнуть своё утверждение, затем вы демонстрируете врага. «Не позволяйте никому говорить, что это неправда» — простой, но эффективный способ внушить аудитории образ мышления «вы против враждебного мира». Неплохо также использовать словечко «гейткиперы», ведь рассуждения о привилегиях и людях, охраняющих их от аудитории, привлекательны. Они не дают вам подняться, они несправедливы, они лгут о трудностях, они заставляют вас заниматься сложной, скучной работой.

По поводу того могут ли люди быть лишены чего-то, тут все просто. Мир несправедлив и это объективная реальность. А лишение определяется не идеалистическим наличием или отсутствием думающего органа, а совокупностью всех факторов. И если винить кого-то во всем этом, то в первую очередь надо начинать с себя: "Что сделал я, чтобы исправить сложившуюся ситуацию?".

И если винить кого-то во всем этом, то в первую очередь надо начинать с себя: «Что сделал я, чтобы исправить сложившуюся ситуацию?».
А может этот совет следует направить тем, кто ищет для себя оправданий в том, что они чего-то «ниасилили»?

Программирование — это что-то, что, как и многие другие вещи в нашей жизни, требует от 500 до 1000 часов для освоения. Кто-то может это пройти за пару месяцев (занимаясь по 10 часов в день), кому-то и 10 лет мало (так как из пинками и пряниками удаётся заставить что-то делать хорошо, если пару часов в неделю).

Так сложно это или просто?

Да в целом я согласен с автором статьи. И да действительно, многим дается программирование намного проще. В школе я думал что у меня неплохо получается, пока не увидел людей, который в разы быстрее все схватывают, с условно равных стартовых позиций, не зависящих от опыта. Так что да, для всех по разному.


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

Хотя второй вариант обычно не встречает одобрения у общества, так что мне не очень понятно как кто-то чему-то может насильно отучить.
Я эту схему уже где-то описывал, но могу ещё раз.

Смотрите: у нас, в большинстве стран, обязательное образование. Во многих обязательно среднее, но уж начальное — обязательно в большинстве стран.

У учителя — человек 30 в классе. Ну пусть 15 (но и это редкость). И учитель обязан учить всех.

Но часть учеников — «раздолбаи», а часть — «ботаники». Кому будет уделять внимание учитель? Правильно: отстающим. Их он будет «подтянивать», «уделять им внимание» и так далее. Потому как иначе его будут сильно «дрючить». А «ботаники»? А они — как нибудь.

Соответственно маленького человечка вот с самого первого класса приучают: хочешь получить внимание учителя — ничего не учи. И будет тебе внимание. А детям, в современном мире, внимания всегда не хватает.

Что это как не целенаправленное отшибание желания учиться?

Мне действительно не понятно зачем искать какие-то злые умыслы, и искать обоснования в том что иначе якобы общество чего-то не выдержит.
А нет никаких теорий заговора и «тайных сговоров». В том-то и дело, в том-то и ужас всего происходящего, что всё делается «из самых лучших побуждений».

Удивительно вот что: все уже, вроде как, признали, что уравниловка ни к чему хорошему не приводит. Что «всеобщая занятость» фактически эквивалентна «всеобщей халтуре».

Но вот в области образования — мы не только продолжаем пропогандировать этот подход — мы его усугубляем. Греф вообще предлагает физматшколы позакрывать: «детей надо развивать равномерно «на 360 градусов», чтобы те были непременно счастливыми»! Это всё о том же: тех кто высовывается — притормозим, тех кто не тянет — будем «тянуть за уши».

Ну что за бред?..

То что бред согласен. С тем что дети или учителя что-то обязаны — не согласен. В плане установки может и есть такое положение, которое связывает эту систему через денежные отношения и социум, но моральных обязательств в этом никаких нет. Так что каждый без проблем может делать свой выбор и не мучаться угрызениями совести.


Мне кстати не кажется на самом деле, что такая система результат светлых, но допустим наивных побуждений. По моему мнению все так сложилось, в силу того что это просто удобно, и позволяет снять ответственность. Например с родителей, за образование своих детей. С учителей за какие-то там показатели, выдуманные чиновниками. А с чиновников, перед неким консенсусом, условно называемым современным обществом.


Совсем другой вопрос, зачем и как идти против этого течения. Но вот роптать на него мне представляется бессмысленным, это скорее наоборот вклад в текущее движение.

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

5-10% безработных вполне достаточно для того, чтобы оставшиеся работали на совесть, зная что они могут оказаться «у помоечки». А вот 100% занятовсть в СССР приводила к тому, что «халтуру гнало» где-то 50%, а может и больше.

То же с обучением: подавляющее большинство людей могут обучиться массе разных вещей (не всему, но очень многому, программированию в том числе), но как только вы гарантируете аттестат — так происходит магия и у 70% образуются многичесленные «нарушения психики», которые «не позволяют им» выучить математику и/или программирование.

Мотивация.
А вот 100% занятовсть в СССР приводила к тому, что «халтуру гнало» где-то 50%, а может и больше.

А мои источники утверждают, что причиной халтуры было множество причин и 100% занятость — не самая важная из них.

А мои источники утверждают, что причиной халтуры было множество причин и 100% занятость — не самая важная из них.
Почти все причины — вариации той же темы. 100% занятость, 100% гарантия, что смазки, выпущенные какими-нибудь «заводом консистентных смазок» обязательно возьмут (так как другиз таких заводов нету) и так далее.

Всё — вариации на одну и ту же тему: если «халтура» не приводит к проблемам вот лично для «халтурщика» — то нет стимула делать хорошо.

Кто и как страдает, при этом, помимо «халтурщика» — неважно.

Вы проигнорировали советские KPI.
У индусов — есть и безработица и бездомные, но ихние KPI ведут к написанию больших объёмов халтурного кода.
А ещё, 100% занятость не мешала советским ракетам Королёва успешно летать, а нынешние безработные и бомжи — не мешают российским ракетам Рогозина падать.
Вы уцепились за какую-то мифическую «гарантию аттестата», которая якобы на все влияет. Хотя что такое аттестат, я знал в течении тех коротких минут, когда его выдавали (ну и в вузе он вроде нужен был тоже чтобы показать. Или не нужен? Даже не помню).

Для детей того возраста большее влияние оказывали другие причины. Остаться на второй год, например, было позорно даже для совсем уж откровенных двоешников.
Остаться на второй год, например, было позорно даже для совсем уж откровенных двоешников.
И это — прекрасно работало пока второгодников было достаточно много для того, чтобы средний школьник мог лично с ними столкнуться.

А потом… успеваемость повысили.
UFO just landed and posted this here
А нет никаких теорий заговора и «тайных сговоров». В том-то и дело, в том-то и ужас всего происходящего, что всё делается «из самых лучших побуждений».


Ну да, миром правит не Тайная Ложа, а явная лажа (С)
> А до того — про умение читать и писать.

Ну к слову навык чтения развивается довольно рано, еще до школьного возраста. Дальше он лишь тренируется, и то с переменным успехом.
А вот уже с навыком писать все гораздо сложнее. Не все могут нормально писать как в физическом смысле (каллиграфия, 10-пальцевый метод), так и в смысле грамотности
Не все могут нормально писать как в физическом смысле (каллиграфия, 10-пальцевый метод), так и в смысле грамотности
Та же самая история, что с программированием. Каллиграфии ещё век назад учили всех, кто обучался грамоте.

Сейчас — да, решили, что это не всем нужно. Но это другое, чем не всем доступно.
Это значит, что этот навык не вырабатывается спонтанно. Я написал кучу буков, но почерк у меня ужасный. Тем не менее, как я научился читать, я даже не помню этого момента, настолько маленький я был.
Почему же такая сильная разница, если вы говорите, что разницы нет?
Тем не менее, как я научился читать, я даже не помню этого момента, настолько маленький я был.
Вы-то не помните, но ваши родители — помнят.

Это значит, что этот навык не вырабатывается спонтанно.
Так и умение читать-писать не вырабатывается тоже! Все эти рассказы про «выучившихся читать по вывескам и газетам из мусорки» — существуют только в художественной литературе.

А на практике — учить читать-писать приходится детей довольно долго.

Почему же такая сильная разница, если вы говорите, что разницы нет?
Ну некоторая разница есть, конечно. Это, всё-таки разные умения.

Разные вещи требуют разную базу.

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

Обучение письму требует уже мелкой моторики — потому его так рано не освоить.

А программирование — требует умения мыслить логически и немного математики. Если этого нет — то да, у вас возникнут проблемы.

Само по себе программирование — несложно. Но оно опирается на фундамент, которого у многих в современном мире нет (хотя юридически они получили аттестат о том, что они всё это умеют).
> А на практике — учить читать-писать приходится детей довольно долго.

Долго — это сколько? 6 лет? Я именно про читать

> Ну некоторая разница есть, конечно. Это, всё-таки разные умения.

Ага, 6 лет или 30 лет. Совсем небольшая разница
Долго — это сколько? 6 лет? Я именно про читать.
От пары лет до пяти. Довольно большой разброс, но где-то так.

Ага, 6 лет или 30 лет. Совсем небольшая разница.
Это кто 30 лет программированию обучался? Примеры можно?

Именно программированию, а не базовым вещам, которыим вас должны были, теоретически, обучить в школе.

Да, программирование требует умения логически мыслить и составлять абстракции. Примерно то, чему учат на уроках математики.

С этим у вас проблемы — и с программированием будут «затыки».

Но если логику вы понимаете, то дальше на уже само программирование требуется примерно столько же времени, сколько на чтение и/или письмо.
> Это кто 30 лет программированию обучался?

Ну я вообще-то имел в виду каллиграфию. За 30 лет до сих пор не научился
А программировать я досихпор учусь
Ну я вообще-то имел в виду каллиграфию. За 30 лет до сих пор не научился
Серьёзно? Сколько курсов прошли, у кого учились?

Или вы считаете, что можно каллиграфии как-то иначе?

Не получится. Каллиграфия — это отдельный навык. Обучиться ему, в общем, не слишком сложно и не слишком долго, но да, ему нужно отдельно учиться.

Правильно держать перо и кисть, правильно «вести» и так далее.
Каллиграфия — это преимущественно механический навык. Просто водишь ручкой по бумаге и все само получается. В это время даже думать можно о чем-то другом. И то от банального «вождения ручкой» этот навык у меня почемуто за всю жизнь не выработался. А вы хотите любому остолопу дать учебник по математике, запереть в кабинете и ждать, когда оттуда выйдет эйнштейн. Ну-ну
Просто водишь ручкой по бумаге и все само получается.
Вы уж определитесь: «всё само получается» или «вы за 30 лет не осилили». А то у вас тут какое-то противоречие.

В это время даже думать можно о чем-то другом.
Во время обучения — нельзя.

И то от банального «вождения ручкой» этот навык у меня почемуто за всю жизнь не выработался.
Вот именно потому и не выработался, что вы не пытались его выработать.

Я ведь не зря спросил про то, на какие курсы вы ходили и у кого обучались. Это ни разу не был сарказм.

Да, такие курсы существуют и да, они отлично работают. Но нет, оно «само по себе» от возждения ручкой по бумаге не возникает. Что вы сами же прекрасно доказали.

А вы хотите любому остолопу дать учебник по математике, запереть в кабинете и ждать, когда оттуда выйдет эйнштейн. Ну-ну
Ну как вам сказать, чтобы не обидеть. Если этот остолоп будет применять учебник по математике так же, как вы применяете курсы каллиграфии (то есть никак) — результат будет тот же.
> Я ведь не зря спросил про то, на какие курсы вы ходили и у кого обучались.

А вы на какие ходили?
О том, что существуют какие-то там курсы каллиграфии, я только сегодня узнал
А вы на какие ходили?
Я сам — ни на какие. И каллиграфией не владею. Моей племаннице это было интересно, она ходила. Могу спросить куда, если интересно. Ну или погуглите просто.

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

Как-то странно, не находите?
Да, потомучто все остальные как-то умудрились обучиться без них (либо все от меня что-то скрывают)
Кто эти «все» и точно ли они умеют хотя бы отличать рустику от нового унциала (не говоря уже о том, чтобы написать что-нибудь в соответствующем стиле)?
Чего? Вообще, под каллиграфией я имел в виду не искусство каллиграфии, а способность выразить словами на бумаге хоть что-то читаемое посторонними людьми. Я например, не имею даже такого навыка
То есть вы имели в виду не каллиграфию, а чистописание? Дык этому тоже учат:


И да — это другой навык, прямого отношения к каллиграфии не имеет.
Так и умение читать-писать не вырабатывается тоже! Все эти рассказы про «выучившихся читать по вывескам и газетам из мусорки» — существуют только в художественной литературе.


Это не совсем так как Вы говорите. Я знаю например ребенка который сам худо бедно научился различать буквы спрашивая у родителей а что это, а что то? А потом и самостоятельно складывать их в слоги и слова. Конечно не без ошибок и это было не литературное чтение в 5 лет. но тем не менее он был в состоянии самостоятельно разобрать вывеску. Все зависит от мотивации… Просто у кого-то она есть а у кого-то нет.

Или как с вождением автомобиля. Всем доступно, но лучше бы некоторым было недоступно. В этом исследовании (Луизиана, данные за 6 лет) установили, что 34% аварий происходит с участием 5% водителей.

Т.е. вы утверждаете, что проблема дисграфии решена? Можно вычёркивать такой диагноз, он лечится обычным обучением?

Можно вычёркивать такой диагноз, он лечится обычным обучением?
Расшифруйте эту фразу, пожалуйста. Ибо я вас не понял.

Да, дисграфия вполне «лечится», в большинстве случаев, обычным обучением. И ставят такой диагноз, в большинстве случаев, чтобы «ребёнок был счастливым» (это ты не писать не умеешь, это у тебя дисграфия, не грусти).

Означает ли это, что все эти «типа расстройства» — не проблема в 100% случаев? Наверное нет. Какой-то процент людей (1% или 2%), скорее всего, не научатся нормально писать никогда — но их куда меньше, чем людей с соотвествующим диагнозом.

Вы сказали, что ничто не может помешать научиться писать. Я вам пишу — вот есть дисграфия. Диагноз такой. Вы даже о нём знаете что-то. Но похоже — по слухам. А я на практике вижу, что лечится он с большим трудом до уровня "более-менее разборчиво". А до уровня "каллиграфический почерк" и здоровому человеку дойти не всегда получается.


Это знаете, недавно читал статейку — по опросам 10% населения нашей необъятной считают аутизм — проблемой воспитания… Вы видимо из них?

А до уровня «каллиграфический почерк» и здоровому человеку дойти не всегда получается.
А как вы дойдёте до этого уровня, если соотвествующих уроков в принципе нету и этому никто не учит?

А я на практике вижу, что лечится он с большим трудом до уровня «более-менее разборчиво».
Ага. Вы ещё скажите, что «врачебный почерк» получается таким, потому что у врачей особое строение мозга.

Всё дело в мотивации. Не на 100%, но где-то на 90%, а то и на 99%.

В частности проблемы дисграфии, на практике, в основном в том, что соотвествующие дети не видят проблемы в том, что они рисуют каракули. А не в том, что они не могут научиться писать красиво, заполнив несколько прописей палочками и крючочками.

Я даже не знаю, как с вами спорить — доказательство вашей неправоты это такая тонкая вещь, что писать надо много, а лень. У СССР было много, очень много проблем, помимо 100% плана, занятости и прочего. Гарантий приёмки, кстати не было — для приёмки необходимо было соответствие параметров минимальной планке. Не везде, но за несоответствие — можно было сильно пролететь.
С каллиграфией — даже если бы учили, за вменяемый срок обучиться многие бы не смогли. Потому что для этого надо сильно уменьшать остальную письменную деятельность, а как это сделаешь?


А врачебный почерк получается элементарно — они же латынь учат. И писать на латыни — тоже учат. А ещё они во время обучения много пишут и не всегда за ровным столом. Вот сумма этих условий и сказывается на почерке. А обратно разогнуть — надо время и усилия. Остановить письменную деятельность, упорядочить имеющийся навык.


А про проблемы дисграфии — вы уверены, что у вас достаточный опыт, чтобы говорить про "в основном"? Он у вас вообще есть?

А про проблемы дисграфии — вы уверены, что у вас достаточный опыт, чтобы говорить про «в основном»? Он у вас вообще есть?
Личного опыта нет, но есть статистика.

Гланьте хотя бы на документы, заполненные людьми лет 100 назад (когда каллиграфии учили всех) и сегодня. Небо и земля.

Люди за 100 лет, внезапно, стали другим видом?
UFO just landed and posted this here
Я могу красиво выводить каждую букву, но займёт это в разы больше времени, чем если писать как обычно.
Когда люди писали пером и чернилами — торопиться было некуда, нужно было ждать пока чернила просохнут. А сейчас с шариковыми и гелевыми ручками возможно писать быстро, и практичнее пользоваться этой возможностью, чем медленно выводить каждую букву.

За 100 лет навык письма стал из элитарного (10-30% населения, не помню точну цифру) массовым (90-95%).

любая домохозяйка умеет

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


ЗЫ и тем не менее — склонность к тому или иному труду — это реально есть как собственное (черты характера, способности к той или иной деятельности), так и наносное (допустим в обществе не принято общее образование — и начинают считать, что часть населения к нему неспособна совсем… с другой стороны — в обществе с обязательным общим образованием — тоже не всё гладко получается).

допустим в обществе не принято общее образование — и начинают считать, что часть населения к нему неспособна совсем… с другой стороны — в обществе с обязательным общим образованием — тоже не всё гладко получается
Про это я тоже писал. Это всё частные случаи Закон Гудхарта.

После того, как общее образование становится обязательным — процент людей, реально владеющих соответствующими знаниями, внезапно, снижается. Потому что где-то 70%-90% людей восьмилетку (и даже первые курсы ВУЗов) могут освоить — кто-то «легко», кто-то «со скрипом», но могут.

А вот когда вы делаете это обязательным — половина на обучение просто «забивает» в небезосновательной надежде на то, что «ну тройку-то нарисуют как-нибудь».

P.S. В борьбе с этим явлением работодатели начинают требовать «вышку», что порождает эскалацию и на поток ставится уже выпуск «корочек». Интересно что дальше будет: будут требовать PhD, чтобы формочки клепать?
А вот когда вы делаете это обязательным — половина на обучение просто «забивает» в небезосновательной надежде на то, что «ну тройку-то нарисуют как-нибудь».

Вы бы на нашу сломанную систему не смотрели — бывают более адекватные системы. А если и ориентироваться на нашу, то годов до 2000х — там тройку "как-нибудь" не "рисовали". Не тянешь — сиди ещё год. И были истории с людьми отсиживавшими до 3х лишних лет в школе. На счёт большего объёма — не слышал.

А если и ориентироваться на нашу, то годов до 2000х — там тройку «как-нибудь» не «рисовали».
Рисовали. Примерно с годов с 60х-70х. Точно сказать сложно, но точно не «до 2000х».

Не тянешь — сиди ещё год. И были истории с людьми отсиживавшими до 3х лишних лет в школе.
Это были единичные уникумы. И далеко не в каждой школе. И если такое случалось — директору доставалось «по самое не балуйся».
UFO just landed and posted this here
Нет таких людей. Когда-то то же самое говорили про банальные квадратные уравнения. А до того — про умение читать и писать.

Ну т.е. все люди умеют писать музыку, просто далеко не всем эти шедевры понравятся?
Ну т.е. все люди умеют писать музыку, просто далеко не всем эти шедевры понравятся?
Примерно так, да.

Но так ведь в любой отрасли почти.
Нет таких людей.


Я даже не знаю, считать вашу исступлённую веру положительным или отрицательным качеством. С одной стороны это очевидное порождение Успешного Успеха, где все остальные люди вокруг вас это «ленивые алкаши». С другой стороны — это же какая непоколебимая уверенность в силе любого человеческого разума.

Жаль, конечно, что в любом случае ваше утверждение — это совершенно недоказуемое религиозное убеждение.

Зашёл написать что-то похожее.
Да, программировать непросто, между хелловорлд и работаюшим приложением — пропасть. Но практически все специальности требуют годов обучения. Нормально крутить гипсокартон научиться можно примерно за то же время, что и стать миддлом.
Эххх. Ровно об этом свой первый пост на днях написал, но НЛО завернуло) Ну, может в другой раз, когда-нибудь, да вкурю, наверное, что не так было.

По сути же коммента если: лично я согласен с Вами. Правда в частностях, возможно, не всё так гладко (может и нет, не знаю). Под частностью я подразумеваю и «что считать просто и что считать сложно».

Например, я считаю, что научить программировать условные «средне распространённый сайт» — таки достаточно сложная вещь, — можно любого человека не обременённого давлением внешних факторов и подходящего под пусть и довольное широкое, но всё же определение «здоровый человек». Причём это задача вполне себе не «веков, эонов и эпох», и не «кому-то 5 лет, кому-то 20 лет", а «всего лишь» подачи материала, ±, годик времени разницы (на талант, гены и всё такое) и, ± годик-два боевой практики.

А вот если смотреть на уровни выше среднего, тут, однозначно, ни разу не каждый сможет, совсем ни разу.

П.С.
Анекдот очень понравился, утащил, спасибо!
Я человек простой, мне бы пару примеров, что автор считает сложным в программировании

Понятие сложности зависит от опыта спрашивающего. Применительно к стандартной классификации джун / мидл / сеньор будут три совершенно разных понятия сложности. Например, для джуна или мидла в C++ я могу сходу порекомендовать «Modern C++ Design: Generic Programming and Design Patterns Applied» Джун скорее всего в ней вообще ничего не поймет, а мидл будет долго пытаться понять, как все это работает. Это если мы говорим непосредственно о коде. Если же подняться повыше, то сразу всплывает тема дизайна, и вряд ли нужно объяснять, почему доверять дизайн джуну или мидлу не самая хорошая идея.
Ну например программирование многопоточных систем (с учётом memory model для target cpu), в общем оптимизации, когда надо держать в голове все таргет платформы и их особенности, программирование с синхронизацией cpu/gpu, программирование графики (которое очень тесно переплетено с математикой и физикой), программирование физики (ага, берешь формулки и подставляешь, а потом удивляешься почему один кадр просчитывается минуту), да и много чего еще сложно. В общем случае имхо написать что то как попало часто не сложно, а вот написать это же, но хорошо, что бы оно работало быстро, учитывало особенности таргет систем, было расширяемым и понятным другим, вот это уже обычно сложно.

Вот пример типичных задач абстрактного мобильного приложения https://habr.com/ru/post/549642/ описанные проблемы и способы их решения это сложно.

Увидев Вашу точку зрения, я понял мировоззрение некоторых программистов которые работают на ставке и не желают учиться новым технологиям, считая, что все можно «загуглить».

Такие виды программистов не ощущают собственной ответственности за сделанную работу — ЗП и так придет, зачем напрягать мозг.

Зачем вникать в предметную область и быть хорошим спецом, можно сделать буквально то, что мне сказал начальник, что не всегда является правильным путем, а чаще — неправильным.
Такие люди большую часть времени не вникают в собственную работу, они чаще исправляют баги, а еще чаще пытаются вспомнить зачем вообще они ввели какую-то функцию. Стоит ли говорить про отсутствие тестов и адекватных коммитов?

Программирование это совершенно не про написание кода, а про правильную архитектуру всех составляющих. Написание кода — это меньший процент работы программиста, по крайней мере в моем идеальном мире, к сожалению он не такой и в нем живут такие как Вы. Простите.
Я человек простой, мне бы пару примеров, что автор считает сложным в программировании.

Ну например можно взять отсюда: leetcode.com/problemset/all десяток hard задачек, там, конечно, градация размыта и попадаются hard задачки, которые решаются сильно легче некоторых medium, особенно если нечто подобное решал в работе но из десятка сложных можно выбрать пару таких, на которых придется поломать мозг не один день.

Конечно можно возразить, что это больше синтетические примеры, с которыми обычно не сталкиваешься в работе, однако и в работе возникают задачи ставящие в ступор, и потом целыми днями, чтоб ты не делал, в голове как заноза сидит мысль: какжеж эту штуку правильнее сделать-то?

Напишите lock free map, формально верифицируйте его, подберите для некоторого набора данных более оптимальный хеш, обоснуйте свои решения в MD файле.

UFO just landed and posted this here
программирование — это сложно потому что существует слишком много всего что нужно знать программисту (и все равно невозможно), одни названия можно перечислять минут пять (json, html, sql, explain plan, index, rest api, ad, jpa, nosql, ip, socket, k8s, i18n, cpu, js, spring data, spring security, hashmap, quick sort, index, bfs, jpg, O(n), driver, ubuntu, utf, exceptions, race condition, vpn, sqli, git, jira, jenkins, overflow, sha, ssh, regex, design patters и тд и тп, о и это без софт скиллов которые зачастую приоритетны
конечно можно начинать программировать не зная особо ничего, просто по учебнику java. но вы будете слабым программистом (стажер), которому нужно будет вложить много времени и сил чтобы стать серьезным программистом
Не слабо Вас минусанули. В упор не понимаю за что. Этот Ваш перевод подтолкнул меня к регистрации и написанию двух статей (пока только первую отправил на модерацию новичка). Планировал в них попробовать оспорить утверждение, что «программирование, это сложно». Вот только смотрю сейчас на кол-во минусов у Вас и «маленько страшно делается» :)

Ну, да ладно. Ке сера — сера, вот эвер вил би — вил би :)

Минусов бояться — на хабр не писать.

Это факт. Но я скорее про моё безличностное и безоценочное недоумение сему факту.

П.С.
НЛО статье сказало безмолвное коммунистическое нет :) Может где-то словеса не те, или ещё чего не так. Будем сидеть и складывать.

Попробуйте арифметический энкодер написать для видеокодека по спеке. И чтобы работал быстро. Это для разминки.

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

Статья чёткая, но один простой момент не упоминается — МАТЕМАТИКА.


Я для себя вывод сделал в универе, а потом его транслировал всем друзьям и знакомым, кто собирался(подумывал) идти на курсы программирования или еще тогда часто встречалось в рекламе: программирование баз данных. Всем им я говорил одно и тоже(слитно?), точнее спрашивал: "Ты математику помнишь?". Причем я не наводил жути, а корректно в спокойной беседе подводил мысль к тому, что настоящий прогер — это человек не просто владеющий хорошим логическим мышлением, не просто человек решающий абстрактные или даже эфимерные задачи(ты по жизни смекалистый — всё получится), но это человек обладающий ХОРОШИМ МАТЕМАТИЧЕСКИМ БАГАЖОМ. И это даже не уровень школьной программы, а гораздо выше. Ибо создавать виртуальные миры, проектировать или поддерживать крупные базы данных(привет реклама курсов), требует знаний диф. уров., интегрального исчисления и тд и тп, не говоря уже о теории графов(её нам читали на послед курсе, и показалась мне сложной — это физ.фак, computer since, начало нулевых), говорил я.


В итоге в беседе я давал понять, что если ты действительно в школе хорошо ориентировался в математике, тогда есть смысл попробовать пройти обучение; давая понять, что рано или поздно вся эта высшая математика будет основным инструментом выраженным на прикладном уровне в твоем умении кодить. А иначе, выше уровня html, css или простеньких баз данных ты не поднимишься, и то хз, если осилишь.


(У самого уровень матеши слабый, поэтому ушёл инженерить в сферу телекоммуникаций, и даже там понимал, что матеша решает, когда речь идет о глубокой настройке протоколов айпи/tcp и выше и тп).

Ибо создавать виртуальные миры, проектировать или поддерживать крупные базы данных(привет реклама курсов), требует знаний диф. уров., интегрального исчисления и тд и тп, не говоря уже о теории графов(её нам читали на послед курсе, и показалась мне сложной — это физ.фак, computer since, начало нулевых), говорил я.

Но это же не правда.

Что сложного в программировании? Просто тычешь в клавиатуру и смотришь в монитор. Сделать самолёт? Легко — просто выплавляешь металл, делаешь детали и собираешь их вместе. Термоядерный синтез? Легкотня — просто берешь дейтерий и тритий и делаешь гелий а на выходе чистая энергия!

«All the best games are easy to learn and difficult to master.» (Nolan Bushnell)
Если я могу смешать три ингредиента и сделать омлет, то это не делает меня шеф-поваром. Я могу готовить несколько блюд, но никогда не скажу, что готовка — это просто. Приготовление пищи — это сложная задача, требующая терпения и внимания к деталям, много знаний и опыта.

Шеф-поваром вы не станете, но поваром — без проблем. Готовить пищу, это легко, достаточно прочитать рецепт, взять именно те ингредиенты и в том количестве, и сделать всё так же, как написано в рецепте. В подавляющем большинстве случаев (если рецепт был верным, вы сделали всё как в рецепте, а ваша духовка — не убитый хлам, в котором температуру точно выставить нельзя, а слева греет в два раза сильнее, чем справа) у вас всё получится. Приготовление пищи — это просто.
Так же и в программировании. Прочтите и сделайте по рецепту. Вы не станете гуру, не станете сеньором, у вас не будет глубокого понимания архитектуры, но поставленную задачу вы вполне себе решите.

Если человек купив в магазине фарша сегодня делает котлетки, завтра фрикадельки, потом перцы фарширует, лазанью, люляшки — это программист. Если всю неделю у него на ужин макароны по флотски — это кодер. Если добавляет сначала кетчут, потом мазик, потом соевый соус — формошлеп. Если же на следующий раз он берет в магазине уже не фарш, а отдельно несколько видов мяса и мелет сам, то это уже очень продвинутый программист.

Это все вопрос практики (и совсем немного теории). Чем больше готовишь, тем лучше понимаешь как продукты взаимодействуют друг с другом.
Ни фига не так! Уже обычный кодер должен уметь взять несколько видов мяса, и догадаться как их ему правильно приготовить.
А что что вы описали:
Если человек купив в магазине фарша сегодня делает котлетки, завтра фрикадельки, потом перцы фарширует, лазанью, люляшки — это программист. Если всю неделю у него на ужин макароны по флотски — это кодер. Если добавляет сначала кетчут, потом мазик, потом соевый соус — формошлеп.

это студент регулярно списывающий у ботана.

Ну вот, а я так люблю макароны по флотски :( Придется теперь выкинуть ингредиенты под тесто для макарон, спрятать мясорубку и пойти купить фарша под котлетки/перцы/что_там_еще.

UFO just landed and posted this here

В таком случае, скорее всего, вы и не будете готовить, а просто подключите библиотеку AllBusinessTaskCoresInTheWorld.JS, шлёп-шлёп и в продакшен возьмёте еду из магазина, положите на свою тарелку и разогреете. Другой вопрос, что если задачу вам надо решать постоянно с некоторыми отклонениями, а решать вы её продолжите навешиванием костылей на то же самое, то рано или поздно столкнётесь с диабетом и ожирением тем, что проще будет уже всё переписать с нуля.

Нет, ошибаетесь!
Это не «возьмёте еду из магазина, положите на свою тарелку и разогреете» — это про юзеров, а не программеров.
Для программеров использование библиотек и фреймворков — это купите в магазине готовую заготовку для пиццы, готовую колбасу и готовый овощной микс, затем на заготовку пиццы положите нарезанную колбасу и овощной микс, и всё это запечёте.
заготовку для пиццы

Это такая хрень, из которой пицца не получается от слова совсем? Неужели так сложно взять простое/сдобное дрожжевое тесто и раскатать кругляшь. Если не умеешь правильно раскатывать (я умею плохо) — можно "надыркать" (например вилкой) — тогда пузыриться не будет. Задача решается за ~1-2 минуты на основу.

Вот я склоняюсь к стилю готовки «неделя макарон по-флотски», а когда мне предлагают из тех же продуктов изготовить что-то другое под предлогом полезности, я указываю что в моих парочке регулярных блюд и так содержится тот список ингредиентов из которых собирались приготовить что-то другое.

ИМНО готовка не очень хороший пример для сравнения всех нюансов, т.к. целью является почти всегда удовольствие, а рациональность далеко не на первом месте.
UFO just landed and posted this here
Мой фирменный рецепт: Бутерброд со сгущенкой и шпротами!
Плюсы: Когда сделал этот рецепт впервые, все вкусняшки были моими. Т.к. у остальных пропал аппетит.
Минусы: Для меня минусов нет!
Но все эти подходы имеют свои ограничения. Например необходимость наличия базовых рецептов хоть как-то подходящих под вашу ситуацию.

А особо прошаренные гуру забивают и на эти условности и придумывают фреймворки/методологии типа су-вид и молекулярной кухни.

Если брать эту аналогию, то на мой взгляд программисты скорее занимаются не готовкой еды, а написанием рецептов.
Любая домохозяйка занимается тем же самым, открывая холодильник и прикидывая какие продукты ещё могут полежать, а какие завтра придётся выкинуть…
UFO just landed and posted this here
Но дайте «любой домохозяйке» набор из вообще неизвестных ей продуктов и/или попросите «на бумаге» изобрести рецепт блюда с конкрентыми свойствами и совсем не факт что вам понравится результат.

Можно подумать, у хорошего повара в этом случае результат будет заметно лучше :) Если он конкретно эти продукты не изучал и не знает их особенности приготовления, он будет делать то же самое, что и домохозяйка, и программист, который столкнулся с неизвестной задачей — будет гуглить.
UFO just landed and posted this here
Ну это должен быть не хороший, а сильно «звёздный» повар, из элиты профессии. На что способны обычные хорошие повара, я знаю не по-наслышке, у меня это популярная профессия в семье.

В вашей аналогии настоящий программист это тот, кто составил такой рецепт, а не тот кто просто прочитал и сделал как написано. Второй это просто оператор / кодировщик.

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

Доктора — это те, кто советует больным людям кушать разные лекарства? Не важно, какие и что потом с человеком будет. Все они настоящие доктора, не как их пренебрежительно называют: шарлатаны, коновалы, гомеопаты, знахари...

Доктора — это те, кто советует больным людям кушать разные лекарства?

Почти. Доктора, это те, которые работают врачами. И те, которые выписывают фуфломицины, и даже те, у которых умирают пациенты. Есть плохие доктора, есть хорошие. Есть доктора, имеющие простую специализацию, есть имеющие сложную. Но тем не менее, они все доктора.
В подавляющем большинстве случаев… у вас всё получится.
Ха-ха-ха! Ха :(
ага только если на все блюда есть рецепты, то на 99% реальных задач в программировании — нет
как-то давно друг уехал в штаты и работает программистом. Так вот из его уст я услышал,
что там есть такая поговорка, что-то вроде :«если ничего не умеешь — иди в программисты» :)
Возможно это такая шутка, но все же.
Согласен с ним. В том смысле, что делать формочки на Реакте не требует особого интеллекта и подготовки, но оплачивается в основном лучше работы строителя или электрика, которые без сертификата не имеют права даже лампочку вкрутить (утрирую немного).
т.е. в этой шутке не столько прикол над программированием, сколько тот факт, что так легче найти работу :)
если при одинаковых скилах за программирование платят больше, и у тебя ещё нет скилов — почему бы не «пойтивайти»?

Я думаю, что конструктивный посыл шутки именно таков.
UFO just landed and posted this here

Может быть, я ориентируюсь на местные израильские реалии. Но думаю точно не сложнее чем получить лицензию сантехника или электрика.

UFO just landed and posted this here
Возможно у тебя confirmation bias(или у меня). BS в related field требуют когда совсем больше смотреть не на что. Обычно говорят BS or equivalent experience.

Сейчас специально поискал на Линкедин Junior Frontend вакансии. Образование просят далеко не везде, даже в США и особенно в Коммифорнии.
Сантехники или электрики учатся меньше по времени, но я имел в виду то что им нужно проходить сертификацию и получать лицензии на каждый вид работ.
UFO just landed and posted this here
А вы пооткликайтесь и обнаружите много интересного.
С каких пор Реакт со всеми Redux/Mobx/GraphQL, архитектурой и т.п. стал простым делом?
А с каких пор для формочек на Реакте стали необходимы Redux/Mobx/GraphQL?
А как иначе сложный фронтенд будет работать? Если это верстка кастомного дизайна для передачи фронтендеру это уже не формочки. А если это не кастомные простые формочки — зачем для них Реакт?
Ты занимаешься подменой понятий. Не для любого фронтенда нужно городить АРХИТЕКТУРУ с абстракциями и шаблонами.
Ну как юзкейс, например, создание нового UI элемента в приложении где уже используется Реакт, или нужно поднять бложик на Next.js.
А что там с Next? Просто до него я еще не дошел. Lумал, что это просто способ рендерить стандартное реактовское приложение на сервере для снижения нагрузки на клиента и SEO.

Ага — АРХИТЕКТУРУ уже для вас заботливо сделали разработчики самого React и Next ))))

UFO just landed and posted this here
Именно по этому теперь в мире столько говнокода, что этот технический долг уже никогда не победить.
Не согласен. Программирование — это широкий спектр задач. И то, что не все эти задачи простые — не значит, что программирование само по себе сложно. Это всё равно что сказать «уметь писать — сложно, потому что сложно написать Войну и Мир». Да, написать «Войну и Мир» — действительно сложно, но это не делает способность писать как таковую сложной — просто большинство людей никогда и не будут пытаться написать «Войну и Мир», а будут вместо этого писать простыми предложениями в чатике. Поэтому программирование — это просто. А вот быть профессиональным программистом и зарабатывать программированием много денег — это немножко другое)
Да, в названии статьи явно не хватает продолжения ", если..." :)
Боюсь, сейчас от программистов требуют намного больше, чем «простые предложения в чатике».
Мне кажется, что ваша аналогия неправильна: «уметь писать» — вполне понятный скилл, который легко верифицируется (если можешь записать на бумаге то, что ты услышал, то все). С программированием все не так радужно, т.к. непонятно, когда можно сказать, что умеешь программировать. Если я могу поменять местами значения двух переменных, то я уже умею программировать? Или мне надо знать, как сортировать массив и т.д.?

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

Исправить в исходниках, собрать и залить на принтер? Или исправить бинарную прошивку?
Сразу видно человека с лепры

Хокку — вот сложность. А "Война и мир" — обычная ремесленная разработка.

Программирование — это сложно
Опасное заблуждение. Так можно прийти к выводу, что если ты программист — ты очень умный.

В школе я тоже думал, что я очень умный. Из-за чего расслабился и не прилагал серьезных усилий к обучению, как минимум в начальных и средних классах. Гораздо позднее я осознал, что это не я умный, это одноклассники дураки, и что сама школьная программа спроектирована таким образом, чтобы учить не слишком умного ребенка. Что привело, по сути, к безвозвратной потере нескольких лет — сейчас учиться гораздо сложнее, как из-за более старшего возраста (в меньшей степени), так и из-за того, что нужно зарабатывать себе на жизнь (в большей степени). Если какой-то школьник сейчас читает этот коммент — не повторяй моих ошибок, не ставь для себя слишком низкую планку.

Программирование — это просто. Это чистая логика, и ничего, кроме логики. Любую, даже самую сложную область в программировании можно раскрутить до последовательности простейших логических шагов. Какая еще область деятельности человечества может быть проще?

Другое дело, что люди путают «сложно» с «долго». Программирование — это долго. Нужно годами учиться и практиковаться. Но ничего «сложного» в этом нет.
Программирование — это просто. Это чистая логика, и ничего, кроме логики. Любую, даже самую сложную область в программировании можно раскрутить до последовательности простейших логических шагов.
Точно так же, как хирургия — это просто копание внутри другого человека, ага. Любая операция, даже самая сложная, может быть раскручена в набор элементарных движений. Ничего сложного, но долго учиться.

Нет, это не так работает. Ваше описание подходит, в общем-то, под любую деятельность, особенно творческую, но что-то я не вижу писателей-художников-композиторов в таких же количествах, как «я умею гуглить syntax error: missing semicolon, я программист!».
Точно так же, как хирургия — это просто копание внутри другого человека, ага.
Дайте хирургу настолько стерильную среду, насколько она существует в программировании — и мы увидим настоящий рассвет хирургии. Пересадка голосы будет считаться рядовой операцией. Протестил на стейдже — накатил в прод. Умер пациент — откатил смерть, поправил ошибки, выкатил обратно. Повторять до тех пор, пока пациент не уйдет полностью здоровым.
У программистов такая среда есть. Почему рассвета не видно?
Как это не видно? А как же все эти плачи про то, что «я потратил на программирование целых три месяца и никак не могу устроиться в FAANG?»!

То, на что у хирурга уходит 6-8 лет программист осваивает на 6-8 месяцев… не переставая поворять «уй как всё сложна-то, как непонятно-то».

Это не рассвет? А что это?
Или ему кажется что он осваивает за 6-8 месяцев…
Потому что избалованы хорошим. Рассвет давно наступил, и если вы этого не видите, вы или слепец, или настолько привыкли к высоким стандартам технологий, что уже давно не осознаёте, насколько они на самом деле высоки. Как говорил Льюис Си Кей — всё замечательно, но все недовольны.
Ну попробуйте собрать полноценную MacOS на линуксовом ядре, че?
Не вижу в этом чего-то невозможного. Дайте мне исходники всего этого добра, финансирование для меня и команды, которую я найму для этой задачи, и я смогу сделать гибрид этих двух систем.
А исходников Мака нет, как и описания работы головного мозга.
А это уже другая задача. Думаю тоже решаемая. Но за другие деньги, чем в случае с исходниками.
По религиозным вопросам вы не по адресу обращаетесь. Я не считаю, что Джобс был Богом, который создал маки из ничего, уже в готовом виде.
С вами там все в порядке? Может температуру померить? Я тоже, естественно не считаю.
Тут речь об аналогичности задачи без знаний о требованиях при пересадке/линковки. Пересадка почки раньше была невозможна без знаний и технологий как и искусственный интеллект, а человек остается просто человеком.
С вами там все в порядке? Может температуру померить? Я тоже, естественно не считаю.
Это вы начали говорить о том, что мак появился из ничего, без исходников. Не уверен, что именно мне тут надо мерить температуру :)

Тут речь об аналогичности задачи без знаний о требованиях при пересадке/линковки. Пересадка почки раньше была невозможна без знаний и технологий как и искусственный интеллект, а человек остается просто человеком.
Аналогичности тут нет никакой. Пересадка головы — это замена устройства на аналогичное с тем же интерфейсом. То, о чем говорите вы — это как смешать днк человека и черепахи так, чтобы создать новый вид — человека с панцирем.
Это вы начали говорить о том, что мак появился из ничего, без исходников
я ничего такого не говорил а лишь утверждал, что сложность решения проблем без описания объектов сравнима.
Да, человек создан Богом, но у нас есть описание работы почек, например, оно получено как и физические законы — путем исследования. Про душу я также ни чего не писал. Так что вы увидели то, чего я не писал.
Хотя сравнивать принципиально невыполнимую задачу (описание сущности человека) и декомпиляцию закрытого ядра это я хватанул, таки да.
UFO just landed and posted this here
Не то чтобы я хотел показаться вот прямо очень умным, но к сожалению в логику умеют далеко не все. Ну или как минимум куча народу не умеют это на нужном для программирования уровне.
О том и речь была в моем комменте. Если много людей не умеют в логику — это не означает что логика сложна, это означает лишь что много людей не слишком умны (на всякий случай — это не попытка оскорбления не-программистов, гуманитарные штуки только снаружи выглядят донельзя простыми).

Упрощая на примере, написать компилятор куда сложнее, чем написать сайт. Но если сидеть гордым оттого, что можешь написать сайт (чего не может сделать подавляющее большинство людей на планете), то до написания компилятора ты никогда уже не доберешься.

Или там работа на конвейре.
Я пробовал. Не рекомендую.
UFO just landed and posted this here
Я соглашусь. Считаю что по большому счету любой человек может научиться почти любой профессии и программирование в этом случае не исключение. Единственное что есть, возможно, некий желательный набор качеств которым нужно обладать чтобы делать ту или иную работу (а если делать профессионально, то обязательно), но опять же, это касается и других профессий. В целом среднестатистически неглупый человек способен на более-менее неплохом уровне заниматься любой работой: и розетки чинить, и обои клеить, и борщ готовить, и формочки если надо шлепать. Всего-то делов нагуглить)

По моему невозможно стать танцором без чувства ритма или музыкантом без слуха.

Это маргинальные случаи, чтобы вот совсем уж не было. У любого среднестатистического человека есть какое-то чувство ритма, которое можно развить при желании/необходимости, и какой-то слух. Точно так же, например, и с логическим мышлением, требуемым для программирования. Это можно прокачать, по крайней мере, если решил освоить профессию не в 40 лет, а хотя бы в 25.
По моему невозможно стать танцором без чувства ритма или музыкантом без слуха.

У любого среднестатистического человека есть какое-то чувство ритма, которое можно развить при желании/необходимости, и какой-то слух.

То что петь и танцевать может почти каждый, вовсе не означает, что каждый любой случайный человек поёт и танцует настолько хорошо, что ему за пение и танцы согласны платить хорошие деньги.
То что петь и танцевать может почти каждый, вовсе не означает, что каждый любой случайный человек поёт и танцует настолько хорошо, что ему за пение и танцы согласны платить хорошие деньги.
С одной стороны да, а с другой — даже большинство композиторов (не певцов даже и музыкантов, но композиторов) как-то обходятся без абсолютного слуха.

Физиологические ограничения закрывают дорогу небольшой части населения (если вы просто вот совсем глухой — певцом вам не стать), но это реально очень небольшой процент.
Программирование — это просто. Это чистая логика, и ничего, кроме логики. Любую, даже самую сложную область в программировании можно раскрутить до последовательности простейших логических шагов. Какая еще область деятельности человечества может быть проще?
Другое дело, что люди путают «сложно» с «долго». Программирование — это долго. Нужно годами учиться и практиковаться. Но ничего «сложного» в этом нет.

Семантика слова "простой", грубо говоря, не подразумевает большой внутренней структуры объекта. Если систему нужно долго раскручивать до простых шагов, она не простая, а сложная. Даже в словаре "простой" определяется фразой "не требующий много времени для понимания". Поэтому "долго" всё-таки имеет некую связь со "сложно".


цитата из словаря

простой


Простой — доступный и не требующий много времени и усилий для понимания, решения, выполнения, описания, использования

Сама возможность долгого "раскручивания" делает программирование сложным, чуть ли не по определению.

Просто-напросто каждый закладывает свое понятие в слова: для вас долго это значит не просто, например, выращивать картошку на огороде это долго — а значит не просто
Для некоторых же это просто, потому что по большому счету не требует каких-то экстраординарных знаний и инструментов. При этом эти люди наверняка понимают что выращивать картошку профессионально — это такая же по сути наука, как и программирование — тут и опыт пригодится, и владение специальным инструментом и определенный склад характера.
цитата из словаря
lesswrong.ru/w/Споры_об_определениях

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

Возьмите что-то более гуманитарное, для примера, экономику. Количество данных для составления правильной модели мира требуется колоссальное. Всё со всем взаимодействует, огромное количество необъективных факторов на всех уровнях, вроде жадности и страха. Всё настолько плохо, что многие люди всерьез верят в сильную гипотезу эффективного рынка.
Программирование основано на логике, а значит, зная некоторый минимальный набор фактов, можно остальное вывести самостоятельно

Осталось за малым — научить людей логике и абстракциям. А это и есть самое сложное в программировании.

Подтверждаю! На собеседования очень часто кандидаты в джуниоры демонстрируют неспособность к абстракциями.
Осталось за малым — научить людей логике и абстракциям.
Если люди не умеют в логику и абстракции, то их и нужно учить не программированию, а логике и абстракциям. Ваш К.О.

Даже в словаре «простой» определяется фразой «не требующий много времени для понимания».
Всё зависит от контекста. Вот простая задача, которой сегодня, сейчас, ещё многие зарабатывают на жизнь: взять чашку и положить в посудомойку.

Просто, да? Но сколько лет уходит на освоение этой задачи человеком? Если начать с рождения, фиг с ним с зачатием и внутриутробным развитием?

Новорожденный человечек вот нифига эту задачу не решит и даже ребёнок нескольких лет от роду часто решает с получением звона и осколков.

Сама возможность долгого «раскручивания» делает программирование сложным, чуть ли не по определению.
При таком определении у вас вообще никаких задач не останется.
Даже очень маленькие дети способны переместить кубик (кружечку) из точки А в точку Б. «Более сложные» механические (и не только) операции зависят от параметров человека, никак не связанных с мышлением (сила/рост/и т.д.).
Даже очень маленькие дети способны переместить кубик (кружечку) из точки А в точку Б.
Кубик способны, чашку нет. Научиться общаться с хрупкими предметами типа тарелок и чашек — требует вполне себе ненулевого обучения.
Причём до того, как вы до этого дойдёте там будет куча промежуточных достижений типа построения башни из кубиков.
Которые будут много раз падать и разваливаьться.

Опять-таки, умение переносить какое-то количество материи из одной точки пространства в другую никак не связано с "пониманием" (ну или практически никак).

UFO just landed and posted this here
научить обезьян программировать пока ещё вроде бы никому не удалось

Удавалось! Были эксперименты. habr.com/ru/post/521338
habr.com/ru/post/521338/#comment_22130154
Помню, очень давно, очень очень, видел записи подобных экспериментов, но с элкетричеством, а не водой.

С одной стороны стекла сидит шимп, у него есть набор рукояток-вентилей. С другой стороны хаотично порванная электрическая цепь. У ее старта горит лампочка. Такие же лампочки, но потухшие, есть на каждом ее фрагменте.

Шимпу показывают, что если крутить рукоятки, за стеклом вращаются фрагменты цепи. Если фрагменты соединены, лампочка подключенного фрагмента загорается. Если загорается лампочка около коробки с наградой, награда немедленно выдается Шимпу. Задача, стало быть, «доставить огоньки от точки старта до коробки с наградой».

При этом в цепи, как положено, есть ложные пути, есть разные способы решения одной и той же цепи.

На начальном этапе задача решалась элементарно, чуть ли не случайными вращениями вентилей по ходу дела. Постепенно задача усложнялась за счет того, что у Шимпа отнимали вентили. Просто убирали, сокращая контроль над цепью, но сама задача оставалась принципиально решаемой, однако не в лоб, а за счет построения обходных путей и прочей более сложной и абстрактной деятельности.

Шимпы справлялись.
А вот научить обезьян программировать пока ещё вроде бы никому не удалось.
Там физиологические ограничения. Языку глухонемых обезьян обучали, обычным языкам — не получается. Другое строение гортани. А без этого до программирования тяжело добораться.
И вторая проблема: у обезьян гораздо короче период, когда их вообще чему-бы-то-ни-было можно обучить.
Детёныши обезьян учатся почти с той же скоростью, что и детёныши людей, но достаточно быстро их внимание переключается на самцов/самок и поддержание статуса в стае… на «глупости» типа изучения математики/программирования внимание уже не выделяется.
Кстати у человеков же плюс-минус та же «проблема».
UFO just landed and posted this here
С чего вы решили что у разных людей не может быть различных «физиологических ограничений»?
Пожимает плечами. Пока их не нашли. Как найдут — можно будет что-то оценивать.

То есть по вашему немые люди не могут научиться программированию?
Вы читать когда-нибудь научитесь? Немые люди не могут научиться говорить. Серьёзно. Причём тут программирование?

Я бы сказал что там проблема совсем в другом.
Дело во многом в этом. Были эксперименты, когда детёнышей обезьян помещали в человеческую семью. Примерно до 3-5 лет они развивались примерно как и человеческие дети, но где-то в этом возрасте тип поведения резко менялся и они становились, фактически, необучаемы.

Соответственно программировать они могут примерно вот на этом же уровне.

И точно так же у разных людей вполне себе могут быть очень разные когнитивные способности. И если взять ту же рекурсию, то для кого-то это элементарно, для кого-то сложно, а для кого-то может вообще непонятно в принципе. И с абстракциями у отдельных людей бывают серьёзные проблемы. И так далее и тому подобное.
Это всё понятно. И понятно, что есть вершины, куда не все люди могут добраться (скажем далеко не все математики могут разобраться в доказаьтельствах теоремы Ферма или гипотезы Пуанкаре).

Но этот уровень (доступный «не только лишь всем») находится весьма высоко.

Базованые навыки программирования (как и базовая высшая математика) доступны 90%-99% населения.

Было бы желание.
UFO just landed and posted this here
В смысле не нашли? Не нашли физиологических или когнитивынх различий у разных людей?
Не нашли достаточных отличий, которые бы могли повлиять на обучаемость программированию.

Вы это сейчас серъёзно?
Ну, могу признать, что вы — редкое исключение.

Я написал что обезьян не могут научить программировать. Вы написали что это связано с их устройством гортани.
Вообще-то там были названы две причины, а не одна. И строение гортани просто «закрывает» путь через обычную речь. А вторая проблема — окончательно всё закрывает.

Немых тоже не могут научить говорить. Следует ли из этого что их тоже нельзя научить программировать?
Нет. Из этого следует, что научить их программировать сложнее. И статистика это подтвержает. Глухих в мире довольно много — порядка 5%. А вот среди программистов их — единицы.
UFO just landed and posted this here
Дискалькулия та же например. Встречается у ± 5% населения. И это один из ярких примеров.
Вот только вопрос: а это яркие примеры чего?

Вот все эти многочисленные расстройства, СДВГ, которых раньше не было, внезапно массово возникшие в последние десятилетия — это проблемы физиологические? Или организационные? Не появились ли они в силу отказа от важного инструмента обучения под названием «ремень»?

UFO just landed and posted this here
Но это совсем не означает что это что-то новое.
Новизна — не в существовании, а в массовости. Пока вот вот это всё воспринималось как повод к применению ремня — так расстройств (любых: гендерных, дискалькулии и прочего) было очень мало.

А как провозгласили «детей надо развивать равномерно «на 360 градусов», чтобы те были непременно счастливыми» — так и появились многочисленные растройства.

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

А какой там процент физиологии — вопрос открытый.
UFO just landed and posted this here
Пока вот вот это всё воспринималось как повод к применению ремня — так расстройств (любых: гендерных, дискалькулии и прочего) было очень мало.

Гендерные — это вы про гомосексуалов? Так я вас разочарую — и во времена Пушкина их хватало. Просто в некоторых социумах это дело пряталось. Ну просто жить хотелось. В такой ситуации в принципе можно или делать потребное в тайне или сублимировать (но в те времена и с сублимацией были проблемы).


А расстройства были и есть. Я вот и по себе могу сказать — у меня аппарат речи "внешнее решение". Если я чем-то занят — даже слыша речь я могу её не распознавать. Сработают флаги — парсер запустится и попытается вытащить из кэша и разборать… но может и не помочь — придётся переспрашивать. При этом с письменной речью проблем существенно меньше (описки и опечатки — конечно же бывают).

Если я чем-то занят — даже слыша речь я могу её не распознавать.
Это типа расстройство? По-моему, это нормальное свойство сосредоточения.

Нормально — не воспринимать. А я ещё слышу (т.е. воспринимаю), но на "парсер" она не заводится, если не пойдёт флаговое значение… Но такое состояние — это когда устал. В обычное время всё-таки или не воспринимаю или слышу фоном.


Просто, чтобы было понятно — думал о чём-то, при этом слышал речь, но не воспринимал, вдруг резко потребовалось понять — трачу секунду-три, из кэша вытягивается всё что есть и в "парсер" идёт. Проблема в том, что парсер на битых данных работает откровенно хреново, а в кэше инфа быстро протухает, восстанавливается максимум последние секунд 5 "записи". Собственно проблема ровно в том, что я ощущаю это как длительный процесс(ещё и имеющий внутренние статусы) и парсер тяжело справляется с битыми данными.

Опять же, мне не кажется, что это какое-то отклонение. Может быть, вам просто неинтересно то, что вам говорят, но типа «надо» слушать по социальным причинам, а организм упирается?

По-любому отклонение… только помимо отрицательного ("парсер" отключается, слабо справляется с шумами) есть и положительное (есть какой-никакой, но кэш, из которого парсер может последние данные взять… это же может происходит и при обычном диалоге, если чего-то с ходу не понял — парсер может пытаться несколько раз пройтись по одной и той же информации, в части случаев даже справляется с восстановлением информации).

Ну дело ваше, но мне всё равно кажется, что это иллюзия, что у «нормальных» людей всегда парсер работает. По моим наблюдениям — как раз нет. Просто они позволяют себе отвечать не понимая, вот и всё.
Не отклонение это, у многих тоже самое. И у меня. А может и у всех. Встречал много людей, которые что-то не расслышав переспрашивают, но не дождавшись ответа внезапно «расслышивают». То есть извлекают из слуховой памяти и заново распознают. Но не называют это «парсером» и так далее. Однакое если в этот момент человеку этот процесс с повторным распознанием по слуховой памяти рассказать, то он оказывается удивнённо-согласен. В общем я считаю то, что вы описываете и воспринимаете как «баг», является «архитектурной особенностью» человеческого мозга, до которой вы добрались с помощью прокаченной рефлексии и проф.деформации. Ну а уже сама проф.деформация подталкивает вас к оценке этого явления как расстройства.
Дискалькулия та же например.

Дискалькулия, к слову, является функциональным нарушением мозга.
Вот, согласно опредению с Вики:
За эту функцию в мозге отвечает внутритеменная борозда теменной доли. У людей, страдающих таким недугом, данный участок мозга меньше, чем у здоровых людей, и недостаточно активен.
Странно функциональные нарушения мозга включать как фактор обучаемости программированию. Это не некое «ограничение», это заболевание.
В общем смысле речь идет о здоровых людях же (в рамках когнетивных способностей).
UFO just landed and posted this here
Я пробовал учить других людей программировать. Программировать — это сложно. То, что лично у вас (и у меня тоже) это получается легко, говорит больше о вас, чем о программировании
UFO just landed and posted this here
Я, кстати, хотел именно математику привести в качестве примера эталонной простоты :)

Но простота не означает легкость. Копать картошку лопатой тоже просто, но кто скажет, что это легко?
Но простота не означает легкость

Приведите, пожалуйста, антонимы к словам "легко" и "просто". Я, кроме "сложно", ничего придумать не могу. Вы тут про простоту логики уже несколько раз утверждали… Если 2 штуки являются отрицаниями одного и того же, то разве не получается, что эти штуки равны?

легко-тяжело
просто-сложно
Я в курсе, можно просто использовать пары, которые я привёл как локальный фреймворк, чтобы определиться с терминами.

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

В моём понимании это всё так уложено: просто — это без использования каких-либо сложных (для исполнителя) навыков, а легко — без приложения больших усилий (опять таки со стороны исполнителя). При этом аспект простоты меняется при обучении, а вот аспект лёгкости — не очень.
Пример: поднять рычагом коробку с котиком внутри и трёхметровое бревно одинаково просто (потому что принцип ну абсолютно такой же простой, easy; антоним — сложный), но коробку при этом поднять ещё и легко (легко — лёгкий, light; антоним — тяжёлый).
А ещё может быть так, что какая-то операция будет простой, но не лёгкой, либо лёгкой, но не простой.
В итоге (в моей схеме) программировать не просто (потому что нужно понимать довольно сложные принципы), но легко (буквально тыкать пальцем в клавиатуру и/или мышь).
Это известный недостаток недостаточно формальных языков.
UFO just landed and posted this here
UFO just landed and posted this here

Я вам по секрету скажу — веке в 15 — лопата это тоже было сложный объект… Тут тоже целая промышленная цепочка с получением металла нужного качества (потому что копать деревянной лопатой… ну вы понимаете… а это единственная вменяемая альтернатива хорошему металлу, который по историческим меркам стал доступен весьма недавно… потому что даже лопата из бронзы — либо по ТТХ, либо по цене будет многократно уступать деревянной лопате).

Бронза в бронзовом веке была очень дорогая, и никто не стал бы из неё делать лопату. Бронзовый век зовётся бронзовым не потому что у каждого крестьянина была бронза, а потому что из бронзы делали оружие для богатых, а бедные воевали оружием с каменными наконечниками.

15 век вроде уже следующая эпоха. Могу ошибаться, но я говорю про времена, когда начали активно пользоваться плохоньким, но железом. Такое железо на лопату пустить было нельзя (дорого и не справится — или погнётся или получится меч/топор/молот по соотношению толщина-ширина). Если это был не 15 век — прошу прощения за ошибку.

UFO just landed and posted this here
говорю про времена, когда начали активно пользоваться плохоньким, но железом

Цветмет — даже сейчас стоит дороже железа.
Когда начали активно пользоваться плохоньким, но железом: аристократы по-прежнему вооружались бронзовым оружием отличного качества, а очень плохонькое железо было у тех, кто раньше вооружался каменным оружием. (позднее, аристократы перешли на сталь)
UFO just landed and posted this here
Однако, математика вроде как не считается простой, и никто не говорит, что научиться ей на уровне хотя бы физмат-школы может любой.
Я говорю. Не любой, но 90-95% могут точно. Вопрос мотивации исключительно. Не каких-то там сложных особых свойств мозга. Только некоторое количество органических повреждений не дают возможности этим заняться.

Я как раз поступил в физмат-школу легко без репититоров и без усилий со стороны родителей. Но просто нравился мне Гарднер, Перельман и вот это вот всё.

Возьмите любого «гуманитария» и заставьте его заниматься математикой по 4-5 часов день — и будет вам математик.

Почти все люди, которых я знаю и которые «не умеют» в математику просто «не хотят» в математику, на самом деле. Им так проще жить.
UFO just landed and posted this here
Почему «нефальсифицируемые»? Очень даже фальсифицируемые.
Возьмите такого необучаемого и заснимите 500 часов того, как он пытается разобраться в соотвествующих задачах.
И вы обнаружите одно из двух:
1. Либо там будет изображение бурной деятельности.
2. Либо, что более вероятно, никаких 500 часов занятий вы вообще не увидите.

Ну не видел я ни одного человека, который бы всерьёз занимался чем угодно 500 часов — и «не осилил».

Сумуляторов бурной деятельности видел много, это да.

Собственно основное, что делает репетитор — это не даёт вам делать вид, что вы «учите матан» или там «учитие программирование» в то время как вы в это время «чатитесь по WhatsApp» (или, в давние времена, «рисуете рожицы на полях тетради»).

Всё остальное — на порядок менее важный фактор.
Почему «нефальсифицируемые»? Очень даже фальсифицируемые.
Возьмите такого необучаемого и заснимите 500 часов того, как он пытается разобраться в соотвествующих задачах.
И вы обнаружите одно из двух:
  1. Либо там будет изображение бурной деятельности.
  2. Либо, что более вероятно, никаких 500 часов занятий вы вообще не увидите.

Чтобы доказать фальсифицируемость какого-либо утверждения нужно описать эксперимент, возможным результатом которого было бы опровержение этого утверждения. Вы же пытаетесь вместо этого подсунуть эксперимент который может только подтвердить ваше утверждение.

Вы же пытаетесь вместо этого подсунуть эксперимент который может только подтвердить ваше утверждение.
Как раз наоборот.

Покажие видео человека, который честно, не отвлекаясь, решает задачи по матану часов так 500 — и при этом его «ниасилил».

Я даже намёков на это не видел: везде где мне говорили, что вот этот конкретный человек «чистый гуманитарий» я никогда попыток честно порешать задачки не видел. Зато видел массу способов избежать траты сил не «ненужные задачки».

Максимум что наблюдал — не попыку прорешать все задачи, которые удалось ранее у кого-то списать, по порядку — а попытку прорешать задачки где-нибудь из середины учебника, не прорешав всё что было до того.
Как раз наоборот.

Ну раз наоборот, то вот предложенный вами эксперемент:


Почему «нефальсифицируемые»? Очень даже фальсифицируемые.
Возьмите такого необучаемого и заснимите 500 часов того, как он пытается разобраться в соотвествующих задачах.
И вы обнаружите одно из двух:
  1. Либо там будет изображение бурной деятельности.
  2. Либо, что более вероятно, никаких 500 часов занятий вы вообще не увидите.

Какой из исходов такого эксперемента опровергает ваше утверждение?

Какой из исходов такого эксперемента опровергает ваше утверждение?
Никакой, потому как варианта «человек честно самостоятельно решал все задачи из всех разделов по порядку — и всё равно нифига не понял» (которое опровергло бы моё утверждение) я ни разу не видел.

Хотя вот тут есть нечто похожее, сейчас пытаемся разобраться.

И снова про теорвер (с которыми в России у многих, в принципе, плохо). Что, вообще, очень интересно: может быть для теорвера нужен, действительно, особый склад ума? С обычным матаном я такого вообще никогда не наблюдал.
Никакой, потому как варианта «человек честно самостоятельно решал все задачи из всех разделов по порядку — и всё равно нифига не понял» (которое опровергло бы моё утверждение) я ни разу не видел.

Ну об этом и речь. Вы сформулировали нефальсифицируемую гипотезу и пытаетесь её доказать. Не надо так.

Вообще-то он как раз предложил пример фальсификации. Достаточно найти хоть один случай, когда здоровый разумом человек тратит Х времени на что-то, в данном случае, на математику, и не может её понять — и гипотеза khim будет опровергнута.

Еще раз, вот цитата:


Возьмите такого необучаемого и заснимите 500 часов того, как он пытается разобраться в соотвествующих задачах.
И вы обнаружите одно из двух:
  1. Либо там будет изображение бурной деятельности.
  2. Либо, что более вероятно, никаких 500 часов занятий вы вообще не увидите.

Эксперимент сформулирован так, что он в принципе не способен дать исход


когда здоровый разумом человек тратит Х времени на что-то, в данном случае, на математику, и не может её понять

Вот если убрать из него ограничение на возможные исходы, тогда предложенный вами исход станет возможным.

Думаю, вы это понимаете как-то по-другому, не так как я. Как раз ограничение возможных исходов делает эксперимент фальсифицируемым. Если вы проведете этот эксперимент и получите тот исход, которые не описан в рамках этих двух — вы опровергните его гипотезу.

Есть гипотеза. Чтобы доказать фальсифицируемость не нужно проводить эксперимент, нужно лишь привести описание эксперимента один из возможных исходов которого опровергнет эту гипотезу. В приведенном эксперименте есть только 2 возможных исхода. Ни один из них не опровергает гипотезу. Т.е. такой эксперимент не приведен.


Проблема в том, что исходы опровергающие гипотезу отрицаются еще на этапе формулировки эксперимента. Это ведь аналог чайника Рассела. Там тоже постулируется, что любой эксперимент могущий обнаружить этот чайник не обнаружит его.

UFO just landed and posted this here
Очень просто. Смотря на происходящее на экране. Если человек делает одни и те же ошибки второй, третий, десятый раз — значит он не хочет ничего выучить (ну или он в принципе необучаем, но таких мало).

Это так же, как с бухгалтерией: будете показывать им как менять картридж 100 раз — ничему не научатся, будут всё так же и через 10 лет голосить, когда тонер кончится. «Поставите заявку в очередь на исполнение через 3 дня» — научатся с первого показа.

Мотивация — самое главное в обучении. А не какие-то там «способности» и «склонности».
UFO just landed and posted this here
И «десятый раз» это точное число? То есть как быть с ситуациями когда человек делает одни и те же ошибки в десятый раз, а потом всё равно добивается успеха?
Поняно, что если у вас найдутся средства проведения эксперимента, то нужно будет зафиксировать точные критерии. Но в моей практике я ничего не видел даже близко похожего, потому где лежит граница — не скажу.

Ок. Допустим такого не происходит и человек всё равно не выучил. Это уже опровергнет вашу теорию или есть другие факторы?
Да. Если человек честно учится и ни черта так и не выучил — опровернет.

Вообще, если вдуматься, то вы поймёте, что процесс обучения (чему угодно!) — это движение от одних навыков к другим, при котором вы вначале решаете простые задачи (с ошибками!), потом научаетесь их избегать — и переходите к более сложным. И всё. Ничего более.

И есть ровно две причины, по которой вы можете чего-то «не осилить»: вы не учитесь (то есть решая задачи «одного уровня» не научаетесь избегать ошибок), либо пытаетесь «перепрыгнуть через ступеньку» (и делаете не те ошибки, которые ожидались на этом уровне, а совсем другие, которые вы должны были научиться избегать раньше).

И совершенно неважно — учите вы матан, программирование или там, резьбу по дереву.

И вот знаете — я не видел такого, чтобы человек честно пытался выучить какие-то простые вещи типа матана или программирования — и не мог. Как правило «халтура» настолько бросается в глаза, что вопроса о том, что это халтура — просто не возникает.

И на мой взгляд он один сам по себе уже разбивает в пух и прах вашу теорию о том что мотивация это главное и остальное неважно.
Важна ещё обучаемость чему угодно, в принципе.

Я вот недавно смотрел передачу про ребёнка с синдромом Дауна, который очень хотел научиться играть на скрипке.
А что — есть какие-то вещи, которые люди с синдромом Дауна осваивают легко? Какие?

Речь же у нас тут идёт не об органических поражениях мозга (с ними-то всё понятно, но они не так часто, на самом деле, встречаются), а о пресловутой «гуманитарной одарённости». Когда человек — вроде как умён, интеллектуал — а в математику или там программирование «не может».

А вот тут как раз возникают вопросы — не может или не хочет?

А если у вас нейросеть в мозгу физически испорчена, тогда да, тут всё понятно. Если обучаемости нет — так её таки нет.

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

Уровня разрядника может достичь почти каждый, хотя, конечно, рекорсменом дано быть не каждому. В программировании или изучении матана — всё так же.
UFO just landed and posted this here
И опять начинается… Что значит «честно учится»? Как вы собираетесь это проверять?
Вот именно смотря на решения задач одного и того же вида с разными интервалами.

То есть есть люди, которые плохо обучаемы.
Вот это да — наблюдается. Но редко.

Есть люди у которых нет или слабые способности к письму, чтению, математике, абстрактному мышлению и т.д. и т.п.
Вот только в большинстве случаев речь идёт не о каких-то мифических «способностях» (ну где у человека ген «способности к письму»?), а просто к тому, что чем-то (тем что человеку нравится) занимаются больше, чем-то (тем, что не нравится и что можно объявить «неважным») — меньше.

Или по вашему все люди, которые занимались спортом, но не стали профессионалами на самом деле просто не хотели ими стать?
В случае со спортом есть проблема: уметь тягать штангу или там бегать на разряд недостаточно, чтобы стать профи. Деньги платят только тем, кто сильно выше среднего результаты показывает.

И с музыкантами та же история: вакансий (даже в барах и ресторанах) — сильно меньше, чем желающих их заполнить.

Сколько простоых разрядников могут зарабатывать себе на жизнь спортом? Вот и в программировании точно так же.
Вы это сейчас всерьёз? Умея просто «клепать формочки» (а это даже не уровень разрядника) вы не сможете заработать больше, чем курьер или уборщица?

О каком точно так же вы говорите? В спорте деньги платят только мизерному проценту самых-самых.

А вакансий программистов в мире — буквально миллионы.

В этом разница, а не в том, что спорт требует каких-то суперспособностей.
UFO just landed and posted this here
А вакансий программистов в мире — буквально миллионы.
А население миллиарды. При этом всё равно откуда-то нехватка программистов.
Не откуда-то, а из-за завышенных ожиданий. Вот тут отлично написано: научи куда тут нажимать чтоб как пограмист бабки загребать.

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

А тот факт, что программиста нельзя научить за пару недель — приводит.

Подводит видимая простота: ну сложно, что ли, научиться тыкать кнопки? Даже ящика с десятком стаместок не нужно.

На самом деле программировать — не так и сложно, но очень велика разница между кажимой сложностью и реальной.

Кажется, что это что-то, что должно осваиваться за день или, там, пару недель… а на практике — те же 2-3 года, что и любая «серьёзная» профессия.
UFO just landed and posted this here
То есть если всё так как вы описываете, то грубо говоря давно уже все уборщицы и курьеры должны бы были себя хотя бы попробовать в айти.
Так они пробуют. Когда понимают, что через неделю они на сто тыщ устроиться не могут — бросают.

Сколько я таких «немогущих» видел.

И я уверен что большинство этих людей вполне себе готовы пожертвовать 2-3 годами жизни если это даст им айтишные зарплаты на всю оставшуюся жизнь.
А откуда эта уверенность? Я как раз такого не наблюдал.

Большинство виденных мною «немогущих» даже пару недель на курсы Английского походить не могут, чтобы зарплату повысить сразу, причём заметно.

А вы хотите, чтобы они 2-3 года обучались.

В том-то и дело, что для большинства градации примерно такие:
  • День обучения — просто.
  • Месяц обучения — сложно.
  • Год обучений — ну уж нет, школу я давно закончил.

Вот и всё. В этих терминах не только программирование, но любая почти профессия — это дико сложно.

Но у программирования есть особенность: тут не нужны подмастерья.

Краснодеревщик может куда-то приспособить даже человека, который рубанок никогда в руках не держал. А потом, постепенно, обучить.

А эникейщик программисту — увы, не помощник. И обучить его он не сможет.

Они вообще на разных языках говорят.

То есть либо не идут, либо не справляются.
Зачастую даже вводный бесплатный курс не проходят. Потому как несколько месяцев обучения — неприемлемо.
UFO just landed and posted this here
Потому что многие из них тратят 2-3 года своей жизни чтобы получить другие, гораздо менее денежные профессии.
Какие? Примеры можно?

И вот те самые, которые сначала пробуют учится на айтишника, не справляются, а потом успешно овладевают другой, менее денежной профессией, на мой взгляд разрушают всё ваше логическое построение.
Не факт. Ещё раз: 2-3 месяца — это оч. сложно. Предел.

Да, потом можно доучиться, вышку даже получить, но… 2-3 месяца — и ты должен получить деньги. Такое требование у большинства меняющих специальность.

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

Большинство виденных мною «немогущих» имеют за плечами как минимум ПТУ/Техникум, а то и ВО в другой отрасли.
Правильно. Они уже «отучились» и тратить 2-3 года на переобучние не будут.

И это как раз те самые подмастерья и есть.
От них, зачастую, требуют умений, которые на 2-месячных курсах очень сложно получить.
UFO just landed and posted this here
информатику и потом ушли в гуманитарные профессии(например социальные работник и учитель)
И это вот социальному работнику или учителю нужно 2-3 года обучения?
Нет, чтобы стать каким-нибудь «учителем года» может и 10 лет мало быть, но просто устроиться на работу — можно вообще без обучения. Сам когда-то подрабатывал.
админами или техниками по коммуникациями
То же самое: две недели обучения и вперёд — провода тянуть.

Чтобы переучится на айтишника почему-то не будут, а чтобы переучится на что-то другое почему-то тратят. Где логика?
Логика — в отсутстсвии умения планировать и нежелании выкладываться. Ну не хотят люди работать и учиться по другой специальности одновременно.

Максимум — два-три месяца и то это редкость. Большинство не может скопить денег, чтобы выделить на учёбу больше недели-двух.

Я не знаю что вы понимаете под словом «подмастерье». Но подмастерьем за 2-3 месяца тоже обычно не станешь.
Я имею в виду «во время обучения выплачивается стипендия». Не 2-3 месяца до того, как ты получишь диплом, а 2-3 месяца (а лучше — 2-3 недели) до того, как ты начнёшь «деньги в семью» приносить.
UFO just landed and posted this here
Ещё раз: почему по вашей логике люди при прочих равных не готовы переучиваться на айтишника, но при этом переучиваются на другую, менее денежную профессию?

Вы не заметили, что уже десяток комментариев беседуете с продуктом тренинга Успешного Успеха.

«Просто ленивые алкаши не хотят трудиться, вот они и бедные, то ли дело я, Эффективный Успешный Сэлфмейд».
Почему-то тот факт, что на краснодеревщика нужно учиться несколько лет — не приводит вас к выводу, что строгать — это очень сложно.

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

А в программировании — есть довольно высокая планка, ниже которой ты вообще никакую работу не найдёшь.

У врачей или лётчиков, впрочем, тоже, программист тут не уникальная профессия.
А в программировании — есть довольно высокая планка, ниже которой ты вообще никакую работу не найдёшь.

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


У врачей или лётчиков, впрочем, тоже, программист тут не уникальная профессия.

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

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

Это вам кажется с высоты ваших навыков.
Попробуйте поговорить с кандидатами в джуниоры, и увидите что 90% желающих «вайти-в-айти» просто не тянут на эту планку.
ну или он в принципе необучаем, но таких мало

При этом вы же утверждаете, что обучить можно всех. Так всех или не всех?

Вернитесь в начало ветки. Вы, похоже, уже забыли что мы тут обсуждаем. Я напомню:
Не любой, но 90-95% могут точно. Вопрос мотивации исключительно. Не каких-то там сложных особых свойств мозга. Только некоторое количество органических повреждений не дают возможности этим заняться.


Вопрос «даунов», людей, у которых удалили (по медицинским показаниям) одно полушарие и прочее — были вынесены за скобки изначально.
И как в рамках этого эксперимента предлагается отличать «настоящую бурную деятельность» от «изображения бурной деятельности»?
Вы от меня точную методологию хотите узнать, или пытаетесь намекнуть на то, что это невозможно?

Учителя же как-то отличают, кто сам работу написал, а кто списал. Кто учится, а кто бездельничает.
UFO just landed and posted this here
И приводит к субьективности оценок. Что в случае с научным экспериментом на мой взгляд не особо то и допустимо.
Скажите это научным статьям по психологии.

Я намекаю что это даже формально не определено.
Четкое формальное определение будет при попытке постановки эксперимента. Какой смысл в рамках дискуссии на хабре докапываться до точной формальной формулировки? Готов поспорить, что дальше слов это всё равно никуда не уйдет.
UFO just landed and posted this here

Я на 99% уверен, что часть людей в эксперименте через некоторое время откажутся от участия в нём (или начнут делать вид, что занимаются, если участие в эксперименте будет оплачиваться). После этого начнётся спор о причинах, и каждый останется при своём.


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

UFO just landed and posted this here
UFO just landed and posted this here
как раз к тому времени понял, что с других ветвей математики меня прёт больше
Ну вот это вот — собственно, ключевое.

Обучение — штука, на самом деле, не такая сложная. Нужно просто изучать вещи, которых вы не можете сделать легко, но которые недостаточно сложны, чтобы вы вообще не смогли их сделать.

Как говорится, ну не кликает у меня теорвер.
Очень странно если всё так, как вы говорите. Точно «не кликает»? Вернитесь мысленно к тому времени, когда его изучали — вы пытались «продраться», через вещи, которые вы не понимаете? Или, наоборот, конценрировались на том, чтобы поставить самому себе как можно больше «ментальных плюсиков» с лёгкостью решая простые задачи?

Я бы оценил разницу в КПД этак на порядок.
В календарном времени — возможно. Но я когда разбирался с людьми, у которых что-то «не идёт» (немного когда-то подрабатывал репетитором), то в 10 случаях из 10 всё упиралось в то, что в тех областях, где человека «прёт» — он берётся за всё более сложные задачи, а там где не прёт — либо сидит «в зоне комфорта», в 100500й раз решая те задачи, которые уже научился решать, либо пытается «перепрыгнуть» через 10 тем, «чтобы всё побыстрнее закончилось».

В обоих случаях КПД страдает заметно.

P.S. И да, мне тоже, разумеется, не все вещи даются одинаково легко — но я чётко понимаю, что проблема не в том, что это сложные вещи, а в том, что я просто не могу как следует заставить себя этим заняться. Ну там, например, немецкий выучить (по работе было бы неплохо) — уже который год. Но немцы же его почти все выучивают! А потому что им он нужнее, чем мне…
UFO just landed and posted this here
UFO just landed and posted this here
И я однозначно потратил больше 500 часов прежде чем понял что не тяну.
Не тяните… что конкретно? И в математике и в любой профессии вообще есть уровень, выше которого может подняться не каждый.

С теорвером у очень многих сложности возникают, к примеру. Не уверен, что это — вот именно то, что уже превосходит возможности «типичного home sapiens'а», но возможно.

Но вот с базовым, простейшим, матаном (а другого для программирования не нужно) — я не видел проблем.
UFO just landed and posted this here
Вы утверждали что если чем-то «заниматься всерьёз», то это можно ослилить.
Мне надоело спорить с тараканами у вас в голове. Давайте я процитирую что я написал:
Ну не видел я ни одного человека, который бы всерьёз занимался чем угодно 500 часов — и «не осилил».


Вы вообще в курсе что «видел человека» и «слышал о человеке» — это разные понятия?

Вас я тоже, в общем, не видел, но готов признать что вы — уникум, способный угробить кучу времени и ничему не научиться.

Ваши комментарии под другими статьями это тоже подтверждают.

Ну Ok, какое-то количество таких уникумов, похоже существует. Но вряд ли их много, иначе хоть одного я бы увидел лично.
UFO just landed and posted this here
UFO just landed and posted this here
Лишь бы про Бога что-нибудь нехорошее написать…

Какого именно?


В программировании про богов не особо вспоминают.
А вот родственников автора предыдущих коммитов — бывает.

заставьте его заниматься математикой

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

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

Вопрос целесообразности пременения всего этого арсенала — это уже второй вопрос.

Основная причина того, что в обществе есть куча людей «неспособных к математике» или «не умеющих отличать тона» — в том, что это не стыдно.

Среди вьетнамцев, например, людей, не «умеющих отличать тона» — на порядок меньше, чем среди европейцев… думаете у них мозги другие? Нет, у них язык другой.
в том, что это не стыдно

Ну, не знаю… кажется у вас слово «стыдно» помещено примерно в тот контекст, в котором сейчас, в просвещенном 21-м веке можно сказать «стыдно не знать азбуки», или там, «стыдно не уметь считать хотя бы до десяти». Вроде, и не поспоришь. А вроде, всего лет 100 назад, что по историческим меркам немного, большинство крестьянского населения не владели грамотой, и среди них не считалось, что это стыдно. Времена изменились стремительно, и, действительно, уже через 20 лет стало «стыдно быть неграмотным». Но, продолжая аналогию до настоящего времени, сейчас сказать первому встречному «стыдно не знать хотя бы три первых нормальных формы реляционной алгебры» я никак не смогу, потому что это будет явный перебор. Может быть, лет через 20 это будет уже по-другому, не знаю.
Времена изменились стремительно, и, действительно, уже через 20 лет стало «стыдно быть неграмотным».
Вот только времена-то не сами по себе изменились. Была целенаправленная пропаганда, были программы ликвидации неграмотности и прочее.

Но, продолжая аналогию до настоящего времени, сейчас сказать первому встречному «стыдно не знать хотя бы три первых нормальных формы реляционной алгебры» я никак не смогу, потому что это будет явный перебор. Может быть, лет через 20 это будет уже по-другому, не знаю.
Не будет, конечно. Пока гуманитарно одарённые личности считаются более уважаемыми людьми, чем люди, знающие «три первых нормальных формы реляционной алгебры» — не будет.
Математическая (формальная) и житейская (бытовая) логики сильно не совпадают, и не случайно, что хуже всего математика даётся условным «людям земли», крепко держащимися за человеческий common sense. Для таких людей математика (и выросшее из неё программирование) никогда не будет хоть сколько-то «простой» — они не видят и не понимают мир, как его предполагается понимать с точки зрения формальных дисциплин.
Совершенно верно. Чтобы изучать программирование нужно, вначале, уметь в формальную логику.

Именно потому что у компьютеров и программ нет никакого «зравого смысла» и никаких инстинктов.

Если вы этого не понимаете — то вам изучать программирование просто рано.
Почему windows после обновления может сломаться, у меня такое было? Почему из facebook утекают миллионы конфиденциальных данных из-за уязвимостей? Про apple сколько смешных историй было, вроде иероглифы ломают iphone, странные вещи с нулевым днем и тп?

Может все они просто не знают о том как все просто, или берут уж совсем-совсем новичков?
UFO just landed and posted this here
Нет, не то же самое. В вашем примере про покраску стены отсутствуют условия, ветвления и циклы.
И вообще, условия для покраски стены могут выглядеть как «Нарисовать семь прямых красных линий, все они должны быть перпендикулярны друг другу, причем некоторые должны быть нарисованы зеленым цветом, некоторые — прозрачным, плюс одна — в форме котенка».
Значит так разрабатывают.

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

Ответ прост. Фейсбуку просто-напросто пофиг на все эти конфиденциальные данные. Утверждать они могут другое, но приоритет у них явно не в этом. Так же как и с майкрософтом и эпплом.
Вы ведь не будете говорить, что какая-то соцсеть будет сложнее миссий наса?
На эту тему спорить можно до бесконечности.

Сами задачи, возникающие при посадке зонда на летящую комету на два, а то и на три порядка проще, чем задачи, возникающие при написании социальной сети.

Однако, как вы верно заметили, в случае с кометой у вас всего одна попытка. Компенсирует ли это сильное упрощение задач? Фиг знает.
Тем, что всё, что происходит при полёте на комету не пытается целенаправленно «сломать» конкретно вашу железку.

Да, атмосфера и Земли и кометы «дышат», да, всякие космические лучи и прочее.

Но вот всё это — это «стрельба по площадям», никто не пытается в программе управления ракеты специально найти «слабое звено». То есть если вы запрограммировали 1000 случаев и один неправильно — у вас вероятность сбоя 0.1%.

А в случае с социальной сетью — всё ровно наоборот: люди специально ищут у вас в коде ошибки и если у вас в одном случае из 1000 проблема — вас, со временем, взломают, с вероятностью, близкой к 100%.
Большое спасибо за статью! Для меня, как для новичка, было очень важно услышать/прочитать такие слова, поскольку действительно отовсюду лезет «программирование — это просто». В какой-то момент я даже начал сомневаться в себе, когда видел на форумах про-коды, пытался разобраться в них и ничего не понимал. Сейчас осознаю, что мне еще очень далеко до момента, чтобы хотя бы назваться Джуном. Нужно учиться, учиться и учиться. Спасибо, что вернули веру в то, что это не я глупый, а программирование действительно сложное.
Мне почему то кажется, что неразбериха началась именно из-за размытости термина программирование. Очевидно, что программировать и писать код задачи принципиально разные. Писать код достаточно просто, даже рабочий. Программировать — напротив, ведь это в основном осмысленная деятельность, а не бездумное копирование кода со Stack Overflow.

Автору спасибо за статью, некоторые утверждения сильно затронули мой личный опыт, особенно из области «когда остаешься один на один со своим стектрейсом».
Автору спасибо за статью, некоторые утверждения сильно затронули мой личный опыт, особенно из области «когда остаешься один на один со своим стектрейсом».

Присоединяюсь. Золотые слова.

Кстати, бывает такое, что со временем сложность программы начинает перерастать «вычислительные возможности» программиста. Когда осознаёшь, что уже не хватает головы, что бы впихнуть всё. Вот тогда приходится думать «как упростить/как разрезать на части».
А что бывают простые работы? Сложность работы = количество работы которое может выполнить среднестатистический человек готовый к выполнению этой работы за определённые деньги. Работы на которых можно просто сидеть и ничего не делать как-то не особо в мире встречаются. Программисту сложно кодить имея определенные скилы, так и Васе сложно кидать целый день мешки на стройке — объединяет их одно, работодатель будет стараться максимально их загрузить за оплачиваемые деньги

Конечно бывают простые работы. На них нередко можно встретить детей разных "уважаемых людей". В основном, это различные руководящие должности, желательно в большой компании, которая достаточно устойчивая в плане финансов, и в которой ответственность максимально размыта. В таком случае вся работа заключается в раздаче довольно общих указаний вида "сделать хорошо", или "сделать как у вон тех", а сложная часть останется уже тем, кто будет твои распоряжения реализовывать. Ещё можно просто сидеть вместо мебели в парламенте или совете директоров. Можно найти такое место и где-нибудь в среднем звене, я встречал начальников, которые работали исключительно в режиме ретранслятора, что тоже совершенно не сложно.

Помню, решил банк (в котором я на тот момент работать) установить сеть терминалов самообслуживания. Дал объявление «требуются...» Пришёл товарищ, рассказывает «я уже развернул в банке, где работал, сеть банкоматов и терминалов». Спрашиваю «а как, собственно, вы это делали»? — «Да как. Вызвал зама и сказал, что бы установили банкоматы и терминалы».
Программирование это как хороша компьютерная игра:
Easy to learn, hard to master.
<:o)
Тред не читай — сразу отвечай!

Мышкой можно нашлепать форму с достаточно сложным на первый взгляд поведением. Она выбирает файлы, сортирует и фильтрует подгруженные данные, принимает от пользователя запросы и куда-то их направляет. При этом человек не вводит ни одного условного оператора, не пишет ни одного цикла. Просто соединяет предложенные ему кусочки.


Так-то и у меня жена умеет программировать на микроволновке: 2 минуты на одной мощности, 5 минут на другой мощности, потом 10 минут на гриле. Натыкала кнопок и ушла. Получается вкусненько.

Это всё прекрасно ровно до того момента, когда перестает работать. А сервиса по ремонту не существует, так как ты сам же представитель производителя. Начинается диагностика, отладка, замена деталей, ремонт и прочие тонкости микроволновкостроения, которые навсегда изменят взгляд на микроволновки :)
Решение было простым — да, но к нему был долгий путь, так что вообще-то нет.

Программирование, это всё же просто, но на том же уровне простоты, что и, например, математика, ядерная физика, rocket science, и т.д.

Что нужно для понимания математики? Да ничего, кроме запоминания. В математике много определений, много формул, много теорем, а к тому ещё промежуточные шаги по выводу формул и теорем. И это всё нужно запомнить. Если не запомнил — досвидания, ты не матетматик.

Поэтому обучение программированию (матетматике, физике, чему-угодно) должно закладывать в память весь этот огромный массив информаци. Не заложило — выходит недоучка, который просто не знает, как делать то, что запомнившие нужное делают легко.

Курсы программирования длительностью в месяц-два не дают никаких шансов на запоминание необходимого объёма информации. Лучшее что в результате будет — какие-то основы, от которых далее ученик сможет отталкиваться при встрече с новыми задачами. Но основы не дадут ему решать большинство задач быстро. А ему же хочется! Поэтому он бежит на SO и тому подобные решения, которые дают ему готовый рецепт. Какие плюсы и минусы у рецепта, ученик, разумеется, не знает. Поэтому и плодится множество убогих и даже просто страшных сайтов, программ и всего прочего. Их делали недоучки (а иногда просто зазнавшиеся недоумки). Но даже недоумка можно обучить и программированию и математике, но на такое обучение уйдёт существенно больше времени.

Если человек готов напрягаться и хотя бы самостоятельно решать предлагаемые задачи, то за год из него можно сделать уверенного миддла. Если человек работает и у него мало свободного для обучение времени, то придётся растянуть удовольствие на пару лет. Если за два года не смог осилить все задачи — скорее всего действительно не стоит заниматься умственным трудом.

Но большинству по силам за год-два осилить программирование до уровня уверенного миддла (с соответствующей зарплатой). Только нужно быть готовым каждый день по часу-два-три (у кого как пойдёт) заниматься по предложенной качественной программе. И очень желательно иметь ещё и качественного преподавателя.
Что нужно для понимания математики? Да ничего, кроме запоминания.

Категорически не согласен! Как раз вызубрить все без понимания практически бесполезно. Может, экзамен даже сдать можно, но математиком от этого не станешь. Для математики нужено математическое мышление. Умение манипулировать абстрактными объектами и конструировать их.

Программирование, это всё же просто, но на том же уровне простоты, что и, например, математика, ядерная физика, rocket science, и т.д.

Мне определённо нравится ваш оптимизм!


Только понятие "просто" и "2 года учёбы" — не слишком сочетаются. Наверно даже, с увеличением затраченного времени "просто" перетекает в "сложно", и к тому времени, когда занятий будет достаточно, значение будет "очень сложно". "Просто" — это то, что можно выучить за 15 минут.

Ага, только в атомную бомбу совсем без SO сумела только одна сверхдержава, а в rocket science — вторая. И то обе посмотрели недописанные коммиты и прототипы разгромленной третьей а еще забрали rockstar персонал.
Что нужно для понимания математики? Да ничего, кроме запоминания.
Угадайте какие оценки у меня были по истории, стихам и прочему что на запоминание? 2 и 3. А по математике в физмате? При этом помню нелюбимую тему — тригонометрию в школе. Потому что там много формул надо запомнить. Но я запоминал только пару основных, а остальные выводил прямо на контрольной. И успевал. И даже соседний вариант решить. Аналогично по физике — не понимал зачем там половина параграфов, если они выводятся из предыдущего. Еще мне нравится что в физике почти не надо запоминать формулы, часто достаточно примерно. Например знать список влияющих факторов и знать что зависимость от каждого линейна (почти для всех формул) — тогда восстановить формулу просто. Однажды нам дали контрольную по физике с множеством заданий и вариантов и учительница нас покинула. Вход в класс был ссади, и в него подглядывала учительница истории. Благодаря тому что я решал свои задачи, и задачи еще примерно на два варианта и в мою сторону только и летели листочки с просьбами решить ту или иную задачу, я стал получать по истории 3 автоматом, и 4 если что-то говорил (вместо 2 и 3). Кстати аналогично по математике. Во время тригонометрии у нас был такой вид опроса когда всех по очереди спрашивали произвольные формулы, я почти ни разу не отвечал правильно. А когда объяснил как я решаю задания, такую форму опроса вообще отменили (ввели ее только в этом году). Знаете почему меня в университете на практике по матану не вызывали к доске? Потому что я задачу решал в 2 строки, а на просьбу расписать чтобы все поняли — сам не понимал что от меня хотят (ну пару строк еще добавил, но не так как предполагалось). При чем тут вообще запоминание? Там не запоминание, а осознание нужно. И даже 5 минут осознания новой темы и 5 часов практики.

Кстати Фейнман писал про то как его пригласили в Бразилию на год оценить развитие физики в институтах (потому что у них была проблема, и никто не понимал какая). В конце года он сделал доклад, который прочитал в присутствии профессоров и государственных чиновников, а позже сдал его в гос департамент США. Мало кто обрадовался такому докладу. А основной его темой было: «я могу показать вам, почему это не наука, а заучивание во всех случаях, без исключения».

Да даже среди студентов есть ругательные слова «заучка» и «ботаник» которые как раз относятся к тупому запоминанию без достаточного понимания.
>> Угадайте какие оценки у меня были по истории

Вот поэтому вам и непонятно то, что я написал. Вы ещё ребёнок. Лет через 20 вы, возможно, оцените свои комментарии по другому.

А пока — учитесь как умеете. Вам не встретились хорошие преподаватели, которые поставили бы вам этот навык, а сами вы его не будете развивать по вами же указанным выше причинам (я и так умный, всё понимаю, но только из того, что мне «по фану»). Поэтому вам и потребуется лет 20.
Да, 35 еще ребенок. Спасибо. Просто привел где были оценки и все очевидно. Но я просто сейчас не занимаюсь математикой, а программированием. И запоминание не очень важно. Вон как раз после моего комментария ко мне в чатик постучался человек учившийся на математика, но тоже занимается не математикой, и спросил помощи в школьной комбинаторике. Думаете я сразу сказал ответ? Нет, полез на википедию и нашел формулу. Но у меня в отличие от того математика было понимание комбинаторики, а у него заучивание. На самом деле ни Сочетание ни Размещение для решения задачи напрямую не подходило, и он не мог решить задачу, а я просто посмотрел формулы, и сказал что вот тут разделить на 2 и все. Не нужно запоминание, особенно во время гугла. Понимание важнее. К слову я теперь backend программист, топовый в нашей компании, а он — ручной тестировщик. Хотя во время универа я и близко не понимал что там он в математике решает.
Поэтому и плодится множество убогих и даже просто страшных сайтов, программ и всего прочего. Их делали недоучки (а иногда просто зазнавшиеся недоумки). Но даже недоумка можно обучить и программированию и математике, но на такое обучение уйдёт существенно больше времени.

Если человек готов напрягаться и хотя бы самостоятельно решать предлагаемые задачи, то за год из него можно сделать уверенного миддла. Если человек работает и у него мало свободного для обучение времени, то придётся растянуть удовольствие на пару лет. Если за два года не смог осилить все задачи — скорее всего действительно не стоит заниматься умственным трудом.

Неделю назад работал на олимпиаде по программированию для школьников. Так вот, отдельные школьники, как я заметил, писали программы со сплошным перебором всех вариантов (в т.ч. для обработки матриц): куча похожих строк с использованием if-then-else или огромным блоком case. Понятное дело, хоть такие программы и могут решить задачку, но качество программирования стремится к 0. Спрашиваю — не лучше ли было бы через циклы сделать? Отвечает: так ему удобней, самое главное — ответ правильный получить (правильные ответы давались с заданиями). И как они прошли отбор на олимпиаду?! И какие из них выйдут квалифицированные программисты?!

Какой KPI поставили человекам, такой они и оптимизируют. Что в этом неправильного?

Специально для тех, кто в танке.

Вижу, что никто не понимает очень простую вещь — без труда не выловишь и рыбку из пруда.

Вы хотите гениальныых решений? Да ради бога, хотеть не вредно. Но сами-то гениальность в чём проявили? Это всё к тому, что меня тут все сношают на тему «да как можно без гениального креатива?!». А я вам всем отвечу просто — гением не становятся лишь от того, что на олимпиадах какой-то креатив смогли выдать. Гением становятся, когда много чего изучают. И слово «много» означает именно то, о чём вы все не подумали. Это реально много часто сухого текста.

Вы все считаете, что без подготовки, на одном прекрасном понимании, вы вдруг совершите чудо? Дак нет же, никакого чуда никто из вас никогда не совершал (признайтесь себе в этом честно). А вот учить много и долго многим из вас приходилось. И вы банально забыли этот процесс. Вы забыли, что пять лет (или больше) убили в ВУЗе на ту самую нелюбимую вами зубрёжку. Вам подсказать, как вы готовились к экзаменам? Вам повторить про количество раз, которое потребовалось вам для запоминания кучи формул? И наконец, вот сейчас, когда вы забыли большую часть зазубренных перед экзаменом формул, ну-ка накреативьте что-нибудь гениальное в той области, формулы из которой вы успешно забыли. Не получается? Но вы же за умные решения, за понимание, и вы же против зубрёжки! И у вас не получается. С чего бы это?

Что бы программирование для вас стало простым, вы должны (обязаны, и других вариантов у вас нет) много-много раз повторять простые действия. Это называется монотонность. И это не называется креативом. И вы, много-много раз повторив мне про вашу креативность, ни разу не вспомнили про ту базу, которую в вас вбили насильно с самых малых детских лет. Ну конечно, ведь все вы вот такие креативные, а тупая зубрёжка — это не для вас. Ну и видеть дальше носа — тоже, очевидно, не для вас. Вот так вот получается, гениальные друзья мои.

Осталось добавить пессимистичных выводов о конечном результате эволюции вида homo sapiens…
Что бы программирование для вас стало простым, вы должны (обязаны, и других вариантов у вас нет) много-много раз повторять простые действия. Это называется монотонность

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

Если б и проверялось тоже по ним, то с огромным отрывом по памяти и скорости выиграла бы программа printf(правильный_ответ); :-)

Вообще, такого рода решения допустимы на олимпиадах. Если в задаче не слишком много возможных входных параметров, не слишком большой вывод, и непонятно, как решать задачу быстро, то можно запустить локально тупое решение, сгенерировать все ответы в виде кода, вставить это в исходник и сдать задачу. Это далеко не всегда возможно и считается, что это косяк составителя задачи. Но такие случаи бывали на серъезных олимпиадах.


Серъезно, давать все тесты с ответами? Да еще достаточно маленькие, чтобы участники могли вбить это все руками? Тут однозначно был косяк организаторов.

И как они до этого еще не додумались?! Хотя количество строк программы в этом случае может увеличиться еще на порядки.
Ждем статью «Программирование — это просто». Вот там и узнаем про все сложности :)
UFO just landed and posted this here

Ох, сколько же разбитых надежд было у нас на кафедре, когда мои однокурсники поняли, что разработка это сложно. Что если плохо кодить, то на защите курсовой можно повалиться, потому что не сможешь быстро сказать где что происходит.
А если ты покупаешь чужие программы, то ты никогда не сможешь их защитить, потому что их писал такой же оболтус.
Ну а про то, что грамотно писать код и нормально его отладить это надо лить пот, кровь и слезы это вообще отдельная тема.

А уж если код решает задачи, которые до тебя никто не решал…
Согласен с автором!
Будучи юным — сильно увлекался музыкой. До сих пор в кладовке прекрасный Fender Jazz Bass пылится.
Программирование очень похоже на музыку. Есть набор базовых алгоритмов, из них можно получить нечто новое, причем как в виде приложения, так и в виде оригинальных решений в коде. К тому же базовых алгоритмов у нас больше чем 7 нот.
Так что да, вероятно программирование это так же «не для всех» как и музыка.

Программирование — это ни просто, ни сложно. Это просто некоторое количество действий, предназначенных для написания программ.
Есть очень простая часть программирования, не требующая навыков разработки архитектуры и знания какого-либо языка программирования. Это программирование какой-нибудь бытовой штуковины. Простая программа, созданная нажатием нескольких кнопок и определяющая работу этой бытовой штуковины все равно остается программой, а процесс ее создания остается программированием.
Есть очень сложная часть программирования, требующая разделения розличных задач программирования между разными специалистами (от разработчика архитектуры до тестировщика).
И есть огромное количество промежуточных вариантов разной сложности.
Общее у всех этих вариантов программирования только одно.
Есть некоторое поведение, которое нужно четко описать для некоторой штукоаины, умеющей выполнять определенные команды.
Процесс описания этого поведения понятным для штуковины образом, включая тестирование, м называется программированием.

UFO just landed and posted this here
ИМХО, программирование — это просто. И изучение программирования это тоже просто. По крайней мере, это не более сложный процесс, чем изучение чтения, письма, арифметики и богословия в приходской школе. Просто если вас не обучали арифметике в 6 лет — то в 20 это конечно же будет сделать сложнее.
Тестировщик, когда пишет автотесты — программирует. Сисадмин, пишущий скрипты — программирует. Девопс, несомненно, программирует тоже. Программирует датасаентолог, и программирует специалист по ИИ (к слову, почему у этой профессии до сих пор нет емкого названия?). Программирует математик и физик. И даже бизнес-аналитики программируют, пусть и в экселе. Для моих знакомых экономистов программирование — львиная часть работы. Я убежден, что поскольку все эти люди программируют и используют программирование для работы — они программисты. И для каждого из них обучение программированию — это просто одна из частей их профессиональных навыков, при чем скорее всего самая простая.

Так же и для разработки ПО, т.е. для софтверной инжинерии, которая и подразумевается в подобных текстах, программирование это просто первый, базовый и простейший навык, в изучении которого нет никакой сложности. Переменная и константа, последовательность, ветвление и цикл, ввод и вывод, массивы и матрицы, функции и их композиция — это, собственно, и все программирование. Этому может научиться любой.
Но разработка — это инженерная дисциплина, или, как минимум, ремесло, и программирование — это просто капля в море, по сравнению со всем остальным. И да, по моему мнению софтверный дизайн, паттерны, идиоматика конкретного языка, владение конкретными интрументами, знание конкретного фреймворка, бекграунд в CS, алгоритмические навыки, знание предметной области и все такое — это уже не программирование, это уже часть этой самой инженерии. И вот это вот сложно. А программирование это просто.
UFO just landed and posted this here
Чем дольше работаешь, тем программирование становится сложнее

Фразу "Научи меня программировать" я слышу как научи меня думать… Кодить можно — тут запомнить только синтаксис языка. А вот программировать — уж извините, тут научить нельзя, только научиться.

Хотя тут многие пишут, что чем дальше, тем сложнее, но позволю себе возразить и сказать: «чем дальше, тем проще». И вот почему.

Наверное, программирование, как и любая другая (умственная) профессия не является сложной для человека уже освоившего профессию. Разве хирург во время операции думает как ему тяжело сейчас(не хотел бы попасть к такому)? Я думаю, что нет. У него многое уже доведено до автоматизма, в том числе принятие тех или иных решений. Поиск новых решений основывается на предыдущем опыте и когда этого опыта достаточно, мозг довольно быстро предлагает решение для поставленной задачи. Мы же тоже нейронки. Поэтому сложность программирования это вопрос сложности обучения тому или иному направлению программирования(какое-то проще, какое-то сложнее). То что 5 лет назад мне казалось сложным, сейчас является обыденным и поэтому я и говорю, что «чем дальше, тем проще».
Мне кажется, что программирование это не сложно и не просто, но для него нужен особый склад ума. Он пересекается с математическо-физическим.
Так же, как и для музыкантов и художников желателен свой склад ума, иначе будет херовый результат.
От статьи свинцовый привкус гугл-транслейта.

Вот только забыли сказать что программа которую Джон написал по ТЗ записному на салфетке из 2 строк за 2 часа в 2 часа ночи после звонка идиота из генеральных директоров который разбудил его и заставил встать с неудобного дивана после 10 часов другой авральной работы и 2 часов дороги по загазованному городу в спальный район полный бомжей где зайдя в однокомнатную квартиру которую снимают 3 других студента на нетбуке с сухими слезящимися красными глазами гробя здоровье кофеином.


И эта программа на 700 строк кода где он в одном месте ошибся в цикле внезапно для тех-же 10 миллионов человек которые заплатили за неё по 1$ экономит 2 часа работы каждый день то в итоге имеем:


1e+7 людей на 2 часа = 2e+7 часов
2e+7 часов / На 16 часов = 1250000 человека дней — 156250 дней = 18750000
18750000 человека дней / 356 дней = 52668 лет
52668 лет / 64 человеко-жизни ~ 822.9 человек


822.9 человек Джон не убил а спас в цену за 1$ и принес помимо прибыли с жизни 822.9 (налоги, рабочая сила и т.д и т.п) своей родине еще и 10 000 000$ своему шефу.


А получил за это


  • строгий выговор и штраф в 1000$ от этого идиота который платит Джону за всю его работу а не только эту всего 120000$ в год.
  • лютую ненависть от этих 822.9 нелюдей
  • зависть всех бомжей на улице
  • и ВаПщЕ оН СтРаННыЙ бОтаН пГыЩяВый для всех девушек

Как-то так.


В эту игру можно играть в обе стороны "товарищи" менеджеры и тут мы задавим вас на своем уровне.

HTML — язык программирования. Декларативный. Как и SQL, например.

Прошу прощения, Вы это сейчас серьёзно? Быть может, человек, который пишет документы, используя Latex, тоже программист?

Новые версии HTML — теперь тьюринг-полные, как и Excel.
Хоть и большинство людей на них не пишет никаких программ (даже простейших), но тьюринг-полнота позволяет при большом желании это делать.
Разве HTML умеет что-то считать? Я знаю, что в CSS появилось что-то такое, но CSS — это же совсем другой язык…
UFO just landed and posted this here
Выводите унтерменшей, я собираюсь написать комментарий.

Да, черт побери, чем глубже в лес тем толще бревна. Когда часто осознаешь ограничения мозга в области его оперативки, когда не получается уместить все дерево возможных путей развития событий, и приходится разбивать на отдельные логические компоненты, логику взаимодействия которых реально видеть в уме разом. И когда наконец напишешь код и запускаешь его, осознаешь ещё раз что все равно что то упустил, а потом ещё раз осознаешь когда код уходит тестировщику. И это все до того как придёт юзер со своим нестандартным мышлением.


Но ведь за это и любим эту работу, нам нравится над собой издеваться )

Во Франции есть хорошее разделение на кодеров, которые пишут функции и участки кода по четко сформулированным инструкциям, все вокруг уже покрыто тестами… как квест легенький пройти.
И SW инженеров.
Первые могут пройти 3х месячные курсы после какой нибудь другой вышки, а вторые были выдраны в хвост и гриву в течении 5-7 лет жесткого обучения.
Первые в индустрии обычно ограничены ростом, только если конечно не гений, но таких 1 на тысячи, а вторые почти не ограничены.
Это хорошая иллюстрация разделения на просто и сложно. Для первых все просто, для вторых все уже очень не просто, т.к. они заглянули в кроличью нору и знают ее глубину.

Недавно тут проскакивала статья о человеке пытавшемся устроится в яндекс, он не мог оценить О алгоритма, гордился тем что не использовал эту нотацию в своей карьере предыдущей. Тета нотация к примеру скорей всего в этом контексте фантастика.

Есть другой хороший маркер в професии — производительность, почему она от одного человека к другому может меняться в десятки раз, а иногда в бесконечность. Кто-то может за неделю, кто-то за месяц, а кто-то и за год не может, хотя все вроде знают предмет.

Ну и последнее — люди в первых комментариях спрашивали определение сложно и примеров по возможности:
Сложно — это количество знаний в разных областях (алгоритмы, математика, архитектура, аппаратное обеспечение, физика и тд и тп), которое требуется чтоб принять взвешенное решение в каждой новой задаче которая появляется перед вами.

Если вы думаете, что я преувеличиваю позвольте привести пример — представьте что ваша компания разрабатывает ASIC ваша задача как инженера SW помочь аппаратной команде разделить функцинал между аппаратными частями и программными, помочь спроектировать интерфейсы взаимодействия, переложить часть алгоритмов в софт с жесткими ограничениями по сложности, памяти. Там вам понадобятся и О большое (тета и омега), математика, физика…
Все просто пока вы выполняете однотипные задачи по шаблону/инструкции, но как только нужно выйти за эти рамки и делать что-то новое тут начинается сложное — чтоб принять правильное решение нужно огромное количество знаний и уметь ими пользоваться и стэк оверфлов тут уже не поможет, если нет образования и кругозора Вы даже не будете знать какие ключевые слова гуглить.
Когда то прочитал, что из хирургов выходят хорошие программисты. Перед операцией хирург должен продумать многое: точный порядок действий, возможные осложнения и пр. Продумать надо всё заранее, потому что в момент операции (которая часто ограничена во времени) ему уже некогда думать — надо делать. Потом жизнь свела меня с одним действительно Специалистом, и он попросил меня приобрести ему компьютер. В начале 2000-х я многим друзьям, занкомым (и даже каким то малознакомым знакомых друзей) заказывал компьютер «в разборе», собирал, устанавливал ПО и проводил «первичное обучение». Так вот. У многих это обучение было, скажем так, довольно тяжёлым. Приходилось повторять по несколько раз одно и тоже, приходить по несколько раз к людям домой и показывать — как в Excel-е сложить две ячейки. Но вот с хирургом всё было просто великолепно — на лету схватывал, всё сразу запоминал. Один раз увидел, как я устанавливал драйвера к принтеру, потом сам научился устанавливать драйвера — следующий принтер он уже сам подключал.
Мне кажется, умение программировать — это просто что то, зашитое в генах. Как объём лёгких. Если он у тебя маленький — тебе нечего делать в силовых видах спорта. Как кенийские бегуны, которые берут медали на олимпиадах не потому, что долго тренировались, а потому, что это их гены.
согласен. Мне вот точно не дано. Мне кажется программирование это вообще САМОЕ сложное что может быть.
Помню, пришёл работать в банк. Как то меня позвали поучаствовать в решении одной проблемы. Я сказал, что проблема тяжёлая, надо разобраться как с фронта передать на бэк, почитать документацию, выяснить api, оценил работу по времени. Через какое то время интересуюсь «когда делать то»? Мне в ответ «плохой ты программист, вот наш взял и быстро сделал». Интересно стало. А сделал он просто — прямо из JS делал запись в базу. Из фронта в базу, минуя бэк. На мой вопрос «а ты уверен в правильности такого архитектурного решения», он сказал «мне пофигу на архитектуру, работает — и ладно». Через какое то время это парень с банка уволился. И, где то через пару лет я встретил его за обедом (на бизнес ланче) в одном кафе. Разговорились, спрашиваю — где работаешь. Он говорит — в мебельном магазине. Сначала работал рядовым продавцом, потом поставили руководить другими менеджерами. Сказал, что работа ему очень нравится. Интересуюсь — а зачем ты тогда в программирование пошёл? Говорит — у меня папа программист. С детства заставлял программировать. Он и научился. Но, душа к этому абсолютно не лежала. А теперь он работает с компрьютером только как пользователь — в программе бланки заполняет. И, не рвётся больше в программисты. Не потому, что не может, а потому, что не хочет.
К чему это я? Да к тому, что можно любого научить каким то азам программирования, что он даже будет что то делать. Но, если тебе это не приносит удовольствия, вряд ли ты станешь действительно хорошим программистом. И, надо прекратить мучить себя, а найти работу, на которой будешь действительно счастлив.
Это только одна из нескольких историй, когда люди уходили из It и были счастливы.
я не работаю программистом, я проектировщик. Просто читаю Хабр и понимаю на сколько я далёк, на столько, что не единого слова не понимаю. Фронт, база, бэкенд и т.д.
Ирония в том, что вы с многим из этого знакомы, сталкиваетесь каждый день, пользуетесь, но не называете этими терминами.
UFO just landed and posted this here

На мой взгляд, вы говорите не об умении "программировать", а об умении "диагностировать проблемы и решать их".

Скорее, об отношении к It. Ведь хирург привык решать проблемы «не по мере поступления», а предвидеть их, продумывать действия «на перёд». Должен чётко знать «из чего устроен другой человек». Как в программировании. Прежде чем лезть в программу, надо изучить язык, изучить бизнес-логику. И лишь потом соваться внутрь… Программисту држе проще — даже при наличии дедлайна ни кто не умрёт, и всегда можно в гите откатиться…

Боже мой, как же вымораживают люди, которые преувеличивают важность своего занятия. На протяжении всей статьи вместо слова "программирование" можно подставить любую другую сферу деятельности, и все эти тирады о "сложности" также будут "верны".


Я не говорю, что стать хорошим программистом — легко. Но освоить с нуля эту профессию также сложно, как и что-либо другое, особенно будучи уже взрослым. Это не такое вот именно программирование по-особенному сложное. Это само по себе самостоятельное осознанное обучение — сложное. Любое непривычное для мозга занятие будет очень тяжело даваться, и програмированние в том числе.


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

Помнится, как то работал на Маслосырзаводе. Сижу, думаю над кодом. Заходят шоферА. Увидели меня: «А, программист, у тебя работа лёгкая — клавиши нажимать». Встаю и говорю «Давай посмотрим, у кого работа легче. Я сейчас буду твою тяжёлую работу делать — сяду за руль, и буду молоко развозить. А ты мою лёгкую — садись за компьютер.». Он опешил «так ты же пять лет учился»…
На первом курсе универа наша группа насчитывала 35 человек, к концу года было 20, к концу 4-го курса из 3х групп сформировали 1 из 22 человек, впереди было еще 2 года учебы и люди отсеивались не потому что были не мотивированы, а потому что не тянули нагрузку.
Я к чему это — мало запоминать, мало быть хорошистом/отличником, нужно иметь определенное мышление и способности, уметь держать здоровые модели в голове и оперировать абстракциями. Если для вас любое начинание дается легко — я могу только за вас порадоваться, но не все такие.
В ворде можно научиться писать всем, простенькие скрипты писать тоже, сейчас в профессию затягивают как пылесосом, лишь бы хоть что-то мог, но не стоит по средней температуре в палате вычислять нормальную температуру тела.
Опять же «держать модели, оперировать абстракциями, итд итд».

Человек выше пошутил, сравнивая вождение и программирование — удобно ставить разговор в такой ракурс, но давайте не будем придуриваться и бежать в крайности.

Я лишь хотел сказать, что вот подставить на место «программирования» любую другую область — то ваше утверждение в духе «нужно иметь какую то предрасположенность/быть таким то сортом людей» тоже окажется верным. Попробуйте с нуля освоить бух-учет, например. И не просто дебет с кредитом различать, а полностью читать баланс и p&l. Или попробуйте освоить создание музыки, или осилить пол-iron-man, или… да что угодно. С нуля во взрослом возрасте. Всё это будет сложно. Во всех этих занятиях бОльшая часть начинающих — отвалятся. Но не потому что «с рождения у них нет предрасположенности к n». А просто потому что это сложно — с нуля, систематически углубляться в новое.

Дело не в программировании, а в обучении впринципе.
Хорошо, ваши примеры, как я понимаю, вы не относите к крайностям и их можно использовать для сравнения?
Бух учет — сколько ему учатся, какие дисциплины и сколько учиться инженер программист и какие у него/нее дисциплины? Это сравнение, беспристрастное — даст вам представление о сравнении сложности.
Почитайте:
Бухгалтерия: www.masu.edu.ru/education/additional/programs/bukhgalterskiy-uchet-analiz-i-audit
Компьютерные науки (Основные учебные курсы): spbu.ru/postupayushchim/programms/bakalavriat/matematika-i-kompyuternye-nauki

Если мы говорим про хирурга — учатся еще дольше, риски выше как и ответственность и да, на мой взгляд хирургия (если это конечно не порезы штопать) сложнее и более стрессовая область чем программирование, как и многие другие области.

Играть в игру мы тут все победители, достаточно участвовать наверно это слишком. Какие то профессии простые, какие то сложнее, а какие то доступны лишь не многим, так было, есть и будет.

И конечно я согласен, что заходить в специальность с возрастом сложнее, но опять же смотря в какую, везде свой порог и свои особенности. После 40 вы уже не станете физиком теоретиком почти наверняка, дворником легко.
Наверное, сложно разговаривать, сравнивая условный «бухучет» и «программирование» в целом. Опять же, непонятно какой уровень профессионализма одной области можно сопоставить с другой. Возможно вы правы по поводу того, что программирование в целом — более обширная сфера, чем тот же бухучет. Но я имел ввиду немного другое. Когда говорят, что «для программирования нужно иметь определенный склад/оно не для каждого» и пр.

Я считаю, что на самом деле, это такая рационализация людей в первые, самые сложные времена постижения новой сферы. То есть тут что бухучет, что программирование, первый год-два будет выносить мозг неподготовленному. Всё будет даваться тяжело, и ничего не будет понятно. Наверное, на этом этапе многие и забрасывают полноценное вхождение в ай ти. Но это также было бы справедливо и для бухучета, если бы он был таким же популярным, как айти.

Ато мне это видится как какое-то скидывание ответственности. Вот не осилил человек программирование, и говорит, мол, «у меня не такой склад ума/мне не дано...». Да нет же, тебе в любой области будет также тяжело на старте. Уж не верится мне, что программирование — ну это прям никак не поддается понимаю при должном упорстве. Да, кому-то это дается быстрее, а кому то — медленнее. Но нет такого, что «программирование доступно только такой то группе людей», ибо «мышление не то». Глупость же.

Больше верится тому, что люди используют это для того, чтобы поднять чувство важности за счет своего занятия.
работал я на одну фирму
тамошний главбух был гением своего дела
придумывать схемы законного ухода от налогов — это вам не журнал посещений в школе вести
это был реальный мозг, специалист по переработке крючкотворства и реальной информации

поэтому я не сравнивал свою работу с его
мы вместе на одинэске сделали конфу которая экономила адские проценты
UFO just landed and posted this here
Дело не в программировании, а в обучении впринципе.


Не… Дело не в обучении, а в ОБУЧАЕМОСТИ. У каждого есть свой потолок, выше которого его не обучить, как ни старайся. Не каждый сможет освоить программирование. IMHO, количество людей не земле, которые могут стать программистами меньше, чем количество людей, которые могут стать бухгалтерами, но больше, чем количество людей, которые могут стать хирургами.
Приготовление пищи — это сложная задача, требующая терпения и внимания к деталям, много знаний и опыта.

Любая задача может казаться сложной, если она выполняется не достаточное количество времени для автоматизации паттернов. В среднем, по моим наблюдениям для овладения практически любым навыком, требуется пол года или 6+-1 месяцев. Вопрос, чего ты хочешь достичь?
по моим наблюдениям для овладения практически любым навыком, требуется пол года или 6+-1 месяцев

Уверенно ляжете под нож хирурга обучавшегося полгода?
любое дело, за которое берешься вначале сложное, будь это или изучение языков программирования, или ремонт автомобилей.
Ссылку на эту статью я буду давать знакомым в ответ на просьбы: «научи куда тут нажимать чтоб как пограмист бабки загребать».
Лучше отвечать, что бабки у нас загребает только тот, кто сам научился, без показа.