LINUX.ORG.RU
ФорумTalks

Вот и выросло поколение ...

 


2

2

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

Я даже не знал, что ответить … - всегда думал что для программирования в приоритете математическая база, а не «обучение»


Математическая база делает тебя эффективным самоучкой.

Но один год численных методов с общим числом написанных программ меньше 10 за обучение программированию считаться не может.

Хотя бы потому что программирование - это не только красно-чёрные деревья и методы вычисления обратной матрицы.

alpha ★★★★★
()
Ответ на: комментарий от deep-purple

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

+1 Для программирования важна логика и элемент высшей математики Теория вероятностей. Если человек может быстро перебрать все варианты костылей и выбрать нужный, то его уже можно считать программистом.

Я даже одному ЛОР'овцу набылокодил простую программу. Мехмат не знаю. Только не знаю пользуется он ей или нет...

xwicked ★★☆
()
Ответ на: комментарий от xwicked

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

Поржал. Класно сказано.

HIS
()
Ответ на: комментарий от HIS

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

vaddd ★☆
()
Ответ на: комментарий от alpha

программирование - это не только красно-чёрные деревья и методы вычисления обратной матрицы

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

deep-purple ★★★★★
()

Что-то ты гонишь, даже 25 лет назад было программирование, теория численных методов, памяти правда давали килобайт

ilovewindows ★★★★★
()
Ответ на: комментарий от vaddd

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

Недавно посрался с шефом (но щас все норм). Он гонит, ибо сверху сроки, а я торможу, ибо архитектурные касяки просто лютые. И ведь он согласен с моими доводами. Тщем пришлось успевать в сроки делать без касяков, но увы на костылях. А всё потому, что я не присутствовал на обсуждении архитектуры. Теперь приходится плавно заменять костыльные подпорки на нормальный монолит кода.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Оно не должно пригождаться само по себе именно в том виде в каком изучалось. Это иллюстрация идей и проблем в вычислительной математике в противовес классической.

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

alpha ★★★★★
()
Ответ на: комментарий от PolarFox

Да ты мажор! Я комп впервые только в армии увидел. А бейсик был из журналов наука и жизнь, где некоторые программы на кастрированом сюборе не работали и их приходилось адаптировать.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Теперь приходится плавно заменять костыльные подпорки на нормальный монолит кода.

И как ни странно, в экономическом смысле такая работа эффективнее.

vaddd ★☆
()
Ответ на: комментарий от alpha

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

ilovewindows ★★★★★
()
Ответ на: комментарий от deep-purple

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

PolarFox ★★★★★
()

А разве научиться программировать можно в ВУЗ-е? Я почему-то думал, что только дома можно обуздать кодинг.

CryNet ★★★★★
()
Ответ на: комментарий от deep-purple

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

vaddd ★☆
()
Ответ на: комментарий от Zhbert

В программировании у меня аналогичный опыт.

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

WitcherGeralt ★★
()
Ответ на: комментарий от deep-purple

Это расточительство времени. Не лучше ли натравить программистов на другой продукт?

Это если другой продукт имеется. А если и имеется, не факт что его не придётся делать по такому же принципу.

PolarFox ★★★★★
()

Программист и математик - это разные вещи, которые могут вообще не пересекаться ни разу

stevejobs ★★★★☆
()
Ответ на: комментарий от alpha

Хотя бы потому что программирование - это не только красно-чёрные деревья и методы вычисления обратной матрицы.

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

stevejobs ★★★★☆
()
Ответ на: комментарий от HIS

В процессоры даже специально введены аппаратные команды десятичных вычислений.

Они не для этого введены. Это тяжёлое наследие прошлого (с двоично-десятичным представлением проще делать ввод-вывод циферок на тупых устройствах).

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от HIS

после предложенного мной паттерна типа callback функции и например организации эвентов он спросил знаком ли я с паттерном DAO… Я забыл как эта хрень расшифровывается тогда (А JPA сука чем тебе не DAO который мы минут 5 обсуждали). Вообще DAO это даже не паттерн - это фреймворк.

С тамим апломбом и уверенностью нести такую чушь — это восхитительно!

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Я говорю что не вникаю обычно в расшифровки. Просто прихожу и делаю нужную работу. Мне не интересно запоминать расшифровки. Мне интересно создавать рабочие системы.

HIS
()
Ответ на: комментарий от PolarFox

Вот так и приходится — время на пятки наступает ко всем проектам.

