Pull to refresh

Comments 140

На мой взгляд все просто. Зарабатываешь программированием? Если да, то «профессиональный программист». Иначе «программист любитель». Ничего нового.
В данном случае, автору могли не платить за созданную им программу, но это могло сказаться на продвижении по службе и поднять материальное благополучие. Он полупрофессиональный программист?)
В данном случае, он явно ей зарабатывает. Значит, профессиональный программист.
могли не платить

не платили, не заставляли
Причём к уровню квалификации это не имеет прямого отношения.
В точку! «Многим нравится заниматься сексом, но немногие решаются заниматься им профессионально!» ;)
Для чего такие посты пишутся? Чтобы автора пожалели, похвалили, сказали что он очень умный и красивый? Я вот такого не скажу.
UFO just landed and posted this here

Браво! С удивлением наблюдал зашкалившую виральность собственной корявенькой заметки по теме https://habrahabr.ru/post/323460/


Кажется я понимаю, почему Минаев продал столько экземпляров повести о ненастоящее человеке.


Каждая моя попытка самоидентификации (а таковых было несколько) заканчивалась кризисом и последующим перерождением в новое качество. Полезное занятие, хотя болезненное.

пожалели

нет
похвалили

нет
сказали что он очень умный и красивый

нет

просто было очень интересно мнение профессиональных программистов
На самом деле всё просто. Программисты — они ведь разные. У Гугла, скажем, есть две похожие вакансии: software engineer (основаная задача: дизайн, разработка и создание программ) и application engineer (основная задача: работа с аналитиками для того, чтобы превратить требования бизнеса в технические решения).

Так вот на software engineer'а — вы и близко не тяните. На application engineer'а — вполне.
Тут очень зависит даже от части света. Если взять формальные требования и задачи человека, имеющего квалификацию инженера, учащегося по специальности «программное обеспечение» в России, то это будет как разработка, так и преобразование тех самых требований, потому что основная задача инженера в этом случае это как раз посмотреть, как организованы процессы на данный момент, найти изъяны, предложить и или реализовать какие-то улучшения средствами программной автоматизации.
UFO just landed and posted this here

А если косвенно зарабатываю этим? И не только деньги, но и уважение. Я операционно управляю предприятием оринтируясь на свою программу. А вот последний предложенный вами вариант мне понравился.

UFO just landed and posted this here
Большинство как-то так и начинали, разница только в том, что они потом всё-таки попытались систематизировать знания. Да, вы написали программу, но что-то мне подсказывает, что это трудноподдерживаемая лапша (если не так — заранее извиняюсь). Это, в принципе, тоже вариант создания программ, но большинство продуктов разрабатываются в команде и требуют некоторого понимания теоретических основ, как минимум ради эффективной коммуникации.

Из моей практики. Камрад лабал поделки на Delphi 3 для бухгалтерии с невероятной скоростью ни разу не задумываясь об освобождении памяти, мотивируя тем, что ресурсов и так хватит до конца рабочего дня.

Это, кстати, абсолютно логично. Никого не интересует, что делает система, обеспечивающая, например, биржевые торги, когда биржевые торги закрыты. Пусть перезагружается, пусть хоть питание серверам отключают, лишь бы во время торгов все было нормально.
Так же и поставить условие работы системы для бухов — «Раз в день перезагружайте компьютер» вполне нормально.

Для меня это было откровением. Из серии "вам шашечки или ехать".

Это, конечно, несколько забавно. Но вот недавно, для специфических задач, конечно, появился GC для JVM, который просто ничего не делает, чтобы не иметь издержек на сборку, когда heap большой.

Этот GC появился там скорее как эталон для сравнения, а не для реального использования.

Вот например. Не понимаю о чем вы пишите сейчас. Сейчас посмотрю, что такое GC и JVM. Любознательность — признак программиста?

А я, например, не понимаю почему вы у меня это спрашиваете...

