Как научиться писать код


как начать писать код / TeachMePlease

Окончил курс по языку программирования, но писать код не научился. С подобным сталкиваются многие новички. Пользователи Reddit описывают проблему так:

  • Я прошёл онлайн‑курс по Python, но всё равно не знаю, как написать полноценную программу.
  • Я знаю теорию, но не могу применить её на практике.
  • Я знаю, что такое цикл while, но не знаю, как и в каких случаях использовать его.

Разбираемся, в чём может быть проблема и как её решить.

Проблема: искусственная среда программирования

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

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

Проблема: чрезмерные руководства

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

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

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

Синтаксис — это просто набор символов, которые используются для определённого языка программирования. Можно провести параллель с естественными языками: умение написать и произнести фразу на французском “S'il vous plaît” не имеет смысла, если вы не знаете её значения.

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

Решение 1: использовать реальные среды разработки

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

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

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

Решение 2: писать код с нуля

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

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

Не копипастите чужой код. Если вы используете работающих чужой код — вы ничему не научитесь. Изучайте чужой код, но не копируйте!

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

Решение 3: писать много кода, очень много кода

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

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

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

Решение 4: просить о помощи

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

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

Чтобы получить корректный ответ на свой вопрос, стоит научиться правильно составлять запрос:

  1. Скопируйте сообщение об ошибке, которое выводится в редакторе и укажите его в вопросе.
  2. Нет сообщения об ошибке, объясните, какого результата вы ожидаете от работы программы, и что происходит при её запуске на самом деле.
  3. Вставьте фрагмент кода, укажите код полностью в посте, если он небольшой. Если большой — используйте Github Gist или Pastebin и укажите ссылку на код.
  4. Отформатируйте код. Не вставляйте его обычным текстом, используйте редактор кода.
  5. Напишите, что вы уже пытались сделать с кодом.
  6. Используйте корректную терминологию — в этом вам поможет изучение теории.

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

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

Источник: When You Know the Basics, but You Still Can't Code

81 из лучших мест, где можно бесплатно научиться программировать

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

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

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

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

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


Содержание

Обратите внимание: вся информация, преподаваемые темы и т. Д. Были приняты во время обновления (июль 2020 г.) и определенно могут быть изменены. Спасибо!

Начать кодирование сейчас

Прекратить ждать и начать обучение! Получите мои 10 советов, как научиться программировать.

Успех! Теперь проверьте свою электронную почту, чтобы подтвердить подписку.

.

Как научиться программировать, быстро

Эта статья посвящена тому, что делать и чего не делать при обучении программированию. Он также даст вам советы о том, как учиться наиболее эффективным способом. Эти советы основаны на опыте Наташи Постоловски как разработчика-самоучки, которая сейчас работает разработчиком программного обеспечения в ThoughtWorks в Австралии. Вы можете подписаться на нее в Twitter по адресу @npostolovski.


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

Наличие такого количества доступных учебных ресурсов - это хорошо, но это также проблема.

Когда вы хотите научиться программировать, с чего вам следует начать?

Что вы изучаете, а что - нет, ?

Как лучше всего практиковаться и как можно быстрее улучшить свои навыки?

Эта статья призвана помочь ответить на некоторые из этих вопросов.

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

Четко сформулируйте свои цели

Люди учатся программировать по разным причинам. Вам может потребоваться изучить основы как JavaScript, так и Ruby, чтобы подать заявку на работу в качестве младшего разработчика полного стека. Возможно, вам нужно знать достаточно HTML и CSS только для завершения школьного проекта, или, может быть, вам нужно немного изучить Python, чтобы иметь возможность выполнять анализ данных с помощью Numpy.У вас может быть идея для iPhone-игры, которую вы хотите написать на Swift, или захватывающая концепция для первой хитовой игры в виртуальной реальности, созданной с помощью Unity 3D. Ваша идея стартапа на миллиард долларов может потребовать сложного машинного обучения или вам может потребоваться простое программное обеспечение, которое поможет решить проблему в вашем малом бизнесе. Есть тысяча причин, по которым кто-то может захотеть научиться программировать, и тысяча различных способов подойти к процессу.

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

