Pull to refresh

Comments 62

Я как раз из тех, кто пришел в мир программирования с помощью RoR. И именно для того, что бы написать себе (и друзьям) CRM-систему для учета страховой деятельности, т.к. на рынке не было ничего заточенного именно под мои потребности. В итоге понеслось и страховой деятельностью я уже не занимаюсь, — теперь я решаю определенные проблемы с помощью руби, с помощью программирования :) Я бы определенно знал намного больше из программирования, если бы имел профильное образование и кусочек меня об этом сожалеет. Но с другой стороны я потратил 8 лет на изучение финансов, деятельность в них, аспирантуру, преподавание, — вероятно, это как то расширило горизонты.
Так расширило горизонты, что теперь вы — программист.
вероятно, это как то расширило горизонты


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

И да, код у меня не лучший, но я постоянно над этим работаю.
Полагаю для «статистики» есть кнопочка «написать комментарий», а «ответить» это уже конкретному человеку ;)
> Я бы определенно знал намного больше из программирования, если бы имел профильное образование и кусочек меня об этом сожалеет.

Не переживайте, на самом деле профильное образование тащит за собой очень много «ненужных» среднестатистическому программисту вещей. И если физика, линал или, скажем, матан, еще требуется многим программистам для написания, например, игровых движков, то для веб программирования вам пригодится не более 15% институтской программы. Так что думаю вы ничего не потеряли, если и дальше будете работать над собой :)
Цель университета дать вам инструментарий и попробовать все по чуть чуть чтобы вы определились в какую отрасль программирования вы пойдете — низкие/высокие языки, скрипты/модули/движки и тд. Университет для программиста это место которое помогает себя найти.

А в наши дни если нужны знания то есть Coursera и ему подобные.
На самом деле даже если считать любой технический предмет потенциально полезным для программиста, остается много «мусора». Я бы с радостью отказался от таких дисциплин, как история, политология, экономика, культурология, основы религии, правоведение, практические вопросы предпринимательства и т.д. Не хочу никого оскорбить, это достаточно интересные дисциплины, но мне абсолютно не нравится что их преподают мне, человеку, которые обучается по технической специальности. Я прекрасно понимаю что эти предметы добавлены для того, чтобы студенты по окончанию вуза были всесторонне развитыми личностями, но поймите меня правильно, я пришел сюда получать знания о компах, которые я собираюсь использовать в своей будущей работе и мне абсолютно не интересно слушать лекцию о том, как наши предки отмечали пасху, а тем более писать реферат на эту тему. Я серьезно верю что если эти предметы в моей программе заменить на нечто техническое, я получу гораздо больше пользы. А так, спасибо, конечно, за инструментарий, институт, но мне абсолютно не хватает фантазии чтобы представить себя сидящим за открытой IDE в крупной фирме и лихорадочно пытающимся припомнить определение второго закона Госсена.

(само-собой, если я пишу экономический анализатор, мне эти знания пригодятся, но с таким же успехом можно преподавать мне уроки шитья и обучать покраске машин)

PS не хочу чтобы вы поняли меня неправильно, я с удовольствием могу почитать статьи по тем предметам, которые я тут описываю, я вовсе не ненавижу их, я всего лишь считаю что им не место в программе обучения по технической специальности.
Проблема снижения порога вхождения заключается не в том, что порог вхождения снижается, простите за тавтологию. По большому счёту, наличие большого количества новичков в отрасли — это хорошо. Проблема заключается в том, что это порождает у этих самых новичков иллюзию собственной квалификации, на основании которой они потом ломятся писать серьёзные системы.

