Офтоп Alexander Lashkov
9 693

Кейт Рэй, создатель Scroll Kit: научиться программированию на самом деле сложно

Кейт Рэй, сооснователь сервиса Scroll Kit, купленного WordPress, написала для TechCrunch пост о том, что главная ошибка людей, начинающих изучать программирование, заключается в том, что они рассчитывают легко справиться с задачей и не ожидают встретить на пути массу трудностей. На ЦП — русская версия этого текста.

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

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

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

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

Психолог Михал Чикчентмихалы (Mihaly Csikszentmihalyi) создал универсальную визуализацию процесса изучения, которая подходит для любой дисциплины:

На основе этого представления и собственного опыта, Кейт Рэй разработала «Рекурсивное руководство по изучению программирования» и сопоставила ему эмоциональные состояния ученика:

  1. Необходимо проделывать указанные в руководстве шаги, даже если изначально их смысл не ясен. Например, Хантер Томпсон набирал на печатной машинке произведения великих писателей, чтобы таким образом улучшить свое мастерство. На этом этапе ученик обычно полон оптимизма.
  2. Написав код, нужно для закрепления переписать его с нуля или модифицировать, не используя книгу или информацию из урока. Это поможет будущему программисту понять, насколько хорошо ему удалось разобраться в том, что он только что написал. В этот момент начинает возникать страх перед самостоятельной разработкой, что замедляет прогресс.
  3. Следующий шаг — попытаться создать средство для решения какой-то небольшой, но волнующей самого ученика проблемы. Рэй говорит, что это поможет осознать тот факт, что определить, в какую сторону начинать движение, очень нелегко. Здесь появляется отчаяние.
  4. Далее следует отыскать в сети урок на тему выбранного проекта и пройти по шагам, перечисленным в нём. После этого в голове ученика должны отложиться некоторые знания, и повыситься уверенность в своих силах.
  5. Затем нужно воспроизвести код самостоятельно, не подглядывая в материалы урока. Здесь опять возникает страх.
  6. Придумать новую, более сложную идею для проекта. Еще один этап, когда человеком может овладеть отчаяние.
  7. Повторить все шаги с самого начала.

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

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

#разработка #программирование #scroll_kit #кейт_рэй

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

Написать
{ "author_name": "Alexander Lashkov", "author_type": "self", "tags": ["\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430","\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","\u043a\u0435\u0439\u0442_\u0440\u044d\u0439","scroll_kit"], "comments": 19, "likes": 18, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 3905, "is_wide": true, "is_ugc": true, "date": "Sun, 25 May 2014 20:17:06 +0400" }
{ "id": 3905, "author_id": 729, "diff_limit": 1000, "urls": {"diff":"\/comments\/3905\/get","add":"\/comments\/3905\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/3905"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

19 комментариев 19 комм.

Популярные

По порядку

Написать комментарий...
14

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

Это называется SODD - StackOverflow Driven Development - зачем разбираться в сути проблемы, когда можно просто погуглить текст ошибки и найти готовое решение =)

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

А как же чувство эйфории и всевластия, когда удается разобраться в сути, решить проблему и насладиться полученным результатом? =)

Ответить
4

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

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

Ответить
1

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

А стать программистом не сложно, просто не надо испытывать иллюзий, что изучив python или php сразу станешь способен создать facebook или освоив JS сразу станешь писать приложения под iOS... а, пардон, там 13 летний пацан был, который еще в процессе изучения JS написал с пяток приложений под iOS :)

Ответить
1

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

Простите, наболело, всю неделю собеседовал таких программистов.

Ответить
2

Программи́ст — специалист, занимающийся написанием и корректировкой программ для компьютеров[1] (любых вычислительных устройств), то есть программированием. © Википедия

Все остальное - это деление по квалификации и поиски сферического программиста в вакууме.

А скорость найма - не показатель. Java/C#/PHP разраба наймут очень быстро. Haskell/F#/Erlang разрабы - будут долго и мучительно искать работу. При этом уровень квалификации и сложность выполненных ими проектов ничем не будут отличаться.

Ответить
4

Сомневаюсь, что квалификация разработчика на Haskell не будет отличаться от Java/C#/PHP. Как минимум знание алгоритмов/математики в большинстве случаев будет заметно лучше. С Erlang будет попроще, но если человек пишет на нем не потому что модно, а потому что на нем весьма удобно работать с потоками, то человек уж точно будет иметь больший объем знаний, чем PHP разработчик.

Ответить
0

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

Ответить
4

"научиться программированию на самом деле сложно" - научиться делать хорошо сложно в любой сфере.

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

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

Если честно - непонятно зачем эта статья здесь.

Ответить
0

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

Ответить
3

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

Последнее время для людей далеких от ИТ термин "программист" слишком просто подается. Кажется, что посмотрел пару курсов, погулил и готово.

Ответить
3

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

Ответить
1

Согласен и с тем, что с парой пройденных курсов программистом не стать.

Ответить
1

я не говорю, что рецепт курсы+гуглить.
Курсы более практика, потому что рассматривается чаще что-нибудь, показывающее как работает технология с MVP моделью.
Хочешь изучить - возьми эту хрень за основу, книг, гугл, и идею...и пили проект

Или я не прав?

Ответить
2

Ещё одна всё поняла

Ответить
1

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

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

Ответить
1

Авторы, вы когда переводите посты, не стесняйтесь ссылки из оригинала оставлять. А то ведь даже TC так не режет как вы.

Ответить
0

"Скрепка Помощник" мне в помощь.

Ответить
0

Страх и отчаяние в программировании.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Компания отказалась от email
в пользу общения при помощи мемов
Подписаться на push-уведомления
{ "page_type": "default" }