Здравствуйте, друзья, если вы занимались разработкой программного обеспечения в течение некоторого времени и думаете о том, что делает хорошего программиста? Чему должен научиться программист в 2020 году, чтобы стать лучшим разработчиком? Чему должны научиться выпускники информатики заранее, чтобы сделать карьеру в разработке программного обеспечения и программировании? Элитные компании ищут программистов с профессиональными навыками и владениями не только несколькими языкамиЮ но и навыками работы в облачных вычеслениях.
Какие навыки ожидаются от начинающего разработчика, это некоторые из общих вопросов, которые я получаю от многих учеников в Facebook и электронной почте, которые следуют за мной.
В основном это выпускники колледжей и новички, которые теперь имеют доступ к большому количеству информации благодаря Интернету и стремятся заранее приобрести навыки для подготовки к собеседованиям по программированию.
В этой статье мы поделимся 11 навыками, которые, как нам кажется, должен знать каждый программист в 2020 году.
Это включает в себя язык программирования, такой как C ++ или Java, основные компьютерные концепции, такие как структуры данных, алгоритмы и основы компьютерных сетей, важные инструменты, такие как Git, Docker, Kubernetes и контейнеры в целом, концепции облачных вычислений и платформы, такие как AWS, GCP, Microsoft Azure, и вечные навыки, такие как SQL и UNIX, редакторы, такие как Eclipse или Visual Studio Code, и текстовые редакторы, такие как VIM и NotePad ++ и т. д.
Этот список ни в коем случае не является полным, но он дает вам хорошую отправную точку для навыков, которые должен знать программист. Если вы стремитесь сделать карьеру в разработке программного обеспечения и ищете работу по программированию, то это то, что вы можете научиться и улучшить, чтобы оставаться впереди своих конкурентов.
Без дальнейших церемоний, вот список навыков, которые мы считаем, должен знать каждый программист, независимо от работы, которую он делает. Это важные навыки, которые будут служить вам долгое время. Любые инвестиции, вложенные в это с точки зрения времени, денег и усилий, помогут вам пожинать плоды на протяжении всей вашей карьеры.
Помимо контейнеров, Cloud — это еще одна вещь, которую, как мы думаем, должен знать каждый разработчик программного обеспечения и специалист по данным в 2020 году. Компании всех размеров и доменов теперь переводят свои среды в Cloud для экономии средств и повышения масштабируемости, что рано или поздно означает, что вы нужно работать с облачными приложениями.
Они также важны для всех восходящих разработок в области наук о данных, машинного обучения и искусственного интеллекта, поскольку единственное облако может обеспечить вычислительную мощность, необходимую для этих ресурсоемких моделей.
Облачные платформы обучения, такие как Amazon Web Service (AWS), Google Cloud Platform (GCP) или Microsoft Azure, сделают вас на шаг впереди ваших конкурентов не только в вашей текущей работе, но и в следующем посте. Вам не нужно изучать их все, и на самом деле, изучение одного означает, что вы будете иметь справедливое представление о других.
Прежде всего, мы предлаем вам изучить AWS, поскольку это самая популярная и наиболее зрелая облачная платформа, и существует большой спрос со стороны разработчиков и системных администраторов, обладающих знаниями AWS, если вам нужен ресурс, тогда я рекомендую пройти курс Ultimate AWS Certified Solutions Architect Associate от Stéphane Maarek, Небесные Гуру. Это не только поможет вам углубленно изучить AWS, но и подготовит вас к сертификации AWS.
Если вы хотите стать программистом, вы должны хорошо знать структуру данных и алгоритмы; спасения нет. Это одна из важных тем любого собеседования по программированию, и без знания базовых структур данных, таких как массив, связанный список, карта, набор, невозможно написать реальное приложение.
Вот почему каждый программист должен приложить серьезные усилия к изучению структуры данных и алгоритма во время курса информатики.
Если вы программист-самоучка, вы также должны знать структуру данных и алгоритм; на самом деле, многие программирующие bootcamp научат вас структуре данных и алгоритму в первую очередь.
Управление исходным кодом используется для хранения кода, и если вы хотите стать программистом или разработчиком программного обеспечения, вы должны знать такие инструменты контроля версий, как Git и SVN.
К счастью, Git и Github упростили рынок, и теперь более 70% организаций используют Git; следовательно, вы можете уйти, просто изучив Git.
Кстати, вы должны приложить некоторые усилия для хорошего изучения Git, так как вы должны быть знакомы с продвинутыми концепциями управления версиями, такими как ветвление и слияние, а также с самим инструментом, мы имеем в виду, как в командной строке, так и с использованием GUI. Для начинающих GitHub Ultimate: Master Git и GitHub — правильное место для начала.
Мы считаем, что в 2020 году каждый программист, инженер-программист, специалист по данным и даже руководитель проекта должны знать о контейнерах и инструментах, таких как Docker и Kubernetes.
Теперь доказано, что такие контейнеры, как Docker, не только помогают разработчикам тестировать свои приложения в единой среде, но и упрощают процесс развертывания.
С помощью Docker вы можете быстро развернуть приложение со всеми его зависимостями за один раз, оно также обеспечивает изоляцию процесса. Точно так же Kubernetes, который является инструментом оркестровки контейнеров, поднимает его на следующий уровень и может управлять контейнерами для вас.
Это означает, что вам не нужно беспокоиться о масштабируемости вашего приложения, и Kubernetes или K8s могут сделать это автоматически. Если вы хотите освоить новый навык в 2020 году, мы предлагаем вам изучить Docker и Kubernetes, это поможет не только в вашей текущей работе, но и в следующем посте, поскольку они также являются наиболее востребованным навыком в компаниях всех размеров.
Не бывает ни одного дня, когда мы не использовали текстовый редактор, работая программистами. Это один из важнейших инструментов даже для непрограммистов и тех, кто работает с компьютерами.
В основном мы использовали NotePad в Windows и VIM в Linux, но в настоящее время у вас есть много вариантов с расширенными редакторами, такими как Sublime и NotePad ++, которые предоставляют функции, подобные IDE.
Мы предлагаем вам потратить некоторое время на изучение вашего любимого редактора и сочетаний клавиш, советы по производительности — это то, что вы можете выучить. Если вам нравится VIM, то изучайте VIM, вы не пожалеете о своем решении.
Современные IDES, такие как Eclipse или Visual Studio Code, являются наиболее важным инструментом для любых программистов. Для программистов на C, C ++ и C # выбор очевиден, Visual Studio и для разработчиков на Python Jupiter Notebook с каждым днем становятся все лучше и лучше.
Для Java-программистов есть три основных IDE на выбор, такие как Eclipse, NetBeans и IntelliJ.
SQL — это классика, он существует уже более 30 лет, и я думаю, что он будет еще 30 лет. Учитывая вездесущность базы данных, от программиста ожидается, что он знаком с основными понятиями базы данных, такими как нормализация и дизайн таблиц, а также с SQL.
Существует много баз данных, таких как Oracle, MySQL, Microsoft SQL Server, PostgreSQL и т. д., Но достаточно знать только одну. Критическим моментом является то, что вы должны быть знакомы с базой данных. Вы должны знать, как вставлять/обновлять/удалять данные и писать запросы SQL для их получения.
Как и SQL, UNIX также выдержал испытание временем. Он также существует уже более 30 лет, и мы надеемся, что он будет там еще много лет. Поскольку большую часть времени программистам приходится работать на машине UNIX, например на серверах Linux, хорошее знание командной строки Linx имеет большое значение.
Это позволяет вам эффективно работать. Вы можете искать файлы, знать, что происходит с системой, проверяя ее использование процессора и памяти, а также выполнять основные и расширенные задачи.
Как программист, вы должны знать язык программирования, такой как C ++ или Java или, возможно, Python или JavaScript. Вы можете выбрать все, что захотите, но мы советуем вам начать хотя бы с Java.
С этого легко начать, и поэтому правильный выбор для начинающих. Это также очень мощный язык и позволяет вам практически все.
У него есть библиотеки от базовых вещей, таких как веб-разработка до больших данных и так далее.
Сегодняшний мир — это взаимосвязанный мир, и везде, где бы вы ни находились, вы найдете компьютерные сети, начиная от дома, где вы используете WIFI на многих устройствах, до школы, колледжа и офисов, которые используют локальную сеть (LAN) для Интернета.
Большинство приложений, которые вы напишете, также не будут автономными, а будут использоваться клиент-серверным способом, когда запрос будет передаваться по сети на сервер. Клиенты получат доступ к вашему приложению из любой точки мира.
Суть в том, что вы должны понимать основы работы с сетью, чтобы понимать, разрабатывать и поддерживать ваше приложение.
В пункте № 8 мы предложили вас выучить язык программирования, а здесь мы просим вас выучить язык сценариев? Почему? Может ли тот же язык программирования не использоваться в качестве языка сценариев?
Что ж, несомненно, есть какой-то язык, который подходит как для ООП-кодирования, так и для написания сценариев, например Python, и поэтому мы попросили вас хотя бы изучить его, но если вам случится выучить C/C ++ или Java, то вы не сможете добиться успеха и сделать что-то настолько быстрое, что может сделать разработчик на Python или Perl.
Язык сценариев позволяет легко создавать инструменты и сценарии для решения типичных проблем в мире программирования. Если вы хорошо владеете языком сценариев, таким как Python, вы можете легко автоматизировать обычные вещи.