deep-purple ★★★★★
()
Ответ на: комментарий от ilovewindows

не было Computer Sciences по крайней мере в СССР/России - максимум прикладная математика.

Jopich1
() автор топика
Ответ на: комментарий от Zhbert

Либо с тем, что преподают в основном теоретики, не шаря

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

Jopich1
() автор топика
Ответ на: комментарий от HIS

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

В контексте же можно. Но нужна огромная база изображений.

Shadow ★★★★★
()
Ответ на: комментарий от TooPar

Ангуляр то тут причём? Единственная попытка натянуть гуй на веб с точки зрения программистов гуя, а не верстальщика html с яваскрипт анимациями...

Shadow ★★★★★
()
Ответ на: комментарий от stevejobs

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

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

alpha ★★★★★
()
Ответ на: комментарий от vaddd

Экономически выгодно запускать некий mvp, и если продукт взлетает - писать все на спланированной архитектуре (которая кстати планируется с учетом опыта mvp, т.е после обкатки mvp вносятся коррективы или архитектура создается с нуля). Потом выкатывается обновленный продукт. Понятно что это в идеальном мире, но такой подход существует и вполне себе применяется.

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

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

ilinsky ★★★★★
()
Последнее исправление: ilinsky (всего исправлений: 3)
Ответ на: комментарий от Shadow

В контексте же можно.

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

Когда мне позже дали задание дописать текст программы в которой был встроен Тест на сверку результата распознавания из единственной прилагавшейся картинки с текстовой строкой в тесте. Я вспомнил наш разговор и тупо без замешательств подставил вместо первого символа, который распознавался тессерактом как «1», символ «Ай». Конечно же дал развёрнутое объяснение про разные вариации интерпретации не забыв про дополнительные данные необходимые для 100% распознавания (про контекст).

Интересно, у каких-то из тутошних умников есть реальные предложения как нужно было сделать «правильнее»?

HIS
()
Ответ на: комментарий от Vault_Boy

кармак талант. как например касперски.

Deleted
()
Ответ на: комментарий от ilinsky

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

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

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

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от vaddd

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

По опыту могу сказать что это работает не всегда и не везде. Но это работает. И тут как раз вступает сам подход к делу. Если команда просто роботы - конечно, скорее всего они запилят все на костылях и потом яро будут эти костыли переписывать и говорить о том мол «мы же говорили». Значит не на том языке говорили или говорили не то или вовсе не говорили. А значит - страдать.

ilinsky ★★★★★
()
Последнее исправление: ilinsky (всего исправлений: 3)
Ответ на: комментарий от Artamudo

А чему такому учат в Computer Science, чего не знает выпускник мехмата?

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

yvv ★★☆
()
Ответ на: комментарий от ilinsky

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

vaddd ★☆
()

Классическая мат база в программировании не нужна. Нужно умение строить мат. модели. А это дает физика. В РФ херовые программисты были(которые учились на программистов), потому что в ВУЗах забиивали голову ненужным мат. говном. Вместо нужного(HoTT,Coq, λ-calculus и т.п.).

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 1)
Ответ на: комментарий от vaddd

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

Это может работать только разве что в небольших стартапах. Где разработчики и те кто им платит сидят в одной комнате (условно). Как я уже говорил, в боле менее крупных компаниях, это не работает. В таких компаниях как правило есть некое связующее звено (носитель предметной области), который приходит в отдел разработки (ИТ департамент, etc...) и озвучивает требования и то что хочет бизнес. И тут как раз должна происходить связь о которой я уже упоминал. Команда(ы) должна проанализировать, выработать необходимую для понимания бизнеса информацию (как программисты так и стоящие над ними лиды) и на понятном для всех сторон языке дать развернутый ответ по требованиям и о том как будет осуществляться реализация.

Я думаю мы поняли друг друга. Все эти вещи давно придуманы и обкатаны, но далеко не везде применяются. Об этом можно почитать как у Макконнелла в «Совершенном коде» так и в других книгах, например Эванса или Миллетта. Изобретать ничего не нужно. Все уже изобретено и работает. Вопрос в том, нужен ли бизнесу такой подход - это отдельная тема. Более того, часто случается так что в компаниях пробуют такие подходы, и они не приживаются. И это не значит что подход плох, а скорее что они делают это следуя «по буквам» что конечно не работет, ибо нужно вырабатывать свою индивидуальную концепцию, опираясь на чужой опыт.

