Как изучать программирование самостоятельно: метод Франклина — статьи на Skillbox

Содержание

Как эффективно изучать языки программирования? Отвечают эксперты

Ответ во многом зависит от языка программирования и сферы его применения.

Допустим, человек занимается научными исследованиями, и сотрудники его лаборатории в проектах используют Fortran — это одна ситуация. Другой вариант — студент, изучающий машинное обучение, который хочет писать проекты на Python. Ещё вариант: разработчик решил изучить С++, чтобы устроиться на работу в коммерческую компанию. Эти и другие ситуации требуют разного подхода и объёма прилагаемых усилий для изучения языка.

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

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

2.

Практика. В каждом языке есть свой «Hello, world!». Пытайтесь сразу же применять полученные знания на практике, закрепляйте освоенные конструкции языка.

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

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

5. Старайтесь, чтобы ваш код увидело как можно больше коллег, чтобы как можно раньше получить фидбэк на то, как вы пишете или оформляете код. Оформление кода или code style в крупных проектах — отдельная тема, и её тоже следует изучить. Также как и процесс code review.

6. Если вам требуется глубокое понимание языка (например если вы разработчик в крупной коммерческой компании), не ограничивайте себя изучением только его одного. Посмотрите вокруг на остальное: скриптовые языки, ассемблер. Задайте себе вопрос, чем они отличаются, почему устроены иначе, какую цель преследовали авторы этих языков? Изучайте различные фреймворки, библиотеки, погрузитесь немного в теорию компиляции, разберитесь с тем, как устроен процесс «сборки» проектов в разных средах.

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

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

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

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

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

Лучшие способы изучить программирование без зубрёжки | GeekBrains

Обучение через игры, видео и интересную литературу

https://d2xzmw6cctk25h.cloudfront.net/post/1612/cover_image/original-97c8aa2c2dadf25ca9661a6ad495e826

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

Обучение через практику

IT-мир давно задался целью сделать программирование массовым явлением. Началось это во времена перехода от огромных вычислительных машин к персональным компьютерам. Тогда, в 1960-е годы появился язык Logo, позднее – Basic и Pascal, а сегодня балом правит яркий Scratch. У каждого из них свой подход, но суть одна – для создания рабочей программы вам хватит нескольких минут на ознакомление с синтаксисом и интерфейсом.  Взглянем на пример Scratch.

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

✔ Шаг 1. Регистрируемся на сайте. Регистрация не требует немедленного подтверждения, и уже через пару минут мы оказываемся за рабочим холстом.


✔ Шаг 2.

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

✔ Шаг 3. Создаём простую программу, где наш кот-лиса пинает футбольный мяч. Таймер показывает +4 минуты.

✔ Шаг 4. Оформляем игровое поле, добавляем немного функций, и вот наш кот-лис забивает гол в ворота.

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

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

Обучение через игры

Вы можете увидеть эффективность этого метода, наблюдая за маленькими детьми.

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

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

Чтобы убедиться в этом на практике, посетите и проведите несколько минут на следующих сайтах. 

Codecombat — пожалуй, самая известная браузерная игра, связанная с программированием. В цене языки Python и JavaScript.

Empire of Code — космическая стратегия, где программирование – не необходимый навык, но очень полезный. И именно поэтому у вас будет стимул изучить JavaScript или Python.

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

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

Codewars — один из ведущих сайтов в области изучения и закрепления навыков программирования через задания и конкурсы. Поддерживаются языки Java, JavaScript, Ruby, Python, C#, Clojure, Haskell, CoffeeScript.

Обучение через видеоролики

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


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

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

Обучение через «правильную» литературу

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

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



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


 

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

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

Часто задаваемые вопросы

Мне как учителю часто задают следующие вопросы:

«Какой язык программирования мне учить, если я новичок?»

«Какой язык программирования пользуется наибольшим спросом в плане работы?»

«Какой самый популярный язык программирования?»

Топовые языки программирования

Если вы ищете официальнsq рейтинг языков программирования, вы можете найти его здесь: IEEE Spectrum top programming languages.

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

Как выбирать язык программирования

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

Если вы раньше пытались изучать программирование (или любую сферу STEM (Science, Technology, Engineering, and Mathematics — наука, технологии, инженерия, математика)) в школе, но безуспешно, – дело было не в вас. Хороший преподаватель любого кумулятивного предмета внимательно изучает учебную программу. При условии, что каждый ученик достаточно подготовлен, это прояснит, наличия каких знаний можно ожидать. Хороший профессор не рассчитывает на знания вне этой сферы. Всему, выходящему за пределы исходных знаний, нужно учить. Каждая тема учебного плана подается последовательно, в соответствии с другими темами.

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

Несколько советов

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

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

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

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

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

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

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

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

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

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

  • «Понятна ли мне эта тема?»
  • «Была здесь какая-то новая терминология? Если да, было ли формальное определение для каждого термина?»
  • «Были здесь новые навыки? Понял ли я, как их использовать в приложении? Смогу ли я показать свое понимание этого навыка, решая реальные задачи?»
  • «Буду ли я завтра помнить то, что только что выучил? А послезавтра? Если нет, как я собираюсь удержать это в памяти?»

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

1 — Основы компьютерных наук

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

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

2 — Логика высказываний (опционально)

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

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

Вы можете изучать логику высказываний с помощью этого руководства на YouTube: Basic Concepts in Propositional Logic.

3 — Программирование на Java

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

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

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

Если вы предпочитаете учиться по книге, я советую Head First Java.

Если вы ищете видеоуроки, я рекомендую видео № 1–19, 31–33, 88 и 93 курса по Java на YouTube, созданного Дереком Банасом: Java Video Tutorial.

Первый видеоурок из этого курса направит вас к скачиванию компьютерной программы под названием Eclipse. Это интегрированная среда разработки (Integrated Development Environment, IDE). Вы можете думать об «IDE» как о странном названии для текстового редактора, созданного для программистов. Это просто компьютерное приложение, предоставляющее текстовый редактор для программирования, а также другие инструменты для запуска ваших программ. Вот ссылка на видео Дерека Банаса о том, как скачать Eclipse: Install Eclipse for Java.

4 — Алгоритмы и структуры данных

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

Структура данных это способ организации данных в памяти.

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

Что касается меня, следующий туториал помог мне в развитии моих навыков, касающихся алгоритмов, от уровня новичка до эксперта: Udemy tutorial on Algorithms and Data Structures. Я приобрела много руководств по алгоритмам. Этот был самым понятным из всех. Хотите ли вы изучить алгоритмы и структуры данных или подготовиться к техническому интервью, это руководство — залог вашего успеха.

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

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

5 — Android-разработка

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

Вот самый лучший видеокурс о том, как приступить к изучению Android: Udacity-Android Development for Beginners.

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

Однако, если вы имеете желание потратить деньги на выдающуюся книгу, я крайне рекомендую следующую: Head First Android Development: A Brain-Friendly Guide. Эта книга дает детальные наглядные пояснения, что действительно помогает вам изучить концепции, на которых зиждется Android. Каждая часть проводит вас сквозь пример приложения. Все тщательно поясняется с использованием понятных каждому слов и диаграмм.

Полезные ресурсы

Stack Overflow это сайт, где программистам могут бесплатно помочь с их кодом. Если вы застряли и хотите задать вопрос, сначала поищите ответ на сайте самостоятельно. Если не найдете, создайте учетную запись и поместите вопрос самостоятельно!

Есть тысячи образовательных сайтов, где вы можете найти уроки по программированию. Среди моих любимых — Codecademy, Udemy, Udacity, Team Treehouse и Khan Academy.

***
Подписывайтесь на наш канал в Telegram!