Что характерно, последствия этого потом всё равно приходится разгребать профессионалам и это встаёт бизнесу в такие деньги, что проще было бы даже не просто нанять, а с нуля обучить команду профессионалов, нежели приводить в чувство существующее решение. Но переписывать с нуля, увы, почти всегда «не вариант» по массе причин.
Просто на 15-й год работы в отрасли уже начинаешь неиллюзорно ощущать себя ИТ-ассенизатором.
15 год работы в отрасли при возрасте 30 лет?
Не смешите.
PS С наступающим.
Я вас и не думал смешить. Я с 15 лет софт разрабатываю за деньги, в 17 лет — ведущий разработчик по направлению, занимался разработкой ПО для наземного аэродромного оборудования. Резюме показать?
Тогда Вы клевый. А такое ПО разве не специализированными конторами типа НИИ писалось? Как 17-летнего юношу пустили туда вообще?
НИИ и разрабатывали. В 15 лет меня фрилансером попросили сделать одну софтину, результат понравился. В 16, как стало официально можно, взяли на работу техником-программистом. Через месяц повысили до инженера-программиста, через год — до ведущего программиста по направлению.
Напишите пост — я бы почитал, интересная тема.
И теперь вы ненавидите таких новичков, которые в 15 лет начинают что-то писать?
Из чего вы делаете такой вывод? Я выше вполне определённо написал, что крайне позитивно отношусь к новичкам. Я негативно отношусь к технологиям и языкам с низким порогом вхождения, поскольку они порождают вредные иллюзии.
Видимо, исходя из этого:
… последствия этого потом всё равно приходится разгребать профессионалам и это встаёт бизнесу в такие деньги, что проще было бы… с нуля обучить команду профессионалов...


Чуть выше вы еще негативнее высказались в том же ключе. То есть как минимум у вас наблюдается расхождение во мнениях. Вы к новичкам относитесь хорошо, вроде, но при этом их вход надо как-то ограничить, чтобы профи не нужно было ничего за ними выгребать?

Вы же не думаете, что порог вхождения как-то повлияет на то, что новички сразу будут становиться профессионалами?
Я всего лишь думаю, что когда новички начинают заниматься технологиями с высоким порогом вхождения, это заставляет их более критично относиться к своим способностям и попутно разбираться в том, как оно работает внутри, а не думать, что «я написал домашнюю страничку! ы! теперь я всесилен и буду писать сервис на миллион пользователей».

А приведённая вами цитата — это всего лишь личный опыт. Наверное, больше половины проектов, в которых я участвовал — это приведение в порядок «скриптов», написанных на коленке, которые в силу удачно пойманной темы и обстоятельств разрослись до крупных масштабов [без изменения качества кода] и стали напоминать раковую опухоль.
Не позволяет это более критично относиться к своим способностям, в том и прикол. Это лишь снижает вероятность получения первого результата и увеличивает вероятность бросить попытки и искать «решения в обход».

сервис на миллион пользователей


Что касается этого момента, то давайте объективно оценим ситуацию. Как эта задача вообще связана со сложностью языка? Там сама по себе сложность языка даже не видна на фоне общей логики системы.

И, честно говоря, я лично еще не видел ни одного чайника, который написав свой первый микро-сайтик сразу решил, что ему по зубам сделать еще один Яндекс. То есть у подобных проектов как раз и есть свой личный порог вхождения. Чтобы научиться делать подобные проекты нужно, в любом случае, их брать и делать и с первого раза это, однозначно, не получится идеально.

Я могу на своем примере рассказать. Я так или иначе связан именно с PHP. Великим программистом совершенно точно себя не считаю, но определенный опыт имею. В том числе за жизнь успел что-то поделать и на Basic, MapBasic, Assembler, C++, Pascal, Delphi и еще каких-то. Но тут недавно решил посмотреть один Open Source проект на Python. Потратив 2 дня я просто не смог его запустить даже. Попытался начать сначала, с языка т.е. И потратив еще 2 дня я добрался, наконец, до первого какого-то осознанного вывода на странице. Это очень долго. Я менее чем за неделю в MapBasic написал программу по пересчету координат из одной системы координат в другую. И этой штукой несколько лет успешно пользовались, пока необходимость не пропала. А тут о банальный «Hello World!» споткнулся. В итоге, на тот Open Source проект я забил, на Python тоже забил.
в 17 лет — ведущий разработчик по направлению, занимался разработкой ПО для наземного аэродромного оборудования


Написал длинный и злобный коментарий на тему 17 летних ведущих разработчиков, потерял фокус с поля и не заметив нажал Backspace (хром по Forward уже ничего не восстановил).
Наверное это к лучшему.

Счастья и добра вам.

Больше. Two — это очень оптимистично :)
Прямо на знамёна .NET runtime — Microsoft должен доплачивать автору.

Даёшь больше блокнотов, весящих а-ля Civilization, и открывающихся а-ля Photoshop или Cubase.

А всем недовольным предложить заменить HDD на SSD и добавить ещё пару ядер.