Комментарии читают все. Этот вопрос не столько к вам, сколько ко всем и к себе в первую очередь.

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

Потому что это относительно узкоспециальные термины из мира программирования Java. Ну, в NET тоже есть такое. Оно никак не показывает/не отрицает «программистость» человека.
Разумеется, это очень специфичное применение, о чем я и написал. Но тем не менее, такое чудо есть.
Тронут статьей, мужик молодец!
Не каждый выпускник, с корочкой программист, напишет программу охватывающую все предприятие.
На мой взгляд, здесь влияет фактор неопытности. Опытный специалист видит весь объем работ и понимает, что для качественного выполнения нужна сильная команда. А новичок видит лишь самую вершину и просто работает над задачей, все больше погружаясь в нее, но не отступая, т.к. никогда не видит сколько еще предстоит сделать.

Что-то в духе
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно — он-то и делает открытие.
Как старый анекдот про большой алмаз и профессиональных ювелиров.
Достался в наследство одному мужику от жутко богатой умершей тётки большой алмаз. Ну, что с ним делать? Решил пойти к ювелиру. Тот внимательно осмотрел и воскликнул:

— Это — уникальный камень! Он стоит бешенных денег! А вдруг я что-то не так сделаю, вдруг ошибусь! Нет, не возьмусь я его делать, и не уговаривайте!

Пошёл мужик к другому мастеру. Тот тоже отказался, сославшись на те же причины. Пошёл к третьему. Им оказался старый еврей Циперович. Он осмотрел алмаз и крикнул мальчику, сидевшему в углу и обрабатывающему какое-то колечко:

— Моня, мальчик мой, сделай-ка вот этот камушек!

Мужик, с испугом:

— Послушайте, как вы можете доверять вашему юному подручному?! Разве вы не знаете, что это за алмаз?! Его отказались обрабатывать самые опытные ювелиры!
— Ша, ша, любезный! Вы знаете, шо у вас за алмаз и сколько он стоит. Я знаю, шо у вас за алмаз и сколько он стоит. А Моня не знает, и он таки сделает!

Я сам уговорил инвестора не тратить 15 млн. долларов на стартап, в котором был техлидом. :)

Желание расти и двигаться вперед. Желание постигать новое и утверждаться в уже достигнутом. Стремление решать нестандартные задачи и мыслить логически. Желание получать опыт и делиться им с другими. Желание творить… Вот признаки настоящего программиста.

Согласен. Вообще это признаки любого мужчины, стремящегося к самореализации. Это у нас в природе.

Не постесняюсь спросить, а почему это привязано к полу? Т.е. любая девушка/женщина, стремящаяся к самореализации уже не имеет этих признаков?
Нет, я так не считаю, но это совсем другая история.

Думаю «Остальные» — все же мужчины.
>>Могу ли я, хотя бы частично отнести себя к программистам?

Да. Не частично.

И не поверишь, но таких больше 50%.
А наличие диплома и владение терминологией не делает человека программистом.

"У меня есть фотоаппарат, я делаю снимки, которые нравятся людям, но я не знаю, как работает фотоаппарат, сколько лепестков в диафрагме моего объектива и почему из байонета виднеется зеркальце (Что такое байонет??) — могу ли я называться фотографом?"
Суть аналогии очевидна,- если ты делаешь продукт, который устраивает конечного пользователя, и при этом даже получаешь за это деньги, то КМК, ты можешь назвать себя программистом, трубочистом, кем угодно, лишь бы продукт был качественный (Правда, это понятие сильно размазано и не имеет четких границ, но думаю, мы в той или иной мере можем объективно оценить качество своего продукта).

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

ох, как же мы любим себя хвалить на хабре ).
Кто же он, настоящий программист?

Да никто, нет его.

Мне ближе определение "кодер". Можно еще "разработчик". Скромность украшает.

Архитектор-любитель может спроектировать себе дачу, применить лучшие и современные подходы. Профессиональный архитектор может случайно построить такой же дом.

