Из математика в front-end разработчика. С чего начать?
Добрый день! Ситуация такова - у меня за плечами есть высшее математическое образование, сейчас учусь в аспирантуре. Занимаюсь преимущественно теоретической математикой, точнее абстрактной алгеброй. С годами начало приходить понимание того, что все же это больше занятие для души, нежели способное хоть как-то обеспечить.
Поэтому где-то полгода назад пришла в голову мысль, что нужно что-то в жизни менять и начинать переориентироваться, а web-разработка была интересна всегда. Конечно, в университете на каком-то начальном уровне изучались такие языки программирования, как Java и С++, но, как мне кажется, на данный момент их мне было бы гораздо сложнее постигнуть.
Итак, где-то полгода назад были закончен интенсив htmlacademy.ru, что в принципе дало некую необходимую базу, потом верстались относительно простые макеты, пришло понимание того, что необходимо гораздо глубже во все вникать, изучать JavaScript и множество новых технологий. Но с их количеством глаза просто разбегаются. Позже возникла срочная необходимость написания статей для диссертации и сдачи кандидатского минимума, и все изучение было заброшенно на пару месяцев.
Теперь разполагаю большим количеством свободного времени для изучения. Есть месяса 4 по 5-7 часов в день свободного времени. В идеале хотелось бы к осени найти хоть какую-то работу (стажировку) в сфере front-end. По сему вопрос, чтобы вы посоветовали изучать в первую очередь, если пока есть только уверенное знание HTML и CSS и самые основы JavaScript?
Посмотрев даже на самые junior вакансии на сайтах кажется, что такой объем необходимых знаний не осилить годами. С чего начать? Стоит ли браться за изучения JavaScript с книг Флэнагана и Ильи Кантора? Или сначала нужно что-то попроще? Или я вообще заблуждаюсь, что это слишком сложный уровень? Знаю, что в интернете масса видео и различной литературы, но сложно отделить, что именно необходимо в первую очередь.
И касательно именно верстки, в каком порядке стоит знакомиться с такими технологиями, как Gulp или GRUNT? Что стоит выбрать из CSS-препроцессоров? Есть некоторый опыт работы с bootstrap, может стоит на что-то еще обратить внимание? И вообще, какой минимальный набор нужно иметь в запасе, чтобы получить начальную работу в этой сфере? С каким-либо фрилансом на таком уровне связываться не вижу смыла.
P.S. Очень хорошо владею английским языком, техническую литературу читаю без проблем.
Почему именно front-end? Математики в IT сфере сейчас в большом почете. Почему не хотите углубиться в другие области IT? К примеру: machine learning, data mining, video audio image (нужное подчеркнуть) processing, 3D графика.
Согласен с предыдущим оратором. Продолжать грызть матан в вашем случае единственный правильный путь. Что в принципе совсем не дурно. Просто, видимо, автору хочется денег уже и желательно скоро. И это нормально. Ничего плохого в том, что придете в итоге к серьёзным задачам через какой-нибудь скрипт или руби. Но матан ни в коем случае не забрасывать.
Argentum88: Да дело совсем не в том, что не хотелось бы углубиться в другие области. Просто, видимо, я действительно плохо себе представляю, где именно мои знания могли бы пригодиться. Я вполне осознаю, что есть вещи, гораздо более увлекательные, чем front-end, но боюсь, что "моя математика" далеко ушла от того, о чем пишите Вы. Конечно, у меня есть какие-то знания основ искусственного интеллекта. Но в этом и подавно я плохо представляю, с чего начать..
Дмитрий Авилов: Да нет, менять математическое образование уже и вряд ли бы получилось. Тут скорее проблема в узкой направленности на данный момент конкретно моих исследований.
silentiumdedirichlet: Я думаю, что все хотят сказать вам, что тут многие хотели бы владеть математической базой, а у вас этот навык, так скажем, из коробки.
И вот скажите, нафига вам фронт-энд? Вы бросаете математику потому что она вам надоела, или потому что вы не можете ей зарабатывать нормально? Судя по посту - второе, а значит С++ в руки и идите пилить алгоритмы, где нужна математика. Всякие Яндексы и Гуглы таких любят, и платить будут хорошо.
Ну, во-первых, намерения ее бросать у меня нет и она мне не надоела. Наверное, я просто не знаю, как ей воспользоваться. Потому как оказалось, что чистая теоретическая наука (я не говорю, конечно, о всей математике, а только о том, чем занимаюсь я) мало где пригодна. И да, спасибо за совет.
Еще в крупном геймдеве (AAA+ проекты или написание крупных движков) ценятся математики. Естественно, хорошо знающие алгоритмы и хорошо умеющие писать на C++ (сейчас уже иногда и C# сгодится).
Владимир: да, кстати, про геймдев я забыл сказать. С# все же не прокатит - он ощутимо медленнее С++. И геймдев на C# - это почти всегда Unity3D. А на нем ААА-игры не особо охотно делают - слишком он медленный для этого. А в инди-игрушках как правило получается обходиться без крутой математики, насколько мне известно.
Espleth: Все так, вы правы. Я упомянул C# именно держа в уме Unity, так как на нем все же есть AAA проекты, пусть пока и не так много. Еще, кстати, серверные части MMO часто пишут на Java. В том числе туда выносят и различные расчеты, физику, AI. Так что Java тоже вполне себе язык для крупного геймдева.
мне кажется вам прямая дорога в data-science, data mining, machine learning, neuro-technology, и подобные околонаучные и основанные на математике вещи, притом не фриланс, а нормальные штатные конторы, занимающиеся серьезными вещами, притом не только в РФ, но и за рубежом, возможно удаленная работа. и интересно, и близко к вам по направлению и высокооплачиваемо.
а зачем вам веб? менять шило на мыло, притом с этим мылом вы будете отстовать от других специалистов, кто в этой области уже давно. зато с математикой в области обработки данных вы будете на равне, а то и может быть впереди остальных, у кого мало математического опыта. единственное вам нужно поднатаскаться в программировании, алгоритмах, языках Python, C, C++, C#, R, Statistica, Wolfram, параллельным вычислениям, все что наукоемкое....
Опять же, я понимаю, что, наверное, это было бы мне гораздо интереснее, нежели веб. Но с тем, что Вы перечислили у меня есть только беглое ознакомление, за исключением, быть может, Wolfram. Пытаюсь оценить, какое количество времени мне понадобится, чтобы изучить хоть частично на начальном уровне то, о чем Вы говорите? И с чего начинать? Конечно же, у меня есть базовые познания в основах искусственного интеллекта и статистики, но теоретическая математика настолько забрала меня за последние лет 6, что мне действительно сложно представить, с чего можно начать идти по этому пути.
silentiumdedirichlet: согласен с globuzer. Статистика сама по себе очень скучная штука. Если вы занимались математикой, уже будет намного проще понять (data-science, data mining, machine learning, neuro-technology). Вообщем-то если что-то писать по обработке данных, то на C++ или R. Ну неплохо было бы ещё ознакомиться с какой-нибудь СУБД или хранилищем. Искать библиотеки всякие готовые по нейронным сетям и обработке данных. Сложных задач по обработке данных много. Какая именно прикладная задача вас захватит не знаю и никто не знает... Копайте в сторону что нужно бизнесу для того что бы "в_учить товар" или "отжать денег" или "прогнозирование", вообщем туда где прибыль зависит от результатов вашего труда. К сожалению изучать материал можно бесконечно долго и в результате остаться с математической теорией в голове, которую хочется применить, а негде.
Хорошо там, где нас нет :) Если поискать темы, здесь тоже создавались, то такие же вопросы задают и front-end-щики. Переквалифицируетесь и потом тоже будете писать, что это:
больше занятие для души, нежели способное хоть как-то обеспечить.
Как раз таки на занятиях для души люди больше всего и зарабатывают. Надо только придумать, что продать и кому.
Vanilla javascript, оставьте фреймворки школьникам, javascript школьники не знают, а он очень functional(в смысле парадигмы). Моделирование и визуализация (SVG, canvas) - там очень много математики, это востребовано и мало кто умеет(взгляните arborjs.org, paperjs.org)
Тоесть вы такой крутой математик, что за всё время учебы в университете ( 4 + 2 + 4 = 10 лет) не нашли ни одну задачу на решении которой сможете заработать? Может уберёте "математик", и напишете просто "около it"-шник.
Ну как "математик" я все же складываю лучше, у меня пока что это 5+2. Если Вы считаете, что в любой области чистой математики на какой-либо задаче можно что-то заработать, то Вы сильно заблуждаетесь.
С годами начало приходить понимание того, что все же это больше занятие для души, нежели способное хоть как-то обеспечить.
Странно... у меня знакомый математик в Португалию лет 10 назад уехал и там живет до сих пор.
JavaScript и множество новых технологий
да какие там технологии? это обвесы/свистоперделки над стандартным HTML, CSS и JavaScript.
С годами начало приходить понимание того, что все же это больше занятие для души, нежели способное хоть как-то обеспечить.
а зачем было учиться? какова цель была учебы? папа с мамой заставляли? Странно как-то... я забил болт на вышку и пошел работать. Ибо понимал, что мне В/О нафиг не уперлось. А вы зачем математику изучаете? Для души? Много свободного времени?
Нет, никто не заставлял. Цель учебы, наверное, довольно банальная. Получить знания и привнести позже в них хоть какой-то свой вклад. И математика, опять же, была выбрана из тех банальных побуждений, что действительно просто нравилась.
С вашими знаниями и свободным временем вы можете получить работу в сфере фронтенда через месяц учебы.
Вы слишком переоцениваете сложность этого занятия. Как правильно уже написали, вам скорее дорога в Data science, machine learning, и другие крутые области. Приходите в Яндекс, если есть такая возможность, там действительно любят и ценят таких людей как вы.
zooks: Ну так Stylus не связан с Ruby. Сейчас я использую Sass, но к Stylus на прошлих проектах вопросов не было. Думал ваша категориченость по libsass что-то значит, показалось.
Поэтому где-то полгода назад пришла в голову мысль, что нужно что-то в жизни менять и начинать переориентироваться, а web-разработка была интересна всегда.
Web-разработка - не очень умное занятие после чистой математики (алгебры). Там, конечно, можно сидеть и выдумывать интересные задачки для себя, но оно там не требуется.
Самому понадобилась матёма, когда делал реализацию aes128 (умножение многочленов над полем Галуа) и при изучение метода индуктивного вычисления функции на пространстве последовательностей (изоморфные отображения классов эквивалентности).
Если что-то писать бездумно, это может завести в тупик, поэтому нужно понимать, как работают алгоритмы.
И вообще, какой минимальный набор нужно иметь в запасе, чтобы получить начальную работу в этой сфере?
Не ориентируйся на работу, таких работников (и даже лучших в разы) - вагон и маленькая тележка.
На фриланс биржах периодически вижу проекты на R.
Советую как выше говорили двигаться в сторону обработки данных, параллельно начинайти фрилансить. В таком наукоемком направлении можно не бояться конкуренции с индусами.