Чего уж там, инвестируем в очередной апгрейд, ещё понасилиуем природу, зато плохой код будет летать.

Доверь таким развивать lame или opus, файлы получатся в размер flac.
Следовательно, вы же не пишите ни на чем более высокоуровневом, чем ассемблер? Верно? )
У меня так женщины спрашивают: ну если шпильки носить вредно, в кедах что ли ходить?
Как будто обувь заканчивается на шпильках и кедах.

Когда в 90-х я сменил 386 40 МГц 2 Мб на Пентиум, то получил новые возможности: потихоньку каталогизировал библиотеку, перевёл музыку в цифру, потом избавился и от кипы VHS касет; стало просторно и понятно. А сегодня у меня под столом и на удалёнке гигагерцы и терабайты, но никакого восторга я не испытываю, ибо нет доверия — очередная версия программы с подкрашеной мордашкой или скрипт для резервного копирования БД с пропущенной утечкой памяти могут отъесть и эти ресурсы, а разработчик, окрепший голосом за стеной юристов и техподдержки с рисованными аватарками и затёртыми фамилиями, лишь пожмёт плечами и предложит обновить «устаревшее» железо да расширить «медленный» канал. Вон, домохозяйке скажешь, она послушно идёт в магазин, а вы чего, особенный? Не дилетант виноват, а пользователь, понимаете? Это выгодно им, лентяям, это выгодно известным акционерам, но конечные пользователи и природа страдают от этой сиюминутности, нигилизма, кризиса профпреемственности.
Проблема дилетантства есть, — но под огонь попали фреймворки. Да, они жручее, но они позволяют решать проблемы (и ведь не обязательно хуже) быстрее. Для компенсации наращиваются мощности. И ведь не прогресс ли это? Да еще и движимый ленью (куда без неё?:))
Естественно надежнее и безопаснее пойти самому на огород, насажать своей картошки, пить воду из своего колодца… а мы вместо этого комбайнами собираем, на заводах перерабатываем…
Да и все коррелируемо, — растущее благосостояние акционеров является целью деятельности любой компании (на энтузиазме мало кто далеко уедет). И как раз пользователи голосуют рублем используя (или не используя) конечные продукты. И чем продукт ценнее в глазах пользователей, тем больше денег за него готовы отдать.
ps. Не подумайте, я не в упрек вам :)
крутые программисты используют только бинарный код
И верят только Омниссию
UFO just landed and posted this here
А до этого вообще никак не тестируете их? Это же ужасная потеря времени.
вам здорово не везет с RoR-программистами. поищите Ruby-программистов ;)
Все так называемые RoR программисты, что приходят на собеседование
если у Вас вакансия называется как-то типа «требуется Rails программист», то ничего удивительного. Кого позвали, те и пришли.
C Delphi похожая ситуация была. Правда тогда ходить по интервью было еще не так модно, поэтому когда фирма открывала вакансию «Delphi программист», многие претенденты, перед тем как заехать, уточняли примерно в таком ключе: «вам программист на Delphi 5 или на Delphi 6 нужен?»
Есть мнение что PHP некоторые языки склоняют к написанию говнокода, в тоже время RoR склоняет считать себя опытным разработчиком.
Мой профиль iOS разработка, но я немного рельсовал, и одна моя поделка даже попала в продакшн (а ее кусочки и на govnokod.ru). Это и позволило мне считать себя относительно опытным в этой сфере, но на собеседовании по Ruby/Rails меня разнесли в пух и прах, и только тогда я понял насколько ошибался.
Сбылась мечта рубистов. Руби занял место пхп.
Может, тогда уж, сбылась мечта PHP-шников? :)
А какая мечта у php'шников?
зы: Я пхпшник может вы лучше меня знаете наши мечты.
Я тоже PHP-шник. И я думаю, что мечты у нас у каждого свои… кроме, разве что, мечты использовать литералы для списков (спасибо 5.4) :)
Касательно моего комментария, он был к тому, чтобы довольно длительное время была мода пинать PHP по поводу и без повода, просто потому что в PHP коммьнити было много непрофессиональных разработчиков. Причем пинали даже те, кто к IT имел мало отношения. Причем в процессе пинания очень часто подменяли понятия, в результате доходя до абсурдного: "<Что-то про PHP> => <На PHP пишут одни говнокодеры> => <PHP — говно>", что имеет мало общего с действительностью.
Сейчас похожая ситуация происходит с Руби и с Рельсами, хотя и Руби и Рельсы на мой взгляд просто замечательные язык и фреймворк, соответственно.
В общем это я к тому, что возможно происходящее заставит людей по новому взглянуть на ситуация и поможет начать выносить адекватные и объективные суждения, а не следовать на поводу у глупых трендов.

