В статье речь не про SaaS от VK, про OnPremise от VK. Даже если VK спустя несколько лет сделает то что уже сделал Microsoft, у клиента останется настроенная инфраструктура
Последние года полтора наблюдаю как массово набирают разработчиков всех уровней, от стажеров до синьоров (в разных компаниях). Даже в нашей команде человек десять взяли за последние пару месяцев. Должен сказать что слухи о кончине конкуренции сильно преувеличены, и даже если в каких-то местах тенденция убывающая, то в других местах она обязательно прибывающая.
Статья, кстати, хоть и адресована начинающим, но с прицелом на то чтобы не стать "пушечным мясом" которое для работодателя "одинаково плохо". Я даже смею надеяться что последовавшие советам будут обладать в глазах работодателя неиллюзорными преимуществами не за счет диплома, а за счет практических навыков, и в гораздо более короткие сроки.
Если конкретный курс не заходит (для человека с нулевыми знаниями), можно попробовать другой. На худой конец (условно худой, я сам так и учился) можно взять книжку. Тот же Learning Perl прекрасно подойдет для начала. Тут, конечно, важно потратить время на начальное изучение любого языка, не важно каким способом. Может даже специально взять язык на котором никогда не доведется писать и выучить в отрыве от современных задач. На уровне "что такое переменная", "как работает цикл". И не просто выучить, а попробовать на практике что-то очень простое писать с намерением понять как это работает, выкинуть и забыть. Важно выбирать способ изучения по принципу "можно легко поменять если качество не устроило". Поэтому бесплатный курс, книга, рассказ друга - хороший вариант, а платное обучение не очень.
По оффтоп части: работать в VK можно из любой точки мира где есть интернет. В 2020-м году это было еще не так, но сейчас существенно прокачали удаленную работу благодаря известным событиям. Это перестало считаться дикостью, стало привычным, нормальным. Даже удивляешься если в какой-то компании нет удалёнки.
Другой вопрос что в VK очень высокий порог входа. Для тех кто читает статью и думает "вот я на курсы бесплатные запишусь, освою язык, научусь тесты писать и через полгода меня в VK возьмут" у меня плохие новости. Скорее всего не возьмут. Но есть и хорошие новости. Можно поработать год-два-три в компании попроще. Или даже в нескольких. Набраться опыта в реальной разработке. Причём лучше чтобы это был highload, то есть не любая разработка, а близкая к тому чем занимаются в VK. Очень важно не останавливаться в развитии, даже если кажется что все необходимое уже освоил.
Про себя могу сказать что от момента когда я решил что хочу работать в Mail.Ru до момента когда я пришёл работать в Почту прошло года два, или чуть больше. Все это время я ходил на внешние мероприятия, смотрел чем занимаются эти люди, пытался у себя в работе применять то, о чём рассказывают в докладах. И все равно это был такой мини дауншифтинг, потому что зашёл я на джуниорскую позицию, разработчиком на языке который уже плохо помнил (как выяснилось впоследствии, плохо знал даже у лучшие годы), с понижением зарплаты относительно привычного уровня. Но это того стоило потому что я получил возможность учиться у лучших. Присутствовала и некоторая доля везения, я попал в команду которая даже внутри компании Perl-ом на очень высоком уровне занималась. Сейчас даже на проде ещё кое-где осталась перляка, но если сравнить Perl в Почте и Perl в Облаке, то это, как говорят, две большие разницы.
Спасибо. Про ВУЗы как раз у меня актуальная информация, у меня ребенок в этом году закончил школу и пошел на вышку. Там просто открытым текстом рассказывают что "вот этот предмет вам не нужен, но без него государственную аккредитацию не давали". Это нормальное основание для преподавателя не приходить на собственный предмет. Сейчас, кстати, ребенок подумывает отчислиться, потому что, как и я в свое время, не может себе ответить на вопрос "Зачем?".
Материал про TDD давно хочется сделать. Пока не знаю в каком формате. Мечтаю сделать видео с livecoding-ом, но это может быть только затравкой, в идеале должна быть серия видео или статей, потому что TDD показывает себя во всей красе именно в долгосрочной перспективе в условиях меняющихся задач, требований. Проблемы, которые решаются тестами в проекте без TDD возникают не сразу, а в результате серии изменений. Чаще всего разработчик не дурак, и четко поставленную задачу даже без тестов может сделать качественно. Косяки начинают вылезать когда кто-то потом (в ходе разработки, через полгода, или через год) придумал новую фичу и решил переиграть уже действующий функционал, но не учел особенностей реализации, не проверил все случаи которые проверял руками автор. Не знал что надо, или не у кого спросить (автор уже уволился, новый разработчик еще не вкатился), и т.д. Как эту реальность уложить в упрощенный обучающий материал, на который студенту не пришлось бы тратить несколько недель, я пока не придумал. Но не оставляю надежды сделать.
Спасибо, надеюсь тем кому скинете пойдет на пользу.
ВУЗ не имеет ничего общего с развитием soft skills. Он так же в общем случае не сильно развивает фундаментальные компетенции, такие как ответственность, нацеленность на результат. Я считаю очень странными компании в которых такую связь считают реальной и требуют наличия вышки. Достойный соискатель без формального образования просто уйдет к конкуренту в таком случае, а конкуренция на рынке высокая. Но, как сказал президент совсем по другому поводу, "это их выбор".
Возвращаясь к своему примеру, скажу, что все связанное с soft skills я постигал уже в Mail.Ru Group на соответствующих внутренних тренингах. Там были курсы по таймменеджменту, переговорам, управлению проектами и т.д. Про таймменеджмент, кстати, больше всего зашла адаптация GTD от Максима Дорофеева. По этому курсу он потом выпустил книгу https://www.litres.ru/maksim-dorofeev/dzhedayskie-tehniki/, хотя вживую несравненно лучше усваивается. Это, кстати, пример удачного оффлайнового курса, за который не жалко деньги отдать. Не про языки программирования, конечно, но, надеюсь, кому-то будет полезно. Все что я узнал от Дорофеева было мне полезно.
Насчет ВУЗа в 40 добавлю, кстати, на примере своего отца. Он учился в том же ВУЗе что и я (вернее я пошел по его стопам в тот же ВУЗ), потом работал программистом на C++. В какой-то момент ушел в строительную сферу, а там профильное образование было "необходимо" в виде корочки. Уже работая по новой специальности он вполне себе поступил заочно на вторую вышку и получил диплом. Не помню точно в каком возрасте это было, но больше 40. Возраст как раз не помеха. Если есть потребность в дипломе, его всегда можно получить. Опять же, прошу заметить последовательность. Сначала пошел работать, потом получил диплом. То есть востребованный специалист получит работу даже если диплом вписан в требования по вакансии, а диплома нет.
Поэтому и рекомендую бесплатные курсы. Заранее можно судить только очень условно, легко ошибиться. Но если курс бесплатный, его не жалко бросить и поменять на другой. С платным (если он неудачный) обычно становится жалко, заставляешь себя закончить, в итоге потеряны не только деньги, но и время.
Если рассуждать глобальнее (об этом много говорят сторонники agile), разработчик не создает материальных объектов. Строители, наоборот, создают то что сложно поменять. Поэтому в области материальных объектов важно длительное, детальное проектирование. Это долго, дорого, неэффективно, но цена ошибки настолько высока что оптимальнее способа нет. В разработке обычно проще сделать что-то, посмотреть как работает, и выкинуть если не нравится. Сервер в облаке перекатить это не здание построить. Дальше взять другую идею, повторить цикл. И с обучением можно делать так же. Много маленьких ошибок в таких областях обходятся совокупно дешевле чем одна или две больших.
Да, так понятнее, и похоже мы с вами одно и то же говорим. ВУЗ не нужен если не дает базы. Таких сейчас, к сожалению, очень много. Поэтому если идти, то осознанно, а не потому что "все идут". И туда где учат, а не просто деньги на студентах зарабатывают. Чтобы увеличить вероятность попасть именно в такое место, я бы рекомендовал стремиться на бесплатное обучение. В ВУЗ где есть вступительные экзамены, а не зачисление по результатам ЕГЭ.
Конечный результат "я учился в ВУЗе и получил хорошую физмат базу, которая затем пригодилась мне в карьере разработчика" это прекрасно. Но, это частный случай. На практике могут встречаться также случаи "я учился в ВУЗе, но не получил хорошей физмат базы, и это помешало мне стать разработчиком" или "я учился в ВУЗе, не получил хорошей физмат базы, но это не помешало мне стать востребованным разработчиком". Первый вариант мог бы служить доказательством вашей правоты, но как быть со вторым? А есть еще и такой: "я учился в ВУЗе, получил хорошую физмат базу, но не стал востребованным разработчиком". Такие примеры мне тоже известны.
Нет прямой связи между ВУЗом, физматподготовкой и разработкой. Есть традиция думать что такая связь есть. Но разработчик это не обязательно математик, также как не обязательно разработчик-не-математик занимается исключительно клепанием кнопочек и формочек. Между этими двумя полюсами бесконечное поле для деятельности, и оно не обязательно требует обучения в ВУЗе. Хотя и не противоречит ему в 100% случаев.
Вспоминая первый комментарий, могу сказать что мой личный удачный опыт связан с интересом к предмету, и, пожалуй, всё. Из интереса произрастают энергия и упорство, необходимые для поиска информации и ее изучения, освоения знаний на практике, разработки собственных подходов, не описанных пока еще нигде.
А ВУЗ, как следует опять же из нескольких комментариев, нужен больше для того чтобы переехать в другую страну, получить бронь от призыва, и прочим социальным выгодам. При таком условии последовательность "стать хорошим разработчиком, потом получить формальное высшее образование" выглядит ничуть не хуже традиционного варианта. Но она дает существенную экономию времени отведенной нам жизни, а это не мало.
Про ВУЗы отвечу только что не угадаешь. Об этом и пытаюсь сказать, слухи об их полезности сильно преувеличены. Я не столько за то чтобы совсем в них не учиться, сколько за то чтобы учиться в них только ошущая в себе такую потребность, а не потому что "здесь так принято".
Про Java уточню: я не призываю писать всю жизнь на Java. Идея в том чтобы первый язык выбирать не сильно заморачиваясь и не сильно сложный. Но не надо останавливаться на одном, уже на продвинутый курс можно выбрать (чуть лучше осознавая какие бывают языки) более востребованный на рынке, или более интересный для себя. То есть сначала получить базовые знания о том как выглядит процесс программирования на несложном языке, далее выбирать язык осмысленно под конкретное направление.
Тот же фронтендер вряд ли будет изучать язык с ручным выделением, возьмет NodeJS и будет писать на Javascript. Помешает ли ему при этом знание Java? Вряд ли. Можно ли начать сразу с Javascript если решил пойти во frontend? Можно. Но мне кажется, что контраст между разными языками помогает лучше понять нюансы. То есть, зная немножко Java перейти в Javascript несколько эффективнее для процесса обучения.
Про git тоже жалею. Радует только то, что сегодня почти в любой курс входит изучение git как необходимого инструмента (это удобно для проверки домашних заданий). То есть маловероятно что разработчик останется без этих знаний. Впрочем, я не оставляю надежды написать отдельный материал про процесс разработки в терминале, там будет и про git, vim, tmux, bash и make. Пока что пусть они поживут здесь в виде списка, который можно загуглить и отдельно разобраться. Осиливший не пожалеет :-)
Для тех, кто использует ВУЗ не по назначению, возможно, есть смысл потратить таким способом пять лет своей жизни. Но это тема для другой статьи.
Про госсектор могу сказать что я работал начальником отдела ИТ в государственной компании. Это должность на которую по определению не берут без высшего образования. У таких мест и у "консервативных" ИТ компаний есть кое-что общее. Вы (хороший разработчик) больше нужны им, чем они вам. А когда вы нужны компании, находятся способы обойти любые внутренние ограничения. Поэтому разработчикам я рекомендую стремиться в ряды высококлассных специалистов своего дела.
Запасать знания впрок я бы не рекомендовал. Изучать стоит то что действительно интересно лично вам.
Сколько каждый из нас сможет назвать людей которые пошли в ВУЗ и, благодаря этому, сегодня читают статьи со сложной терминологией? Гораздо меньше чем просто людей которые пошли в ВУЗ. А если в этому добавить что существуют люди, которые формально не имеют высшего образования, но читают, и даже пишут такие статьи, станет понятно что ВУЗ здесь просто сопутствующий фактор, а не определяющий.
Я в институте изучал нейронные сети применительно к обработке сигналов, но эти знания мне пока не пригодились. Лет шесть назад я пытался послушать современный курс по нейронным сетям, но не смог вспомнить всю ту математическую базу, которую в меня заложили в ВУЗе. Знания забываются, этот факт редко кто учитывает.
С этим не поспоришь. Любопытство основной инстинкт человека, кто бы про что ни снимал кино :-) Любопытство дает энергию, необходимую для изучения нового, и если оно есть, освоить профессию будет куда проще. А поскольку учиться приходится почти всегда, сохранять любопытство и интерес очень полезно, и не только для разработчика. Без него вообще жить скучно.
Отчасти поэтому статью и написал. Программистов "пекут" много, а вот заложить в их "тесто" ингридиенты определяющие "вкусовые качества" и "срок годности" редко кому удается, эта проблема ускользает от внимания "пекаря", потому что спрос большой, успевай только из печи вынимать да на прилавке раскладывать :-)
Не смог ответить себе на вопрос "Зачем?". Работа над дипломным проектом требует серьезных усилий (спроектировать устройство), а я уже понимал что буду работать совсем не по специальности.
То что мы делали аналог OAuth но без централизованного провайдера сказано в первом абзаце. Просто там упоминается фейсбук. Если вам так легче, приведите вектор атаки который сработает для сайта который использует вход через Ethereum, но не сработает для сайта который использует вход через Facebook.
А если любите юмор, то вот вам подходящая история про хакера и солонку в столовой xakep.ru/2006/12/16/35784.
Вот ваши слова которые я понимаю так что SSL не спасает от MITM.
Мне тут могут заявить, что соединение с сервером делается по https, и мол злоумышленник просто так не вмешается. Беда в том, что MIM-злоумышленник может сам сделать соединение с сервером по https, а соединение с клиентом — по обычному http.
Теперь вы говорите что SSL спасает от MITM. Если спасает, то я все же не понимаю в чем проблема описанной схемы с точки зрения безопасности?
в отличие от куков, сертификат и подпись handshake передаётся только внутри https
Это неверно, Secure-куки передаются только по https.
Вы рассказываете какой крутой EmerSSL, с этим я не спорю, он крутой. Но приведите вектор атаки который будет работать с описанной в статье схемой и не будет работать с OAuth 2 (приведёте такой который и там и там работает — вам же лучше, заработаете денег по bug bounty программе нескольких уважаемых компаний).
В статье по вашей ссылке вижу что EmerSSL использует SSL чтобы оградить трафик пользователя от прослушки. Ну так и в этой схеме ничто не мешает использовать SSL, только вы сами же и утверждаете что это небезопасно.
Злоумышленник, сидящия на канале связи, пропускает через себя подпись пользователя, потом отсекает пользователя, имитируя разрыв соединения
Не очень понятно в чем отличие этой атаки в случае c OAuth 2 и c Ethereum.
Да, если злоумышленник контролирует канал пользователя и может даунгрейдить соединение до http, он прочитает подписанное сообщение (либо с тем же успехом перехватит access token). Или просто отловит пароль, если у вас парольная аутентификация + идентификатор сессии вообще без всяких OAuth.
Частично может закрыть эту проблему использование куки с флагом Secure чтобы она не ходила по открытым каналам.
Для хакатона по Ethereum было бы большим вызовом сделать проект на EOS :-)
Если серьезно, аналог metamask для EOS это scatter, и как реализовать без него что-то подобное я не очень представляю. Пользователь должен использовать свой кошелек, eos-js это только прослойка в браузере между кошельком и блокчейном, так же как web3 в Ethereum.
Сам по себе EOS хорош, но говорить что на нем однозначно делать лучше имхо как-то преждевременно.
Ну нет, проблема пропускной способности в данном случае сильно преувеличена. Про это написано в статье.
Сеть Ethereum не очень быстро проводит транзакции (при создании аккаунта пользователю может быть придется подождать несколько минут), но доставать данные и осуществлять проверку аутентификации пользователя можно очень быстро.
Вы в фейсбуке регистрируетесь несколько минут(надо же ввести день рождения, почту, пригласить друзей, рассказать где учился, где работал… сексуальную ориентацию наверное скоро надо будет указать) один раз в жизни и в Ethereum регистрируетесь несколько минут один раз в жизни. Потом вы много раз быстро входите в систему. И с эфиром это работает так же быстро за счет существующей инфраструктуры сети, потому что для проверки подписи не нужно отправлять транзакций в сеть, нужен только доступ на чтение.
В статье речь не про SaaS от VK, про OnPremise от VK. Даже если VK спустя несколько лет сделает то что уже сделал Microsoft, у клиента останется настроенная инфраструктура
Последние года полтора наблюдаю как массово набирают разработчиков всех уровней, от стажеров до синьоров (в разных компаниях). Даже в нашей команде человек десять взяли за последние пару месяцев. Должен сказать что слухи о кончине конкуренции сильно преувеличены, и даже если в каких-то местах тенденция убывающая, то в других местах она обязательно прибывающая.
Статья, кстати, хоть и адресована начинающим, но с прицелом на то чтобы не стать "пушечным мясом" которое для работодателя "одинаково плохо". Я даже смею надеяться что последовавшие советам будут обладать в глазах работодателя неиллюзорными преимуществами не за счет диплома, а за счет практических навыков, и в гораздо более короткие сроки.
Если конкретный курс не заходит (для человека с нулевыми знаниями), можно попробовать другой. На худой конец (условно худой, я сам так и учился) можно взять книжку. Тот же Learning Perl прекрасно подойдет для начала. Тут, конечно, важно потратить время на начальное изучение любого языка, не важно каким способом. Может даже специально взять язык на котором никогда не доведется писать и выучить в отрыве от современных задач. На уровне "что такое переменная", "как работает цикл". И не просто выучить, а попробовать на практике что-то очень простое писать с намерением понять как это работает, выкинуть и забыть. Важно выбирать способ изучения по принципу "можно легко поменять если качество не устроило". Поэтому бесплатный курс, книга, рассказ друга - хороший вариант, а платное обучение не очень.
По оффтоп части: работать в VK можно из любой точки мира где есть интернет. В 2020-м году это было еще не так, но сейчас существенно прокачали удаленную работу благодаря известным событиям. Это перестало считаться дикостью, стало привычным, нормальным. Даже удивляешься если в какой-то компании нет удалёнки.
Другой вопрос что в VK очень высокий порог входа. Для тех кто читает статью и думает "вот я на курсы бесплатные запишусь, освою язык, научусь тесты писать и через полгода меня в VK возьмут" у меня плохие новости. Скорее всего не возьмут. Но есть и хорошие новости. Можно поработать год-два-три в компании попроще. Или даже в нескольких. Набраться опыта в реальной разработке. Причём лучше чтобы это был highload, то есть не любая разработка, а близкая к тому чем занимаются в VK. Очень важно не останавливаться в развитии, даже если кажется что все необходимое уже освоил.
Про себя могу сказать что от момента когда я решил что хочу работать в Mail.Ru до момента когда я пришёл работать в Почту прошло года два, или чуть больше. Все это время я ходил на внешние мероприятия, смотрел чем занимаются эти люди, пытался у себя в работе применять то, о чём рассказывают в докладах. И все равно это был такой мини дауншифтинг, потому что зашёл я на джуниорскую позицию, разработчиком на языке который уже плохо помнил (как выяснилось впоследствии, плохо знал даже у лучшие годы), с понижением зарплаты относительно привычного уровня. Но это того стоило потому что я получил возможность учиться у лучших. Присутствовала и некоторая доля везения, я попал в команду которая даже внутри компании Perl-ом на очень высоком уровне занималась. Сейчас даже на проде ещё кое-где осталась перляка, но если сравнить Perl в Почте и Perl в Облаке, то это, как говорят, две большие разницы.
Спасибо. Про ВУЗы как раз у меня актуальная информация, у меня ребенок в этом году закончил школу и пошел на вышку. Там просто открытым текстом рассказывают что "вот этот предмет вам не нужен, но без него государственную аккредитацию не давали". Это нормальное основание для преподавателя не приходить на собственный предмет. Сейчас, кстати, ребенок подумывает отчислиться, потому что, как и я в свое время, не может себе ответить на вопрос "Зачем?".
Материал про TDD давно хочется сделать. Пока не знаю в каком формате. Мечтаю сделать видео с livecoding-ом, но это может быть только затравкой, в идеале должна быть серия видео или статей, потому что TDD показывает себя во всей красе именно в долгосрочной перспективе в условиях меняющихся задач, требований. Проблемы, которые решаются тестами в проекте без TDD возникают не сразу, а в результате серии изменений. Чаще всего разработчик не дурак, и четко поставленную задачу даже без тестов может сделать качественно. Косяки начинают вылезать когда кто-то потом (в ходе разработки, через полгода, или через год) придумал новую фичу и решил переиграть уже действующий функционал, но не учел особенностей реализации, не проверил все случаи которые проверял руками автор. Не знал что надо, или не у кого спросить (автор уже уволился, новый разработчик еще не вкатился), и т.д. Как эту реальность уложить в упрощенный обучающий материал, на который студенту не пришлось бы тратить несколько недель, я пока не придумал. Но не оставляю надежды сделать.
Спасибо, надеюсь тем кому скинете пойдет на пользу.
ВУЗ не имеет ничего общего с развитием soft skills. Он так же в общем случае не сильно развивает фундаментальные компетенции, такие как ответственность, нацеленность на результат. Я считаю очень странными компании в которых такую связь считают реальной и требуют наличия вышки. Достойный соискатель без формального образования просто уйдет к конкуренту в таком случае, а конкуренция на рынке высокая. Но, как сказал президент совсем по другому поводу, "это их выбор".
Возвращаясь к своему примеру, скажу, что все связанное с soft skills я постигал уже в Mail.Ru Group на соответствующих внутренних тренингах. Там были курсы по таймменеджменту, переговорам, управлению проектами и т.д. Про таймменеджмент, кстати, больше всего зашла адаптация GTD от Максима Дорофеева. По этому курсу он потом выпустил книгу https://www.litres.ru/maksim-dorofeev/dzhedayskie-tehniki/, хотя вживую несравненно лучше усваивается. Это, кстати, пример удачного оффлайнового курса, за который не жалко деньги отдать. Не про языки программирования, конечно, но, надеюсь, кому-то будет полезно. Все что я узнал от Дорофеева было мне полезно.
Насчет ВУЗа в 40 добавлю, кстати, на примере своего отца. Он учился в том же ВУЗе что и я (вернее я пошел по его стопам в тот же ВУЗ), потом работал программистом на C++. В какой-то момент ушел в строительную сферу, а там профильное образование было "необходимо" в виде корочки. Уже работая по новой специальности он вполне себе поступил заочно на вторую вышку и получил диплом. Не помню точно в каком возрасте это было, но больше 40. Возраст как раз не помеха. Если есть потребность в дипломе, его всегда можно получить. Опять же, прошу заметить последовательность. Сначала пошел работать, потом получил диплом. То есть востребованный специалист получит работу даже если диплом вписан в требования по вакансии, а диплома нет.
Поэтому и рекомендую бесплатные курсы. Заранее можно судить только очень условно, легко ошибиться. Но если курс бесплатный, его не жалко бросить и поменять на другой. С платным (если он неудачный) обычно становится жалко, заставляешь себя закончить, в итоге потеряны не только деньги, но и время.
Если рассуждать глобальнее (об этом много говорят сторонники agile), разработчик не создает материальных объектов. Строители, наоборот, создают то что сложно поменять. Поэтому в области материальных объектов важно длительное, детальное проектирование. Это долго, дорого, неэффективно, но цена ошибки настолько высока что оптимальнее способа нет. В разработке обычно проще сделать что-то, посмотреть как работает, и выкинуть если не нравится. Сервер в облаке перекатить это не здание построить. Дальше взять другую идею, повторить цикл. И с обучением можно делать так же. Много маленьких ошибок в таких областях обходятся совокупно дешевле чем одна или две больших.
Да, так понятнее, и похоже мы с вами одно и то же говорим. ВУЗ не нужен если не дает базы. Таких сейчас, к сожалению, очень много. Поэтому если идти, то осознанно, а не потому что "все идут". И туда где учат, а не просто деньги на студентах зарабатывают. Чтобы увеличить вероятность попасть именно в такое место, я бы рекомендовал стремиться на бесплатное обучение. В ВУЗ где есть вступительные экзамены, а не зачисление по результатам ЕГЭ.
Конечный результат "я учился в ВУЗе и получил хорошую физмат базу, которая затем пригодилась мне в карьере разработчика" это прекрасно. Но, это частный случай. На практике могут встречаться также случаи "я учился в ВУЗе, но не получил хорошей физмат базы, и это помешало мне стать разработчиком" или "я учился в ВУЗе, не получил хорошей физмат базы, но это не помешало мне стать востребованным разработчиком". Первый вариант мог бы служить доказательством вашей правоты, но как быть со вторым? А есть еще и такой: "я учился в ВУЗе, получил хорошую физмат базу, но не стал востребованным разработчиком". Такие примеры мне тоже известны.
Нет прямой связи между ВУЗом, физматподготовкой и разработкой. Есть традиция думать что такая связь есть. Но разработчик это не обязательно математик, также как не обязательно разработчик-не-математик занимается исключительно клепанием кнопочек и формочек. Между этими двумя полюсами бесконечное поле для деятельности, и оно не обязательно требует обучения в ВУЗе. Хотя и не противоречит ему в 100% случаев.
Вспоминая первый комментарий, могу сказать что мой личный удачный опыт связан с интересом к предмету, и, пожалуй, всё. Из интереса произрастают энергия и упорство, необходимые для поиска информации и ее изучения, освоения знаний на практике, разработки собственных подходов, не описанных пока еще нигде.
А ВУЗ, как следует опять же из нескольких комментариев, нужен больше для того чтобы переехать в другую страну, получить бронь от призыва, и прочим социальным выгодам. При таком условии последовательность "стать хорошим разработчиком, потом получить формальное высшее образование" выглядит ничуть не хуже традиционного варианта. Но она дает существенную экономию времени отведенной нам жизни, а это не мало.
Спасибо, дельно написано.
Про ВУЗы отвечу только что не угадаешь. Об этом и пытаюсь сказать, слухи об их полезности сильно преувеличены. Я не столько за то чтобы совсем в них не учиться, сколько за то чтобы учиться в них только ошущая в себе такую потребность, а не потому что "здесь так принято".
Про Java уточню: я не призываю писать всю жизнь на Java. Идея в том чтобы первый язык выбирать не сильно заморачиваясь и не сильно сложный. Но не надо останавливаться на одном, уже на продвинутый курс можно выбрать (чуть лучше осознавая какие бывают языки) более востребованный на рынке, или более интересный для себя. То есть сначала получить базовые знания о том как выглядит процесс программирования на несложном языке, далее выбирать язык осмысленно под конкретное направление.
Тот же фронтендер вряд ли будет изучать язык с ручным выделением, возьмет NodeJS и будет писать на Javascript. Помешает ли ему при этом знание Java? Вряд ли. Можно ли начать сразу с Javascript если решил пойти во frontend? Можно. Но мне кажется, что контраст между разными языками помогает лучше понять нюансы. То есть, зная немножко Java перейти в Javascript несколько эффективнее для процесса обучения.
Про git тоже жалею. Радует только то, что сегодня почти в любой курс входит изучение git как необходимого инструмента (это удобно для проверки домашних заданий). То есть маловероятно что разработчик останется без этих знаний. Впрочем, я не оставляю надежды написать отдельный материал про процесс разработки в терминале, там будет и про git, vim, tmux, bash и make. Пока что пусть они поживут здесь в виде списка, который можно загуглить и отдельно разобраться. Осиливший не пожалеет :-)
Для тех, кто использует ВУЗ не по назначению, возможно, есть смысл потратить таким способом пять лет своей жизни. Но это тема для другой статьи.
Про госсектор могу сказать что я работал начальником отдела ИТ в государственной компании. Это должность на которую по определению не берут без высшего образования. У таких мест и у "консервативных" ИТ компаний есть кое-что общее. Вы (хороший разработчик) больше нужны им, чем они вам. А когда вы нужны компании, находятся способы обойти любые внутренние ограничения. Поэтому разработчикам я рекомендую стремиться в ряды высококлассных специалистов своего дела.
Запасать знания впрок я бы не рекомендовал. Изучать стоит то что действительно интересно лично вам.
Сколько каждый из нас сможет назвать людей которые пошли в ВУЗ и, благодаря этому, сегодня читают статьи со сложной терминологией? Гораздо меньше чем просто людей которые пошли в ВУЗ. А если в этому добавить что существуют люди, которые формально не имеют высшего образования, но читают, и даже пишут такие статьи, станет понятно что ВУЗ здесь просто сопутствующий фактор, а не определяющий.
Я в институте изучал нейронные сети применительно к обработке сигналов, но эти знания мне пока не пригодились. Лет шесть назад я пытался послушать современный курс по нейронным сетям, но не смог вспомнить всю ту математическую базу, которую в меня заложили в ВУЗе. Знания забываются, этот факт редко кто учитывает.
С этим не поспоришь. Любопытство основной инстинкт человека, кто бы про что ни снимал кино :-) Любопытство дает энергию, необходимую для изучения нового, и если оно есть, освоить профессию будет куда проще. А поскольку учиться приходится почти всегда, сохранять любопытство и интерес очень полезно, и не только для разработчика. Без него вообще жить скучно.
Отчасти поэтому статью и написал. Программистов "пекут" много, а вот заложить в их "тесто" ингридиенты определяющие "вкусовые качества" и "срок годности" редко кому удается, эта проблема ускользает от внимания "пекаря", потому что спрос большой, успевай только из печи вынимать да на прилавке раскладывать :-)
Не смог ответить себе на вопрос "Зачем?". Работа над дипломным проектом требует серьезных усилий (спроектировать устройство), а я уже понимал что буду работать совсем не по специальности.
А если любите юмор, то вот вам подходящая история про хакера и солонку в столовой xakep.ru/2006/12/16/35784.
Теперь вы говорите что SSL спасает от MITM. Если спасает, то я все же не понимаю в чем проблема описанной схемы с точки зрения безопасности?
Это неверно, Secure-куки передаются только по https.
Вы рассказываете какой крутой EmerSSL, с этим я не спорю, он крутой. Но приведите вектор атаки который будет работать с описанной в статье схемой и не будет работать с OAuth 2 (приведёте такой который и там и там работает — вам же лучше, заработаете денег по bug bounty программе нескольких уважаемых компаний).
Да, если злоумышленник контролирует канал пользователя и может даунгрейдить соединение до http, он прочитает подписанное сообщение (либо с тем же успехом перехватит access token). Или просто отловит пароль, если у вас парольная аутентификация + идентификатор сессии вообще без всяких OAuth.
Частично может закрыть эту проблему использование куки с флагом Secure чтобы она не ходила по открытым каналам.
Если серьезно, аналог metamask для EOS это scatter, и как реализовать без него что-то подобное я не очень представляю. Пользователь должен использовать свой кошелек, eos-js это только прослойка в браузере между кошельком и блокчейном, так же как web3 в Ethereum.
Сам по себе EOS хорош, но говорить что на нем однозначно делать лучше имхо как-то преждевременно.
Вы в фейсбуке регистрируетесь несколько минут(надо же ввести день рождения, почту, пригласить друзей, рассказать где учился, где работал… сексуальную ориентацию наверное скоро надо будет указать) один раз в жизни и в Ethereum регистрируетесь несколько минут один раз в жизни. Потом вы много раз быстро входите в систему. И с эфиром это работает так же быстро за счет существующей инфраструктуры сети, потому что для проверки подписи не нужно отправлять транзакций в сеть, нужен только доступ на чтение.