Лучший способ изучить программирование самостоятельно

Автор статьи: admin

Метки: Новичку / Разное

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

1. Купите хорошую книгу:

Для начало вам надо купить хорошую книгу, под словами хорошая книга, я имею виду книгу, которую можно использовать как справочник, например, книга авторов Дмитрия Котирова и Игоря Симдянова «PHP 7 в подлиннике» или «Язык программирования C++. Базовый курс».

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

2. Внимательно читайте:

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

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

3. Практика:

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

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

Сколько времени уйдёт:

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

Вывод:

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

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

Статьи о том как учить конкретные языки:

Подписываетесь на соц-сети:

Оценка:

Количество оценивших: 3
Средняя оценка: 3,33

Загрузка…

Также рекомендую:

Реально ли выучить Java с нуля и стать серьезным программистом?

Реально ли выучить Java онлайн и стать серьезным программистом с нуля, если у вас нет никакого опыта в кодинге и других ИТ-специальностях, вы ничего не знаете о классах, методах и объектно-ориентированном программировании, и вообще всю жизнь думали, что Java — это остров в далекой Индонезии? Этим вопросом задаются очень и очень многие, в том числе и на просторах сайта JavaRush. Поэтому сегодня мы и хотели поговорить о том, реально ли изучить Java, если вам приходится начинать с самых основ. И, если ответ положительный, то как это сделать. Внимание, спойлер:

да, это вполне реально!

Java: учить или не учить?

Вот несколько цитат об изучении Java от обычных программистов, которые делятся своим мнением на популярном сайте вопросов и ответов Quora. “Смотрите на изучение языка программирования так же, как смотрели бы на изучение обычного иностранного языка, например, французского. Нет универсальных требований, после выполнения которых ты будешь знать этот язык. Можно выучить простые слова вроде “привет” и “спасибо.” Но это не значит, что ты можешь говорить на французском. Я, в свою очередь, — носитель английского языка. Я бегло говорю на нем, но я не знаю абсолютно все слова, которые есть в английском. И скорее всего никогда не узнаю. Поэтому мой совет: не смотрите на изучение языка программирования как на задачу, на которую можно выделить конкретный временной интервал, сделать ее и двигаться дальше. Это всегда путешествие, и, как правило, это путешествие длиною в жизнь,” — сказал Стюарт МакЭвен (Stewart McEwen), программист из Австралии. “Java — это океан. А все что вы видите вначале, стоя на берегу, — это только прибрежные воды. И вы хотите знать, сколько вам придется грести на своей лодке, чтобы переплыть океан. Времени всегда будет недостаточно. Сами решайте, насколько глубоко вы хотите изучить Java. Но если вы готовы к плаванию, то ныряйте, не откладывая,” — такой красивой метафорой ответил на вечный вопрос Киран Камнур (Kiran Kumnoor), индийский Java-кодер.

Базовые советы

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

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

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

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

  2. Не обращайте внимание на слова критиков.

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

  3. Не хватайтесь сразу за все обучающие материалы одновременно.

    Хорошим советом на базе собственного опыта поделился новичок в Java Питер Морган (Peter Morgan). “Java — мой первый язык программирования, и у меня нет технического образования. Одна из моих главных ошибок в самом начале: я пытался изучать Java, используя сразу множество доступных способов и источников информации — книги, форумы, видеолекции и т. д. Чтобы не тратить зря время и силы, советую сначала изучить доступные ресурсы и выбрать несколько хороших сайтов или книг, по которым можно выучить Java. После того, как вы определились с выбором, начинайте использовать эти ресурсы по одному. Если, попробовав один сайт или почитав какую-то из книг, вы чувствуете, что это вам не подходит, возьмите что-то другое. Но давайте каждому источнику информации достаточно времени, чтобы втянуться, не бросайте сразу,” — советует он.

  4. Не фокусируйтесь на одной лишь теории, ключ к успеху — в практике.

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

  5. Но не забывайте и о теории.

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

Учим Java с нуля — короткий путеводитель для новичков

Ну и напоследок поделимся кратким путеводителем по изучению Java с нуля. 7 шагов от полного ньюба до функционального Java-кодера, следовать которым советуют многие опытные преподаватели.
  1. Шаг 1-й. Начните изучать туториал или проходить онлайн-курс Java с практическими задачами.

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

  2. Шаг 2-й. Спрашивайте, спрашивайте и еще раз спрашивайте.

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

  3. Шаг 3-й. Если процесс обучения застопорился, почитайте книги.

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

  4. Шаг 4-й. Регулярно изучайте чужой код и учитесь на нем.

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

  5. Шаг 5-й. Начинайте отвечать на вопросы новичков.

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

  6. Шаг 6-й. Создайте собственный репозиторий на GitHub.

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

  7. Шаг 7-й. Начните свой проект на GitHub.

    Где-то месяца с четвертого или пятого, а для тех, кто быстро учится, может и месяца с третьего, когда вы уже достаточно освоитесь с основами программирования и синтаксисом Java, начинайте писать собственный проект и выложите его на GitHub.

Итог

Что получаем в итоге? При желании и настойчивости новичок действительно может стать Java-программистом, даже не обладая техническими знаниями, причем сделать это можно сравнительно быстро. Опыт показывает, что при правильном подходе более-менее функциональным кодером можно стать фактически за несколько месяцев. Но не стоит обманываться, это только начало бесконечного пути к совершенству. Ибо, как сказал один из Quora-экспертов, Java — это океан. P.S.: Ну и напоследок, в подтверждение всему вышесказанному, несколько совершенно реальных историй успеха новичков-гуманитариев, которые смогли стать Java-программистами с нуля, и сделали это в том числе с помощью нашего сайта:

С чего начать изучать программирование?

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

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

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

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

Язык программирования брать любой. Можно начать с простого, чтобы не забросить. Можно упорно трудиться и выучить С/ С++ , но потом другие языки дадутся очень просто. Если это веб, то html, css, javascript,MySQL.

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

1. bookflow.ru — хороший такой списочек ресурсов для программирования

2. bookwebmaster.narod.ru  — куча книг программированию, операциооным системам и не только

3. ulearn.me — интерактивные курсы от СКБ Контур

Остальное вроде все перечислили.  

Вот еще книги, о которых очень хорошие отзывы:

Эндрю Троелсен — С# 5.0 и платформа .NET

Брайн Харди — Программирование под Android

Дэн Фернандес — Программируем для удовольствия

Стив Макконнелл — Совершенный код

Удачи в начинаниях! 🙂

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

Главная ~ Статьи ~ Как самостоятельно изучить программирование?

Как правильно изучать программирование: метод Франклина

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

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

Самообучение программированию

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

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

Метод программирования по Франклину

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

  1. Читать книгу как обычно. Когда попадётся образец кода, прочитать его.
  2. Закрыть книгу.
  3. Попробовать набрать код.
  4. Повторить пункты 1−3.
Суть в том, чтобы усваивать мысленные образы — структуры данных, чувствительные к распространению. В этом случае мозг работает по принципу автокодировщика в машинном обучении.
«Автокодировщик — нейронная сеть, что пытается воспроизвести на выходе такие же данные, как и на входе, но с прохождением через промежуточный слой, который слишком мал, чтобы полностью представлять данные. В ходе этой процедуры он учит более компактную репрезентацию данных. Здесь в качестве нейронной сети выступает скопление дендритов в вашей голове», — пишет Джеймс Коппел.
Освоив метод Франклина, ищите информацию, которая бесплатно доступна в интернете в огромном количестве, особенно на английском языке. Вкратце план действий такой:
  1. Выучить английский язык (хотя можно найти немало курсов и на русском языке).
  2. Выбрать программу обучения. Определиться, какое направление программирования наиболее интересно.
  3. Найти учебные материалы по этому предмету.

