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

1. Codecademy

Codecademy - отличная отправная точка для начинающих программистов, которые хотят изучить некоторые важные навыки для создания программ любого типа, но особенно веб-приложений (например, веб-сайт с базой данных и взаимодействием с пользователем). На сайте есть удобная платформа, которая шаг за шагом проведет вас через изучение основ языка или других навыков и будет развиваться по мере того, как вы углубляетесь в уроки. Приятной особенностью для новичков является то, что вся работа выполняется прямо на сайте, поэтому не нужно беспокоиться о настройке среды на вашем компьютере, которая поначалу потенциально может стать раздражающим узким местом. Хотя есть несколько очень специфических веб-ориентированных курсов, которые приятно изучить, если вы знаете, чем вы хотите заниматься конкретно вне курса (например, AngularJS), существует множество универсально применимых курсов, необходимых практически для всего программирования ( например, git, командная строка, SQL), а затем практически для всей веб-разработки в целом (например, HTML и CSS, jQuery). Я лично обнаружил, что после того, как я много занимался программированием, некоторые уроки могут быть немного утомительными по своему объему, но это определенно неплохая особенность, когда вы только начинаете.

2. Udacity

Udacity предоставит студентам серию видеороликов, перемежающихся короткими вопросами и несколькими более крупными проектами для отработки новых концепций. На сайте используется концепция наностепеней, в которой они определяют несколько тем обучения и для каждой дают набор курсов, которые вы можете пройти (и за определенную плату заработать наностепеню!). Например, вы можете пройти ряд курсов и проектов, чтобы узнать о машинном обучении. Весь контент также доступен бесплатно - предостережение в том, что вы теряете личное наставничество, проверку кода, ученую степень и т. Д., Но если вы заинтересованы в просмотре видео и чувствуете себя комфортно с кодом, вы писать, возможно, бесплатно - хороший способ начать. Приятной особенностью является широкий диапазон тем, от машинного обучения до интерфейсных веб-разработчиков, мобильных устройств и т. Д. После прохождения некоторых вводных курсов по машинному обучению у меня первое впечатление, что видео хороши для обзора тем, но мне еще предстоит выяснить, смогу ли я достичь какой-либо глубины. Скорее всего, на более поздних курсах студенты в какой-то мере поработают над мелкими деталями. Если вы подадите заявку на получение степени магистра компьютерных наук Georgia Tech Online, ваши занятия будут проводиться на платформе Udacity. Они даже могут помочь вам найти работу на основе профиля, который вы создаете на их веб-сайте. Такие компании, как Google, Facebook, Amazon и другие, помогли создать классы, поэтому они наверняка наблюдают за талантами, которые там появляются. В любом случае, если вы ищете хороший обзорный материал, стоит попробовать Udacity.

3. Coursera

Пока что я большой поклонник Coursera, который предлагает видеолекции на уровне колледжа, смешанные с индивидуальными заданиями. Как и в Udacity, есть платный вариант, но я начал с бесплатной версии, где вы все еще можете проходить все лекции и задания. Содержание раскрывается неделя за неделей по мере прохождения курса, и каждую неделю появляются видеолекции, письменные резюме и практические работы, сочетание которых чрезвычайно полезно. Здесь есть контент для программистов всех уровней, от вводного курса по Python в Мичиганском университете до популярного курса машинного обучения в Стэнфорде. Я очень рад возможности использовать Coursera как место, где можно узнать о новых областях компьютерной науки и математики, на которые у меня не было времени еще в школе, и я лично считаю, что это лучший вариант использования сайта. Для тех из вас, кто беспокоится о том, что забыл некоторые предварительные знания, знайте, что многие курсы начинаются с хороших обзоров (например, прошло несколько лет с тех пор, как я занимался какой-либо линейной алгеброй, но курс Stanford ML начинается с базового обзора того, что вы надо будет знать). Мне также интересно, что вы можете просматривать содержание очень похожих курсов, но из разных учебных заведений, поэтому, если вам не нравится машинное обучение в Стэнфорде, возможно, вам будет полезнее другой набор лекций по машинному обучению.

4, 5. Open Learning Initiative, MIT Open Courseware

Open Learning Initiative (OLI) и MIT Open Courseware похожи на Coursera в том, что они предоставляют бесплатные углубленные видео / письменные лекции для колледжей. Пара школ, которые участвуют в программе OLI, - это CMU и Stanford - в обеих есть несколько вариантов курсов программирования, но, возможно, больше вариантов для вероятностных, статистических и других подобных курсов, которые могут служить важной основой для многих CS. -конкретные курсы. MIT Open Courseware предлагает массу вариантов, так что обязательно взгляните. Например, если вы посмотрите на математические или инженерные темы, вы увидите длинный список курсов как для бакалавриата, так и для аспирантов. У меня сложилось впечатление, что прохождение любого из этих курсов не будет таким структурированным, как курсы на Coursera, поэтому все зависит от ваших предпочтений (лично мне нравится структура Coursera, потому что я полагаю, что кто-то хорошо поработал над планированием того, сколько я должно уместиться через неделю). Стремление к открытому программному обеспечению от некоторых из крупнейших инженерных школ откроет множество дверей, если у вас будет прочная база в некоторых из основных навыков программирования.

6. Как пройти собеседование по кодированию

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

7. Проект Эйлер

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

8. Ханская академия

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

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

Эта статья была написана Нейтом в Josh.ai, где он фокусируется на облаке и сети. Ранее Нейт работал аналитиком по глобальным рынкам в RBC Capital Markets в Нью-Йорке. Нейт получил степень бакалавра наук в Корнелле и вырос в Нью-Йорке. Нейт недавно переехал в Колорадо, и вне работы он любит играть в гольф и теннис, ходить в походы, заниматься спортом и с нетерпением ждет возможности покататься на лыжах.

Josh.ai - агент искусственного интеллекта для вашего дома. Если вы хотите узнать больше, посетите нас по адресу https://josh.ai.

Поставьте нам лайк в Facebook, подпишитесь на нас в Twitter.