LINUX.ORG.RU
ФорумTalks

Куда податься?

 , ,


0

3

Привет всем.

После долгого воздержания от ЛОРа я вновь вернулся просить совета у местных специалистов по всему. Дальше будет жж, наверное, так что заранее прошу прощения, больше как-то и спросить не у кого.

В общем, так исторически сложилось, что я - веб-программист. Мне очень стыдно, но тем не менее, это факт, который можно только принять и попытаться изменить. Изначально я относился к веб-программированию с пренебрежением, потом, когда устроился на первую работу - мне даже некоторое время нравилось, но теперь все вернулось на круги своя. При этом, само программирование как занятие - мне нравится и хочется расти и развиваться в этой области. Глупым тоже себя не считаю, хотя недостаток образования и фрагментарность знаний имеется.

Соответственно, возникают вопросы.

  1. В каком направлении двигаться? Я, как минимум, даже не знаю, какие сейчас области и направления популярны, где нужны специалисты и где решаются действительно полезные, интересные и сложные задачи.
  2. С чего начать? Понятно, что с чтения книжек и документации (наверняка, помимо самого программирования понадобится математика/электроника/что-то еще смежное). Подумываю, в свободное время, участвовать в свободных проектах, чтобы набраться опыта и заодно было что потом показать при трудоустройстве по выбранному направлению. Годная идея?
  3. А лучше ли вообще быть хорошим узкоспециализированным специалистом, чем знать понемногу и везде? Сейчас я, с одной стороны, в основном веб-программист. С другой стороны, я за годы работы вроде бы веб программистом и базы данных оптимизировал, и с распознаванием изображений сталкивался, и десктопные приложения писал, и руководил немного, и с железками сталкивался (ну на уровне ардуины и малины, не больше). Не говоря уже про решение всяких задач администрирования и тому подобного. Но глубоких знаний, кроме веба, нигде нет, там кусок, тут кусок. Да и в вебе не поспеваю за всеми новомодными фишечками. Но, кмк, с точки зрения потенциального роста, в т.ч. финансового, лучше быть редким и востребованным специалистом в чем-то конкретном, нежели вот таким вот «везде понемногу».

В общем, прошу мудрых советов. Ссылки категорически приветствуются.

★★★

Ссылки категорически приветствуются.

В тупичок свой иди подайся!

CYB3R ★★★★★
()

У меня сегодня хорошее настроение поэтому я дам те,е единственно адекватный совет, который ты можешь услышать от незнакомого человека (весьма капитанский, но такова уж суть твоего вопроса...):

В каком направлении двигаться?

Пощупай различные направления, поэкспериментурий и выбкри тот путь, который тебе понравится.

P.S. Я могу дать тебе и другой совет. Универсальный. Если будешь ему следовать, то проживешь жизнь скорее всего скучно и бесполезно, но с голоду не сдохнешь и всегда будешь востребован: разберись с Явой.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

P.S. Я могу дать тебе и другой совет. Универсальный. Если будешь ему следовать, то проживешь жизнь скорее всего скучно и бесполезно, но с голоду не сдохнешь и всегда будешь востребован: разберись с Явой.

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

Zhbert ★★★★★
()
Ответ на: комментарий от Stahl

Пощупай различные направления, поэкспериментурий и выбкри тот путь, который тебе понравится

Так в том и вопрос, какие есть направления?
Да, на всякий, я имею в виду именно направления деятельности, задачи, а не технологии и инструменты их решения.
Есть, например, специалисты по компьютерному зрению, есть - по базам данных, есть - по машинному обучению.
И как я понимаю, таких вот направлений много, хотелось бы для начала:
-Знать из чего выбирать
- Иметь представление о том, что перспективно и развивается на данный момент, а где застой и деградация (как в том же вебе, где реально стоящих задач очень мало, а в основном - очередные невероятные социальные стартапы или интернет-магазины).

А насчет явы.
Во-первых, это всего-лишь технология. Имхо, в нее всегда можно быстро вкатиться.
Во-вторых, имеет смысл опять же от задач отталкиваться. Как пример, зачем мне изучать какой-нибудь Hibernate или JSP, если я не буду с вебом работать? И т.д.
В-третьих, я думаю, на кусок хлеба и вебом можно заработать, вакансий пока море. Даже если крах пузыря стартапов, о котором вещают в соседнем треде случится, все равно с иглы веб-приложений уже не слезут, так же как и с иглы Явы.

