Xpoint
   [напомнить пароль]

!Проблема: адаптация к работе

Метки: [без меток]
2006-12-14 13:58:28 [обр] tempo[досье]

Здравствуйте. Хочется посоветоваться с «коллегами по цеху», ибо для меня необходимость расставить все точки над i стала действительно острой необходимостью.

Окончив технический ВУЗ, по специальности связанной с ЭВМ, я занялся самостоятельным изучением программирования. За несколько лет достиг неплохого уровня. Хорошего уровня. Я знаю массу основных веб-технологий и меня активно зовут работодатели на должность веб-программиста. Я делал хорошие сайты несколько лет назад, сейчас могу сделать ничем не хуже, а в 10 раз лучше и по качеству кода и по всему остальному.

Но сейчас, увы, я нахожусь уже почти на грани, ибо моё моральное состояние очень плохое. Руки опустились и полная апатия ко всему.

Дело в том, что я не могу найти себе работу, с которой бы я справлялся и которая бы меня устраивала. Я никогда не работал на работе, которая бы мне приносила удовольствие, то самое ощущение «горящих глаз» при проектировании проекта, которое я чувствовал занимаясь своими собственными разработками. Так уж получилось, что устраиваясь на «официальные» работы я попросту не испытываю интереса к работе, более того – она меня отталкивает, раздражает. И я быстро увольняюсь.
Суть этого в том, что я не могу, не хочу, не умею рыться в чужом коде, который написан до меня. А код этот в 99,9% случаев просто как китайская грамота.
В чем же дело?

Сейчас я говорю о серверных языках программирования. Все проекты, с которыми я работал, были большие, сложные, написанные давно, написанные почему-то вообще без нормальных человеческих комментариев! Последнее попросту убивает: на прошлой моей работе я работал с чем-то похожим на CMS, которую уже как лет 5 назад нужно было удалить и переписать заново (обильно HTML+PHP2.0+Perl и всё в кучу), но сами понимаете… посидев месяц, попытавшись разобраться, как работает эта куча warning-ов, я «забил» на работу, сидел рабочие часы «в чатах» и когда меня заставляли что-то сделать, я выполнял свою работу «на коленке», ибо к безнадёжно больному коду – такое же отношение. Вопросы возникали часто – почему отсутствуют комментарии? Почему эта дурная тенденция не записать пару строчек пояснения присутствует почти везде и повсеместно?!
Вскоре мне надоело верстать новости для сайта и убирать NOTIСE-s в кривых кодах - я решил сменить место. Меня позвали в одну крупную и очень известную компанию, которая охватывает огромный рынок русского web. Ну и зарплата, сами понимаете, обещалась такая, что мне бы с головой хватило.

Но не тут то было – в новой компании мой начальник, молодой парень лет 30, который курировал меня, стал с первых же дней меня упрекать в том, что я, мол, медленно работаю и целый день делаю задачу, которую можно решить за 5 мин. Да. Задачу можно было решить за 5 мин, если писать всё «на чистом PHP», а не пользоваться особенностями самой системы – кучей классов и особенностями проектирования программы. Как минимум нужно было понять, как действует ядро, система пользователей, шаблонизатор и т.д. Постоянное гонение и критика меня начали напрягать, ибо я себя начинал потихоньку чувствовать действительно дурачком, которому, возможно, действительно не стоит этим заниматься?

Вчера я пришёл на работу (работал всего неделю, без оформления) и мне в очередной раз дали задание – переделать то-то. В конце дня начальник был удивлён, почему я не выполнил план работы. Я признаться, тоже был удивлён: есть у меня перед глазами проект – ОГРОМНЫЙ ПРОЕКТ, про который я НИЧЕГО НЕ ЗНАЮ. Какая там система авторизации, какие классы и как работают с сессиями, БД и т..д.. А написан проект типа как профессионально – шаблонизатор Smarty (что бы якобы тупой верстальщик, не дай Бог не увидел в коде логику и не убежал), куча инклудов, куча объектов, а структурного программирования как будто попросту и нет. Т.е. задачу «максимально усложнить код» разработчики выполнили на 5+.