Наблюдатель скажет — я не могу понять, кто это сделал. Предположим, что рынок домиков рухнул. В таком случае любитель не может прыгнуть на ступеньку выше, проектировать небоскребы. Архитектор-профессионал доучится, освежит знания и начнет зарабатывать на проектах небоскребов. Мало того, он сможет в команде разрабатывать санузлы, парковки, внешнюю оболочку, что угодно.

Сможет ли ваша программа быть поставлена на несколько предприятий? Продана как продукт и отдана на поддержку группе разработчиков? Возможно ли как-то оценить качество кода?

Профессионал существует в рамках рынка, если ваш рынок — это единственное предприятие, то вы профессионал в решении своих задач.
Программист — который свои проекты в GitHub выкладывает. Остальные — жлобы.
А если я листинги распечатываю и на забор клею, но вот гитхаба нет — это считается?
Нет. В этом случае Вы — типограф и маляр. Я, кстати, жлоб, как и большинство)
Не, ну это прикладное. А так-то текстами со всем миром поделился.
Ваш комментарий заставил меня грустно улыбнуться.
Не понимаю минусов по отношению к нему.
На Хабре серьезные пацаны, иронию не любят в пятницу 31. 31 — 13 в польской нотации)

Перефразируя Пруткова — Хочешь быть программистом — будь им

Если ты сам себя таким считаешь, так оно и есть.

Интересно, сможет ли автор пройти собеседование на должность программиста на открытом рынке труда? имхо это и есть ответ на поставленный в заголовке вопрос.

Уж что что, а оценка HRом подходит или не подходит человек на должность — одна из самых субъективных оценок.

почему HRом? как на счет непосредственного начальника? или вы думаете, что во всех конторах исключительно от HRa зависит, возьмут человека на работу или нет

Во-первых, собеседование с непосредственным начальником в крупной организации нынче редкость. Разделение задачи и все такое.
Во-вторых, это никак не отменяет факта субъективности и на хабре это уже не раз обсуждалось. Человеческий фактор всегда играет свою роль. Как объяснить такие ситуации, когда по одной вакансии человек собеседование не проходит, а по другой точно такой же проходит? За время, которое прошло между собеседованиями человек успел вырасти как специалист?
UFO just landed and posted this here
Я вот 25 лет работаю программистом C/C++ и не уверен пройду ли я собеседование хоть на какую-то должность программиста и смогу ли порешать их тестовые задачи. Вот даже тесты http://www.quizful.net/test для junior иногда не могу пройти.
Посетители клуба «Рыбаки», знают друг друга по клубу «Анонимные алкоголики» )
Значит всё таки есть такие как мы.
Если автор после того, как покинет свое текущее место работы попадет на собеседование в условное предприятие/условную контору, где программистов нет или у них примерно такой же уровень знаний как у автора, то пройдет. Проф-пригодность проверить будет некому.
сможет ли автор пройти собеседование на должность программиста на открытом рынке труда?


нет
почему? уже объяснил в своей заметке
умение составить запрос с LEFT JOIN мне не поможет
UFO just landed and posted this here
а может все-таки вы хотели бы быть хорошим программистом и заниматься именно этим?

нет

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

Умение пользоваться толковым словарем, навык не обязательный, но полезный.


pro·gram·mer\ˈprō-ˌgra-mər, -grə-\
noun
: a person who creates computer programs
Full Definition
: one that programs: as
a: a person who prepares and tests programs for devices (as computers)
b: one that programs a mechanism
c: one that prepares an instructional program
d: a person who plans or prepares entertainment programs Variants: less commonly pro·gram·er
First use: circa 1889

Любое корпоративное приложение может находиться только в двух состояниях: оно либо решает задачу компании либо нет. Третьего я не знаю.

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

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

Можно ли ее дальше расширять? Сможет ли ее поддерживать другой программист? Сможет ли эта программа использоваться за пределами компании автора? Ответить на все это сможет только сам автор.
Можно ли ее дальше расширять?