Как правило, я рекомендую следующее:

    • Если вы создаете статический веб-сайт (это означает, что ему не нужно хранить данные или иметь динамическое поведение), подумайте об изучении HTML и CSS для начала. Вы также можете в конечном итоге решить изучить JavaScript, если вам это нужно.
    • Если вам нужно создать приложение для iOS, изучите Swift. Если вы создаете приложение для Android, изучите Java.
    • Если вы хотите создать веб-приложение, вам нужно изучить HTML, CSS и веб-платформу.Веб-фреймворк - это то, что упрощает вам хранение данных и добавление динамического поведения в ваше веб-приложение, например, возможность иметь учетные записи пользователей и отображать данные из базы данных. Некоторые популярные веб-фреймворки включают:
      1. Django, написанный на Python
      2. Ruby on Rails, написанный на Ruby
      3. Meteor, написано на JavaScript
      4. Laravel, написанный на PHP
    • Подходящий для вас веб-фреймворк будет зависеть от того, что вы пытаетесь создать.Я действительно думаю, что Ruby on Rails - отличный вариант для тех, кто учится программировать, поскольку он очень хорошо документирован в руководствах Rails.
    • Подходящий для вас веб-фреймворк будет зависеть от того, что вы пытаетесь создать. Я действительно думаю, что Ruby on Rails - отличный вариант для тех, кто учится программировать, поскольку он очень хорошо документирован в руководствах Rails.
    • Если вы хотите создать игру, вам следует рассмотреть возможность изучения Unity.
    • Если вы хотите заниматься наукой о данных или машинным обучением, Python плюс эти библиотеки - хороший выбор.Библиотека - это некоторый заранее написанный код, который упрощает выполнение определенных задач, таких как отображение диаграммы рассеяния.
    • Вы даже можете пройти этот тест, чтобы узнать, какой язык программирования вам больше всего подходит.

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

В идеале вы можете сформулировать такое утверждение:

Через 3 месяца я хочу опубликовать сайт группы моего друга.

Или…

Через 6 месяцев я хочу запустить работающий MVP или версию моей бизнес-идеи « Minimum Viable Product ».

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

Узнайте, как лучше всего учиться

Нет лучшего способа научиться программировать.

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

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

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

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

Например, еще в 2006 году, когда Ruby on Rails только начинал набирать популярность, многие программисты сначала изучили Ruby, прочитав книгу, ласково известную как «Кирка-книга», названная в честь изображения кирки на ее обложке. Книга «Кирка», состоящая из 864 страниц, в которой исчерпывающе подробно описывает все аспекты языка программирования Ruby, стала легендой среди программистов Ruby.И все же для того, кто изучает код впервые, это может быть очень трудным местом для начала!

Работайте над тем, что для вас важно

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

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

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

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

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

Найдите хорошую компанию

Будь то наставник или кто-то из ваших знакомых, который также учится программировать, наличие кого-то, кто вас поддержит, неоценимо. Научиться программировать может быть сложно, и полезно знать, что кто-то другой переживает те же трудности. Если вы не знаете никого, кто учится программировать, вы можете попробовать познакомиться с ними, посетив местные технические встречи на Meetup.com. В некоторых группах встреч проводятся вечера «для новичков», которые привлекают много новичков. Если в вашем районе нет местных встреч или встречи просто не для вас, то такое сообщество, как CodeNewbie.org - еще одно отличное место для поиска поддержки. Если идея научиться программировать вместе с группой других людей кажется вам прекрасной, возможно, стоит изучить курсы для начинающих по кодированию.

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

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

Будьте последовательны

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

Отслеживайте свой прогресс

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

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

