Многоуважаемые Пидоры и Пидорессы, настал тот день, я наконец созрел для того, чтобы обратиться за Вашей помощью.
Ситуация следующая: Работаю в IT-сфере уже лет 8, то в тех поддержке, то энекеем.
Решил-таки податься в разработчики.
Морально готов оплачивать онлайн-курсы. Попутно думаю почитать литературу. Мне советовали Кнута "Искусство программирования".
Немного знаю pascal. На уровне школьной программы 2000-х годов. Понимаю, что обучение займёт немало времени и что сначала придётся работать джуном за копейки. (как будь-то я сейчас не за копейки работаю)
Записался на скилбоксе на марафон профессий бесплатный.
Что посоветуете? Какую платформу (скилбокс, гикбрейнс, что-то ещё)? Какой язык будет проще освоить и затем найти работу (в РФ или за пределами)?
Может у кого-то из местных есть опыт обучения подобным образом?
В общем, рад любым советам.
И да, сейчас на скилбоксе скидки. Кто в курсе как часто они бывают? Ато написано "до конца скидок 8 часов". Может быть следует ускориться с решением и вписаться?
Подробнее
заапрувлено на риахтумге КУПОН НЯ ОДНУ БЕСПЛЯТНУЮ ПОМОШЬ ПИЯОРОВ 1
пидоры помогите,реактор помоги,it,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Рекомендую смотреть на 1.5х
Подводя итог, а то и так очень много букофф.
1) Пока не попробуешь и не определишься для себя, что тебе нравится, ты не поймёшь, что выбрать. Поэтому вместо того, чтобы тратить время на выбор языка, потрать его на попытки на каком-то языке что-то написать. Я так пробовал с пыхи свалить на питон, джаву, шарп. Мне ничего не понравилось. А потом я попробовал написать на гошечке одну задачу по работе и понял, что это любовь с первого взгляда.
2) Не бывает "нормальных" языков, не бывает "правильных" языков. Не стоит воспринимать буквально, когда кто-то ругает какой-то язык. Как у любого инструмента есть своя область применения, так и у ЯП-ов есть своя сфера и свои косяки. Ну и да: "Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует." (с)
3) Чтобы ты не выбрал, если ты развиваешься, как программист, всегда можно перескочить на другой ЯП. В последствии ты всё равно будешь в задачах использовать не один, а несколько разных. Главное, уметь правильно думать, строить алгоритм, а на каком языке ты будешь его описывать, вопрос уже другой. "Надо писать программы не на языке программирования, а с его помощью." Как-то так вроде было у Макконелли.
Здесь главное, как в прочем и в любом другом интелектуальном труде - пытливый ум и дисциплина.
Если первого нету, то к развитию выше джуна, в крайнем случае мидла, ооочень сложно будет.
Если коротко - в конечном счете лучше всего идти в ентерпрайз аутсорс, прибыльный, стабильный и менее геморный (в перспективе) вариант работы.
Конторы, которые исповедуют ентерпрайз - ЕПАМы и иже с ними, в Росии подобные доступны в Москве и СПБ, детальнее не скажу, так как не из России.
До нужного уровня можно прокачаться в топовой местной конторе, технологии которой на >70% совпадают с тем, что есть в больших компаниях.
Теперь языки/фреймфорки
минимальные требования на уровень Junior:
Если бекенд:
C# + ASP.NET Core, EF/Dapper,
SQL
Если фронтенд:
JS + React/Angular/Vue + Redux
HTML, CSS
По ресурсам, основы:
C# - найти на торрентах курсы ITVDN, на русском. Сначала от Александра может подташнивать, но настолько разжеванного материала я больше нигде не видел, посему неистово рекомендую
JS - на youtube Sorax JS Jedi, просто, быстро и понятно. Советую, даже если выберешь C#, лишним не будет 100%
Во всем остальном все то, что идет пачкой к C#, прекрасно учится прямо с сайта Microsoft при должном уровне желания и английского (гугл транслейт на первых порах пойдет)
в обоих случаях обязательно уметь в Git.
поверхностные знания HTTP (GET/POST/PATH/PUT/DELETE/OPTIONS), возможно CORS.
Cookies, JWT
Если идти в фуллстек (учить и фронт и бек) - так можно, но рано или поздно, обычно спустя год/полтора/два прийдется выбрать что-то одно, так как времени на все физически не хватит
Если ты не хочешь застрять навечно в мелких конторах без перспективы роста, (да и просто быть хорошим спецом) нужно _вовремя_ освоить практики написания и дизайна кода
Ентерпрайз очень не любит гавнокод, так как
- сложно поддерживать
- сложно фиксить
- невозможно разширивать
а переписывать гавнокод у заказчика обычно нету времени/денег/желания а иногда и всего вместе
Поэтому даже на Junior в крупных компаниях тебе нужно не только знать, но и уметь использовать на практике:
Обязательно SOLID + KISS - следование одним только (S)RP и (D)IP в купе с KISS при правильном подходе избавит тебя от 80% гавнокода. L пока можно упустить. Крайнее еффективно даже при старте обучения.
Есть еще всякие CQRSы и прочие страшные слова, которые тебе понадобятся не раньше мидла.
Тесты, тесты и снова тесты.
Как минимум - юнит тесты. Правильно написанные тесты - твои друзья, которые наравне с SOLID и KISS сохранят тебе тонны времени и нервов.
Именно тесты покажут, что твой код в 99% случав работает так, как должен. Есть даже целый подход к разработке - TDD.
Код в крайних случаях может быть гавном. Но если такой код не проходит тесты - тикай_з_городу.jpg
Советую начинать писать тесты где-то в середине изучения самого ЯП. Если будешь учить С# - освой немного IoC, например, Unity или Autofac, для тестов вещь крайне полезная.
Юнит тестами на практике покрывается только логика, как правило, сложная.
Неплохо будет знать что такое n-layer architecture (DAL, BAL, PL). Обычно джунов (1год+) такое спрашиваем.
Так же будут полезными знания некоторых паттернов проектирования (GoF patterns), не обязательно учить все, но такие как
Factory, Factory Method, Builder, State, Strategy, Proxy, Decorator, Facade и Observer ИРЛ встречаются довольно часто.
ВАЖНО! Не пробуй свести _любую_ задачу к паттерну. Сначала реши задачу. Если решение подходит под паттерн - подтюнингуй решение под паттерн.
Если не уверен - лучше не используй или спроси у старших по рангу.
Теперь о том, КАК учить
70% практики, 30% теории. Даже если ты думаешь "я понял и так" - ударь себя чем-нибуть, чтоб в будущем не повадно было так думать. Потом сам себе спасибо скажешь.
По поводу практики: во время изучения самого языка попробуй поискать в нете простые задачи, как вариант, можно взять задачи из книги Р. Лафоре "ООП В C++"
После изучения основ языка, когда приступишь к фреймворкам, попробуй придумать/найти себе какой-нить pet project и пили помаленьку.
Можно и раньше, но велик шанс, что будешь писать велосипеды для очевидных вещей.
И на будущее: в 99,99% случаев всем пофигу на твое развитие, даже в компании, в которой ты работаешь. Иногда тебе может казаться, что это не так, но не дай этой иллюзии захватить твой разум. Сам себя двигай вперед. Никакие курсы тебе не помогут, если у тебя нету желания и сил разобраться в теме.
Удачи на поприще :)
Алгоритмы джуну менее важны, но хотя бы самые простые алгоритмы тоже желательно понять и реализовать. Пузырек, бинарный поиск, но не более. По крайней мере, должно быть весело и интерестно
По литературе, для общего развития еще можно J Richter, CLR via C# почитать, но это быстрее всего когда уже на роботу устроишься, раньше толку не особо будет.
Вроде ничего не забыл.
если есть вопросы - спрашивай.
Сами курсы довольно жёсткие и сложные, тебя никто за руку не водит, приходится многое изучать самому.
А так я сам уже 3й год работаю разрабом на python и pl/sql, оба языка учил сам тупо по гайдам в интернете и докам.
Возможно и у тебя в городе есть контора контора будет проводить курсы бесплатно.
Как платформу могу ещё порекомендовать хакслет.
Наоборот. С шарпов в таком случае начинать надо.
Любой шарпист сможет в джаву, но не каждый джавист сможет шарп.
А к js лучше вообще не прикасаться
чо в шарпе такого есть, чего нет в яве, и чего нельзя за пару дней освоить?
как так-то бля?!
ты на собеседовании тупо молчал что ли?
А после говорят -
ты тупой, пиздуй отсюдаизвините, вы нам не подходите. Хз, может я и правда тупой?любая работа требует обучения.
всё нужное работодателю знает тока чувак, который оттуда только что уволился.
Поучил плюсы где-то с пол года, потом пошел работать в геймдев. Проработал с год, и меня до сеньора повысили. Потом еще пару лет проработал и уволился (уехал за бугор). Сейчас в силу специфики, того, чем я сейчас занимаюсь, прогаю на питоне (иногда плюсы + CUDA ).
Я вообще хз, зачем зная С++, учить какую-то джаву или шарпы. С++ не так сильно востребован, но спецов толковых очень мало. Есть полно отраслей, где без С++ вообще никак, и вытеснен он не будет
Причем вполне реально джуном устроиться, если сможешь +- рабочую игру собрать
PS ты по осторожнее в будущем будь.
Ну, если ты все четыре тома осилишь - то в своем познании настолько преисполнишься, что будет уже похуй, какой язык учить.
Далее, тебе не только нужно знать лишь 1 язык программирования, тебе нужно знать базис SQL, так как программистам часто приходится соприкосаться с СУБД.
И этого тоже может быть не достаточно, так как даже если ты знаешь свою платформу на 100%, то ты должен писать качественный и легкосопровождаемый код => самое то прочитать книгу "Совершенный код", ознакомится с внедрением зависимостей, а так же ознакомится с паттернами(заучивать не нужно, нужно понимание концепции конкретного паттерна).
Какой язык учить?
1)Лучше, что бы первый язык был со статической типизацией, так как на нем проще набить шишки, нежеле ты будешь разбираться в каком-нибудь JS'е, где код в любом случае будет компилится...
2)Предлагаю выбрать C# или Java. Это весьма востребованные языки с которыми можно писать под десктоп, мобилки и веб. + Весьма приятный синтаксис. Но мне больше C# нравится.
Когда работал в техподдержке приходилось писать небольшие запросы в mysql.
А по поводу "достаточно/недостаточно" я так понимаю, для этого и есть градации типа джун, миддл, сеньор?
Ну вот почитав ответы думаю между С# и Java.
Пойти на онлайн курсы хочу не потому что они лучше, просто, не хочу в итоге сэкономить деньги на собственной лени.
Не читал, однако, насколько я знаю, книга читается тяжело из-за того, что старая + там дофига матана. Лучше чего иного почитать.
Смотри, самый верный и самый быстрый способ найти работу в разработке, это в первую очередь самостоятельное развитие. Выбери то, что тебе больше всего нравится из сфер в IT, посмотри, какие языки и технологии там нужны (а сейчас даже карты рисуют, что и в каком порядке учить) - и начинай читать, практиковать всякие мелкие задачки и тд.
Я не говорю, что курсы и прочие способы платного обучения лажа, я могу лишь предположить, что там шарлатанство в основном, но лишь предположить, так как сам не пробовал двигаться в том направлении.
Но я 100% уверен, что если ты будешь только ходить на эти курсы и всё - у тебя ничего не выйдет. Если курсы помогут тебе в развитии, которое ты начнёшь сам - прекрасно. Но не надо на них полностью полагаться.
Также можешь не волноваться по поводу того, правильное ли направление ты выбрал, ибо в любой момент ты сможешь изменить вектор движения, накопленные знания уж точно не пропадут зря.
Говорю я так уверенно потому, что сам также начинал. Сначала захотел в геймдев, начал учить C++, потом вдруг захотелось делать приложения на андроид, перелез на Java, потом предложили очень дешёвую работу на полставки на бэкенд-Web, стал учить PHP, в 2020 году задолбался работать с PHP и БД, вернулся с нулевым опытом бэкенд разработки на Java, и меня приняли в довольно крутую компанию с хорошей для джуна зарплатой.
Насчёт "мало будут платить поначалу", это относительно. Относительно крутого разработчика - мало. Относительно любой другой работы - зарплата джуна во всех более менее крупных конторах выше средней по России.
Короче, подытожу, главное начать. Хотелось всегда делать игры - попробуй сделать какую-нибудь. Поначалу количество вопросов "а как" будет расти с геометрической прогрессией, добавь к этому пару хороших книг (а подборки есть на сайтах для программистов) и всё получится.
Если выберешь направление Web, то через полгода сможешь стать разработчиком с зарплатой от 30 и выше НЕ в Москве, а это уже неплохо.
Если хочешь более сложный и долгий путь, но достичь куда больших вершин, начинай изучать основы на C++ и Java. Времени и сил понадобится больше, но в итоге будешь очень ценным кадром и сможешь найти работу где угодно.
>(а сейчас даже карты рисуют, что и в каком порядке учить)
Хотелось бы увидеть эти карты. Если можно, ссылку.
>предположить, что там шарлатанство в основном
Я тоже в этом плане скептик, поэтому и обратился к людям, которые не ангажированы и могли уже иметь опыт.
>если ты будешь только ходить на эти курсы и всё - у тебя ничего не выйдет
Курсы для меня - это больше как вектор тяги. Чтобы понимать в какую сторону воевать и т.п. Да и в обучении мне больше нравится решать какие-то прикладные задачи. Либо задачи, которые придуманы специально для обучения.
>Насчёт "мало будут платить поначалу", это относительно.
Ну это понятно. У меня знакомый сам изучал Java и работал джуном, получал в районе 20к. Но он прямо человек-целеустремлённость.
P.S. В плане зп много зависит от жадности кампании, мне платили на старте после испытательного срока 35к, я работал с бэком на Python и помогал сеньёру в реализации и поддержке проекта на С
всё остальное это или не быстро или не верно, или в другой стране.
Мне кажется з/п от 30 рублей для разработчика, даже не в Москве, это как-то очень скромно, учитывая трудозатраты и востребованность.
Из основных Python, Java, C# наиболее популярные варианты. Если что то связанное с компьютерным зрением, высоконагруженными системами, игры, там С, С++ и в случаи игр еще С#.
По курсам не посоветую, не сильно с ними знакомился сам, но чаще всего там тебе вкидывают базу и иногда помогают с каким то стартовым проектом в портфолио(но тут как повезет)
Из совет общих, ознакомся с GIT(так же ознакомиться хорошо с gitflow) и Linux, довольно востребованные навыки, тут не надо чего то спецефичного знать, просто базы хватит. Будет хорошим плюсом, если будет какой то твой личный проект на гите который ты написал или помогал в разработке опенсурс проектов(предлагал пулл реквесты с исправление какого-бага, расширял функционал и т.д.)
Но Best Practice можно начинать смотреть на этапе базы. А с паттернами это скорее ознакомиться, они помогут в поиске лучшего решения, чаще всего применять придется не один паттерн.
Во-первых, все эти книги по алгоритмам и прочей математике лучше отложить на полку и забыть про их существование. Это лет так 20 назад знания алгоритмов и умение перевернуть красно-чёрное дерево были обязательны при работе, сейчас же та ниша, в которой алгоритмы реально нужны настолько сократилась по сравнению со всем рынком разработки ПО, что можно смело про алгоритмы забыть.
Во-вторых, ты ошибаешься, если считаешь, что можешь пойти на какие-нибудь курсы, научиться там чему-нибудь, а потом применять эти знания на работе. Скорее наоборот, посещение курсов, в отличие от самостоятельного обучения, не позволяет тебе развить самый важный навык для разработчика - problem solving. Если ты действительно из IT, то должен понимать, что важны не специфические знания каких-нибудь технологий или парадигм, а умение быстро находить ошибки и быстро рожать решения.
Технологии, с которых я начинал (JSP, JSF) уже устарели, а фреймворки (J2EE) уже глубокое легаси. За всю карьеру пришлось выучить дохрена этих фреймворков, языков и даже пару раз сменить парадигму. Это я к тому-что даже выучив один язык будь готов выучить следующий. Поэтому в плане технологий лучше выбирать для себя общее направление (для меня это, например JVM + Web), а не становиться заложником конкретных языков или не дай бог фреймворков.
Ещё пара советов.
Если выберешь Java или подобные, вызубри всю теорию по многопоточности. Мьютексы, волатильность, synchronized и прочую чушь. Именно вызубри, потому-что нужна эти инфа только для того, чтобы собеседование пройди. Джуниор со знанием параллельного программирование будет выгодно выделяться на фоне толпы вкатывальщиков.
Зарплата повышается только при смене работы. больше 2-х лет на одном месте не сиди. Чаще меняешь работу -> больше зарабатываешь. Особенность рынка.
Лайвхак для собеседования по Java. Узнай что такое Kotlin и Scala и упомяни их. Выучи какие есть режимы работы у JVM и расскажи об этом. Произведешь хорошее впечатление.
И последнее - как я уже говорил, ключевой навык для программистов и разработчиков - это способность самостоятельно получать знания, самообразовываться и желание узнавать и пробовать что-то новое. И никого не спрашивать и не искать чужих советов. То, что ты задал вопрос на "форуме" вместо того, чтобы самостоятельно исследовать проблему (хотя бы почитать анализ рынка и сравнение зарплат на хабре) выдаёт в тебе человека, который (без обид) не подходит для работы разработчиком ПО.
Ещё стоит немного изучить html/css, сейчас большая часть проектов связаны с вебом, даже на Джаведа и сишарпе, и базы данных. И может быть докер
Но я не уверен, что без вышки по информатике и опыта реально что-то получить.
я как-то год-два назад мониторил вакансии в ближайших городах - было очень мало и всюду требовалось образование связанное с матаном.
что имхо логично, бо что там делать без теорвера, матстатистики и прочего?
смотрел интервью чувака оттуда (из data science), так он прямым текстом говорил - люди без матана тут нах не нужны
как писали выше алгоритмы/чистый код это все конечно хорошо, НО в бизнесе часто требуется скорость, умение быстро найти/устранить проблему и часто на качество кладется большой и толстый, это конечно все потребуется изучить в дальнейшем если хочешь стать хорошим разработчиком, но явно не в начале пути
ну и самый главный совет постоянная практика, есть куча сайтов с задачками, например https://www.codeabbey.com/ тут тебе еще и сертификат выдадут если решишь определенное кол-во задачек, хотябы 1-2 в день если решать уже будет хорошо, многие новички начинают усердно и через пару недель выгорают, сужу по себе начинающему
Например, если хочешь делать приложения на айос, то начинай учить эпловский свифт. Если андроид, то джава.
Ну, а если ты хочешь веб-технологии, то двигайся в сторону того же JS и других. Если хочешь делать игры, то может быть c# или тот же джаваскрипт.
Универсального ответа нет. Кому-то нравится наводить красоту на фронтенде, а кому-то комфортнее за кулисами херачить бакенд. Другие принципиально хотят только мобильные приложения делать или игры. Но в целом, перепрыгнуть с одной отрасли на другое можно в будущем. От себя бы посоветовал начать с веб-технологий. Материала и ресурсов по ним дофига, сообщество огромное и есть старый добрый stackoverflow.
только для андроида надо учить котлин.
1) Воспринимай все советы в интернете на эту тему с крупицей соли. Комьюнити программистов переполнено высокомерными уебанами которые будут тебе советовать учить все и сразу, порой вообще ненужную хуйню, потому что они сами в свое время это учили и теперь думают что каждый знать должен.
2)Прогерство как и большинство профессий не требует никаких особых талантов, но требует потратить часы на изучение. Так что качай дисциплину.
3)Быть программистом значит уметь решать задачи, не важно сколько ты выучишь - этого всегда будет мало. Если хочешь стать программистом - научить гуглить, ресерчить, самостоятельно искать решение для своих проблем. А еще нужно знание английского так как вся норм инфа на нем.
----
Ну а теперь по языкам.
1) Зайди на сайт вакансий для прогеров и посмотри какие языки имеют больше всего вакансий для джунов в твоем городе. Это единственный способ реально понять что сейчас востребовано и насколько легко будет устроиться на 1 работу.
Скорее всего ты заметишь следующих гигантов: java, c#, javascript, php.
чистый javascript полная херня, его надо учить в связке с frontend фреймворком и html/css.
у js нет четкой типизации и ты как новичок постоянно будешь ебаться с багами инфу про которые нигде не показывает. Так что если только ты не хочешь сразу идти в чистый фронт, то оставь это для будущих времен.
c# и java это почти одно и тоже, только java устаревший кусок говна который выглядит как c# 10 лет назад. Кроме того в java многий функционал вынесен в сторонние либы с конченой документацией, в то время как c# имеет почти все что нужно в рамках своего .net фреймворка. на изучение c# у тебя уйдет мин в 1.5 раза меньше времени чем на java. так что если только у тебя нету сильного перевеса java вакансий в городе, то выбор очевиден.
php - считается зашкваром среди программистов, что отпугивает многих новичков. На пхп ты не будешь писать нереально сложную серверную логику, скорее всего ты будешь формошлепить на вордпрессе что считается не тру програамирование. Однако выучить пхп будет в разы быстрее. Если ты хочешь как можно быстрее войти в айти и начать получить комерческий опыт, то стоит рассмотреть пхп. А c# можно будет потом подучить и свичнуться через год.
питон - много хайпа, мало вакансий.
---
Изучение
1)курсы - хуйня(особенно платные). НО! Нет ничего зашкварного с них начинать. ПО крайней мере это даст тебе понимание откуда начинать и новичкам порой проще воспринимать инфу в видео формате. Так что поищи какие-то видеокурсы в интернете, благо их хватает. Со временем сможешь перейти на текстовые руководства и документацию, поймешь как много в курсах упускается и какие они медленные.
2)книги - хуйня. Я не могу долго читать их. Скучно и нудно, инфа разбросана по разным главам. Лучше ищи руководства типа matanit + гугл
3)Алгоритмы, паттерны - забудь. Вернешься к ним когда поймешь зачем они нужны.
4)ну и главное привыкай гуглить. гугление - главный навык программиста.
5)когда выучишь основы языка начинай изучение веб фреймворка и работу с бд. сейчас нет смысле чет те говорить дальше, так как к тому моменту сам уже начнешь понимать что к чему.
зато дотнет выглядит как jvm 10 лет назад
Популярность джавы обеспечена за счет того что она имеет сильное присутствие не только в вебе но и на андроиде. Но для разработчика который будет работать в 1 области это не имеет никакого значения. Кроме того популярность означает большую конкуренцию, в то время как на c# веб разрабов спрос такой-же, а желающих меньше.
Быстроразвивающийся? несомненно. Но как именно?
Ораклы ебанулись со своей обратной совместимостью, из-за чего в джаве приходиться писать очень много бойлерплейт кода. В свою очередь c# учился на ошибках java и не боялся проблем с совместимостью разных версий фреймовков, так что язык выглядит чисто и свежо даже сейчас.
Несомненно java язык очень мощный и в правильных руках способен на многое, но автора интересует как можно быстрее всего выучить язык и найти работу. А раздутость джавы разнесенный по сторонним либам функционал этому не способствуют, ровно как и конченая документация по языку.
либ больше, чем на нэте. всё, что на нэте есть приличного - всё портировано с явы. но при этом на яве еще и альтернативы есть, которые до нэта не добрались.
больше сурьёзных контор ваяют на яве. ibm, гугл, редхат и тд
кроме того, разобравшись в jvm, можно писать много на чем: котлин, скала, цейлон, икстенд, груви, кложура.
а у вас чо есть, кроме ненужного бейсика и фшарпа?
и в вашем сраном нэте только вчера какую-то кроссплатформенность наконец родили.
Автор спрашивал на каком языке ему будет проще и быстрее получить работу, а не на какой язык круче для программирование вундервафель. c# может и не так универсален, но он быстрее в освоении.
все либы я, конечно, не юзаю. но в своё время я их сравнил и выбрал наиболее качественные. а ты возьмешь какие есть. и если я наткнусь на критичные для себя косяки, то скорее всего всегда найду рабочую альтернативу. а ты нет.
>c# может и не так универсален, но он быстрее в освоении
с хуя ли?
>Автор спрашивал на каком языке ему будет проще и быстрее получить работу
ява популярнее
я б мож и прошел мимо твоих холиварных утверждений, но ты пытаешься сагитировать человека, который еще пока не шарит, тупо напиздив. не надо так
этот аргумент устарел :), жаба пару лет назад перешла на новую модель релизов, язык стал развиваться быстрее, да и бойлерплейта стало на порядок меньше
"Кроме того в java многий функционал вынесен в сторонние либы с конченой документацией, в то время как c# имеет почти все что нужно в рамках своего .net фреймворка."
ну так есть вариант использовать либы с нормальной документацией
тут у жабы есть серьёзный плюс (и одновременно минус)
в .net зачастую есть ровно один способ сделать что-то, ровно одна либа, в жабе есть выбор (но придется изучать несколько вариантов), поэтому и получается что: " на изучение c# у тебя уйдет мин в 1.5 раза меньше времени"
хотя в целом с посылом соглашусь, надо выбирать исходя из ситуации в текущей локации. когда я вкатывался в моей локации был перевес по жабе 3 к 1 (в плане набора джунов), да и .net тогда был не торт. так что выбор был очевиден.
сейчас что жаба, что дотнет - один хер
На стороне жабы - время, это зрелая, проверенная временем платформа, для которой существует просто овердохуя ... да всего: инструменты, либы, книги, туториалы, огромное комьюнити, проекты. Жаба тут давно, никуда уходить вроде как не собирается и заставить её уйти пока некому, максимум потеснить.
На стороне дотнета ... тоже время, это более свежий язык, выросший на опыте жабы и ввиду молодости избежавший части проблем оной. После выхода .net core стал совсем неплох. Вполне может откусить себе кусок пирога у жабы.
Так что имхо, особо критичной разницы сейчас между ними нет, да и переучиться с одного на другой должно быть несложно.
А так, начни html\css, php, потыкай разные cms'ки, СУБД. А потом к чему душа лежит. Можно остаться и шлёпать шаблонные сайты, можно изучать другие языки.
Если надумаешь лезть в Скиллбокс, гикбрейнс и т.п., то можешь предварительно изучить ;) их программу на форумах слитых курсов (например Sharewood). Поймешь, насколько полезна будет их программа лично тебе, примерное содержание воды и т.п.
Зажабишь/не понравится - можешь дальше с форума бесплатную инфу и курсы вылавливать.
Понравится - купишь курс на официале.
Вариант 1) Если у тебя есть то, что тебя интересует - то взять и написать на первом попавшемся популярном языке эту хрень (чат, форум, игру, робота из компонентов arduino, программу настройки гитары, нейронку распознавания котиков на видео и т.д.).
Вариант 2) Если у тебя нет на примете того, что ты хотел бы реализовать - найди на headhunter те вакансии, которым ты хотел бы соответстновать. Посмотри что им нужно и попробуй реализовать это.
В результате ты получишь опыт программирования. Появится портфолио. Изучишь не только язык программирования (а возможно и не один) но и особенности использования разных структур данных и библиотек. Пройдешь по всем подводным камням пока не осознаешь как оно работает. В результате у тебя будет понимание как устроен язык и все технологии и библиотеки, которые ты применял. Этот проект сможешь потом на собеседовании показать и очень долго рассказывать интервьюверу с какими проблеммами ты сталкивался и как их решал.
После этого или во время выполнения проекта, по желанию, можешь пройти еще и курс по программированию, если совсем не будешь понимать как что делать или если будешь чувствовать что твои знания отрывочные и хорошо-бы их както структурировать.
главное, чтоб самому эта тема интересна была
рассказываю, как я на предыдущую работу устраивался
- ну я чота там по груви ковырял, еще софтину на xtend наваял
- а ява?
- какая такая ява?
- ну вот ты пишешь, охуенное знание явы...
- а это... ну если б я так не написал, мы б вообще не пообщались
- ну ок, 90 косарей тебя устроят?
- Ъ!!!
Не имея навыков и знаний начал мучать Python.
Советую сайт https://stepik.org/ там и инфа, и задачи, и по комментам сориентироваться можно.
Советую сайт https://pythonworld.ru/ тут есть справочный материал по куче всего.
Советую книгу "Изучаем Python" Марк Лутц.
СОВЕТУЮ не слушать тех, кто говорит, что питон не для новичков и питон сложный. Если сядешь с умом - нихера сложного.
Если решишь тащить питон - готов помогать вечерами по МСК в голосовом формате.
Сам не программист но эмоцию понимаю
Ползти в говнокоде, пробираться ползком
Любить тестировщицу который год
Просыпаться во сне от потливого страха,
Вспоминая в темноте только код,
И не рассказывать никому
Непонятных мыслей и слов,
Hелояльных компании снов!
И лелеять премиум на порнхабе
Компенсировать отсутствие моральных основ
Галерный синдром!
Галерный синдром!
Галерный синдром!
Кодить, задротить, терять друзей
Кодить, спускать нерождённых детей
Посылать на прод критический баг
Посылать на прод, потом страдать
Говорить только о компе…
Вспоминая о тех, кто ещё вчера
Выгорел, копаясь в говне
Выгорел, копаясь в непонятном говне!
Синдром!
Галерный синдром!
Галерный синдром!
Галерный синдром!
Что значит пойти на галеру?
Это значит стыдиться зарплат
Это значит ходить по улицам
Где тебя сторонятся, немытый неадекват
Что значит просрать карьеру?
Это значит научиться страдать
Это значит работать и жить как пружина,
Не уметь нихуя, только код писать!
Галерный синдром!
И да, не иди в геймдев.
Но если человек только начинает что-то учит и за столько лет жизни не захотел в геймдев - то у него это не получится.
и учи английский.
Выполняешь краткое задание, пишешь код, он тут же проверяется. Кроме непосредственно курсов языков есть курсы вёрстки, дизайна, аналитики.
Даже бесплатная часть вполне себе, чтобы освоить основы.
Но это если тебя не пугает английский. А если пугает, то забей, там всё легко.
Ну и поддерживаю предыдущих ораторов, советовавших Sharewood
Берешь большой нож.... а не, берешь такой, учишь основы, прешься в школу, на курсы фирменные - СНГ это Епам, Люксофт еще какая нибудь шарага которая берет все подрят, проходишь курсы там, будучи лучше чем 75% амеб и потом в интерны или в джуны. Расклад не очень, но если нет бекграунда школы/института, лет знакомых в этой сфере и жопа старше 25 (и есть прицепы), то особо не выбираешь. Но тем не менее за год-два устраиваются даже не совсем дибилы
https://coursehunter.net/
Учи JS это однозначно и бесповоротно, желательно используя эту книгу: https://github.com/azat-io/you-dont-know-js-ru
Еще нужно изучить для начала один фреймворк: фронт (react/angular/vue.js) или бэк (express/koa) или мобильный (react-native/ionic). Тут уже выбор за тобой, лично я рекомендую React, но он не прост так что лучше начинать с курсов чем с книг.
Для топик стартера:
Могу посоветовать бесплатный и отличный сайт: https://learn.javascript.ru/ если чему-то научишься, купи у него книжку в знак благодарности.
И роадмапа для веб дева тебе в помощь: https://github.com/kamranahmedse/developer-roadmap (тоже нагуглил по бырому, можешь найти другую - много их)
Для css/html я как-то прошел все упражнения на htmlacademy, мне помогло и остался доволен. Недорого и полезно и вроде триал есть чтобы оценить надо оно тебе.
Все остальное почерпнешь из оффициальных документаций (реакты, вебпаки и т.д.) - лучшая инфа обычно на оффициальных сайтах технологий.
ps: от души тебе советую выкинуть из головы приведение типов перейдя на тайпскрипт (а практическая часть приведения типов давно есть в виде таблиц - погугли). И от this по возможности избавиться. Это две очень конченые темы в js, выкинув которые ты не только не проиграешь, но еще и приобретешь.
а у текущего работодателя нет вариантов переподготовки или вакансий джунов?
на крупных it конторах частенько есть такое
имхо, так "вкатиться" будет проще
Я бы андройд выбрал.
английский - 99% любой информации по чему бы то не было всегда будет на английском, поэтому хотя бы intermediate уровень даст огромный буст к обучению
сама тяга к обучению, решению задачек, если у тебя привстает после того как ты мудохолся с кодом n времени и наконец сделал - то это нереально круто, дофаминовое подкрепление наше всё
и имхо, меньше теории - больше практики, не будет никакого толка, если ты будешь читать о, скажем паттернах проектирования, что бы нахуй забыть о них сразу как прочтешь. Попробуй создать сайт, написать змейку, залить приложуху в андроид стор. Это элементарные задачи, которые можно будет сделать почти, что сразу, но понимание, "какого хуя я вообще делаю" сразу выйдет на другой уровень.
Если что работал в саппорте, то возможно стоит попробовать вкатиться в DevOps, будешь совать контейнеры в контейнеры, сейчас трендовое направление.
Алсо можешь чекнуть https://www.glassdoor.com/index.htm , что бы посмотреть забугорные зарплаты и вакансии
Ну и платиновая паста с двача, куда же без неё https://2ch.hk/pr/arch/2016-02-10/res/649393.html