Разумные советы для начинающих программистов
Как научиться программировать? С чего начать? Какие курсы пройти, а книги прочитать? Очень часто я слышал подобные вопросы от людей, которые хотели научиться писать качественный код. Именно это вдохновило меня написать статью. Ведь я действительно хочу помочь начинающим разработчикам в этом нелегком деле.
У меня было достаточно времени подумать о своем пути программиста, я разговаривал с опытными разработчиками о коде, карьере, спрашивал, как они начинали и еще много других вопросов, которые интересуют всех новичков.
В этой статье я собрал множество реальных историй и практических советов, чтобы вдохновить и замотивировать вас сделать первые шаги в этом направлении.
Мотивация
Когда я только начинал, я просто влюбился в программирование! И это главный секрет в достижении успеха в любой сфере. Если вы делаете то, что вам нравится, вы находите это интересным и полезным (и это действительно так!) и все дальнейшие занятия будут приносить удовольствие. Поэтому мой первый совет: если вам не нравится программирование, не мучайте себя, не пытайтесь зазубрить.
Почему я так говорю? Как вы уже могли понять, мой девиз: «делать то, что в кайф». Когда вы начнете изучать программирование, вам понадобится внутренняя мотивация. Поймите, это не спринт. Это длинный-длинный марафон. Не думайте, что вы всё выучите за одну ночь. Так не бывает.
Непрерывное обучение
Каждый программист должен постоянно отслеживать технологические тенденции в мире IT: новые библиотеки, как, например, ReactJS в 2013 году, веб-приложения, такие как SPA, PWA и так далее.
Я не говорю, что надо учить всё подряд. Я хочу сказать, что новые технологии появляются очень быстро, поэтому учиться придется на протяжении всей жизни.
Еще один важный совет для вас: не перегружайте себя. Не надо начинать с самой тяжелой книги алгоритмов или стараться выучить все концепции программирования за раз.
Это как с желанием похудеть. Вы же не начинаете с марафона, чтобы добиться желаемого. Вместо этого можно начать с 15 минутной пробежки каждый день. Так же и с программированием, не надо учиться сутками напролет. Занимайтесь хотя бы по часу, но каждый день!
Не сравнивайте себя с опытными программистами или «гениями кода». Это мой четвертый совет. Во-первых, это вообще не разумно. Во-вторых, вы только начинаете. Сосредоточьтесь на учебе, вместо того, чтобы сравнивать себя с другими.
Практика - это ключ к успеху. Изучайте теорию и применяйте на практике. Это совет номер пять. Пытайтесь. Ошибайтесь и пытайтесь снова. Экспериментируйте! Мы поговорим об этом позже, но запомните, практика - самое главное!
Теории и Концепции
Очень важно понять основные концепции программирования и создать фундамент из теоретических знаний. Если вы сейчас учитесь в универе, используйте это время с пользой! Как раз в университете можно получить хорошую теоретическую базу.
Я начинал с изучения 2 крутых курсов Codecademy и CS50 at Harvard
Там я изучил основы Python на Codecademy и C в CS50. Так вот, я считаю: нужно просто начать. Выберите один язык программирования и начните с основ (переменные, циклы, структуры данных и т. д.).
Вероятно, что, когда вы выберете курсы, вас будут учить одному языку программирования. Но не переживайте! Лучше сосредоточиться на чём-то одном, но изучить досконально, чем всего понемногу.
Крутые курсы
Introduction to Algorithms про алгоритмы. Понимание алгоритмов и как они работают - это самое важное, что вы должны узнать, начиная изучать программирование. Вот еще парочка хороших книг: Introduction to Algorithm by CLRS and Algorithms by Robert Sedwick.
В интернете огромное количество ресурсов для начинающих программистов. Но постарайтесь не перегружать себя. Не нужно хвататься за каждый курс. Выбирайте один и учитесь, практикуйтесь и развивайте свою уверенность.
Практика, практика, практика
Не знаю, какие еще подобрать слова, чтобы объяснить, насколько важна практика. Один мой знакомый говорил, что для того, чтобы стать хорошим программистом нужно много-много практиковаться.
Как я писал в начале статьи, постараюсь дать вам действенные советы, которые помогут стать более опытными.
По моему примеру вы можете начать с Codecademy.
Другой классный сайт Hacker Rank. Большой выбор языков программирования, интересные упражнения и тестирования.
Еще один мой совет для вас – участвуйте во всевозможных олимпиадах, соревнованиях по программированию. Во-первых, после тяжелой подготовки, у вас появится еще больше навыков. Во-вторых, у вас появится внутренняя уверенность. Вы будете думать «Ну насколько же я крут, раз с этим справился».
Моя цель - дать вам эффективные советы, поэтому я перечислил некоторые отличные сайты, чтобы вы начали учиться прямо сегодня.
Все они похожи между собой, но они реально крутые. С множеством языков программирования, алгоритмами, учебными видео и другими полезными фишками. Теперь вы можете выбрать любой и начать практиковаться :)
Создание проектов
Я хорошо знал теорию, выполнил много практических упражнений и почувствовал, что надо развиваться дальше. Я задумался, что же мне делать, и решил создавать проекты с нуля.
Первым проектом был мой собственный сайт. Затем я создал сайт для ресторана моей мамы и две игры: крестики-нолики и змейка. Все они были статические.
Позже я решил, что моих знаний и опыта достаточно, чтобы считать себя фулл стек разработчиком. Так, я создал книжный онлайн — магазин с админ-панелью (администратор мог добавлять новые продукты, редактировать их, удалять их... все CRUD-вещи), а клиенты могли зарегистрироваться/войти в систему, искать книги и покупать их. Я был очень рад, что смог закончить этот проект, потому что для меня это было сложно. Сейчас с уверенностью могу сказать, что я многому научился за это время. Таким было начало моей работы с коммерческими проектами.
В конце, хочется поделиться с вами советами моих друзей, которые помогли им добиться успехов в программировании:
Начинайте с простых целей и проектов и определите основные шаги для их достижения.
Забудьте про перфекционизм.
Покупайте и читайте книги по программированию.
Проходите курсы.
Читайте блоги, смотрите видео, посвященные программированию.
Практикуйтесь, много-много практикуйтесь.
Еще больше полезных рекомендаций :)
Хорошие сайты, статьи и видео:
freeCodeCamp классный сайт, посвященный веб разработке и JavaScript. Совершенно бесплатно!
Udemy CodeSchool Khan Academy очень похожи между собой, но на Udemy есть платные курсы, на Khan Academy всё бесплатно, на CodeSchool есть как бесплатные, так и платные курсы.
Влоги и YouTube каналы
Fun Fun Function канал Маттиаса Петтер Йоханссона. Раньше он рассказывал только о JavaScript, но в последнее время говорит о разработке в целом. Мне очень нравится, как он ведет свой канал.
Mayuko канал посвящен iOS разработке.
CS Dojo много информации об алгоритмах, структурах данных. Канал ведет инженер -программист из компании Google.
Joma Tech самый смешной и интересный канал из всех. Джонатан Ма-специалист по данным в Facebook. Он рассказывает о жизни программиста, дает дельные советы, основанные на его опыте.
Надеюсь, эта статья была полезной!
Перевод статьи Actionable advice to start learning to code от Digital Skynet ;)