» Программирование>Есть программеры самоучки без мат./пмм/и др. тех. образования?
iza_shniperson 14:34 27.04.2007
Сообщение от RiderV:
Если да, то следующий вопрос:
нет ли потребности в мат. знаниях (например для программирования 3д графики, игр).
и желания их прокачивать?
Для программирования 3D без знаний сериометрии, линейной алгебры никуда не продвинешься, конечно.
А об этом только на технических и физико-математических факультетах рассказывают. Но все же торчать там 5 лет для того чтоб потом программировать на OpenGL по-моему перебор.
Если собираешься бухгалтерским, управленческим ПО для предприятий заниматься то лучше на курсы бухгалтеров походить.
[Ответ]
RiderV 11:09 28.04.2007
Сообщение от /-)-/-\-(\/)-/-\-/\/: RiderV, ты знаешь я бы может подумал ходить на програмирование (с++ или Delphi) а это мне не интересно. И что это такое OpenGL, Direct3D я даже не имею представление. что это кстати ??
Ты не лучше скажи, есть ли у тебя жгучее твёрдое желание программить 3д графику, игры. С программированием вообще на С++ и Delphi, а также с OpenGL и Direct3D (это библиотеки графические для вывода 2д и 3д графики) ты разберёшься сам – доков навалом и на русском и справок на английском навалом (когда основы изучишь по книгам русским, то потом даже без знания английского с 12м лингвой можно будет легко пользоваться справкой к этим либам).
Ты, кстати, где учишься? У вас программирование то читают?
Так что, если есть твёрдой жгучее желание заниматься играми или прогр-м графики, то без твёрдых мат. знаний (как я понял, минимум 2х курсов вышки) туда не сунешься. И вообще, чем лучше владеешь этой вышкой, тем более развязаны руки будут... то обращайся.
[Ответ]
RiderV 11:17 28.04.2007
Сообщение от Bais:
по опыту работы могу сказать, что фундаментальное математическое образование просто небходимо, с человеком не имеющим его трудно работать. Из-за недостатка знаний люди делают слишком много ненужной работы(при этом тратя много времени), да и выполняют ее не очень хорошо. Могу сказать что работать можно, но часть задач просто невозможно выполнить хорошо или вообще невозможно.
По опыту могу сказать, что да.. некоторые задачи решать вообще невозможно... но, код созданный математиками... как правило...
(вот в нашей конторе один препод работает, пишет код для gps устройств и сети),
ЧИТАТЬ НЕВОЗМОЖНО! Для такого кода есть хорошее название - спагетти.
Есть много фундаментальных трудов по процессу разработке по:
анализу (сбору требований), проектированию, планированию, кодированию, документированию, версионированию и прочее, что можно изучать читать по тихоньку годами из соот-й литературы, расти как проф-л.
И что то среди выпуска технарей (мат, пмм и пр) 2002 года я не знаю кому бы всё это читали. Даже элементарное - ООП и то знали те, кому было интересно, и сам искал источники и изучал.
Многие вообще не знали хафига оно нужно это ООП. И вообще для их маленьких программ можно просто садиться и кодить.
[Ответ]
RiderV 11:28 28.04.2007
(выше я имел ввиду чистых математиков, которые с программированием знакомы только на уровне языка, и д.кнутовских алгоритмах)
[Ответ]
Yandex 18:11 28.04.2007
RiderV, ООП не популярно по моему из-за Delphi (он же как основной обучающий язык идет) - ну не способствует оно написанию ООП кода (за три года хобби ниодного класса не написал). На C++ сел и сразу стал все в классы заворачивать.
[Ответ]
RiderV 00:56 29.04.2007
Увы, и в коммерческих конторах, бывает, мало кто об этом имеет представление.
Бывает так что люди не с ООП, анализом, сбором требований, проектированием, кодированием, документирванием, тестированием, версионированием... ничем не знакомы....
Нафигачивают код на делфе и интербезе коллективом от 3х человек за 3 года.. а оно... не работает... глючит...
а сопровождение кода, его малейшая доработка и изменение -- пытка...
и проект на грани смерти... (или ваще сдох, и финансирование срезано). печально...
[Ответ]
Leo 13:38 29.04.2007
Сообщение от Snusmumrik:
математика? а какое отношение математика имеет к программированию? почему не химия или литература? совершенно равноудаленные предметы от программинга.
Ну не знаю, как тебе, я лично мне знание математики иногда позволяет в разы упростить алгоритм работы программы.
А некоторые программы без знания математики вообще написать нереально. Дальше думай сам...
[Ответ]
iza_shniperson 23:30 29.04.2007
Сообщение от RiderV:
Увы, и в коммерческих конторах, бывает, мало кто об этом имеет представление.
Бывает так что люди не с ООП, анализом, сбором требований, проектированием, кодированием, документирванием, тестированием, версионированием... ничем не знакомы....
Нафигачивают код на делфе и интербезе коллективом от 3х человек за 3 года.. а оно... не работает... глючит...
а сопровождение кода, его малейшая доработка и изменение -- пытка...
и проект на грани смерти... (или ваще сдох, и финансирование срезано). печально...
Контора конторе рознь. Описанный процесс разработки ПО мне встречался в местах с хроническим недофинансированием. Типа пишем небольшую прогу для внутенних потребностей, временных ограничений нет, можно писать хоть до второго пришествия, лиш бы содержание программистов обходилось как можно дешевле. Понятно что тестеры, аналитики и прочие "лишние" люди на проекте отсутствовали. Код никак не описывался и не документировался.
Начальник программистов не умел включать комп, так что отсутствие сбора требований уже не удивляло.
Результат был один - после увольнения программиста все его труды можно было смело отправлять на свалку истории.
[Ответ]
miramax 00:09 30.04.2007
Что бы научиться программировать, по правилам и понять тонскости.
Учиться совсем необязательно.
Программисты - аутисты.
99,999999% информации они черпают сами из книжек, форумов и хелпов. Без помощи "преподов".
Можно даже сказать, что общение с преподами противоречит аутистической природе программирования =)
[Ответ]
The_God 19:47 04.09.2007
потребности в матзнаниях есть, и конечноже нидеццкие
еще не вижу смысла платить комуто за обучение програмить, ведь можно устроится работать и тебе будут платить, не много, но будут, и на месте уже смотреть и учиться.
ps есть вакансия програмиста, работа не сложная
[Ответ]
The_God 20:02 04.09.2007
на диплом не смотрят потомучто он ни о чем не говорит, всеравно програмить в университетах не учат.
*) вот интересно почему не дают задания которые надо группой из 3 человек програмить ?
а ведь это бы научило работать скоординировано всем вместе, а ведь так и програмится всё... и игры в том числе.. не в одну же харю их делать, а группой, а это сложно, ведь многие думают что они гениальны, и никто им не может говорить как правильно делать, сами всё "знают".
*) про оформление кода комунибудь говорили в институте ? как его надо писать чтоб его можно было сопровождать и развивать после того как его автор уволится ? ну или даже просто через 2-4 месяца после его написания, ведь часто смотриш и думаеш что же автор курил когда это писал, "оно" работает, но трогать и менять страшно, потомучто код - монолит, так сказать, рукотворный памятник своей гениальности, который можно только снести, а подправить уже никак.
и так, чисто от себя, вабще программист это способ мышления, знание технологий, алгоритмов, а не знание какого-то конкретного языка, язык это пара ночей с методичкой по его синтаксису и все и можно делать то что умееш но уже на новом языке [Ответ]
RiderV 21:18 04.09.2007
Сообщение от The_God:
на диплом не смотрят потомучто он ни о чем не говорит, всеравно програмить в университетах не учат.
Иногда смотрят. Т.е. даже после краткого разговора по телефону с одной мадам услышал презрительным тоном какого х..я я звоню без тех.образования.
Сообщение от :
*) вот интересно почему не дают задания которые надо группой из 3 человек програмить ?
Мне тоже интерсно. Многие просто не знают что такое система контроля версий. А коментарии - это для лАхов... Толковый прогер и без коментов разберётся в чужом коде.
Сообщение от :
*) про оформление кода комунибудь говорили в институте ? как его надо писать чтоб его можно было сопровождать и развивать после того как его автор уволится ? ну или даже просто через 2-4 месяца после его написания, ведь часто смотриш и думаеш что же автор курил когда это писал, "оно" работает, но трогать и менять страшно, потомучто код - монолит, так сказать, рукотворный памятник своей гениальности, который можно только снести, а подправить уже никак.
5 баллов! В 3х местах работал, и там так и делали!
Сообщение от :
и так, чисто от себя, вабще программист это способ мышления, знание технологий, алгоритмов, а не знание какого-то конкретного языка, язык это пара ночей с методичкой по его синтаксису и все и можно делать
то что умееш но уже на новом языке
Ну... отчасти согласен. Но невозможно зная скажем ДельфиЛангвич, даже хорошо... со всеми тонкостями, и внутренности VCL почитать ночью С++ и хорошо его знать и эффективно использовать.
Есть такие языко-зависимые фичи и стили как template которые активно профи юзают (например Boost, STL, Lokki -- с последней вообще засада полная), лёгкие объекты на стеке, деструкторы, тонкости обработки исключений (особенно в деструкторе объекта при активно другом исключении ).
Т.е. пересев на С++ и кодируя в стили предыдущего языка, не изучая его идиомы и стили,.... код, мягко-говоря, будет смехотворный (особенно для проф-х С++ прогеров со стажем не 1н год).
И тупое переписывание Пас-проги на С++ приведёт к нехорошему результату.
А про платить кому-то за обучение языку... я этого не предлагал.
Я просто искал напарника что бы матеку подтянуть с преподом. Напарника. И дешевле почти вдвое, и веселее. Особенно если чел тоже хочет с 3д прогр-м разобраться.
А ещё с С++ меня прикалывает то, что я раз в год (уже 5й) узнаю какую нить тонкость или языковую конструкцию, которой раньше не знал. (Хотя книг прочитал уже кучу, и не раз). (Правда последние полгода я на нём не пишу, и чёто выветриваться стали накопленные знания [Ответ]
imago^ 22:32 04.09.2007
Выскажусь слегка...
Во-первых, по поводу того нужна ли мат-ка и ее разделы типа матанализа или функана или числяков, могу ответить что нужна. и обязательно. ибо мозги учит думать не прямолинейно. Тут есть конечно одно НО, а именно - чем хочется заниматься, т.е. при работе с БД не думаю что пригодятся эти знания... а вот при кодинге под OpenGL и вообще для работы в 3Д мат. знания просто необходимы.
Во-вторых... для ребят типа "начинал с делфи... терь знаю N языков и т.п. и т.п." а вы знаете что такое стек? а очередь? а TRIE-дерево? а еще какая-нить структура данных? я неговорю уже о быстрых алгоритмах их обработки.
Мораль сей басни такова - хорошим программистом без математической базы не станешь. так или иначе эта база потребуется и БУДЕТ получена (из тутторов или от репетиторов - неважно).
ЗЫ все моя большая имха. если кого-то задел сорь
[Ответ]
imago^ 22:33 04.09.2007
Сообщение от RiderV:
Толковый прогер и без коментов разберётся в чужом коде.
Сообщение от The_God:
почему не дают задания которые надо группой из 3 человек програмить ?
нам давали...
Сообщение от The_God:
про оформление кода комунибудь говорили в институте ? как его надо писать чтоб его можно было сопровождать и развивать
говорили.. пара преподов ругала за плохо оформленный код...
Сообщение от The_God:
и так, чисто от себя, вабще программист это способ мышления, знание технологий, алгоритмов, а не знание какого-то конкретного языка, язык это пара ночей с методичкой по его синтаксису и все и можно делать то что умееш но уже на новом языке
до определенной степени... если какие-то общие моменты, то да, такой вариант вполне... а вот на особенности языка придется потратить немало времени...
Сообщение от imago^:
>Толковый прогер и без коментов разберётся в чужом коде.
Сообщение от DJ Anarchist:
Лех, одно другому не мешает...
к тому, что если кто-то в проэкте, в котором работают (возможно будут работать) другие люди, будет писать код без комментариев, то он не есть хороший кодер. их писать надо. это тоже искусство
[Ответ]
Snusmumrik 23:58 04.09.2007
Сообщение от imago^:
Во-вторых... для ребят типа "начинал с делфи... терь знаю N языков и т.п. и т.п." а вы знаете что такое стек? а очередь? а TRIE-дерево? а еще какая-нить структура данных? я неговорю уже о быстрых алгоритмах их обработки.
знаю. я чтото делаю не так?
начинал, каюсь, с qbasic в далеком 1995-м году.
[Ответ]
imago^ 00:32 05.09.2007
Сообщение от Snusmumrik:
знаю. я чтото делаю не так?
начинал, каюсь, с qbasic в далеком 1995-м году.
конкретно про Вас, ничего не знаю. имею ввиду людей, которые прикладными вещами (теми же API, VCL, и т.п.) пользоваться умеют, но которым дай задачу типа "перевернуть" порядок записей в файле и в завал... тут знай 5 языков не знай - все равно.
[Ответ]
RiderV 21:05 05.09.2007
Сообщение от imago^:
Выскажусь слегка...
Во-первых, по поводу того нужна ли мат-ка и ее разделы типа матанализа или функана или числяков, могу ответить что нужна. и обязательно. ибо мозги учит думать не прямолинейно.
Не только математика учит думать не прямолинейно.
Сообщение от :
Тут есть конечно одно НО, а именно - чем хочется заниматься, т.е. при работе с БД не думаю что пригодятся эти знания... а вот при кодинге под OpenGL и вообще для работы в 3Д мат. знания просто необходимы.
Это банально/очевидно.
Сообщение от :
Во-вторых... для ребят типа "начинал с делфи... терь знаю N языков и т.п. и т.п." а вы знаете что такое стек? а очередь? а
N языков не очём не скажет. Как правило - это не глубокие знания. Хорошо (со всеми тонкостями) можно знать не много, и с которыми постоянно работаешь, а также обучаешься (например по регулярным выражениям перла толстенные толмуды написаны, как и по С++ как языку, так и устоявшимся либам).
Не вижу какие проблемы почить и поэксперементировать с классическим алгоритмами? Чего тут сложного.
Единсветнное, отчего бы предостерёг, это от изобретания велосипеда заново. Знать классические структуры данных и алгоритмы хорошо, можно для домашнего проекта написать пару прог, но в реальной работе лучше всего использовать готовые библиотечные реализации этих фич. Сэкономит тучу времени (горадо большую чем может занять самостояетельная реализация такого алгоритма\структуры) - подумайте о случайном баг, обнаруживший себя очень не скоро и в неожиданном месте. Boost и STL и им подобные - хорошо отлаженные инструменты.
Сообщение от :
TRIE-дерево? а еще какая-нить структура данных? я неговорю уже о быстрых алгоритмах их обработки.
Мораль сей басни такова - хорошим программистом без математической базы не станешь.
Как то не увязываю я TRIE-деревья и т.п. и математическую базу.
Прекрасно можно знать 1ые и не знать 2е.
[Ответ]
RiderV 21:06 05.09.2007
Сообщение от imago^:
толковый кодер БУДЕТ писать комменты
Сообщение от imago^:
конкретно про Вас, ничего не знаю. имею ввиду людей, которые прикладными вещами (теми же API, VCL, и т.п.) пользоваться умеют, но которым дай задачу типа "перевернуть" порядок записей в файле и в завал... тут знай 5 языков не знай - все равно.
непойму, почему??? что тут сложного?
Подобные задачи мы в школе в 7м классе писали на басике - аля-перевернуть массив. Добавить сюда Win api - с отображаемыми в память файлами - задача становится элементарна.
На С++ с помощью STL это программа вообще в одну строку.
(Впрочем, не рекомендовал бы ковырять исходный фал - прыжок напряжения, ребут, и файл испорчен. Надо просто перекопировать содержимое задом на перёд в новый файл, а потом заменить старый. Или, лучше, вооще через файл-мапинг, через своп-файл - тогда и мусора не останется в случае сбоя).
[Ответ]
The_God 21:23 05.09.2007
лично моё мнение такое, что если человек не доучился до конца в универе.. ну там ему стало сложно или неинтересно ( степендия маленькая, преподы несправедливые, ну или вабще мир оказался не готов к его рождению) и он забил на учебу,
то где гарантии что он доведет до конца проект на работе ?
может также спрыгнет когда станет сложно и всё, и доделывайте как хотите сами...
ведь опыт спрыгивания уже есть ...
а если он не смог поступить, то значит вообще не целеустремлённый тип.
[Ответ]
The_God 21:24 05.09.2007
диплом - это первый завершенный от начала и до конца реальный проект в резюме.
[Ответ]
FlaPS 22:27 05.09.2007
Сообщение от The_God:
диплом - это первый завершенный от начала и до конца реальный проект в резюме.
Знаю одного программиста, у которого в 18 лет общая сумма завершенных проектов перевалила за $15 000, при этом он не смог поступить в первый год (правда поступал в МФТИ) а сейчас поступил чисто чтобы не пойти в армию.
[Ответ]
The_God 22:51 05.09.2007
диплом это для большинства у которых больше нечего показать при устройстве на работу.
[Ответ]
RiderV 18:25 06.09.2007
Сообщение от The_God:
и доделывайте как хотите сами...
ведь опыт спрыгивания уже есть ...
а если он не смог поступить, то значит вообще не целеустремлённый тип.
Точняк. До ужоса достало прийти на более оплачиваему работу и получить в зубы толмуд кривых программ, абы как работающих и так же написанных. И получать люлей при каждом их сбое, пока пробуешь разобраться что же это программа делает, для чего она вообще, и как же она устроена...
Впрочем , не скрою, по молодости так разок тоже сделал.
[Ответ]
Legos 16:29 10.09.2007
Вообще программирование изначально необходимо было для помощи человеку в его расчётах, то есть в математических операциях различной сложности. Без знаний математики программировать - всё равно что заниматься математикой на высоком уровне, то есть: знаю, как это работает, но вручную - никак.
И к тому же неизвестно какой сложности проекты предстоит выполнять. Тут и поможет высшая математика.
А для программирования игр ИМХО достаточно знаний линейной, векторной алгебры и школьной программы по геометрии. И это только если программировать игры на низком уровне, чтобы программировать игры на высоком уровне, даже этого не нужно.
А если касаться быдлокодерства, хорошо программировать не обязательно.
[Ответ]
FlaPS 20:29 10.09.2007
Legos, не подменяйте понятия.
Мат. образование (см название темы) и знание математики это далеко не одно и то же. Кодер, которому пришлось взять учебник математики для решения прикладной задачи, поймет эту математику на порядок лучше любого выпускника ВУЗа. А вот обладая только теоретическими знаниями или умением решать лабораторные, оторванные от реальности задачи, даже быдлокодерства не потянет.
Пару дней назад мне один кодер-студент первого курса задал такой вопрос: "Слушай, а вообще человек ни разу не сталкивавшийся с 3Д-движками, может понять что такое умножение матриц, или он может только вызубрить?" Я честно говоря не знал даже что и ответить.
[Ответ]
_guru_ 22:33 19.09.2007
Сообщение от The_God:
...и он забил на учебу,
то где гарантии что он доведет до конца проект на работе ?
может также спрыгнет когда станет сложно и всё, и доделывайте как хотите сами...
ведь опыт спрыгивания уже есть ...
ИМХО - мухи отдельно, котлеты отдельно. Диплом нужен - да. Это показатель того что человек умеет думать и решать новые задачи, поставленные перед ним ( конечно если диплом заработан потом и кровью, а не куплен, получен по знакомству... ). Ну а гарантий того что кто-то не спрыгнет никто не даёт. Эпоха развитого социализма и деревянных людей закончилась. Строем в столовую больше никто не ходит - каждый сам за себя. Если человек "спрыгивает "- скорее всего у него на то есть причины. Где-то предложили больше ... или контора солидней... ( темболее что срок разработки одного проекта может легко достигать напрмер 5 лет - ИМХО срок немалый ) Это рыночная экономика. Ну ниразу не поверю что софтверная компания может зависеть от работы одного человека ( респект и уважуха такому программисту !!!) Вообщем о чём это я ?! - а о том что хз какая связь между дипломом и "спрыгиванием"
[Ответ]
_guru_ 23:02 19.09.2007
Сообщение от RiderV:
Цитата:
Сообщение от The_God
и доделывайте как хотите сами...
ведь опыт спрыгивания уже есть ...
а если он не смог поступить, то значит вообще не целеустремлённый тип.
Точняк. До ужоса достало прийти на более оплачиваему работу и получить в зубы толмуд кривых программ, абы как работающих и так же написанных. И получать люлей при каждом их сбое, пока пробуешь разобраться что же это программа делает, для чего она вообще, и как же она устроена...
Впрочем , не скрою, по молодости так разок тоже сделал.
Ну почему каждый программист думает, что до него сидели обязательно "криворукие" программеры, а стоило ЕМУ прийти - и на контору снизошла великая благодать? Собственно это ниразу не наезд ( может так оно и есть ) - скорее филоское размышление...
[Ответ]