да
Сможет ли ее поддерживать другой программист?

да
Сможет ли эта программа использоваться за пределами компании автора?

в таком виде нет
Есть куча гпту, техникумов и вузов, чьи выпускники бьют себя пяткой в грудь крича «Я программист» и им никто этого не запрещает, при этом о программировании они не знают ничего даже понаслышке
UFO just landed and posted this here
Да, знаком с вашим сленгом. Не знаю, сможет ли кто-нибудь разобраться в моём коде или нет. Но, на самом деле это не очень важно для меня.
Если некоторые личности обижаются — значит они претендуют называться программистами, что в этом недалёкого? Код не просто же так пишется читаемым и расширяемым: есть опасность, что иначе работать он будет плохо.
И Вы тоже не обижайтесь…
По поводу самоидентификации — Вы перечитайте все свои комменты в хабре (их 36, если не ошибаюсь), там нехорошо пахнет (вроде shit, однако)
Нельзя с вами согласиться.
У любого программного продукта есть конкретные граничные условия эксплуатации и определённая степень гибкости и при желании можно выставить такие требования, что не останется ничего другого, как жмакнуть «New Project».

Я тоже не знаю зачем в коде строка implementation, однако я — программист. Наверное и вы тоже тогда? Успокойтесь и пишите код, самоидентификация отдельно а программирование отдельно.

Я и не волнуюсь особо по этому поводу.
UFO just landed and posted this here

Ну, слушайте, я вот знаю, допустим, несколько языков программирования, и ни в одном из них нет ключевого слова implementation (если, конечно, автор не перепутал с implements). Хотя я безусловно догадался бы что это значит, если бы увидел =)

Ничего не перепутал. Delphi.

А, ну вот Delphi я как раз не знаю =)

А к чему тогда ваш комментарий к статье в которой есть строка «Так я познакомился с Delphi7»?

Впрочем ключевое слово implementation ещё в Turbo Pascal 4.0 появилось, так что конкретно Delphi знать даже и необязательно…

Ну, так получилось, что с паскалем тоже не знаком. Как-то больше по С-подобным (джавы, свифты и прочие с ними)

Думаю, Хакинен не знает, какая посадка подшипников на вал у него в машине. Однако он гонщик. Ваше сравнение не совсем к месту.

Секундочку, вы правда считаете что если кто-то не знает Вашего любимого языка то он совершенно точно — не программист?
Я не для того чтобы спорить, просто уточнить хочу, вы правда так думаете?

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

К сожалению подобных программистов больше, чем хотелось бы. И не все они создают поделки, которыми пользуются только у них в компании…
UFO just landed and posted this here

Лучший разработчик, которого принял на работу был самоучкой со скромным набором инструментов. После автомобильной аварии проблемы с моторикой и речью, но любящая жена не бросила. Мотивация — хватит на пятерых.

Это называется прикладной программист — человек который решает конечную задачу.
Чем дальше развивается ИТ отрасль, тем меньше знаний требуется для использования программерских инструментов и это правильно, растёт уровень абстракции, приближаемся к тому чтобы говорить с компьютером на языке как можно более близком к человеческому (DSL навроде 1C). Глубокие знания того как оно работает внутри теперь нужны в основном системным программистам, которые создают эти инструменты. Просто в отрасли, со времён когда все программисты были системными, осталось мнение, что все должны знать алгоритмы сортировок и т.п.
Другое дело, как заметили выше, быть хорошим программистом — хороший прикладной программист должен писать понятный и расширяемый код, понятный это значит как можно ближе к человеческому языку в данной предметной области, а расширяемый это значит позволяющий добавить практически любой новый функционал без полной переделки или без копипаста и иных костылей порождающих ошибки в будущем.
Хотя знание того как оно работает внутри полезно для хорошего специалиста из-за протекающих абстракций, но, во-первых, знание это не обязательно должны быть слишком детальным, а во-вторых, можно быть прикладным программистом и без этих знаний и это тоже востребовано.
Эм, я всегда считал и считаю что таких как ТС около 90%.

