Новичок в программировании. Стоит ли начать свой путь в front-end web разработке с изучения C/C++/Java/C#?
Доброго времени суток! Решил написать только после того, как не нашел ответов на свои вопросы на различных ресурсах, в том числе этом. Может быть, плохо искал. И заранее прошу прощение за возможную путаницу в терминах.
Начну с краткого ликбеза о себе, чтобы была ясна общая картина моей никчемности. Мне 24 года, имеется неоконченное высшее образование по направлению ПМИ (Прикладная математика и информатика), бросил по своей глупости 2 года назад на 3м курсе. После этого выживал, как получится. Где-то подрабатывал обычным офисным работником у родственников, после пытался что-то продавать в интернете. В последнее время пришло осознание, что моя жизнь потихоньку катится в тартарары, от чего появилось огромное желание что-то изменить. Не знаю, поздно все это или нет, но я очень мотивирован на изучение чего-то нового и неизведанного.
Из всех моих знакомых (в основном англоговорящих) половина работают в веб девелопменте. Поговорив с каждым из них, пришел к выводу, что тоже стоит попробовать, так как до этого всем, чем я занимался - это разработкой кастомных игровых UI по заказам в (не смейтесь) в онлайн игре World of Warcraft, используя игровое API вкупе с LUA и XML. Мне это нравилось до такой степени, что я мог ночами напролет проводить за решением какой-то проблемы или написанию простенького для большинства, но сложного для меня алгоритма. Само осознание того, что у тебя что-то получается, что ты видишь какой-то результат, придавало мне сил.
Чтобы сразу был понятен мой уровень; до 18 лет не мог написать даже простейшую "Hello World" на паскале (информатика не преподавалась, хоть и была). Точнее, я даже об этом не задумывался. Программирование казалось чем-то далеким и непонятным. По окончании школы не знал, куда идти, по итогу выбрав инф. направление. По началу было очень сложно, но со временем приходило понимание и появлялся интерес.
И, казалось бы, открывай youtube, специализированные форумы и ищи курсы, пособия, скачивай книги, читай, делай проекты, но я застрял на самом первом шаге. Я не понимаю, с чего мне начать свой путь в программировании. За годы нахождения в своебразном мире IT у меня сложилось мнение, что каждый уважающий себя программист должен разбираться в хотя бы одном из следующих языков: C, C++, Java, C#. Я понимаю, что ставить их в один ряд неправильно, но для меня они всегда были каким-то базисом, без которого нельзя переходить к другому. Скажите, пожалуйста, так ли это? Или можно сразу же, не переживая, переходить к активному изучению JS / PHP (HTML & CSS) без каких-либо реальных навыков разработки в уже сказанных языках? Понадобится ли это в будущем? Не закладывают ли они какой-то определенный шаблон, концепт в твоей голове? (Опыта участия в разработке хоть чего-то серьезного нет, знания отрывочные и остановились на понятиях об ООП в Java / C# еще со времен университета)
И второй вопрос. Стоит ли пытаться сразу же восстанавливать пробелы в таких науках, как дискретная математика, комбинаторика? Или оставить это до момента, когда все это реально понадобится в каком-либо проекте?
Простите за большой объем, вопросов много, но везде отвечают на них по-разному. И заранее благодарю за любой совет.
И, казалось бы, открывай youtube, специализированные форумы и ищи курсы, пособия, скачивай книги, читай, делай проекты, но я застрял на самом первом шаге
Фронтенд - это в первую очередь js. Как бы этот факт не корежил лица атцов программирования, но это так.
Чтобы не быть голословным, приведу в пример себя - так же примерно до 24 лет занимался всякими финансами (вышка - финансы и кредит), работал в банках, занимался аудитом и мониторингом в последнее время. В какой-то момент мне оно наскучило, я подумал, что есть такого, где можно видеть результат своего труда, а не кипу отчетов? Ответ нашелся в программировании.
Т.к. у меня не было знакомых прогеров, то вопрос из темы меня не мучил - я как-то сразу пришел к js. Начал с простеньких самописных сайтов, потом делал расширения для браузеров и а-ля приложения. В какой-то момент решил попытать счастья в мире IT в своем небольшом городе околомиллионнике - разместил резюме, в котором приложил сделанные сайты, приложения и расширения (всё размещалось на моем сайте, который тоже был, ибо какой программист без собственного сайта? Шутка).
И меня начали приглашать на собеседования. Большая часть из них была полная жижА, т.к. там только делали видимость поиска сотрудника, а по факту отказывали, хотя тестовые задания были сделаны правильно, хоть и не оптимально (но и искали они новичков). По итогу эти вакансии висели месяцами.
Где-то предлагалось заниматься формошлепством на CMS, что меня совсем не вдохновляло, но для начинающего это неплохой вариант.
В итоге, меня пригласили на собеседование в компанию, которая и дала мне старт в IT-жизнь. И пригласили меня как раз из-за моих пет-проектов, так сказать. Так что они должны быть, если нет опыта работы.
На этой работе я сначала потыкал битрикс и параллельно начал учить Angular2. Давалось это всё тяжело, было мне тогда уже 26, но шаг за шагом, день за днем приходилось разбираться во всём этом. Тем более, что вскоре ушло сразу несколько прогеров, которые занимались основным проектом, который и лег на мои плечи.
Где-то через полгода понадобилось еще и мобильное приложение делать - пришлось учить Ionic.
Далее шли различные проекты, рос мой уровень и уровень зарплаты (которая тем не менее была скромной, а по меркам IT так вообще).
Спустя еще год, когда я уже был основным разработчиком, я начал потихоньку делать рефакторинг - веб-проект перенес на последнюю версию ангуляра, а мобильный - на Flutter.
Итого, спустя четыре года от первой строчки кода, я а-ля фуллстек веб-разработчик с неплохими навыками в мобильной разработке.
Что касается других языков, нужно ответить на вопрос - зачем? Просто так - это всё быстро из головы вылетит. Ну а если есть цель, то тут любой язык подойдет для общего развития.
Как говорится, язык - это инструмент. Нужно учиться программировать. И нужно этого хотеть. Я, что тогда, что сейчас могу сидеть ночами над интересным проектом, мне в кайф получать новые знания, получать выброс эндорфинов от, наконец-таки, решенной проблемы - я живу программированием, и занимался бы им, даже если бы мне не надо было вообще работать.
Если у тебя есть такое желание - все дороги открыты.
Tuss96, удачи в начинаниях! Дополню еще: может настать такой момент, когда изучение поднадоест, и пропадет желание что-либо делать. У меня был такой перерыв на полгода где-то.
Не стоит этого пугаться и делать выводы, что программирование - это не Ваше.
Нужно собраться с силами и заново начать учить, постепенно восстанавливая забытые знания. И это быстрое восстановление даст толчок дальнейшему развитию.
И обязательно нужно делать свои работающие и полезные проекты. Да, калькулятор или змейка тоже показывают уровень. Но, по сути, таких проектов миллион - каждый второй их делал.
Лучше придумать что-то свое.
Я вот решил вспомнить, как делать расширения для браузеров и делаю плагин для Авито, где при поиске недвижимости, по нажатию на нужный адрес, выдается информация о здании: тип стен, перекрытий, год постройки и т.д. Идея проекта возникла из реальной потребности, ибо для просмотра типа дома мне нужно открывать каждое объявление и смотреть там. Тем более, что там может быть неправда, т.к. это всё вносится автором объявы.
А так я отправляю запрос с адресом на сайт министерства жкх, парсю ответ, отфильтровываю нужные данные и возвращаю их на страницу.
Да, всё это работает долго и криво, но во-первых, есть реальный результат, который можно показать, и который радует. И во-вторых, есть практика всех возможных частей языка: тут и работа с DOM, и события, и работа с массивами данных, и запросы, и кроссайтовость, и передача данных из одного скрипта другому, и изучение структуры расширений, что тоже важно, ибо работа с чужим API - значимый кусок работы программиста, особенно начинающего.
Или можно сразу же, не переживая, переходить к активному изучению JS / PHP (HTML & CSS) без каких-либо реальных навыков разработки в уже сказанных языках?
Это куда более долгий путь, а учитывая, что тебе надо ещё и работать, то очень долгий. Да, он, имхо, более правильный, лучше понимание всего программирования будет, что будет очень полезно в перспективе, но насколько ты сможешь себе это позволить сейчас?
По сути, с учётом работы, тебе год-два понадобится (я не очень понял твои навыки программирования сейчас).
Альтернатива сразу идти в жс и потом, когда (если) уже получится устроится на работу, начать изучать основы программирования на других языках. Хотя некоторые и без этого обходятся и ничего.
И да, фронтеров трейни дофига и много, так что не факт, что альтернатива выгорит. Как и наоборот. Самообучение всё же несёт свои плюсы и минусы.
C, C++, Java, C#
Имхо, опять же, я бы тут сделал такой список: C/C++, Java или C#, Haskel или другой функциональный язык.
Стоит ли пытаться сразу же восстанавливать пробелы в таких науках, как дискретная математика, комбинаторика?
Знать полезно, но на фронте тебе вряд ли эти знания пригодятся.
Альтернатива сразу идти в жс и потом, когда (если) уже получится устроится на работу, начать изучать основы программирования на других языках. Хотя некоторые и без этого обходятся и ничего.
WbICHA, есть денежная подушка, которая может позволить потратить 1 год на тотальное изучение чего-то.
Было желание купить и пройти хорошо разрекламированные курсы от GeekBrains, но посмотрев и послушав, что об этом всем говорят другие люди, появилось чувство "лапши на ушах" и зарабатывании огромных денег на таких, как я
Tuss96, верно, в первую очередь это коммерческие проекты, так что себя они не обидят.
Там самая главная проблема в другом ─ вся базовая информация (а там если и дают больше, то немного) есть в свободном доступе в интернете. А вот дальше, когда ты уже вроде как сам язык знаешь, можешь на нём писать, даже странички сам сделал и оно как бы работает, но вот само качество кода, структура, архитектура приложение и прочее очевидно идёт низкого уровня. Но тут в любом случае вопрос измеряется в годах.
По поводу года, я бы не был столь оптимистичен, но тебе лучше видно. Я так же не могу сказать, хватит ли тебе года или нет, тут поимо от твоих текущих навыков, будет ещё зависеть и от твоего усердия. Не переоцени себя (слишком углублённым изучением всего), а то по итогу просто потеряешь год. И да, не забывай, что за год тебе не только надо научиться программировать, но и найти работу, а это вопрос может быть даже не полугода.
И да, если таки решишься, в первую очередь запомни правило №1 ─ ПРАКТИКУЙСЯ. Всё время. Любая теория должна проверяться на практике, даже если вроде всё понятно, поскольку реальность может несколько отличаться от теории.
Краткое впечатление:
1. Программирование никогда не интересовало ("не преподавалось" - ни разу не оправдание для того, кому самому интересно. Мы своих преподов доучивали).
2. Учеба как таковая тоже не интересна, раз бросил вышку. По глупости или нет, но о стремлениях это говорит.
3. Теперь прижгло, и кажется, что это - хорошая мотивация.
4. Но вместо того, чтобы зарыться в учебники, началась прокрастинация - мечты о крутых языках и вопросы на Тостере.
Я не вижу реальной перспективы развития при таких данных.
Если хочешь увидеть ее сам - хватайся за то, что можешь быстро освоить и вообще понять прямо сейчас, отложив влажные мечты и метания до хоть каких-нибудь реальных результатов. Фронтенд - удачный выбор для неумехи, порог вхождения низкий. Хватит страдать херней, входи, если можешь.
Первый ЯП должен служить для освоения ряда базовых концепций, причём чем более доступным образом, тем лучше. А вовсе не для зарабатывания денег.
Вот переучиваться с питона или Паскаля или Visual Basic сложно
Слово "переучивание" тут использовано совершенно не по делу. Visual Basic я не предлагал, это тоже скверный выбор. Лучший выбор для первого ЯП - Pascal (1 место) или Python (2 место). То, что вы пишете, что с Python надо "переучиваться", так это вообще комедия. Я понимаю, что для вас как NET-овца вообще ничего другого не существует, но уж такого-то абсурда всё же не надо бы писать.
AVKor, Очень смешно. То есть потратить свое время на не нужный хлам, ради того что бы оболтусы/ки на твоем курсе не чувствовали ушербность? Хорошее решение.
Только после этого часто получаются "специалисты" не знающие о памяти и потоках, вообще ничего.
И да мне не нравится многословный синтаксис и волшебные символы, ну и отступы если уж на то пошло.