И вот есть у меня сценарий, написанный БЕЗ ЕДИНОГО КОММЕНТАРИЯ и с использованием кучи объектов, про которых нужно что-то знать. И сижу я перед этим сценарием на 300 строк кода и думаю – либо я действительно, идиот, и мне пора в грузчики, либо идиоты код писали.

Да, я знаю и умею программировать. Но я не могу, взять кусок кода, суть работы которого я даже не знаю, и его модифицировать настолько, что бы получилось совсем иное. Разобраться в коде, читая его исключительно как код – я не могу. Я не могу отслеживать каждый объект или функцию, разбираться в них – на это уйдёт бесконечность. Есть вызов объекта – нет комментариев. Как узнать, для чего этот объект? Идти в соответствующий файл? Там обращение к родителю, а там опять инклюды... Цепочка, бесконечная вереница логики.

Мне надоело заниматься шаманством, танцами с бубном, выполнять работу «аля работало абы как». И поэтому я и хочу понять – что мне делать?
В моём понимании программирование - это чёткое осознание того, с чем ты работаешь. На практике я вижу совсем иное.

Я, признаться, больше не встречал людей с похожим как у меня мировоззрением. Может, мне действительно, пора завязать с этим? Но 5 лет потраченных на опыт + готовые и функционирующие сайты + понимание того, что пишу я не хуже, чем другие, не позволяют мне так легко бросить это занятие. Тем более, тогда мне действительно придётся идти в грузчики…

PS фриланс не предлагайте. Не потяну быть и дизайнером и программером и секретаршей.

спустя 1 час 24 минуты [обр] LookeR(237/1069)[досье]

НМВЗ:

  1. Если надо делать быстро - делай хоть как криво, но работу сдай. Требуется личное удовлетворение - поправь позже в свободном режиме.

(потому-то там всё так криво и без комментариев, что никому кроме самого программера эстетическая составляющая кода не интересна)
Руководству важен результат и больше оно ничего не видит.
Если результата нет - изнасилуют твоего куратора, а он и тебя.

  1. Беря на поруки чужой проект - оговори сразу, что на "вникнуть в код" нужно ...... времени и т.к. предыдущий программер не писал комментариев - могут возникнуть сложности и неприятные сюрпризы, которые существенно замедлят твою работу. А если и тебе не будет выделяться время на нормальный код и документирование, то через некоторое время им придется писать весь проект "с ноля", т.к. ни один новый сотрудник не сможет разобраться в этой каше. И что если они не хотят проблем в дальнейшем - нельзя отпускать программиста пока он не передаст дела другому коллеге или не напишет сопроводительную документацию.
  1. Проанализировав код - выйди с предложением об усовершенствовании и сроках.

и т.д. и т.п.

Каждый отдельный программер - сам себе менеджер.
Если не будешь набивать себе цену и не заставишь к себе прислушиваться - сожрут с потрохами.

P.S. Народная мудрость: "Хочешь жить - умей вертеться!"

спустя 38 минут [обр] Thirteensmay(9/157)[досье]

Да Вам батенька просто не повезло, к тому же жизнь еще и не такая уж стабильно сладкая штука как это может поначалу показаться. Не унывайте, ищите, есть нормальные места, правда платят там обычно не выше среднего. Что ? код Вам не нравиться ? - ну так удовлетворите свою жабу - перепишите его. Не можете ?, типа быстро надо ? - ну так и делайте быстро, a-la как нибудь, лишь бы работало, а между тем в темной тиши изучайте систему, переписывайте и заменяйте помодульно, готовьте революцию, сделайте себя труднозаменимым, постепенно, потихоньку, а как сделаете - не выеживайтесь, эта стратегия достаточно сладко аукается. Вам не нравиться что Вас ставят на поддержку готовых кривоневаших проектов ? - дык а собсно кто Вы такой ? надо себя зарекомендовать сначала, как минимум в течении 3 - 5 лет на одном месте придется заниматься всякой херней, а дальше если Вы правильно выбрали контору и свою стратегию то будет легче. Фрилансом кстати можно и в команде заниматься, проверено, работает, правда не стабильно, - не мое. Обратите свое внимание на незашоренные гос. учреждения, типа учебных заведений например, после некоторого входного периода, интересная и ненапряжная работа 100% гарантирована, правда не шибко денежно, ну что ж, - везде свой баланс.