Литература по программированию:
Образовательные ресурсы с курсами и лекциями
  • MIT OpenCourseWare: обучающие курсы, видеозаписи лекций и семинаров Массачусетского технологического института.
  • KhanAcademy: бесплатные лекции, в том числе по математике и информатике.
  • Coursera: курсы от ведущих западных университетов.
  • Статьи по программированию от Skillbox.
Учебная литература
Самоучители для начинающих
Самообучение для неподготовленного человека не так эффективно, как отработанные методики передачи знаний и навыков, которые гарантируют качественный результат без особых затрат. Тратить силы и время всё равно придется, но не в таком фанатичном режиме, как у самоучек.

Количество просмотров: 809
Опубликовано: 27.01.2020

Вернуться назад →

Как успешно научиться кодировать

by Lydia Hallie

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

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

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

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

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

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

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

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

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

Неважно, насколько вы хороши: не упускает из виду основы. Всегда начинайте изучать язык с самого начала и ничего не пропускайте. Основы чрезвычайно важны, и вы пожалеете об этом позже, если не обратите на них внимание! Да, вы всегда можете это сделать в Google, но это только сделает вас более медленным разработчиком.Если вы читаете документацию, начните с первой страницы (или 1.1 во многих случаях) и продолжайте читать дальше. Некоторым это может показаться пустой тратой времени, но поверьте мне: это не так. Обратите внимание на мелкие детали, и поблагодарите себя позже!
Если вам сложно понять основы, расслабьтесь! У тебя все будет в порядке. То, сколько вы боретесь прямо сейчас, абсолютно не означает, насколько хорошим программистом вы станете позже.

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

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

К счастью, у меня была Мила, чтобы все объяснить!
Сохранять мотивацию

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

Играть в игры любят все, независимо от типа игры. Людям нравятся игры, потому что вы мгновенно получаете удовольствие, чувствуете, что чего-то добились, и видите, как становитесь лучше в этом. Это идеальная формула мотивации! Мне удалось получить то же самое, но при кодировании вместо игр. И это намного проще, чем вы думаете.

Ставьте маленькие цели. Не потому, что вы не заботитесь об улучшении, а потому, что вы действительно заботитесь об улучшении. Составьте список дел, которые вы хотите сделать в этот день: может быть, это просто чтение 1 страницы, просмотр 1 курса или просто написание 10 строк кода. Если вы сможете сказать, что выполнили весь свой список дел, вы почувствуете себя удовлетворенным и гораздо более уверенным в своем прогрессе. Гораздо лучше сказать: « Я сделал все, что хотел сегодня, », чем сказать: « Я закончил сегодня только 2% курса ».Кроме того, даже если вы прочитали только 1 страницу или создали 1 поле для ввода, это все равно чрезвычайно важно знать. Мгновенное удовлетворение!

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

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

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

О чем всегда нужно помнить
  • Никогда не сравнивайте себя с другими разработчиками . Очень клише совет, но он очень важен. Не сравнивайте свою главу 1 с главой другого человека. Вы окажетесь на их месте намного быстрее, чем вы думаете! Я разместил это изображение выше, потому что знаю, что я бы испугался, если бы увидел это 4 месяца назад. Теперь я просто смеюсь над этим и даже могу заметить некоторые ошибки, которые я там сделал!
  • Вы добиваетесь гораздо большего прогресса, чем думаете. Каждый раз, когда вы учитесь или программируете, вы растете. Просто примите это (я знаю, что это сложно).
  • Вначале все борются, вы не одиноки, и это не значит, что вы будете плохим программистом. То, как вы сейчас себя чувствуете, совершенно нормально, и это всего лишь часть процесса обучения. Скоро вы оглянетесь на это разочарование, которое переживаете, и согласитесь со мной!

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

Не стесняйтесь задавать мне вопросы или запрашивать нужные ресурсы, отправив мне сообщение в моем Instagram или добавив меня в LinkedIn!

Что бы я хотел знать, прежде чем научиться программировать | Ави Фломбаум | Учить. Любить. Код.

Я начал учиться программировать в 11 лет, перепрограммировав компьютерную игру Nibbles… чтобы усложнить задачу.

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

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

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

1. Очень важно научиться работать с другими разработчиками.

Когда вы учитесь сами, возникает соблазн измерить, сколько вы знаете, тем, сколько вы можете сделать за определенный промежуток времени. Хотел бы я знать, что моя личная скорость не так важна, как моя способность работать с другими.Я думал: «Я добрался из пункта А в пункт Z за неделю. В следующий раз я хочу сократить это вдвое », когда я должен был думать:« Как мне добраться от А до F, когда кто-то другой переходит от F к M, а другой человек переходит от M к R. » Потому что и — вот как программирование происходит в реальном мире.

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

2. Знать, как что-то работает, — не то же самое, что знать, как это использовать.

В программировании существует множество архитектур и шаблонов. Когда вы начинаете учить себя, у вас, вероятно, есть один из двух вариантов: ( 1) вы можете игнорировать их или ( 2) вы можете использовать их, не обязательно зная, как они работают или почему они существуют. Например, если вы никогда не чувствуете боли, которую устраняет объектная ориентация, вы можете использовать объектно-ориентированный код, не понимая, почему он лучше, или вы полностью игнорируете объектно-ориентированный код и пишете все процедурно.

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

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

3. Никогда, никогда не бойтесь выставлять себя напоказ.

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

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

4. Старайтесь быть вашими героями.

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

5. Читайте книги, даже если вы их не понимаете.

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

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

6.Абсолютно важно, как выглядит ваш код.

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

7. Лучше разбираться в одном, чем быть знатоком ни в чем.

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

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

8. Руби может быть хорошим местом для начала.

( 7) здесь более важен. Конкретные языки не имеют большого значения для новичков, но в Flatiron School мы очень предпочитаем начинать с Ruby, прежде чем изучать другие языки, такие как JavaScript. Матц, программист, создавший Ruby, создал язык, чтобы радовать других программистов, и, на мой взгляд, Ruby действительно ценит ваше счастье. Он объединяет сложность, индивидуальность и множество подходов к каждому проекту.

Голландский ученый-компьютерщик Эдсгер Дейкстра однажды сказал: «Инструменты, которые мы используем, оказывают глубокое (и окольное!) Влияние на наши привычки мышления и, следовательно, на наши мыслительные способности». Это означает, что языки программирования могут действительно изменить то, как мы думать о проблемах. Мышление в Ruby не является близоруким или ограничивающим. Это раскрепощающий, выразительный способ мышления, и не случайно, что он также используется для создания замечательных вещей. Если бы мне пришлось учиться снова, я бы все равно начал с Руби.

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

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

10. Полностью влюбился в него.

Многие программисты, включая меня, скажут вам, что вы должны полюбить кодирование, чтобы по-настоящему выучить его. Честно говоря, трудно пройти через сложные моменты, не любя это. Но поймите это: самое надежное, что когда-либо двигало человечество вперед, — это использование технологий — наука, находящаяся в продуктивном использовании. Изучение кода позволит вам изменить мир. Как ты мог не хотеть быть частью этого? Если вы сидите в одиночестве, читаете код и падаете духом, вспомните о возможностях, которые вы открываете, обучаясь программированию, и о том, насколько прекрасен этот момент времени — позвольте ему пройти через это.

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

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

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

Но правда в том, что кодировать на самом деле довольно просто.

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

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

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

Мой опыт кодирования

Слушайте эту статью

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

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

Почему кодировать сложно

