Когда ты начинаешь строить свою карьеру, очень хочется обратиться с вопросами к кому-то более опытному, кто давно уже в этой сфере. Какие навыки программирования появляются только с опытом?
Нет никакой исключительной корреляции между навыками и опытом. Особенно, если под опытом подразумеваются годы в резюме. Это довольно распространённый миф, основанный на вакансиях, где требуют 1-3, 5+ лет в разработке. Главный навык программиста — это способность и желание изучать новое. Дай программисту стек технологий, и через 3-6 месяцев он будет не хуже всех остальных, даже если он им ни разу до этого не пользовался. А с выходом нового фреймворка шансы, что сеньор и джуниор окажутся на одном уровне, очень велики.
Главный навык, который появляется только с опытом — это понимание, что «тут что-то может пойти не так». Думаю, это справедливо для любой специальности. И чем больше опыт, тем больше вариантов того, что именно может пойти не так, есть в голове у разработчика. Опыт — сын ошибок трудных, и разработка ПО — не исключение.
Кроме банальных и всем известных, от себя добавлю: умение закладывать в код солому. Под этим подразумевается, продумывание всевозможных случаев исполнения кода и умение писать такие архитектурные решения, которые помогут, в случае эволюции кода или модификаций для исправления багов, не портить стабильность работы программы в целом.
Первый навык, который хотелось бы отметить — написание чистого кода. Обычно именно новички страдают тем, что их код формально решает какую-либо задачу, но написан при этом плохо.
Второй навык — умение применять архитектурные решения, шаблоны проектирования и так далее: это дает возможность не просто собрать маленький шалашик, а построить большой крепкий дом, который не развалится.
И третий навык — умение делать код быстрым, понимать, как он работает на самом деле, что физически происходит с компьютером в процессе. Новички иногда бездумно и не к месту используют конструкции и встроенные методы, могут, например, делать ресурсоемкие запросы к базе данных, без которых можно было обойтись.
Про опыт программиста можно судить по его коду. С годами он становится более аккуратным. Переменные, классы, интерфейсы взаимодействия и контакты между отдельными частями приложения становятся более понятными, архитектура – прозрачной.
Программисты со стажем чаще всего предпочитают использовать годами «проверенные» решения, и гораздо более осторожно используют недавно появившиеся технологии/инструменты/фреймворки.
Использование абстракций. Навык выбора подходящего инструмента для каждой задачи. Умение видеть бизнес-задачи за кодом. Умение читать чужой код. Способность к проектированию архитектуры.
7 комментариев
Добавить комментарий