Всему, что нужно знать, чтобы быть хорошим программистом, я научился в детском саду
(перевод, оригинал: thecodist.com — All I Need To Know To Be A Better Programmer I Learned In Kindergarten).
Программирование — сложная штука, но многие из принципов, которые делают программиста лучше, не слишком отличаются от того, чему нас учили тети-воспитательницы.
Вдохновением для списка ниже послужило эссе “Все что мне действительно нужно знать, я узнал в детском саду”, автор Robert Fulghum (http://www.robertfulghum.com/).
1. Делись со всеми
Используйте Open Source насколько это возможно, и по мере сил старайтесь вносить свою лепту. Совместная мудрость большого сообщества лучше ограниченной позиции нескольких больших корпораций.
2. Играй честно
Дайте другим технологиям, фреймворкам, методологиям и мнениям шанс. Не считайте свое мнение единственно верным. Другие подходы к проблеме вполне могут оказаться лучше Ваших; взглянуть на них непредвзято делу не повредит.
3. Не дерись
Не стоит атаковать людей только потому, что они используют .Net, Java или PHP. Иногда технологии могут оказаться гораздо более полезными и удобными чем представляется. У человека можно научиться гораздо большему, если при этом не стараться растереть его в порошок.
4. Убирай за собой
Старайтесь выдавать на-гора код, который работает. Не стоит ожидать, что QA найдет все ошибки за Вас. Тестируйте свой код интенсивно, и вглубь (юнит-тесты) и вширь (функциональные тесты).
5. Не бери чужое
Придерживайтесь лицензий на код, библиотеки или инструменты, которые Вы используете, не надо воровать, а затем говорить что невиновен.
6. Извинись, если кого-то обидел
Просмотр кода (Code Review) — хорошая, но редко применяемая идея. Обучение менее опытных программистов идет на пользу команде. Но не нужно открыто критиковать, если что-то не так — обучать людей не значит принижать их. Иногда Вас будут слушать, иногда нет. Иногда можно многому научиться у людей, которых Вы считали ниже себя по уровню.
7. Мой руки перед едой
Старайтесь разобраться в поставленной задаче прежде чем писать код. Напишите небольшой прототип, поищите аналоги в сети, пообщайтесь с людьми, которые с этим уже сталкивались. Создать с нуля что-то, с чем не приходилось работать или иметь дело раньше — непростая задача. Конечный результат будет намного лучше, если начинать работу с пониманием проблемы.
8. Смывай
Не нужно бояться заменить, переписать, реструктурировать или вообще выбросить кусок плохого кода или неудачный проект. Иногда “если не знаешь что делать — выбрось и забудь” — лучший подход. Никогда не надо слишком любить свой код.
9. Теплое печенько и холодное молоко полезны для тебя
Да, у программиста должна быть удобная и комфортная рабочая обстановка. Хорошее кресло, тихое рабочее место, пристойный компьютер и инструменты, делающие разработку лучше и проще — все это очень важно. Менеджеры должны осуществлять функцию зонтика, оберегающего разработчиков от всего того нехорошего, что стекает сверху. Как программист, Вы должны ожидать достойного к себе отношения. Если же наниматель не может этого обеспечить, стоит задуматься о поиске более адекватного места работы.
10. Живи полной жизнью — учись и думай, рисуй и крась, пой и танцуй, играй и работай
Мне нравится организация труда в Google, где 20% своего времени ты можешь посвятить работе над тем, что, как тебе кажется, этого заслуживает. Неплохо было бы также предоставлять комнаты для отдыха или игр — программирование это тяжелый умственный труд, иногда просто необходимо дать голове отдохнуть. Избегайте постоянных переработок — упавшее качество работы сведет на нет прирост в производительности, достигнутый ценой ночных бдений.
11. Отдыхай после обеда
Работа 24 часа в сутки не делает более продуктивным. Делайте перерывы, уйдите домой, поспите немного. Часто мне удавалось решать запутанные задачи просто уходя домой, и решение приходило в голову по дороге с работы или на следующее утро.
12. Выходя на улицу, смотри по сторонам, держись за руки и не убегай далеко
Общество полезно для души — читайте блоги, изучайте новые языки и фреймворки, участвуйте в дискуссиях и смотрите что делают другие. Только делая свою работу, не стать лучшим программистом. Зарывшись в работу с головой, вы рискуете в один прекрасный день обнаружить что все переменилось и ваши знания устарели.
13. Помни о чудесном. Это как маленькое зернышко в горшке с землей — корни растут вниз, а росток поднимается вверх, и никто на самом деле не знает, как и почему, но это так.
Каждый день что-то новое и удивительное происходит в мире программирования и технологий. Узнайте об этом. Удивитесь. Узнавайте что-то новое каждый день. Это помогает поддерживать свежесть мышления и актуальность навыков и расширяет кругозор.
14. Рыбки и хомячки и мыши и даже маленькое зернышко в горшке – все они умирают. И мы тоже.
Код становится старым и умирает. Временами лучше просто смириться с этим и сделать все заново. Незачем держаться за ужасный код только для того, чтобы сохранить вложенные деньги.
15. А теперь вспомни книжки про Дика и Джейн [1] и первое слово которое ты выучил — самое главное слово — СМОТРИ.
Вы не узнаете ничего, если не попробуете это сделать. Все, чему я научился в программировании, было результатом ни к чему не обязывающей возни с новыми интересными вещами. Каждое утро я читаю кучу сайтов и узнаю что происходит в индустрии; я делаю так с самой начала моей профессиональной карьеры в начале 80-х (тогда это означало чтение каталогов и журналов)
Видите, программирование — это просто, если посмотреть глазами пятилетнего ребенка.
[1] — Дик и Джейн — герои популярных в свое время в США книг для
обучения чтению, см. http://en.wikipedia.org/wiki/Dick_and_Jane