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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Курсы по Data Science 

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

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

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

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

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

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

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

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

Как быстро изучить новый язык программирования или фреймворк - Ник Джанетакис

Обновлено 31 мая 2017 г. в # dev-mindset

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

Quick Jump: Как лучше всего учиться? | Что вы хотите построить? | Вот как я выучил каждый язык, который знаю | Выводы по применению этого в вашей жизни

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

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

Например, если вы не знаете, что такое «оператор if» или «цикл for», добавьте эту страницу в закладки и вернитесь, как только наберетесь опыта, потому что этот совет может принести вам больше вреда, чем пользы.

Как вы лучше всего учитесь?

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

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

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

Лично я лучше всего учусь на примере. Я очень похож на человека типа «обезьяна видит, обезьяна делает». Покажи мне, как это делать, а потом позволь мне попрактиковаться в этом, и я со временем научусь этому.

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

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

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

Что вы хотите построить?

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

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

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

Ваше подсознание умнее вас

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

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

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

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

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

Вот как я выучил все известные мне языки

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

2600 / AOL / Visual Basic 6

Все началось в конце 1990-х. Вот я, подросток-панк, слушал Slayer на 11-м томе, собираясь на 2600 митапов в Нью-Йорке. Бродя по улицам с различными распечатками и кулинарной книгой анархистов. Я подумал, что это интересно, и однажды даже создал красный ящик (который работал в моей старой школе). Я до сих пор помню, как наткнулся на специалиста AT&T, который обновлял таксофоны и говорил с ним об этом.

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

Все, что я думал про себя, было «как вообще люди это делают?». Тогда не было ни Google, ни бесконечного моря туториалов. Все, что у меня было, это нечеткие строчки 1 вроде «VB6», которые произносили люди в сомнительных чатах.

Visual Basic 6

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

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

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

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

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

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

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

HTML

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

В то время я выбрал платформу Geocities. На моей первой странице было все. Анимированные GIF-файлы, вывески в стадии разработки, крупье, писающий на кнопку Internet Explorer, и MIDI-саундтрек на тему «Экзорцист».Это был самый крутой сайт в Интернете (по крайней мере, на мой взгляд).

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

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

ASP Classic

В конце концов я серьезно увлекся видеоигрой под названием Quake 2 (а позже и 3).У меня это получалось довольно хорошо, и я вступил в «клан». По сути, это была наша группа, которая регулярно играла вместе.

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

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

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

Я считаю, что на пике развития у нас было около 14 000 членов, и это считалось «лучшим» местом, если вы хотели соревноваться. Шло время, и я начал постепенно осваивать ASP, потому что хотел помочь своему другу создать платформу.

Я начал с малого, создав сценарии, которые были дополнениями к сайту.Я до сих пор помню, как делал какой-то генератор конфигурации сервера Quake, который имел около 30 000 применений.

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

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

.NET / CSharp

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

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

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

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

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

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

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

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

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

PHP / LAMP

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

За это время я также начал работать с CSS, Javascript, MySQL и Apache. Это был типичный стек LAMP.

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

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

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

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

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

Ruby / Ruby on Rails

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

До того, как я начал работать с Rails, мне казалось, что я постарел на 100 лет после столь долгой работы с PHP. Я все еще использовал только свой собственный PHP-код в ковбойском стиле или WordPress.

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

Итак, я копался и ел Rails в течение 3 месяцев. Я сделал свой собственный блог, но я не просто «сделал блог». Я выложился изо всех сил. В нем было все, о чем вы могли подумать, включая полнотекстовый поиск, поиск с автозаполнением и фасетную навигацию с ElasticSearch. Он также имел редактор разметки предварительного просмотра в реальном времени в админке.

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

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

Я преодолел свое эго и подумал: «Кто этот клоун, я могу научиться этому сам», и просто понял, что Райан Бейтс был чемпионом в Rails, и я был бы идиотом, если бы не стал его слушать.

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

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

Python / Flask

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

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

Признаюсь, я увлекся всей этой ерундой «Rails не масштабируется» и прочей ерундой, связанной с микро-фреймворками, но в конце концов справился с этим.Самая большая трата времени.

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