P.S. Вижу в Вашем посте сплошные сопли и никакого боевого духа, так у Вас нихрена не получится ;)

спустя 9 часов [обр] Василий Свиридов(0/175)[досье]

tempo[досье]
Отнеситесь к проблеме философски. Никогда не делайте того, чего не просили (если конечно вы успеваете по срокам за 2 недели до сдачи). Если заказчик в пятый раз просит поменять с А на Б и наоборот - меняйте... Если заказчик хочет кривой код писаный на коленке - пишите. В этой профессии частенько приходится "проститутствовать". Большинство заказчиков всё равно не понимает и не видит разницы. Главное, чтобы оплачивали своевременно все переделки. Лучше закончить проект раньше по срокам и по спецификации, нежели позже, зато с фичами. За каждую новую фичу сверх спецификации, которую просит заказчик, нужно биться. Биться за увеличение срока проекта, т.к. то, что заказчик видить как "можно сделать за 5 минут", в коде обычно выливается в "переписать половину нафиг"...

Мне тоже религия не позволяет писать кривой код, но я это оставляю на свои личные проекты, кои пишу с чуством, с толком, и с расстановкой :) Зато когда вам наконец-таки дадут написать проект с нуля (ну или хотя-бы только код с нуля) - вот тут-то уже можете оторваться по полной :) Правда до такого момента обычно должно пройти какое-то время...

И ещё, все недоделки оставленные на "поправлю тихонечко после сдачи" обычно так и остаются недоделанными, и бывает весьма неприятно, когда они потом всплывают.

Thirteensmay[досье]
"Интересно и ненапряжно" - так, IMHO, не бывает. Ибо как только начинаешь работать ненапряжно - быстро пропадает весь интерес. Работа не должна превращаться в рутину.

спустя 9 часов [обр] Superman(1/16)[досье]
tempo[досье] наверное это просто непрофессионализм.
спустя 45 минут [обр] Александр Галкин(0/211)[досье]

tempo[досье]

Я, признаться, больше не встречал людей с похожим как у меня мировоззрением.

Вы такой не один, не волнуйтесь. К прискорбию, умение писать код абы как «на результат» ценится заказчиком выше, чем умение сделать красиво и правильно, потому что первое занимает меньше времени, но это вовсе не повод наступать себе на горло. Если не относиться к программированию как к способу зарабатывания денег, конечно.

Однако если Вы не можете пойти работать куда-то, где Вас хорошо знают как разработчика и сразу дадут писать своё с нуля, то после устройства на работу придётся некоторое время терпеть неудобства. Если Вы будете единственный/главный разработчик, вы постепенно перепишете все не устраивающие Вас вещи; если один из числа многих — убедите окружающих, что грамотный подход лучше, или поймёте, что убедить не удастся и уволитесь. Просите на собеседованиях рассказать Вам о технологиях, которые придётся использовать — сократите количество неудачных попыток.

В общем, не всё ещё потеряно :-)

Да, я знаю и умею программировать. Но я не могу, взять кусок кода, суть работы которого я даже не знаю, и его модифицировать настолько, что бы получилось совсем иное. Разобраться в коде, читая его исключительно как код – я не могу. Я не могу отслеживать каждый объект или функцию, разбираться в них – на это уйдёт бесконечность. Есть вызов объекта – нет комментариев. Как узнать, для чего этот объект?

Если Вы будете пытаться познать всю огромную Систему, которую Вам всучили, то, конечно, потерпите поражение. Попробуйте действовать от текущей задачи, разбираясь только в том, в чём нужно в данный момент. Это не так уж и сложно, если система работает. Не знаете, как в проекте работают с БД — работайте так, как привыкли сами; когда узнаете, как это принято там — перепишете то, что успели добавить своего.

спустя 33 минуты [обр] Thirteensmay(9/157)[досье]

