Как мат-подготовку в ВУЗе правильно объединить с программированием?

Опишу кратко свою ситуацию. За плечами ВО есть, но гуманитарное.
Интерес к программированию когда-то был.
Принято решение получать еще одно ВО в области computer science.
0. чтоб потом не откидывали резюме еще до собеседования из-за непрофильного ВО.
1. сам документ вполне может пригодиться, если придется бежать из этой страны (выборы 2015 не за горами)
2. почерпнуть что-то из мат. подготовки.
3. по поводу программирования больших ожиданий нет (паскаль и бейсик вместо с++/java), штудирую сам, что могу.

Остановлюсь на 2-м пункте.
Меня интересует программирование под iOS. Что именно (и как?) почерпнуть из вышки/дискретки для того же гейм-дева?
Оговорюсь, не задаю вопрос «Как написать свою „ГТА 3ДЭ“ за 5 дней?» или холивар «а нужна ли математика»?
Просто если будет возможность разобраться в математических вопросах, то на что именно сделать упор, а «не наука ради науки»?
Математика не ставится как самоцель.

0. Какие базовые алгоритмы необходимо знать для работы с данными — кроме сортировок?
1. Что из вышки почерпнуть для анимации? Или в это не стоит углубляться — вроде реализации физики жидкости, диффуров, и т.д. Не ради развития,а ради применения? Или большинство задач уже готовы в том же Unity?
2. Где доступнее всего описаны те же графы? (например, интересуют с точки зрения искусственного интеллекта — не для создания «Терминатор-5»), а хотя бы для понимания базовых алгоритмов ИИ).
3. Краткий список мат.аспектов, которые необходимо знать для устройства на работу программистом?
4. Выходит за рамки темы вопроса, и задавать мне его рано, но насколько геймдев в Украине (для мобильных платформ) развит, и какой туда порог вхождения с точки зрения знаний? Почему многие плохо отзываются о работе в геймдеве? кроме овертаймов?
Буду благодарен за ответы.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Математика не ставится как самоцель.
Математика никогда и не должна быть самоцелью. Математика решает задачи.

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

Если iOS то математика не нужна совсем, нужно знать API операционной системы.
Имея базовые познания математики на уровне арифметики 5 класса можно сделать много чего.
Например, написать тетрис. Посчитать количество тетрисов в аппсторе оставим в качестве упражнения. :D
Помните геометрию и тригонометрию 7-9 класса? Вы сможете написать программку, которая измеряет высоту памятника по тени на фотографии.
И т.д.

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

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

Поэтому я могу дать только такую рекомендацию теорминимума:
1. Рональд Л. Грэхем, Дональд Э. Кнут, Орен Паташник Конкретная математика. Математические основы информатики
2. Я. Б. Зельдович, И. М. Яглом, Высшая математика для начинающих физиков и техников.
3. Любой стандартный учебник университетского курса матлогики.

Этого хватит, что бы не сделать очевидных лаж связанных с отсутствием физмат граммотности типа линейных аппроксимаций при нетривиальной работе с гироскопом/акселерометром смартфона; будете знать что такое О(n), почему невозможно построить идеальный статический валидатор/анализатор кода для С++ и так далее.


0. Какие базовые алгоритмы необходимо знать для работы с данными — кроме сортировок?
Короткий ответ: все.

Чуть длиннее: все, что делает информатика — это изучает алгоритмы преобразования данных. Все, чем занимаются программисты — преобразовывают данные.
Прочтите учебник Кормена или возьмите трехтомник Кнута «Искусство программирования», осильте первый том, и пролистайте второй-третий, что бы иметь представление что можно сделать в самых общих случаях. МООС на коурсере есть, есть лекции курса по алгоритмам в MIT OCW. Информации полно, читайте.


1. Что из вышки почерпнуть для анимации? Или в это не стоит углубляться — вроде реализации физики жидкости, диффуров, и т.д. Не ради развития,а ради применения?
Задайте себе этот вопрос позже — у вас тут полная каша в голове.

2. Где доступнее всего описаны те же графы? (например, интересуют с точки зрения искусственного интеллекта — не для создания «Терминатор-5»), а хотя бы для понимания базовых алгоритмов ИИ).
Если вас интерисует ИИ, то вам не графы нужны, а логика и матстатистика.

