Comments 83
К слову, в 2009г. у меня было уже больше 10 лет стажа работы девелопером и уже тогда я махнул рукой на попытки отслеживать все новомодные тенденции, все равно большая часть их них отмирает или изменяется до неузнаваемости за пару лет. Пусть другие бегают по граблям и ищут подводные камни, а меня вполне устраивает отставать от «острия прогресса» лет на пять, пользуясь лишь отлаженными решениями.
Разве GT — подходящее место для камингаутов?
Ну в целом если хабр был готов к статье об отличниках, я подумал что GT самое место что-бы рассказать свою слезливую историю.
Быдлокодер, не быдлокодер — странно что вас это вообще беспокоит. Проекты которые пилятся в одиночку пишите хоть на брейнфаке — никому дела до вашего кода нет. А когда дело дойдёт до больших проектов и групповой разработке, понимание принципов грамотного проектирования кода придёт само и довольно быстро.
Не позорно пока ты учишься писать код (неважно закончил ты "Лабач" или тракторист от рождения) и твои проекты не более чем поделка для души, собственной выгоды, или маленький интернет магазин/crm для знакомого/нанимателя.
Позор будет тогда когда твой проект, написанный для серьезного клиента, ты сам со временем не сможешь расширять и поддерживать из за своего собственного "быдлокода".
И судя по Вашей статье Вы ещё не встречались с серьезными нанимателями и деньгами за Вашу работу.
Спасибо.
лично видел код, который писали электрики в 1998м году, когда учились программировать на С.
Этот код до сих пор не только работает в продакшене, но и продается одной весьма известной в западном полушарии компанией (увы, большего я не могу сказать по NDA), которая занимается в том числе атомом, турбинами, военщиной и т.д.
А мне лично кажется что быдлокод это ещё один из инструментов. И вполне может быть использован как средство быстрого прототипирования несложных проектов с нечёткими требованиями и неясной бизнес-моделью. Проблемы начинаются когда инструмент используют не по назначению.
1. Нарушены смысловые нормы.
Что вы противопоставляете с помощью союза «а» в данном предложении?
Но с горем пополам я разобрался и в течении 2 месяцев сайт был запущен, а к нему был куплен и подключен домен.
2. Нарушены грамматические нормы.
И из некогда свободного островка где каждый, мог стать локальным архитектором своего цифрового замка, программирование превратилось в гонку стеков/практик/кодстайлов.
3. О чем вообще это предложение?
Как сейчас помню свою фрустрацию, от прочтения исходников какой-то темы, арабская вязь.
И еще пунктов 10...
Советую автору данной статьи снова дать оценку своим знаниям русского языка и заново ознакомиться со школьной программой. Это поможет в будущем не утруждать себя написанием статьи о «непозорности быть быдлописателем».
Советую автору данной статьи снова дать оценку своим знаниям русского языка и заново ознакомиться со школьной программой. Это поможет в будущем не утруждать себя написанием статьи о «непозорности быть быдлописателем».
Не волнуйтесь, если подобная статья увидит свет, её я размещу на другом тематическом ресурсе.
Не живу по понятиям.
Здравый смысл здесь как раз таки в том, что как автор не обязан был сдать проверку на знания русского языка перед написанием своего breakthrough "творения", так и я ему не редактор и изволен сам выбирать место написания своей конструктивной критики.
Раз уж мы обратились к понятиям, то я скажу, что это статья не достойна такого ресурса как geektimes. На фоне статьей того же SLY_G и marks, у меня сложилось плохое впечатление о ресурсе в целом.
Понимаю, допустить 3-4 ошибки, но когда перед тобой плохо написанный и, порой, бессвязный текст, читать его становиться, мягко говоря, неприятно. Аргументация выше.
Не живу по понятиям.
По-моему как раз живёте. Ведь правила русского языка это и есть понятия придуманные не вами.
и изволен сам выбирать место написания своей конструктивной критики.Во-первых, «волен». Во-вторых, это не конструктивная критика, потому что она не связана с темой статьи. В-третьих, «так заведено» здесь по вполне логичным причинам — после исправления автором ошибок, Ваш комментарий останется, но при этом не будет иметь никакого смысла для читателей.
после исправления автором ошибок, Ваш комментарий останется, но при этом не будет иметь никакого смысла для читателей.
Неверно.
После исправления ошибок комментарий останется напоминанием всем читателям, что текст с грамматическими ошибками — явление постыдное и при написании как статей, так и комментариев необходимо пользоваться словарями и автоматической проверкой орфографии.
А озвученная вами точка зрения муссируется людьми, не желающими тратить усилия на написание грамотного текста. Такие люди достойны порицания.
После исправления ошибок комментарий останется напоминанием всем читателям, что текст с грамматическими ошибками — явление постыдное и при написании как статей, так и комментариев необходимо пользоваться словарями и автоматической проверкой орфографии.Комментарии к статье нужны для обсуждения тем, раскрытых в статье. Сообщения о грамматических, пунктуцационных и стилистических ошибках к теме статьи не относятся (если, конечно, это не статья о правописании), и не актуальны после того, как автор исправил все ошибки. А неактуальные и неуместные комментарии закономерно считаются мусором.
Кроме того, «докопаться до орфографии» равносильно «argumentum ad hominem» — переходу на личности, а это в приличном обществе неуместно.
А озвученная вами точка зрения муссируется людьми, не желающими тратить усилия на написание грамотного текста. Такие люди достойны порицания.С чего Вы делаете такой вывод? Я согласен, что указать на ошибки автора — достойное занятие, и что читать грамотно написанный текст гораздо приятнее. Но тешить свое самолюбие, размещая бесполезные и неактуальные комментарии — занятие недостойное.
Люди, мешающие другим ради того, чтобы блеснуть своей грамотностью — вот кто «достоин порицания»
Мне кажется, что оно несколько иначе должно выглядеть. Как-то так:
«Как сейчас помню свою фрустрацию от прочтения исходников какой-то темы — китайская грамота».
Ну или там на арабском, тогда тоже запятые не нужны.
Кроме того любая популярная отрасль порождает подражателей — людей среднего ума, не способных самих выработать свой стиль, они просто его тырят у других. А таланту шаблоны не нужны. Помните как забег в Австралии выиграл фермер в дырявых башмаках?
Итого кому выгодны стандарты? Посредственным людям, не способным сделать свой стандарт, не способным читать чужой не стандартный код. Работодателям — им легче менять людей на других, т.к. стандартный код легче поддерживать при помощи более дешевых средних работников. Разработчикам ИДЕ — т.к. они могут анализировать стандартные шаблоны и продавать электронных советчиков посредственным людям.
Выгодны ли стандарты крупным талантам в программировании? Я не уверен, спросить не у кого :) Но логика подсказывает — что им они либо бесполезны либо раздражают тем, что ставят в рамки.
Тут как в музыке — таланты пишут что хотят и это звучит десятилетиями, ломают все стандарты и им плевать.
Посредственности очень озабочены стандартизацией и определением своего стиля — в итоге их забывают после второго альбома.
И кто здесь быдло? И что из этого «для быдла»? :)
Я лично всегда с уважением отношусь к самобытным разработчикам и их проектам, их код интересно читать и изучать, в нем есть что-то. А потом они «само-стандартизируются», их код становится банальным, скучным. И тот и тот код — работает, и колво багов не меняется. Просто один скучный, другой нет.
> Итого кому выгодны стандарты?… Работодателям
А вы всерьёз надеетесь на успех, если ваша методология(её отсутствие), в конечном счёте, не выгодна работодателю?
> Когда-то не было стандартов на мебель, каждый мастер делал ее уникально, такая мебель ценится до сих пор.
Если уж вы считаете это успешной аналогией, то какой же код из времён отсутствия стандартов ценен сейчас за свой уникальный стиль?
А что такое успех, дайте определение. Работодателя некоторые берут в заложники, делая себя незаменимым кадром и таким образом выбивая повышение. Это успех? А быть легко заменяемым кадром, сидящим в опенспейсы в шуме и гаме, и которого уволить можно в любой момент, и найти замену — это успех?
А вы можете привести пример конкретной мебели тех времен? Аналогия нужна, чтоб донести мысль, а не чтоб ее обсуждать и обсасывать. Если мысль не поняли — задавайте вопросы. Если поняли — то к чему эта демагогия?
Расстреливают?
> А что такое успех, дайте определение.
Сами дайте. Вы на какой успех рассчитываете?
> А вы можете привести пример конкретной мебели тех времен?
Во-первых, тезис «такая мебель ценится до сих пор» притащили вы — неужели вы сами не можете привести примеров? Странно с меня просить, или это какой-то прием демагогии?
> Если мысль не поняли — задавайте вопросы.
Эм… а я что делаю?
Я вашу аналогию понял так: если код перестаёт приносить удовольствие от владения раньше, чем умрут внуки — это быдлокод.
От «самобытного» кода устают даже его создатели.
Так есть у уникального кода какая-то ценность, отличная от ценности экспоната кунсткамеры?
Да здесь 95% комментаторов проектировать не умеют, знают максимум 1 язык(Не надо пожалуйста отвечать «Кроме js я еще и typescript знаю! Это не одно и тоже!», лол) или 1 стек технологий, т.е. в переводе на русский, являются низкоквалифицированными специалистами. То что рынок IT испытывает кадровый голод, и вас берут на хорошие зарплаты, не повод считать себя блестящими инженерами, поводов для раздувания ЧСВ тут нету. На безрыбье и рак рыба.
Автору могу посоветовать набрать еще несколько лет опыта, изучить разные области разработки(не только web), и поменьше обращать внимания на ЧСВшных зануд. Да, и ничего хорошего в том, чтобы быть быдлокодером нет.
а появляется быдло и с другой стороны с чрезмерным использованием продвинутых вещей как в Spring когда переменную надо в 20 разным местах в XML обьявлять…
Я вижу Вы давно на Спринге не писали…
Ну или недавно, но на очень старом. Зачем XML то?
Оставаться всегда на этом уровне — никаких проблем, в конце концов программированием можно тупо зарабатывать деньги, таким тоже.
Гордиться тем что ты решил остаться на таком уровне — плохо, это вроде гордости собственной глупостью, нечем тут гордиться.
Я не откажусь быть архитектором
ну может и президентом вы тоже не откажетесь, однако ни первым ни вторым вам явно заниматься не стоит.
По факту вы уже бывали в такой ситуации
не сумев понять сути излишней сложности, продолжил писать, как и ранее, но почему то решили рассказать нам что всё делаете правильно. Начните работать с кодом других программистов, начните делать библиотеки и вы быстро поймёте что не только есть куда расти, но это ещё и оправданно. А языки здесь вообще не причём.
Гордиться тем что ты решил остаться на таком уровне — плохо, это вроде гордости собственной глупостью, нечем тут гордиться.
Возможно вы неправильно поняли мой посыл, я не стараюсь выпячивать свою безграмотность, а уж тем более делать её поводом для гордости. В своей статья я хотел донести тем людям которые выбрали эту профессию не хайпа ради, а из-за очарования и романтики, что отказываться от неё только лишь из-за высмеивания окружающими вашего ЯП, стека или кодстайла — глупо.
но почему то решили рассказать нам что всё делаете правильно.
И снова, я не говорил что правильно оставаться на месте не совершенствуя свои навыки. Я пытался проиллюстрировать, что использование чего-либо должно быть осознанным, что для визиток не стоит тянуть караван из ангуляра, симфони и прочего новомодного стафа. Мало просто заучить и применить паттерн разработки, стоит понимать для чего он существуют и где упрощает задачу, а где напротив лишь усложняет её.
А языки здесь вообще не причём.
Я ведь не на пустом месте это придумал, достаточно загуглить «php — не язык программирования» и вы сами увидите как в массе своей к нему относятся люди. А статью я родил потому что не так давно сам переживал из-за того что мой инструментарий для разработки, а значит и мои знания/навыки, худший из возможных. И я уверен, что таких как я людей, которым нужна поддержка, наберётся не мало.
>Быть начинающим (быдлокодером если вам так угодно)
Начинающий != быдлокодер. Начинающий может чего-то полезного не знать, это нормально. Быдлокодер полезное узнал и отверг. «зачем мне разбивать тысячестрочную функцию на части, и так работает», «зачем делать программу готовой к неправильным данным? Пусть пользователь вводит правильно!», «зачем мне использовать для этой задачи подходящий язык? Я будут везде использовать тот, что знаю (или думаю, что знаю)». Быдлокодер — это не начинающий, это конченный.
Я быдлокодер? — Да.
Волновало ли меня это тогда? — Да.
Волнует ли сейчас? — Волнует. Иначе зачем бы я писал эту статью.
Собственно, я и сам быдлокодер. И если бы меня это не волновало, я бы не писал этот коммент.
Именно поэтому в случае если возникает необходимость проапгрейдить какой-либо старый проект написанный мной же, мне фактически приходится переписывать его заново, потому-что хоть это и работает но это теперь даже на мой взгляд ужасный спагетти код, править который невозможно и
легче переписать. Навскидку это полное отсутствие реиспользования, избыточность, отсутствие комментариев, exception'ов и каких либо проверок ну и так далее по списку. И я уверен в том, что точно так же буду плеваться на свой код написанный сейчас, годом после.
В итоге, за все время своей практики, хоть я и совершенствовался, я по прежнему писал быдлокод. И понимая сколько всего мне ещё придется изучить я пришел к выводу, что быдлокодить я ещё буду много. Не осознанно, лени ради, а бессознательно из-за отсутствия необходимого опыта.
Поэтому во многом меня сейчас волнует не мой быдлокод, ведь от него не сбежать, а осознание того как мало я ещё знаю.
Ваш код становится ГК ровно в тот момент, когда вы, взглянув на своё прошлогоднее творение, восклицаете: «Ё-моё! Какой же ГК я написал!» И в следующий момент определяется, кто вы сегодня. Если обнаруженный ГК ещё действует в производстве и у вас есть совесть и возможности, вы немедленно начинаете свой старый ГК рефакторить — то есть вас всё равно нельзя назвать быдлокодером.
ИЧХ, гораздо чаще возможность исправить старые огрехи имеют fullstack-любители, чем захардкоженные в корпорацию крутые спецы, с которых постоянно требуют план любой ценой.
Третья сторона этой медали: если вы, глядя на прошлогодний свой код, никогда не испытываете хотя бы досады, то, ну, я не знаю… вы либо святой гений, либо как раз тот, кого и можно назвать быдлокодером.
Где ответ о том «Как не впасть в зависимость от общественного мнения» в статье?
А во вторых, я не считаю php плохим языком, он развивается семимильными шагами, успевай только пачноуты читать. Модификаторы доступа, интерфейсы, деструкторы, неймспейсы, екстендеры, ексепшены, трейты тайпхитинг и т.д, по сути за 10 лет php стал полностью ООП совместим со всеми вытекающими. Разумеется это по прежнему не байт-код и в нём всё ещё отсутствует многопоточность. Понятное дело глупо на нём решать сложную математику. Но это хороший ЯП, с потенциалом для развития, отлично решающий поставленные перед ним задачи и имеющий такой же низкий порог входа для старта как и раньше и большое поле для развития сейчас. Поэтому мне не понятно почему та же java в фаворе, а php это по определению урод и все кто на нем пишут даже не программисты…
Да это не плюсы, я понимаю, насколько они обширны и мощны, но это не тот ужас который был в 2004м, а часть сообщества по прежнему продолжает его ненавидеть просто по накатанной и за компанию.
Поэтому мне не понятно почему та же java в фаворе, а php это по определению урод и все кто на нем пишут даже не программисты
Тут дело именно в пороге вхождения, чем легче изучить язык, тем больше на нем пишут говнокода, от сюда и стереотип. Есть очень много реально крутых программистов которые пишут на пхп (Тейлор Отвел например).
екстендеры
Что это?
деструкторы
Это криво работает. Сами разработчики ПХП не рекомендуют
Ну и самое крутая «фича» в ПХП это перегрузка констант :)
Изначально я проучился 4 года к колледже где используя turboPascal великий сенсей нас гонял по структурам данных и алгоритмам сортировки.
Именно тогда на втором курсе я и встал на сторону тьмы (php), хотя стоит признать — мне удалось продать 3 софта частным конторам — один на c++, один на delphi и один на VB.Net. Естественно там был быдлокод. Заказ на десктопное приложение в нашем городе — скорее чудо чем данность и мне вообще повезло что я их ухватил, постоянное жить такими заработками я бы не смог.
Одногрупники тоже распределились по технологиям — кто-то выбрал java и сейчас счастлив, кто-то action-script и когда умер flash человек стал менеджером. еще один кайфовал по питону и уехал в чехию.
Изучая php и html/css и читая различные книги я стремился всегда превзойти себя и создать свой «идеальный код». Но что в итоге? я работаю 5 лет backend разрабом и стараюсь писать адекватный код, но вот только это никого не волнует.
Бизнесу важен быстрый результат а не идеальный код. И понятное дело все чаще и чаще бизнес задается вопросом почему middle — спец с 5-и летним стажем фигачет систему сложностью N за 4 месяца и кушает 5 дошираков в месяц, когда быдлокодер со стажем в 1 год делает похожую систему за месяц и кушает 1.5 доширака в месяц. И в итоге все смотрят косо на небыдлокодера, так что небыдлокодить не так просто как кажется, особенно под дикой нагрузкой и сжатыми сроками.
Так что быть быдлокодером выгодно и прилично, да и бизнес будет тебя хвалить…
Я вот первые пять лет опыта хотел быть не быдлокодером. Делал карьеру, хоть и не имея образования, учил всякие крутые технологии. Писал на Скале, с коллегами обсуждал прелести монадов, мечтал разобраться в Хаскеле и Скалази. А потом, когда намаялся с левыми библиотеками (может сейчас уже все лучше) и пришёл в фирму поднимать проект с нуля, решил что надо становиться быдлокодером. Отставил Скалу, где же я себе потом в команду разработчиков найду? Взял Спринг, который позволяет за пол дня поднять веб аппликацию и начал на нем фигачить. И очень тому рад, наконец то я занимаюсь тем, что решаю людям проблемы, а не проедаю деньги акционеров, потому что у нас большая фирма и мы можем (писать crud на Скале).
Заказчик хочет от вас прибыль.
Пользователю нужна от вас реализация его хотелок.
А с коллегами вы просто обмениваетесь опытом и меряетесь длиной или толщиной стека.
Это принципиально разные среды, каждая из которых выдвигает собственные требования к вашей деятельности. Эти требования не совпадают просто по внутренней логике. Поэтому, скорее всего, вы не сможете быть идеальным сразу для всех.
Вы можете быть звездой тусовки, но не приносить работодателю ни копейки. Можете быть ценнейшим сотрудником, но при этом делать неудобный глючный софт. А можете выдавать популярные продукты, код которых будет ужасным с точки зрения коллег :) Это в целом нормально. Важно осознавать разницу и расставлять для себя приоритеты.
Это к слову, касается любой профессии. Думаю, даже если бы в кружок собрались космонавты на орбите без присмотра, то в какой-то момент их бы сильно заинтересовало, кто быстрее передвигается по кораблю в невесомости или лучше выдерживает критические перегрузки. И хотя эти навыки могут играть некую свою роль и ими очень прикольно помериться, но вряд ли они значимы с точки зрения космонавтики в целом или даже просто в глазах их нанимателей :)
В соседней ветке комментариев всё правильно сказали, что из трех способов оптимизации разработки (better-faster-cheaper) упор можно сделать максимум на два, и, внезапно, очень мало каким конторам оптимизация по качеству кода интересна в большей степени, чем оптимизация по цене или скорости выпуска продуктов.
Как-то стрёмно становится жить в мире где автопилотные автомобили программируются быдлокодерами которые не испытывают ни малейшего желания стать лучше. Да ещё и бахвалятся своей позицией.
А я вот даже не быдлокодер :(
Пока вообще не кодер.
Все хожу как то вокруг, то то одно поизучаю то другое.
Раз в несколько лет у меня возникает мысль, а не переквалифицироваться ли в программисты.
- В школе изучал турбо паскаль
- В университете самостоятельно си, без плюсов и обьектов, тексты найчился парсить дальше дело не пошло.
- Писал скрипты на баше для себя когда админил linux веб серверы.
- Изучал питон по книжке, парсить обрабатывать тексты для себя научился, даже что то полезное накодил.
Но на джанго я увяз и сделать что то в веб не осилил. - Научился писать простые sql запросы
- Базово освоил git
- На hexlet прошел половину стека php разработчика, и чуток по JS.
Список технологий в JS который надо осознать и использовать, все это управление зависимостью, пакетные менеджеры, и автомодификация кода под разные версии ужасает и уводит в сторону от собственно програмирования. Забросил.
В процессе я понял что языки без строгой типизации меня ужасают тем, как легко можно накосячить и долго это отлавливать.
Еще проникся духом функционального программирования и идеей делать все что только возможно чистыми функциями. - Прошло еще полгода. Я полез изучать solidity чтоб писать смарт контракты на эфире.
Сложилось ощущение что тут стек технологий более короткий достаточно осознать, чтоб начать делать что то полезное. Пока экспериментирую в Remix, до реального блокчейна еще не добрался.
К чему все это?
Я просто никак не могу начать делать что то полезное в программировании.
Мне надо освоить какой то минимальный стек технологий, чтоб я мог делать что то за деньги.
А иначе у меня быстро пропадает мотивация и я опять начинаю плотно катать в покер, просто потому что нужны деньги на жизнь.
В то же время, я понимаю что кодить мне бы было на порядок интереснее, чем играть.
И по деньгам, в долгосрочной перспективе — тоже интереснее.
Яма потенциальная какая то, которую никак не могу преодолеть.
И да, кодить то хочется на чем то современном, со строгой типизацией, с функциональной идеологией. А не на php с которого все равно потом на нормальный язык переучиваться.
Подскажите, что делать?
Далее, технологии и ЯП выбираются в зависимости от того сколько людей работает над проектом, а так же сложность самого проекта и по другим соображениям. А не так — рубишь все в одном стиле даже простейшие какие то приложения. В итоге простейший одностраничный сайт начинает грузить всякую лишнюю фигню и тормозит. Или наоборот для сложного проекта выбраны не те технологии. Так что каждому проекту — свой стек технологий.
Я довольно скептически относился ко всему новому в вебе. Пока не стал применять правильный стек технологий для каждого проекта. Главная суть — сделать качественно, быстро, гибко и с минимумом усилий.
1) Довелось поддерживать один «проЭкт». Неделю матерился и плевался, разбираясь в коде. Потом узнал что писал этот «проект» — гинеколог! Фрустрация, ржач, осознание смысла бытия…
2) На проекте мне сразу было сказано — коллеги неопытные программисты, относитесь с пониманием, пишите побольше комментариев. Ок.
Первой строчкой в главном файле проекта стало:
// Все «правила хорошего кода» написаны кровью,
// вытекшей из глаз программистов, читавших чужой код.
// учитесь оформлять свой код так, чтобы его можно было прочесть
Сдал проект.
Через год потребовалось работать над ним дальше. Парни без меня отлично его расширили, все перкрасно. Через месяц или два, один из них говорит что-то вроде:
— Спасибо за хорошее оформление и пояснение в коде, из комментариев мы многое поняли как работает ООП.
Было чертовски приятно =)
Как не впасть в зависимость от общественного мнения и почему быть быдлокодером не позорно?