Основные навыки…

Введение

Из всех людей, которых я видел, которые начинают свой путь становления программистом, они обычно начинают с посещения 6-месячного учебного лагеря, получения степени CS или просто посещения таких сайтов, как Udemy, FreeCodeCamp и Youtube. Вариантов бесчисленное множество, и все они являются отличными ресурсами для изучения. Обычно люди начинают с изучения языков программирования, и так и должно быть. Но при этом они попадают в цикл изучения новых языков, фреймворков и т. д., и это продолжается и продолжается. Им не хватает изучения основных вещей, которые так же важны, как изучение первого языка.

Одна вещь, которая, как я заметил, была общей для всех этих методов обучения, заключалась в том, что ни один из них не обучал студентов инструментам и методам, которые должен знать почти каждый разработчик. Я тоже был одним из этих студентов. Я начал с Python, HTML, CSS и Javascript и подал заявку на работу задолго до того, как у меня появилось хоть какое-то представление о контроле версий, Linux, Shell, сценариях и т. д.. Все это важные инструменты, которые очень помогают программистам быстро решать сложные задачи. Этот материал практически является требованием для получения работы в качестве разработчика. Не изучать эти инструменты и не освоиться с ними — все равно, что бегать с расстегнутыми шнурками; Вы можете сделать это наверняка, но рано или поздно вы упадете.

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

Моя мотивация написать эту статью возникла, когда я думал о новых идеях для написания, и я вспомнил свою ситуацию, когда я начал работать профессионально, и как я понятия не имел о командах Linux или «Что такое оболочка?» и мой личный фаворит: "Да, конечно, я знаю контроль версий… хе-хе". Я думал, что не могу быть единственным, кто оказался в такой ситуации. Так что читайте дальше об инструментах и ​​​​других технических вещах, которые вы должны знать, когда начинаете учиться программировать, и через несколько недель вы можете «почувствовать» следующее:

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

  1. ОС Linux

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

⚙️Ресурсы для изучения Linux:

  • YoutubeОперационная система Linux — ускоренный курс для начинающих и 50 самых популярных команд терминала Linux от Кольт Стил из freeCodeCamp. Этого более чем достаточно, если вы учитесь на Youtube. Если вам нужны бесплатные ресурсы, то YouTube — это то, что вам нужно.
  • edX, Coursera, Pluralsightна многих популярных онлайн-платформах есть масса курсов и полноценных учебных курсов.
  • Курс Colt Steele’s Linux — я изучил Linux на этом курсе, потому что мне нравится метод обучения Colt. Это ясно для понимания, и это в здоровом темпе обучения наряду с отличными упражнениями, которые бросают вызов вашим навыкам. Его курс веб-разработки был первым курсом, на который я когда-либо записалась, и он научил меня многому, когда я только начинал, поэтому я немного предвзято отношусь к его преподаванию.

2. Контроль версий

Еще раз, необоротная вещь, чтобы учиться. Контроль версий — чрезвычайно важный инструмент для управления, работы и совместной работы в профессиональной среде. Существует множество инструментов, наиболее популярными из которых являются Git и его онлайн-аналог GitHub. Иногда также известный как контроль версий, он помогает разработчикам отслеживать свою кодовую базу, создавать несколько репозиториев и просто возвращаться к исходным изменениям, если и когда были допущены ошибки. А ошибок делается очень много.

Контроль версий позволяет разработчикам исправлять свои ошибки и минимизировать путаницу между разными командами. Люди используют его для своих проектов, а крупные организации, которые постоянно обновляют свои продукты, используют контроль версий в своих командах, чтобы избежать будущих катастроф. И GitHub используют не только разработчики, но и художники, юристы, бизнесмены и даже писатели для управления своими работами. Таким образом, это просто показывает, насколько бесценен этот инструмент. Для управления исходным кодом можно использовать множество других инструментов, но здесь мы собираемся придерживаться Git и GitHub. Другими популярными примерами являются Bitbucket, Mercurial, Beanstalk, Gitlab и т. д.

⚙️Ресурсы для изучения контроля версий:

  • Опять же, Youtube — это способ изучения Git. Доступно множество видеороликов, обучающих основам, а также расширенным командам git, которые сделают вас более продуктивными. Программирование с помощью Mosh и «Git Tutorials от freeCodeCamp» — одни из самых популярных поисковых запросов для изучения Git. Приветствуйте видео Fireship Расширенные приемы работы с Git», если вы уже знакомы с Git и хотите повысить продуктивность его использования.
  • Я также изучил Git из Курса Colt Steele’s GitHub. Я купил курс Linux и GitHub со скидкой в ​​виде пакета услуг. Но я бы порекомендовал для этого видео на Youtube.

3. Командная строка и терминал