Отделка вещей

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

Помните: лучше закончить одно дело, чем начинать десять дел и никогда не доводить до конца.

Сообщения об ошибках - ваш друг

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

Не пытайтесь выучить все



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


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

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

И помните, для этого нет сценария!

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

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

.

Как научиться писать красивый код?

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

.

Пожалуйста, не учитесь программировать - TechCrunch

Базель Фараг - инженер iOS (думает). Помимо процессоров GPU, роботов и искусственного интеллекта, Базель любит изучать информатику, астрономию и философию. Когда-то его называли «Дафт-Панком людей» - фраза, значение которой ускользает от него по сей день, но он уверен, что это комплимент.

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

Если вы регулярно обращаете внимание на культурные махинации Кремниевой долины, вы, несомненно, слышали о движении «Учитесь кодировать». Политики, некоммерческие организации, такие как Code.org, и даже бывший мэр Нью-Йорка Майкл Блумберг проповедовали то, что они считают необходимым навыком для будущих сотрудников.

В этом может быть доля правды, тем более что потребность США в инженерах не собирается снижаться.

Но картина более сложная.

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

Возьмите учебные курсы по кодированию. Поскольку основной поток узнал об успехах инженеров-программистов Кремниевой долины, каждый хочет создать стартап или стать инженером. Силиконовая долина HBO рисует картину, как люди в возрасте около двадцати лет проводят ночи, кодируя и куря травку, зарабатывая при этом миллионы долларов.Американская общественность поражена такими фигурами, как Илон Маск и Марк Цукерберг, которые, казалось бы, зарабатывают миллионы в мгновение ока. Лихорадка программирования достигла уровня Белого дома, когда президент Обама настаивал на принятии закона, чтобы включить информатику в учебные программы всех государственных школ.

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

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

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

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

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

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

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

Вы должны спросить себя: «А у вас он вообще есть?» и «Можете ли вы применить принцип Фейнмана и объяснить его так, чтобы другие могли вас понять?»

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

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

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

Он стал чемпионом.

Он знал, что простой код не решит проблему, но крутое, собранное решение проблемы поможет.

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

Технологии в этой отрасли меняются быстрыми темпами.

Всего несколько лет назад я использовал Objective-C; теперь я кодирую почти полностью на Swift.Прямо сейчас на вакансию претендуют разработчики iOS, которые никогда не писали ни строчки на Objective-C. Swift проще в освоении, он безопаснее, использует современные парадигмы разработки и изящен, чего никогда не было в Objective-C. Тот факт, что новые разработчики никогда не столкнутся с недостатками Objective-C, - это замечательно, но он игнорирует реальность профессии.

Не упускайте из виду реальность, будучи очарованными романтикой Кремниевой долины нашей культуры.

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

Что происходит с человеком, который целыми днями и ночами изучал Objective-C только для того, чтобы ужаснуться объявлению Swift на WWDC 2014? Продолжают ли они кодировать на том языке, который быстро становится языком меньшего выбора, или они начнут заново? Если вам двадцать с лишним лет, это может не вызвать затруднений, но если вы заботитесь о семье - с счетами, которые нужно платить, и ртами, которые нужно кормить, - задача становится титанической.

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

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

Действительно.

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

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

Именно настойчивость позволяет мне оставаться в этой области.

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

Привратники везде. Они выпускники Лиги плюща, которые верят, что задают такие вопросы, как «Как вы инвертируете двоичное дерево?» - лучший способ оценить чьи-то технические способности. Это одержимые тестами руководители проектов (признание: у меня несколько досок) и невежественные менеджеры по персоналу, которые перечисляют в объявлениях о вакансиях такие требования, как «Требуется 5 лет опыта программирования на Swift» (подсказка: выпуск Swift = 2014).Эти люди, к лучшему или к худшему, стоят между вами и достойной работой.

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

Заключительные мысли

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

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

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

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

.

Смотрите также