Научиться программировать сложно по двум причинам:

  1. Установка новых языков очень неприятна . Это первое занятие для будущего программиста, и по сей день это то, что я больше всего ненавижу в программировании. Это может создать неправильное представление о том, что программирование действительно сложно, потому что новички экстраполируют сложность настройки на то, как это будет происходить каждый момент после.
  2. Слишком много языков, инструментов, библиотек и подключаемых модулей. Начать программировать — это очень сложно, потому что есть миллион вещей, которым нужно научиться, и вы не знаете, с чего начать.
  3. Ранние классы обычно заполняются людьми, которые раньше учились программированию. Таким образом, вы можете подумать, что недостаточно умны для программирования из-за несправедливого сравнения. (Однажды я знала женщину, получившую степень магистра гражданского строительства, что намного сложнее, чем вводное кодирование, и она сказала мне, что она недостаточно умна для программирования из-за своего первого класса.Это бананов , и все же люди влюбляются в него, потому что у какого-то ботаника есть около десяти лет опыта до начала занятий.)

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

Считайте инструкцию по установке большинства языков. Откройте терминал или командную строку. Введите точный набор инструкций для загрузки и установки языка с учетом регистра.Используйте GitHub. Домашнее пиво. Версии тоже имеют значение. Вы используете 32 или 64 бит? «Потому что, если вы не уверены, что он выйдет из строя с загадочным сообщением об ошибке, вы почувствуете себя идиотом.

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

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

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

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

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

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

С какого языка / инструмента лучше начать?

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

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

Основы почти всех языков и инструментов одинаковы. Переменные. Петли. Функции. Указатели. Стек. Деревья. Хеширование. Рекурсия. Эти концепции существуют в большинстве языков. Если вы выберете основной язык, вы будете изучать их в основном одинаково, поэтому не имеет значения, выберете ли вы Ruby, Python, C ++, Java или PHP.

Помещение языков с по имеет значение , для чего вы хотите их использовать. Хотите писать приложения для iPhone? Язык выбора — Swift или Objective C. Вам нужно создать веб-страницы? JavaScript пригодится. Да, вы можете использовать практически любой язык для решения любых задач, если поработаете с ним и получите правильные плагины. Однако на некоторых языках легче начать работу с определенными типами проектов, чем на других.

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

Каким должен быть ваш первый проект?

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

Это служит нескольким целям:

  1. Значительно сужает выбор языка / инструментов . Как только вы знаете, что создаете веб-сайт, вы уже склоняетесь к инструментам, которые были разработаны с этой целью.
  2. Все, что вы изучаете, связано с пунктом назначения . Как я подробно описываю в своей книге, передача знаний чрезвычайно трудна. Непосредственное обучение работает лучше, чем изучение чего-либо в надежде, что это поможет вам позже.
  3. Вы можете работать над тем, что считаете крутым . Если вы думаете, что было бы круто сделать интерактивный веб-сайт, сделайте это. Если вы предпочитаете игру, сделайте это. Если вы предпочитаете автоматизировать бухгалтерскую работу, чтобы выполнять ее вдвое быстрее, чем ваши коллеги, сделайте это. Делайте то, что считаете крутым, и у вас будет мотивация придерживаться этого.

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

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

Примеры хороших проектов:

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

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

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

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

Какие ресурсы вам следует использовать?

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

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

  1. Возьмите книгу, которая научит вас нужному языку + проекту . В вашем местном книжном магазине или библиотеке должен быть компьютерный отдел, вы можете просто выбрать любой из них. Мне нравится O’Reilly, но есть много хороших. (Если вы еще не выяснили, на каком языке, просто погуглите свой тип проекта и поищите предложения.)
  2. Посетите MOOC . Coursera, edX, MIT, Гарвард, Стэнфорд и другие преподают компьютерное программирование онлайн.Опять же, важнее всего не конкретный класс, а то, преподает ли он интересующий вас язык / предметную область проекта.
  3. Возьмите обучающую программу / сайт . Опять же, их очень много. Я использовал Google для Python, когда впервые захотел изучить Python.

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

Делайте то, что делают настоящие программисты, и спрашивайте Google

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

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

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

Предупреждение №1: не копируйте и не вставляйте

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

Предупреждение № 2: попробуйте сами, прежде чем искать решение

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

Стоит ли вам изучать информатику?

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

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

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

Краткое изложение совета

Это был более длинный пост, поэтому позвольте мне повторить последние моменты, прежде чем я уйду:

  1. Научиться программировать намного проще, чем думает большинство некодеров, по крайней мере, делать простые вещи.
  2. Основная причина, по которой это кажется трудным, заключается в следующем:
    1. Установка разочаровывает.
    2. Слишком много вариантов для начала.
    3. Ранние классы заполнены одаренными детьми-самоучками, которые заставляют вас чувствовать себя глупо.
  3. Чтобы научиться самому, вам следует:
    1. Сначала решите, что вы хотите создать (веб-сайт, приложение, игру, сценарий и т. Д.), Выберите язык, который лучше всего соответствует тому, что вы хотите сделать.
    2. Начните немедленно с конкретного проекта, чтобы построить что-нибудь маленькое.Книги, курсы и учебные пособия должны помочь вам достичь этого.
    3. Когда вы застряли, делайте то, что делают все, и спрашивайте Google
      1. Но не копируйте ответы.
      2. И попробуйте сначала решить для себя.
  4. Изучите уроки информатики только после того, как сделаете некоторые вещи самостоятельно.

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

Научитесь программированию за десять лет

Почему все так спешат?

