О студентах, программировании и промышленной разработке

Здравствуйте, дражайший читатель.

Вот, наконец-то добрался и до сайта. Знаете ли, решил осветить кое-какую проблему, нет, пожалуй, даже проблемищу, возникшую в отрасли разработки ПО — вот только не знаю когда возникшую, наверное тогда, когда языки программирования и средства разработки выбрались из застенков лабораторий. Выбрались, и попали в руки к неквалифицированным кадрам. Попав в эти, пока до конца не распрямлённые образованием и, что главнее, опытом, руки — они, языки, начали плодить ужасных уродин :) А пользователи — волей-неволей расхлёбывают плоды функционирования этих программ-франкенштейнов. Да, речь пойдёт о разработке ПО, и, в частности, для веба. Вообще, для начала — а что такое программное обеспечение, в понимании пользователя? Что разрабатывают разработчики, дизайнят дизайнеры, и юзибилитствуют юзабилисты, а потом рекламят рекламщики и анализируют маркетологи? В моём понимании, как программиста-пользователя, ПО, это средство достижения поставленных целей быстрее и удобнее, чем делать те же операции вручную. Вот, скажем, раньше — художнику, чтобы нарисовать картину, надо было брать кисти, холст (а ещё пигменты, основу типа льняного масла, скипидар или иной растворитель, кучу лаков, грунтовок, и иных ухищрений), и нарисовав несколько набросков, по ним уже — рисовать картину. Сейчас эту проблему решает, частично, фотошоп и графический планшет, подключенный к компьютеру. Т.е. фактически произошла замена инструментария, при сохранении конечной цели — готового изображения.

Аналогично с программами в вебе — раньше, чтобы почитать новости — надо было выйти на улицу и купить газету. Чтобы купить, скажем, кофеварку, надо было ходить по магазинам и выбирать, чтобы оплатить счёт по квартплате — выйти из дома, отстоять очередь в сберкассу, и потом отдать деньги девушке, сидящей в окошке приёма платежей, а чтобы купить билет на самолёт… Ну, в общем, вы понимаете. Теперь есть лента.ру, яндекс.маркет, и куча платёжных систем. Продавцу, чтобы продать товар, не надо ежедневно выходить с лотком на улицу, и там стоять в дождь и мороз (ха ха, а представьте если это ещё и одновременно?!), чтобы поймать покупателя. Достаточно грамотно открыть интернет-магазин, и дать его рекламу, опять же в интернете. И, кстати говоря, люди торгующие чем-то, это оценили и поняли. Сейчас в сети достаточно много интернет-магазинов, в которых есть всё, что душа пожелает: «В этой маленькой корзинке — что угодно для души…». Вы кликаете пару кнопок на сайте, и, обычно в течении 24 часов для Москвы, к вам едет добрый курьер-узбек, который везёт вашу покупку. Вы получаете товар, отдаёте деньги, и все счастливы (по крайней мере я уже несколько лет делаю покупки бытовой техники именно таким способом). Хорошо? Идиллия? Как бы не так!