3. Краткий список мат.аспектов, которые необходимо знать для устройства на работу программистом?
Достаточный, что бы соответствовать вакансии :) См. выше.
Кнут, Орен Паташник Конкретная математика
Це надто товста та заумна книга для початківця. И.В.Романовский «Дискретный анализ» — ось те що треба.
Если вас интерисует ИИ, то вам не графы нужны, а логика и матстатистика.
Так, шановний, а Ви про який ШІ ведете мову? Для ігор то там є три шляхи — кінцевий автомат, дерево рішень і планувальник, так от останній так чи інакше використовує графи... Тай дерева це виродженні графи... Якщож Ви маєте на увазі той ШІ що мову або тексти розпізнає чи сцени аналізує(ну там коэффіцієнти крреляцій усілякі) то там ще цікавіше так чи інакше Ви прийдете до нелінійної трансферної функції(я в сосідній гілці писав) а один з кращих методів описання таких функцій це... графи ))))

Це надто товста та заумна книга для початківця.
Толстая или нет вопрос философский. Но точно не занудная :P
В любом случае никто никого не заставляет читать все подряд от корки до корки.

так от останній так чи інакше використовує графи... Тай дерева це виродженні графи...
У вас графовый фетиш. С таким же успехом можно сказать, что раз реализации графов строятся на списках, то серебряная пуля ИИ — алгоритмы над списками.

Якщож Ви маєте на увазі той ШІ що мову або тексти розпізнає чи сцени аналізує(ну там коэффіцієнти крреляцій усілякі) то там ще цікавіше так чи інакше Ви прийдете до нелінійної трансферної функції(я в сосідній гілці писав) а один з кращих методів описання таких функцій це... графи ))))

Дуже коротко — всі задачі ШІ зводяться до множин вхідних та вихідних данних які поєднуються трансферною("перєдаточной" російська) функцією.
Представьте, пожалуйста в виде графа гамма-функцию.
С таким же успехом можно сказать, что раз реализации графов строятся на списках, то серебряная пуля ИИ — алгоритмы над списками.
offtop on
Зараз такі дикі часи що вже мало хто з програмістів знає, що будь яку(!!!) програму можна написати за допомогою if() goto. Тому так — списки це деякоюсь мірою срібна куля — брайнфак(спун) та й абстрактна «машина Тюрінга» те й тільки робить що туди-сюди обходить список. Тому і так і ні, ні тому як від структур данних ми прагнемо також відповідності нашому мисленню. Програми на брайнфаці писати можна та чи варто ? )))
offtop off
Представьте, пожалуйста в виде графа гамма-функцию.
offtop on
Ось саме через такі «викрики з зали» ШІ досі в дитячому віці а той в зародку ))). Гамма-функція математична це функція з точками розриву 2-го роду. Тобто в деякому околі деяких точок значення функції може набувати будь якої величини. У нас же річ не про представлення усіх функцій відомих з матаналізу графами, чи не так? А нелінійність != !неперервність. Трансферна функція поєднує одну неперервну функцію з іншою. І немає ніяких причин зв’язувати дві такі функції через функцію з розривами 2-го роду. В нашому мозку такого бути не може хочаб через скінченність енергії (скінченну вагу будь-якого метричного оператора що до задач ШІ в загальному випадку).

Щож до систем ШІ що аналізують функції матаналізу то й там буде граф. Тільки не в поточечному виведенні функії на екран, а в вигляді «графа властивостей» — деякої скінченної множини «бірок» які відрізняють одну функцію від іншої в контексті «інструентарію матаналізу» — не повірите саме так працює наше мислення і через те ми можемо класифікувати та працювати з функціями з розривами, а зовсім не через те що наше внутрішнє око здатне заповзти в нескінченність «точка за точкою»... Та це дуже довга розмова варта іншого випадку, топік-стартер хотів взнати зовсім інше...
offtop off


Ось саме через такі “викрики з зали” ШІ досі в дитячому віці а той в зародку ))).
Я силой выкрика торможу прогресс, вы мне льстите.

Гамма-функція математична це функція з точками розриву 2-го роду.
Вот поэтому я ее и выбрал)) При чем заметьте, я был довольно скромен — я не загадал ничего фрактального или невычислимого.

