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

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

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

В этой статье — 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.

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

Не смешно? А здесь смешно: @ithumor