Путь программиста. Какой он?
| |
Ignite | Дата: Пятница, 23 Ноября 2012, 23:40 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Хотел накатать буквально пару строк c вопросами типа “посоны, а какой язык лучше учить для создания мега-пупер ММО», но чего-то прорвало… . Возможно, это пост свихнувшегося от будничной монотонной жизни человека, а возможно - человека, неожиданно оказавшегося в состоянии пересмотра жизненных ценностей, интересов и приоритетов. Некоторые вопросы долгое время не дают мне покоя (прямо-таки спать спокойно не могу :D). Написано несколько сумбурно, не судите строго Итак, … Увлекаться компьютерами как таковыми начал лет с 8-9. Классах в 3-5 писал программки на Паскале (преподаватели в школе были в экстазе :D), относительно неплохо для своего возраста в то время разбирался с модульным строением компьютеров, 2ой свой компьютер собирал самостоятельно(лет в 12). Понемногу освоил хтмл, учился рисовать что-то внятное в графических редакторах, в общем было интересно. К сожалению, культуры обучения программированию как таковой не было ни моем кругу общения (школа, семья), ни в общем то в городе в целом. На весь город в то время были только простенькие курсы по Паскалю, интернет был диалапный и жутко дорогой (к печали своих родителей за месяц бывало съедал по 2-3 тысячи рублей за что получал заслуженных звиздюлей :)) и где взять хорошую литературу по программированию, например на С++, я не знал. Те немногие книги, что видел в книжных магазинах казались совершенно непонятными и неусваяемыми для школьника младших классов (была там одна справочная литература).
Со временем стал уделять много времени игрушкам (да и сейчас не могу зачастую оторваться от хорошей партии в Battlefield 3 :D, Civilization V ), компьютерные клубы: КС, Варкрафт 3 по лану, и т.п. Игры, оставившие в моей голове отпечаток словно выжженный клеймом о Великом игрострое – HOMM2, HOMM3, Half-Life, Fallout 2, Jagged Aliance 2, Аллоды 2, Космические Рейнджеры… При всей своей привлекательности программирование отошло на дальний план. В какой-то момент всеобщий тренд «будь юристом или экономистом» и советы знакомых, родителей наверное переломили меня, в следствии чего высшее образование у меня сейчас гуманитарное - экономист Знания математики, физики – на уровне 9 класса мне кажется, в гуманитарном институте – гуманитарные предметы, что-то еще со школьных времен прогулял, не доучил, что-то подзабылось, в общем МРАК! :).
Не так давно отчасти по воле случая, отчасти по рабочей надобности пути мои соприкоснулись с кодингом :). И тут закипело, вспомнилось школьное увлечение программированием, воспоминания «эх, вот раньше делали игры а не это унылое нынешнее го**но». На фоне рутинной работы манагером тема программирования и в частности геймдева стала как отдушина. Вихрем захватив меня она понесла в поисковые запросы типа «обучение программированию с нуля», на разнообразные форумы по гейм-деву. В какой-то момент понял, что чем читать «о том, какие языки лучше для этой задачи, а какие для той» и надо уже приступать к самому самообучению .
Выбор пал на язык Python, изучение которого по моему мнению должно дать понятия об основных принципах программирования, алгоритмах, не сильно отвлекая на разбор синтаксиса языка. Начал, как ни странно с англоязычной книги «Invent Your Own Computer Games With Python», дающей примеры игр на Python 3-ей версии(кстати, несмотря на мои опасения по поводу читабельности англоязычной литературы читать эту книгу оказалось очень приятно да и вообще появилось ощущение что английский язык по своей природе намного лучше подходит для описания ЯП нежели русский :)). Сейчас начинаю читать Лутца, некоторую другую литературу по архитектуре ПК но на данном этапе уже понимаю, что в любом случае Пайтон это только отправная точка, хочется фундаментальных знаний, да и хотя бы потому что графический движок в перспективе на нем не запилить . Да-да-да, маниакальная идея создания собственного игрового движка, который непременно сможет реализовать мои «корованы» плотно осела в моей голове. А если серьезно, то иллюзий по этому поводу не питаю, но написать СВОЕ охото безумно хотя бы для того что бы понять, КАК все это работает. Другими словами, вопрос создания собственного движка в будущем для меня принципиальный: создание своих собственных инструментов, принципы работы которых я буду знать и понимать представляет для меня намного бОльший интерес, нежели использование «костылей». Говоря о «костылях» я имею в виду движки-конструкторы, и в некоторой степени графические движки типа Ogre3D. Понятно, что самому неимоверно сложно будет добиться и малой доли функционала существующих бесплатных (не говоря уж о коммерческих) движков, но я подхожу к этому с точки зрения самообучения, хотелось бы иметь фундаментальное представление о формировании и выводе графики, логики, и, соответственно, запилить хотя бы элементарный по функциональности но СВОЙ со своими ГРАБЛЯМИ (с применением DirectX в первую очередь, OpenGL во вторую). А это уже C или Java. Какой из С – тоже вопрос.
В общем с какого то момента в голове что-то щелкнуло. Нахрен торговлю, хочу быть программистом! Цель максимум – стать хорошим профессиональным программистом. Чувствую, что эта тема меня уже так просто не отпустит (да и как где-то писали: если идея не покидает дольше двух мясецев – реализуйте ее , она в моей голове теплится уже намного дольше ), Особенно это контрастирует с уже немного осточертевшей и будничной работой по основной специальности (экономика – манагерство). Некоторая финансовая свобода у меня есть, поэтому могу себе позволить использовать время на собственное обучение. И тут следующий вопрос, адресованным программистам с солидным стажем :): насколько реально с моими знаниями, гуманитарным образованием в 24 года стать хорошим грамотным разноплановым программистом(геймдев, энтерпрайз)? И если это реально, сколько предположительно может пройти времени до того момента, когда я, допустим, смогу полноценно претендовать на вакансию программиста (и смогу ли вообще с гуманитарным дипломом) – некая планка. В противном случае нужно ли брать ориентир на магистратуру (или 2ое высшее, курсы).
Какие-то знания у меня уже есть но они на мой взгляд довольно разрозненные: немного там, немного тут. ЯП, по крайней мере пока что(пока не дошло дело до высшей математики и сложной геометрии, физики) даются довольно легко. Но хочется взяться за структуризацию своих знаний и подойти к этому серьезно, чтобы не было «пробелов» и перекосов в тех или иных областях. Пока в этом плане посматриваю на курсы «Специалист» - «Основы программирования и баз данных». Фанатичность захватила меня настолько, что я почти дошел до крайностей и готов уже при необходимости достать учебники по геометрии, алгебре, физике за 8-9ые классы и учить их заново :).
Итак, обобщая: 1: Насколько это возможно с высшим гуманитарным образованием в 24 года начать изучение программирования практически с азов и стать уверенным специалистом с возможностью трудоустройства на вакансию разработчика ПО в дальнейшем а то и попасть в хорошую Гейм-дев контору? Каковы на ваш взгяд предполагаемые сроки такого обучения? 2: Нужно ли брать ориентир на второе высшее техническое образование в том случае, если я беру в расчет возможность трудоустройства? Или самоучкам трудоустроиться тоже реально. 3: Для получения фундаментальных знаний о программировании, алгоритмике и т.п. посматриваю на курс «Основы программирования и баз данных» - «Специалист». Стоит ли оно того? Если стоит, то какие еще курсы или учебные программы вы можете посоветовать? 4 : Вопрос, связанный с 3им – какую литературу (а если подскажете в каком порядке ее лучше пережевывать – я был бы счастлив :D) вы можете посоветовать по фундаментальным основам, тому что нужно знать, и собственно языкам программирования. Что-бы не было каши в голове И имею в виду: построение алгоритмов, логики, разработка интерфейса, разные аспекты создания проектов, материал по математике, геометрии, примерно охватывающий необходимый объем знаний, при котором можно чувствовать себя более-менее комфортно в дальнейшем), физика, сборники задач по программированию) 5: Что касается выборов ЯП: в данный момент планирую продолжать изучение Пайтона, что потом? Пока мне видится два варианта: 1) Акцент на гейм-дев (если перспектива вообще реальная). В этом случае – хотелось бы начать с С с переходом на С++ и С#. Изучение Direct3D, OpenGL. 2) Акцент на энтерпрайз, гейм-дев как хобби Тут выбор представляется изучением Java, C#, … Хотелось бы услышать мнение, что в эти списки стоит добавить, что убрать, в общем буду рад любому полезному совету, ссылке на литературу и т.п.
Также люблю литературу в жанре фентези, фантастика. (Толкин, Роберт Асприн, Мария Семенова (Волкодав), Гарри Гаррисон). Есть множество мыслей по написанию сценариев, хотелось бы хотя бы отчасти охватить и эту область, если брать инди-дев. Иногда ощущаю трудности с выражением мыслей и идей в литературной форме. Хоть и говорят "писателем рождаются, а не становится", все же буду рад советам по развитию писательских навыков
З.ы. На самом деле вопросов оказалось еще больше, но думаю и этот пост немногие до конца осилят, так что оставлю их на потом З.ы.2. Очень хотелось бы в теме услышать ответ таких опытных людей как nilrem. Очень понравилось изложение мыслей и формат работы над проектами (художник, сценарист, программист в 1).
Сообщение отредактировал Ignite - Суббота, 24 Ноября 2012, 00:13 |
|
| |
Desert_Hunter | Дата: Суббота, 24 Ноября 2012, 00:21 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Ignite, скажите мне, очень интересно узнать. Какой смысл создавать второй аккуант, задать вопрос и "смыться"?
|
|
| |
MrNesh | Дата: Суббота, 24 Ноября 2012, 00:22 | Сообщение # 3 |
Воин добра и света
Сейчас нет на сайте
| Поздравляю Вы не начали сразу в бой а изучили основы Согласен на счет питона Можно взять пока pygame(библиотека для вывода графики) А работать хочется в Веб? Можно взять C# НО питон можно и оставить как основной А дополнительно писать на C++ Напиши 1 игру и многое проясниться
Сообщение отредактировал jiumx60rus - Суббота, 24 Ноября 2012, 00:27 |
|
| |
Ignite | Дата: Суббота, 24 Ноября 2012, 00:23 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Quote (Desert_Hunter) Ignite, скажите мне, очень интересно узнать. Какой смысл создавать второй аккуант, задать вопрос и "смыться"? Не совсем понял о чем вы Какой 2-ой аккаунт? Да и никуда я вроде не "смывался".
|
|
| |
ALIGARX | Дата: Суббота, 24 Ноября 2012, 00:33 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Есть умпешные кодеры и в 15-16, с одной школой за спиной. Я начал в 18, уже 3 года в веб программинге (PHP), другие языки не беру в расчет, ибо они мне для работы не нужны. Хотя последнее время хочу переходить на программинг под IOS.
Былобы жилание, научиться можно. Но учиться нужно на исходниках + книга, одна лишь книга ничем не поможет. И как выразились, только после написания своего проекта, хоть и маленького - научишься сразу ооочень многому.
|
|
| |
Desert_Hunter | Дата: Суббота, 24 Ноября 2012, 00:35 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Quote (Ignite) Не совсем понял о чем вы smile Какой 2-ой аккаунт? Да и никуда я вроде не "смывался". Ну я предположил :-D
|
|
| |
Ignite | Дата: Суббота, 24 Ноября 2012, 00:42 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Quote (jiumx60rus) Можно взять пока pygame(библиотекадля вывода графики) Да, сейчас как раз буду переходить ко 2ой книге по Пайтону, там описывается работа с PyGame. Дальше думаю освоение Django параллельно с началом изучения С-подобных языков Quote (jiumx60rus) А работать хочется в Веб? Скорее да Quote (jiumx60rus) Можно взять C# Единственная, наверное причина почему не хочу начинать с Шарпа - говорят, что после С# изучение C++ и С дается с трудом, и наоборот, начиная с С можно затем изучить С++ и С# более быстрыми темпами. Тут наверное даже вопрос времени, сколько у меня его уйдет на последовательное изучение C - C++ - C# и стоят ли трудозатраты того.
Добавлено (24.11.2012, 00:42) --------------------------------------------- Quote (ALIGARX) Былобы жилание, научиться можно. Но учиться нужно на исходниках + книга, одна лишь книга ничем не поможет. И как выразились, только после написания своего проекта, хоть и маленького - научишься сразу ооочень многому. Исходники само собой использую Все программы, описанные в книгах переписываю на память после прочтения уроков, а то и не по одному разу с некоторыми изменениями что бы максимально вникнуть в суть разбираемой темы. Поэтому ищу интересные задачники, литературу по составлению оптимальных алгоритмов и т.п.
Сообщение отредактировал Ignite - Суббота, 24 Ноября 2012, 00:44 |
|
| |
MrNesh | Дата: Суббота, 24 Ноября 2012, 00:46 | Сообщение # 8 |
Воин добра и света
Сейчас нет на сайте
| Можно написать на питоне+pygame игру жизнь для обучения Добавлено (24.11.2012, 00:46) --------------------------------------------- Нуу это кому как изучение...мне легко с срр на шарп
|
|
| |
Ignite | Дата: Суббота, 24 Ноября 2012, 00:59 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Quote (jiumx60rus) Можно написать на питоне+pygame игру жизнь для обучения Можно поподробнее, в чем идея игры?:) Над С стоит подумать...
Добавлено (24.11.2012, 00:59) --------------------------------------------- Кстати, еще вопрос к теме. В перспективе нтересует реализация воксельной графики, в суть ее вникал пока только поверхностно. Из инструментов по написанию движков на воксельной графике я так понимаю больше всего подойдет С, С++? И все-таки интересует вопрос по поводу курсов "Специалист". Может кто-нибудь посещал
Сообщение отредактировал Ignite - Суббота, 24 Ноября 2012, 01:14 |
|
| |
MrNesh | Дата: Суббота, 24 Ноября 2012, 01:01 | Сообщение # 10 |
Воин добра и света
Сейчас нет на сайте
| В википедии глянь Там все описаниеДобавлено (24.11.2012, 01:01) --------------------------------------------- Нуу я смотрел только записи курсов Вроде норм А что ты так за си уцепился
|
|
| |
Ignite | Дата: Суббота, 24 Ноября 2012, 01:09 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Quote (jiumx60rus) В википедии глянь Там все описание Займусь Quote (jiumx60rus) Нуу я смотрел только записи курсов Вроде норм Собственно и хотел записаться на вебинары.
Quote (jiumx60rus) А что ты так за си уцепился Если рассматривать ЯП с точки зрения разработки граф. движков то в С привлекает заявленное быстродействие. Если с точки зрения обучения - есть желание начать так сказать с "основ", оценить хваленую стройность синтаксиса и т.п. К тому же некоторые курсы идут в такой хронологии - C - C++ - .NET Но вопрос по С дня меня очень открытый
Сообщение отредактировал Ignite - Суббота, 24 Ноября 2012, 01:11 |
|
| |
MrNesh | Дата: Суббота, 24 Ноября 2012, 01:19 | Сообщение # 12 |
Воин добра и света
Сейчас нет на сайте
| Быстродействие зависит во многом от кода...но 1. Технологии идут семимилными шагами...уже не так важно 2. С++ = С + ООП
|
|
| |
wcpt | Дата: Суббота, 24 Ноября 2012, 17:52 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| блин вот я программировать начал лет в десять, но потом забросил, и теперь, когда мне 17, я могу сказать что зря! Если бы тогда у меня был бы интернет или книги, я боюсь даже представить, чтобы из языков я бы учил сейчас. Быть может, изучил бы все и давно бы игры писал, ан нет, забросил
|
|
| |
fireday | Дата: Среда, 28 Ноября 2012, 23:57 | Сообщение # 14 |
частый гость
Сейчас нет на сайте
| Я не игродел, но программист. Если вы действительно хотите понимать азы программирования. Азы движка и т.п. Начните с простых языков. Что бы синтаксис вас не смущал и вы могли свбодно реализовать свои идеи. Так же не советую начинать сразу с игро-дела. Попробуйте себя в ООП. === Все выбирают языки... Этот лучше, нет тот... Язык всего лишь средство реализации. Я уже больше пяти лет пишу на вб6 (ЯП 98г), и, знаете, что я скажу.. На старых языках придется изобретать очень много велосипедов, однако, это может поднять ваш уровень программирования так, что в за секунды сможете построить в уме здоровый алгоритм, который писать несколько минут. Под построить я подразумеваю не 100% результат, а представление алгоритма. Воспринять это можно по разному, надеюсь вы меня поймете.
Я знаю как минимум одного человека который программирует до сих пор на вб6 при этом зная большинство актуальных языков, вб.нет, с++, ассемблер. Может что-то еще, не знаю. Ник его mikle. Он написал свой спрайтовый двиг (вб6+асамблер+(с++)). Сделал гоночку на чистом дирексе, что многие игроделы просто не осилят. Вот возьмите поучите программирование, а потом уже займитесь игро-делом. Совсем все по другому увидите.
Сообщение отредактировал fireday - Пятница, 30 Ноября 2012, 01:22 |
|
| |
|