Бравирование невежеством — это признак воинствующего дилетанта
Профессионал демонстрирует вежество или стремление к нему
В первом случае он конченный профессионал (в смысле final), в втором развивающийся (в смысле developer).
Для сведения невежество — это липкое вонючее болото, а вежество — прозрачная до ясности высото

Подставлю ваши переменные в ваш код.
Бравирование липким вонючим болотом — это признак дилетанта. При всей своей завышеной самокритичности, не вижу как применить это к себе.

Есть казахская пословица (привожу на русском)
Когда два мудреца спорят — их слова, как горы, высоки.
Когда мудрец с дураком спорит — они на врагов похожию
Когда два дурака спорят — ничего не меняется.


Думаю вы сделаете удобную для себя подстановку (я же свою)

Какой уж я вам враг. Да и на мудреца я не тяну. А вы под 3-й вариант не подходите. Мораль. Народная мудрость, она в ауле хороша. Ведь не каждая баба коня остановит.

Что это за программист, который не знает, зачем в коде строка implementation… я и не хочу знать всего этого

Вот прямо-таки совсем неинтересно? :) Кстати, чего-то подобного (модулей) очень не хватает в C++.

Вы раскусили меня. Я знаю пару английских слов. Поэтому implementation совсем не наскальная надпись для меня. Да и перед написанием публикации я ходил по вашей ссылке. Этот принцип я использую везде. Беру/узнаю/изучаю/пробую только то, что мне нужно конкретно сейчас. Это позволяет невероятно расширять кругозор, не засоряя его.

Это конкретно-операционный подход. На ступеньку ниже магическое мышление (культ карго). Уровнем выше — формальное оперирование (создание моделей исходя из понимания общих принципов с учётом перспективы развития). Насколько я понял, Ваши задачи и технологическая среда, в которой работают Ваши решения, позволяют оставаться в рамках конкретно-операционного подхода, т.е. вполне хватает силового, горизонтально-кругозорного расширения (грубо говоря, школьнику третьего класса проще посчитать площадь треугольника по квадратикам на миллиметровке, чем вникать в геометрию Евклида, а такому же школьнику постарше — с хорошей памятью — проще запомнить формулы, чем разбираться, откуда и как они выводятся). Хотя, даже по тексту статьи видно, что Ваше приложение потихоньку, на ощупь выкарабкивалось из горизонтального растекания (Excel -> Delphi + dbf -> MySql), пару раз перерождаясь в новом качестве. Следующий этап — удалённый доступ, распределённая аллокация, микросервисы :).
Следующий этап — удалённый доступ

пока не вижу необходимости
распределённая аллокация

о таком вообще не слышал, прочитал, перевариваю
микросервисы

ушёл от этого, не прижилось, не удобно в рамках моего предприятия

В целом с вами согласен, но вот со следующим этапом вы как-то хватили лишнего… Микросервисы — это архитектура для бакенда, а тут еще я не увидел упоминаний о разделении мега-программы на клиент и сервер!


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

а не обращаться к общей базе за каждый чихом

А если это не играет особой роли, если система справляется?
У нас около 20 раб мест (производство, служба снабжения, бухгалтерия, КТО, менеджеры).
У каждого клиент обращается к MySQL серверу, за каждым чихом.
Наблюдаю за всем этим и не вижу пока никаких проблем.
Но видимо где-то есть предел развития, после которого мне придётся воспользоваться вашими наводками. Спасибо вам за советы.

Тут предел не столько в объемах информации (уж с этим-то любая нормальная СУБД справится, если схему нарисовали правильно и нужные индексы развесили) — а в отзывчивости интерфейса. Пока программа работает в парадигме "загрузить данные — отредактировать — сохранить" — проблем с СУБД нет.


Но если появляется задача реагирования на события или оперативного мониторинга каких-либо показателей — то СУБД внезапно оказывается очень медленной средой передачи данных.

