20 полезных навыков, которые можно освоить за 3 дня

Даже в программировании есть легко усваиваемые навыки, и относятся они не только к регуляркам, базам данных и VCS.

Мы пойдем дальше, и затронем максимум из того, чему можно научиться за 3 дня.

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

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

Vim редактор

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

Если вы еще не освоили SQL, сделайте это для начала. Базы данных используются везде, начиная от веб-приложений и заканчивая искусственным интеллектом. В продакшене используются распределенные базы данных, такие как MySQL или PostgreSQL. Также важно ознакомиться с теоремой CAP, алгоритмом MapReduce.

Навыки программирования с extends Java упростят работу с фреймами и панелями: class Frame extends JFrame/JPanel. С таким подходом не нужно задавать новый JFrame и всякий раз прописывать JFrame.set*, Jframe.add*. Достаточно просто использовать set* или add* в коде. На первый взгляд, улучшение незначительное, но в работе с огромным количеством элементов экстендить классы в Java не помешает.

extends Java

TeX — язык для вёрстки текста с применением научного подхода, для серьёзных людей. LaTeX — макросы для TeX’а. TeX был изобретён и популяризован знаменитым программистом/математиком Дональдом Кнутом — если не отцом, то во всяком случае дедушкой всего нынешнего программирования. Навык в LaTeX позволит быстро создавать PDF-файлы, в которых могут содержаться математические формулы, код, графики.

Подготовиться к собеседованию, найдя в сети и выполнив ТЗ любого работодателя на том языке, который хуже всего изучен. Это позволит ознакомиться с общими требованиями на рынке IT-услуг и усовершенствовать навыки программирования.
Рекомендуем посмотреть «Стандартные задачи на собеседовании».

Научиться основам работы с Linux. Linux — одна из наиболее популярных операционных систем для разработки, часто используемая для удаленных серверов. Также дистрибутив Kali Linux часто используется хакерами и специалистами в информационной безопасности.

навыки Linux

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

Научиться работать с одной из VCS (например, система контроля версий Git). Такой инструмент страхует от ошибок, так как позволяет произвести откат в том случае, если изменения в программе не привели к желаемому результату, и нужно вернуться на несколько этапов назад.

За 3 дня можно освоить какой-нибудь алгоритм машинного обучения и его реализовать с нуля: прочесть CSV-файл, создать обучающее и тестовое множества, запустить алгоритм с перестраиваемыми параметрами и простой вывод из релевантной статистики.
Рекомендуем посмотреть «Основы машинного обучения за неделю».

Завести профиль на сайте Stack Overflow и его русскоязычном аналоге Hashcode, после чего научиться пользоваться этими системами вопросов и ответов. Кто-то найдет полезные подсказки и советы, а кто-то получит бесплатную практику.

Stack Overflow

Если вы знаете ООП, сразу изучайте шаблоны проектирования. Они часто используются в индустриальном коде, об их знании часто спрашивают на собеседованиях. Освоив их, вы станете лучше как специалист.
Рекомендуем посмотреть «3 лучших книги по объектно-ориентированному программированию» и «4 лучших книг о шаблонах проектирования».

JavaScript – самый популярный язык программирования на Github. После появления node.js, JavaScript кроме как технологии, используемой для фронтенда, стал активно применяться в создании бекенда и консольных утилит.
Рекомендуем посмотреть «Изучение JavaScript с нуля» и «Подборка бесплатных ресурсов для изучения Node.js».

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

Работа в командной строке позволяет существенного ускорить работу и является необходимым навыком для работы с удаленным сервером. Часто умение работать в терминале фигурирует в требованиях к различным вакансиям.

Научиться разрабатывать эффективные тесты для кода. Это сведет к минимуму возможные ошибки.

Понять, как используется генератор списков в Python. Да, это «синтаксический сахар», без которого можно обойтись, однако с генерацией намного удобнее. Прочтите о встроенных функциях в питон и поймите, что каждая делает, предварительно поигравшись в консоли интерпретатора. Освойте модель itertools. Начните играть в CheckIO.

генератор списков в Python

Поработать с AWK. Это неплохой C-подобный язык, который используется в bash скриптах. sed — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Он и grep позволят вам сэкономить массу времени для обработки текстовой информации на сервере.

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