Василий Свиридов[досье]
Под "ненапряжно" я имею в виду психологически ненапряжно, не рутинно, т.к. постоянно чтото новое, а фатальной ответственности нет, т.е. за крайние ляпы конечно вздрючить могут, но по крайней мере от этого никто не помрет и судиться не станет. Одно дело сидеть трястись в ожидании что из-за общей кривости ща этот код кого нибудь на деньги или серьезные документы прокатит, а другое дело когда даже при нештатном скоропостижном усопании половины серверов на пару дней, никаких особых проблем не возникает (кстати, специфика такова, что серверы собственно говоря злонамеренно укладываются самими же клиентами ;) так что точно говорю - не соскучитесь ;) ).

Что касается "Как только начинаешь работать ненапряжно - быстро пропадает весь интерес." - так это зависит от того чего Вам в жизни не хватает, если перчика - то да, возможно и будет немного скучно, хотя опять таки, места для таких любителей есть практически везде. Другое дело когда Вам интересно уважение и ощущение того что Вы приносите пользу. Вот к примеру, сидите Вы в парке вечером, пивко попиваете, и видите как Ваши клиенты друг друга пустыми бутылками по макушкам гладят, приходите с утра на работу, а к Вам подходит такая симпатишная молодая девушка, и просит Вас рассказать ей как на тех дохлых машинках что у нее в лаборатории стоят поднять хотябы NT4 домен с политиками, чтобы эти клиенты не злобствовали. Делать Вы этого вовсе не обязаны, но т.к. те участки за которые Вы отвечаете давно отлажены и работают, у Вас есть куча времени, да и с девушкой пообщаться Вы не прочь, короче делаете Вы с ней то что запланировали, она довольна, Вы тоже, возвращаетесь на свое рабочее место читать xpoint. И тут Вам звонок из клиентского отдела, приглашают Вас на чай (жопой чуяте хотят на Вас чтото повесить), приходите Вы и понимаете что секретарь с завтрашнего дня уходит в декретный, и с Вашим свежим АРМ клиентской базы работать некому, а тут срочно надо 100 человек занести и пакеты выходных документов по каждому напечатать. Т.к. инициатива внедрения этого АРМ была Ваша то и стрелки все соответственно теперь на Вас (классика, как раньше сами трахались уже забыли), но естественно, Вы этого тоже вовсе делать не обязаны, можете кивнуть на администрацию, и собственно чуть позже так и сделаете, но тут уж чая обещанного хочется. Короче говорите Вы что щас все будет Ok, берете кофе со сливками (так и знал, где нибудь да нае.ут), и идете проходом через курилку все к той же утренней лаборантке, но теперь уже со злостной мыслью, услуга за услугу как говорится. В курилке натыкаетесь на своего шефа, вид у него какойто жалкий, угощаете его кофе, узнаете что есть проблема, теперь она Ваша, оказывается девушки в приемной в поле адреса в карточках абитуриентов занесли названия одних и тех же населенных пунктов максимально возможным количеством вариантов, впрочем этого следовало ожидать, так например, наш замечательный г. Ставрополь оказался аж в 7 вариантах написания, не говоря уже об остальных адресах, следовательно статистика теперь геморрой. Т.к. АРМ приемной комиссии тоже Ваш, эта проблема Ваша вдвойне. Чешете репу, проходя мимо бухгалтерии заходите пополнить кофе, ибо шеф все выпил, видите что девушки тянут из сети чтото страшное, оказывается обновление КЛАДР из налоговой, это такой КЛассификатор АДресов России, перестаете чесать репу, делаете себе копию. Доходите наконец до лаборантки, а у нее практика по разработке WEB интерфейсов, берете от туда 2 оболтусов (как раз тех которые в парке с бутылками забавлялись), и ведете их в клиентский отдел, людей заносить. Мля, а оболтусы то в теме, предъявляют Вам что интерфейс занесения не юзабельный, типа фамилии у потребителя, его папы, мамы, и заказчика одинаковые а приходится каждый раз заново набирать. Предлагаете им написать JS для автокопирования, сулите 5 по практике. Еще раз мля, эти гаврики пишут его в 3 раза быстрее чем Вы, и в 150 раз быстрее самих себя на занятиях, ну могут же когда приспичит. Короче оболтусы тоже довольны, и Вы опять. Приходите на свое рабочее место, распаковываете КЛАДР, разбираетесь за 5 мин. в структуре, все достаточно элементарно, вместо поля ввода адреса делаете select с субъектами РФ, далее задумываете AJAX для динамической генерации еще двух селектов с адресами внутри субъекта. Выдираете с xpoint Xpoint FAQ:Как подгрузить в слой html (или текст) из другого файла без перезагрузки страницы? , пол часа тупите что с русским, к концу рабочего дня таки прикручиваете.