Трансферна функція поєднує одну неперервну функцію з іншою.
Непрерывность? Ну тогда опишите графом винеровский процесс.

Дякую за відповіді.
«Дискретний аналіз» зацікавив, коли продивився зміст.
Безперечно, Кнут — видатний автор. Але його праці досить складні для початківця. Тому цікавить більш зрозуміла для початківців література.
Про графи згадав, бо побачив, що в Unity використовується алгоритм A* search для здійснення pathfinding.
Хотілося б не тільки робити copy-paste, а хоча б зрозуміти, як він працює. Без графів це буде неможливо. Щодо використання графів для інших завдань ШІ в іграх ( той же вибір зброї противником) не знаю.

Не ставлю абсурдні завдання типу «Fallout — own version — made in 3 days,has been compiled after 3 months».
То того ж цікавлять мобільні платформи,а не PC/XBOX.

0. Всем пофиг на диплом
1. Тут хз
2. Так вам шашечки или ехать?
3. Джава и С++ в универе учат, в некоторых местах даже вполне неплохо.

Меня интересует программирование под iOS. Что именно (и как?) почерпнуть из вышки/дискретки для того же гейм-дева?
Вас интересует гейм-дев, iOS или математика? Если гейм-дев, то там очень специфическая математика, ну и железо знать надо. Если iOS то математика не нужна совсем, нужно знать API операционной системы.

0. Теоретически, то все. Практически, всегда есть волшебная функция, которая делает все что надо. Я еще ни разу на форумах не видел тему типа «пацаны, помогите!!!! реализовал за O(N), а надо за O(lg(N))». Конечно, понимание как работают волшебные функции необходимо, но тут он-лайн курсы будут полезны, да и качество изложения материала там будет сильно выше чем в среднем ВУЗе.
1. ИМХО, все уже написано до нас.
2. Графы как структура данных описана в книжках по структурам данных. Мне Седжвик нравится (хоть там и куча примеров на богомерзкой джаве).
3. Первый и последний раз мат задачу на собеседовании мне задавали в Самсунге. Я ее успешно провалил, т.к. к кому времени забыл школьный курс математики. В итоге в Самсунг меня не взяли, чему с бесконечно рад.
4. Развит. Но геймдев он очень специфичен. Я бы на специальные форум пошел, вроде gamedev.ru или типа такого. Могу предположить что проблема будет не в математике, а в том, как эту математику переложить в железо.

0.согласен. Подумывал о ШАГе. (но тут курсы, а не ВО)
Но курсы того же ШАГа под iOS меня не очень радуют стоимостью и какой-то странной учебной программой:много всего,но 45 уроков. Если там краткий обзор по SQLite, Cocos2d, но ничего конкретного — то лучше скачать книги и прочитать, надеюсь"my English skills will be sufficient"
1. вот тут он может пригодиться, но это так..более чем отдаленное будущее.
Может, после иммиграционной реформы в тех же США это будет вообще невозможно. +11 млн новых граждан-мексиканцев — немало.
2. -
3. Мне С-шные языки больше по душе. Паскаль и бейсик уже не так нужны для освоения цикла, списка (вот список я лучше понял как раз на С++ (через классы), чем на паскале), массива, сортировки с выбором или пузырьком.

Интересует геймдев под мобильные устройства. Хотелось бы задать вопрос:
В чем именно специфика геймдейва в Украине? Если все реально плохо, то буду смотреть в другие области.

В чем именно специфика геймдейва в Украине?
Нормально все с геймдевом в Украине. Очень много контор и конторочек разрабатывают казуалки, есть и монстры а-ля Юбисофт или Варгейминг. Порог вхождения на самом деле довольно низок — вполне реально развиться из обезьянки-скриптовщика (накидывать контролы в редакторе и писать несложный функционал для них) до более высокого уровня. Очень популярны кроссплатформенные движки, которые поддерживают и мобильные — Unity3D (нужно знать C#), например. Вакансий для iOS(Objective-C) и/или андроид(Java, Android SDK) разработчиков тоже вполне хватает. Еще направление — HTML5/JavaScript браузерные игры, тоже у нас довольно много народу их делает. Выбрать есть из чего:)

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

Мне Седжвик нравится (хоть там и куча примеров на богомерзкой джаве)
у него и на с, с++ книги есть

Підписатись на коментарі