Pull to refresh
14
0
Дмитрий Павличенко @godlin

User

Send message
Да я, в общем, просто кратко изложил мысль.
Естественно, при возможности полной обработки графиков вождения, следует ориентироваться не на водителя, а именно на манеру вождения. Т.е., например, можно выявлять в графике участки с бОльшим/меньшим количеством большИх вторых (ну, и первых) производных и соотносить их с количеством аварий за выделенные периоды.
Хм… Навеяло мысль: наверное, было бы круто выяснить связь между манерой вождения и количеством аварий — правда ли, например, что тот, кто плавнее разгоняется и тормозит, реже в аварии попадает.
Слова не отрока, но — мужа ;)
Что Вы зазнались и что Вам еще учиться и учиться. :)
Независимо от того, что именно Вы для себя решили, это кое-что говорит о Вас как об авторе статей. :)
Нет, я умею пользоваться поисковиком.
Я имел в виду, что в подобной статье, следует давать хоть какое-то определение объекту обсуждения, чтобы статья имела целостный вид. Ведь целевая аудитория — не только те, кто уже знает, что такое БЭМ.
Автор, хоть бы расшифровал бы разок, что тако БЭМ…
А то — БЭМ-БЭМ-бах-бах… ;)
Ага, фраза «Дай позвонить!» начнет преобретать новый оттенок…
Спасибо, я поковыряюсь!
Но я имел в виду стандартные средства в поставке с ОС, а не левые местами сомнительные решения :)
Когда холодно — скукоживается, а когда жарко — встаёт? ^_^
Ты его натираешь, а он — встаёт? O_o
Фалличненько…
Можно будет, интересно, когда-нибудь подключать девайсы через WiFi?
Воткнул мышку в комп, а он через вай-фай передаёт сигнал на телефон
Хм… А что, если вообще любым теплом?
Приходишь на работу, кладёшь телефон рядом с собой, и на него — чашечку горячего кофе. Или… «телефон-пепельница»! Или кладёшь его в горячую воду на часик — зарядится и помоется заодно! Телефон-мочалка — брать с собой в ванную. Еще можно на горячую батарею класть. Еще под мышку, когда болеешь — заодно температуру пусть определяет.
Так и представляю себе космических навигаторов будущего…
Шарообразные существа с четырьмя руками (нижняя пара несколько менее функциональная), огромной лысой головой и маленькими глазками. Они всю свою жизнь проводят в космосе, поскольку не приспособлены к гравитации и не могут спускаться на планеты. Они идеально ориентируются в пространстве. Практически не потеют, потребляют мало воды. Они крайне мягкотелы и поэтому пользуются в основном нейроинтерфейсом для управления своими аппаратами. Половые признаки сильной редуцированы. Обожают повисеть за бортом и полюбоваться открытым космосом.
А потом окажется, что они сгибаются в кармане рубашки…
Когда уже телефоны гибкими делать научатся?
Согласен с Вашей позицией. Совсем недавно я пытался похожую мысль довести в аналогичном топике на Хабре :)
Не получилось. Люди искренне не понимают, почему неограниченное авторское право — это зло и тормоз экономики.
Тогда вы бы встретились на концерте Баха, а потом всю ночь играли бы в шахматы и говорили об английской поэзии 17-го века.
В общем, эту ветку я тоже закрою, потому что вижу, что Вы настолько же упёртый, насколько и я. Однако Вы готовы воспринимать только то, что отвечает Вашему личному опыту, а остальное отбрасываете как невозможное. Я не спорю, что Ваш вариант, в принципе, работоспособен, но, во-первых, он не самый эффективный, а во-вторых он только один из бесчисленного множеста.

За сим позвольте откланяться. Спасибо за дискуссию. Удачи! :)
Я правильно понимаю, что если я напишу примерно так: «я знаю 1001 1Сника, который из деревни поднялся до зарплаты в ххххх, а сишников не одного» то я выиграл?

