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

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

Точные шаги, чтобы научиться программировать:

  1. Определите, почему вы хотите научиться программировать.
  2. Изучите Python на бесплатном веб-сайте, посвященном кодированию, на сайте вроде Codecademy.
  3. Изучите Структуры данных и алгоритмы из курса, например, Coursera.
  4. Подражайте проектам, которые вам интересны и которые уже реализованы.
  5. Практикуйте вопросы собеседования по кодированию на Leetcode и Cracking The Coding Interview.
  6. Проходите собеседование во всех технологических компаниях и устраивайтесь на работу.
  7. Создавайте проекты, которые кажутся вам интересными, но еще не реализованы!

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

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

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

  • Вы можете использовать программирование для решения реальных проблем (такие вещи, как Uber, Facebook, Google, все построены на программировании).
  • Это довольно весело (попробуйте!).
  • Это меняет ваш взгляд на решение проблем и делает вас умнее.
  • Вы можете заработать много денег.

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

2. Изучите Python на бесплатном веб-сайте кодирования, например, на Codecademy.

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

Вам обязательно следует изучить Python как свой первый язык, потому что он будет наиболее простым для понимания по сравнению с другими языками, такими как C ++ и Java. Он самый простой и решает множество запутанных внутренних вещей, поэтому вы можете полностью сосредоточиться на программировании, когда только начинаете. Кроме того, он часто используется в реальном мире, поскольку это второй по популярности язык программирования в мире (первое место занимает Javascript, но Python лучше, особенно для начинающих). Однако, если вы все же решите выучить другой язык, ничего страшного - все они работают!

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

3. Изучите структуры данных и алгоритмы из курса.

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

Чтобы узнать об этом, есть бесплатные онлайн-курсы, например, на Coursera. Я думаю, что на данный момент, если вы найдете качественный курс, который не слишком дорог (‹50 долларов), было бы разумно заплатить за него, если вы хотите.

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

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

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

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

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

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

5. Практикуйте вопросы на собеседовании по кодированию на Leetcode и Cracking The Coding Interview.

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

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

Cracking The Coding Interview - книга, которую я лично никогда не использовал, но я слышал, что она действительно помогает при подготовке к техническим собеседованиям!

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

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

Как только вы научитесь кодировать вопросы для собеседования, подайте заявку на как можно больше вакансий! Если вы соберетесь на собеседование и сможете достаточно хорошо объяснить, как решать вопросы Leetcode, я бы сказал, что вы пройдете примерно 76% пути.

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

7. Создавайте проекты, которые кажутся вам интересными и еще не реализованы.

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

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

Выводы

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

Кроме того, если у вас есть возможность изучать информатику в колледже, я думаю, что программа курса в значительной степени подготовит вас к программированию, что делает его действительно хорошим вариантом. Это делает процесс немного более формальным, и люди ценят степени. В настоящее время я учусь в Университете Карнеги-Меллона, однако я выполнил шаги 1–3 до колледжа и чувствую, что шаги 3–7 по-прежнему очень необходимы за пределами моей школьной работы, чтобы добиться хороших результатов (я сосредотачиваю свое обучение в CMU, чтобы больше теории и технологий, потому что я чувствую, что могу изучить практическую сторону самостоятельно). Так что, если колледж - не вариант, я все же думаю, что любой может научиться программировать.

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