unikoid ★★★
() автор топика
Последнее исправление: unikoid (всего исправлений: 1)
Ответ на: комментарий от Stahl

А я вот когда последний раз был на даче долго (пару дней назад вернулся) в серьез думал пойти по деревне и пошукать какой «Восход» в рабочем состоянии тыщ за 5-10. Подшаманить и тряхнуть страиной. Что может быть круче...

Zhbert ★★★★★
()

В каком направлении двигаться?

В том, которое интересно. Если ты сам не знаешь, что тебе нужно, то тебе никто не поможет. Вот еще путеводитель для заблудших.

Я, как минимум, даже не знаю, какие сейчас области и направления популярны

Мобильная разработка, веб.

Подумываю, в свободное время, участвовать в свободных проектах, чтобы набраться опыта и заодно было что потом показать при трудоустройстве по выбранному направлению. Годная идея?

Ну, ищешь проект на гитхабе, который интересен и думаешь, как что-то улучшить/исправить, отсылаешь PR. Про свои проекты тоже не забудь.

На 3 пункт ты сам ответил.

Nucleus-
()
Ответ на: комментарий от unikoid

направления деятельности, задачи, а не технологии и инструменты их решения.

Подход нежизнеспособный. Направлений миллионы. Программистов десятки тысяч. На последней своей работе я писал игры-пинболлы (шарик, запущенный пружинкой, носится по коробке и стучится об контактные поля).
Ты думаешь я хотел быть пинбольщиком? Или геймдевом? Нет, я просто программист-плюсовик. Сегодня я пишу игрушки, а завтра драйвер пениса скайнетовского терминатора. Да, переход от темы к теме предполагает ознакомление с нюансами новой задачи. Но я всегда оставался программистом сишником-плюсовиком.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

Но ведь это и есть то, о чем я в третьем вопросе топика говорил.
Случайное получение разрозненных знаний из разных областей.
То есть, да, у меня, допустим, был неплохой опыт работы с тем же постгресом. От простейших селектов до всяких хитровыделанных индексов по самописным хранимых процедурам и тюнинга всяких параметров, влияющих на оптимизацию. И репликацию делал, и бэкапы настраивал. Но это отнюдь не значит, что меня возьмут DBA в сколько-нибудь серьезную компанию.
Также как был опыт написания приложения, которое фиксирует номер движущейся под камерой машинки. Экспертом по компьютерному зрению я от этого не стал ни разу.

unikoid ★★★
() автор топика
Ответ на: комментарий от Zhbert

«Восход» в рабочем состоянии тыщ за 5-10. Подшаманить и тряхнуть страиной.

Фу, и куда ты щас поедешь на 2тактнике? Только по той же деревне скотину травить выхлопом.

INFOMAN ★★★★★
()
Последнее исправление: INFOMAN (всего исправлений: 1)

В SAP R/3 подадись. Ролей много, выбирай.

slaykovsky ★★★
()
Ответ на: комментарий от INFOMAN

Фу, и куда ты щас поедешь на 2тактнике? Только по той же деревне скотину травить выхлопом.

А ты всерьез думаешь, что я куплю себе за 10 тыров годное железо и поеду на нем без прав по трассе?

Zhbert ★★★★★
()
Ответ на: комментарий от holuiitipun

Так второй пока в бете.
Все остальное уже давно работает.

grim ★★☆☆
()

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

h31 ★★★★
()
Ответ на: комментарий от h31

Ок, напишу по пунктам свое видение.

1. Исчезающе малое количество интересных задач. Нет, безусловно, где-то они есть, но я их особо не встречал. Абсолютное большинство веб-проектов - шаблонные социалки/магазины/агрегаторы/их смеси. Возьми данные из бд, покажи пользователю. Возьми от пользователя, положи в БД. Разница в масштабах, но и тут я особых проблем не вижу, сейчас уже ничего особо нового для т.н. хайлоада не изобретают, современная распределенная БД, nginx как прокси и балансировщик нагрузки, побольше работы делать на клиенте, если что - докупим серверов. Хотя, буду честен, я в такой хайлоад не попадал, может быть я заблуждаюсь. Сужу только по статьям об архитектуре разных проектов из открытых источников.