Надеюсь я объяснил что значит "Интересно и ненапряжно". Программировать всерьез конечно тоже приходится, сейчас вот как раз переписываю потихоньку свои Win only проекты под opensource, попутно дорабатывая, делаю и коечто новое, но такими "глобальными" стратегическими задачами я обычно занимаюсь дома по ночам и выходным, ибо на работе суетно, не сконцентрируешся, и какраз приходится делать абы как.

Superman[досье] Человек всеже уже написал несколько систем, скорее это просто недостаток опыта, ну и профессионального конечно тоже.

спустя 49 минут [обр] Алексей Севрюков(47/1280)[досье]

tempo[досье]

Да, я знаю и умею программировать. Но я не могу, взять кусок кода, суть работы которого я даже не знаю, и его модифицировать настолько, что бы получилось совсем иное. Разобраться в коде, читая его исключительно как код – я не могу. Я не могу отслеживать каждый объект или функцию, разбираться в них – на это уйдёт бесконечность. Есть вызов объекта – нет комментариев. Как узнать, для чего этот объект?

Я в таких случаяъ не разюираюсь с системой вообще и изучаю ее исключительно по минимуму, только ключевые моменты. А когда нужно что-то поменять - на кривой код (99% кода который я правил - кривой просто до безобразия, про HTML в коде я вообще молчу - такое сплошь и рядом) ставится не менее кривая заплатка, которая и решает все проблемы.

спустя 2 часа 1 минуту [обр] Superman(1/16)[досье]
Thirteensmay[досье] профессионализм я имел в виду не как профессионально написанный код.
спустя 1 час 7 минут [обр] Thirteensmay(9/157)[досье]

Superman[досье] Ну да, получается что человек чтото писал, и делать как бы в общем может, но опыта работы в условиях коллектива (когда основная задача не написание нормального кода, а получение прибыли, а код он там гдето в сторонке) нет, т.е. уже и не центр вселенной, и взгляды не всегда совпадают - на практике это типично, а вот сознание еще старое, будто он один, отсюда и проблемы.

tempo[досье] - надо привыкать, профессионал это не тот который пишет красивый код, а тот который эффективно решает задачу. И если для эффективного решения задачи нужен кривой код, то должен быть кривой код. Естественно, Вы как профессионал должны думать на перспективу, и уведомлять менеджмент о текущем состоянии дел и этих перспективах, но это во вторую очередь, ибо в первую - кривой код, а точнее т.к. его в общей массе больше половины, - обычный ;) А то так получается что мы все живем в кривых домах, ездим на кривых машинах, и сами все кривые в жопу, ну не так же дела обстоят. Сколько минут в день Вы стоите с расческой перед зеркалом, а сколько нет ? так а че же тогда к коду то так трепетно относиться ? он по сравнению с Вами вообще ничто. Это все обычная программерская паранойя - желание и ощущение идеальности, этим многие больны. Вы же живете не ради кода, забейте, слобали маленький кусочек крайнеуместной лажи - расслабтесь, попейте чаю, подумайте о еще одном кусочке, особенно о его крайнеуместности. Ну а на досуге можете и разгуляться по полной - вылижите какой нибудь модуль раз так хочется.

спустя 5 дней [обр] Василий Свиридов(0/175)[досье]
Thirteensmay[досье]Знаете, есть художники, а есть маляры. Смотря как к этому относиться.
спустя 12 часов [обр] Thirteensmay(9/157)[досье]
Да уж... похоже что в данном случае наш художник попал к злостным малярам...
Powered by POEM™ Engine Copyright © 2002-2005