Здравствуйте, Ikemefula, Вы писали:
I>по моему разумению это окончание учебы в школе-начало учебы в университете. I>Т.е. человек начинающий работу уже готовился 5 лет. что бы стать спецалистом хорошим ему нужно в среднем еще 5 лет. I>Итого — 10, а не два, полтора или "месяцы"
У меня есть знакомый, который только недавно закончил 10 класс, а уже отлично разбирается в .net, взял Summer of Code и которого пригласили в Гугл. Да тут даже универом не пахнет.Но это экстраординарный случай.
Давай рассмотрим другие, более реальные:
Я, работая в школе, видел учеников которых можно хоть сейчас брать к нам на работу и через 2 месяца из них получатся специалисты среднего уровня (есть талант и желание).
С другой стороны, я, на работе, вижу достаточно людей с высшим образованием, которые ни-в-зуб-ногой в программировании (я еще удивляюсь как их все еще держат) и никогда не станут (нет ни таланта, ни желания).
А теперь рассмотрим меня:
5 лет матфака, почти никакого программирования, цель аспирантура и остаться на кафедре (моя кафедра "рулила" в универе).
Снимают ректора и ставят человека с другого факультета. Смысла оставаться в универе не осталось.
За 2 месяца самостоятельно изучил C#, сдал брейнбенч на мастера и меня взяли в одну из офшорных контор города (200+ программистов).
Полгода трачу на обучени Лотусу (зря потраченное время). Попадаю на .net проект. Через год становлюсь техническим лидером и архитектором проекта (неформально, конечно). Через 1,5 одним из ведущих .net специалистов в конторе. Через 2 считаю, что расти в конторе уже некуда (в профессиональном, а не карьерном смысле), тупо закалачиваю бабло и самообразовываюсь в свободное время.
Да, устроился я 2,5 года назад. Так что программерского опыта у меня именно 2,5 года + 2 месяца подготовки.
Вывод: да насрать на уровень подготовки человека, главное чтобы были Способности и Желание
Здравствуйте, Tilir, Вы писали:
T>Лично я замечаю за собой что вот уже семь лет профессионального программирования (и около одиннадцати от того момента как я впервые увидел досовский Borland C) каждый год я поднимаюсь на некоторую новую вершину и впереди ещё необъятное поле.
+1
T>Какие десять лет, они там вообще о чём? Вся жизнь, меньше не получится.
Вот тут нужно остановиться и найти оценки уровня программиста и обозначить где же именно на этой шкале "начинается" программист.
Ведь дело вот в чем: один человек проучившись всю жизнь может так и не достугнуть того уровня, который другой достиг за 1-2 года.
Здравствуйте, swined, Вы писали:
>> кандидат(гуманитарий со знанием компьютера), который закончил курсы >> (язык+технология) исписал тут два листа формата A4 и это далеко не >> единственный пример.
S>так бывает? О_о это ж задача на общую логику и в самом худшем случае S>комбинаторику за пятый класс. для решения достаточно аттестата об окончании S>средней школы и знания синтаксиса target языка.
Что бы решить эту задачу надо знать
1. язык
2. уметь работать со строками посимвольно
3. знать представление числев в строковом виде
4. знать общий вид целого числа
5. уметь думать логически и удерживать все составляющие в уме
итого — надо представить или записать целое число в общем виде (что уже не все могут как ни странно) и далее обработать последовательность в цикле.
задача реально сложная для вчерашних школьников
для девелоперов со стажем можно чуть чуть усложнить — (целое число или число с фиксированой запятой)
т.е. не [+|-]digit[digits] а [+|-][digits][.]digit[digits]
это добавляет еще два-три строки.
итог — лист формата А4 исписал высокооплачиваемый девелопер со опытом работы 7 лет !
или вот такая — для строки, представления числа с фиксированой запятой обрезать незначащие нули при наличии оных до 2 штук.
результат примерно то тот же — студенты решают со второй или третьей попытки.
Здравствуйте, Aikin, Вы писали:
A>У меня есть знакомый, который только недавно закончил 10 класс, а уже отлично разбирается в .net, взял Summer of Code и которого пригласили в Гугл. Да тут даже универом не пахнет.Но это экстраординарный случай.
У меня есть примерно такие же знакомые, узнай у него, когда он начал интересоваться программированем. Наверняка не этим летом
A>Я, работая в школе, видел учеников которых можно хоть сейчас брать к нам на работу и через 2 месяца из них получатся специалисты среднего уровня (есть талант и желание).
Я знаю таких людей, им хорошо даются отдельные задачи, но стоит коснуться хоть какой то предметной области, как энтузиазм заканчивается.
A>5 лет матфака, почти никакого программирования, цель аспирантура и остаться на кафедре (моя кафедра "рулила" в универе).
A>За 2 месяца самостоятельно изучил C#, сдал брейнбенч на мастера и меня взяли в одну из офшорных контор города (200+ программистов).
5 лет матфака это очень, очень развитое мышление, например способность формализовать проблему, к асбтрактному мышлению и тд и тд. Собственно это и есть основное требование к программисту — уметь формализовать проблему и абстрагироваться в нужный момент.
A>Полгода трачу на обучени Лотусу (зря потраченное время). Попадаю на .net проект. Через год становлюсь техническим лидером и архитектором проекта (неформально, конечно). Через 1,5 одним из ведущих .net специалистов в конторе. Через 2 считаю, что расти в конторе уже некуда (в профессиональном, а не карьерном смысле), тупо закалачиваю бабло и самообразовываюсь в свободное время.
A>Да, устроился я 2,5 года назад. Так что программерского опыта у меня именно 2,5 года + 2 месяца подготовки.
и +5 лет матфака.
A>Вывод: да насрать на уровень подготовки человека, главное чтобы были Способности и Желание
Здравствуйте, Ikemefula, Вы писали:
I>Вывод гораздо проще — ты почему то не включил то время, во время которго у тебя формировались основные навыки.
С такой логикой надо включить еще и дошкольный возраст — в нем формировались самые важные навыки, читать и писать. Тогда не то что 10, а 20-25 лет сразу выйдет.
I>Я знаю много таких. Это не специалист а обезьяна обученая нажимать на определенные кнопки и писать под диктовку. До девелопера ему как до небес.
Во-первых, это настоящие, нормальные девелоперы, у которых соображалка работает. Разницы в результатах с кандидатами наук не видно. Могут исследование провести, с неизвестной библиотекой разобраться, алгоритм придумать. Во-вторых, мне обезьян почему-то не попадалось. Необученные, медленно думающие — были, такие, что их работа плоха сразу по всем критериям — были, а бездумные обезьяны — нет. Есть сомнение, что такие вообще существуют. Может вам просто нравится ощущать свое превосходство над обезьянами, вот и навыдумывали
В конце концов, намного более высокая ценность опыта — это не наша специфика, это везде так. Пусть меня поправят, если где-то не так.
A>>P.S. Кодёнок, ничего что я заменил "талант" на "способности". Мне кажется это слово больше отражает требования к "кандидату".
«Талант» подходит лучше. Просто наличие способностей не объясняет, зачем юноши сами по себе дома с компьютером возятся, зачем они потом на работе тратят дополнительное время, чтобы рефакторить и улучшать код, хотя им этого делать не обязательно, и т.п.
Здравствуйте, Aikin, Вы писали:
A>Здравствуйте, Ikemefula, Вы писали:
A>Без определения критериев кого считать программистом, а кого нет считаю обсуждение бессмысленным.
Это уже проходили. Сначала дай определение программиста, потом инженера, потом человека, млекопитающего, организма а как дело дойдет до бытия спор резко закончится, ибо бытие неопределяемое понятие, как множество в математике.
Программист — специалист, который для поставленой задачи
1. строит в уме модель должного масштаба или использует готовую
2. формализует решение в рамках этой модели
3. фиксирует решение в виде создания программного обеспечения или внесения изменений в существующее.
специалист + 1 и 2 сворачивается в "инженер", но так нагляднее
Ikemefula wrote:
> Что бы решить эту задачу надо знать > > 1. язык > 2. уметь работать со строками посимвольно > 3. знать представление числев в строковом виде > 4. знать общий вид целого числа > 5. уметь думать логически и удерживать все составляющие в уме > > итого — надо представить или записать целое число в общем виде (что уже > не все могут как ни странно) и далее обработать последовательность в > цикле.
итого, выпускник ближайшей средней школы, который не прогуливал уроки
информатики, заимплементит это на паскале чуть ли не по памяти ибо примерно
этим они в школе емнип и занимаются. ну или заимплементит все это на
java/C++/C#/etc, если он немного любопытный и пытался заниматься этим дома.
> задача реально сложная для вчерашних школьников
для них она проще всего. остальные уже могли позабывать все
> для девелоперов со стажем можно чуть чуть усложнить — (целое число или > число с фиксированой запятой) т.е. не [+|-]digit[digits] а > [+|-][digits][.]digit[digits] > > это добавляет еще два-три строки. > > итог — лист формата А4 исписал высокооплачиваемый девелопер со опытом > работы 7 лет ! > > или вот такая — для строки, представления числа с фиксированой запятой > обрезать незначащие нули при наличии оных до 2 штук.
тоже за 7й класс задачка
> > результат примерно то тот же — студенты решают со второй или третьей > попытки.
а у нас в школе за неумение это сделать (или хотябы списать у того, кто
умеет ) ставили два.
Здравствуйте, Кодёнок, Вы писали:
I>>Вывод гораздо проще — ты почему то не включил то время, во время которго у тебя формировались основные навыки. Кё>С такой логикой надо включить еще и дошкольный возраст — в нем формировались самые важные навыки, читать и писать. Тогда не то что 10, а 20-25 лет сразу выйдет.
Ну так я же так и написал, а он не согласился
A>>>P.S. Кодёнок, ничего что я заменил "талант" на "способности". Мне кажется это слово больше отражает требования к "кандидату". Кё>Просто наличие способностей не объясняет, зачем юноши сами по себе дома с компьютером возятся, зачем они потом на работе тратят дополнительное время, чтобы рефакторить и улучшать код, хотя им этого делать не обязательно, и т.п.
Это достаточное, но не необходимое условие.
У меня (да и у тебя? думаю) перед глазами много людей, которые ничем не интересуются кроме исполнения своих обязанностей на том уровне как их когда-то научили.
И все же они профессиональные программисты. Профессиональные в том смысле, что они этим зарабатывают на хлеб, это их профессия.
Здравствуйте, Ikemefula, Вы писали:
A>>Без определения критериев кого считать программистом, а кого нет считаю обсуждение бессмысленным.
I>Это уже проходили. Сначала дай определение программиста, потом инженера, потом человека, млекопитающего, организма а как дело дойдет до бытия спор резко закончится, ибо бытие неопределяемое понятие, как множество в математике.
I>Программист — специалист, который для поставленой задачи I>1. строит в уме модель должного масштаба или использует готовую I>2. формализует решение в рамках этой модели I>3. фиксирует решение в виде создания программного обеспечения или внесения изменений в существующее.
И что с этим "определением" можно дальше делать? Оно ничего не определило, а еще больше все запутало.
Каков уровень задачи? Если взять достаточно сложную задачу, то врятли хоть кого-то можно назвать программистом. С другой стороны, можно выбрать простую задачу, решить которую можно (исползуя полный цикл 1-2-3) после 5-10-минутного обучения.
Мне не нужно мне формальное определение программиста, так же не нужно подгонять теоретическую базу под это определение.
Мне будет достаточно примерного критерия. С помощью которго можно сказать программист кто-то или нет.
Здравствуйте, Aikin, Вы писали:
A>Здравствуйте, Ikemefula, Вы писали:
A>>>Без определения критериев кого считать программистом, а кого нет считаю обсуждение бессмысленным.
I>>Это уже проходили. Сначала дай определение программиста, потом инженера, потом человека, млекопитающего, организма а как дело дойдет до бытия спор резко закончится, ибо бытие неопределяемое понятие, как множество в математике.
I>>Программист — специалист, который для поставленой задачи I>>1. строит в уме модель должного масштаба или использует готовую I>>2. формализует решение в рамках этой модели I>>3. фиксирует решение в виде создания программного обеспечения или внесения изменений в существующее. A>И что с этим "определением" можно дальше делать? Оно ничего не определило, а еще больше все запутало.
+1
A>Мне не нужно мне формальное определение программиста, так же не нужно подгонять теоретическую базу под это определение. A>Мне будет достаточно примерного критерия. С помощью которго можно сказать программист кто-то или нет.
А зачем? Одним только критерием программиста вопрос о сроках обучения не решится.
Здравствуйте, samius, Вы писали:
I>>>Программист — специалист, который для поставленой задачи I>>>1. строит в уме модель должного масштаба или использует готовую I>>>2. формализует решение в рамках этой модели I>>>3. фиксирует решение в виде создания программного обеспечения или внесения изменений в существующее. A>>И что с этим "определением" можно дальше делать? Оно ничего не определило, а еще больше все запутало. S>+1
S>А зачем? Одним только критерием программиста вопрос о сроках обучения не решится.
Чтобы можно было бы разговаривать. Иначе получается "слово против слова".
Здравствуйте, Кодёнок, Вы писали:
Кё>У нас сроки становления работника определяются величинами в полгода-год. 10 лет — вообще не вариант. Думаю, у других так же. Какая фирма будет ждать 10 лет — фантастический срок? Среднестатистический срок работы на одном месте и то меньше.
Не могли бы Вы подробнее рассказать о своей фирме, чем она занимается, проектах в которых довелось поучаствовать, Вашем образовании и вообще, так сказать, жизненном пути? Просто приведенные цифры настолько с одной стороны, впечатляют, а с другой — не согласуются с моим и не только моим опытом, что если это все правда, то это просто прорыв в образовании и обучении. Было бы интересно взять подобный опыт на вооружение ))
Здравствуйте, Кодёнок, Вы писали:
Кё>С такой логикой надо включить еще и дошкольный возраст — в нем формировались самые важные навыки, читать и писать. Тогда не то что 10, а 20-25 лет сразу выйдет.
Алгебра логики это гораздо сложнее.
Кё>Во-первых, это настоящие, нормальные девелоперы, у которых соображалка работает. Разницы в результатах с кандидатами наук не видно. Могут исследование провести, с неизвестной библиотекой разобраться, алгоритм придумать. Во-вторых, мне обезьян почему-то не попадалось. Необученные, медленно думающие — были, такие, что их работа плоха сразу по всем критериям — были, а бездумные обезьяны — нет. Есть сомнение, что такие вообще существуют. Может вам просто нравится ощущать свое превосходство над обезьянами, вот и навыдумывали
С каким к.т.н. ты сравнивал ? Вот со мной работают к.т.н. специалисты по теории графов, ажно три человека, с кем мне их сравнить из девелоперов ?
Разумеется, программить как девелоперы они не могут, зато и девелоперы не могут и близко так решать задачи как они.
Здравствуйте, swined, Вы писали:
S>итого, выпускник ближайшей средней школы, который не прогуливал уроки S>информатики, заимплементит это на паскале чуть ли не по памяти ибо примерно S>этим они в школе емнип и занимаются. ну или заимплементит все это на S>java/C++/C#/etc, если он немного любопытный и пытался заниматься этим дома.
видел только пару штук, которые сами интересовались и решали всякие задачки.
>для них она проще всего. остальные уже могли позабывать все
Из бесед с людьми я заметил ровно наоборот.
>> или вот такая — для строки, представления числа с фиксированой запятой >> обрезать незначащие нули при наличии оных до 2 штук. S>тоже за 7й класс задачка
Это очень специальная школа должна быть.
S>а у нас в школе за неумение это сделать (или хотябы списать у того, кто S>умеет ) ставили два.
Здравствуйте, Aikin, Вы писали:
I>>Программист — специалист, который для поставленой задачи I>>1. строит в уме модель должного масштаба или использует готовую I>>2. формализует решение в рамках этой модели I>>3. фиксирует решение в виде создания программного обеспечения или внесения изменений в существующее. A>И что с этим "определением" можно дальше делать? Оно ничего не определило, а еще больше все запутало. A>Каков уровень задачи? Если взять достаточно сложную задачу, то врятли хоть кого-то можно назвать программистом. С другой стороны, можно выбрать простую задачу, решить которую можно (исползуя полный цикл 1-2-3) после 5-10-минутного обучения. A>Мне не нужно мне формальное определение программиста, так же не нужно подгонять теоретическую базу под это определение. A>Мне будет достаточно примерного критерия. С помощью которго можно сказать программист кто-то или нет.
I>>Это уже проходили. Сначала дай определение программиста, потом инженера, потом человека, млекопитающего, организма а как дело дойдет до бытия спор резко закончится, ибо бытие неопределяемое понятие, как множество в математике.
Вобщем, не можешь привести свой аргумент — свободен.
Мысль такая:
— то, что радиоэлектроника изучает, как работает радио, не означает, что для сборки радио надо учить радиоэлектронику;
— то, что физика (механика) и химия изучает, что происходит в автомобилях, не означает, что чтобы научиться водить, надо их учить;
I>основы дискретной математики — это булева алгебра, ибо логика программа не своидится к if(всё сильно)
То, что булева алгебра изучает логические булевы выражения, не означает, что для изучения и применения штук типа if (File.Exists && !Path.Exists) надо учить булеву алгебру (ты сам-то как, сначала научился, затем в универе дискретка началась, или пока она не началась, с булевыми выражениями фатальнейшие трудности имел и программировать по факту не мог?)
I>алгоритмизация — вот например обход какой то структуры это уже логические выражения + циклы всякие.
То, что наука об алгоритмах изучает программы, не значит, что для написания программ надо учить науку об алгоритмах.
I>посчитать опеределитель матрицы для студента первого курса это довольно сложная задача, как ни странно, с итерациями по массивам вечно путаются. I>Раз миф, значит миф Сообщу это студентам, раз никакого скрета нт, они завтра же смогут написать то же что и я
У новичков всегда трудности и что-то не получается. Так все устроено. Непонятно, что ты этим хотел сказать.
I>Основы дискретки — это логические выраженя например.
То, что знание True && False == False входит в дискретную математику, не значит, что обучая человека этому знанию, ты устраиваешь ему изучение дискретной математики.
Это принципиально разный подход: «учить основы дискретной математики», это грубо говоря, взять книжу с таким названием и читать все подряд, а изучить логические операторы — это взять только нужное, даже не задумываясь, к какой науке это принадлежит.
Казалось бы, одно и то же происходит — и в одном, и в другом случае изучаются основы такой-то науки. Но разница существенная.
Человек так устроен — ненужные ему знания забываются. Ничего ты с этим не поделаешь. Даже нужные в общем-то, забываются Поэтому академический подход «сначала изучим науку» так плохо работает, из-за этого сообщения по обучение за пару месяцев преподам программирования кажутся сказками.
Но самое главное — кроме знаний есть еще умения. Попробуй распиши на составляющие умение придумать алгоритм — как ни старайся, чтение твоих росписей неумеющего умеющим не сделает. Умения важнее знаний. Знания всегда тебя ждут — открой книгу, и вот они, а умения надо старательно приобретать, предварительные изучения наук только оттягивают самое главное — приобретение умений.
Заявляя новичкам «вам нужно изучить основы дискретной математики», ты оказываешь медвежью услугу и уводишь их от главного. Неудивительно, что обучение на рабочем месте за несколько месяцев кажется университетским преподам сказкой — 95% их обучения составляет изучение знаний, а самому главному — отдается только 5%, причем самые опытные (профессора) занимаются второстепенным, а главное — практики и лабораторные часто ведут лаборанты, не всегда способные проследить, происходит ли на самом деле обучение или выполняется пошаговое следование методичкам.
Здравствуйте, Aikin, Вы писали:
S>>А зачем? Одним только критерием программиста вопрос о сроках обучения не решится. A>Чтобы можно было бы разговаривать. Иначе получается "слово против слова".
Разумеется, у тебя то аргументов и нет. Только определения тебе подавай. Я ведь угадал на счёт бытия ?
Здравствуйте, Кодёнок, Вы писали:
Кё>Талант первичен, желание и опыт — вторичны, всяческие обучения и курсы — десятые степени важности. Талант — это такая штука, из-за которой человек занимается программированием в собственное свободное время просто потому что ему хочется, даже если не учили, не платят деньги, не та фаза луны, и т.п. Это ни с чем не сравнится. Если есть талант, желание и обучение подразумеваются сами собой, талант включает их в себя.
Талант вообще штука абстрактная. Образование все же первично (включая самообразование).
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, Ikemefula, Вы писали:
I>Я знаю много таких. Это не специалист а обезьяна обученая нажимать на определенные кнопки и писать под диктовку. До девелопера ему как до небес.
Позвольте поинтересоваться, в какой области вы работаете?