2. При этом, инструменты не блещут удобством и оригинальностью. На клиенте JS + модные фреймворки, которые меняются раз в пару лет, принося много обещаний, но оставляя часть старых проблемы и привнося новые. Плюс убогая верстка, плюс до сих пор различные проблемы с кроссбраузерностью. На сервере - MVC, борьба с ORM, если он есть, зачастую - тот же JS, хоть и более удобный в использовании.
Да и ничего там интересного особо не происходит, в основном серверная часть сейчас - некий прокси над базой, даже логики особой нет. Не зря появились попытки убрать его совсем (тот же CouchDB). Получается, что самое интересное может происходить в БД, да и там его немного.

Да, я знаю, что есть несколько другой веб. Есть люди, которые разрабатывают инструменты, которыми потом пользуются все остальные. Тот же http/2, html5, nginx, mongodb, rails, node.js. Только вот можно ли назвать этих людей веб-программистами? По-моему нет, особенно если инструмент - не очередной «мегакрутой» фреймворк на популярном языке, а сам язык или какой-нибудь сервер или БД.
Я хотел бы пополнить их ряды, но смутно представляю себе, как это сделать. Оттого, что я напишу очередной говносайт на node.js - ближе к ним я не стану. Поэтому я и прошу советов у людей более опытных (которые, как мне всегда казалось, здесь есть).

unikoid ★★★
() автор топика
Последнее исправление: unikoid (всего исправлений: 1)

JS ждёт большое будущее. Особенно с приходом WebAssembly в скором времени. Будет большая революция в вебе, новые возможности - подробнее http://habrahabr.ru/post/261205/

Как вариант - полностью погрузиться в JS. Данная узкая специализация теперь будет открывать большие возможности и не только в вебе.

th3m3 ★★★★★
()

Да ты сумасшедший, раз не знаешь куда двигаться :) . Web программирование, это не только делать сайтики на жумле. Это же ентерпрайз - java+js, имхо, туда и надо подаваться.

DALDON ★★★★★
()

А чем именно тебе не нравится веб-программизм?

Update: а, вижу, уже есть ответ.

Miguel ★★★★★
()
Последнее исправление: Miguel (всего исправлений: 1)
Ответ на: комментарий от unikoid

По-моему, ты просто не там работаешь. У нас в конторе пишут исключительно веб; при этом есть и хорошие задачки, и приличная логика в бэкенде.

Miguel ★★★★★
()

С точки зрения финансовой перспективы разница между узким и широким специалистом минимальна по сравнению с разбросом зарплат в целом по индустрии. Так что отталкивайся от доступных тебе вакансий, и пусть даже ты им и не соответствуешь на 100% - шли резюме и в сопроводительном письме пиши про то что «хочется расти и развиваться» и прочие красивые слова. Книжки и документацию читать не обязательно, людей обычно интересует практический опыт.

По поводу других советов - если ты напишешь говносайт на ноде (дурацкое занятие) или на пыхоCMS (занятие более полезное во всех смыслах), ближе ты к ним не станешь, верно. Возможно ты станешь к ним ближе, когда у тебя появится воображение, уверенность в себе и наберется достаточно опыта, для того, чтобы самому себе ставить задачи, а не ждать, пока их поставит кто-то другой. А так во всех направлениях 95% работы это рутина. Оптимально - научиться руководить и сбрасывать рутину на других людей.

shimshimshim
()

Ходи на конференции, спрашивай у самых интересных докладчиков про стек технологий, многие хайрят и можно неформально пообщаться. В общем меняй работу, много раз меняй работу, встряхнешься.

Если уныло и скучно, если решены все проблемы, иди в фундаментальную науку: радиофизику, фотонику.

outtaspace ★★★
()
Ответ на: комментарий от holuiitipun

Погуглил, выглядит довольно интересно. Спасибо.

unikoid ★★★
() автор топика

