Top.Mail.Ru
? ?

Предыдущий пост поделиться пожаловаться Следующий пост
Вы все не смогёте
lex_kravetski
Как сообщают с мест, люди столь сильно отличаются по врождённым способностям, что большинство из них невозможно обучить алгебрам Ли, программированию на C# и теории категорий.

От себя добавлю: «а также кунг-фу, карате и множеству других страшных слов».

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

На обучение основам программирования на C# с полного нуля уйдёт месяц–два. А где-то так через год упражнений можно уже идти устраиваться на работу.

Да-да, любому: оно всё такое сложное исключительно в воображении.

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

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




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

А вот научится играть на рояле зная только основные принципы - ну никак. Или ездить на велосипеде. На машине. На самолете. Потому что еще и моторику нужно отрастить. А это время, и практика, и плохо масштабируется - нельзя уметь ездить на велосипеде на 10%.
Опять же, это не к тому, что есть вещи, которым научится невозможно, но есть вещи, которым учится объективно сложнее - вот по вышеперечисленным причинам.

> А вот научится играть на рояле зная только основные принципы - ну никак.

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

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


> А это время, и практика, и плохо масштабируется - нельзя уметь ездить на велосипеде на 10%.

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

"Нельзя уметь ездить на велосипеде на 10%"

В СМЫСЛЕ НЕЛЬЗЯ!?

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

> На обучение основам программирования на C# с полного нуля уйдёт месяц–два. А где-то так через год упражнений можно уже идти устраиваться на работу.

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

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

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

Все, кто реально умеет программировать, кодингу не учились вообще никогда.

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

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

Возможно даже китайскому языку научить, и даже за год. Вопрос в том, где вы возьмете мотивацию для ЛЮБОГО, чтобы он нашел в себе силы и желание преодолеть эту сложность. Вот тут будет засада ибо "врожденные" способности лениться и забывать могут быть действительно колоссальны.

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

Мотивация и счастье — совсем не то же, что способность научиться. Не надо путать.

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

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

> Объяснить что такое алгебра Ли можно, но без понимания зачем их придумали толку от этого знания как от "крокодил это пресмыкающееся".

А чего мешает объяснить, зачем их придумали?

Точнее, даже нет, а в чём смысл этому учить, если не объяснять, зачем их придумали?


> А программирование это навык.

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


> Примерно как играть на гитаре можно научить каждого, но стать реально хорошим гитаристом научить нельзя.

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


> Ты либо родился с предрасположенностью, либо нет.

«Я утверждаю это, основываясь на ниначём».

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

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

Давеча на Хабре гражданин жаловался (https://habr.com/ru/post/521104/), что программисты, принятые на работу, все задачи решают через гугл. Из-за неумения писать код на листике из головы, дескать, очень быстро (за полгода) выходят на плато продуктивности и дальше с них требовать "больше и лучше" бессмыссленно. Не творцы, не способны. Сразу возникло два вопроса к гражданину-начальнику: 1. Ты хочешь бесконечный рост продуктивности за ту же оплату, что и при приеме? 2. Ты серьезно уверен, что каждому надо бесконечно расти над собой? И что "уметь писать код на бумажке в комнате без интернета" - без вариантов главное необходимое условие, дающее пропуск в светлое будущее творца неограниченных возможностей?

Мне показалось - это разновидность апологета "музыка только через сольфеджио", но в IT. И ладно бы, платил раза в 3 больше рынка - тогда можно создавать ковчег будущих гениев...

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

За такие слова вам крабы (из ведра с крабами) клешни не подадут!)


Согласна с идеей. Но она требует проверки.

И в реальном мире есть определенные трудности с практическим воплощением этого постулата - даже в очень богатых и социалистических странах


> Но она требует проверки.

Нулевая гипотеза не требует проверки. Проверки требуют альтернативные ей.

  • 1