[Программирование, Управление персоналом, Карьера в IT-индустрии, Читальный зал] Компульсивная жизнь разработчиков ПО или Почему весь кодинг немного навязчивый? (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
За кодингом – безумным, постоянным, одержимым – я провёл неделю… Взглянув на часы, я увидел, что код стал мне не только завтраком, но и обедом. Когда я снова посмотрел на часы, снаружи было темно.
Иногда мне приходит в голову, что программирование – в силу необходимости – навязчивая идея. В наших головах так много деталей… я не уверен, что можно, в принципе, программировать без навязчивости. Программирование, как пишет в Smarter Than You Think, требует внимания к деталям и способности думать обо всём как о сериях процессов. Но оно требует не просто какого-то там внимания к деталям, оно требует интенсивного внимания к деталям. Одна шальная точка с запятой может поставить на колени миллионы строк и привести к чудовищному краху. Единственная функция с неврным возвратом сломает всю вашу внимательно прописанную логику. Как такая работа может требовать чего-то кроме навязчивости до такой степени, чтобы забывать пообедать?
Программирование (если всё действительно так) – способность переключаться между десятками и сотнями деталей одновременно. Способность видеть приложение как единое целое, одновременно вгрызаясь в крошечные детали единственной функции. Когда твой код не выполняется, это происходит только потому, что ты сделал опечатку; потому, что твоя логика неверна; потому, что ты используешь не ту версию библиотеки, или потому, что ты редактируешь не тот файл. Есть миллионы вариантов того, как что-то может пойти (и идёт) не так: от железа до зависимостей и собственного тупоголового невежества.
Когда я ложусь в кровать, я всё так же вижу код. Мне снится код. Функции, классы, управляющие структуры. Иногда утром я просыпаюсь с решением упрямой проблемы, которая решалась в моей голове: я программирую, даже когда сплю!
Тем, кто пишет код, это знакомо. История возникновения Facebook, сколь бы неприятной она ни была, рассказанная в постах Цукерберга и в фильме Социальная сеть, о том, как мужчина провёл ночь над проблемами в коде (понятно, что его задачей было собрать изображения девушек с сайта колледжа, чтобы унизить их, но мы не можем винить в этом PHP). Код часто пишут одержимые.
Моя коллега, решая запутанные проблемы, пишет код каждый вечер. На следующий день, посмотрев на время её коммитов, я вижу, что код написан заполночь, в часы перед рассветом.
Я говорю, что занимаюсь кодингом. Другие люди могут выражаться иначе, говорить о программной инженерии, программировании, разработке, хакинге. Есть жаркие, но шуточные дискуссии об определениях. Лично я называю процесс скриптингом. Самый распространённый сегодня язык – JavaScript, в конце концов.
Скриптинг – скромное определение. Оно останавливает меня от идей выше моего положения. Код – это скрипт, которому должен следовать компьютер. Он заставляет компьютер делать вещи, которые можно в теории сделать вручную. Мы можем спросить водителя Uber рядом с нами, где он, и отметить его положение на карте. Приложение Uber с помощью скрипта автоматизирует ручные операции. Даёт компьютеру набор инструкций, чтобы он следовал им, участвовал в качестве точного до буквальности исполнителя. Скрипт описывает процесс, который у человека может занимать часы, но который может быть рассчитан компьютером за миллисекунды.
Я пишу, когда другие едят, из-за того, что можно назвать потоком: я на подъёме, в ударе, на своей волне. Погружён в задачу и поглощён ею. Часы пролетают, превращаясь в строчки кода.
Не могу сказать, что я отличный кодер. Помню, как в детстве был поражён, когда написал магические слова, чтобы заставить компьютер выполнять мои приказы. Я чувствовал, что обманываю. Я не читал инструкции, не изучал компьютерные науки. Не знал, что такое кривые Безье и какие алгоритмы сортировки применять. Короче говоря, я не был настоящим инженером-программистом, я был дилетантом. Да, я знал, как делаются веб-сайты, базы данных, как пользоваться командной строкой и общаться с API, но это всё для достижения другой цели. Я не был истинным разработчиком.
Мы – индустрия, страдающая синдромом самозванца, отчасти потому, что мы все самозванцы. Никто не знает всего и обо всём коде. Всегда найдётся кто-то ещё более одержимый, чем ты. Думаю, мы все боимся однажды стать целью тирады Линуса Торвальдса.
Торвальдс – создатель Linux, основы большинства современных серверов. Торвальдс также написал git, и эта система используется почти всеми инженерами-программистами, чтобы хранить код (обе разработки названы в его честь: первая – по фамилии, вторая – по натуре). Торвальдс печально известен в технических кругах не только благодаря интеллекту, но и благодаря ругани из-за кода, который ему не нравится. Он наугад выбирает тему из публичных обсуждений и говорит, и говорит, что код – «фекалии, самый натуральный мусор и он написан неправильно». Многие разработчики боятся, что Торвальдс как-то получит их код и предложит посмотреть на него. Иногда я задаюсь вопросом, не является ли Торвальдс единственным инженером-программистом, который не страдает синдромом самозванца. Он – архетип «разговаривающего начистоту» (читайте: грубого) программиста, который заявляет, что его интересует только качество кода. Я замечаю людей, пытающихся подражать ему. Это постыдно. Софтверной индустрии не нужны люди, которые дают хорошие советы в дурной манере.
Сегодня я управляю командами. Моя работа – составление бюджетов, управление и утверждение, а не объекты, функции и инкапсуляция. Я работаю скорее с PowerPoint, чем с PowerShell. Но уметь программировать – значит, уметь говорить на другом языке. Это умение останется с вами. С помощью кода становится возможным то, что не сделаешь руками.
Я часто обнаруживаю себя пишущим код, чтобы решить проблемы, – код, который соединяется со старыми системами и извлекает данные. Ручная работа такого рода отняла бы недели, но скрипты делают её за минуты. Мой код уродлив и неуправляем, такого зверя следовало бы запереть в подвале, но никому и не нужно видеть его. Всё, что нужно знать людям, – это то, что задача, которая потребовала бы полгода, выполнится за время, пока они обедают.
Последняя неделя – ещё один пример. Нужно было сделать работу, о которой скучно даже рассказывать. Я расчехлил Sublime Text и написал код. Он не выиграет наград, его не развернуть в системе большого масштаба и Торвальдса этим кодом тоже не впечатлить.
Когда я начинаю программировать, моя команда стонет: «Босс снова взялся за дело» – кому-то приятно, что я «свой». Другие, возможно, радуются, что я понимаю раздражение, преследующее программиста день за днём.
Программирование вообще – раздражающий процесс. Как бы умны ни были компьютеры, сколько бы мы ни думали об удобстве, программирование может ощущаться как невозможно трудная задача. Скорее оно – процесс проб и ошибок, чем строгое мышление.
Код бросает ошибки, он подвержен авариям, перестаёт работать; делает то, чего я не ожидаю, по причинам, которых я не понимаю. Если я пишу variable вместо Variable, компьютер «разводит руками», не понимая, о чём я говорю ему. Хм… правда, компьютер? Со всем вашим кремнием, чипами, терафлопсами, неужели вы не можете разобраться?
Истина, принятая в кругу программистов, заключается в том, что программировать по большей части – значит, биться головой о стену, гуглить ошибки, смотреть на StackOverflow, пробуя самые разные решения, пока не найдёшь то, которое работает. Так создавался современный мир. Баги – это ситуации, которые при тестировании не возникли.
Я был бы плохим штатным разработчиком. Моё внимание привлекает решение проблем, а не написание кода. Я плохо работал бы с тикетами, особенностями кодирования, обеспечением тестового покрытия и проведением всего этого через модульное тестирование до развёртывания. Я очень уважаю тех, кто занимается этим день за днём, но я не один из таких людей. Я программирую всплесками навязчивых идей, чтобы решить определённые проблемы. Я программирую, чтобы достичь чего-то, а не ради самого программирования.
Код склеивает реальность и идеи. Код – это способ, которым мы показываем наши намерения. Это самая точная и чистая формулировка наших намерений. На прошлой неделе я программировал часами и не помню, как пальцы печатали код или как кликала мышь, не помню ничего, что было бы связано с моим телом. Но помню, как визуализировал работу системы. Помню ошибки и то, как мысленно формировал концептуальные компоненты. Я не помню, как писал код.
Иногда я спрашиваю себя, действительно ли мне нравится писать код или просто что-то зудит внутри меня и я должен успокоить себя; как будто каждая строка, которую я пишу, вызывает раздражающее возбуждение, потому что она стоит между мной и моей целью.
Но после, утром, я встаю с с постели с новой идеей, новым решением, новым, аккуратным способом структурирования функции или рефакторинга объекта – и возвращаюсь к компьютеру. И завтракаю, уже когда заканчиваю с ещё одним кусочком кода.
Узнайте подробности, как получить Level Up по навыкам и зарплате или востребованную профессию с нуля, пройдя онлайн-курсы SkillFactory со скидкой 40% и промокодом HABR, который даст еще +10% скидки на обучение:
- Профессия Data Scientist
- Профессия Data Analyst
- Курс по Data Engineering
-
Другие профессии и курсы
SPL
ПРОФЕССИИ
- Профессия Java-разработчик
- Профессия QA-инженер на JAVA
- Профессия Frontend-разработчик
- Профессия Этичный хакер
- Профессия C++ разработчик
- Профессия Разработчик игр на Unity
- Профессия Веб-разработчик
- Профессия iOS-разработчик с нуля
- Профессия Android-разработчик с нуля
КУРСЫ
- Курс по Machine Learning
- Курс «Математика и Machine Learning для Data Science»
- Курс «Machine Learning и Deep Learning»
- Курс «Python для веб-разработки»
- Курс «Алгоритмы и структуры данных»
- Курс по аналитике данных
- Курс по DevOps
===========
Источник:
habr.com
===========
===========
Автор оригинала: Simon Pitt
===========Похожие новости:
- [Карьера в IT-индустрии, Лайфхаки для гиков, Удалённая работа] Один рабочий день QA
- [Информационная безопасность, Системное администрирование, Программирование, API] Подтверждение номеров телефона без SMS
- [Управление персоналом, Карьера в IT-индустрии] Дайджест событий для эйчаров и рекрутеров в IT на март 2021
- [CMS, Разработка веб-сайтов, Антивирусная защита, Программирование, 1С] Сказ о том, как я с гидрой боролся
- [Open source, Виртуализация, Карьера в IT-индустрии, Openshift] Поваренная книга Quarkus Cookbook, бесплатный Developer Sandbox for OpenShift и руководство CentOS Project
- [Python, Программирование, Машинное обучение] Расширяющийся нейронный газ
- [Венчурные инвестиции, Развитие стартапа, Карьера в IT-индустрии, Бизнес-модели, Производство и разработка электроники] Стоит ли инженерной команде с продуктовыми амбициями заниматься аутсорсингом?
- [Программирование, История IT] 50 лет Паскаля (перевод)
- [Системное программирование, Разработка под Linux] Сила bash
- [Системное администрирование, IT-инфраструктура, Карьера в IT-индустрии, DevOps] Свидетели DevOps: мифы и байки про девопсов и тех, кто их нанимает
Теги для поиска: #_programmirovanie (Программирование), #_upravlenie_personalom (Управление персоналом), #_karera_v_itindustrii (Карьера в IT-индустрии), #_chitalnyj_zal (Читальный зал), #_skillfactory, #_programmirovanie (программирование), #_karera (карьера), #_karera_v_itindustrii (карьера в it-индустрии), #_karera_programmista (карьера программиста), #_vygoranie (выгорание), #_blog_kompanii_skillfactory (
Блог компании SkillFactory
), #_programmirovanie (
Программирование
), #_upravlenie_personalom (
Управление персоналом
), #_karera_v_itindustrii (
Карьера в IT-индустрии
), #_chitalnyj_zal (
Читальный зал
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:14
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
За кодингом – безумным, постоянным, одержимым – я провёл неделю… Взглянув на часы, я увидел, что код стал мне не только завтраком, но и обедом. Когда я снова посмотрел на часы, снаружи было темно. Иногда мне приходит в голову, что программирование – в силу необходимости – навязчивая идея. В наших головах так много деталей… я не уверен, что можно, в принципе, программировать без навязчивости. Программирование, как пишет в Smarter Than You Think, требует внимания к деталям и способности думать обо всём как о сериях процессов. Но оно требует не просто какого-то там внимания к деталям, оно требует интенсивного внимания к деталям. Одна шальная точка с запятой может поставить на колени миллионы строк и привести к чудовищному краху. Единственная функция с неврным возвратом сломает всю вашу внимательно прописанную логику. Как такая работа может требовать чего-то кроме навязчивости до такой степени, чтобы забывать пообедать? Программирование (если всё действительно так) – способность переключаться между десятками и сотнями деталей одновременно. Способность видеть приложение как единое целое, одновременно вгрызаясь в крошечные детали единственной функции. Когда твой код не выполняется, это происходит только потому, что ты сделал опечатку; потому, что твоя логика неверна; потому, что ты используешь не ту версию библиотеки, или потому, что ты редактируешь не тот файл. Есть миллионы вариантов того, как что-то может пойти (и идёт) не так: от железа до зависимостей и собственного тупоголового невежества. Когда я ложусь в кровать, я всё так же вижу код. Мне снится код. Функции, классы, управляющие структуры. Иногда утром я просыпаюсь с решением упрямой проблемы, которая решалась в моей голове: я программирую, даже когда сплю! Тем, кто пишет код, это знакомо. История возникновения Facebook, сколь бы неприятной она ни была, рассказанная в постах Цукерберга и в фильме Социальная сеть, о том, как мужчина провёл ночь над проблемами в коде (понятно, что его задачей было собрать изображения девушек с сайта колледжа, чтобы унизить их, но мы не можем винить в этом PHP). Код часто пишут одержимые. Моя коллега, решая запутанные проблемы, пишет код каждый вечер. На следующий день, посмотрев на время её коммитов, я вижу, что код написан заполночь, в часы перед рассветом. Я говорю, что занимаюсь кодингом. Другие люди могут выражаться иначе, говорить о программной инженерии, программировании, разработке, хакинге. Есть жаркие, но шуточные дискуссии об определениях. Лично я называю процесс скриптингом. Самый распространённый сегодня язык – JavaScript, в конце концов. Скриптинг – скромное определение. Оно останавливает меня от идей выше моего положения. Код – это скрипт, которому должен следовать компьютер. Он заставляет компьютер делать вещи, которые можно в теории сделать вручную. Мы можем спросить водителя Uber рядом с нами, где он, и отметить его положение на карте. Приложение Uber с помощью скрипта автоматизирует ручные операции. Даёт компьютеру набор инструкций, чтобы он следовал им, участвовал в качестве точного до буквальности исполнителя. Скрипт описывает процесс, который у человека может занимать часы, но который может быть рассчитан компьютером за миллисекунды. Я пишу, когда другие едят, из-за того, что можно назвать потоком: я на подъёме, в ударе, на своей волне. Погружён в задачу и поглощён ею. Часы пролетают, превращаясь в строчки кода. Не могу сказать, что я отличный кодер. Помню, как в детстве был поражён, когда написал магические слова, чтобы заставить компьютер выполнять мои приказы. Я чувствовал, что обманываю. Я не читал инструкции, не изучал компьютерные науки. Не знал, что такое кривые Безье и какие алгоритмы сортировки применять. Короче говоря, я не был настоящим инженером-программистом, я был дилетантом. Да, я знал, как делаются веб-сайты, базы данных, как пользоваться командной строкой и общаться с API, но это всё для достижения другой цели. Я не был истинным разработчиком. Мы – индустрия, страдающая синдромом самозванца, отчасти потому, что мы все самозванцы. Никто не знает всего и обо всём коде. Всегда найдётся кто-то ещё более одержимый, чем ты. Думаю, мы все боимся однажды стать целью тирады Линуса Торвальдса. Торвальдс – создатель Linux, основы большинства современных серверов. Торвальдс также написал git, и эта система используется почти всеми инженерами-программистами, чтобы хранить код (обе разработки названы в его честь: первая – по фамилии, вторая – по натуре). Торвальдс печально известен в технических кругах не только благодаря интеллекту, но и благодаря ругани из-за кода, который ему не нравится. Он наугад выбирает тему из публичных обсуждений и говорит, и говорит, что код – «фекалии, самый натуральный мусор и он написан неправильно». Многие разработчики боятся, что Торвальдс как-то получит их код и предложит посмотреть на него. Иногда я задаюсь вопросом, не является ли Торвальдс единственным инженером-программистом, который не страдает синдромом самозванца. Он – архетип «разговаривающего начистоту» (читайте: грубого) программиста, который заявляет, что его интересует только качество кода. Я замечаю людей, пытающихся подражать ему. Это постыдно. Софтверной индустрии не нужны люди, которые дают хорошие советы в дурной манере. Сегодня я управляю командами. Моя работа – составление бюджетов, управление и утверждение, а не объекты, функции и инкапсуляция. Я работаю скорее с PowerPoint, чем с PowerShell. Но уметь программировать – значит, уметь говорить на другом языке. Это умение останется с вами. С помощью кода становится возможным то, что не сделаешь руками. Я часто обнаруживаю себя пишущим код, чтобы решить проблемы, – код, который соединяется со старыми системами и извлекает данные. Ручная работа такого рода отняла бы недели, но скрипты делают её за минуты. Мой код уродлив и неуправляем, такого зверя следовало бы запереть в подвале, но никому и не нужно видеть его. Всё, что нужно знать людям, – это то, что задача, которая потребовала бы полгода, выполнится за время, пока они обедают. Последняя неделя – ещё один пример. Нужно было сделать работу, о которой скучно даже рассказывать. Я расчехлил Sublime Text и написал код. Он не выиграет наград, его не развернуть в системе большого масштаба и Торвальдса этим кодом тоже не впечатлить. Когда я начинаю программировать, моя команда стонет: «Босс снова взялся за дело» – кому-то приятно, что я «свой». Другие, возможно, радуются, что я понимаю раздражение, преследующее программиста день за днём. Программирование вообще – раздражающий процесс. Как бы умны ни были компьютеры, сколько бы мы ни думали об удобстве, программирование может ощущаться как невозможно трудная задача. Скорее оно – процесс проб и ошибок, чем строгое мышление. Код бросает ошибки, он подвержен авариям, перестаёт работать; делает то, чего я не ожидаю, по причинам, которых я не понимаю. Если я пишу variable вместо Variable, компьютер «разводит руками», не понимая, о чём я говорю ему. Хм… правда, компьютер? Со всем вашим кремнием, чипами, терафлопсами, неужели вы не можете разобраться? Истина, принятая в кругу программистов, заключается в том, что программировать по большей части – значит, биться головой о стену, гуглить ошибки, смотреть на StackOverflow, пробуя самые разные решения, пока не найдёшь то, которое работает. Так создавался современный мир. Баги – это ситуации, которые при тестировании не возникли. Я был бы плохим штатным разработчиком. Моё внимание привлекает решение проблем, а не написание кода. Я плохо работал бы с тикетами, особенностями кодирования, обеспечением тестового покрытия и проведением всего этого через модульное тестирование до развёртывания. Я очень уважаю тех, кто занимается этим день за днём, но я не один из таких людей. Я программирую всплесками навязчивых идей, чтобы решить определённые проблемы. Я программирую, чтобы достичь чего-то, а не ради самого программирования. Код склеивает реальность и идеи. Код – это способ, которым мы показываем наши намерения. Это самая точная и чистая формулировка наших намерений. На прошлой неделе я программировал часами и не помню, как пальцы печатали код или как кликала мышь, не помню ничего, что было бы связано с моим телом. Но помню, как визуализировал работу системы. Помню ошибки и то, как мысленно формировал концептуальные компоненты. Я не помню, как писал код. Иногда я спрашиваю себя, действительно ли мне нравится писать код или просто что-то зудит внутри меня и я должен успокоить себя; как будто каждая строка, которую я пишу, вызывает раздражающее возбуждение, потому что она стоит между мной и моей целью. Но после, утром, я встаю с с постели с новой идеей, новым решением, новым, аккуратным способом структурирования функции или рефакторинга объекта – и возвращаюсь к компьютеру. И завтракаю, уже когда заканчиваю с ещё одним кусочком кода. Узнайте подробности, как получить Level Up по навыкам и зарплате или востребованную профессию с нуля, пройдя онлайн-курсы SkillFactory со скидкой 40% и промокодом HABR, который даст еще +10% скидки на обучение:
=========== Источник: habr.com =========== =========== Автор оригинала: Simon Pitt ===========Похожие новости:
Блог компании SkillFactory ), #_programmirovanie ( Программирование ), #_upravlenie_personalom ( Управление персоналом ), #_karera_v_itindustrii ( Карьера в IT-индустрии ), #_chitalnyj_zal ( Читальный зал ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:14
Часовой пояс: UTC + 5