Предыдущий кризис 2008-2011 годов легче всех перенесли программисты C/C++ с уклоном в embedded.

Deleted
()

программистов сейчас - как собак нерезаных!

w1nner ★★★★★
()

Погроммист - это молодой человек, который пока не нашел себе еще нормальную профессию.

После 35 лет погроммистов выбрасывают на мороз и нанимают более молодых погроммистов.

Так, что выхода два:

1. Пойти из IT в CS и стать большим гуру типа Гослинга или Алана Кея и жить на гранты.

2. Найти нормальную работу - от топ-манагера до сторожа - возможны всякие варианты.

Можно еще указать и третий путь - найти нишу программиста со знание аспектов экономики (финансы, банковское дело) в большой компании и совмещать пп. 1 и 2..

Но это только в кошерном enterpriZe и только в ДС и ДС-2 - в «стартапах» типа «Рога и копыта»(С)(TM), «Артель „Напрасный труд“»(C)(TM) и «Сегодня есть - а завтра нет, а есть хочется» (С)(TM) таких ништяков нет.

Bioreactor ★★★★★
()
Последнее исправление: Bioreactor (всего исправлений: 2)
Ответ на: комментарий от unikoid

Я понял тебя.
Мне кажется, тебе надоела не сколько сфера деятельности, сколько сама рутина. Может ты просто устал? Возьми отпуск на пару недель, выкинь все мысли из головы.
Я бы на твоем месте всё-таки сначала поискал новые варианты в текущей области. По своему опыту говорю, что бывают задачи, которые вроде бы и не сильно отличаются, но при этом намного интереснее. Посоветуйся с коллегами, в конце-концов просто подойди к менеджеру и объясни ситуацию, есть компания большая, наверняка он сможет предложить тебе какой-нибудь другой проекте. Если совсем глухо - ищи другое место в области веба. Не забывай, что вакансий много, а тебе нужна всего лишь одна, так что тебе можно и нужно искать и выбирать :) Только накопи деньжат на время перехода.
Если и там ничего интересного, просто открываешь hh и смотришь, какие вообще есть предложения. Тебе в любом случае придется туда смотреть, а выбирать новую область без оглядки на востребованность - просто глупо. Если что-то зацепило, и платят нормально - ищешь похожие проекты на Github, пробуешь, экспериментируешь.
Кстати, подумай о том, чтобы переехать в более крупный город.

h31 ★★★★
()
Последнее исправление: h31 (всего исправлений: 1)
Ответ на: комментарий от Bioreactor

Погроммист - это молодой человек

Ну, я достаточно молод еще пока.

После 35 лет погроммистов выбрасывают на мороз

Не согласен.
Во всех местах, где я работал, были люди 40-50+, к ним вполне нормально относились и работали и получали они наравне со всеми. Конечно, успехом это не назовешь, но все лучше, чем на заводе токарем стоять, в том же возрасте.
Тем более, есть различные начальники отделов, архитекторы и прочие серьезные дяди. Они тоже программисты, в принципе.

Пойти из IT в CS

Вооот. Здесь ты, наверное, в 5 словах примерно выразил то, чего я _в идеале_ хотел бы добиться. Для начала хотелось бы хоть как-то двинуться в эту сторону.

Найти нормальную работу - от топ-манагера до сторожа

Не вижу в работе сторожа чего-то «нормального» в сравнении с работой программиста.

unikoid ★★★
() автор топика
Ответ на: комментарий от h31

Мне кажется, тебе надоела не сколько сфера деятельности, сколько сама рутина

Почти так. Только вдобавок у меня сложилось субъективное мнение, что именно в этой сфере деятельности рутины больше, чем в других (не во всех, естественно).

unikoid ★★★
() автор топика
Ответ на: комментарий от unikoid

Они тоже программисты, в принципе.

Скорее он делает упор на знаниях предметных областей и технологий. Программизм тут вторичен.

После 30 трудно оставаться обычным боевым юнитом, не обрасти ценными для бизнеса знаниями. Если не получилось, то придется конкурировать с молодежью (которая куда сговорчивее «стариков», менее требовательна).

outtaspace ★★★
()
Ответ на: комментарий от unikoid