Я тогда скажу, что знаю 501 такого 1С-ника, 501-го дельфиста, 501-го php-шника, 501-го C#-ста, ну, и прочих, с похожими достижениями. Т.е. я с Вами соглашусь и мы оба выиграем :)

Человеку, отлично знающему PHP даже спецом подкидывали задачки, но он все их заваливал, потому что не знает элементарной предметной части.


Знание PHP не делает человека хорошим программистом. А если проект «заваливился» просто потому, что программист написал «RUR» вместо «руб.» — это что-то не так с головой у заказчика, а не у программиста.

все они так или иначе пришли к тезисам моей статьи.

Среди моих знакомых таких людей почти нет. Как будем мерять? :)

И каждый, кто выучил С++ точно так-же через год начнёт грести бабло.

В стотысячный раз я не устаю повторять: не знание языка делает программиста программистом, а умение моделировать бизнесс-процессы в терминах программ.

. Статистику по зарплатом поднимем и кол-ву выпускников или опять отмажемся абстрактными фразами?

Окончание ВУЗа не делает из человека программиста. Далеко не все, окончившие ВУЗ по программистской специальности, в принципе способны стать программистами. Особенно девушки.
А уровень зарплат просто соответствует среднему уровню выпускников.

Так какие критерии студентам то надо развивать?

  1. Моделирование. Сюда входит знание алгоритмов сортировки, нейросетей, ООП как такового и т.д., т.е. все универсальные программистские навыки.
  2. Оценка сложности задачи и необходимых трудозатрат. Основные проблемы, с которыми сталкиваются программисты любого уровня, связаны с неверной оценкой сложности, что приводит к срывам сроков и невыполнению проекта.
  3. Самообучение. Одним из главных навыков, которым должен овладеть выпускник любого вообще ВУЗа, это навык поиска и изучения информации по выбранной теме. После ВУЗа тебя никто особо учить не будет, по большей части тебе придется собирать знания по крупицам из интернета/книг. Сюда же входит навык использования поисковых систем для нахождения требуемой информации.
  4. Кругозор. Необходимо постоянно расширять свой кругозор, читать специализированные ресурсы, следить за новостями индустрии, вникать в то, как работают вещи, которыми ты пользуешься, выяснять, почему небо голубое, и как работает эволюция. Этот и предыдущий пункт я бы рекомендовал вообще всем людям, но программисту, как представителю интеллектуальной элиты, они просто обязательны к выполнению.
  5. Извлечение данных из эксперта. Этот особый навык так же один из ключевых для программиста. Эксперт в предметной области как правило ни бум-бум в программировании/моделировании. Он будет объяснять всё своим «птичьим» языком, а задача программиста будет в том, чтобы формализовать знания эксперта до уровня информационной модели, причем независимо предметной области. При этом формализировать требуется только те знания, которые действительно необходимы для реализации модели.
  6. Знание языка программирования. В общем и целом тут не важно, какой именно язык изучать. Главное, чтобы в нём можно было реализовывать стандартные модели. Очень большим плюсом знание двух языков разных парадигм. Скажем, Паскаль и Хаскель. Или Лисп и C#.
  7. Понимание работы реляционных БД. Во многих, даже маленьких, проектах требуется работа с БД. Этот навык не обязателен, но всегда будет очень большим плюсом.
  8. Хорошее понимание математики. Программист без знания математики — это как медик без знания анатомии. Т.е. он, конечно, сможет выполнять определённый род задач, но в серьёзных проектах ему делать нечего (разве что в качестве быдло-кодера).

Возможно, я что-то забыл.

Приходит студент, говорит «сейчас за 2 недели сделаю простую CRM систему» (это тоже личный пример), а по окончанию срока либо исчезает, либо виновато сообщает о продлении срока.

Эта проблема связана с отсутствием
1. опыта моделирования
2. опыта оценки трудозатрат

