Ответы пользователя по тегу Карьера в IT
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Фронт года с 14 усиленно превращается в энетрепрайз, со всеми теми же проблемами, что и в любом другом энтерпрайзе. На скольких проектах побывал - в каждом свой зоопарк и свои представления о прекрасном, часто еще и не полностью пересекающиеся с моими. В результате вместо ударного креатива я вынужден заставлять себя писать в манере, требуемой заказчику, что далеко не всегда получается легко и просто. Много сил уходит на компенсацию внутренних конфликтов, типа душа стремится к прекрасному и совершенному, а писать приходится то что приходится... От этого выгорание происходит ударными темпами, а требования к программистам формируют явно люди, которые ни строчки кода в жизни не написали и даже приблизительно не понимают, как это работает, какова физиология нервной системы и чем чреваты такие неадекватные требования.

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

    Да еще, за последние 5 лет фронтенд дичайше усложнился, обогатился тоннами технологий и эти процессы продолжают победное шествие ударными темпами. А это означает, что ты просто обречен бежать впереди паровоза, иначе вон с рынка. Ну или велкам обслуживать полчища легаси проектов с лютейшим говнокодом в обмен на еду...

    Все вышесказанное полнейшее ИМХО. Возможно просто я сегодня встал не с той ноги... Кто его знает...
    Ответ написан
    1 комментарий
  • Как начать работать во frontend?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    В академию нужно приходить подготовленным. Академия не учит алгоритмам и структурам данных, подразумевается, что ты это уже умеешь. А без этого от академии толку будет мало.

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

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

    Я, по первости, вкладывая своё личное время, вытягивал бегемотов из болота, затрачивая своего личного времени 20+ часов на каждого, без всякой компенсации, просто из принципа, что раз могу значит должен.

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

    Таким образом резюме - прорешай олимпиадных задачек штук 100 разной сложности, выведи базовую алгоритмику и структуры данных на рефлексы. Это прям must have независимо от языка, на котором ты пишешь сейчас и будешь писать когда-либо, ибо это первейшие и универсальные навыки в программировании. Без этих навыков в профессии делать нечего. ИМХО.

    ЗЫ: Видывал я и синьоров, которые на обе ноги хромают в алгоритмах и структурах данных. Мде. Жизнь полна чудесов.

    ЗЫ2: Я всех отправляю на кодварс прокачивать скиллы в алгоритмах. Однако в последнее время кодварс стал зело тормозной. Пичалька. :(
    Ответ написан
    Комментировать
  • Куда пойти школьнику учится на Веб-разработчика?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Для начала научись решать олимпиадные задачки (прорешай самостоятельно, с полным пониманием происходящего, хотя бы 100-150 задачек), они прокачивают алгоритмику и структуры данных, без этого вообще ни о каком современно фронтенде речи просто быть не может. Это минимум год.

    Далее, у htmlacademy в свободном доступе (бесплатно) весьма приличный курс по азам фронтенда. Рекомендую пройти этот курс на 2-3 круга, и довести владение азами до автоматизма. Это еще год.

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

    Ах да, еще надо очень налегать на инглиш, без него в профессии ну очень туго.
    Ответ написан
    Комментировать
  • Куда дальше расти, что изучать? Как найти команду?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Году в 14-15 я оказался в схожей ситуации. Фронтенд сделал огромный рывок вперед, и мои фронтенд скиллы, которых вполне хватало раньше, оказались так себе. На тот момент общий мой стаж в айти перевалил за 20 лет. Казалось бы положение вообще швах.

    Первым делом я провел масштабное исследование, что вообще происходит в современном фронтенде, какие стеки/технологии в тренде, куда вообще движется паровоз фронтенда. Масла в огонь подлило несколько проектов, где были формы со сложной логикой на очень много полей. В одной было 60+ полей, в другой 300+. Я конечно решил эти задачи, и всё даже работало, но далось мне это очень не просто и я сильно не завидую тому, кому пришлось бы впоследствии эти формы переделывать (а реальность такова, что код приходится дорабатывать через время без вариантов)...

    В общем остро встали вопросы "Как быть?", "Что делать?", "Куда двигаться дальше?".

    Совершенно очевидно стало, что без JavaScript/ES6+ совершенно никак, поэтому я принялся устранять все белые пятна, которые у меня на тот момент были относительно языка. Честно говоря до 2015 года я откровенно недолюбливал JS, но мирился с ним. Забегая вперед скажу, сейчас это мой основной язык и я его фанат.

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

    Дальше я выбрал для себя React, всю логику выбора описывать не буду, кому интересно, можно почитать другие мои ответы на тостере.

    В результате я пересмотрел несколько сот часов видео, в основном на инглише (если с ним есть сложности, то мои соболезнования). Пересмотрел чужого кода тоннами и начал потихоньку писать сам.

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

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

    Меня здорово выручает владение инглишем в достаточной степени, чтобы свободно читать/понимать на слух. Так же здорово облегчают жизнь достаточно прокачанные скиллы по структурам данных и алгоритмам. Имея эти навыки в багаже мне оставалось просто подучить язык, освоить дополнительные инструменты вроде npm/node, webpack, освоить фреймворк и вот я уже вполне себе востребованный специалист.

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

    Ну и ходить на собесы регулярно, не с целью пройти, а с целью получить обратную связь и наметить план дальнейшего развития.
    Ответ написан
    1 комментарий
  • Почему чувствую себя бесполезным и ни на что не способным на первой работе по специальности?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Если ты реально умеешь программировать, т.е. успешно донести до машины мысль, да так, чтобы она ее в точности выполнила, то это очень здорово, но этого категорически недостаточно.

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

    Я очень долго писал бухсофт, при этом не имея толком знаний по бухгалтерии. Я всегда работал в плотной связке с опытными профильными специалистами, по сути, являясь скорее переводчиком с человеческого на машинный. Причем профильные специалисты хорошо выполняли своё дело, но молча, буквально как пленные партизане. Поэтому моей первейшей задачей всегда было разговорить бухгалтера, помочь осмыслить и сформулировать в мельчайших деталях процессы, которые они на автомате делают ежедневно в течении многих лет. Разумеется никаких ТЗ я никогда в жизни в глаза не видел. Вернее так, ТЗ я формировал себе сам из того, что удалось выведать у бухгалтеров и их руководства.

    Один из вариантов разговорить - это прийти и рассказать своё видение. Люди любят поправлять, вносить коррективы, добавлять деталей. :) Это называется посплетничать. :)

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

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

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

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

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

    Внезапно выясняется, что во всех этих процессах софтскиллы рулят и решают.

    В общем мой совет - качай всё, особенно софтскиллы и отставить кукситься.

    ПыСы: Большинство сотрудников в компаниях, где ты будешь обитать, будут считать тебя то ли кудесником, то ли магом, то ли телепатом, то ли всё вместе. Каждый будет искренне убежден, что ты знаешь все то же самое, что знает он и плюс еще кучу всего, чего они не знают, поэтому будут грузить всем чем угодно. Так же будут искренне верить, что ты обладаешь доступом в пятое измерение, что у тебя времени вагон (т.е. примерно 48 часов в сутках, а может и 72, кто тебя знает то...) и ты многозадачный. В общем будут проявлять все мыслимые и немыслимые формы неадеквата. Это нормально. Через это нужно пройти, научиться во всем это плавать, как рыба в воде. Это здорово прокачивает тебя как личность, если ты настроен на подобный прогресс.

    Если же хочешь просто сидеть в сторонке и кодить, то тебе нужно искать компании/команды, где все айтишные процессы уже выстроены и формализованы, где всю эту работу за тебя уже сделали аналитики, манагеры, лиды. Где ты придешь на готовую архитектуру, с детальным описанием кодстайла. Где тебе будут скидывать посильные таски, продуманные и детально прописанные. Да, такие компании тоже существуют, но их нужно искать, т.к. они пока в меньшинстве...
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Количество мыслетоплива которое запасает организм на каждый день строго ограничено, поэтому весьма наивно полагать, что получится фигачить с раннего утра и до заката и еще сил на pet-project останется. При этом еще очень желательно спать регулярно, качественно и достаточно. А чтобы спать качественно необходимо получать достаточный уровень инсоляции (а с этим уже все не так радужно).

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

    Говнокод был, есть и будет есть во все времена, а бизнесу надо чтобы оно работало, а текучку кадров никто не отменял, поэтому рефакторинг и допилинг это навсегда, с этим надо тупо смириться.

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

    ЗЫ: Про мыслетопливо Макс Дорофеев интересно рассказывает.
    Ответ написан
    Комментировать
  • Поможете выбрать ресурс по изучению JS?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я наставничаю в той самой htmlacademy, и частенько студенты приходят, не умеющие программировать от слова совсем. Им курс дается тяжело, приходится их вытягивать буквально за жабры и разжевывать все мелочи, что, в целом, в мои обязанности и не входит вовсе.

    Поэтому перед академией я настоятельно рекомендую на три круга прослушать под запись курсы Zorax Или JavaScript weird parts на ютубе, почитать/послушать Кантора, это раз.

    Прорешать 30-40 задачек на кодварс (я там прокачиваю некоторых своих студентов), это два.

    И вот уже после этого идти в академию, тогда от курса будет максимальный толк и отдача.
    Ответ написан
    1 комментарий
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Во первых: совершенству нет предела.
    Во вторых: невозможно объять необъятное и впихнуть невпихуемое.
    В третьих: как ты не крутись, а технологии развиваются быстрее, поэтому отставание неминуемо, как следствие приходится всегда чем-то жертвовать ради чего-то более важного.

    Итого: заказчика не интересуют твои философские страдания. Его интересует как быстро, качественно и за какие деньги ты решишь его проблемы. Решаешь за разумное время, адекватный ценник и с удовлетворительным качеством - не важно как ты себя именуешь, спрос на тебя будет.

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

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

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

    Меня на программирование пропёрло весьма рано, лет в 14-15. Я ощущал собственное безграничное могущество, послушная железяка выполняла любое моё повеление, любой мой каприз, при условии, что он правильно сформулирован. Если железка не делала что нужно, или делала что не нужно, то это всегда была моя вина, это значило что я прокосячился. Подобное осознание настигло меня весьма скоропалительно, после чего мозг начал усиленно дисциплинироваться, и количество лютых фейлов пошло на убыль.

    Коммерческая разработка - это, примерно, от 70% времени/сил на дебаг и фиксы, потому что мало где процессы поставлены грамотно. По хорошему до сего дня (а мне под 40) я только одну команду видел, где процессы прям вообще очень хорошо поставлены и мне посчастливилось какое-то время с ними поработать. За эти несколько месяцев я подрос на целую голову. Самостоятельно достичь сходных результатов было бы весьма затруднительно.

    Сам я сменил стек совсем недавно, начал в конце 15 года, и процесс продолжается до сих пор. Сменил я по одной простой причине - во всех моих прежних проектах большая часть логики с бэка уехала на фронт, и прекраснейший jQuery перестал справляться чуть более чем полностью. Он, по прежнему, хорош, но задачи, которые приходится решать, требуют совершенно других подходов. Для себя я выбрал React, но в целом на рынке имеются альтернативы. По моим данным очень большим спросом пользуется Angular 2+.

    Когда говорят о фронтенд разработке, постоянно говорят о технологиях, стеке, но почти никто не упоминает, что не стеком единым... Существенная часть разработки - это, для начала, понять задачу и построить у себя в голове модель. Заказчики бывают разные, от очень толковых, до очень безтолковых. Соотношение первых ко вторым примерно 1% и всё остальное... Т.е. в большинстве случаев тебе скажут минимум, своеобразно, плюс ты это поймёшь по своему. Потом, по ходу пьесы, в самые неподходящие моменты, начнут всплывать подробности, которые: забыли упомянуть; ну это же очевидно, ты же профи; мы сами не знали, это только выяснилось; ну это же мелочи, мы думаем тебе это будет не сложно; а ты не спрашивал; и т.п....

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

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

    Если ты попадешь в команду, где люди будут понимающие, квалифицированные, процессы выстроены, а джуну задачи будут сгружать джунские, то, считай, тебе крупно повезло. Шансов на это примерно 1%. Особенно учитывая, что джуны это обычно студенты лет в районе 20...

    Когда я менял стек, то я тоже был какое-то время 35-летним джуном. С этим ничего не поделать, потому что, внезапно, стек это не просто так, и имеется масса нюансов, которые с наскоку не освоишь. Чтобы все пощупать, попробовать на зубок, понять и осознать требуется время и усилия, иногда много времени и много усилий. Да, весь прежний багаж служит опорой и поддержкой, и там, где настоящий джун будет копаться недели, ты за пару часов по аналогии поймаешь идею и двинешь дальше. Но эти пару часов никто не отменял, а идей которые нужно отловить сотни, если не тысячи...

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

    Даже если тебе попадается практически идеальный проект, внезапно оказывается, что твоя оперативная память это 5-7+-2 объекта, а удерживать в голове одновременно нужно сотни...

    Зачем я все это рассказываю? Затем, что это реальность, которая для джунов не делает исключений.

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

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

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

    Теперь относительно того что делать - если в бэкграунде нет сильных скиллов по алгоритмике и структурам данных (олимпиады по программированию, универский курс информатики), то прям очень сильно рекомендую прокачать. Будучи наставником на нескольких курсах фронтенда я постоянно встречают студентов, которые "вроде бы" знают язык, но затрудняются скомпоновать пару циклов с условиями, вот буквально просто виснут на неопределенное время, причем без результата. Лично я рекомендую кодварс. Своих студентов я прокачиваю именно там. Достаточно прорешать 30-40 задачек, чтобы базовые скиллы ушли на уровень рефлексов и перестали парить мозг. Правда желательно решать это все с наставником.

    Косвенный бонус тут будет в том, что ты привыкнешь решать задачи на JavaScript. Я когда менял стек, поначалу мыслил на PHP, и подобный финт на кодварс позволил мне переформатировать мышление на JS. Вот мой профиль на кодварс как пруф: https://www.codewars.com/users/iCoderXXI

    Далее, когда ты освоишься в JS практически, очень неплохо будет досконально разобраться в том как работают замыкания и прототипное наследование. Это прям основа основ, и это спрашивают на каждом первом собесе.

    Понять надо настолько глубоко, чтобы легко и просто, с юморком, рассказывать это любой первой встречной бабушке, да так, чтобы та всё поняла... Это вот прям залог успеха в JS, потому что все остальное держится на этих двух китах. В ютубе имеется курс Зоракса (Zorax) и JavaScript Weird Parts, оба про то же самое, первый на русском, второй на инглише. Кантор, безусловно, крут, но эти двое объясняют попроще и понятнее (имхо).

    После этого прокачиваемся в использовании встроенных методов JS, таких как map, reduce, includes, replace и пр. (на том же кодварс)

    После этого нужно прокачаться в ES6+, стрелочные функции, let/const, деструктурирование, рест оператор, классы, промисы, генераторы, async/await, декораторы - без этих продвинутых штук в современных фреймворках ловить нечего.

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

    Потом уже заостряемся на API форм, DOM, AJAX (fetch/axios), вебсокетах, Localstorage и пр.

    И вот только теперь можно переключаться на фреймворки. Проще всего освоить Vue (по слухам), наибольшим спросом пользуются React и Angular, для общего развития так же неплохо бы немного послушать про Ember.JS.

    React только на первый взгляд выглядит простым, на самом деле это только view-библиотека, а в любом нормальном SPA есть много чего еще кроме view, поэтому React всегда идет в компании Redux, Router, и еще целой толпы всего, что тоже придется осваивать, не только с точки зрения API, но и с точки зрения философии (а нахрена оно вообще сдалось?)

    Перед походами на собесы очень желательно иметь портфолио из нескольких готовых проектов, вылизанных стилистически.

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

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

    Еще вроде большие компании вроде Яндекса устраивают летнее обучение, с последующим трудоустройством лучших кандидатов, но это не точно.

    Оптимистичный прогноз - 6-12 месяцев плотного фигачинга и ты в тренде.
    Ответ написан
    7 комментариев
  • 44 года можно ли еще стать востребованным специалистом в IT?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    PHP учить смысла нет, ИМХО.

    Мне скоро 40, программированием занимаюсь всю сознательную жизнь, но долгое время занимался им больше ради искусства. Работал всегда сольно, с мелкими закачиками (по факту занимался всякой чепухой, везде по чуть-чуть и нигде толком), в результате к 34 годам приплыл - мои знания внезапно стали не актуальными. Как только осознал сей бардак, провел анализ, что я делаю не так, выработал план, стратегию и за пару лет потихоньку прокачался до вновь более-менее актуального стека. Параллельно успел много чего в оффлайне.

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

    Как мне кажется, самый простой и быстрый способ для тебя заработать - это найти смежные области с твоим основным опытом, и продвигаться там. Например ты бы мог заниматься помощью студентам в плане написания рефератов, дипломов и пр., оказывать им консультации в своей профессиональной области. Это вполне можно делать дистанционно.

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

    Разработка - это весьма обширная и ёмкая в плане знаний сфера, ее просто так с наскоку, увы, не охватить. Тут реально до правдоподобного результата могут запросто уйти годы и миллионы усилий. К тому же все постоянно развивается, примерно каждые пол-года-год требования ужесточаются, поэтому тут постоянно надо прокачивать скиллы, порог вхождения постоянно растет и усложняется.
    Ответ написан
    Комментировать
  • ExpressJS или Laravel? На чем проще и быстрее разрабатывать, чему легче научиться?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Предположу, что JS ты уже знаешь, из чего следует что Node.JS тебе освоить будет намного проще, чем PHP. Правда вместо Express я бы, все же, рекомендовал Koa2, его пилят те же разработчики, но он сильно посовременнее.
    Ответ написан
    Комментировать
  • Переход из С++ в PHP?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я с PHP мигрирую потихоньку на JavaScript, оно мне, оказывается, ближе. Недавно вот потребовалось некоторый код перевести обратно с JavaScript на PHP, и я испытал массу непередаваемых ощущений, настолько уже привык к JS-style coding. Кода получилось раза в 2 больше, и гораздо менее удобочитаемого.
    Ответ написан
    Комментировать
  • Меньше стек технологий, больше шанс устроиться на удаленную работу?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Сколько видел вакансий - везде стопицот непохожих требований, а когда доходит до собеседований и тестовых заданий, то всплывает еще стопицот сюрпризов.

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

    Другая проблема заключается в том, что инди-разработчик - это вещь в себе, оторванная от мейнстрима чуть меньше чем полностью. Работая на фрилансе/аутсорсе ты, как правило, получаешь задачи от людей, слабо понимающих что там под капотом у сложных веб-приложений. Соответственно ты больше акцентируешься на удовлетворенность клиента, которая приводит к возникновению финансовых потоков в твой адрес, но совершенно не способствует твоему росту как профессионала. Ты просто превращаешься в человека-оркестра, выхватившего по верхам в стопицот направлений, и нигде толком. Безусловно, и на этом поприще бывают исключения, но, как правило, это ребята с "правильным" бэкграундом.

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

    Опыт инди-разработчика разнообразный, но не структурированный, как правило. Не приходится сталкиваться с массой хитромудрых нюансов, которые могут сыграть существенную роль при трудоустройстве.

    Примерно до 2010 года я старался свой веб-стек держать в пределах возможностей любого самого задрипанного шаренного хостинга, в результате чего лишался массы вкусных возможностей. Справедливости ради стоит сказать, что годные доступные впски массово стали появляться ближе к году 12-13. Когда уже сил терпеть не стало, я сказал себе доколе, и волевым решением отказался от шары, о чем ни разу не пожалел.

    С 2015 года я положил глаз на full-stack JavaScript и потихоньку развиваюсь в данном направлении. Тренды таковы, что все больше вакансий и прочих предложений будут так или иначе именно в эту сторону. Одно меня печалит, пока что рынок фронтенда держит angular 1.x, но, думаю, это временно.
    Ответ написан
    3 комментария
  • Что умеет настоящий senior/lead developer кроме знания какого-то языка и его фреймворков?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нужен разнообразный боевой опыт на десятках проектов, который заработаешь только по ходу практики. Все остальное - инструменты и декорации. Не так важно чем. Важно чтобы работало и не падало.

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

    По сути новое осваивать придется реально постоянно. Не бывает так, что освоил какой-то стек и порос мхом, и у тебя 20 лет все пучком.

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

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Скорость работы штука мутная и неоднозначная. Давно установлено как факт, что мозг может одновременно хранить в сознании 7+-2 объекта, т.е. от 5 до 9, в зависимости от кучи факторов. Все что свыше того, нужно как-то хитро организовать, иначе получится каша. Да и продуктивно напрягать мозг больше 4-5 часов в сутки в совокупности могут только продвинутые джедаи...

    Любая работа любого программиста начинается с построения модели приложения/модуля, над которым предстоит поработать. В этом процессе немаловажным звеном является моделирование потоков входящих и исходящих данных.

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

    В процессе простраивания архитектуры заодно всплывают все сопутствующие технологии, и возможно неоднократное пересматривание как модели так и архитектуры, т.к. это вещи взаимосвязанные.

    Когда модель и архитектура более-менее устаканились, можно начинать что-то планировать по части реализации, обычно начинают с фундамента.

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

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

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

    Джуну обычно сливают что-то, с одной стороны несрочное и не ключевое, с другой стороны на чем он может учиться. Ясен-прекрасен, что у джуна в голове всех этих хитросплетений нет и он носится как курица с писаной торбой со своим модулем/классом.

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

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

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

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

    Четвертая рекомендация - постоянно прокачивать скиллы, много читать доки, вникать, задавать много вопросов и искать на них ответы, и пробовать все на практике. Критерий истины - практика.

    То, что джун не шибко быстр - это нормально, до 70% времени джун должен штудировать доки, из оставшихся 30%, до 95% времени - это дебаггинг. :) Так-что на реальный дев остается не так много времени, 0.3*0.05...

    Понятно, что в идеале джун должен этим заниматься не только в рабочее, но и в свое свободное время. Когда я вгрызался в основы, я мог маньячить по 12-16 часов в сутки, без праздников, выходных и каникул. Благо обстоятельства позволяли...

    И, главное, терпение+усидчивость. Путь это нелегкий, не простой, учиться придется постоянно, и постоянно будут критиковать, что мог бы поточнее, побыстрее, побольше и подешевле.... :)
    Ответ написан
    Комментировать
  • Экспресс обучение frontend разработке. Как подступиться?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я бы зашел с другого края, CSS и HTML это все прекрасно, но это все не более чем способ описать интерфейс.

    PHP однозначно отстатвить в сторону, как и MySQL.

    Коли уж вознамерился стать фронтендером, то должен до глубины души осознать, что никакого фронтенда во второй половине 10-х годов 21-го века от Р.Х. без JavaScript, вернее даже Ecma Script 2015+ не будет.

    Таким образом, я настоятельно рекомендую прям вот вгрызаться в хитрости и нюансы JS, начиная с ES5, и походу пьесы добавляя нововведения, которые обязательно появятся. И практиковаться до умопомрачения в кодинге, например на том же codewars.com

    Обязательно для вдумчивого просмотра https://www.youtube.com/watch?v=Bv_5Zv5c-Ts

    Из фронтенд фреймворков для себя я выбор сделал в сторону React+Redux т.к. философия, имплементированная в этих библиотеках и их подходе к вопросу разработки интерфейсов целиком и полностью совпадает с той парадигмой, к которой я пришел собирая много лет грабли на своем собственном тернистом пути разработчика, в том числе и фронтенда.

    Приятным бонусом будет то, что для разработки под Node.JS будет заложен хороший универсальный фундамент.

    Тех, кто будет тебе рассказывать про Web-assembly не слушай, ближайшие годы это направление будет уделом очень узкого круга энтузиастов.

    Если английским не владеешь в достаточной мере, чтобы свободно читать и слушать материалы, рекомендую задуматься и осознать, что актуальных материалов в русском переводе раньше чем через 6+ месяцев редко можно отыскать. Если хочешь быть на гребне волны, базовое владение инглишем must have. Вот тут обсуждение этого вопроса Английский язык от профессионалов?
    Ответ написан
    Комментировать
  • Возможна ли переквалификация в разработчики после 30 без профильного высшего образования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Любой уважающий себя разработчик имеет от одного до нескольких pet-проектов, на который обкатывает интересные ему технологии, методологии и пр.

    Тут не надо думать, тут надо делать. Ставить задачу, декомпозировать ее на элементы, решать элементы, собрать обратно как лего в рабочий проект. Путь тернистый, грабель будет собрано прилично, это и есть ценный опыт.
    Ответ написан
    Комментировать
  • Можно ли работать программистом после 9 классов?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я начал плотно изучать программирование лет в 14, в 16 написал первую коммерческую программу и что-то на этом заработал. Мастерство приходит примерно после 10 тысяч часов адресной практики, количество дней и лет можно посчитать, многое будет зависеть от интенсивности занятий. Я бывало кодил по 12-16 часов в сутки практически без перерывов, так меня пёрло и штырило...

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