Image may be NSFW.
Clik here to view.В каждой профессии есть свои уникальные плюсы. Если вы боксер, то всегда можете дать сдачи. Если вы ветеринар, то способны вылечить простудившуюся кицу. Если вы работаете в МВД, все хотят с вами дружить. Если вы юрист, вам не страшны конфликты с ГАИ и споры с официантами на предмет тухлого шашлыка. Если же вы программист (aka компьютерщик), то вы можете абсолютно всё — начиная от перепрошивки утюга и написания скриптика, и заканчивая ремонтом ноутбука и посадкой самолета в случае внезапной смерти пилотов. Только успевайте носить с собой набор отверток и пару толстых мануалов.
Разработчик — в первую очередь инженер, поэтому не стоит удивляться, что от нас ожидают решения проблем всея Руси: «тыжпрограммист». Хорошая новость заключается в том, что из профессии программиста можно для себя выжать не только интересное времяпровождение, тусовку толковых коллег и американские гривны, но и некоторые навыки, которые пригодятся в реальной жизни:
1. Ставить диагноз
Оперативное решение проблемы, как и эффективное лечение пациента, напрямую зависит от точности поставленного диагноза. Специфика разработки такова, что выносить подобные заключения необходимо по много раз в день. И лучше бы делать это максимально взвешенно и объективно, иначе от неверно выбранных лекарств пациенту станет только хуже.
Программисты занимаются высокоточной диагностикой даже чаще, чем представители некоторых других профессий, что позволяет эффективно использовать этот навык в быту. Нужно выяснить, в чем проблема? — позовите тыжкомпьютерщика, дайте вводные данные, ответьте на его «что» и «почему» и считайте, что проблема если и не найдена, то как минимум локализирована.
2. Контролировать эмоции
Только хладнокровный трейдер способен зарабатывать большие деньги на фондовых рынках. Разработчики хорошо знают, чего стоит решение, принятое на эмоциях: для технического специалиста это непозволительная роскошь.
Профессиональная сдержанность, перенесенная в жизнь, позволит подходить к решению бытовых вопросов с холодной головой и добиваться лучших результатов, не поддаваясь сиюминутным перепадам настроения.
3. Говорить по делу
Этот навык у программистов прокачан в оба конца — в сторону компьютера и в сторону человека. С одной стороны, работа программиста заключается в том, чтобы составлять понятные инструкции живым и неживым сущностям — человеку и машине. Это умение объяснять всё доступным логическим языком здорово помогает в жизни — как в общении, так и в переписке. С другой стороны, разработчик также должен уметь понимать язык людей и машин. Этот навык делает его хорошим слушателем и читателем, который стремится вникнуть в суть разговора и текста, отсекая при этом всё лишнее.
К навыкам коммуникации можно также отнести умение задавать вопросы. Вовремя спросив, «почему?» или «зачем?» можно сэкономить добрую дюжину человекочасов в любом деле.
4. Уметь спорить
Программисты разбалованы своим развитым логическим аппаратом, поэтому с удовольствием ввязываются во всевозможные споры.
В работе этот навык важен, когда нужно отстоять свою точку зрения и свой вариант решения задачи. Хороший программист умеет найти нужные аргументы не только в разговоре с коллегами, но и с начальством высокого ранга. Без боязни получить по голове за наглость. Если он не будет этого делать, то с большой долей вероятности ему придется выгребать невыявленные на начальном этапе нестыковки в разработке и просроченные дедлайны на выполнение таски.
И хотя «на гражданке» искусство спорить и помогает решать бытовые вопросы вроде препираний со швондерами и налоговиками, ученые до сих пор не изобрели способа переспорить собеседника, который в качестве аргумента использует «ой ну всё!».
5. Концентрироваться
Без умения собраться и внимательно всё обдумать разработчику будет сложно решить даже заурядную задачу. Чтобы как-то отгородиться от офисных раздражителей, в ход идут наушники с музыкой, суровый покерфейс, который как бы предупреждает потенциального хронофага: — «не подходи, убьет!», и даже шарящая по листку бумаги ручка, якобы рисующая важные блок-схемы.
Хорошая новость: навык отключаться от внешних раздражителей и концентрироваться на главной проблеме поможет не только на работе, но и в обычной жизни, чем бы вы ни занимались — хоть боксом, хоть футболом.
6. Сначала думать, потом делать
Думаю, многие из вас когда-нибудь в своей жизни пробовали cowboy coding, когда ты, аки клавиатурный ковбой, не расходуя много времени на размышления об архитектуре и возможных долгосрочных последствиях, клепаешь прототипчики по ходу пьесы, чтоб через N минут/часов узнать, что надо было делать по-другому.
Этот пункт можно связать с пунктом № 3 про хладнокровие, потому что именно оно позволяет не поддаваться эмоциям в желании поскорее что-нибудь запилить. Даже в ситуации срочной паники, горящих контрактов, лежащих серверов и вот-вот отключенного электричества, программист возьмет чашку чая со стола, посмотрит в окно, с умудрённой философской миной хлебнет глоток-второй, сядет, вздохнет, выдохнет и только тогда начнет что-то решать. В быту такой подход работает на ура.
Бета-версия решения любой проблемы: не дергаться, лечь поспать, а утром уж будет готов солюшн. Как-то так.
7. Говорить правду
Если не успеваешь сделать таску — говоришь об этом проджекту и теперь это его проблема. Если не знаешь, как что-то сделать, говоришь об этом товарищу — и вы вместе что-нибудь придумываете. Но чего не прощает разработка софта, как и строительство моста, — это недоговорок и полуправды. Рано или поздно все тайные косяки и недоработки становятся явными и мост упадет вслед за серверами. Поэтому своей команде и начальству лучше сообщать обо всем заранее. Да, быть настолько кристально-честным, как будто вам вкололи сыроватку правды и взяли на роль кота из Шрека. Например: «В следующем году планирую поехать в Намибию, где есть большой риск подхватить малярию и склеить ласты, так что на всякий пожарный планируйте восьмую итерацию без меня».
Стоит только этот навык говорить правду перенести из офиса в быт, как жизнь начинает играть всеми красками: не нужно никого обманывать (даже девушек), нет смысла никем прикидываться, нет нужды смеяться над несмешными шутками и всем нравиться. Жизнь становится в миллион раз проще.
В перечисленных пунктах нет «учебы», потому что, по моему мнению, навыки обучения мы получаем гораздо раньше, чем начинаем программировать — еще в школе. Да и программерский подход к обучению мне представляется несколько ситуативным и несистемным. Также, по причине отсутствия документальных свидетельств использования в реальной жизни, я не упоминал навык чтения документации (aka RTFM).
Может, ещё что добавить?
Clik here to view.