Нет, в настоящее время стало довольно много качественных интернет-магазинов, информационных ресурсов, и прочего. Однако, время от времени мы встречаем просто жуткие примеры интернет-сайтов (и не менее жуткие примеры цен, по которым их сделали — в смысле маленькие). Да, да, дорогие мои. Иной раз вёрстка — плывёт, картинки товара/дизайна сайта — такие, что лучше бы их вовсе не было, тексты — переоптимизированы под SEO (типа жёсткие диски жёсткие, купить диски, купить HDD, наши диски жёсткие самые, самые лучшие диски, диски, терабайт, 1,5 терабайта, терабайты, SATA IDE SCSI, никакие другие жёсткие диски не пережестят наши жёсткие диски купить которые вы можете…», и так далее. А уж вывод глюков PHP в общий поток (равно как и само их наличие) — производит тягостное впечатление. Спасибо Яндекс.Маркету, что он такие сайты не принимает в каталог, этим и спасаемся… А владелец ресурса — продавец, т.е., страдает от того, что у него кривая админка, и он не может в ней эффективно работать — всё наперекосяк, без логической  структуры, глючное и неудобное. Почему так?

Для того, чтобы ответить на этот вопрос, стоит сделать небольшой экскурс в рынок веб-разработки. Как вообще создаются многие сайты, что для этого требуется, и кто этим обладает? Формально (ещё раз подчеркну — только формально) требуется человек, который знает PHP/HTML/CSS/JS, умеет работать с различными БД, и так далее… Плюс дизайнер, если надо. Так вот, фишка в том, что набор средств для «веб-разработки» — он очень легкодоступен. На начальном этапе это PHP IDE — типа NuSphere PHP Editor — и какая-нибудь программа для вёрстки — типа Adobe Dreamveawer (не будем строить иллюзий насчёт барьеров дороговизны этого ПО в рамках этой страны). И вот, прыщавая студентота, 17-20 лет, «насшибав верхушек» и вняв увещеваниям не менее прыщавых старших товарищей, которые, как они утверждают, скушали на деле сайтостроения не одну Жучку, ставит себе на компьютер PHP Editor, Denwer, Dreamveawer — и лезет на какой-нибудь сайт, типа флилансе.ру, искать заказы, не потрудившись хотя бы вникнуть в суть того, что такое разработка сайтов в частности, и программного обеспечения в целом. На фрилансе он находит лоха (будущего продавца), который соблазнившись низкой ценой — типичная лоховская проблема — согласен сделать ему заказ и (о глупость!) предоплату в 50%. Предоплатой он привязывает себя именно к этому разработчику. Или просто привязывает, потому как требуется вводить сайт в эксплуатацию «дешево и в сжатые ср(о/а)ки». Начинается эпопея. Студент обещает сделать сайт за три недели — месяц, и десять тысяч рублей. Правда при этом он не упоминает того факта, что ему придётся ещё минимум три месяца изучать PHP, SQL, HTML, CSS, Javascript и основы вёрстки… Вымотав нервы и себе и заказчику, в конце концов рождается пластилиновое уёбище, которое норовит растечься по коленке некрасивым пятном при малейшем чихе пользователя/владельца. Это гордо обзывается «сайт для продажи какой-то хуйни», и выставляется в интернет. Находятся пользователи, которым та самая хуйня нужна, и которые хотят её заказать. Но… Гы-гы, прыщавая студентота написала сайт без корзины… Бывает, угу. Несчастный владелец рвёт волосы на лобке, и судорожно ищет уже более дорогого специалиста, который утверждает, что он конечно же не студент, а уже специалист (ну конечно, что там — вот доучусь четвёртый/пятый курс, и хуйня, сразу бывалый лесной зубр на хилом коне программирования), и способен поправить глюки кривых рук предшественника. В результате он даже делает корзину на сайте, и в неё сыплются заказы. Ага! Радостно потирает руки владелец сайта… И расхлёбывает ошибки в работе ещё какое-то время, пополам с выполнением заказов. Потом, когда бизнес начинает приносить доход, и более-менее расширяется, бизнесмен уже думает: «мда, неплохо было бы произвести рефакторинг» (ну или как-то в этом духе, человек, далёкий от программирования, не обязан знать слово «рефакторинг»). Этот человек уже что-то понимает в бизнесе и в подборе нужных людей, и нанимает уже программиста, с опытом непосредственной работы от 3 до 5 лет. И вот, приходит уже специалист, смотрит на то, что было, блюёт где-то полчаса, потом столько же приходит в себя, и называет цену. И вот тут уже охуевает бизнесмен, потому как такого он не ожидал — цена оказывается раз в 10, эдак, дороже… Думаете сказка? Ан нет, вполне себе быль, я уже неоднократно встречался с монструозно-ужасными сайтами… Последним таким был сайт на моей нынешней работе, который делала «фирма» (да, кстати, школота-студентота, как только сделает два-три сайта и найдёт единомышленников, очень любит образовывать всякие там ООО «СлепимСайт», которые таки да, лепят, за 20 килорублей штука ту же каку в другой обёртке — порог вхождения на рынок довольно низкий). Знаете — это неебический геморрой — смотреть в код, и испытывать неиллюзорный баттхёрт от художеств аффтаров. Начинаешь срать кирпичами, рвать волосы на лобке и инако глумиться над своим естеством. Такое вот сильное впечатление оставляют сайты за 15-20 тысяч рублей, да…

Вообще, давно выведено эмпирическое правило: «Дёшево — качественно — быстро» — и никогда не бывает всех трёх сразу, только какие-то два. Скажем, дешево и быстро — но говно, быстро и качественно — но дорого. Дешево и качественно — долго… Короче вот так. А всё почему, не задумывались? У квалифицированного разработчика, который имеет за плечами хотя бы 5 лет работы, для начала существует его привычная рабочая среда, которой он умеет хорошо пользоваться — обкатанная. Например у меня такой средой являются уже упомянутый NuSphere PHP Editor + отладчик, Denwer либо своя собственная серверная сборка (которая делается очень просто, но по характеристикам — куда лучше денвера, обычно, потому как делается под себя, свои нужды), обязательно редактор SQL запросов (ибо работаю чаще всего с MySQL, то таковым является MySQL Workbench). Кроме того, это Adobe Dreamveawer для вёрстки макета (которую я вообще говоря не делаю, но иногда — редко, крайне, исключительно — приходится), и Firefox с кучей плагинов, самые важные из которых это Firebug и HTTP Headers Viewer, ну и HTML валидатор. Плюс навыки разработки, знание подводных камней и маяков (5 лет это не только приобретение навыков в использовании всяких IDE, чтобы красиво тыкать по кнопкам перед заказчиком). Это подразумевает качественный продукт на выходе, который стоит дороже, чем написанный студентом — ну, раз в 10 как минимум, и то, при куче условий. Плюс мы привередливы достаточно к техзаданию, наличию материалов (например товарных позиций для магазина), и прочее, прочее. И вообще, не стоит строить иллюзий, что если вы платите 50 к хорошему программисту — он вам напишет с нуля потрясный сайт. Сайт с нуля, со своей системой управления, и прочим — стоит от 500 000 рублей, и лишних «опечатных» ноликов в указанной цифре нет. Причем разрабатывается такой ресурс не одним человеком, и не только программистами — нужны хотя бы пара программистов, дизайнер, верстальщик… Короче только на пару месяцев их работы уйдёт энная сумма. + Некоторый Профит. Если дешевле — стоит уже задуматься, как правило дело будет нечисто. Да и вообще… Рабочая среда программиста требует довольно неслабого железа (я уж молчу о её стоимости в лицензионном софтоисчислении). Нет, есть конечно извращенцы, которые оптимизируют среду выполнения — у операционки там что-то отключают «лишнее»… Но это просто значит, что у них нет денег (читай заказов или иных источников выделяющих «свободные деньги») на новое железо. Стоит ли связываться? А ведь связываются заказчики, обычно по неопытности…

С одной стороны я прекрасно понимаю человека, который открывает очередной стартап, у которого есть некоторый капитал, и ему хочется минимальных издержек. 20 000 рублей выглядит очень привлекательно. Также понимаю студентов: «а, хер с ним, что нет опыта — вот как раз будет, да и деньжат сколько-нибудь срублю». А страдаем в результате мы — посетители таких недоресурсов. И предприниматель потом, как ни странно, страдает — когда производится рефакторинг системы (т.е. улучшение, переделка) — в ресурс вкладываются куда как более серьёзные суммы, исчисляемые уже сотнями тысяч рублей (ибо все мы помним, что исправлять чужое куда как длительнее и сложнее, нежели своё писать). Ведь у вас там уже хранится и клиентская база, и логи заказов, и прочее, прочее… Приходящий в голову вариант найти себе разработчика, который всё это будет делать — стоит сразу же отбросить. Штат сотрудников, способных 1. создать дизайн, 2. создать ресурс, 3. провести рекламно-оптимизационные мероприятия — не по плечу стартапу, это 5-6 человек, каждый с зарплатой за 60 килорублей/мес. А нанимать «кухонный комбайн» — когда и чтец и жнец и на дуде игрец за 40 тысяч — это извините глупость и идиотизм — получите эникейщика, читай — того же студента, с результирующим продуктом сходного качества.

В общем, дилемка… А как её решать? Да так, чтобы и по кошельку било не сильно, и продукт качественный получить? Об этом я непременно напишу позже, а пока — хочу выразить основную мысль данной статьи — не надо подпускать студентов и школьников к разработке софта. Нет, бывают уникумы, способные написать чистый, рабочий код [1] и на третьем курсе… Но таких единицы, скажем я писал ту ещё херню, которую сам не мог потом разобрать — обычно это были либо лабораторные, либо «для себя»… Правда мне хватало ума не выкладывать это на всеобщее обозрение. Причем не подпускать должны не кто-нибудь, а заказчики услуг. Это всё равно как студента с юрфака отправить самостоятельно вести процесс в суде. Или второкурсника мед. ВУЗа отправить в операционную, самостоятельно делать аортокоронарное шунтирование. И дело тут даже не в том, что это какая-то там конкуренция: ну какую конкуренцию может составить студент второго курса практикующему хирургу? Просто мне уже исключительно надоело, когда подбрасывают код, который надо либо поправить, либо ещё что с ним сделать… А там просто КАША. Да и интернет-ресурсы такие — уважения не вызывают, и априори вызывать не могут… Равно как и прикладной софт, и прочее, прочее, прочее…


1. Кстати, умиляет требование в разных вакансиях: «Умение разбираться в чужом коде»… Граждане работодатели! Вы хоть понимаете, что для пресловутого «разбирательства» код, в котором «разбираемся» — должен быть читабелен? Если у вас этот код писал какой-нибудь прыщавый восемнадцатилетний мальчик, только что окончивший школу и поступивший в институт — в нём он сам не разберётся через месяц. Чтобы «разбираться» — надо, чтобы предмет разбирательства был написан руками, растущими из плечей, а не ногами, носом, или путём стучания пэнисом об клавиатуру.

Автор

Алекс Разгибалов

Сумасшедший мужчина, неопределённого возраста, наслаждающийся манией преследования. Паталогически недоверчив, эгоистичен, авторитарен. Вторичные диагнозы - программист и поц. Владеет английским языком на уровне около хренового разговорного. Также знаком с некоторыми другими языками. Интересуется всем и вся, за счёт чего в любой области знания являются поверхностными, неглубокими. Характер невыдержанный. Крепость - 55 градусов.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Собирать идеально - не обязательно, просто приблизительно соберите картинку (должен быть включен JavaScript).WordPress CAPTCHA