Как научиться программировать самому
пошаговая инструкция с советами экспертов
На сегодняшний день огромное количество онлайн платформ на любой вкус предлагает пройти курсы программирования. Среди самых популярных:- Курсы от Нетологии
Этот онлайн-ресурс специализируется на сфере IT. Что касается программирования, здесь можно пройти обучение по направлениям Frontend, Web-разработка, Android, Python и другим.
Это известнейший онлайн университет. Там можно обучиться всем востребованным профессиям в сфере программирования. Skillbox предлагает пройти как теоретическую, так и практическую часть, и по окончании курса у вас на руках уже будет портфолио.
Это также онлайн университет, предлагающий на выбор широкий спектр IT специализаций, в том числе и курсы программирования по самым популярным направлениям. А если вы боитесь не справиться, вам предложат наставника, и вы будете учиться под его чутким руководством. Geekbrains обещает своим студентам стажировку в крупных партнерских компаниях, а также помощь с устройством на работу.
Это крупнейшая образовательная платформа, сотрудничающая с ведущими университетами всего мира. Здесь вы сможете найти большое количество курсов программирования, но многие из них ведутся на английском языке.
На этой англоязычной платформе вы найдете большое количество курсов, посвященных различным языкам программирования. Однако для обучения вам понадобится уверенное знание английского языка.
Это лишь малая часть платформ, которые вы можете выбрать для обучения. Есть и множество других, некоторые специализируются на более узких направлениях: например, ресурс JavaRush пригодится тем, кто хочет пройти курс обучения по программированию именно на Java, а платформа HTML-Academy понравится тем, кто выбрал специализацию frontend-разработчика.
Научитесь компьютерным наукам
Большинство программ бакалавриата начинаются с «введения» в компьютерное программирование. Лучшие версии этих курсов предназначены не только для новичков, но и для тех, кто упустил полезные концепции и модели программирования во время обучения программированию.
Наша стандартная рекомендация для этого содержания - классическая Структура и интерпретация компьютерных программ , которая доступна в Интернете бесплатно как в виде книги, так и в виде набора видеолекций MIT.Хотя эти лекции великолепны, наше видео-предложение на самом деле представляет собой лекции SICP Брайана Харви (для курса 61A в Беркли). Они более детализированы и лучше ориентированы на новых студентов, чем лекции MIT.
Мы рекомендуем проработать хотя бы первые три главы SICP и выполнить упражнения. Для дополнительной практики поработайте над набором небольших задач по программированию, например, с упражнениями.
С тех пор, как это руководство было впервые опубликовано в 2016 году, один из наиболее часто задаваемых вопросов заключался в том, порекомендуем ли мы теперь записи более поздней версии 61A, преподаваемой Джоном ДеНеро, и / или соответствующей книги Составление программ , которая «в традициях SICP», но использует Python.Мы думаем, что ресурсы DeNero также великолепны, и некоторые студенты могут в конечном итоге предпочесть их, но мы все же предлагаем лекции SICP, Scheme и Брайана Харви в качестве первого набора ресурсов, которые стоит попробовать.
Почему? Потому что SICP уникален по своей способности - по крайней мере, потенциально - изменить ваши фундаментальные представления о компьютерах и программировании. Не все это испытают. Одни возненавидят книгу, другие не дойдут до первых нескольких страниц. Но потенциальная награда заставляет попробовать.
Если вам не нравится SICP, попробуйте Composing Programs .Если это все еще не подходит, попробуйте How to Design Programs . Если кажется, что ни одно из этих действий не окупает ваши усилия, возможно, это знак того, что вам следует сосредоточиться на других темах в течение некоторого времени и вернуться к дисциплине программирования через год или два.
И наконец, одно уточнение: это руководство НЕ предназначено для тех, кто плохо знаком с программированием. Мы предполагаем, что вы - компетентный программист без опыта работы в информатике и хотите восполнить некоторые пробелы в знаниях.Тот факт, что мы включили раздел о «программировании», является просто напоминанием о том, что, возможно, есть еще чему поучиться. Для тех, кто никогда раньше не программировал, но хотел бы, вы можете предпочесть подобное руководство.
, Почему все так спешат?Зайдите в любой книжный магазин, и вы увидите, как Teach Yourself Java за 24 часа вместе с бесконечными вариациями, предлагающими научить C, SQL, Ruby, алгоритмы и т. Д. За несколько дней или часов. Расширенный поиск Amazon по запросу [название: научить, себя, часов, с: 2000 и нашел 512 таких книг. Из первой десятки девять книг по программированию (вторая - по бухгалтерскому учету). Аналогичные результаты дает замена «учи себя» на «учись» или «часов» на «дни»."Вывод таков: либо люди спешат учиться о программировании, или о том, что программирование как-то невероятно проще узнать больше всего на свете. Felleisen et al. отдают дань этой тенденции в своей книге How to Design Programs , когда они говорят «Плохое программирование - это просто. Идиоты могут выучить его за 21 день , даже если это манекенов ». Комикс Abtruse Goose тоже получил свое. Давайте проанализируем, что такое заголовок Научитесь C ++ за 24 часа может означать:
Научитесь программировать за десять летИсследователи (Блум (1985), Брайан и Хартер (1899), Хейс (1989), Simmon & Chase (1973)) показали это требуется около десяти лет, чтобы развить опыт в любом из множества зоны, в том числе шахматы, музыкальная композиция, телеграф работа, рисование, игра на фортепиано, плавание, теннис и исследования в нейропсихология и топология.Ключ совещательный практика: не просто делать это снова и снова, а бросать вызов самому себе с задачей, которая выходит за рамки ваших текущих возможностей, попробуй ее, анализировать вашу производительность во время и после выполнения и исправлять никаких ошибок. Потом повторить. И повторить еще раз. Кажется, нет настоящие ярлыки: даже Моцарт, который в 4 года был музыкальным вундеркиндом, Еще 13 лет до того, как он начал создавать музыку мирового уровня. В другой жанр, Битлз, казалось, ворвались на сцену с череда хитов №1 и появление на шоу Эда Салливана в 1964 году.Но с тех пор они играли в маленьких клубах Ливерпуля и Гамбурга. 1957 г., и, хотя на раннем этапе они приобрели массовую популярность, их первая великая критический успех, Sgt. Peppers , выпущен в 1967 году.Малькольм Гладуэлл популяризировал эту идею, хотя он концентрируется на 10 000 часов, а не на 10 годах. Анри Картье-Брессон (1908-2004) использовал другую метрику: «Ваши первые 10 000 фотографий - ваши худшие». (Он не Ожидайте, что с цифровыми фотоаппаратами некоторые люди смогут достичь этой отметки за неделю.) Настоящий опыт может занять всю жизнь: Сэмюэл Джонсон (1709–1784) сказал: «Превосходство в любом отделе может быть достигается только трудом всей жизни; его нельзя покупать в меньшая цена ». И Чосер (1340-1400) жаловался:« Lyf такой короткий, ремесло так долго до lerne ». Гиппократ (ок. 400 г. до н.э.) известен отрывком« ars longa, vita brevis ", которая является частью более длинной цитаты" Ars longa, vita brevis, occio praeceps, Experimentum periculosum, iudicium difficile ", что на английском языке переводится как" Life is short, [the] craft долго, возможность мимолетная, коварный эксперимент, суждение трудно." Конечно, ни одно число не может быть окончательным ответом: это не кажется разумным предположить, что все навыки (например, программирование, игра в шахматы, игра в шашки и музыка) может потребоваться одинаковое количество времени для освоения, и все люди займет ровно столько же времени. Так как Профессор К. Андерс Эрикссон сказал: «В большинстве областей замечательно, сколько времени даже самые талантливые люди нужны для достижения высочайшего уровня производительности. Число 10000 часов просто дает вам ощущение, что мы говорим годы от 10 до 20 часов в неделю, и те, кого некоторые люди утверждают, являются наиболее талантливыми людьми по-прежнему должны достичь высочайшего уровня." Итак, вы хотите быть программистомВот мой рецепт успеха в программировании:
Фред Брукс, в своем эссе No Silver Bullet определили план из трех частей для поиска отличных разработчики программного обеспечения:
Так что покупайте книгу по Java / Ruby / Javascript / PHP; Вы будете наверное, получу от этого какую-то пользу. Но ты не изменишь свою жизнь, или ваш реальный общий опыт программиста за 24 часа или 21 день. Как о работе трудно постоянно улучшаться в течение 24 месяцев? Что ж, теперь вы кое-чего начинаете... Список литературыБлум, Бенджамин (ред.) Развитие талантов в молодежи , Баллантайн, 1985. Брукс, Фред, No Silver Bullets , IEEE Computer, vol. 20, нет. 4, 1987, с. 10-19. Брайан, W.L. & Хартер, Н. "Исследования по телеграфному языку: Приобретение иерархии привычек. Обзор психологии , 1899, 8, 345-375 Хейс, Джон Р., Полное решение проблем Лоуренс Эрлбаум, 1989. Чейз, Уильям Г. и Саймон, Герберт А. «Восприятие в шахматах» Когнитивная психология , 1973, 4, 55-81. Лаве, Жан, Познание на практике: разум, математика и культура в повседневной жизни Life , Cambridge University Press, 1988. ОтветыПриблизительное время для различных операций на типичном ПК:
Приложение: выбор языкаНесколько человек спрашивали, какой язык программирования им следует изучить в первую очередь.Однозначного ответа нет, но рассмотрите следующие моменты:
Приложение: книги и другие ресурсыНесколько человек спрашивали, какие книги и веб-страницы им следует изучить. из. Повторяю, «одного книжного обучения будет недостаточно», но я могу рекомендую следующее: |
Как научиться программированию? [Руководство для начинающих]
Программирование - это самый востребованный навык сегодня. Согласно Indeed, позиция «инженер-программист» - это самая востребованная должность в отрасли. Учитывая огромный спрос на квалифицированных программистов, для ищущих работу имеет смысл изучать программирование для начинающих.
Изучение программирования многим кажется трудным. Часто это происходит из-за неправильного подхода к обучению программированию. Люди стремятся создавать сложные приложения и часто даже не знают основ программирования.Это случилось и со мной. Я посещал семинар по Android в колледже, даже не зная основ Java. Неудивительно, что большая часть этого вышла за рамки моего понимания в то время. Есть много людей, которые могли иметь подобный опыт и, следовательно, думали, что программировать сложно.
Теперь, когда я размышляю об этом инциденте, я понимаю, что это очень распространенная проблема. Следовательно, я хотел бы поделиться подходом к обучению программированию, который намного менее утомителен и на самом деле является забавным! Основная идея этой статьи заключается в том, что изучение программирования может быть интересным, если все сделано правильно!
Как научиться программированию?
В этой статье мы увидим, как правильно научиться программировать.Эта статья будет полезна как соискателям, так и студентам. Вот план того, как научиться программировать, который может выступать в качестве 101 руководства для новичков:
1. Ознакомьтесь с языком программирования
Знакомство с языком программирования - это первый шаг к изучению программирования. Люди часто начинают с C, C ++, Java или Python. Я лично предпочитаю C ++ вначале, поскольку он не слишком прост (как Python) и не слишком несовершенен с точки зрения библиотек (как C).C ++ довольно быстр и имеет хорошую библиотечную поддержку - лучшее из обоих миров! Кроме того, C ++ - хороший выбор для соревновательного программирования, поскольку он довольно быстр и поддерживает стандартную библиотеку шаблонов (STL). Выбор первого языка очень субъективен и зависит от ваших интересов и целей. Возможно, вас заинтересуют интерфейс, серверная часть, разработка мобильных приложений, разработка игр, наука о данных и т. Д. Если ваша главная цель - получить работу, обязательно ознакомьтесь с нашей статьей о том, какой язык программирования лучше всего подходит для получения работы ?
Вы можете начать с изучения основ - синтаксиса, типов данных, переменных, циклов, массивов и т. Д.Попробуйте решить простые вопросы, связанные с реализацией, чтобы познакомиться с этими основными концепциями.
2. Изучите структуры данных и алгоритмы
Когда вы освоите любой из языков, упомянутых в предыдущем разделе, следующее, что вам нужно сделать, это изучить структуры данных и алгоритмы. Структуры данных и алгоритмы помогают в формировании правильных способностей, необходимых для программирования. Знания о структурах данных помогут вам выбрать подходящую для решаемой задачи - не все структуры данных можно использовать везде.Когда вы узнаете об алгоритмах, вы сможете понять механизм работы многих библиотечных функций, которые в противном случае показались бы вам черными ящиками.
Есть много хороших онлайн-курсов, на которых вы можете учиться. Алгоритмы, часть 1 и часть 2 - хорошие курсы для начала. Важно, чтобы вы потратили время на обдумывание реализации этих структур данных и алгоритмов, чтобы освоиться с ними. Вы можете подумать, что изучение их реализации может не иметь значения, поскольку в конечном итоге используются библиотечные функции.Это одно из самых распространенных заблуждений людей. Понимание реализации поможет вам оценить временную сложность, что поможет вам в дальнейшей оптимизации вашего кода. Есть замечательный веб-сайт Visualgo, где вы можете фактически визуализировать работу различных структур данных и алгоритмов.
3. Запачкайте руки соревновательным программированием
Изучив структуры данных и алгоритмы, вы должны начать решать проблемы на таких сайтах, как SPOJ, Codechef, Codeforces, Topcoder, Hackerrank, Geeksforgeeks и т. Д.Чем больше проблем решишь, тем лучше. Однако лучше решать проблемы в порядке возрастания сложности. Вы можете отсортировать проблемы в порядке убывания количества присланных решений и приступить к решению. Решив около 100 смешанных задач, вы приобретете уверенность в своих навыках программирования.
После того, как вы научитесь решать вопросы и кодировать решения, вы можете начать участвовать в различных онлайн-конкурсах по программированию.Это значительно улучшит ваши навыки программирования.
4. Сделать проект
Теперь, когда вы усовершенствовали свои навыки решения проблем и программирования, пришло время создать несколько полезных приложений. Вы можете выбрать какой-нибудь популярный фреймворк для веб-разработки (Django, Flask, Ruby on Rails и т. Д.) И создать с его помощью проект. Создание приложения позволит вам почувствовать настоящую разработку программного обеспечения, что и делают большинство программистов.
После того, как вы создали несколько проектов веб-разработки, вы можете попробовать свои силы в разработке для Android или iOS.Не ограничивай себя - учись всему, что хочешь!
5. Изучите
После того, как вы уверены в своих навыках программирования и выполнили несколько проектов, вам следует перейти к изучению различных областей компьютерных наук и посмотреть, что вас больше всего интересует.
Компьютерные науки - обширная и богатая область со множеством интересных подотраслей. Некоторые из популярных областей компьютерных наук - это искусственный интеллект, машинное обучение, криптография, облачные вычисления, системное программирование, компьютерное зрение, обработка естественного языка, блокчейн, виртуальная реальность, веб-разработка, разработка мобильных приложений и многие другие.Вам следует попытаться изучить как можно больше областей, чтобы знать, в чем заключается ваш интерес.
В настоящее время существует множество онлайн-ресурсов для изучения любой из вышеупомянутых областей. Но с изобилием доступных ресурсов новичку сложно найти отличный учебник из такого множества вариантов. Что бы вас ни интересовало, вы можете найти лучшие учебники, рекомендованные сообществом программистов, для этого языка / фреймворка на Hackr.io. Помимо руководств и курсов, вы также можете найти лучшие книги и упражнения / проекты / практические задачи на Hackr.
Изучив что-то, попробуйте выполнить проект, связанный с этим. Проекты помогают укрепить усвоенные концепции. Также они хороши с точки зрения составления резюме.
Это был мой подход к обучению программированию; вот как я научился программировать :) Поскольку вы читаете эту статью, я предполагаю, что вы серьезно относитесь к изучению программирования, и это хорошо! Надеюсь, вы нашли эту статью полезной. Всего наилучшего для вашего обучения! Не стесняйтесь задавать мне свои вопросы / сомнения в комментариях.
Еще читают:
,