8 концепций, которые стоит изучить начинающему программисту

Обложка поста

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

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

Без знания базовых структур данных (массивы, связанные списки, хеш-таблицы и т. д.) сложно написать реальное приложение. Это одна из важных тем любого собеседования. Многие буткемпы программистов учат вас структурам данных и алгоритмам в первую очередь.

Примеры программ обучения Курс Data Structures and Algorithms: Deep Dive Using Java на Udemy. Ещё посмотрите этот список бесплатных курсов по структурам данных и алгоритмам.

Система контроля версий — Git

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

Git — не единственная система контроля версий, но большинство компаний и проектов использует именно её, поэтому советуем отдать ей предпочтение. Для работы с Git есть как графические интерфейсы, так и командная строка. Выбор за вами.

Примеры программ обучения Курсы GitHub Ultimate: Master Git and GitHub. Также можете посмотреть этот список бесплатных курсов по Git.

Текстовые редакторы и IDE

Текстовый редактор — важный помощник для любого айтишника.

NotePad в Windows и Vim в Linux — популярные инструменты для задач в разработке. Также есть большой выбор редакторов с расширенными функциями (например, Sublime и NotePad ++), которые предоставляют набор возможностей, подобный настоящей IDE.

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

Будет полезным потратить время на изучение горячих клавиш.

Подборки редакторов и IDE Для программистов PythonC++ и для web-разработчиков.

Базы данных и SQL

SQL — классический и очень ценный инструмент. Он существует уже более 30 лет и ещё долгое время будет популярен среди разработчиков. Широкая область применения баз данных подразумевает, что от программиста будут ожидать базовые знания в этой сфере.

Баз данных существует множество: Oracle, Microsoft SQL Server, MySQL, PostgreSQL и пр. Но для начала достаточно будет знать только ключевые моменты: вставлять/обновлять/удалять данные и писать SQL-запросы.

Примеры программ обучения Курсы «Введение в базы данных» на Stepik и «Базы данных (Databases)» на Coursera.

Сейчас в масштабных распределённых проектах становятся всё более популярными NoSQL-решения, в которых по-другому устроены хранение и доступ к данным. Если вы только начинаете изучать БД, советуем сначала разобраться с реляционным подходом, а потом изучать NoSQL.

Командная строка

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

Примеры программ обучения Курс Learn Linux in 5 Days and Level Up Your Career course на Udemy. Также можете ознакомиться со списком бесплатных курсов free courses to Learn Linux for Beginners на Dev.to.

Microsoft Excel

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

Excel предоставляет много полезных функций для сверки и анализа данных, отслеживания прогресса проекта и планирования. Он позволяет не просто копировать и вставлять данные, но и выполнять базовые манипуляции с данными (поиск, сортировка, фильтрация и так далее).

Примеры программ обучения Microsoft Excel — Excel from Beginner to Advanced.

Основы компьютерных сетей

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

Примеры программ обучения Курсы The Complete Networking Fundamentals на Udemy или Introduction to Computer Networks for Non-Techies.

Скриптовые языки

Можно, конечно, использовать один и тот же язык как для ООП, так и для написания скриптов. Но любой язык для этого не подходит. Если вы вынуждены работать с C/C++ или Java, вы не сможете добиться столь же быстрого результата, как это могут сделать, например, разработчики на Python.

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

Перевод статьи «10 Things Every Software Developer Should Know»

Как Яндекс использует ваши данные и машинное обучение для персонализации сервисов — читать и смотреть YaC 2019.