реагирования на события или оперативного мониторинга

Да, я держу на заметке этот момент. В последней версии программы увлёкся созданием виджетов для рабочего стола (см. картинку в публикации). Раз в 30/60 сек они обращаются к базам SQL запросами за актуальной информацией и переварив её выдают текущее состояние дел. Теперь я понял про какой развитие вы говорите.
Программиста определяют написанные им программы.
Вы — самый настоящий программист.
А по поводу незнания некоторых вещей, так целая куча программистов постоянно что-то спрашивает на StackOverflow

Здесь есть мнение, если программа здорово справляется с тем, для чего она создана, но написана "говнокодом", то это не считается. Значит человек не програмист.

Ох, да забейте вы на снобизм и самовозвышение некоторых товарищей.
Видели бы вы исходники некоторых популярных продуктов, WordPress например.
Исходники не видел/не смотрел, а вот продуктом довелось воспользоваться. Мне, как обычному пользователю понравилось, ощущение, что сделано для людей, всё просто (не могу сказать того же о Bitrix).

Нет такого мнения. Есть мнение что говнокод:


  • является источником багов (увеличивает цену отладки и тестирования);
  • увеличивает цену поддержки программы.

Если программа уже отлажена, протестирована, работает и не требует доработок — никому не интересно что там внутри.


Но тут есть две тонкости.


  1. говнокод очень редко находится в состоянии "отлажено и не требует доработок";
  2. выкладывать говнокод в открытый доступ — дурной тон, потому что сама идея открытого кода подразумевает доработки.
На самом деле вы упускаете из виду один весьма принципиальный момент: пока программа разрабатывается одним человеком — она вполне может содержать в себе кучу говнокода и при этом вполне себе нормально работать и модифицироваться. Ну просто потому что её разные формочки будут напрямую лазать в базу данных и там всё править без «всяких протоколов и схем», но так как это писалось одним человеком — то это будет сделано всегда одинаково.

А вот как только изменения туда начинать независимо вносить человек 10… вот тут-то все «видеоэффекты» и начнутся.
А насколько предприятие зависит от вашей разработки?
И сможет ли всё это работать и развиваться без вас?

В ней вся жизнь предприятия. Она везде. На нее подсажено 90%. Остальные 10% — 1С. Если ее вдруг не станет, для ведения бизнеса остануться ручка, бумага и Excel. Без меня работать будет. Нужно только за базами данных ухаживать. Развиваться без меня — нет.

Можно ещё вопрос?
Это ваш личный бизнес или чей-то, а вы наёмный работник?
Я не могу ответить на этот вопрос. Возможно мои коллеги увидят, а им знать не обязательно все тонкости.

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


Современные программы сделали из пользователей потребителей-кнопкодавов, а раньше не было так.


Считаю, что программист это значительно больше, чем то что описал автор. Мой отец сам себе построил дом, но от этого он не стал строителям. И любой строитель из тех что я знаю, говорит о том какие ужасные решения заложены моим отцом при постройке. Сейчас дом выполняет свои функции, но лет через 5 начнутся проблемы. А лет через 10 будет проще и дешевле снести и всё построить заново. А может, если не хватит ресурсов, придётся жить и мучиться. Именно поэтому, — насколько качественно и гибко твоё решение со временем, определяет тебя как профессионала, человека профессии, — мой отец не строитель, а автор не программист. Но молодец и заслуживает уважения.

А хрущевки создали строители или нет? Вроде сносить собираются. А зачем Microsoft выпускает новые ОС? Неужели Win98 не гибко и не качественно? А ведь в 98 было все иначе. Сейчас легче быть профессионалом. Сейчас доступны знания. Я например смогу построить дом сам. Мне только проект купить.

Хрущевки отстояли 60 лет, и ещё бы простояли. Но в их фундаменте не заложена достройка этажей. Да и эту аналогию считаю некорректной.


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