Программист сначала просит ТЗ, либо пишет его сам. Затем разбивает ТЗ на части, которые может оценить по времени, выявляет участки, относительно которых он не может дать оценку в связи с нехваткой информации или внешней зависимостью, которую нельзя предсказать, уточняет ТЗ так, чтобы минимизировать количество неопределяемых участков, затем говорит: «Вот это и это я сделаю в такие-то сроки. Вот на эти пункты мне еще понадобится столько-то времени для уточнения деталей, после чего я смогу дать их оценку по срокам. А вот по этому пункту я вообще ничего не могу сказать, потому что это завист от провайдера/погоды/вашего эксперта/божественной воли.» И только после согласования ТЗ и сроков он приступает к программированию. А студент просто сразу взял на себя слишком много без предварительного моделирования.

Этот талант давно формализован, соответственно его можно выучить и преподать малообразованным.

Программирование и математика формализованны настолько, что дальше некуда, однако талант всё равно требуется.

Низкая цена предложения не редко выигрывает у умения подать себя.
Далеко не всегда. Точнее почти ни когда.

На фрилансе — очень часто. Вы, полагаю, просто не в курсе дел.

Ни когда не найдет, пока не подтянется в предметной области. Либо всегда будет работать за идею

Найдёт вообще без проблем, а в предметной области, если надо, очень быстро подтянется.

Да-да, конечно. Вы хоть раз пытались объяснить программисту, отлично знающему все средства разработки отличие БДР-а, от БДДС-а?


Предполагаю, отличие в том, что БДР отражает внешние финансовые потоки (на входе и на выходе из компании), а БДДС отражает движение внутренних финансовых потоков (краем глаза заглянул в Википедию).

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

А то ведь Вашим языком можно и выдать: «шанс стать олигархом есть у всех». Смешно?


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

В программировании так-же шансы очень разные в разных случаях.

Да. Полностью согласен. Если у тебя есть талант к программированию — шансы у тебя очень высоки. Если нет, то лучше меняй профессию.

Приведите пример, если не трудно, где важно знание, например, С#, а не предметной области и за это готовы платить деньги.


Я приводил уже Вам такой пример: торговый бот, которого я писал — там было важнее знать именно C#, чем предметную область.

Я не знаю с кем Вы учились, но более чем уверен, что большинство перешло в смежные от программирования среды.

Парни — подавляющее большинство остались программистами, либо, поработав программистами, стали аналитиками.
Девушки — да — в основном ушли в смежные профессии, что не удивляет. Девушкам программирование даётся сложнее.

А в другой сфере в джентельменский набор входит знание закрытия месяца. В третий набор входит особенность работы памяти в космосе.


С системами авторизации каждый (99.9%) программист работает ежедневно в качестве пользователя, а «закрытием месяца» занимаются единицы и «памятью в космосе». Трудно придумать более плохое сравнение.

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

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

Я только по памяти могу набросать с пару десятков проектов, где эта информация вообще не нужна.

Вы, похоже, не поняли мою мысль. Я говорю даже не о том, чтобы знать внутренние алгоритмы поисковых систем, а об умении работать с ними в качестве пользователя. Этот навык обязателен.

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

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

Я не спорю, что программист со знанием некоторой предметной области будет востребован в этой самой области, но высококлассный программист без специфических знаний в какой-либо предметной области будет востребован вообще в любой из них по причине его способности к быстрой адаптации и моделированию.

Вот тонкости консолидации информации надо знать, а проверку емэйла нет.


Вот тут полностью согласен, ибо первое — это элемент моделирования, а второе — просто справочная информация, которую легко найти в интернетах.

Мы когда формализовали процесс приёма ТЗ у заказчика, моделировали много ситуаций и везде одно и то-же — даже программист программисту не сможет составить стопроцентное техническое задание.


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

Вы лично по моему мнению, под статусом «хороший программист» подразумеваете человека, знающего что-то конкретное из предметной части. Например, метод определения корректности емэйла.


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