P.S. Ну, и я уже устал слышать высказывания в духе «Ты чего, себя не уважаешь?», от разных людей, просто потому, что я в данный конкретный момент пишу на PHP. Хотя помимо PHP я знаю Java, Ruby, Python и немного C++.
Спс. за адекватный, развернутый ответ.
Вы благодарите за развернутый ответ, но не можете написать слово благодарности целиком.
Это так мило :)
Ну, говно — это просто термин, не совсем технический, конечно… так что его можно и не принимать душой. Но есть факт отвратительного дизайна языка. Точнее не факт, а целая толпа таких фактов. Например, вот неплохой списочек: me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ Обычно, когда сталкиваешься с такой кучей… фактов, обычно называешь эту кучу говном. Но, да, это дело вкуса. Можно сказать и более толерантно: да, это выглядит говном, пахнет говном, но мы над этим работаем, в каждой новой версии запах всё менее заметен, вид всё более карамельный, и вообще, учитывая кучу (ой, извините, опять) отличных проектов на php можно с уверенностью утверждать что php не может быть говном. Просто запах неудачный.
Нравится мне Ваш сатирический подход к изложению :)

Теперь по теме. Давайте отставим эстетику немного в сторону и взглянем на картину в целом. Я думаю мы все понимаем, что не бывает самого лучшего инструмента, бывает инструмент наиболее подходящий для решения поставленной задачи. Именно такой наиболее подходящий инструмент и выберет умный, опытный человек. Однако, часто невозможно выделить самый наиболее подходящий инструмент, обычно имеется некоторое количество оптимальных в том или ином смысле решений (есть даже специальный раздел научный на эту тему — многокритериальная оптимизация).
Проиллюстрирую на примере:

image

Точки A, B, C и D — являются в некотором смысле оптимальными. Так вот, в разных ситуация какие-то критерии могут быть более приоритетными, какие-то менее приоритетными, именно это и позволяет из множества оптимальных решений выбрать одно единственное, но это не делает другие решения «менее оптимальными» в целом, это делает их менее оптимальными в данной узко-конкретной ситуации.
Так вот, PHP (точка B, например) — хорош, потому что он является самым оптимальным для многих людей и многих ситуациях, но Java (точка C) — тоже хорош, и Ruby (B), и Haskell (A). Просто посмотрите на картину в целом.

А касательно списка недостатков, тут на любой язык или технологию при желании можно много чего найти. Вот занятный пример:
Con: lwn.net/Articles/249460/
Pro: www.drdobbs.com/cpp/linus-and-c/229700143
Я разве сказал, что PHP нельзя использовать? Или что все, кто пишут на PHP — говнокодеры? Нет. Более того, я так даже не думаю. Каждому инструменту найдётся своё время, место и пользователь.

Я просто прокомментировал Ваше высказывание про «доходя до абсурдного … => PHP — говно». Ничего абсурдного я в этом высказывании не вижу, это объективный факт, и в этом легко убедиться если почитать приведённую мной ссылку. Но, разумеется, это не мешает использовать PHP там, где он «хорош, потому что он является самым оптимальным для многих людей и многих ситуациях», и, разумеется, есть много отличных профессиональных программистов использующих PHP по тем или иным причинам и пишущих на нём качественные приложения, героически преодолевая все трудности, которые на этом пути им создаёт используемый язык.

