Даже в программировании есть легко усваиваемые навыки, и относятся они не только к регуляркам, базам данных и VCS.
Мы пойдем дальше, и затронем максимум из того, чему можно научиться за 3 дня.
1. Парсер сайтов
Создать программу с парсингом сайтов и выводом нужной информации в удобном фрейме. Эта возможность позволит быстро мониторить новости, погоду и другие важные события. Реализовать несложно, а время экономит ощутимо.
Рекомендуем посмотреть «Всё о парсинге сайтов на Python».
2. Vim редактор
Освоить линуксоидный Vim редактор, который стал более функциональным за счет расширений и надстроек. Vim нельзя отнести к интуитивно понятному, поэтому обучение необходимо. Поддерживает 2 режима ввода (текстовый и командный), между которыми можно переключаться.
Рекомендуем посмотреть «Vim: 7 привычек для эффективной работы с текстом».
3. Многофункциональный калькулятор
Разработать свой калькулятор с простыми операциями, матрицами, векторами и всем, что необходимо кодеру; добавить сингулярное разложение, метод наименьших квадратов и возможность вычислить обратную матрицу. Незаменимый инструмент для людей, которые часто сталкиваются со сложными расчетами, но также подойдет и в повседневной жизни.
4. Освоить одну из распределенных баз данных
Если вы еще не освоили SQL, сделайте это для начала. Базы данных используются везде, начиная от веб-приложений и заканчивая искусственным интеллектом. В продакшене используются распределенные базы данных, такие как MySQL или PostgreSQL. Также важно ознакомиться с теоремой CAP, алгоритмом MapReduce.
Рекомендуем посмотреть «SQL за 20 минут».
5. Освоить extends в Java (swing)
Навыки программирования с extends Java упростят работу с фреймами и панелями: class Frame extends JFrame/JPanel. С таким подходом не нужно задавать новый JFrame и всякий раз прописывать JFrame.set*, Jframe.add*. Достаточно просто использовать set* или add* в коде. На первый взгляд, улучшение незначительное, но в работе с огромным количеством элементов экстендить классы в Java не помешает.
Рекомендуем посмотреть «6 книг по Java для программистов любого уровня».
6. LaTeX, BibTex, pgfplots
TeX — язык для вёрстки текста с применением научного подхода, для серьёзных людей. LaTeX — макросы для TeX’а. TeX был изобретён и популяризован знаменитым программистом/математиком Дональдом Кнутом — если не отцом, то во всяком случае дедушкой всего нынешнего программирования. Навык в LaTeX позволит быстро создавать PDF-файлы, в которых могут содержаться математические формулы, код, графики.
7. Учимся проходить собеседование
Подготовиться к собеседованию, найдя в сети и выполнив ТЗ любого работодателя на том языке, который хуже всего изучен. Это позволит ознакомиться с общими требованиями на рынке IT-услуг и усовершенствовать навыки программирования.
Рекомендуем посмотреть «Стандартные задачи на собеседовании».
8. Linux
Научиться основам работы с Linux. Linux — одна из наиболее популярных операционных систем для разработки, часто используемая для удаленных серверов. Также дистрибутив Kali Linux часто используется хакерами и специалистами в информационной безопасности.
Рекомендуем посмотреть «10 лучших видеокурсов для изучения Linux».
9. Основы теории графов
Графы в современном мире используются повсеместно, начиная от дерева файловой системы и заканчивая алгоритмами поисковой выдачи и графом друзей в социальных сетях.
10. Система контроля версий
Научиться работать с одной из VCS (например, система контроля версий Git). Такой инструмент страхует от ошибок, так как позволяет произвести откат в том случае, если изменения в программе не привели к желаемому результату, и нужно вернуться на несколько этапов назад.
Рекомендуем посмотреть «Гайды по работе с Git».
11. Реализовать один из алгоритмов машинного обучения
За 3 дня можно освоить какой-нибудь алгоритм машинного обучения и его реализовать с нуля: прочесть CSV-файл, создать обучающее и тестовое множества, запустить алгоритм с перестраиваемыми параметрами и простой вывод из релевантной статистики.
Рекомендуем посмотреть «Основы машинного обучения за неделю».
12. Научиться пользоваться важными ресурсами
Завести профиль на сайте Stack Overflow и его русскоязычном аналоге Hashcode, после чего научиться пользоваться этими системами вопросов и ответов. Кто-то найдет полезные подсказки и советы, а кто-то получит бесплатную практику.
13. Изучить ООП/шаблоны проектирования
Если вы знаете ООП, сразу изучайте шаблоны проектирования. Они часто используются в индустриальном коде, об их знании часто спрашивают на собеседованиях. Освоив их, вы станете лучше как специалист.
Рекомендуем посмотреть «3 лучших книги по объектно-ориентированному программированию» и «4 лучших книг о шаблонах проектирования».
14. Основы JavaScript
JavaScript – самый популярный язык программирования на Github. После появления node.js, JavaScript кроме как технологии, используемой для фронтенда, стал активно применяться в создании бекенда и консольных утилит.
Рекомендуем посмотреть «Изучение JavaScript с нуля» и «Подборка бесплатных ресурсов для изучения Node.js».
15. Сортировка
Освоить несколько полезных сортировочных алгоритмов. Систематизация делает работу проще, а жизнь кодера – в разы легче.
16. Работать в командной строке
Работа в командной строке позволяет существенного ускорить работу и является необходимым навыком для работы с удаленным сервером. Часто умение работать в терминале фигурирует в требованиях к различным вакансиям.
17. Тестинг
Научиться разрабатывать эффективные тесты для кода. Это сведет к минимуму возможные ошибки.
18. Python
Понять, как используется генератор списков в Python. Да, это «синтаксический сахар», без которого можно обойтись, однако с генерацией намного удобнее. Прочтите о встроенных функциях в питон и поймите, что каждая делает, предварительно поигравшись в консоли интерпретатора. Освойте модель itertools. Начните играть в CheckIO.
Рекомендуем посмотреть «9 Youtube-каналов для изучения Python».
19. AWK, sed и grep
Поработать с AWK. Это неплохой C-подобный язык, который используется в bash скриптах. sed — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Он и grep позволят вам сэкономить массу времени для обработки текстовой информации на сервере.
20. Регулярные выражения
Найти и выучить основные регулярные выражения тех языков, с которыми предпочитаете работать. Конечно, никто не запрещает пользоваться шпаргалками, но для хорошего специалиста это несолидно.
Рекомендуем посмотреть «Регулярные выражения: 5 сервисов для тестирования и отладки».
Мы пойдем дальше, и затронем максимум из того, чему можно научиться за 3 дня.
1. Парсер сайтов
Создать программу с парсингом сайтов и выводом нужной информации в удобном фрейме. Эта возможность позволит быстро мониторить новости, погоду и другие важные события. Реализовать несложно, а время экономит ощутимо.
Рекомендуем посмотреть «Всё о парсинге сайтов на Python».
2. Vim редактор
Освоить линуксоидный Vim редактор, который стал более функциональным за счет расширений и надстроек. Vim нельзя отнести к интуитивно понятному, поэтому обучение необходимо. Поддерживает 2 режима ввода (текстовый и командный), между которыми можно переключаться.
Рекомендуем посмотреть «Vim: 7 привычек для эффективной работы с текстом».
3. Многофункциональный калькулятор
Разработать свой калькулятор с простыми операциями, матрицами, векторами и всем, что необходимо кодеру; добавить сингулярное разложение, метод наименьших квадратов и возможность вычислить обратную матрицу. Незаменимый инструмент для людей, которые часто сталкиваются со сложными расчетами, но также подойдет и в повседневной жизни.
4. Освоить одну из распределенных баз данных
Если вы еще не освоили SQL, сделайте это для начала. Базы данных используются везде, начиная от веб-приложений и заканчивая искусственным интеллектом. В продакшене используются распределенные базы данных, такие как MySQL или PostgreSQL. Также важно ознакомиться с теоремой CAP, алгоритмом MapReduce.
Рекомендуем посмотреть «SQL за 20 минут».
5. Освоить extends в Java (swing)
Навыки программирования с extends Java упростят работу с фреймами и панелями: class Frame extends JFrame/JPanel. С таким подходом не нужно задавать новый JFrame и всякий раз прописывать JFrame.set*, Jframe.add*. Достаточно просто использовать set* или add* в коде. На первый взгляд, улучшение незначительное, но в работе с огромным количеством элементов экстендить классы в Java не помешает.
Рекомендуем посмотреть «6 книг по Java для программистов любого уровня».
6. LaTeX, BibTex, pgfplots
TeX — язык для вёрстки текста с применением научного подхода, для серьёзных людей. LaTeX — макросы для TeX’а. TeX был изобретён и популяризован знаменитым программистом/математиком Дональдом Кнутом — если не отцом, то во всяком случае дедушкой всего нынешнего программирования. Навык в LaTeX позволит быстро создавать PDF-файлы, в которых могут содержаться математические формулы, код, графики.
7. Учимся проходить собеседование
Подготовиться к собеседованию, найдя в сети и выполнив ТЗ любого работодателя на том языке, который хуже всего изучен. Это позволит ознакомиться с общими требованиями на рынке IT-услуг и усовершенствовать навыки программирования.
Рекомендуем посмотреть «Стандартные задачи на собеседовании».
8. Linux
Научиться основам работы с Linux. Linux — одна из наиболее популярных операционных систем для разработки, часто используемая для удаленных серверов. Также дистрибутив Kali Linux часто используется хакерами и специалистами в информационной безопасности.
Рекомендуем посмотреть «10 лучших видеокурсов для изучения Linux».
9. Основы теории графов
Графы в современном мире используются повсеместно, начиная от дерева файловой системы и заканчивая алгоритмами поисковой выдачи и графом друзей в социальных сетях.
10. Система контроля версий
Научиться работать с одной из VCS (например, система контроля версий Git). Такой инструмент страхует от ошибок, так как позволяет произвести откат в том случае, если изменения в программе не привели к желаемому результату, и нужно вернуться на несколько этапов назад.
Рекомендуем посмотреть «Гайды по работе с Git».
11. Реализовать один из алгоритмов машинного обучения
За 3 дня можно освоить какой-нибудь алгоритм машинного обучения и его реализовать с нуля: прочесть CSV-файл, создать обучающее и тестовое множества, запустить алгоритм с перестраиваемыми параметрами и простой вывод из релевантной статистики.
Рекомендуем посмотреть «Основы машинного обучения за неделю».
12. Научиться пользоваться важными ресурсами
Завести профиль на сайте Stack Overflow и его русскоязычном аналоге Hashcode, после чего научиться пользоваться этими системами вопросов и ответов. Кто-то найдет полезные подсказки и советы, а кто-то получит бесплатную практику.
13. Изучить ООП/шаблоны проектирования
Если вы знаете ООП, сразу изучайте шаблоны проектирования. Они часто используются в индустриальном коде, об их знании часто спрашивают на собеседованиях. Освоив их, вы станете лучше как специалист.
Рекомендуем посмотреть «3 лучших книги по объектно-ориентированному программированию» и «4 лучших книг о шаблонах проектирования».
14. Основы JavaScript
JavaScript – самый популярный язык программирования на Github. После появления node.js, JavaScript кроме как технологии, используемой для фронтенда, стал активно применяться в создании бекенда и консольных утилит.
Рекомендуем посмотреть «Изучение JavaScript с нуля» и «Подборка бесплатных ресурсов для изучения Node.js».
15. Сортировка
Освоить несколько полезных сортировочных алгоритмов. Систематизация делает работу проще, а жизнь кодера – в разы легче.
16. Работать в командной строке
Работа в командной строке позволяет существенного ускорить работу и является необходимым навыком для работы с удаленным сервером. Часто умение работать в терминале фигурирует в требованиях к различным вакансиям.
17. Тестинг
Научиться разрабатывать эффективные тесты для кода. Это сведет к минимуму возможные ошибки.
18. Python
Понять, как используется генератор списков в Python. Да, это «синтаксический сахар», без которого можно обойтись, однако с генерацией намного удобнее. Прочтите о встроенных функциях в питон и поймите, что каждая делает, предварительно поигравшись в консоли интерпретатора. Освойте модель itertools. Начните играть в CheckIO.
Рекомендуем посмотреть «9 Youtube-каналов для изучения Python».
19. AWK, sed и grep
Поработать с AWK. Это неплохой C-подобный язык, который используется в bash скриптах. sed — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных. Он и grep позволят вам сэкономить массу времени для обработки текстовой информации на сервере.
20. Регулярные выражения
Найти и выучить основные регулярные выражения тех языков, с которыми предпочитаете работать. Конечно, никто не запрещает пользоваться шпаргалками, но для хорошего специалиста это несолидно.
Рекомендуем посмотреть «Регулярные выражения: 5 сервисов для тестирования и отладки».