Выучиться на программиста самостоятельно: Как стать программистом с нуля в 2022: пошаговая инструкция

Содержание

10 способов научиться программировать самостоятельно, с чего начать программировать

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

10. Выясните, почему вы хотите программировать

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

9. Выберите правильный язык программирования

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. 

Пройдите курс Специализация Python от Coursera, стоимость $49 в месяц.

8. Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django.

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

7. Попробуйте приложения для детей

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

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты (Codecademy, Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento. Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

Bubble — новый гид по цифровому миру: как войти в айти и хакнуть свою жизнь

5. Пройдите онлайн-курс

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

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

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

Смотрите подборки книг по Python и Java на Литрес

3. Изучайте, играя

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

2. Найдите наставника или станьте им

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

1. Разберите чужой код

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

Только не забудьте поделиться своим кодом, если вам удастся улучшить часть ПО.

Python с нуля и самостоятельно — топ онлайн-курсов по обучению Python для начинающих

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

Содержание
Курсы с преподавателем (цена по возрастанию)Самостоятельные курсы (цена по возрастанию)

С чего начать изучение Python?

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

Курсы с преподавателем (цена по возрастанию)

Онлайн-курс Introduction Python от IT Hillel

Длительность: 16 занятий (2 занятия в неделю)
Старт: начало июня
Стоимость: $186
Технологии: PyCharm, Git
Отзывы: ⭐⭐⭐⭐⭐

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

Записаться

Профессия Python-программист от «Хекслет»

Длительность: 4-7 месяцев
Старт: любое удобное время
Стоимость: $39 в месяц или $390 в год
Технологии: Flask, Django, Ansible, PostgreSQL
Отзывы: ⭐⭐⭐⭐

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

Записаться

Основы программирования на Python от Центра Обучающих Технологий

Длительность: 4-7 месяцев
Старт: 30 мая
Стоимость: 640 BYN (от 1120 BYN индивидуально)
Технологии: SQL, PyQt5, PyCharm
Отзывы: ⭐⭐⭐⭐⭐

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

Записаться

Python для анализа данных от SkillFactory

Длительность: 2 месяца
Старт: 27 мая
Стоимость: $280 (скидка 50%)
Технологии: NumPy, Pandas
Отзывы: ⭐⭐⭐⭐⭐

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

Записаться

Дистанционный курс Python-разработчик от TeachMeSkills

Длительность: 4 месяца
Старт:

6 июля
Стоимость: 1200 BYN
Технологии: Docker, Django
Отзывы: ⭐⭐⭐⭐⭐

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

Записаться

Как стать Python-разработчиком от «Яндекс.Практикума»

Длительность: 9 месяцев (10 часов в неделю)
Старт: любое удобное время

Стоимость: 20 часов бесплатно, затем — $156/мес ($1400) или $1200 за весь курс одним платежом
Технологии: Git, Django, базы данных
Отзывы: ⭐⭐⭐⭐

За 9 месяцев учебы вы освоите Python и соберете портфолио из 6 проектов. В вашем распоряжении будут онлайн-тренажер, множество задач для самостоятельной работы и постоянная поддержка наставников.

Записаться

Самостоятельные курсы (цена по возрастанию)

Программирование на Python для начинающих

Длительность: 4 часа видео
Старт: любое удобное время
Стоимость: бесплатно

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

Получить доступ

Курсы Python от CodeCademy

Длительность: от 6 до 10 недель
Старт: любое удобное время
Стоимость: $15,99/мес
Технологии: зависит от специализации
Отзывы: ⭐⭐⭐⭐

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

Полное руководство по Python 3: от новичка до специалиста от Udemy

Длительность: 35 часов видео по запросу
Старт: любое удобное время
Стоимость: $18,99 (раньше $99,99)
Технологии: Jupyter Notebook, SQL, PostgreSQL
Отзывы: ⭐⭐⭐⭐⭐

Лидер продаж на Udemy. Емкий курс, покрывающий все основные функции и возможности питона. Подойдет и новичкам, и тем, кто уже имеет опыт разработки, но жаждет новых знаний.

Записаться

Специализация Python for Everybody от Coursera

Длительность: 8 месяцев (2 часа в неделю)
Старт: любое удобное время
Стоимость: 7 дней бесплатно, далее — $49/мес
Технологии: JSON, XML, DBMS, SQL
Отзывы: ⭐⭐⭐⭐⭐

Сообщают, что 39% выпускников этого курса сменили работу, 19% получили повышение. Объемная специализация научит студентов программировать на Python, работать с базами данных и визуализировать данные.

Записаться

Специализация Python 3 Programming от Coursera

Длительность: 5 месяцев (7 часов в неделю)
Старт: любое удобное время
Стоимость: 7 дней бесплатно, далее — $49/мес
Отзывы: ⭐⭐⭐⭐⭐

Глубокое погружение в Python. Вы научитесь работать с API, библиотеками и изображениями. Курсы сообщают, что 50% выпускников после сменяют работу.

Записаться

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

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

Шаг 1. Понять, а нужно ли вам это вообще?

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

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

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

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

Шаг 2. Выбрать язык

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

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

Чтобы выбрать язык, нужно проанализировать рынок и понять, что именно вы хотите создавать. Надо изучить список популярнейших в мире языков программирования, а также оценить количество доступных вакансий. Также стоит выяснить, какое из направлений разработки вас интересует больше всего. Хотите верстать сайты? Надо метить в сторону JavaScript и веб-фреймворков. Хотите создавать игры? Надо заняться изучением C# и связанных технологий в духе Unity.

Шаг 3. Выбрать правильное место обучения

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

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

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

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

Шаг 4. Начинать практиковаться

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

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

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

Шаг 5. Искать работу

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

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

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

Шаг 6.

Изучать новые технологии

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

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

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

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

Шаг 7. Читать книги

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

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

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

Шаг 8. Помогать другим 

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

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

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

Вместо заключения

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

Как стать программистом, если очень хочется, но опыта нет

Предыстория

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

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

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

Объявление о работе я нашел в ВК

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

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

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

Я прочитал всего одну книгу по программированию

Можно сказать, что я самоучка.

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

До того как я начал серьезно учиться программировать на Java, я прочитал всего одну книжку о программировании. Это был курс «С++ за 21 день».

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

Почему я выбрал Java?

  • На мой взгляд, Java – едва ли не единственный язык программирования, от начала изучения которого до получения конечного продукта проходит не так много времени. Возможно, я такой человек, которому хочется поскорее «пощупать» результат. Чистая теория меня не очень привлекает.
  • Передо мной стояла определенная цель. Я понимал, что работу программиста мне получить будет крайне сложно, необходимо на будущем собеседовании показать хоть что-то и сказать: «Опыта работы нет, диплом тоже – не совсем то, что нужно, но зато есть вот это – посмотрите». Но, к счастью, я получил работу через стажировку.
  • Сейчас есть огромное количество разнообразных руководств для разработки приложений для ОС Android. Так что здесь у меня буквально все сходилось: и материалов для обучения достаточно, и существовала возможность сравнительно быстрого получения легко осязаемого результата.

Одним словом, после короткого курса C++ я взялся за какое-то руководство по Java для начинающих. Не помню, как оно называлось, помню только, что я бросил его читать, не добравшись и до середины. Мне хотелось поскорее «прогать».

Потом я видел очень много руководств для начинающих и могу сказать точно: принципиальной разницы между ними нет. Они примерно одинаковые. Чтобы что-то найти, нужно просто забить в Google запрос «book for java starter» – и в путь.

Много ответов на свои вопросы я нашел в этом телеграм-канале.

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

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

Конечно, в программировании без знания английского на хорошем уровне – просто никуда. Так что тем, кто знаком с английским на уровне Google.Переводчика, я могу посоветовать только одно: сначала прокачайте свой английский. Все остальное – потом.

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

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

С чего я начал «прогать»

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

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

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

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

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

  • Репозитарий с исходниками Github.com.

Он очень помог учиться на чужих примерах.

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

Свое первое приложение я разработал за месяц

Короче говоря, приложение я сделал буквально за месяц. Самыми полезными источниками знаний стали Developer. android.com и все тот же Stackoverflow.com. Самое интересное, что рутинный процесс выкладывания приложения в Google Play занял целых два месяца. Хотя, может быть, все продолжалось так долго, потому что после разработки мой запал немного подостыл. А немного позже я разработал веб-версию приложения, прочитав книгу Beginning Java EE 7.

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

Вдобавок я не хочу ни в коем случае умалять значение университетского образования и говорить: «Зачем все это нужно? Вот, посмотрите, все получилось и так». Нужно. Университет на самом деле дает очень много и, может, самое главное – воспитывает привычку учиться.

И все же: программировать можно научиться самому. Теперь я это точно знаю.


Материалы по теме:

Как попасть на стажировку в «Яндекс», поучаствовать в разработке «Алисы» и остаться в штате

Личный опыт: Как за один год пройти путь от фотомодели до программиста

Мой первый год программирования в реальном времени на Twitch: уроки и итоги

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

Заметки HR-а: почему так сложно найти хорошего разработчика

Программирование для самоучек — с чего начать | Статьи

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

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

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

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

Если в качестве будущей области работы выбраны веб-разработка и создание сайтов, начинать следует с HTML — языка гипертекстовой разметки. С этим справится даже начинающий пользователь. Следующим шагом станет изучение CSS – базы графических элементов, преобразующих простую текстовую страницу в любую картинку. Когда и этот этап будет успешно преодолен, можно перейти к более сложным категориям программного кода. Взаимодействие с пользователем – зона действия языка JavaScript, он встраивается в структуру HTML, отвечая за поведение элементов сайта на странице. Оптимальным вариантом дальнейших действий станет изучение PHP — базового инструмента backend-разработчика, он обеспечивает связь видимой пользователем страницы с сервером.

Все эти и многие другие языки можно освоить с помощью обучающих сайтов или приложений в сети, важно, чтобы занятия были регулярными, хотя бы 40-50 минут ежедневно. Такая стабильность однозначно приведет в положительному результату: сначала получится кодить на одном языке, потом — на более сложных. Видя результаты своего труда, начинающий программист получит колоссальный стимул для покорения новых вершин в мире IT.  Родители, прочащие своим чадам карьеру программиста, проявляют редкую дальновидность. Чем больше языков в арсенале такого специалиста, тем более он востребован. Спрос на разработчиков «полного цикла» с каждым годом растет, растут и их доходы, безбедная жизнь гарантирована.

Российский военный корабль, иди нахуй!

Еще вам говорят, что “нелюбви к России братский украинский народ учат неонацисты и запад“. Вам будет интересно узнать, что этим неонацистам в Украине помогает Израиль, а ваши борцы с нацизмом бомбили Бабий Яр. В бригады территориальной обороны в дорогих ЖК украинских миллионников и в глухих селах идут практически все и военкоматы уже не справляются с очередями добровольцев. И когда наши дети боятся подходить к окну или плачут в бомбоубежищах, плачут одинаково на востоке или западе Украины, им все понятно без слов. Вы сами преподаете им урок русофобии, который они запомнят на всю жизнь.

Вы вероятно не до конца понимаете, зачем мы вам это рассказываем. Вы вне политики, не несете ответственности и ничего не можете сделать. Но проблема в том, что никто не вне политики, когда идет война. Когда ваши политики говорят, что готовы к санкциям и у них есть ядерный чемоданчик — есть одно «но». Они не спросили вас. И богаты не вы, а они. И бункер есть у них, а не у вас. При этом кольцо ограничений, включая возможности для побега из вашей страны, лично для вас драматически сжимается. Видели курс валют? А теперь попробуйте купить билет на самолет в Европу — получилось? Что по ценам на продукты? Вывести деньги из страны можете? От клиентов и партнёров на западе уже начали скрывать своё происхождение? Вам нормально? А помните, как вам хорошо жилось до этой полномасштабной войны, развязанной Россией против Украины? Это было в среду.

Вас ненавидит весь мир, и вы читаете это, пока стоите в очереди в банкомат. Не снимайте всё — вам надо откладывать на репарации жертвам российской «мирной операции» в Украине. Чек растёт с каждым днём и ляжет на вас и ваших детей, спросите Германию, как это работает — вам расскажут.
А мы никогда вас не простим, если вы ничего не сделаете. 15 наших детей уже родились в бомбоубежищах! Написать #нетвойне — мало. Просить прекратить войну — поздно. Невозможно смягчить удар, когда он ракетный. Поверьте, нам не нужна ваша помощь — просто идите на хуй и никогда не смотрите в сторону Украины. Вы себе помогите. А мы сплотились, как никогда. И весь мир за нас.

Редакция AIN.UA

Как стать программистом в Израиле?

Говорят, что в мире есть 10 видов людей. Те, кто понимает двоичный код… и те, кто его не понимает.

Юмор программистов

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

Работая программистом в Израиле, можно получать 4000-5000 $ «чистыми».

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

С другой же стороны, выпускник факультета высшего «Информатики», «Программирования» или «Математики», окончивший обучение в израильском ВУЗе, имеет совершенно другие возможности на рынке труда в сфере IT. 

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

Данная индустрия занимает 30% рынка Израиля. Здесь огромное количество компаний, стартапов. Не зря Израиль называют Startup Nation, есть даже книга об этом. Из-за того что здесь очень легко начинать малый бизнес, огромное количество людей вкладывает деньги в IT-стартапы.

Неимоверное количество стартапов, средних, малых, огромных международных компаний, например, Oracle, Apple, Intel, Hewlett Packard, Microsoft. Только у Microsoft три офиса, у Intel пять офисов в стране. 

Более других в настоящее время распространены языки Java, JavaScript, Python, Swift для IOS, С#, C++, PHP и т. д. Знания по программированию также можно применить в нескольких разных областях, одни из которых встречаются чаще, а для других вакансии появляются лишь время от времени.

Кто такой программист?

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

Учитывая широкий спектр деятельности, профессию делят на три основных направления: 

  • Прикладное направление: это специалисты, занимающиеся разработкой и внедрением программного обеспечения, необходимого для нормального функционирования организаций. Обычно они узкопрофильные, к примеру, специалисты по 1С. В спектр их обязанностей входит обновление, настройка и доработка программ под индивидуальные потребности сотрудников, специфику компании.
  • Системное направление: это специалисты, разрабатывающие операционные системы, интерфейсы, распределяющие базы данных, управляющие работой сетей. Это самый редкий вид программирования и самый сложный. Системные специалисты всегда востребованы.
  • Web: это специалисты, работающие с глобальными сетями, к примеру, интернетом. Разработка интерфейсов, динамических сайтов, их стихия. Данная специализация особенно популярна в последнее время – эпоху развития интернета. Все, с чем сталкивается человек за компьютером – результат работы программистов. Слаженная работа, качество картинки, возможность сидеть в интернете – результат многих лет напряженного развития данной профессии. 

Плюсы и минусы профессии программиста

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

 Что же так привлекает молодых людей в данной сфере?

Плюсы профессии программист:

  • Высокая зарплата: Средняя зарплата  программиста (даже начинающего) на несколько порядков выше средней зарплаты на израильском рынке труда.
  • Востребованность: Рынок труда для программистов растет за счет цифровизации всех сфер общественной жизни. Онлайн-образование, телемедицина, интернет вещей (IoT), даже сельское хозяйство не обходится теперь без IT-специалистов.
  • Интересные задачи и простор для творчества: Что делает программист на работе? Пишет код, тестирует, проверяет на уязвимости, переписывает код. Тем не менее, конечный результат кодирования – это рабочая программа с разными целями. Одни программисты создают игры. Другие программируют роботов. Третьи делают полезное приложение под Android. Четвертые создают агрегатор, который соберет все билеты мировых авиакомпаний в один сервис для бронирования авиабилетов. Разнообразно, не правда ли? А когда продукт начинает исправно работать, программист испытывает радость, как персонаж папа Карло, который из деревянного полена выстругал живого мальчика.
  • Возможность удаленной работы и свободный график: Программисты – это каста людей, к которым не применяют строгих офисных правил. Для поддержания креативности и работоспособности им разрешают работать из дома, приходить позже на работу. И, если вы еще не знаете, лучшие офисы принадлежат именно IT-компаниям. Загляните в Google, Microsoft или Oracle.
  • Карьерный рост в Израиле и за рубежом: Для программирования нет географических границ. Во-первых, многие российский специалисты работают удаленно в иностранных проектах. Во-вторых, переехать в «Силиконовую» долину (более точно ее называть «Кремниевой») для IT-профессионала с отличным знанием английского гораздо проще, чем, например, бухгалтеру, юристу или инженеру-строителю, которым придется изучать специфику профессии в конкретной стране.

Минусы:

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

Условия поступления в Тель-Авивском Университете:

Полный багрут 

Оценка 85/4 или 80/5 по математике в багруте⁣⁣

Психометрия — 630 и выше

Условия поступления в Университете им. Бар Илана в Рамат Гане:

Полный багрут

Оценка 85/5 по математике в багруте

Психометрия — 640 и выше

При средней оценке багрута 108.5 и выше и оценке 85/5 по математике — психометрия не требуется!

Условия поступления в Университете им. Бен Гуриона в Беер Шеве: 

Психометрия — 630 и выше

Оценка 130 и выше в части количественного мышления в психометрии

Полный багрут

Оценка 85/4 или 79/5 по математике в багруте⁣⁣

Условия поступления в Хайфском Университете: 

Оценка сэхэма — 690 и выше

Полный багрут

Оценка 90/4 или 75/5 по математике в багруте⁣⁣

Условия поступления в Еврейском Университете в Иерусалиме:

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

Полный багрут

При средней оценке багрута 112. 5 и выше — психометрия не требуется! 

Условия поступления в Технионе: 

Полный багрут

Оценка 85/4 или 75/5 по математике в багруте⁣⁣

Оценка 70/4 по физике в багруте

Психометрия — 680 и выше

Оценка 88 и выше в части английского языка в психометрии

Оценка сэхэма — 95 и выше

Условия поступления в Ариэльском Университете в Самарии:

Оценка сэхэма — 605 и выше

Психометрия — 610 и выше

Полный багрут со средней оценкой 90 и выше 

При средней оценке багрута 97 и выше и оценке 90/4 или 80/5 по математике — психометрия не требуется! 

Статья подготовлена академическим отделом учебного центра «Iam Психометрия»

При использованиии материалов статьи ссылка на сайт обязательна

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

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

Что и почему? Мотивация является ключом к успеху.

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

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

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

Интернет-ресурсы

Интернет-ресурсы, безусловно, наиболее полезны, когда речь идет о программисте-самоучке. Если вы новичок в программировании, вас могут заинтересовать актуальные курсы, которые вы можете пройти в своем собственном темпе. Некоторые из наших лучших онлайн-курсов включают Codecademy, The Odin Project, freeCodeCamp, App Academy Open и другие. Есть много отличных курсов по программированию на выбор.

Книги

Книги — это вековые механизмы обучения, выдержавшие испытание временем. Книги могут быть использованы в качестве основного курса обучения или служить отличным ориентиром. Независимо от того, являетесь ли вы новичком или просто учитесь осваивать определенный язык программирования, взлом книги никогда не будет неверным путем. Некоторые из лучших книг для обучения программированию включают The Complete Software Developer’s Guide, Джона Сонмеза, Programming Pearls, Джона Бентли и другие.Есть также отличные книги по конкретным языкам программирования, включая названия по Ruby on Rails, Scratch, JavaScript, Python, Data Science и почти по любому другому языку программирования/технологической карьере, о котором вы только можете подумать.

Метод проб и ошибок

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

Поиск системы поддержки
Кодить всегда лучше с друзьями!

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

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

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

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

Если вам это нравится, вы, вероятно, рассмотрели все доступные варианты (и впоследствии придумали аргумент против).

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

Остается последний вариант — научиться программировать самостоятельно. Но что это будет означать, и стоит ли вам действительно идти по этому пути?

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

  • Стоит ли мне действительно учиться программировать?
  • Является ли самообучение лучшим способом научиться кодировать?
  • С чего начать?
  • Что, если я когда-нибудь застряну?
  • Буду ли я *когда-нибудь* достаточно хорош, чтобы стать разработчиком программного обеспечения?

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

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

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

Вот версия TL;DR:

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

Теперь, когда мы разобрались с этим…

Является ли самообучение лучшим способом научиться кодировать?

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

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

Тест: допустим, вы только что купили журнальный столик в ИКЕА и пора его собрать. Что вы делаете?

  1. Внимательно прочтите руководство и изучите его, чтобы понять, что куда нужно. Затем точно следуйте инструкциям.
  2. Попросите друга (у которого есть опыт сборки мебели из ИКЕА) собрать ее перед вами, а затем разберите ее, чтобы вы могли собрать ее самостоятельно.
  3. Просмотрите руководство. Затем попытайтесь выяснить, как построить таблицу самостоятельно.
  4. Посмотрите на доступные вам «кусочки» и, используя логику, попытайтесь сложить их вместе. Делайте это до тех пор, пока вам не удастся собрать стол.

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

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

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

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

Итак, если вы все еще хотите научиться программировать самостоятельно, читайте дальше!

С чего начать?

В первую очередь вам, вероятно, потребуется изучить синтаксис предпочитаемого вами компьютерного языка. Это сделает другие ресурсы намного проще для понимания! Такие сайты, как Codecademy и Khan Academy, скорее всего, помогут вам в этом.

Читайте также: Учитесь к коду — начало руководства для участия в Code для начинающих

После того, как вы получили это из пути

# 1: начать маленький

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

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

В то же время вы можете…

#2: Читать книги

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

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

Книги быстро потеряют актуальность?

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

Короче говоря, базовые понятия важнее языков. Мы прочесали Интернет (так что вам не обязательно!) список 6 лучших книг, которые должен иметь каждый программист:

  1. Искусство компьютерного программирования Дональд Кнут
  2. Code Complete 2 – Практическое руководство по созданию программного обеспечения Стив МакКоннелл
  3. Не заставляйте меня думать (повторное посещение) – Подход здравого смысла к удобству использования Интернета и мобильных устройств Стив Круг
  4. Peopleware – Productive Projects and Teams Том ДеМарко и Тимоти Листер
  5. Программист-прагматик — от подмастерья до мастера Эндрю Хант и Дэвид Томас
  6. Факты и заблуждения разработки программного обеспечения Роберт Л.Стекло

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

#3: Побалуйте себя

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

Как следует из гифки – побалуйте себя!

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

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

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

Или, что еще лучше, выберите проект или навык, который *действительно* хотите освоить, и действуйте. Не зацикливайтесь только на «скучных вещах».

#4: Клонирование популярных веб-сайтов

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

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

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

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

Еще один совет: в онлайн-отчете о курсе есть список учебных пособий, где вы можете клонировать 15 известных сайтов, таких как Etsy, WordPress, Quora, Pinterest и других.

И еще одно: это само собой разумеется, но это чисто для практики. Не выдавайте эскизы за свои!

#5: Выложите свой код

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

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

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

Бонус: Github также можно использовать для поиска (настоящих!) проектов, которые вы можете клонировать и возиться с ними, помогая вам научиться программировать.

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

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

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

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

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

#6: Количество > Качество (сначала!)

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

‍ Промойте и повторите — теперь ваша задача — написать МНОГО кода.

«Но почему?» ты спрашиваешь. Проще говоря:

  1. Вы можете быть *лучшим* программистом в мире (теоретически, конечно), но это будет бессмысленно, если вы никогда не примените это на практике.
  2. Написание кода — отличный способ учиться на своих ошибках.
  3. И пока вы не будете мысленно кодировать что-то снова и снова, вы не станете лучше.

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

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

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

Опять же, сначала может быть плохо, но с чего-то нужно начинать

Что, если я застряну?

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

— поймите, что сначала вы будете плохим (и это нормально!)

Когда вам удастся понять ключевую концепцию программирования (или закончить учебник на Codecademy), вы почувствуете себя действительно уверенно.#достижение разблокировано, верно? А затем, через несколько дней, вы возвращаетесь к учебнику или пытаетесь выполнить более сложное упражнение, основанное на предыдущей концепции, и чувствуете себя еще более потерянным, чем когда-либо.

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

– Google it

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

– Найдите наставника

Хотя не всегда возможно найти наставника в реальной жизни, было бы неплохо найти кого-то, кому вы можете задавать вопросы – при условии, что вы не можете найти это в Google, конечно.Проблема, с которой вы застряли, может занять всего 2 минуты, чтобы они объяснили, что сэкономит вам часы стресса над вашим кодом. обычно более чем рады поделиться своими знаниями, если у них есть время. Просто не забудьте купить им кофе или обед, чтобы найти время, чтобы развлечь вас!

— проверьте элемент или проверьте код

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

– Отдохнуть!

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

Читайте также: 27 неожиданных вещей, которые вы узнаете на курсах по программированию

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

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

Короче говоря…  Да. Есть много хороших программистов-самоучек!

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

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

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

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

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

  • созданием (фанковых) плагинов WordPress
  • автоматизация повседневных процессов/утилит
  • и даже созданием собственных MVP, которые в конечном итоге привело к открытию бизнеса.

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

Но какая разница между теми, кто преуспевает в программировании или терпит неудачу? Вы должны хотеть этого достаточно сильно. Вы должны быть голодны, чтобы учиться. И, прежде всего, вы должны придерживаться этого… Даже когда (или, скорее, *особенно* когда) дела идут плохо!

Заключение?

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

Однако мы не собираемся приукрашивать правду — она может и будет становиться все труднее и труднее по мере продвижения вперед.

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

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

Как начать программировать: руководство

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

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

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

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

1. Придумать простой проект

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

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

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

Начните свое путешествие

2. Получите необходимое программное обеспечение

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

Это может быть так же просто, как текстовый редактор

При написании кода все, что вам нужно сделать, это сохранить файл как правильный тип. Например, если вы используете Python, вы должны сохранить текстовый файл как .py вместо .txt. Вы можете облегчить себе жизнь, загрузив Notepad++, который поможет вам определить, где вы допустили ошибку в своем коде.

Ваш компьютер должен уметь читать код

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

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

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

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

Разобраться с консолью

Вероятно, вы привыкли пользоваться своим компьютером с хорошо продуманным интерфейсом. Это называется графическим пользовательским интерфейсом (GUI). Теперь, когда вы собираетесь стать программистом, полезно знать, как использовать черное окно власти: консоль (интерфейс командной строки).

Это не сложно, но, вероятно, вам незнакомо. Ознакомьтесь с этим руководством The New Boston о том, как использовать командную строку Windows.

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

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

Вот четыре хороших способа принять участие:

  1. /r/learnprogramming на Reddit: важный ресурс, который объединяет все, что вам может понадобиться для изучения языка.
  2. Переполнение стека: Всякий раз, когда у вас возникает проблема, весьма вероятно, что кто-то уже решил ее. Stack Overflow — один из лучших форумов для поиска таких решений.
  3. Встреча
  4. : Не стоит недооценивать, насколько полезным может быть знакомство с людьми из реальной жизни, которые программируют.
  5. Хакатоны
  6. : эти мероприятия объединяют людей для быстрого создания программ, обычно в течение выходных. Вы можете найти много в Интернете, но попробуйте начать с Major League Hacking.

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

Прочитать несколько книг

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

Список бесплатных книг можно найти на GitHub.

Остерегайтесь книг, которые утверждают, что научат вас за 24 часа

Кодирование требует времени.Язык за день не выучишь. Вместо этого ищите книги с более реалистичными временными рамками. Одна особенно хорошая серия — это книги Sams Teach Yourself Брэдли Л. Джонса.

Как начать программировать с помощью YouTube

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

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

Прослушать подкаст

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

Вот несколько для начала:

  1. CodeNewbie: Если вы ищете вдохновения, этот подкаст рассказывает истории людей, которые начали программировать, что они сделали и как они это сделали.
  2. Научитесь программировать:. Лоуренс Брэдфорд берет интервью и отправляется в собственное путешествие, чтобы научиться программировать. Вы можете следовать вместе с ней и учиться вместе с ней.
  3. Coding Blocks: более продвинутый подкаст, в котором группа программистов рассказывает о тонкостях кодирования.

Пройти обучение

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

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

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

Попробуйте поиграть в игры, чтобы начать программировать

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

Попробуйте один из них:

  1. Code Combat: Эти игры медленно знакомят вас с концепциями, начиная с компьютерных наук и постепенно усложняясь.
  2. CodinGame: когда у вас появится немного больше понимания, эта игра посвящена решению задач на определенных языках.
  3. Code Wars: сразу приступайте к проблемам программирования и практикуйтесь в отладке своего программного обеспечения.

Пройдите курс обучения программированию

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

Учебные курсы по кодированию не предназначены для тех, кто хочет попробовать себя в программировании, они созданы для людей, которые решили, что они хотят сделать карьеру в области технологий и хотят получить необходимые трудные навыки, чтобы их можно было нанять на такие должности, как разработчик полного стека и инженер-программист. КАК МОЖНО СКОРЕЕ.

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

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

Подать заявку сегодня

 

Подробное руководство, как стать программистом-самоучкой | Автор Aditya Patange

Часть 1

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

У меня есть план.

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

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

Вы, скорее всего, попадете в одну из пяти следующих категорий:

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

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

2. Вы работаете в области STEM, но мало знаете о программировании.

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

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

3. Вы не из области STEM и хотите научиться программировать.

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

4. Вы собираетесь продолжить обучение за границей.

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

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

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

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

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

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

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

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

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

Многие из вас задаются вопросом, почему я включил информатику (CS) в название. Какое отношение программирование имеет к информатике? Позвольте мне положить конец этой дискуссии раз и навсегда. Знание компьютерных наук делает вас лучшим программистом — просто и понятно. Даже без CS вы можете быть хорошим программистом, но ваши возможности сильно ограничены, потому что CS предоставляет вам мощный набор инструментов для решения проблем. Если вы думаете иначе, есть вероятность, что вы будете продолжать натыкаться на кирпичные стены и тратить время впустую — как это делал я, когда только начинал.

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

Хватит говорить, давайте приступим!

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

Что такое компьютерное программирование?

(Вы можете пропустить это, если вы уже являетесь программистом)

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

Так выглядит код Python. Вы изучите Python в части I.

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

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

Чтобы умножить 2 числа, вы явно сообщаете Компьютеру:
Шаг 1: Возьмем число A.
Шаг 2: Возьмем число B.
Шаг 3: Пусть C будет произведением A и B.
Шаг 4: Отображение значение C для пользователя.

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

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

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

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

Тем не менее, давайте начнем с первой части.

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

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

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

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

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

Имея это в виду, первым шагом будет немного другой подход к математике.

1. Повторно изучите основы математики

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

Вот очень простой пример, чтобы продемонстрировать это: Скажем, задача состоит в том, чтобы умножить два на себя 10 раз. Мы знаем, что это представлено как 2¹⁰. Для упрощения задачи использовался новый инструмент или оператор , называемый возведением в степень.Теперь вы можете применить все свойства, применимые к экспонентам. Изменив представление о проблеме и используя правильный инструмент, вы дали себе больше мощности , каламбур.

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

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

2. Изучите Python

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

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

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

3. Искусство использования поиска Google

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

4. Много читать.

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

5. Переход на систему UNIX (дополнительно)

Теперь это может быть неблагоприятно для многих людей, использующих Windows для работы, потому что Windows проста в использовании. Если вы хотите стать разработчиком программного обеспечения, я настоятельно рекомендую перейти на Linux или Mac.Лично меня переход на Linux загнал в некомфортную зону, и я больше не боялся что-то сломать. Если вам нужна Windows для работы, настройте виртуальную машину или двойную загрузку и развивайтесь на ней. Я оставляю это вам, так как это чисто личный выбор.

Резюме

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

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

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

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

1. Изучите C++ и начните писать простые программы

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

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

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

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

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

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

3. Практика. Повторить. Упражняться.

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

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

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

4. Хорошо понимать рекурсию

Это поможет вам лучше понять рекурсию. Ха-ха.

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

Резюме

Пока что вы знаете язык низкого и высокого уровня и можете достаточно оценить разницу в «контроле», который вы имеете над своими программами. К этому моменту вы уже должны уметь писать простые программы на Python и C++ и понимать разницу между обоими языками.

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

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

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

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

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

Забавный факт: Во втором семестре инженерного у нас был предмет под названием СУБД (системы управления базами данных).Я был удивлен, обнаружив людей, которые рисовали лучшие ER-диаграммы для своих проектов баз данных, но когда дело дошло до фактического проектирования базы данных для практических приложений, они с треском провалились. Они были так сосредоточены на правильном отображении деталей диаграммы, что забывали саму причину, по которой они это делали. Я не виню их, потому что их никогда не учили тому, что диаграммы нужны им для создания лучших баз данных, а не для улучшения их навыков рисования.

1. Дискретная математика

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

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

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

2. Структуры данных и алгоритмы

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

Линус Торвальдс построил ядро ​​Linux — то, без чего Android не был бы тем, чем он является сегодня

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

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

3. Лучшие практики

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

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

4. Контроль версий (Git)

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

5. Объектно-ориентированное программирование

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

6. Упорно практикуйтесь

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

Брюс Ли: Сверхчеловеческий человек. R.I.P legend

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

Резюме

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

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

Меня всегда вдохновлял Марк Цукерберг за его неизменное отношение к сведению на нет неудач

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

  1. Определите проблему, над которой вы работаете, и подробно опишите ее. Четко определите свои цели и задачи.
  2. Найдите существующие или похожие проекты и определите, в чем они превосходны, а в чем нет. Посмотрите, как ваша идея подходит, как проект согласуется с целями и задачами, которые вы имеете в виду, и записывайте все.
  3. Составьте список всех навыков, которые вам необходимо освоить для выполнения проекта, и степени, в которой вам необходимо развить навыки для выполнения проекта.Знайте свои сильные и слабые стороны.
  4. Составьте план изучения необходимых навыков. Определите нужных людей, которые помогут вам, и необходимые учебные пособия для начала работы. Сосредоточьтесь исключительно на развитии навыков, необходимых для выполнения вашего проекта. Легко увлечься углублением. Помните, что вы приобретаете навык для завершения проекта, а не для написания кандидатской диссертации. диссертацию по нему. Если это не ваша цель.
  5. Начните работу над проектом, обновите свои цели и задачи и четко обозначьте свои сильные и слабые стороны.Разбейте проект на выполнимые подзадачи и назначьте метрику объективности для каждой. Это означает, что вам нужно знать, когда перестать гнаться за совершенством и сосредоточиться на общей картине.
  6. Казнить нетерпеливо. Повторяйте, пока все ваши цели не будут выполнены.

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

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

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

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

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

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

Ранвир Аллахбадия (BeerBiceps на YouTube) выпустил фантастическое видео о «менталитете воина». Лично мне это помогло не обращать внимания на жизненные трудности, развивать чувство благодарности и сохранять устойчивость в самых сложных ситуациях.

Мне было 14 лет, когда я впервые научился программировать. Я делал это для развлечения, потому что мне нравилось заставлять компьютеры делать то, что я хотел. Как и многие другие дети в этой стране, я участвовал в крысиных бегах IIT-JEE.Общее мнение «экспертов» в области образования в то время заключалось в том, чтобы «готовиться к ЕГЭ, и ваша жизнь будет устроена». Как и любой наивный ребенок в этом возрасте, я поддался на пропаганду и бросил кодить. В течение следующих шести месяцев я смирился с той ерундой, которой кормили меня и множество других детей в этой стране. Я быстро отступил и сосредоточился на том, что мне нравится, вместо того, чтобы слепо следовать крысиным бегам. К счастью, мне повезло с родителями, которые всем сердцем поддержали меня в этом, хотя с моей стороны и потребовалось некоторое усилие, чтобы убедить их.Я должен был показать им, что я намерен много работать, нести ответственность за свои действия и добиваться поставленных целей. Я хотел делать все по-своему. На самом деле я едва готовился к 12-й доске, потому что знал, насколько это бессмысленно. В том возрасте речь шла о том, чтобы доверять своей интуиции и делать то, во что я верил. Вы должны дать себе время, чтобы расти, совершать ошибки и не бояться исхода того, что произойдет.

Вот как я это видел: если я буду слушать всю скармливаемую мне пропаганду и потерплю неудачу, я не смогу никого в этом винить.Вместо этого я предпочел бы делать все по-своему, и даже если бы я потерпел неудачу, в конце концов, я бы точно знал, что моя неудача была результатом моих собственных действий — я сознательно действовал и могу исправить себя. Я на 100% отвечаю за свои действия. Бывали случаи, когда я прогуливал лекции целую неделю и всю неделю работал 24 часа в сутки 7 дней в неделю, оттачивая свои навыки — только для того, чтобы испытать чувство вины от профессоров, которые искренне действовали из лучших побуждений, но не осознавали усилий. Я вставлял.

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

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

65 лучших онлайн-ресурсов для обучения кодированию (обновлено в 2021 г.)

Если вы посмотрите фильмы о технологиях прошлого, то увидите, что некоторые из них действительно опередили свое время. Вспомните фильм 1995 года The Net, о компьютерном аналитике Анжеле Беннетт (которую играет молодая Сандра Буллок), которая сталкивается с правительственным заговором и опасными хакерами во время отладки компьютерной программы.Мало того, что фильм попал в самую точку с тем, насколько распространен Интернет в нашей жизни, он также подчеркнул силу и вездесущность программирования.

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

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

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

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

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

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

Предложения доменов в течение ограниченного времени

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

Но сначала познакомьтесь с программистом-самоучкой

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

Райан Ханна

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

Ханна начал обучаться программированию в январе 2012 года с помощью Codeacademy из-за желания начать создавать свои собственные проекты.

«Я устал просто потреблять то, что строят другие люди, и хотел попробовать создать что-то свое», — говорит он.

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

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

«Попутно на конференции я встретил Бенджамина Янга из Nexercise, и в итоге мы решили вместе работать над Sworkit на постоянной основе. Компания Nexercise, принадлежащая ему и Грегу Коулману, купила Sworkit и наняла меня для продолжения работы над ним.С тех пор мы выросли до замечательной команды из семи человек, и у нас есть одно из лучших приложений для тренировок на рынке».

Развитие Sworkit доказало Ханне — и должно доказать вам, — что создание чего-то удивительного — это всего лишь несколько шагов.

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

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

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

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

Вот внушительный список из 65 бесплатных или недорогих (и не только) способов начать работу. (Хотите перейти к определенному разделу? Просто воспользуйтесь ссылками ниже.)

  1. Игры
  2. Книги
  3. Наставники/Встречи
  4. Видео
  5. Электронные курсы
  6. Подкасты
  7. Для детей

Обновите свой сайт

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

Самостоятельная экскурсия: наш полный список из 65 ресурсов по программированию

1. Игры

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

КодСигнал

Изучите программирование на предпочитаемом вами языке программирования в свободное время.Независимо от того, есть ли у вас пять минут или пять часов, CodeSignal (ранее CodeFights) позволяет вам тренироваться для собеседований при приеме на работу, играть в аркадные игры по кодированию и соревноваться в испытаниях с экраном на экран.

Стоимость: Бесплатно

CodeAbbey

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

Стоимость: Бесплатно

Кодербайт

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

Стоимость: Бесплатно

Reddit: ежедневный программист

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

Стоимость : Бесплатно

CodinGame

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

Стоимость : Бесплатно

HireVue

С HireVue (ранее CodeEval) узнайте, как вы справляетесь с другими программистами с большой библиотекой задач динамического кодирования, создавая профиль и привлекая внимание компаний, ищущих программистов.

Стоимость : Бесплатно

HackerEarth

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

Стоимость : Бесплатно

Хакеррейн

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

Стоимость : Бесплатно

Сфера Онлайн Судья

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

Стоимость : Бесплатно

Microsoft Imagine

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

Стоимость : Бесплатно

Кодварс

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

Стоимость : Бесплатно

Упражнения

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

Стоимость : Бесплатно

2. Книги

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

Программист-самоучка

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

Стоимость : $9,99 Kindle Book

Бесплатные электронные книги Github

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

Стоимость : Много бесплатных — цены разные

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

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

Стоимость : Много бесплатных — цены разные

Виртуальный хостинг для достижения ваших целей

Мы позаботимся о том, чтобы ваш веб-сайт был быстрым, безопасным и всегда работал, чтобы ваши посетители доверяли вам. Планы начинаются с $ 2,59 / мес.

3.Наставники/Встречи

Хотите встретиться с единомышленниками? Найдите наставника или мероприятие по программированию в вашем районе.

Друзья по программированию Reddit

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

Стоимость : Бесплатно

Пара со мной

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

Стоимость : Бесплатно

CodeNewbies Twitter

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

Стоимость : Бесплатно

Встреча

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

Стоимость : Цены разные

Хакатоны

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

Стоимость : Цены разные

Местные классы информатики

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

Стоимость : Цены разные

Девушка Разработай

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

Стоимость : Цены разные

CodeBuddies

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

Стоимость : Бесплатно

4.Видео

На корточках: это ночь кино. Пришло время приготовить попкорн и посмотреть, как пользователи YouTube и другие пользователи делятся своими знаниями. (Бонус: без комиссии Redbox).

Советы разработчикам

Коллекция видеоуроков сотрудника Google, посвященных веб-дизайну и разработке.

CSS-трюки

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

Дерек Банас

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

Руководство кодировщика

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

Новый Бостон

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

Знание программирования

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

Выступления на Тед

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

Опытный пользователь командной строки

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

Моя школа кода

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

Ищете дополнительных видеорежиссеров? Вот еще несколько, которые вы можете проверить.

Сердечно приглашаем вас

Присоединяйтесь к группе DreamHost в Facebook, чтобы общаться с единомышленниками-владельцами веб-сайтов и получать советы от коллег и экспертов!

5. Электронные курсы

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

Гитхаб

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

Стоимость : Доступны платные (от 7 долларов в месяц) и бесплатные планы

Битбакет

Еще один ресурс, который делает кодирование коллективным усилием; работает вместе с Git, чтобы помочь программистам совместно работать над проектами.

Стоимость : Доступны платные (от 15 долларов в месяц) и бесплатные планы

Открытая культура

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

Стоимость : Бесплатно

Код Мстителей

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

Стоимость: 29 долларов в месяц; 150 долларов на шесть месяцев

Code.org

Моана , Звездные войны и Minecraft — все предметы включены в одночасовые учебные пособия, предоставленные некоммерческой организацией Code.орг. Эти простые для усвоения курсы доступны для учащихся всех уровней и возрастов и дают полезный практический опыт будущим гуру программирования

.

Стоимость : Бесплатно

Реддит

Любимец не только программистов; на этой странице Reddit есть общий список интерактивных руководств по кодированию, собранных со всего Интернета по различным темам, от разработки мобильных iO или Android до информации о разных языках программирования. (Кроме того, вы даже можете смотреть код людей!)

Стоимость : Бесплатно

Рекомендуемые ресурсы GitHub для программирования

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

Стоимость : Бесплатно

Codecademy

Альма-матер Райана Ханны помогает обучать мир программированию; выберите из каталога курсы, соответствующие вашим потребностям в обучении, и приступайте к программированию.

Стоимость : Бесплатно

Дэвид Уолш

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

Стоимость : Бесплатно

Открытая культура

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

Стоимость : Бесплатно

Домик на дереве

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

Стоимость : Бесплатная 7-дневная пробная версия, 25 долларов США (базовый план) или 49 долларов США (план Pro) в месяц после

Курсера

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

Стоимость : Цены разные

EdX

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

Стоимость : Бесплатные профессиональные сертификаты по цене

Лагерь свободного кода

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

Стоимость : Согласно названию, бесплатно

Приборная панель общего назначения

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

Стоимость : Бесплатно

Удасити

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

Стоимость : Цены варьируются (но планируйте стоимость не менее нескольких сотен каждый месяц).

Индивидуальное обучение

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

Стоимость : Бесплатно

Удеми

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

Стоимость : Цены разные

Обучение LinkedIn

LinkedIn Learning, ранее называвшаяся lynda.com, представляет собой образовательную платформу, наполненную увлекательными курсами, которые проводят отраслевые гуру.

Стоимость : бесплатная 30-дневная пробная версия, 29,99 доллара США в месяц

Маркировочный лист

Учебное пособие по HTML и CSS, которое начинается с основ Интернета и постепенно становится более подробным по мере продвижения курса — простое для понимания введение для начинающих.

Стоимость : Бесплатно

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

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

Стоимость : Бесплатно

Не нашли свою идеальную посадку? Попробуйте это: еще несколько мест для бесплатного кода.

Связанный: Пошаговое руководство: Как начать подкаст с WordPress

6. Подкасты

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

Кодирующие блоки

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

Стоимость : Бесплатно

ДевРадио

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

Стоимость : Бесплатно

Разработка программного обеспечения Ежедневно

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

Стоимость : Бесплатно

Чай проявителя

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

Стоимость : Бесплатно

Прекращение программирования

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

Стоимость : Бесплатно

CodeNewbie

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

Стоимость : Бесплатно

Учись программировать вместе со мной

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

Стоимость : Бесплатно

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

Связанный: Пошаговое руководство: Как начать подкаст с WordPress

7.Для детей

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

C++ для детей (код для младенцев)

Эта настольная книга познакомит ваших детей с основами программирования на C++. Также ознакомьтесь с HTML для детей и Javascript для детей, все вместе с сайтом Code Babies.

Стоимость : Amazon (новый) — $19,89
Домик на дереве: когда дети должны учиться программировать?

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

Стоимость : Бесплатно

Code.org Студент

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

Стоимость : Бесплатно

МунХак

Рекордное событие для Code Club, где дети в возрасте от 7 до 18 лет со всего мира объединяются для реализации проектов — MoonHack или ваших собственных (конечно, на лунную тематику). Согласно его веб-сайту, за последние шесть лет более 150 000 детей программировали в рамках Moonhack.

Стоимость : Бесплатно

Создайте свои собственные игры!: 20 игр, которые можно создать с нуля

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

Стоимость : Amazon, $11,60

Есть вопросы?

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

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

Проблемы с фреймворком или нужно исправить ошибку в коде? Попробуйте использовать Stack Overflow, сообщество программистов для обмена знаниями. Хотите автоматизировать утомительные задачи при использовании устройств Microsoft? Сделайте это с помощью Windows PowerShell.Пытаетесь научиться осваивать объектно-ориентированный язык программирования? Визуализируйте с помощью инструмента «Понимание».

Или, возможно, вы ищете полезные приложения или среду разработки для практики? Мы вас прикрыли. Попробуйте несколько приложений для создания заметок, которые помогут вам в написании кода, и полезные игровые площадки для кодирования, такие как Code Pen, JSFiddle или Limnor Studio (визуальное программирование).

Есть еще вопросы? Дайте нам знать.

Делать заметки

Готов к домашнему заданию? Пора кодить.

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

Заполните нас

Вы программист-самоучка? Как вы научились программировать? Какой совет вы бы дали другим начинающим программистам? Поделитесь своей историей и советом с нами в социальной сети @dreamhost!

Каковы преимущества обучения кодированию

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

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

Int main () {
while(coding == «выгодно») {
Cout << "Изучайте программирование с Остазом";
}
Возврат 0;

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

Зарегистрируйтесь для участия в 5-дневном учебном лагере по кодированию Ostaz, учебном лагере по программированию для начинающих: введение в Python и разработчик игр (JavaScript).
Существует стереотип о кодерах как о людях, которые целыми днями сидят в своих подвалах и тратят все свое время на кодирование. Любой может стать кодером, научившись программировать. Получите подробный и исчерпывающий список преимуществ обучения программированию, прочитав ниже.


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

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

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

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

Узнайте, как кодировать, и зарегистрируйтесь на сеансы кодирования Остаза в приложении Остаз!


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

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


Кодирование гарантирует будущее Ваша карьера расширяет ваши карьерные возможности

Знание того, как программировать, сделает вашу карьеру и варианты работы более широкими и универсальными. Карьера разработчика программного обеспечения не для всех, поэтому изучение того, как программировать код, не означает, что вы привязаны к жизни «карьеры в программном обеспечении». Знание того, как кодировать, сделает вас квалифицированным для различных типов работ и расширит ваши возможности и варианты трудоустройства.
Обучение программированию не ограничивает вас жизнью разработчика. Научившись программировать, вы приобретете навык, который может открыть многие карьерные двери. Компьютерные языки включают интерфейсные языки, такие как HTML и JavaScript, и внутренние языки, такие как Ruby или C++. Даже если вы не хотите или не имеете средств для фриланса в качестве подработки, вы, безусловно, можете включить то, чему научились, в свою будущую или текущую работу (работы) и обязанности.
Конкуренция на рынке труда высока; таким образом, знание более чем одного языка выделит вас и даст вам конкурентное преимущество перед кандидатами на работу.
Кодеры и программисты — это хорошо оплачиваемые сотрудники, которые становятся все более востребованными по мере того, как мир движется к более цифровому будущему.


Знание того, как кодировать, может увеличить зарплату человека

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


Требуются программисты

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


Карьера программиста имеет большой потенциал заработка

Данные Бюро статистики труда (BLS) о средней годовой заработной плате для этих профессий, связанных с кодированием и программированием:
Веб-разработчики: $73 760
Сетевые и компьютерные системные администраторы: $83 510
Программисты: $89 190
Администраторы баз данных: $93 750
Разработчики программного обеспечения: $107 510
Следовательно, карьера, связанная с программированием или кодированием, как правило, приносит зарплату выше средней, поскольку спрос на рабочие места, связанные с кодированием, остается высоким.


Обучение программированию обеспечивает гибкость карьеры

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


Знание того, как кодировать, может привести к внештатной работе

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


Кодирование может помочь вам заработать больше денег

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


Обучение кодированию сделает вас умнее и вы будете думать иначе

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


Программирование расширяет ваши творческие возможности

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


Кодирование улучшает навыки рассуждения и логической рационализации

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

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


Программирование делает вас более уверенным

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

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


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


Программирование помогает детям научиться развлекаться с математикой

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


Программирование учит искусству настойчивости

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


Программирование учит навыкам рассказывания историй

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

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


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

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


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

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


Программирование позволяет вам контролировать свои проекты и полагаться на себя

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

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


Программирование — это то, чему может научиться каждый

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

«Каждый в этой стране должен научиться программировать компьютер, потому что он учит думать». Стив Джобс
Повышайте свой уровень, приобретая навыки кодирования. Чтобы повысить свой «умный авторитет», зарегистрируйтесь в 5-дневном учебном лагере по программированию Ostaz, учебном лагере «Программирование для начинающих: введение в Python и разработчика игр (JavaScript)».


Каталожные номера:

Патеналл, Э.(2021, 21 апреля). Почему каждый должен научиться программировать. Получено с https://www.topuniversities.com/courses/computer-science-information-systems/why-everyone-should-learn-code

Глобальные цифровые навыки. 10 причин, по которым навыки кодирования жизненно важны для организаций по всему миру . Получено с https://digitalskillsglobal.com/blog/10-reasons-why-coding-skills-are-vital-for-organisations-worldwide

.

Макфадден, К. (2019, 7 сентября). Грамотность кодирования: почему кодирование стало важным. Получено с https://interestingengineering.com/code-literacy-why-coding-became-important


Мейнке, Х. (2020, 24 августа). Зачем учиться программировать? Удивительно широкие преимущества кодирования. Получено с https://www.rasmussen.edu/degrees/technology/blog/why-learn-to-code/

.

FunTech. Почему кодирование важно для детей: 7 причин, которые должны знать все родители. Получено с
https://funtech.co.uk/latest/why-coding-is-important-for-kids-7-reasons-all-parents-should-know


Ан, Э.(2021, 3 августа). 7 преимуществ, которые вы заметите, когда начнете учиться кодировать . Получено с https://careerfoundry.com/en/blog/web-development/7-benefits-of-learning-to-code/

.

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

Что обязательно нужно знать каждому новичку о предстоящем путешествии

Куинси Ларсон был просто «парнем в костюме в офисе» и решил, что хочет научиться программировать. Поэтому он поспрашивал вокруг. Он начал с изучения Ruby, а затем пробежался по другим языкам, таким как Scala, Clojure и Go.Он изучил Emacs, затем Vim и даже раскладку клавиатуры Дворжака. Он выбрал Linux, баловался Lisp и программировал на Python, живя в командной строке более полугода.

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

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

Ой. Это звучит знакомо?

Учитесь программировать с Thinkful

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

Посмотреть нашу учебную программу

Фаза I: Медовый месяц за руки

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

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

С другой стороны, движение «Учиться кодировать» проделало фантастическую работу, разрушив барьеры и показав людям, что код на самом деле совершенно безвреден. Такие инструменты, как Codecademy и Treehouse, самым нежным прикосновением убеждают вас, что вы тоже (нет, любой!) можете не только научиться программировать, но и стать полноценным разработчиком.

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

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

Медовый месяц за руки

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

Планирование пути вперед

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

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

Путь к готовности к работе можно описать с точки зрения того, как меняется ваш уровень уверенности в себе по мере роста ваших способностей:

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

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

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

  1. The Hand Hold Honeymoon — это увлекательное путешествие по отточенным ресурсам, обучающее вас вещам, которые кажутся сложными, но с их интенсивной поддержкой вполне выполнимы.В первую очередь вы изучите базовый синтаксис, но будете довольны своими достижениями.
  2. Утёс Замешательства — это болезненное осознание того, что становится намного тяжелее, когда хватание за руку заканчивается, и кажется, что ты ещё ничего не можешь сделать самостоятельно. Ваши основные проблемы — это постоянная отладка и незнание того, как задавать правильные вопросы, когда вы пробиваетесь к любому импульсу.
  3. Пустыня Отчаяния — это долгое и одинокое путешествие по бездорожью, где каждое новое направление кажется правильным, но вы часто ходите по кругу и вам не хватает ресурсов, чтобы пройти через это.Остерегайтесь «миражей мании», подобных сиренам пустыни, которые сбивают вас с пути.
  4. Взлет Awesome — это когда вы, наконец, нашли путь через пустыню и поняли, как создавать приложения. Но ваш код по-прежнему разрознен и хрупок, как карточный домик. Вы обретаете уверенность, потому что кажется, что ваши сайты работают, вы освоили несколько полезных паттернов, а ваши друзья считают ваши интерфейсы крутыми, но вы боитесь заглянуть под капот и в конечном счете не знаете, как перейти к «рабочей среде». Готовый» код.Как преодолеть разрыв с реальной работой?

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

Вернемся к Фазе II…

Фаза II: Утес Замешательства

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

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

Дерьмо.

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

.

Утес Замешательства

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

Бууууууууууууууууууууууу!!!

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

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

Страшно то, что ты еще даже не добрался до мяса. Эта вторая фаза, Утёс Замешательства, ещё очень ранняя. После того, как вы, наконец, устранили достаточно ошибок, чтобы положить конец восьмой чуме в Египте, и фактически завершили пару проектов — тем самым отметив конец фазы II — вы все еще только начинаете.

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

Два ключевых фактора в игре

Так что же на самом деле отличает одну фазу от другой? Почему Фаза II (Утёс Замешательства) была такой ужасной по сравнению с Фазой I (Медовый месяц, держась за руки)? Понимание этого поможет вам осознать, что это вовсе не ваша вина, если ваше путешествие выглядит так, как мы только что описали.

По сути, на каждой фазе действуют две ключевые силы — Плотность ресурсов и Объем знаний . Давайте посмотрим, что это такое, прежде чем исследовать, как они определяют Фазу III.

Фактор 1: Плотность ресурсов

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

Введите в поиск «Learn to Code», и вы увидите целую стену полезных и полезных инструментов, текстов, видео и учебных пособий.И, честно говоря, они великолепны! Никогда прежде не было так много способов начать обучение программированию.

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

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

Вот как выглядит плотность ресурсов на каждой фазе (большая плотность линий указывает на большее количество ресурсов):

Плотность ресурсов на каждой фазе — нажмите, чтобы увеличить
Фактор 2: объем знаний

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

Объем знаний, необходимых на каждом этапе — нажмите, чтобы увеличить

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

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

Когда вы переходите к третьей фазе, объем знаний расширяется. Теперь вам нужно понять, какие инструменты использовать, какие языки изучать, лежащие в основе CS, как писать модульный код, объектно-ориентированный, хороший стиль и как обращаться за помощью (и это лишь некоторые из них).Каждое посещение Google или Hacker News заводит вас в очередной набор кроличьих нор и заваливает вас новыми вещами, о которых вы не знаете, но чувствуете, что должны.

Вы не знаете, чего вы не знаете.

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

Фаза III: Пустыня Отчаяния

Понимая эти факторы, вы можете увидеть, что Утёс Замешательства на самом деле является лишь поворотным пунктом. Боль, вызванная токсичной комбинацией быстро растущего объема знаний и падающей плотности ресурсов, приводит к тому, что я называю «пустыней отчаяния».

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

Пустыня отчаяния

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

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

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

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

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

Конечно, до сих пор было трудно, но, может быть, эта веб-разработка не так уж и плоха… Все идет впереди, Милхаус!

Фаза IV: Взлет потрясающего

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

Это «Потрясающий подъем»:

Взлет потрясающего

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

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

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

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

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

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

Как все это выглядит

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

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

Как выжить

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

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

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

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

  1. Начните с различных ресурсов , чтобы узнать, как лучше учиться и какие проекты вам наиболее интересны.Может быть, это быстрые задачи Khan Academy, упражнения в браузере Codecademy или индивидуальное наставничество Thinkful. Будьте непредвзяты в начале и игнорируйте все, что вы должны узнать… на этом этапе весь код одинаков.
  2. Затем выберите один ресурс и придерживайтесь его, как только вы найдете то, что вам подходит. Проработайте до конца вводный курс, который должен дать вам все базовые знания, необходимые для написания базовых сценариев и приложений.Тогда будьте готовы начать строить самостоятельно.
II: Выживание на скале замешательства

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

Три совета для самостоятельного перехода к строительству:

  1. Работа с кем-то еще , даже с новичком. Вы будете удивлены, насколько проще будет отладить невозможную ошибку, если у вас две пары глаз.
  2. Прочтите чужой код , чтобы освоиться с хорошими шаблонами. Попытайтесь понять, почему автор сделал то, что сделал. Вы бы не пытались стать писателем, не читая книг, не так ли? Мы сосредоточимся на этом в следующем посте, а пока не спускайте глаз с любых небольших проблем или проектов, для которых другие люди написали решения.
  3. Начните с малого и постоянно развивайтесь . Вы должны иметь в виду интересные крупные проекты на будущее, но вам нужно научиться удобно отлаживать и искать ресурсы с небольшими проблемами. Там действительно ничто не заменит опыт.

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

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

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

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

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

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

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

Post A Comment

Ваш адрес email не будет опубликован.