Зайдите в любой книжный магазин, и вы увидите, как Teach Yourself Java за 24 часа вместе с бесконечными вариациями, предлагающими научить C, SQL, Ruby, алгоритмы и т. Д. За несколько дней или часов. Расширенный поиск Amazon по запросу [название: научить, Себя, часов, с: 2000 и нашел 512 таких книг. Из первой десятки девять книг по программированию (вторая — по бухгалтерскому учету).Аналогичные результаты дает замена «учи себя» на «учись» или «часов» на «дни».

Вывод таков: либо люди спешат учиться о программировании, или о том, что программирование как-то невероятно проще узнать больше всего на свете. Felleisen et al. отдают дань этой тенденции в своей книге How to Design Programs , когда они говорят «Плохое программирование — это просто. Идиоты могут выучить его за 21 день , даже если их манекенов .»Комикс Abtruse Goose также получил свое место.

Давайте проанализируем, что такое заголовок Научитесь C ++ за 24 часа может означать:

  • Научитесь: За 24 часа у вас не будет времени написать несколько важные программы, и извлекайте уроки из своих успехов и неудач с их. У вас не будет времени работать с опытным программистом и понять, каково жить в среде C ++. Короче, ты не будет времени многому научиться. Таким образом, книга может говорить только о поверхностное знакомство, а не глубокое понимание.Как сказал Александр Поуп, небольшое обучение — опасная вещь.
  • C ++: Через 24 часа вы, возможно, сможете изучить некоторые синтаксисы C ++ (если вы уже знаете другой язык), но вы не могли узнать много о том, как использовать язык. Короче говоря, если бы вы были, скажем, Базовый программист, вы можете научиться писать программы в стиле Базовый с использованием синтаксиса C ++, но вы не могли узнать, что такое C ++ на самом деле хорошо (и плохо) для. Так в чем смысл? Алан Перлис однажды сказал: «Язык, который не влияет на то, как вы думать о программировании не стоит ».Один из возможных моментов: что вам нужно немного изучить C ++ (или, что более вероятно, что-то например, JavaScript или обработка), потому что вам нужно взаимодействовать с существующий инструмент для выполнения конкретной задачи. Но тогда ты не научиться программировать; вы учитесь выполнять эту задачу.
  • за 24 часа: К сожалению, этого недостаточно, так как следующий раздел показывает.

Научитесь программированию за десять лет

Исследователи (Блум (1985), Брайан и Хартер (1899), Хейс (1989), Simmon & Chase (1973)) показали это требуется около десяти лет, чтобы развить опыт в любом из множества зоны, в том числе шахматы, музыкальная композиция, телеграф работа, рисование, игра на фортепиано, плавание, теннис и исследования в нейропсихология и топология.Ключ совещательный практика: не просто делать это снова и снова, а бросать вызов самому себе с задачей, которая выходит за рамки ваших текущих возможностей, попробуй ее, анализировать вашу работу во время и после выполнения и исправлять никаких ошибок. Потом повторить. И повторить еще раз. Кажется, нет настоящие ярлыки: даже Моцарт, который в 4 года был музыкальным вундеркиндом, Еще 13 лет до того, как он начал создавать музыку мирового уровня. В другой жанр, Битлз, казалось, ворвались на сцену с череда хитов №1 и появление на шоу Эда Салливана в 1964 году.Но с тех пор они играли в маленьких клубах Ливерпуля и Гамбурга. 1957 г., и, хотя на раннем этапе они стали массовыми, их первая великая критический успех, Sgt. Peppers , выпущен в 1967 году.

Малькольм Гладуэлл популяризировал эту идею, хотя он концентрируется на 10 000 часов, а не на 10 годах. Анри Картье-Брессон (1908-2004) использовал другую метрику: «Ваши первые 10 000 фотографий — ваши худшие». (Он не Ожидайте, что с цифровыми фотоаппаратами некоторые люди смогут достичь этой отметки за неделю.) Настоящий опыт может занять всю жизнь: Сэмюэл Джонсон (1709–1784) сказал: «Превосходство в любом отделе может быть достигается только трудом всей жизни; его нельзя покупать в меньшая цена ». И Чосер (1340-1400) жаловался:« Lyf такой короткий, ремесло так долго до lerne ». Гиппократ (ок. 400 г. до н.э.) известен отрывком« ars longa, vita brevis «, которая является частью более длинной цитаты» Ars longa, vita brevis, occio praeceps, Experimentum periculosum, iudicium difficile «, что на английском языке переводится как» Life is short, [the] craft долго, возможность мимолетная, коварный эксперимент, суждение трудно. » Конечно, ни одно число не может быть окончательным ответом: это не кажется разумным предположить, что все навыки (например, программирование, игра в шахматы, игра в шашки и музыка) может потребоваться одинаковое количество времени для освоения, и все люди займет ровно столько же времени. Так как Проф. К. Андерс Эрикссон сказал: «В большинстве областей замечательно, сколько времени даже самые талантливые люди нужны для достижения высочайшего уровня производительности. Число 10000 часов просто дает вам ощущение, что мы говорим годы от 10 до 20 часов в неделю, и те, кого некоторые люди утверждают, являются наиболее талантливыми людьми, все еще должны достичь высочайшего уровня.»

Итак, вы хотите быть программистом

Вот мой рецепт успеха в программировании:

  • Заставьте заинтересоваться программированием и займитесь программированием, потому что это весело. Удостовериться что это достаточно весело, так что вы будете готовы потратить свои десять лет / 10 000 часов.
  • Программа . Лучший способ обучения — это обучение при выполнении. Говоря более технически, «максимальный уровень производительность для физических лиц в данной области не достигается автоматически в зависимости от расширенного опыта, но уровень производительность может быть увеличена даже очень опытными людьми, поскольку результат сознательных усилий по улучшению.»(стр. 366) и «наиболее эффективное обучение требует четко поставленной задачи с подходящий уровень сложности для конкретного человека, информативная обратная связь и возможности для повторения и исправления ошибок »(стр. 20-21) Книга Познание на практике: разум, математика и культура в повседневной жизни Жизнь интересная ссылка на эту точку зрения.
  • Поговорите с другими программистами; читайте другие программы. Это важнее чем любая книга или учебный курс.
  • Если хотите, проучитесь четыре года в колледже (или больше в колледже Высшая школа). Это даст вам доступ к некоторым вакансиям, требующим учетные данные, и это даст вам более глубокое понимание области, но если вам не нравится школа, вы можете (с некоторой самоотдачей) получить аналогичный опыт самостоятельно или на работе. В любом случае книжное обучение само по себе не быть достаточным. «Компьютерное образование не может сделать эксперта программист больше, чем изучение кистей и пигментов может сделать кто-то искусный художник «, — говорит Эрик Реймонд, автор книги The New Хакерский словарь .Один из лучших программистов, которых я когда-либо нанял, имел только высшая школа; он создал много отличного программного обеспечения, имеет свою собственную группу новостей и сделал достаточно акций, чтобы купить собственный ночной клуб.
  • Работа над проектами с другими программистами. Будь лучшим программистом по некоторым проектам; быть худшим для других. Когда ты лучший, вы можете проверить свои способности вести проект и вдохновлять другие с вашим видением. Когда тебе хуже, ты узнаешь, что мастера делают, и вы узнаете, что им не нравится делать (потому что они заставить вас сделать это за них).
  • Работа над проектами после других программистов. Понять программу, написанную кем-то другим. Посмотри, что нужно для понять и исправить это, когда оригинальные программисты не около. Подумайте, как разрабатывать свои программы, чтобы упростить тех, кто будет их поддерживать после вас.
  • Выучите как минимум полдюжины языков программирования . Включите один язык, который подчеркивает абстракции классов (например, Java или C ++), тот, который подчеркивает функциональную абстракцию (например, Lisp, ML или Haskell), один который поддерживает синтаксическую абстракцию (например, Lisp), один который поддерживает декларативные спецификации (например, Prolog или C ++ шаблоны) и тот, который подчеркивает параллелизм (например, Clojure или Go).
  • Помните, что в «информатике» есть « компьютер ». Знать сколько времени требуется вашему компьютеру, чтобы выполнить инструкцию, получить слово из памяти (с пропуском кэша и без него), считывание последовательных слов с диска и поиск нового места на диске. (Ответы здесь.)
  • Примите участие в изучении языка стандартизация усилий. Это может быть комитет ANSI C ++ или может решить, будет ли ваш локальный стиль кодирования иметь 2 или 4 пробела уровни отступов.В любом случае вы узнаете, что другие люди как в языке, насколько глубоко они это чувствуют, и, возможно, даже немного о том, почему они так себя чувствуют.
  • Имейте здравый смысл, чтобы прекратить усилия по стандартизации языка как как можно быстрее.
Учитывая все это, сомнительно, как далеко вы можете пройти, просто книжное обучение. Прежде чем родился мой первый ребенок, я прочитал все How До книг, а еще чувствовал себя бестолковым новичком. 30 месяцев спустя когда должен был родиться второй ребенок, вернулась ли я к книгам на освежить? Нет.Вместо этого я полагался на свой личный опыт, который оказался гораздо более полезным и обнадеживающим для меня, чем тысячи страниц, написанных экспертами.

Фред Брукс, в своем эссе No Silver Bullet определили план из трех частей для поиска отличных разработчики программного обеспечения:

  1. Систематически определяйте лучших дизайнеров как можно раньше.
  2. Назначьте профессионального наставника, который будет отвечать за развитие потенциального клиента, и тщательно храните карьерный досье.
  3. Предоставляйте возможность развивающимся дизайнерам взаимодействовать и стимулировать друг друга.
Это предполагает, что некоторые люди уже обладают качествами, необходимыми для быть отличным дизайнером; задача состоит в том, чтобы как следует их уговорить. Алан Перлис выразился более лаконично: «Каждого можно научить лепить: Микеланджело пришлось бы научить, как этого не делать. Так и с великие программисты ». Перлис говорит, что у великих есть внутреннее качество, выходящее за рамки их обучения. Но причем тут качество взято? Это врожденное? Или они развивают это через усердие? Как Огюст Гюсто (вымышленный повар в Ratatouille ) говорит: «Готовить может любой, но только бесстрашный. может быть здорово.»Я думаю об этом больше как о готовности посвятить большой часть жизни к совещательной практике. Но может быть бесстрашный — способ резюмировать это. Или, как критик Гюсто, Антон Эго говорит: «Не каждый может стать великим художником, но великим художник может прийти откуда угодно «.

Так что покупайте книгу по Java / Ruby / Javascript / PHP; ты будешь наверное, получу от этого какую-то пользу. Но ты не изменишь свою жизнь, или ваш реальный общий опыт программиста за 24 часа или 21 день. Как о работе трудно постоянно улучшаться в течение 24 месяцев? Что ж, теперь вы кое-чего начинаете…


Список литературы

Блум, Бенджамин (ред.) Развитие талантов в молодежи , Баллантайн, 1985.

Брукс, Фред, No Silver Bullets , IEEE Computer, vol. 20, нет. 4, 1987, с. 10-19.

Брайан, W.L. & Хартер, Н. «Исследования по телеграфному языку: Приобретение иерархии привычек. Обзор психологии , 1899, 8, 345-375

Хейс, Джон Р., Программа полного решения проблем Лоуренс Эрлбаум, 1989.

Чейз, Уильям Г. и Саймон, Герберт А. «Восприятие в шахматах» Когнитивная психология , 1973, 4, 55-81.

Лаве, Жан, Познание на практике: разум, математика и культура в повседневной жизни Life , Cambridge University Press, 1988.


Ответы

Примерное время для различных операций на типичном ПК:
выполнить типичную инструкцию 1/1000000000 с = 1 наносекунда
выборка из кэш-памяти L1 0.5 наносекунд
неправильное предсказание ветвления 5 наносекунд
выборка из кэш-памяти L2 7 наносекунд
Блокировка / разблокировка Mutex 25 наносекунд
выборка из основной памяти 100 наносек
отправить 2 Кбайта по сети 1 Гбит / с 20000 наносекунд
последовательное чтение 1 МБ из памяти 250 000 наносекунд
выборка из нового места на диске (поиск) 8,000,000 наносекунд
последовательное чтение 1 МБ с диска 20000000 наносекунд
отправить пакет из США в Европу и обратно 150 миллисекунд = 150 000 000 наносек

Приложение: выбор языка

Несколько человек спрашивали, какой язык программирования им следует изучить в первую очередь. Однозначного ответа нет, но рассмотрите следующие моменты:
  • Используйте своих друзей . На вопрос «какая операционная система должна Я использую Windows, Unix или Mac? «, Я обычно отвечаю:» использовать что угодно ваши друзья используют «. Вы получаете преимущества, извлекая уроки из друзья компенсируют любую внутреннюю разницу между ОС или между языками программирования. Также подумайте о своих будущих друзьях: сообщество программистов, частью которого вы станете, если вы Продолжать. Есть ли у выбранного вами языка большое растущее сообщество или маленький умирающий? Есть ли книги, веб-сайты и онлайн-форумы получить ответы? Вам нравятся люди на этих форумах?
  • Будьте проще .Языки программирования, такие как C ++ и Java предназначены для профессиональной разработки большими командами опытные программисты, озабоченные эффективностью выполнения их код. В результате эти языки имеют сложные части, предназначенные для этих обстоятельств. Вы озабочены обучением программированию. Вам не нужны эти сложности. Вам нужен язык, который был разработан, чтобы его было легко выучить и запомнить одинокий новый программист.
  • Играть. Каким способом вы бы предпочли научиться играть на пианино: нормальный, интерактивный способ, при котором вы слышите каждую ноту, как только нажимаете клавишу, или «пакетный» режим, в котором вы слышите ноты только после того, как закончите целую песню? Понятно, что интерактивный режим облегчает обучение игре на фортепиано, а также программирование.Настаивайте на языке с интерактивным режимом и используйте его.
Учитывая эти критерии, мои рекомендации по первому программированию язык будет Python или Схема . Другой выбор — Javascript, не потому, что он идеально подходит для начинающих, но потому что для этого есть так много онлайн-руководств, таких как Учебник Ханской академии. Но твой обстоятельства могут отличаться, и есть и другие хорошие варианты. Если ваш возраст является однозначным числом, вы можете предпочесть Алиса или писк или Blockly (они также могут понравиться ученикам старшего возраста). Важный дело в том, что вы выбираете и начинаете.

Приложение: книги и другие ресурсы

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

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

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

Вам нужно больше, чем просто немного JavaScript, HTML и CSS

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

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

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

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

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

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

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

Остальная часть этой статьи продолжается после содержания серии ниже.

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

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

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

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

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

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

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

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

  • У вас есть все четыре решающих фактора для успеха в программировании .

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

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

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

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

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

Суть в том, что самостоятельное обучение выполнимо, доступно и даже полезно, но вы должны быть готовы к тяжелой работе и не рассчитывать, что весь процесс будет завершен за очень короткий промежуток времени, например 2– 3 месяца.

Многие великие программисты учатся кодировать самостоятельно

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

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

Некоторые из великих программистов не изучали информатику; они научились программировать с нуля до совершенства.К ним относятся Т. Дж. Головайчук (он, пожалуй, самый плодовитый программист, которого когда-либо знала сеть; он разработал более 540 модулей NPM) и Дэвид Хайнемайер Ханссон (создатель Ruby on Rails) и другие.

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

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

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

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

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

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

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

В частности, вы хотите понять следующее, и все это поможет вам стать программистами или грамотными в программировании:

  1. Как использовать командную строку на вашем компьютере для перемещения файлов, редактирования файлов,
  2. Как использовать git и GitHub
  3. Основы Интернета, включая протоколы Всемирной паутины
  4. Различия между мобильным приложением, веб-приложением и веб-сайтом, а также способы разработки и развертывания каждого из них
  5. HTML и CSS и как их использовать для создания веб-сайта
  6. Основы программирования на JavaScript
  7. Как создать веб-сайт (например, портфолио), написав свой собственный код (без CMS или библиотеки пользовательского интерфейса), и добавить на веб-сайт функции JavaScript
  8. Как использовать CMS, например WordPress, для создания собственного блога
  9. Как создать небольшое веб-приложение только на JavaScript, например список задач; такое простое кодирование даст вам основы программирования и поможет вам с комфортом выучить любой другой язык программирования позже
  10. Как использовать библиотеку пользовательского интерфейса, такую ​​как Bootstrap, для быстрого создания веб-сайта
  11. Основы регулярных выражений
  12. Основы безопасности веб-сайтов во внешнем интерфейсе

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

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

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

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

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

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

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

  6. Прочтите исходный код проектов с открытым исходным кодом и попытайтесь понять их и воспроизвести известные реализации.Вы узнаете больше о написании надежного, обслуживаемого, СУХОЙ (не повторяйтесь), эффективного, менее ошибочного и масштабируемого кода, читая код других ведущих программистов, чем читая множество книг по программированию и просматривая видеокурсы.

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

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

  8. Потратьте не менее 2–3 месяцев на решение задач по программированию. Чем больше времени вы потратите на это, тем лучше вы научитесь решать эти проблемы и тем выше вероятность, что вы преуспеете в задачах кодирования, указанных в технической части собеседований по программированию.

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

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

Где найти бесплатные курсы и книги по программированию?

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

1. Бесплатные онлайн-курсы программирования от элитных университетов

В следующем списке есть ссылки на бесплатные курсы программирования от самых престижных университетов США для получения степени в области компьютерных наук:

  1. MIT
  2. Стэнфорд
  3. Йель
  4. Гарвард
    Гарвард
  5. Карнеги-Меллон

2.Бесплатные онлайн-курсы программирования, блоги и учебные платформы

В следующий список включены ссылки на веб-сайты, предлагающие бесплатные курсы программирования:

  1. Coursera
  2. edX
  3. Кодекадемия
  4. Кодовых войн
  5. FreeCodeCamp
  6. JavaScript — это сексуально
  7. GA Dash
  8. Академия Хана
  9. MIT OpenCourseware
  10. Проект Odin
  11. Udacity
  12. SoloLearn
  13. The Code Player
  14. Bento.io
  15. Удеми
  16. Code.org
  17. Scotch.io
  18. W3Школы
  19. Coderbyte
  20. Виртуальная академия Майкрософт
  21. Edabit
  22. Launch School Открытая книжная полка
  23. Marksheet.io
  24. Научитесь кодировать HTML и CSS
  25. JavaScript для кошек
  26. Nodeschool.io
  27. Выучить JS
  28. Красочный Javascript
  29. Часы и код
  30. Код Мстители
  31. Скалы HTML5

3.Бесплатные книги по программированию

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

  1. Github
  2. Tutorialzine
  3. MakeUseOf
  4. WebPageFX
  5. Открытая библиотека
  6. Бесплатные компьютерные книги
  7. Интернет-архив
  8. Libgen.io
  9. XooBooks
  10. BookBoon
  11. Электронная книга-dl
  12. Электронная книга 777
  13. 4shared
  14. Ebookee
  15. Gen.lib.rus.EC
  16. BookFI
  17. B-OK.xyz
  18. EbookLobby
  19. Книги по программированию онлайн
  20. GetFreeEbooks
  21. Книги FreeTech
  22. Бесплатные электронные книги
Статья по теме о бесплатных онлайн-ресурсах для высококачественного образования

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

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

Самостоятельное обучение программированию, чтобы стать профессиональным программистом, является болезненным, неэффективным и трудоемким процессом. Я знаю это, потому что сам изучил разработку fullstack. Мне потребовалось более девяти лет, чтобы изучить аналогичный материал, который мы преподаем нашим студентам в Bov Academy, всего за 7–12 месяцев. Я учился самостоятельно, потому что у меня не было выбора. Как мы только что обсуждали, тогда не существовало официальных программ обучения веб-программированию. Тем не менее, я, несомненно, получил огромную пользу от этого опыта.

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

Преимущества обучения программированию самостоятельно, чтобы стать работоспособным программистом

Преимущества следующие:

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

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

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

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

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

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

Из недостатков следует:

  • Вы не получите отзывов или рекомендаций по вашему коду и проектам от опытного программиста или инструктора. Вы не будете знать, что конкретно у вас не получается и что можно улучшить, помимо того, что вы сами определяете.
  • Вы не получите преимуществ от хорошо проработанной и хорошо выполненной учебной программы. Школы программирования, как и любое учебное заведение, прилагают много усилий к разработке своих учебных программ и методик обучения.Что ж, любая хорошая школа кодирования должна. Учтите, что Bov Academy имеет около семи хорошо зарекомендовавших себя и инновационных методик обучения, встроенных в программу, чтобы помочь нашим студентам изучить и понять материал, чтобы достичь уверенности, мастерства и мастерства.

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

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

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

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

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

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

Я поделился следующим со студентами Bov Academy более года назад.

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

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

  • За свою карьеру в области веб-программирования я прочитал более трех десятков книг по веб-программированию, и все потому, что не было единого авторитета, единой книги или веб-сайта, которые бы учили всему или даже пятой части того, что мне нужно было изучить. В нескольких статьях концепции изучаются должным образом, то есть ясно и всесторонне. Насколько я помню, никто не обучал веб-программированию авторитетно. Возможно, это произошло потому, что все было еще новым и менялось так часто, что никто не знал в полной мере, чему нужно учить или чему учиться.Даже почитаемый крестный отец JavaScript, Дуглас Крокфорд, преподал некоторые не очень мудрые и нерелевантные принципы кодирования в своей пользующейся большой популярностью книге JS JavaScript: The Good Parts.

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

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

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

Академия Bov [как и любая другая уважаемая школа программирования] пытается полностью вас охватить

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

Я подумал, что единственное благородное дело — создать программу, чтобы каждый выпускник Академии Bov, независимо от того, насколько быстрым или медленным учеником он или она мог быть, был:

  • Закончил программу более опытным разработчиком, чем мы с коллегами когда-либо были
  • Не терплю тех же затруднений, что и я

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

  • Не нужно тратить сотни часов на поиск в Интернете, чтобы понять многие фундаментальные концепции или технологии веб-программирования

  • [Будет] точно узнал то, что им нужно знать, чтобы быть уверенным, чтобы преуспеть в реальном мире в качестве профессионального разработчика

Это некоторые из причин, по которым мы потратили почти два года на изучение и создание всеобъемлющей учебной программы Bov Academy.

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

Я пострадал и не хочу, чтобы ты страдал

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

Я едва понял некоторые фундаментальные концепции, которые вы усвоили всего за неделю или две здесь, в Bov Academy.Мне потребовались годы, чтобы полностью овладеть тем, что вы освоили или овладеете всего за месяц или два.

Я работал над важными профессиональными проектами, такими как создание веб-приложения для Национальной стрелковой ассоциации (NRA) (я не имел к ним никакого отношения; мне просто дали ответственность самостоятельно создать для них целое приложение) и обнаружение что я ничего не знал о безопасности веб-приложений, когда клиент сказал мне, что хакеры пытаются взломать их тысячи раз в день, а безопасность — самая важная часть проекта.Что еще хуже, компания, в которой я работал, уже имела контракт на строительство проекта, и клиент уже объявил о запуске проекта. Что вы делаете в таких ситуациях? Вы не можете бросить. В моем случае я купил кучу книг по предмету, который мне нужно было выучить и прочитать как можно быстрее — во время и после работы. Я делал это часто. Было не так много мест, где можно было бы учиться, и только книги были достаточно всеобъемлющими и авторитетными, чтобы научить меня тому, что мне нужно было изучить для последующих проектов, над которыми я работал.

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

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

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

Я мог бы продолжить, но я думаю, что оставил вам достаточно, чтобы помочь вам понять, почему мы прилагаем много усилий для создания всеобъемлющей учебной программы. Мы сделали это, чтобы помочь вам взлететь.

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

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

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

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

13 обучающих приемов для людей, обучающихся программированию

(Последнее обновление: 23 сентября 2016 г.) — Пытаетесь сохранить мотивацию и сосредоточенность в процессе обучения программированию? Вы далеко не одиноки. Самообучение может быть неприятным занятием, если вы не идете по правильному пути.

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

# 1: Знайте свою мотивацию к обучению

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

Может быть, вы учитесь по следующей причине:

  1. Продвигайтесь по карьерной лестнице
  2. Сменить профессию в целом
  3. Зарабатывайте дополнительные деньги, занимаясь сторонними проектами
  4. Создайте свой собственный продукт (например, приложение или стартап)

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

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

# 2: Выберите правильный язык

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

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

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

(Совет от профессионалов: обычно лучше начать с HTML.)

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

Пример: вы хотите создать свой собственный веб-сайт. HTML и CSS необходимы практически на любом веб-сайте. Начни там.

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

# 3: Поместите это в свой календарь

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

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

Просто выделить 25 минут в день просто. И есть шанс, что, начав работать, вы проработаете час или больше.

№ 4: «Делайте одно дело за раз»

Люди всегда стараются делать 100 дел одновременно. Большая ошибка! Принимайте это по одному. Не изучайте одновременно HTML, CSS, JavaScript, Swift и т. Д. (Вы сведете с ума !)

Это может быть очень сложно (если говорить по опыту), потому что легко захотеть выучить все сразу! (Есть чему поучиться!)

В своей книге The One Thing Гэри Келлер говорит: «Исключительные результаты напрямую зависят от того, насколько узкой вы можете сфокусироваться.”

Это относится ко всему, включая обучение программированию.

И знаете что? JavaScript останется там после того, как вы освоите HTML и CSS. Так что начните с малого.

# 5: Разбейте все на маленькие кусочки

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

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

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

# 6: Диверсификация средств массовой информации

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

Это означает обращение к книгам, видео, интерактивным урокам, викторинам, подкастам и т. Д. Во время обучения.

Впитывайте информацию по-разному.

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

# 7: Научите кого-нибудь тому, что вы изучаете

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

Один из вариантов — провести урок или семинар лично, работая волонтером в школе или группе для маленьких детей, например Girls Who Code.

Вы даже можете сделать на YouTube видеоролики, объясняющие концепцию (когда вам даже не нужно выходить из дома!).

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

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

# 8: Найдите друга по подотчетности

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

Вы также можете найти партнера в Интернете. В некотором смысле это то, что предлагает Codementor: онлайн-обучение и долгосрочное наставничество.

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

# 9: Найдите наставника

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

Платформы

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

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

# 10: Геймификация процесса

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

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

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

# 11: Обратное проектирование чужого кода

Посмотрите, как они, , строили то, что вы пытаетесь построить.

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

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

# 12: Не просто учись; практика

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

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

Выяснение ситуации методом проб и ошибок меняет правила игры. Это подводит меня к последнему пункту…

№ 13: Не бойтесь неудач

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

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

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

Заключение

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

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


О Лоуренсе Брэдфорде

Лоуренс Брэдфорд — создатель Learntocodewith.me, блога для программистов-самоучок.Когда она не создает веб-сайты, она пишет о создании веб-сайтов. Вы также можете найти Лоуренса в Твиттере.

Лучший способ научиться программировать в 2021 году: пошаговое руководство для начинающих

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

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

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

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

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

Вот несколько статей по теме, которые вы тоже можете прочитать:

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

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

Лучший способ научиться программировать: 6 простых шагов

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

Чтобы помочь вам более эффективно планировать обучение, вот 6 практических шагов, которым вы можете следовать, чтобы приблизиться к своим целям, не теряя времени зря:

  1. Знайте свои цели
  2. Разберитесь, что такое кодирование
  3. Выберите свою специализацию
  4. Начать онлайн-курс кодирования
  5. Решите реальные проблемы с помощью кода
  6. Осмысленные проекты 5

Давайте подробнее рассмотрим каждый из них.

Шаг 1. Знайте свои цели

Начнем с основ. Если вы хотите научиться программировать, первое, что вам нужно, — это четкая цель.

Я имею в виду, если у вас нет цели, как вы могли бы ее достичь?

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

Почему?

Потому что они не знают, как далеко они зашли.

Без стратегии и основных этапов они не могут отслеживать свой прогресс.

И когда вы не можете сказать, добиваетесь ли вы прогресса, как вы могли бы поддерживать свою мотивацию?

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

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

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

Связано: Как начать обучение программированию? 6 простых советов для начинающих

Шаг 2. Разберитесь, что такое кодировка

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

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

Но по мере того, как уроки становятся более сложными, они вскоре теряются и сбиваются с толку.

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

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

Связано: Изучение основ информатики перед программированием

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

  1. Что такое кодирование?
  2. Введение в языки программирования
  3. Front-end и back-end разработка
  4. Как работает Интернет

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

Шаг 3. Выберите свою специализацию

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

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

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

Рекомендуется: 4 простых в освоении языка программирования для начинающих

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

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

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

Связанные: 14 языков программирования и их использование

Итак, чем бы вы хотели заниматься в будущем? Вы уже мечтаете о работе?

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

  • Веб-разработка
  • Разработка мобильных приложений
  • Дизайн пользовательского опыта (UX)
  • Разработка игр
  • Анализ данных
  • Машинное обучение и т. Д.

Конечно, вы можете выбирать, что вам нравится.

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

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

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

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

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

.

Связано: 5 курсов веб-разработки для начинающих для быстрого обучения

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

Шаг 4. Начать онлайн-курс кодирования

Хорошо, пора вытащить большие пушки!

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

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

Но с сотнями курсов и руководств, большинство новичков в этот момент просто чувствуют себя ошеломленными и сбитыми с толку.

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

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

Я нашел лучшие курсы программирования на Udemy, когда только начал учиться программировать. Первый курс, который я прошел, был The Complete Web Developer Course 2.0, который окупился всего за несколько недель: изучив и попрактиковавшись в HTML и CSS, я получил свое первое небольшое внештатное выступление в Интернете.Деньги потрачены не зря!

Статья по теме: 10 важных причин, почему вам следует начать онлайн-курс программирования

Шаг 5. Решение реальных проблем

Кодирование — это решение проблем, верно?

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

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

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

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

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

  • Создайте небольшую программу для сортировки электронной почты
  • Обновите веб-сайт друга или родственника
  • Автоматизируйте ежедневный отчет на работе
  • Напишите программу, которая систематизирует ваши фотографии
  • Создайте маленькая программа-бот для Twitter

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

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

Рекомендуется: 10 простых советов по более эффективному программированию

Шаг 6. Создавайте значимые проекты

Ладно, лучшее оставил напоследок!

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

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

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

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

Итак, как вы это делаете?

Прежде всего, вам нужен сайт-портфолио. Вы можете создать его с нуля, если вы изучили HTML и CSS. Однако я бы рекомендовал использовать WordPress. Знание того, как использовать WordPress — это еще один навык, который нужно добавить в свое резюме.

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

По мере совершенствования ваших навыков вы сможете создавать более масштабные и сложные проекты.

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

Эта работа будет вашей!

Читать дальше:

Помните: найдите методы обучения, которые работают для вас

Надеюсь, ты все еще со мной! Вы нашли несколько полезных советов выше? Напишите мне в комментариях и поделитесь своими мыслями!

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

Я знаю, что это очень важно, если вы только начинаете. Но поверьте мне, эти шаги работают .

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

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

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

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

Рекомендуется: обучение программированию: онлайн-курсы и книги по программированию

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

Заключительные мысли: лучший способ научиться программировать в 2021 году

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

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

  1. Сначала подумайте, почему вы хотите выучить кодирование с нуля.
  2. Затем научитесь основам программирования и компьютера.
  3. Затем вам следует выбрать область, в которой вы будете специализироваться. Веб-сайты? Мобильные приложения? Игры? Анализ данных? Что это будет?
  4. Только тогда вы будете готовы начать свой первый курс программирования. Когда вы подготовлены к тому, чему научитесь, гораздо легче сохранять концентрацию и мотивацию.
  5. По мере прохождения курса программирования применяйте полученные знания в реальных проектах. Начните с использования кода для решения небольших проблем для себя или для кого-то, кого вы знаете.
  6. По мере улучшения ваших навыков переходите к более крупным проектам.Загрузите их в свое портфолио по одному. Затем промойте и повторите!

Хорошо, вы готовы начать? Я знаю, ты справишься!

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

Если вам понравился этот пост о лучшем способе изучения кодирования, просто напишите мне в комментариях ниже!

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

Увидимся в следующей статье! Удачного кодирования!
— Микке

.