1411609602260097

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

Мало кто из студентов на 100% готов к своей первой настоящей работе. Если вы не хотите оказаться в их числе, изучите следующие 10 базовых навыков, которые можно освоить самостоятельно:

1. Система контроля версий (VCS)

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

2. Учитесь писать

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

3. Регулярные выражения

Регулярные выражения — это самостоятельный язык, и каждый современный программист должен владеть ими. Каждый современный язык поддерживает регулярные выражения или имеет соответствующую стандартную библиотеку. Если код должен проверить, что строка содержит 5 символов, 1 дефис и 1 цифру, вы должны сразу написать /^[A-Z]{5}-\d$/.

4. Использование библиотек

Уже 2014 год, поэтому никому не нужно использовать регулярные выражения, чтобы извлечь имя хоста из URL. Потому что в каждом современном языке программирования есть стандартная библиотека, выполняющая распространённые функции.

Программистам нужно понимать, что код, который уже разработан, протестирован и отлажен, обычно лучше кода, который они пишут сами. Что ещё важнее, код, который не нужно писать, гораздо быстрее реализовать.

5. SQL

Многие изучают SQL прямо на работе. Как базы данных могут быть факультативным курсом? Есть ли кто-то, кто не использует базу данных?

Эпоха хранения данных в плоских файлах закончилась. Всё входит и выходит из баз данных, а SQL — это язык для хранения и извлечения данных. Это декларативный язык, а не процедурный, поэтому его использование для решения задач требует нового образа мышления. Каждый программист должен понимать основы нормализации баз данных и уметь выполнять SELECT (включая INNER и OUTER JOIN), INSERT, UPDATE и DELETE.

6. Владение IDE, редакторами и инструментами CLI

Столяр, который умеет пользоваться только пилой, никогда не завершит обучение, так что удивительно, что выпускники по информатике знают только Notepad или pico. Инструменты программирования помогают манипулировать кодом и другими данными, делая жизнь программиста проще. Поэтому каждый программист должен знать, как использовать командную строку, shell-скрипты, find, grep и sed.

7. Отладка

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

8. Защитное программирование

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

Программисты должны знать, что предупреждения компилятора — это полезные инструменты, которые делают нашу жизнь комфортнее, а не помехи, которых следует избегать. Каждый программист должен знать, почему каждая PHP-программа должна начинаться так:

set_error_reporting(E_ALL)

Каждая программа на Perl должна включать эти инструкции:

use strict; use warnings;

9. Работа в команде

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

10. Использование существующего кода

В школе каждое задание было новым проектом. Но в реальном мире всё не так. Для того, кто только начинает работать, первая задача, которую он получает, часто заключается в исправлении ошибки в коде. Затем он добавляет небольшую функцию в существующую систему на основе имеющейся кодовой базы. Проектирование нового кода происходит месяцами позже, если вам повезёт.

Оригинальный источник: http://www.36kr.com/p/212678.html