Невозможна достройка этажей? А где тогда здесь гибкость? Но ведь строили их строители. Что касается моей программы, то за более чем 10 переписывал ее около 4 раз. И с каждым разом новая версия живет все дольше и дольше. Поэтому озвученные вами принципы, все более мне близки. Приближаюсь к постройке своего дома. А ваш отец заслуживает уважения, семейный дом — это великое достижение.

Невозможна достройка этажей? А где тогда здесь гибкость?
Что заказали — то и построили. Почему у аэропорта Шереметьева столько терминалов? А потому что в своё время решили экномию устроить и выбрали проект «подешевше» — но без расширяемости. То же самое — и с «хрущёвками».

В программировании мы можем себе позволить устраивать «гибкость» потому что современные компьютеры — чудовичщо, невероятно, мощны. Какая-нибудь Undertale имеет графику, сравнимую с Commander Keenом — но требует на три порядка более мощного компьютера. Да-да, не «в три раза более мощного компьютера», а «на три порядка (то есть в тысячу раз) более мощного компьютера».

У производителей хрущевок такого запаса, как бы, не было…

Когда-то я рисовал графику в Paint. А теперь использую Photoshop и Sketch. И проблема не в том, что код Paint не гибок, а в том что:


  1. У него другая сфера применения
  2. Нерационально развивать его до уровня Photoshop.

Также и с хрущевками. Есть много способов усилить фундамент, нарастить его в ширь, чтобы увеличить плоскость основания и достроить этажи. Но это нерационально и дешевле снести и построить новые дома.


Может это ваш случай, но, чаще всего в разработке ПО полное переписывание софта — это что-то из ряда катастрофы.

Может это ваш случай, но, чаще всего в разработке ПО полное переписывание софта — это что-то из ряда катастрофы.
Ничего подобного. Любой «живой» софт — переписывается неоднократно, но… по частям. А катастрофа — это попытка снести всё к чертям собачьим и сделать всё с нуля.

Создание современных программных систем лучше всего сравнить не со строительством дома (где, как правило, один архитектор и всё делается по типичной каскадной модели), а со строительством города — и людей, в общем-то, задействовано сравнимое количество и проблемы те же.

Тут у нас новая магистраль, но… вьезды-выезды пока недоделаны, потому весь трафик пошел в обьезд. А тут — новый монорельс, но поскольку пропускной спосодности не хватает, то под ним ездит автобус. И так далее и тому подобное.

А дальше — вопрос настоящести/ненастоящести программиста смешон: да — есть архитекторы, которые могут грамотно спроектировать микрорайон, а есть такие, что не могут. И что — те, кто не могут быть Главным Архитектором Москвы — уже ненастоящие, что ли? А люди без образования, строившие Собор Василия Блаженного — они архитекторы или нет?

По моему не в названии дело. Главное — понимать чего ты можешь, чего нет. И не браться за строительство многокилометрового подвесного моста если у тебя опыта — только строительство семейного домика…

Вопрос настоящести не смешон. Знаете, я внимательно вчитываюсь в каждый ответ, оставленный всеми вами. И теперь я точно знаю. Приносишь пользу людям — ты настоящий. Программист, инженер, архитектор и человек.

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

Но тут — аналогия с городом проявляется черезвычайно выпукло: снести дом и отстроить на его месте другой — нет проблем. А снести полгорода и заново проложить все коммуникации и дороги… редко когда кончается добром.

Проект, сделанный одним человеком, как правило, переписывается «с нуля» без проблем. И получается только лучше. А вот большие проекты — нет. И понятно почему: если проект переписывает тот человек, который делал его изначально — то он реально помнит все крупные грабли и может их избежать. А если в проекте участвует человек 100 — то такого понимания нет, а потери от переписывания — есть.

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

