Если речь идёт не о коллективе программистов, совместно разрабатывающих программу (т.е. коллективе людей с общей целью), то могу рассказать случай.
Как то подошла ко мне на МаслоСырЗаводе главбух и спросила «могу ли я сделать какую то программку, которая помогает с учётом ГСМ»? Без проблем, говорю. Итогом стала небольшая программа, в которую вводились путевые листы плюс ещё несколько документов. Т.е. такого то числа, такой то водитель с таким то показанием счётчика километража на спидометре (не знаю, как по научному он называется) во столько то выехал из гаража, а с таким то и во столько — приехал. При этом совершил столько то рейсов. Так же, фиксировались все заправки, и ещё некоторые параметры, но спидометр и литры бензина — это было главное. Что бы проверить, как работает программа, взял пачку листов, начал вбивать и… обнаружил, что оказывается — некоторые машины ночью по гаражу задом разъезжают. Т.е. они приезжают в гараж, на спидометре одно показание. Утром выезжают — показание меньше, чем было вчера вечером. Конечно, были и другие «отклонения» — на одной и той же машине по очереди работали два водителя — они сжигали бензин с разницей в полтора раза. Как потом водитель объяснял — у меня стиль вождения такой… Но, суть не в этом. Пошёл я к главбуху, объяснил — мол, не может же такого быть. Она попросила вывести все подобные «аномалии» в отдельный отчёт. Вывел, упорядочил по «количеству езды задом», сколько уместилось на листок — распечатал и отдал. На следующий день, когда шёл по территории завода, здоровался с шоферами (точнее, пытался), а они демонстративно отворачивались, и руки не протягивали.
Вот так сразу стал врагом у кучи народа…
Иногда мне начинает казаться, что многие программисты настолько глубоко ушли в свой уютный мирок с «позитивным» мышлением и высокой зарплатой, что становится страшно.
Пожалуйста, поясните, чего Вы боитесь? Программистов? Или, то, что они хорошо зарабатывают?
Если вы потрудитесь высунуть голову в окно, то увидите, что огромное количество людей вкалывает на ненавистной работе за копеечные зарплаты.
Ну и что? К чему этот факт? Вы хотите сказать, что программисты в этом виноваты?
Где никого не интересует, что ты «выгорел» от работы на заводе. И ты НЕ СМОЖЕШЬ взять отпуск на пол года, потому что тебе будет нечего жрать и платить за квартиру.
Если программа, которую делает программист, приносит такую прибыль, что программисту могут дать отпуск на пол года — кому от этого плохо? Рабочему на заводе?
И после этого, мне крайне мерзко видеть подобные фразы от людей, которые по случайному стечению обстоятельств оказались востребованы и могут реализовывать себя, не задумываясь о происходящем вокруг.
По случайному? Не, нет.
Во первых, меня в программирование привела не случайность. Ещё в школе читал «науку и жизнь», рассматривал куски программ на Basic-е там опубликованные, и без всяких руководств разбирался, что в них. В 9-м классе в школе установили КУВТ-86, и тогда начал писать программы уже не на бумажке, а на БК-00101. По окончании школы посмотрел справочник ВУЗ-ов СССР, и выбрал ближайший город, где была 2204 (это был Таганрог) и поехал поступать. Поступил на специальность с самым большим проходным балом в ВУЗ-е. И вот — всю жизнь программист. И, не жалею.
Во вторых, уже в институте понял, что из двух групп людей специальности 2204, кому выдадут диплом «инженер-программист» именно программистов — тех, кому нравится создавать программы, кто это делает без напряга над собой, кто и дальше будет этим заниматься — не более десятка человек. Остальные — да, могут понять чужую программу, могут даже что то в ней изменить. Но, они уже давно поняли, что не будут работать по специальности. Т.е. уже тогда я понимал, что программировать — это умение далеко не для всех.
В третьих, ещё в детстве (при чтении той же «Науки и Жизнь», «Техники молодёжи», «ЮТ») пришло понимание, что за программированием — будущее. Что количество компьютеров (роботов, всяких промышленных компьютеров) будет только увеличиваться. Мысли о том, что стань я программистом — работы мне не найдётся, даже и не было. Конечно, не мог предполагать, что сейчас в моей квартире микропроцессоров будет в несколько раз больше, чем людей — и не мечтал.
Помню, стою перед листочком «проходные баллы на специальности в прошлом году». Отец в ужасе, что 2204 — самый высокий балл, и говорит мне: «Может, пойдёшь на микроэлектронику, телевизоры ремонтировать всегда было нужно. А то компьютеры какие то. Не понятно, чем ты заниматься после института будешь, у нас на весь район в райцентре на ВЦ только один компьютер.» Нет, говорю, хочу быть программистом — и, стал.
Нет, вся моя жизнь — не случайность. Любите свою работу и живите в гармонии со своей совестью.
От нас, разработчиков, ожидают, что мы должны любить программирование. Но почему? Истина проста: это хорошо для работодателей.
Возможно, это и хорошо для работодателей. Но, разве зазорно любить свою работу? У меня есть знакомый хирург. Он рассказывал, что когда его допустили к пациентам, он договаривался с другими хирургами, что будет делать операции за них. Просто так, без денег. Ему было интересно оперировать всё подряд, даже геморрой. С годами у него появились другие хобби — он хорошо играет на гитаре (даже уроки брал), купил несколько гитар. Потом хобби изминилось, и некоторые гитары он продал, занялся шахматами. Со мной было примерно то же самое. Мне было всё равно, на чём писать программу, лез во всё, не задумывался о количестве времени, которое тратил на программирование. Постепенно баланс между программированием и личной жизнью сдвигался в сторону личной жизни. Всё таки, дети умеют привлечь к себе внимание :) Сегодня конец рабочего дня — это повод прерваться, отвлечься и заняться чем то другим (банально, сходить за хлебом или ужин приготовить). Как раньше сидеть всю ночь над кодом уже… (скажем так) не хочется. Нет, бывает — когда аврал. Но, это уже давно не система. При этом, программирование люблю так же крепко, как 30 лет назад.
Но как насчёт людей, которые не любят программирование, но всё же хорошо справляются со своей работой?
IMHO, чем быстрее такие люди уйдут из программирования, а может вообще из IT, чем быстрее они перестанут себя мучить, тем для них будет лучше. Не могу представить — как это, каждый день заниматься работой, которую не любишь. Надо найти работу, которую любишь, заниматься её, и быть счастливым.
Многие видят, что у программистов з/п (скажем так) «выше среднего» и идут в программисты. Но, почему то деньги не делают их счастливыми.
Да в общем то — ничего. Зашёл я тогда в банк, мы с челом по дружески пообщались, и я ушёл.
Если у него результат был лучше,
Лучше чего/кого? Как уже сказал, мы не были с ним какими то «конкурентами», у каждого был свой участок работы. Просто, у нас были разные цели. Моя цель была «во всё вникнуть, узнать, как всё устроено, повысить скилы, научиться как можно больше...». Его цель была — стать начальником. Он, в общем то, этого от меня и не скрывал, понимая что я этого ни кому рассказывать не буду (сейчас рассказываю «за давностью лет»). В итоге каждый получил то, что хотел. Более того, заметьте, он стал начальником ни кого не подставив и не подсидев (хотя, я и такие примеры видел), и не «по блату» или из за родственных связей. Так что респект ему, и уважуха. Что до меня — я пару раз поработал начальником, потом зарёкся, и уже работая в очередном банке дважды (когда мне предлагали повышение) отказывался от должности. Ну, не моё это. Изучать — что нового в C#9 мне гораздо интереснее, чем ездить на курсы — где обучают «как наёмывать наёмных работников».
ни ваши переработки, ни ваша вики никого не интересуют…
Да, именно так. Но, перерабатывал я не потому, что не справлялся или хотел выслужиться, а потому, что «охота — пуще неволи» — просто было интересно. По поводу попыток внедрения Wiki уже расписал.
и насчет «перетруждался» всего лишь ваши поверхностные догадки.
Вот тут позвольте не согласиться. Как уже указал — у него просто была такая цель…
Да, согласен. Кстати, я уже ушёл из банка. Почему? Во первых, ЦБ планомерно сокращает банки. Их просто становится меньше, а будет ещё меньше. Во вторых, по нашему закону, АБС должна быть Российской. В результате, приходится выбирать из того — что есть. Со всеми вытекающими последствиями. В третьих, устал слышать от бухов «мы деньги зарабатываем, а IT — это только расходы». Хотя, по факту, банки всё больше превращаются в поставщиков дистанционных услуг — через приложение можно брать кредиты, открывать счета и пр. В четвёртых — все доморощенные системы в банках меняются на коробочные. Процесс уже почти завершён, и те банки, которые что то стоящее разработали — выделили из себя программистов в отдельную фирму. Т.е. если ты программист в банке, то разработать что то новое уже не получится. Усилия программистов направлены либо на внедрение новых коробок (взамен доморощенного или не устраивающего ПО), либо на интеграцию уже имеющихся систем (что ещё более или менее интересно), либо на сопровождение коробочных продуктов. А что такое «сопровождение»? Бух говорит «тут ошибка» (операция не выполняется, цифры не сходятся), ты проверяешь, что то правишь в базе (что бы прям сейчас «пропихнуть» конкретный случай), потом сообщаешь авторам «у вас косяк», а как они исправят — установить присланную ими заплатку. Ни тебе паттернов, ни тебе новых языков… Конечно, если хочешь спокойно и тихо работать в одном месте особо не напрягаясь и получать хорошую з/п, то банк — это именно то место. Но, если тебе скучно, и ты хочешь узнавать что то новое, развиваться — IMHO, надо валить с банка в контору, где софт разрабатывают. Мнение моё, не настаиваю — что оно правильное. Но, в своё время именно так и поступил.
Дважды пытался внедрить Wiki на разных работах. И, убедился — пока начальник не заставляет ей пользоваться (читать и пополнять), от Wiki нет ни какой пользы. Как написано выше:
1) Зачем искать в документации когда можно спросить
Просто железный принцип. Ни кто не читает, все спрашивают. А если начинаешь рассказывать «мне некогда, я это уже описал, почитай Wiki» человек либо просто обижается «ты меня не уважаешь», либо идёт к руководству «он со мной не хочет делиться знаниями». И, если руководитель сам не видит надобности в Wiki, то можно получить взбучку типа «работать надо, и товарищей уважать, а не графоманией заниматься».
Кроме того, ни кто не хочет тратить время на то, что бы добавить в Wiki какие то знания. Более того. Того, кто хочет быть быть незаменимым, заставить отдавать кому то с таким трудом заработанные знания — очень тяжело, просто не реально.
IMHO, если просто поставить Wiki-движок и сказать «пользуйтесь» — ни какого толку не будет. Нужны административные меры.
Подобное можно сказать и о багтрекере. Все будут упорно стараться пользоваться электронной почтой или телефоном, избегая места — где можно разом видеть всю переписку. Потому что когда всю переписку видно, руководство наконец таки сможет понять — кто косячит, кто сроки пытается затянуть, а кто просто от работы отлынивает.
Вывод — внедрение на предприятии любой программы, понижающей энтропию, требует больших затрат энергии.
Случай из жизни. Устроился на работу в один банк. Почти одновременно со мной устроился другой человек. Сидели мы за соседними столами, иногда ходили вместе обедать, не сказать — что бы очень дружили, но конфликтов не было, так как не из за чего было конфликтовать. Я всегда старался всё сделать как можно лучше, задерживался на работе, во всё вникал, писал Wiki (куда вписывал — что и как надо делать). А он уходил с работы вовремя (а то и раньше), ни чего ни когда не документировал, в общем — особо не перетруживался. На все упрёки начальника говорил «работы много». В итоге… ему дали помощника. Через какое то время другого. Потом эту троицу выделили в сектор, а его назначили начальником сектора. Через какое то время я уволился из банка. А когда по старой памяти зашёл — он уже был начальником целого отдела.
Почему во всём мире предприятия, которые делают чипы — жутко прибыльны? Они расширяют производство и строят новые заводы… А «Микрон» за 2020-й год (судя по публикации на cnews):
Операционная прибыль в 2020 г. составила 1,2 млрд руб., прибыль до налогообложения – 25 млн руб., чистый убыток – 470 млн руб.
Помните времена, когда у каждого телефона была своя, только его, зарядка? Разные разъёмы, разные напряжения… Думаю, если вопрос про ремонтопригодность начали всерьёз поднимать — обязательно дожмут через три-пять лет.
Позвольте вставить мои 5 копеек. Тоже некоторое время обходил тему стороной, пока не набрался смелости и не разобрался в данной теме. На мой взгляд, с точки зрения C#:
Ковариантность — позволяет использовать более конкретный (производный) тип, чем указанный. Применима к возвращаемым параметрам. Сохранение иерархии наследования типов, передаваемых в качестве аргументов типа, в обобщенных типах в том же порядке. Так, если класс Cat потомок класса Animal, то список IEnumerable<Cat> потомок списка IEnumerable<Animal>. «Список кошек» — это частный случай «списка животных», в список животных можно занести кошку, а в список кошек занести любое животное (например, собаку) нельзя. Тип (в данном случае обобщённый интерфейс) IEnumerable<T> ковариантен своему параметру-типу T.
Контравариантность — позволяет использовать более универсальный (базовый) тип, чем указанный. Применима к принимаемым параметрам. Обращение иерархии наследования типов, передаваемых в качестве аргументов типа, на противоположную в обобщенных типах. Так, если класс Cat потомок класса Animal, а делегат Action<T> определён как метод, принимающий объект типа T, то Action<Animal> потомок делегата Action<Cat>, а не наоборот. Если «все коты — животные», то «всякий метод (например, сфотографировать), оперирующий животными, может выполнить операцию над котом». Но не наоборот — метод, оперирующий котами (например, подержать в руках), не может выполнить операцию над любым животным (например, слоном). В таком случае говорят, что тип (в данном случае обобщённый делегат) Action<T> контравариантен своему параметру — типу T.
Надеюсь, правильно разобрался. Или — что то не так? Буду благодарен за критику.
за поддержку статьи, которая по сути оффтоп и мало связана с хабром (вернее, вообще никак не связана).
Спасибо, что разъяснили, буду знать. Я тут относительно недавно, потому, не мне судить - оффтоп это или не оффтоп, поверю Вам на слово. Понимаю, не всем интересно, а только тем, кто с подобным (увы) сталкивался.
А нет такого места (типа песочницы) куда можно переносить подобные оффтоп статьи?
М, да… А потом начнут за коммуналку липовые счета присылать.
Мораль — платить надо через личный кабинет. Или, личный кабинет банка. Но, не по ссылке из письма (квитанции)…
Как то подошла ко мне на МаслоСырЗаводе главбух и спросила «могу ли я сделать какую то программку, которая помогает с учётом ГСМ»? Без проблем, говорю. Итогом стала небольшая программа, в которую вводились путевые листы плюс ещё несколько документов. Т.е. такого то числа, такой то водитель с таким то показанием счётчика километража на спидометре (не знаю, как по научному он называется) во столько то выехал из гаража, а с таким то и во столько — приехал. При этом совершил столько то рейсов. Так же, фиксировались все заправки, и ещё некоторые параметры, но спидометр и литры бензина — это было главное. Что бы проверить, как работает программа, взял пачку листов, начал вбивать и… обнаружил, что оказывается — некоторые машины ночью по гаражу задом разъезжают. Т.е. они приезжают в гараж, на спидометре одно показание. Утром выезжают — показание меньше, чем было вчера вечером. Конечно, были и другие «отклонения» — на одной и той же машине по очереди работали два водителя — они сжигали бензин с разницей в полтора раза. Как потом водитель объяснял — у меня стиль вождения такой… Но, суть не в этом. Пошёл я к главбуху, объяснил — мол, не может же такого быть. Она попросила вывести все подобные «аномалии» в отдельный отчёт. Вывел, упорядочил по «количеству езды задом», сколько уместилось на листок — распечатал и отдал. На следующий день, когда шёл по территории завода, здоровался с шоферами (точнее, пытался), а они демонстративно отворачивались, и руки не протягивали.
Вот так сразу стал врагом у кучи народа…
Пожалуйста, поясните, чего Вы боитесь? Программистов? Или, то, что они хорошо зарабатывают?
Ну и что? К чему этот факт? Вы хотите сказать, что программисты в этом виноваты?
Если программа, которую делает программист, приносит такую прибыль, что программисту могут дать отпуск на пол года — кому от этого плохо? Рабочему на заводе?
По случайному? Не, нет.
Во первых, меня в программирование привела не случайность. Ещё в школе читал «науку и жизнь», рассматривал куски программ на Basic-е там опубликованные, и без всяких руководств разбирался, что в них. В 9-м классе в школе установили КУВТ-86, и тогда начал писать программы уже не на бумажке, а на БК-00101. По окончании школы посмотрел справочник ВУЗ-ов СССР, и выбрал ближайший город, где была 2204 (это был Таганрог) и поехал поступать. Поступил на специальность с самым большим проходным балом в ВУЗ-е. И вот — всю жизнь программист. И, не жалею.
Во вторых, уже в институте понял, что из двух групп людей специальности 2204, кому выдадут диплом «инженер-программист» именно программистов — тех, кому нравится создавать программы, кто это делает без напряга над собой, кто и дальше будет этим заниматься — не более десятка человек. Остальные — да, могут понять чужую программу, могут даже что то в ней изменить. Но, они уже давно поняли, что не будут работать по специальности. Т.е. уже тогда я понимал, что программировать — это умение далеко не для всех.
В третьих, ещё в детстве (при чтении той же «Науки и Жизнь», «Техники молодёжи», «ЮТ») пришло понимание, что за программированием — будущее. Что количество компьютеров (роботов, всяких промышленных компьютеров) будет только увеличиваться. Мысли о том, что стань я программистом — работы мне не найдётся, даже и не было. Конечно, не мог предполагать, что сейчас в моей квартире микропроцессоров будет в несколько раз больше, чем людей — и не мечтал.
Помню, стою перед листочком «проходные баллы на специальности в прошлом году». Отец в ужасе, что 2204 — самый высокий балл, и говорит мне: «Может, пойдёшь на микроэлектронику, телевизоры ремонтировать всегда было нужно. А то компьютеры какие то. Не понятно, чем ты заниматься после института будешь, у нас на весь район в райцентре на ВЦ только один компьютер.» Нет, говорю, хочу быть программистом — и, стал.
Нет, вся моя жизнь — не случайность. Любите свою работу и живите в гармонии со своей совестью.
Возможно, это и хорошо для работодателей. Но, разве зазорно любить свою работу? У меня есть знакомый хирург. Он рассказывал, что когда его допустили к пациентам, он договаривался с другими хирургами, что будет делать операции за них. Просто так, без денег. Ему было интересно оперировать всё подряд, даже геморрой. С годами у него появились другие хобби — он хорошо играет на гитаре (даже уроки брал), купил несколько гитар. Потом хобби изминилось, и некоторые гитары он продал, занялся шахматами. Со мной было примерно то же самое. Мне было всё равно, на чём писать программу, лез во всё, не задумывался о количестве времени, которое тратил на программирование. Постепенно баланс между программированием и личной жизнью сдвигался в сторону личной жизни. Всё таки, дети умеют привлечь к себе внимание :) Сегодня конец рабочего дня — это повод прерваться, отвлечься и заняться чем то другим (банально, сходить за хлебом или ужин приготовить). Как раньше сидеть всю ночь над кодом уже… (скажем так) не хочется. Нет, бывает — когда аврал. Но, это уже давно не система. При этом, программирование люблю так же крепко, как 30 лет назад.
IMHO, чем быстрее такие люди уйдут из программирования, а может вообще из IT, чем быстрее они перестанут себя мучить, тем для них будет лучше. Не могу представить — как это, каждый день заниматься работой, которую не любишь. Надо найти работу, которую любишь, заниматься её, и быть счастливым.
Многие видят, что у программистов з/п (скажем так) «выше среднего» и идут в программисты. Но, почему то деньги не делают их счастливыми.
Да в общем то — ничего. Зашёл я тогда в банк, мы с челом по дружески пообщались, и я ушёл.
Лучше чего/кого? Как уже сказал, мы не были с ним какими то «конкурентами», у каждого был свой участок работы. Просто, у нас были разные цели. Моя цель была «во всё вникнуть, узнать, как всё устроено, повысить скилы, научиться как можно больше...». Его цель была — стать начальником. Он, в общем то, этого от меня и не скрывал, понимая что я этого ни кому рассказывать не буду (сейчас рассказываю «за давностью лет»). В итоге каждый получил то, что хотел. Более того, заметьте, он стал начальником ни кого не подставив и не подсидев (хотя, я и такие примеры видел), и не «по блату» или из за родственных связей. Так что респект ему, и уважуха. Что до меня — я пару раз поработал начальником, потом зарёкся, и уже работая в очередном банке дважды (когда мне предлагали повышение) отказывался от должности. Ну, не моё это. Изучать — что нового в C#9 мне гораздо интереснее, чем ездить на курсы — где обучают «как наёмывать наёмных работников».
Да, именно так. Но, перерабатывал я не потому, что не справлялся или хотел выслужиться, а потому, что «охота — пуще неволи» — просто было интересно. По поводу попыток внедрения Wiki уже расписал.
Вот тут позвольте не согласиться. Как уже указал — у него просто была такая цель…
как то не получается внедрить Wiki :(
Просто железный принцип. Ни кто не читает, все спрашивают. А если начинаешь рассказывать «мне некогда, я это уже описал, почитай Wiki» человек либо просто обижается «ты меня не уважаешь», либо идёт к руководству «он со мной не хочет делиться знаниями». И, если руководитель сам не видит надобности в Wiki, то можно получить взбучку типа «работать надо, и товарищей уважать, а не графоманией заниматься».
Кроме того, ни кто не хочет тратить время на то, что бы добавить в Wiki какие то знания. Более того. Того, кто хочет быть быть незаменимым, заставить отдавать кому то с таким трудом заработанные знания — очень тяжело, просто не реально.
IMHO, если просто поставить Wiki-движок и сказать «пользуйтесь» — ни какого толку не будет. Нужны административные меры.
Подобное можно сказать и о багтрекере. Все будут упорно стараться пользоваться электронной почтой или телефоном, избегая места — где можно разом видеть всю переписку. Потому что когда всю переписку видно, руководство наконец таки сможет понять — кто косячит, кто сроки пытается затянуть, а кто просто от работы отлынивает.
Вывод — внедрение на предприятии любой программы, понижающей энтропию, требует больших затрат энергии.
Удачи ребятам.
P.S. IMHO, главное тут:
Ковариантность — позволяет использовать более конкретный (производный) тип, чем указанный. Применима к возвращаемым параметрам. Сохранение иерархии наследования типов, передаваемых в качестве аргументов типа, в обобщенных типах в том же порядке. Так, если класс Cat потомок класса Animal, то список IEnumerable<Cat> потомок списка IEnumerable<Animal>. «Список кошек» — это частный случай «списка животных», в список животных можно занести кошку, а в список кошек занести любое животное (например, собаку) нельзя. Тип (в данном случае обобщённый интерфейс) IEnumerable<T> ковариантен своему параметру-типу T.
Контравариантность — позволяет использовать более универсальный (базовый) тип, чем указанный. Применима к принимаемым параметрам. Обращение иерархии наследования типов, передаваемых в качестве аргументов типа, на противоположную в обобщенных типах. Так, если класс Cat потомок класса Animal, а делегат Action<T> определён как метод, принимающий объект типа T, то Action<Animal> потомок делегата Action<Cat>, а не наоборот. Если «все коты — животные», то «всякий метод (например, сфотографировать), оперирующий животными, может выполнить операцию над котом». Но не наоборот — метод, оперирующий котами (например, подержать в руках), не может выполнить операцию над любым животным (например, слоном). В таком случае говорят, что тип (в данном случае обобщённый делегат) Action<T> контравариантен своему параметру — типу T.
Надеюсь, правильно разобрался. Или — что то не так? Буду благодарен за критику.
за поддержку статьи, которая по сути оффтоп и мало связана с хабром (вернее, вообще никак не связана).
Спасибо, что разъяснили, буду знать. Я тут относительно недавно, потому, не мне судить - оффтоп это или не оффтоп, поверю Вам на слово. Понимаю, не всем интересно, а только тем, кто с подобным (увы) сталкивался.
А нет такого места (типа песочницы) куда можно переносить подобные оффтоп статьи?
Золотые слова, Юрий Бенедиктович (с) Наша Раша
Эти бы слова — да нашему тимлиду в уши.
Мораль — платить надо через личный кабинет. Или, личный кабинет банка. Но, не по ссылке из письма (квитанции)…
Очень интересно будет почитать.
С уважением.
Удачи вам.