ilinsky ★★★★★
()
Последнее исправление: ilinsky (всего исправлений: 2)
Ответ на: комментарий от Int0l

потому что в ВУЗах забиивали голову ненужным мат. говном. Вместо нужного(HoTT,Coq, λ-calculus и т.п.).

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

yvv ★★☆
()
Ответ на: комментарий от ilinsky

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

Это как раз и работает в крупных компаниях. Заводов лишь из коллективов разработчиков+рабочих не бывает, иначе они сразу идут по миру.

который приходит в отдел разработки (ИТ департамент, etc…) и озвучивает требования и то что хочет бизнес.

А вот вы тут как раз и говорите о мелких кустарных компаниях )

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

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

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

vaddd ★☆
()

Хз я вот как самоучка любитель под обучением программированию понимаю только самостоятельную практику как написания своего так и чтения чужого кода. Вот и всё. Именно прям обучение обучение нужно в случае когда человек вообще не алё и первый раз слышит слова перменная, процедура, присваивание, операции, ветвления, сортировка и бла бла бла 100500 слов. Что бы ему объяснили тупо что значит базовая терминология, почему она такая и к чему она применима. А дальше всё, никаких правил нет. Ну разве что там ещё рассказать о «лучших практиках» зе бест мать их паттернах и прочему шлаку.

всегда думал что для программирования в приоритете математическая база

Если есть то хорошо, если нет то нахер не надо. Если надо изучается на месте ровно в той степени сколько нужно для решения задачи и то если прям мат мат подходы хорошо ложатся на архитектуру железа/языка/понятливости иначе всё выкидывается и пишется в лоб. Хотя для какихнить хаков наверное будет полезно.

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

Ну,а так. Программирование это красиво.

Я даже не знал, что ответить

В смыыылиии?

- А вы что самоучка что ли, вас никто не учил программированию ?
- Да, а в чём проблема?

Вот и весь разговор.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от vaddd

НПЗ (Роснефть), КНААЗ, Сбербанк, Drom - это по вашему мнению крупные компании (давно я не был так любезен на ЛОРе)? В одной из них успешно применяется DDD-like подход.

Если для вас крупные компании это гиганты вроде Microsoft или Google. то у меня для вас плохие новости.

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

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

Смотрю ли я через призму

Похожы вы просто смотрите на ситуацию через призму российского монополизма

возможно. Но исключительно исходя из опыта.

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

Ну а тут как бы мне и сказать нечего. Если будут примеры то продолжим. Т.к. опять же из опыта - ситуация хоть и стала лучше но далеко не везде (речь не про страну).

ilinsky ★★★★★
()
Последнее исправление: ilinsky (всего исправлений: 3)
Ответ на: комментарий от ilinsky

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

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

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

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)
Ответ на: комментарий от vaddd

Ок. Можешь считать за слив или еще как, мне пофиг или продолжим завтра. Так то у меня 00:30 на часах. Допиваю пиво и спать.

ilinsky ★★★★★
()
Ответ на: комментарий от alpha

Если мне нужна сортировка, я зову из SDK соответствующего языка функцию sort. Какие параметры сложности у этой sort - написано в документации, ничего не нужно считать как у кнута по отдельным операциям. Для каких-то дата-сатанистов это не вариант, а для человека, который просто в вебе отображает то, что ему SQL база данных отдала - это совершенно нормально. Я практически никогда не писал «серьезных вычислительных алгоритмов», никогда их не оценивал, а всё использование заключалось в том, чтобы либо найти специальную библиотеку которая это делает, либо заказать написать такой алгоритм специальному человеку-алгоритмисту. Грубо говоря, за последние 20 лет мне из математики нужна была математика класс эдак за шестой, потому что всё что выше вроде квадратных уравнений - уже нигде не используется :)

Гораздо важнее мне были чисто гуманитарные дисциплины, вроде психологии. Как спроектировать такой API чтобы им было удобно пользоваться. В каком порядке человек склонен нажимать кнопочки на странице. Что лучше использовать - выпадающий список, раскрывающееся дерево или строку поиска? И так далее. Ну и чисто программистские знания вроде паттернов проектирования, ынтерпрайз интегрейшен паттернов, и так далее - это просто какие-то разделы системного дизайна, выработанные методом тыка поколениями интеграторов и быдлокодеров.

, это как жаловаться тренеру по фитнесу, что на улице не лежат гантели.

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

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.