Что касается C++, то этот язык просто слишком переусложнён, отсюда и все Pro и Con. И да, идеального языка нет, у всех свои недостатки, etc. Но недостаткам большинства языков есть разумные пределы, а PHP находится далеко за этими пределами.
А что указывает на то, что Руби занял место PHP? То, что вы лично «перебежали»? :-)
Я как раз остался на пыхе. ;)
Вообще, конечно, програмированием должны заниматься исключительно специально обученные люди. Со специальными дипломами.
Иначе в отрасли будет кавардак полный. Каждый, кому удалось вывести форму в браузере, причислит себя к программистам.
Примеров масса.
Perl создал лингвист… Не каждый осилит…
Turbo Pascal (он же Borland) — автор — «недоучка» математик и саксофонист, и помощники у него такие же, официантка коктейль-бара и бывший владелец ресторана…
И чего этот язык в институтах (универститетах), умные дядьки преподают талантливым будущим программистам.? Последние на этом языке даже дипломы защищают.
Потом пинают «недоучек»…
Я вообще не понимаю к чему этот пост. Есть программисты разной квалификации и направлений. Каждый нанимает того кого хочет. Я не буду брать на написание граф. драйвера программиста под Django, точно так же не возьму программиста пишущего под систему для разработки веб приложения.
Вот у меня есть очень толковый друг, пищущий немыслимый код для винды, но для него сделать простой веб сервер это проблема, просто потому что он этим никогда и не занимался.

Каждый работает там где он нужен. Если толпа слабеньких программистов востребована, то значит они приносят пользу. А то что кто то взял на разработку сложного проекта зеленого студента, так это проблема не программирования и языков, а тупости и необразованности начальства.

ЗЫ: для примера гляньте на фотографию, фотографов уйма… от 10уе за сессию до 100к уе за сессию. И все зарабатывают, ибо просто занимают разные нишы.
Абсолютно согласен с вами. Помнится раньше хватало «клиентов», которые приходили в студию и просили сделать «копию вот того портала, который деньги гребет… готов заплатить 20 тыс. рублей». Отказ их фактически не останавливал, они просто искали дальше и находили, конечно. Рынок все расставляет на свои места.
Ничего не стоить менять только в той области, в которой уже всё безукоризнено отлажено и все проблемы решены.
Очевидно, программирование к такой не относится, а следовательно ей просто нужны новые люди с новыми идеями.

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

В статье цепанула фраза:
Конечно будет некий класс приложений, например бухгалтерское ПО, которое можно будет достаточно просто подкрутить при желании.

Сразу чувствуется, что статья является переводом слов специалиста из страны молочных рек и кисельных берегов. В наших суровых СНГшных буднях многие иностранные внедренцы (типа SAP-овских интеграторов) зубы ломают на бухгалтерии и на зарплате. К тому моменту пока техническое задание окончательно утверждено и готово к производству, из-за изменения законодательства нужно все переписывать. Проще, а главное на порядки дешевле, интегрировать с 1С и настроит обратную загрузку проводок. Тут уж скорее нужно говорить, что всякие примитивные MRP и CRM можно достаточно просто подкрутить :)
Мне кажется в этой фразе имелось ввиду именно прикрутить готовое бухгалтерское ПО, настроив выгрузку через xml или что-нибудь подобное, а не написание такового самостоятельно. Иначе это будет не «простенькая задачка», а адский ад по учету всего нашего законодательства
Автор из штатов и у них нет никакого адского учета, а только простенький GAAP (если смотреть с нашей колокольни). Максимум, это формулу подправить, коэфициентики заменить, пару статей сгруппировать или детализировать.

Мне сразу вспомнились знакомые украинские бухгалтера (женщины!), которые хвастались, что без всяких программистов в своих 1С версии 6 и в FoxPro-шных решениях могли задавать правила формирований проводок и подправлять под законодательство внешний вид отчетов.
Для всех есть своя ниша. Сайт-визитку может сделать любой, кто прочитал книгу %some_programming_lang% за 24 часа. Большой распределенный проект с хайлоадом — только тот, кто имеет многолетний опыт разработки.
Профессионал — уже не будет заниматься сайтами-визитками, так как ему это банально не интересно, а говнокодер новичок — не будет писать большой проект, так как прост не знает как это сделать, а если и возьмётся — то ничего хорошего из этого не выйдет.
Очень понравилась статья.
И здравые каменты, особо про то что профи уже визитки делать не будет и это так.
Я бы тебе плюсанул, чел, но нечем.
Пусть те, кто против упрощений в программировании — пишут веб-сайты на ассемблере
Искусство писать код замещено более эффективным умением Мастера — _не_ писать код, когда это не нужно. Хочет кто-то этого или нет.
Безусловно такую точку зрения разделают не все. «Больше кода, больше велосипедов и все будет шоколадно»
Sign up to leave a comment.

Articles