Только вдобавок у меня сложилось субъективное мнение, что именно в этой сфере деятельности рутины больше, чем в других (не во всех, естественно).

Окей, посмотри с другой стороны. JavaScript, PHP, Ruby - это всё высокоуровневые языки, где максимум времени тратится на решение самой задачи. В противоположность этому C/C++ - сравнительно низкоуровневые, где куча времени тратится на базовые вещи. А уж сколько усилий идет на отладку - это вообще песня. Ты же, надеюсь, понимаешь, что не всё время будешь добавлять новые фичи? :)
Вообще, расскажи подробнее про свой опыт. Много ли занимался системным программированием? Если нет, может быть стоит на досуге попробовать сделать свой toy project?
Ты ещё выше упомянул CS. Тут такой момент - серьёзные продакшн-реди вещи из этой области делают далеко-далеко в Америке, у нас же всё ограничивается прототипами. Т.е. ты делаешь какую-то штуку, в результате разработки делаешь вывод «Ага, при таких-то условиях такой подход может использоваться», штука тут же выбрасывается, и если совсем повезет, кто-то воспользуется твоей идеей, напишет всё с нуля и получит за это кучу денег.

h31 ★★★★
()

В общем, так исторически сложилось, что я - веб-программист. Мне очень стыдно, но тем не менее, это факт

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

Человека определяют дела его. Вот от этого и отталкивайся.

Xintrea ★★★★★
()
Ответ на: комментарий от h31

JavaScript, PHP, Ruby - это всё высокоуровневые языки, где максимум времени тратится на решение самой задачи

Ну я бы не сказал, что максимум. Особенно, в случае JS (PHP почти в руках не держал, ничего не могу сказать). Ну это так, к слову.

Вообще, расскажи подробнее про свой опыт.

Опыта 4 года на данный момент, со второго курса универа. В основном - веб. К счастью, не визитки и не шаблонные сайты на CMS. Было дописывание всякой всячины к весьма нестандартному в тех. плане инет-магазину, его оптимизация. Всякие мелкие веб-сервисы и сайтики. Node.js, Django, немного Rails. Неплохо поразбирался с PostgreSQL и ElasticSearch, немного MongoDB. Была и верстка, и браузерный код, и серверный.
Из интересного - был десктопный проект, делали вдвоем с нуля. Некая софтина для аттракциона - трассы с РУ-автомоделями. По задумке, трасса стоит где-нибудь в людном месте, подходят компании людей, платят денежки, катаются.
Суть софтины - дать оператору интерфейс для ввода данных участников, запуска различных типов заездов и контроля времени, а участникам показывать на большом экране различную статистику (сколько кругов кто проехал, с каким временем, кто на каком месте) и оповещать их о разных событиях во время заезда. Свистелки и перделки типа фоновой музыки и показа промо-видео в перерывах included. Сделали все на Python+Qt. Прохождение финиша машинкой фиксировали и узнавали ее номер с помощью камеры -> совсем поверхностно поковырял OpenCV. Красивую статистику показывали с помощью QML, светофор сделали на Arduino, хранили всю инфу в SQLite. В общем, реально интересно было и много нового узнал. С удовольствием бы еще раз в чем-то подобном поучаствовал, жаль проект провалился.

Много ли занимался системным программированием?

Можно сказать, вообще нисколько. По работе - не сталкивался, а мыслей о том, чтобы что-то для себя в эту сторону делать - как-то не возникало.

Ты ещё выше упомянул CS. Тут такой момент - серьёзные продакшн-реди вещи из этой области делают далеко-далеко в Америке

Ну, я думаю, если бы я смог стать реально сильным в какой-либо области CS, свалить из этой страны - не стало бы особой проблемой. Я заблуждаюсь?
Сейчас вот есть мысли попробовать порыть в сторону теории ЯП и методов трансляции, в конце концов и языки мне разные интересны, и в универе этот предмет нравился, и работы в этом поле, я думаю, достаточно. Стандарты языков сейчас зачастую сильно опережают реализации, сами языки растут как грибы.

unikoid ★★★
() автор топика
Последнее исправление: unikoid (всего исправлений: 1)
Ответ на: комментарий от unikoid

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

И он еще и жалуется!

YogSagot ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.