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

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

Именно так бы я поступил, если бы мне пришлось заново учиться программировать.

Теперь начнем!

Как лучше всего научиться программировать?

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

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

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

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

Когда мне следует сосредоточиться на проектах?

Освоив основы, вы захотите начать применять их в реальных приложениях.

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

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

П.С. Здесь, в Educative, мы предлагаем структурированные пути обучения,особенно для начинающих. Эти пути развития навыков обеспечивают пошаговый подход к овладению различными языками программирования и карьерными специализациями — от основ до реальных проектов и не только.

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

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

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

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

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

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

HTML, CSS и JavaScript также являются хорошими вариантами для новичков и имеют большой смысл для всех, кто может интересоваться веб-разработкой. .

В последнее время я увлекся несколькими новыми языками (условно говоря), такими как Go» и Ruby. Kotlin может быть хорошим выбором, если вас особенно интересует мобильная разработка. Лично я научился программировать с использованием C++ и до сих пор являюсь большим поклонником его мощи и производительности, но если бы я только начинал сегодня, я бы хотя бы рассмотрел Rust. "как альтернатива.

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

П.С. Я также рекомендую ознакомиться с Ежегодным опросом разработчиков StackOverflow. Это отличное место для поиска, если вас интересуют самые популярные (или непопулярные) и самые востребованные языки и специализации!

Что самое сложное в обучении программированию?

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

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

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

Отрасль определенно конкурентоспособна. Но при правильной подготовке и подходе любой квалифицированный кандидат может добиться успеха. Просто помните: обучение не прекращается, как только вы освоите основы!

Нужна ли мне степень в области компьютерных наук, чтобы получить работу?

Краткий ответ: нет.

Немного более длинный ответ — нет, но вам необходимо освоить основы информатики, чтобы добиться успеха в долгосрочной перспективе.

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

Лично у меня есть степень B.S. и М.С. Я получил степень доктора компьютерных наук, и я считаю, что это сослужило мне хорошую службу в моей карьере. Однако, проработав в этой отрасли долгое время и поработав с множеством талантливых разработчиков из самых разных слоев общества, я искренне верю, что вы можете добиться успеха без формального образования в области CS.

Это подводит нас к еще одному связанному с этим вопросу, который я часто получаю:

Окажутся ли программисты-самоучки в невыгодном положении?

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

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

Сколько времени мне понадобится, чтобы научиться программировать?

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

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

Ваша цель и цели

Вы хотите стать профессиональным разработчиком программного обеспечения? Или вы просто хотите освоить базовые навыки программирования для хобби или конкретного небольшого проекта? Глубина знаний, которые вам понадобятся, значительно различается в зависимости от этих сценариев. Существует также большая разница между пониманием основ и синтаксиса языка и освоением более сложных концепций, таких как структуры данных, алгоритмы и проектирование систем. (Что касается последнего, я могу засвидетельствовать, что это занятие всей жизни!)

Предыстория и интересы

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

Учитывая эти факторы, вот несколько приблизительных оценок того, как стать инженером-программистом:

  • Изучите основы языка программирования (например, Python или JavaScript) за от нескольких недель до нескольких месяцев
  • Станьте достаточно опытным, чтобы создавать простые проекты: От нескольких месяцев до года
  • Подготовьтесь к работе на должность младшего разработчика: от 6 месяцев с интенсивным учебным курсом до 4 лет с традиционным университетским дипломом (мне нравится думать, что Educative предлагает более доступная золотая середина между этими двумя крайностями)
  • Достигните уровня мастерства или специализации: Много лет практики, непрерывного обучения и реального опыта (поверьте мне — путешествие никогда не заканчивается!)

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

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

7. Чем Educative отличается от других обучающих платформ?

Вот последняя аналогия на сегодня: я всегда думал, что обучение программированию во многом похоже на учение плаванию.

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

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

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

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

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

Помните: если ваше приложение создано для 3 человек или 3 миллиардов человек, основная логика остается той же.

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

Удачного обучения!