Это как бы связано с моими первым и вторым пунктами. Если вы уже знакомы с Linux и Git, у вас не возникнет проблем с навигацией по Терминалу. Помимо Linux, если вы используете Windows или Mac, что делает большинство разработчиков, вы должны знать как минимум 10–20 команд для соответствующих командных строк, чтобы облегчить себе жизнь. В Windows есть PowerShell, а в Mac есть собственный терминал.

Причина изучения командной строки заключается в том, что разработчики могут лучше контролировать свои машины и свои операции, и это улучшает общий рабочий процесс. Некоторые из других очевидных причин заключаются в том, что все популярные инструменты, о которых я упоминал выше, используют терминал, так что это беспроигрышный вариант. Многие инструменты, такие как Docker, Vagrant, Kubernetes и т. д., работают в средах командной строки.

⚙️Ресурсы для изучения командной строки:

  • В основном это то же самое, что и для изучения Linux, но если вы хотите изучить Powershell или терминал Mac, есть много бесплатной документации и видео, в которых ежедневно освещаются наиболее часто используемые разработчиком команды.
  • Подсистема Windows для Linux и Терминал Windows также являются отличными инструментами для пользователей Windows, которые хотят использовать среды Linux на своих ноутбуках. Это те, которые я использую в основном при работе над проектами.

4. Структуры данных и алгоритмы

По этому поводу даже вопросов нет. Все ведущие технологические компании мира требуют, чтобы их разработчики хорошо разбирались со структурами данных и алгоритмами. Они нужны вам для решения сложных задач, они нужны вам для обработки миллиардов единиц данных, и они вам нужны. если вы хотите работать в Большой пятерке, а именно MANGA (Meta, Amazon, Netflix, Google, Apple), хотя в отрасли есть и другие гиганты. Неудивительно, что их инженеры выделяются среди других, потому что они феноменальны в решении алгоритмических задач.

Изучение DS и алгоритмов делает вас лучшим программистом, настойчивым и дает вам возможность логически мыслить. Всегда есть несколько способов решить проблему, и у каждого инженера свой мыслительный процесс.

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

⚙️Ресурсы для изучения DS и алгоритмов:

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

  • Я никоим образом не изучаю книги. Мне нравится смотреть видео и следить за курсами. Но я нашел Алгоритмы гроккинга Адитьи Бхаргавы» интересным, потому что он учит вас всем основным понятиям программирования посредством их визуализации. Я предпочитаю визуальную среду для обучения, и в этой книге это удается сделать с помощью интересных диаграмм и рисунков, объясняющих основы. Итак, если есть какая-то книга, которую я когда-либо прочитаю в учебных целях, это будет первая.

Выше приведены четыре основные вещи, которые каждый разработчик ДОЛЖЕН изучить или знать, когда он начинает или является младшим разработчиком, по крайней мере, по моему мнению.

Важное примечание. Если вы хотите изучить Linux, Shell, Git, а также некоторые дополнительные вещи вместе со всем этим в одном месте, то в Массачусетском технологическом институте есть отличный набор видеороликов под названием Пропавший семестр. вашего образования в области компьютерных наук», в котором основное внимание уделяется всем темам, которые я обсуждал в этой статье, за исключением структур данных.

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

  • Рабочие процессы CI/CD

За последнее десятилетие индустрия DevOps набрала большие обороты благодаря внедрению популярного программного обеспечения, такого как Docker, Kubernetes, Jenkins и многих других новых инструментов CI/CD. , роли и обязанности разработчиков программного обеспечения также немного изменились. В наши дни каждый разработчик должен немного знать о методологиях DevOps и о том, как работает CI/CD, а также иметь некоторые знания об инструментах, используемых в процессе.

  • Наука о данных и машинное обучение

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

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

Я также перечисляю несколько дополнительных ресурсов ниже, которые, по моему мнению, могут помочь новичку в области компьютерных наук стать полноценным инженером-программистом. Сюда входит достаточное количество ресурсов и материалов, срок обучения которых варьируется от 3 месяцев до 4 лет!

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

  • Университет интервью по кодированию Джона Вашэма — более 215 тысяч звезд на GitHub.
  • TeachYourselfCS — большое разнообразие предметов, от математики до компьютерных наук, распределенных систем и архитектуры.
  • OSSU — еще один популярный репозиторий GitHub, имитирующий степень бакалавра компьютерных наук с более чем 2-летним полезным контентом.
  • Harvard’s CS50 — самый популярный курс Гарвардского университета, и он бесплатный! Нужно ли мне сказать больше?
  • The Odin Project — очень успешный ресурс для изучения веб-разработки.
  • freeCodeCamp — все в индустрии программного обеспечения также знакомы с этой организацией. С более чем 3000 часов контента на их веб-сайте и более 1000 видео на их «канале YouTube, это мой ресурс для изучения чего-то нового.

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

Свяжитесь со мной на GitHub, Twitter и LinkedIn. Чао!