Чтобы в конечном итоге добраться до Flask, я потратил несколько месяцев, играя с Node и Golang, но я просто не мог отстать от них. Во-первых, я не большой поклонник Javascript, и Golang просто чувствовал себя слишком утомительным для программирования после использования Ruby. Python, с другой стороны, очень хорошо взаимодействовал с моим мозгом.

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

В настоящее время Rails и Flask - мои инструменты goto для разработки веб-приложений, но я держу глаза открытыми.

Советы по применению этого в вашей жизни

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

Не бойтесь «тратить» время

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

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

Потратить 3 часа на освоение нового языка программирования - это не пустая трата времени. Вы формируете мнение на основе реальных отзывов от наиболее важного человека (вас!).

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

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

Создавайте то, что вас интересует

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

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

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

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

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

Полностью погрузитесь в их мир

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

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

Позвольте себе сказать «фу» средствам массовой информации. Например, вам действительно нужно смотреть телевизор по 3 часа каждую ночь? Конечно нет. Вместо этого потратьте 1,5 часа на кодирование, а затем сходите посмотреть фильм или что-нибудь на Netflix, если вам действительно нужно расслабиться.

Держите свое эго под контролем, за знания стоит платить (иногда)

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

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

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

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

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

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

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

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

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

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

.

7 важных советов для более быстрого обучения программированию

Независимо от того, получаете ли вы ученую степень в области информатики, ветеран, использующий GI Bill для выбора следующей миссии, начинающий разработчик-самоучка или студент учебного лагеря по программированию, овладение навыками программирования - это бесконечная борьба. Чтобы помочь вам в обучении - любезно предоставлено инструкторами Coding Dojo - , вот семь советов, как научиться программировать быстрее.

1. Учитесь на практике. Всегда играйте с кодом при изучении

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

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

2. Изучите основы долгосрочной выгоды

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

Подсказка: прочтите эту отличную статью о 5 основных концепциях любого языка программирования

3. Код вручную. Он оттачивает мастерство, и он понадобится вам, чтобы получить работу

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

4. Обратитесь за помощью. Вам понадобится

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

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

Подсказка: Stackoverlfow и обучение программированию - это золотая жила для помощи в онлайн-программировании.

5. Поищите дополнительные ресурсы в Интернете. Огромное количество контента

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

Совет: не стоит недооценивать возможности поиска.

6. Не читайте просто образец кода. Повозитесь с этим!

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

7. Делайте перерывы при отладке

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

Заключение: сохраняйте спокойствие и продолжайте кодировать

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

Почувствуйте, что быть разработчиком - это то, что вам нужно делать, и задаетесь вопросом: «Стоят ли этого учебные курсы по программированию?» Смотрите не дальше, чем Coding Dojo.Мы - единственный учебный курс, который обучит вас 3 стекам, используемым лучшими компаниями мира за 14 недель. Просто подайте заявку сейчас (это займет всего 2 минуты) - консультант по приемной комиссии свяжется с вами, чтобы узнать, подходит ли вам Coding Dojo.

.

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

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

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

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

Как некоторые из вас уже знают, я начал изучать программирование довольно поздно, в июле 2017 года, в возрасте 26 лет. Я доволен своим прогрессом и процессом обучения в целом, и когда я оглядываюсь назад на 6-12 месяцев и вижу некоторые из своих старые вопросы о Stack Overflow и моих старых видео заставляют меня улыбаться, потому что я понимаю, насколько лучше я стал. Хотя есть еще много вещей, которых я не знаю, я думаю, что довольно быстро прогрессирую, и частые изменения фреймворков, языков и передовых практик меня не пугают, потому что я знаю, что могу наверстать упущенное. все это.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А если вам нужна хорошая книга на тему осознанной практики, посмотрите «Упорство» Анджелы Дакворт или «Пик» Андерса Эрикссона. Или просто получите обе аудио версии бесплатно с подпиской Free Audible Trial.

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

.

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

Как быстро научиться программированию? | Сообщество Эдурека

38116 / как быстро-научиться программировать

Ваш комментарий к этому вопросу:

5 ответов на этот вопрос.

Ваш комментарий к ответу:

Ваш комментарий к ответу:

Ваш комментарий к ответу:

Ваш комментарий к ответу:

Ваш комментарий к ответу:

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

.

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