Я закончил специальность оптика (оптические системы и приборы), но еще во время учебы меня взяли на профильное предприятие программистом, за это время «научился» программировать на ассеблере, даже местами для ПЛИС (ни одного диплома нет, так что это пустые слова), в свободное время помогаю другу разрабатывать правила для ДнД и сам же пишу компьютерную игру по этим правилам (моделируя нужные модели в 3ds Max)…
Так вот, к чему я. Определяться в жизни? А зачем?
Ваша точка зрения имеет место быть. Не всем требуется искать смысл жизни. Некоторые просто наслаждаются самой жизнью.
Программист — человек, создающий программы.
Программист выстраивает цепочку событий, используя доступное множество ресурсов.
Программы бывают компьютерные, музыкальные, поведенческие, обучающие и т.д.
Программа начинает создаваться в тот момент, когда человек определяет начальную и конечную точки процесса.
И если менеджер говорит «у меня есть товар, хочу его поменять на деньги» — он превращается в программиста и строит алгоритм этого процесса.
Для меня программист — это не каста и не профессия. Программист — это состояние ума.
Если совсем подключить философию бытия, то вы правы. Возможно такого ответа как ваш, мне и не хватало. Я согласен с вами.
Проработала разработчиком ПО на крупном предприятии 13 лет. Иногда мне кажется- я с этим родилась. Хотя я и себе самой не всегда могу объяснить… как это, но программы же созданные мной существуют же. Это как дар писать стихи, только математическими символами.
Мне кажется, что писать стихи сложнее, а хорошие стихи — удел избранных. Попробуйте написать что-нибудь. А вообще приятно увидеть женское мнение здесь.
По моему вы программист больше чем многие) Не каждый выпускник вуза может программировать, и не каждый кто работает программистом может программировать)
Никто за шквалом критики почему-то не заметил, что автор, не мудрствуя лукаво и не будучи семи пядей во лбу, с помощью элементарного объектно-ориентированного программирования создал самый что ни на есть яркий пример именно прикладной программы. И что программа эта, несмотря на всю её кажущуюся простоту и бесполезность, судя по всему, отлично решает свои задачи и сильно помогает в организации работы, пусть и в рамках всего лишь одного предприятия. Что же ещё бизнесу нужно, если не «быстро, просто, эффективно»?
Зря вы так, нет здесь особо критики. Все по делу.
автор, не мудрствуя лукаво и не будучи семи пядей во лбу

за это конечно спасибо
за это конечно спасибо


Прошу прощения, если я неправильно понял Ваши слова в Вашей же статье:
Задайте мне любой, самый простой вопрос из области программирования. И я вам не смогу ничего ответить.
Да нет, всё хорошо. Я просто не успел переключиться, когда писал ответ. Вы имели ввиду меня как программиста, а не как человека. Программист не семи пядей во лбу, да это про меня.
Как по мне так, программист — это обучаемый человек, который в своей работе использует компьютер с инструментом (будет немного узко), называемый язык программирования! Так вот, вы скорее программист-любитель) Обычный такой) Ленивый) Человек, которые готов ради того, чтобы полениться: изучить язык и среду разработки, написать программу и всё с помощью неё автоматизировать =)
Только вы обратили внимание на слово «лень». А это был один из ключевых моментов в моей заметке.
Склоняюсь считать автора статьи инженером, которому в руки дали инструмент автоматизации Delphi7.
Из всех комментаторов, вы ближе всех, кто прочувствовал мою ситуацию.
Только не дали инструмент. Я сам беру.
Ближе всех, т.к. я тоже инженер-конструктор, но занимаюсь программированием. Программистом себя не считаю, не вдаюсь во многие тонкости типа implementation и т.д. Но периодически приходится кодить на Delphi, vb6, c++, php, sql (не знаю, относить его к программированию или нет?).
У меня в трудовом договоре написано «инженер-программист» :). Кстати, по этой логике получается, что «чистый» программист — это тот, кто разрабатывает программно-инструментальный софт (компиляторы-интерпретаторы, IDE, фреймворки и т.п.).
Sign up to leave a comment.

Articles