Разработка
Я плохой разработчик, и это моя жизнь
Я изо всех сил борюсь за то, чтобы добиться успеха как разработчик программного обеспечения, и это реальность моей жизни.
Последние четыре месяца я сосредоточился на самопознании. Это путешествие началось семь месяцев назад, когда меня наняли на работу, которая не приносила мне счастья, но я не мог точно определить почему. Когда друг порекомендовал мне работу, которая предлагала вдвое большую зарплату и возможность работать с программным обеспечением с открытым исходным кодом, я ухватился за нее. Однако вскоре я понял, что не являюсь опытным разработчиком программного обеспечения.
Проработав три месяца на этой новой работе, я обнаружил в компании внутреннюю политическую борьбу, с которой мне было неинтересно иметь дело. Хотя я не был ни счастлив, ни несчастлив, я нашел эту работу простой и неинтересной. В результате я решил взять отпуск, чтобы переоценить свою жизнь.
Чтобы финансовое положение моей семьи не подверглось риску, я тщательно спланировал свой творческий отпуск. Я выплатил свои долги, и у меня было достаточно сбережений, чтобы взять перерыв в работе на 4–5 месяцев. Я создал таблицу движения денежных средств, бюджет и план — взять двухмесячный отпуск, один месяц посвятить собеседованиям и оставить четвертый месяц в качестве буфера на случай, если процесс собеседования займет больше времени, чем ожидалось.
В настоящее время я нахожусь на четвертом месяце, и я уже провел интервью почти с десятью компаниями. Тем не менее, я не получил никаких предложений о работе, и у меня были проблемы с техническими собеседованиями. Как программист, я всегда считал себя опытным, но нынешняя практика найма в отрасли не позволяет мне быть уверенным в своих способностях.
Когда я поделился своими опасениями с друзьями и коллегами, они заверили меня, что я слишком упрощаю проблему. Эти люди видели мой код, нанимали меня на предыдущие места работы и знают о моих навыках программиста. У них нет ничего отрицательного, чтобы можно было сказать о моем опыте или качестве моей работы. Они предположили, что, возможно, я просто не умею проходить интервью.
Получив многочисленные отказы и пройдя первое техническое собеседование только дважды, трудно не усомниться в правильности системы найма. Хотя я продолжаю регулярно практиковаться и вносить свой вклад в программное обеспечение с открытым исходным кодом, отсутствие успеха делает свое дело. Несмотря на мои попытки стать лучше, мне все еще сложно продавать себя во время разговоров, что я приписываю своим трудностям в общении с людьми.
Я беспокоюсь, что, возможно, система работает хорошо, и я просто не квалифицированный разработчик. С другой стороны, также возможно, что система постоянно упускает из виду хороших разработчиков, которые могут плохо показывать себя на собеседованиях. Несмотря на это, я чувствую себя обескураженным, поскольку я сталкиваюсь с финансовыми трудностями и не получаю никаких предложений о работе.
Моей конечной целью было обеспечить лучшую жизнь для моей семьи, переехав в дом побольше. Однако, не имея работы в отрасли, я боюсь, что мне, возможно, придется вернуться к долгам, и я не уверен в своих будущих карьерных перспективах.
Плохой ли разработчик? У меня есть личная библиотека, включающая SICP, On Lisp, TAOCP, Expert C Programming, Effective C++, а также учебники по алгоритмам, распределенным вычислениям, безопасности, графике и различным разделам математики. Хотя у меня может и не быть университетского образования, я страстный программист, стремящийся узнать все, что можно.
Я участвую в проектах с открытым исходным кодом на нескольких языках, таких как C++, Perl, Python и других языках, подобных Lisp. Мой вклад включает исправление ошибок, добавление недостающих функций и создание библиотек и приложений, которые я считаю полезными.
Я сосредоточен на улучшении своих навыков и знаний. Я регулярно практикую решение задач (code kata) и был сторонником автоматизированного тестирования в нескольких организациях, где я работал. Я также много читаю книги, исследования и статьи и стараюсь делиться своими знаниями с другими.
Математика — моя страсть. Я был заинтригован теорией информации после открытия энтропии Шеннона и начал изучать теорию порядка. Меня особенно привлекают полурешетки, множества, реляционная алгебра и преобразования баз данных. Я могу не помнить всех подробностей, но я знаю, что для каждой рекурсивной формы существует итеративное решение. Я держу заметки и учебники под рукой на случай, если мне понадобится обратиться к ним.
Несмотря на мои знания и интерес к этим областям, я все еще с трудом решаю простые задачи программирования, такие как написание функции для определения самого длинного палиндрома в строке, или вычисление величины сложности данной функции. Моя уверенность была подорвана моими ошибками, промахами и отказами.
В результате я чувствую себя подавленным и отчаявшимся, опасаясь, что подведу свою семью. Я боюсь того дня, когда моя дочь спросит меня, чем я зарабатываю на жизнь, и мне придется признать, что я программирую. Я беспокоюсь о том, как я буду отвечать на ее вопросы, когда она станет старше и станет больше интересоваться моей работой. Я не добился многого, и мне особо нечем гордиться. Я просто делал все, что мог, даже когда мир считал меня недостойным.
Я изо всех сил борюсь за то, чтобы добиться успеха как разработчик программного обеспечения, и это реальность моей жизни.