Повторю в очередной раз (нудным голосом): основным навыком программиста я считаю умение смоделировать любой бизнес-процесс при наличии эксперта в предметной области. Инфомация вида «метод определения корректности емэйла» является справочной, так же как и различие между БДР и БДДС. Информация вида «устройство системы авторизации» входит в ежедневный рацион любого пользователя интернет, поэтому непонимание программистом принципов авторизации можно считать показателем уровня интеллекта данного программиста. Информация вида «шаблон проектирования 'фабрика объектов'» и «алгоритм quicksort» является частью базовых знаний хорошего программиста и обязательна к изучению.

именно поэтому у нас столько гастарбайтеров в стране.

Предлагаю не скатываться в политику.

Это не политика, а экономика.

Где определение этого мифического «нормального программиста»? Не надо пользоваться субъективными определениями.


Ну, давайте формализуем:

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

«Хороший программист» — это такой, который может всё то же самое, что и высококлассный, но менее эффективно и с более низким качеством.

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

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

так или иначе работать по специальности

Т.е. использовать конкретные знания? И программирование ли это?

Если ты учишься на программиста, то «работать по специальности» означает «работать программистом».

Где нужны конкретные предметные знания и программирование как вспомогательное. Или у Вас есть другие примеры? Я вот сколько научных работ видел в самых разных отраслях, везде программирование было второстепенным.


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

Можно взять работы, связанные с другими предметными областями.

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

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

Или, вот: написать систему формирования и применения патчей к существующей медицинской системе (МС). Предметная область — не медицина, как ни удивительно, а сама МС как таковая. Собственно, для реализации требуется только знать, как устроена система хранения файлов в данной МС, как различать версии, и как их копировать, не нарушая целостности. Работа на 95% программистская, без углубления в предметную область. А знания по предметной области легко достаются у администраторов системы.

Это всё реальные выполненые проекты. Где тут специфические знания предметной области? Правильно, у экспертов. Программистам они не понадобились.

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

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

Очень долго писал. Жуть… :)
Уверяю, почти ни кто не знает основных принципов.

Я таких людей (среди программистов) не знаю.

Многие как раз считают основой торговли, это «сделать сайт и как попрёт...», хотя костяк совсем в другом.

Я таких людей (среди программистов) не знаю. Недоучек-второкурсников за программистов не считаю.

Мне кажется считать большинство дураками как минимум глупо

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

Ни когда не думали, почему многие очень опытные и образованные люди тратят на эти действия годы, а у Вас всё так очевидно?

Всё очень просто: опытные и образованные люди работают над сложными проектами. Однако, надеюсь, и Вам очевидно, что простых проектов всегда больше, чем сложных. Для простых проектов порог вхождения обычно очень низок.

Может всё-таки Вы немного не правы и понятие «у кого с головой всё в порядке» не более чем бессмыслица или отговорка при тупиковой ситуации?


Нет, я сталкивался с определённым количеством людей, у которых реально проблемы с программированием/моделированием — все они либо замкнутые в себе «аутисты», либо люди, которые вообще не представляют, как они сюда попали. Вот такие обычно уходят в смежные профессии. Чтобы быть программистом (а не быдло-кодером), надо иметь определённый кругозор и способности к моделированию. В тупиковую ситуацию может попасть даже самый сильный программист — это вообще ни о чём не говорит.

Может быть Вы неявно используете свои знания как «это же очевидно», а не будь у Вас их, Вы бы даже не взялись за эти проекты?

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

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

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

Т.е. Вы подтверждаете тезис из статьи про то, что предметная область важнее знания языка программирования?


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

Для кого-то предметная часть, это знание складского учёта, для кого-то, это знание «подводных камней» численного решения формулы Ламе


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

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

Information

Rating
Does not participate
Location
Ярославская обл., Россия
Registered
Activity