С чего начать путь в ИТ?
Привет. Мне 21 год, и я не имею никакого опыта в программировании. Закончил один из лучших московских вузов по гуманитарной специальности, но разочаровался и ищу новые пути.
Хочу переквалифицироваться в ИТ, начать изучать JavaScript или C++.
Какие программы, курсы, книги посоветуете, с чего начать? Какой язык легче и перспективнее? Желаемая сфера деятельности — разработка приложений. Буду благодарен за любые комментарии.
1
показ
52K
открытий
Это зависит от того, как у вас с растительностью на лице.
Если полноценная борода, то C++, а если жиденькая бороденка, то вас ждет мир JavaScript
1. Вопрос, почему именно в ИТ? Если чисто за бабками - то много не жди, если не фанат кодить всегда и везде.
2. Выучивание ЯП еще ничего не дает, так же, как заучивание слов иностранного языка. Язык программирования - это инструмент, как молоток и отвертка, и надо для каждой ситуации знать какой язык предпочтительней.
3. Для начала изучать алгоритмы, а в прикладной части можно использовать любой язык, хоть тот же Python, он для новичка попроще, чем JS.
4. Что за гуманитарная специальность? Может по этому профилю тоже требуются программисты со знанием предмета? Это в 100 раз перспективнее, чем 100500-ый JS-ник)))
Лучше всего идти на стыке технологии и потребностей в полученной специальности.
Не миллионы, конечно, но в разы больше, чем в других местах.
2. Выучивание ЯП еще ничего не дает, так же, как заучивание слов иностранного языка. Язык программирования - это инструмент, как молоток и отвертка, и надо для каждой ситуации знать какой язык предпочтительней.Зачем? Если устроился забивать гвозди, никто тебя пилить не заставит.
3. Для начала изучать алгоритмы, а в прикладной части можно использовать любой язык, хоть тот же Python, он для новичка попроще, чем JS.Алгоритм вывода товаров в интернет-магазине.
Ща его сразу возьмут драйвера писать или сложный поиск делать, ага)
Начинать всегда надо с основных концепций. Сперва нужно изучить основы дискретной математики и матлогики. Без знания булевой алгебры специалистом стать нельзя. Индусы, не знающий преобразований де Моргана пишут дикий быдлокод.
Потом надо разобраться в архитектуре вычислительной машины, то есть, скорее всего фоннеймановская архитектура. Перед этим надо разобраться как работает Универсальная машина Тьюринга.
После этого уже можно учить структуру и функции операционных систем.
Затем пойдёт теория компиляции. Надо понимать как компилятор парсит сорсы и собирает объектники, и как они компонуются в исполняемые модули,и как ОС эти модули загружает.
Потом уже очередь дойдёт до теории алгоритмов. Всего Кнута читать не надо, но основные алгоритмы надо знать и хотя бы раз закодировать на учебном языке типа Паскаля. На джаве сразу будет тяжело.
Параллельно надо учить основы алгоритмических языков - типы данных, виды операторов, как каждый из них работает, как операторы языка работают друг с другом, как передаются параметры, что такое препроцессор, и так далее ит п.
Параллельнос этим надо учить концепции программирования, начинать со структурного программирования, потом переходить к объектной философии и разбираться с классами, интерфейсами, прототипами, полиморфизмом и пр и пр. Язык значения не имеет, надо понимать суть.
Только после этого имеет смысл учить какую то платформу, то есть джаву с её библиотекой классов, или PHP, или .Net или что угодно.
Учить всухую - потеря времени. Каждую концепцию надо сопровождать учебным проектом, и свой учебный код не выбрасывать. По нему легче будет понять если чё забыл.
Потом добро пожаловать на гитхаб и учиться у местных мастеров, участвовать в проектах, приобретать твёрдые навыки разработки, учиться стандартам, работе в команде, учиться понимать ТЗ и задавать правильные вопросы, учиться отлаживать не только свой но и чужой код.
Короче, от чайника и до младшего разработчика - несколько лет тяжёлого труда, невыпитого бухла, невыебанных баб, непойманной рыбы и прочего.
Некоторым людям относящимся к подвиду "ламер непингуемый" лучше оставаться гуманитариями навсегда. В процессе обучения способность к освоению профессии проявит себя довольно быстро. Или не проявит.
И таки да, я начал карьеру программиста в 30 лет. Сейчас мне 62, работаю по специальности, а до пенсии ещё 5 лет пахать. Это Америка :)
Жир начал капать из монитора рано утром...
Прошу прощения, но здесь я слегка заорал. Большая часть гитхаба — это код-полуфабрикат сомнительного качества, запиленный однажды и не обновляемый никогда, учиться по нему не стоит.
Был уверен, что это шутка такая, пока до последних абзацев не дошел
Вау.
Достойный лонгрид для клиента и план, кмк, довольно годный. Пара тезисов обсуждаемо - но это вкусовщина и детали))
Спасибо огромное, за Ваш пост!!!!!
Как же интересно наблюдать комментарии типа «сначала начни с математики, с дискретки», «начинать нужно с теории по алгоритмам и структурам данных» и т.д. А если он решит стать фронтенд-макакой, то на кой ему дискретка, а, советчики? Тем более парнишка только закончил гуманитарный вуз и если он сразу закопается в дискретную математику, то скорее сойдет сума нежели станет программистом.
Что-бы я рекомендовал абсолютному новичку, так это банально пройти CS50. Если осилишь до конца, то можно погружаться глубже. Если терпения не хватит, то программирование - не твое, увы.
После успешного получения базы, думаю, уже будет минимальное понимание того, какой язык и для чего лучше подходит, и чем бы хотел заниматься сам. Для начала, собственно, погружения в программирование рекомендую начать с Python, JavaScript или C - это довольно простые языка, которыми можно овладеть (easy to learn, hard to master) за пару недель и начать успешно применять на практике. Ну, а дальше уже можно копать в сторону Седжвика, Ахо, Буча и т.д. и т.п.
Современный фронтэнд ничуть не легче других сфер кодинга. И какие-то основы, типа сложности алгоритмов, понимать всё же стоит.
А то потом всё в один прекрасный момент ломается:
https://habr.com/ru/post/280099/
Это все оттого, что программирование - более практическая дисциплина чем многие и навыки в ней более предметные. А умения - как и везде: развиваются циклами и по спирали «практика» - «теория» - «практика». Стандартный цикл познания из анализа и синтеза.
Поэтому вы частично правы с точки зрения старта, но без теории будет сложно обойтись на определенном этапе!
Практических курсов по изучению каких-либо языков программирования - масса. Python там, JS, Java, Kotlin, и тп.
Но! Без серьезной систематизации знаний - будет тяжело. Язык программирования - лишь инструмент. Принципиально уметь программировать, как некий базовый навык. Понимание алгоритмов, архитектур и тп. Поэтому простой совет - идите в ВУЗ на соответствующую специальность. Иначе - самоучкой будет оч тяжело.
"идите в ВУЗ" - еще одна классика жанра. Если хотите профукать 4 или 6 лет и так и не научиться программировать - идите в ВУЗ.
В ВУЗ надо идти, когда начинаешь ощущать, что не хватает того самого, глубинного. В половине профессий этот момент может никогда не наступить.
"Поэтому простой совет - идите в ВУЗ на соответствующую специальность"
Эх... сказывал бы я, да не буду.
Начать с математической подготовки, изучения алгоритмов и структур данных.
После этого:
C#, Python, Go, C++, JS, Java, Delphi... - выбрать для начала 2-3 языка + SQL-необходимо.
Общаться с друзьями-программистами.
Обязательно - иметь тягу к программированию, чтобы было интересно самому, а не из-под палки.
Но, судя по тому, что желание появилось в 21 год, то тяги к программированию нет.
Плюс, сама формулировка вопроса настолько расплывчатая, что автор вопроса даже не представляет чем он хочет заниматься и во что планирует вляпаться.
21 год это приговор, да
Все тру программисты формируются с начальной школы
Начните с бесплатного курса Хекслета "Введение в программирование"
Какую машину купить? Основное желание - ездить.
Начните изучать JavaScript или C++.
Я где-то в 21 год начал изучать PHP, правда у меня уже была работа и я хотел немного облегчить себе работу.
В результате это меня увлекло, и так уж вышло что через несколько лет я осознал, что написал маленькую, кривую, косую, но crm, которая реально увеличила продажи.
Потом решил поглубже изучить язык, переписать црм. Оказалось, что я нихуя не знал PHP, и стыдно смотреть на свой старый код.
Чем больше я изучал язык и знакомился с чужим кодом, тем больше понимал, что я ни разу не программист, максимум - веб-разработчик. Так что позволь поделиться мнением веб-разработчика:
Тру-программисты, как мне кажется, это действительно незаурядные люди, и наверное сложновато стать таким, если не имеешь предрасположенности к этому.
С другой стороны, если ты хочешь просто в IT сферу и "разрабатывать приложения", то ты можешь пойти в веб-разработчики, или в мобильную разработку. Вряд ли тебе удастся сделать нейросеть, определяющую по фотографии вероятность заболеть раком кожи, но вот сделать какой-нибудь очередной календарь или фитнес помощника, или агрегатор шаурмичных в городе - по силам.
И если ты хочешь в айти просто потому что тут больше платят чем экономистам, то это вполне рабочий вариант. Очень сильно поможет знание английского и умение гуглить - это один из самых полезных навыков.
Не боги горшки обжигают. Те программисты, с кодом которых вы знакомились, просто опытнее и образованнее — и то, и то приобретается и учится.
Мне за свой код старый тоже крайне стыдно — но я не жалею, что его писал.
Нейросети - это только звучит сложно. Все давно написано, ставится в несколько кликов, сиди обучай)
Дружище, прими за данность - ты гуманитарий. Программирование - это просто не твое. Если в 21 год ты ни разу не программировал - оно у тебя не пойдет, должен быть интерес кодить. Поищи другие варианты реализации - реклама, маркетинг, SMM, соцсети, блоггеры и другие, близкие гуманитариям штуки.
Ох уж этот снобизм псевдоилитариев... Спокойно люди и после 30 начинают и отлично программируют, будучи и гуманитариями в том числе. И 90% тех же веб-разработчиков в жизни не встретят ситуацию, когда им понадобится серьезное знание математики или глубокое понимание алгоритмов.
Херово хочешь, значит, раз даже погуглить лень. Когда я решил заниматься айти, то не писал статьи, а сел и начал пилить приложение под винфон.
Ага, а пока допилил, винфоны исчезли. Кулстори, бро...
Касательно JS.
Там сейчас такой зоопарк, что даже не знаю...
Как бы не разочароваться.
Не успеешь выучить один фреймворк, как он уже никому не нужен.
Несколько видов сборщиков, у webpack дока на еще один фреймворк тянет.
Я бы сейчас наверное Python выбрал.
Знаю Junior спеца, который сразу c 90к в Мск начал по Python.
P.S.:
Для ознакомления
https://github.com/kamranahmedse/developer-roadmap
P.P.S.:
12.5 лет с JS.
P.P.P.S.:
Учи английский.
Я бы даже лучше выучился на проф лингвиста по английскому, чем пошел в тех вуз.
А IT для работы ты все равно будешь сам учить.
так React в основном требуется, и то, после того как выучит основы, а это не так быстро
1)берёте любой букварь по интересующей вас теме. Если мобайл - по Swift или Kotlin, что-то из Big Nerg Ranch например, тысячи их.
2)прорабатываете этот букварь.
3)выполняете упражнения.
нота бене: одного букваря достаточно! а то многие так из застревают на штудировании букварей.
4)ищете объявления - "набираем джунов/трейни без опыта", "ищем людей на стажировку" - они есть. на любые деньги или даже без денег.
5)идёте туда и работаете за еду/без еды, ходите в старых шмотках со старым смартфоном, обедать ходите к родителям.
6)через год ищете нормальную работу, вас уже можно назвать программистом в том смысле который вкладывают в это слово на рынке труда.
удачи.
Учись пилить под ios, берешь mac, оплачиваешь подписку на ray wenderlich, покупаешь книгу Василия Усова, учишь и практикуешься в xcode playground. Плавно переходя к архитектуре и пониманию процессов.
Скоро всему вашему айосу кирдык.
Смотря каких приложений, если мобильных для Android, то начните с Java и Kotlin, если хотите делать приложения для iphone, то понадобится Мак. Если вы совсем новичок, то вам проще все будет записаться на какой-нибудь онлайн-курс, где вам все разжуют.
Если после прохождения такого курса тяга к разработке не пропала, а усилилась, то попробовать сделать базовый проект для портфолио и пытаться устроиться на работу или стажировку.
Если хочется просто "В айти", то можно быть не только разработчиком, там много направлений - менеджмент, дизайн, тестирование, маркетинг. Для каждого направления тоже есть соответствующие курсы.
Наверное проще всего пойти на курсы и начинать с тестировщика. Ручного и/или автоматизированного. Потом, попав "на галеру" завести знакомства и параллельно учить языки и перелезать в разработку (если тема будет всё еще интересна). Просто так с улицы в 21 год в разработку попасть будет трудно, если только в какое-то НИИ, но там и копейки платят и никуда потом в другое место из него не возьмут. Сейчас на старте конкуренция сильная, многие учатся программированию со школы (факультативы у того же Яндекса, если мне не изменяют память, есть чуть ли не со второго класса).
Я бы для начала определился с целями переквалификации в IT.
Если для работы — подождите с этим. Возможно, эта работа вам не понравится.
Если хотите что-то свое написать — определитесь, что именно, выберите язык, и начинайте писать. Да, вот прямо так. Ну перед этим почитайте вводный гайд по выбранному языку.
Пока вы будете свое писать, гуглить свои вопросы и искать решения — вы и будете учиться. Причем такой подход будет более эффективен, чем курсы "войтивайти". Кодинг — это ремесло, его надо изучать на практике.
Вангог начал писать картины, когда ему было около 30ти, так что дерзай - шансы есть! Насчёт курсов / вуза / практики - тут уже писали. Добавлю от себя - старайся нетворкить как можно больше и главное - найди себе ментора. Он поможет разобраться - в какой области тебе интереснее (а главное - реальнее) начать работать и подскажет, в каком направлении обучаться и какие пробелы заполнять в первую очередь. Ну и плюс - через него можно познакомиться с полезными людьми.
Поделюсь своим опытом. Мне 24, скоро 25. Закончил лингвистический, параллельно получил диплом госслужащего-менеджера. По второму, понял - не моё, не хочу-не буду.
Я по дефолту маковод, мне удобнее Xcode/Swift. Сейчас учусь на iOS-разработчика, о чём ни капельки не жалею. Где учусь - не скажу, чтобы не сошло за рекламу (не гос. вуз само собой). В моей ситуации никакого пенделя не нужно было - я люблю мобилки и всё, что связано с ними, - я учусь писать мобильные приложения)
В 1с-ники иди. Ближе к бухам = ближе к деньгам.
Ближе к деньгам - это в недвижку, банки и всякий-разный финтех. У бухов денег нет - они просто циферки в табличках переставляют)))
Почему именно IT?
Думаю, по той же причине, что и 90% в его возрасте - из-за денег в отрасли
Объективно - деньги, да.
Плюс какая-то теоритическая стабильность. Все-таки, наверное, хороший прог ценится выше, чем толпа экономистов/маркетологов/креативщиков, в которую мне предначертано влиться после мгимо. Даже самых хороших.
Ну и третье - какая-то тяга к матану, ещё со школы.
_____
Здесь просто встаёт вопрос издержек. Я могу заботать кучу материала, погрузиться, как здесь писали, в теорию, изучить принципы алгоритмов и устройство машины Тьюринга. Если это правда нужно и поможет.
Но, если даже спустя 1.5-2 года самообучения ты не можешь претендовать на позицию джуниора, то игра правда не стоит свеч. В этом случае за тот же срок я смогу заработать (не только в финансовом плане) гораздо больше, уйдя в более «примитивные» среды.
**я не предъявляю претензий в стиле «дайте мне работу в гугле после прохождения курсов на курсере», просто пытаюсь прикинуть целесообразность.
Совет: иди переустанавливать виндусы теткам из бухгалтерии. Для 90% айтишников это единственный денежный функционал
Какие-то более обнадеживающие советы?
Техсаппорт - не самая перспективная ниша в ИТ.
Ну если не программируешь с детства и не ловишь кайф от этого, то увы, но тут тебе делать нечего. Технологии меняются со скоростью света, да и рулит тут самообучение, если тебе это действительно не интересно, то ничего хорошего не выйдет.
Как же люди становились программистами, когда еще компьютеров дома не было.
Научиться ремеслу можно в любом возрасте.
Попробуй на freecodecamp изучить html, css, js и сделать пару простых сайтов, понравится - вперед
Java изучай
Прочти пару книг чисто по программированию, например, Роберт Мартин "Чистый код" и пару книг по языку который хочешь использовать.
Frontend не такой уж и сложный, в плане алгоритмов не особо требовательный. Стоит хотя бы поверхностно знать, о матрицах и графах, и других подобных вещах, чтобы если вдруг, подробней их изучить. Опять же, если фронтенд, то начинать надо с html/css.
Как освоишь основы пытайся найти позицию джуниора с наставником. Без наставника даже не рассматривай предложения, потому что будешь пилить говнокод и даже об этом не узнаешь.
Первые года 2-3 о большой зп и не мечтай - 30-40к предел (по своему опыту. Хотя если ты гений, то конечно, намного раньше)
А зачем тебе разрабатывать приложения? Навык договариваться с людьми ценнее на мой взгляд, и он нужен в it не меньше, а скорее даже больше чем в других сферах. Рекомендую начать с вакансии аналитика или тестировщика (если аналитиком не возьмут). Посмотри в сторону Тинькофф, там есть финтех-школа в которой учат нужным скиллам и после нее легко устроиться на работу
В ИТ куча специальностей: программисты, проджекты, продакты, дизайнеры...
Не сочтите за рекламу - пройдите профориентационный тест на hh. Получите на выходе набор скилов и интересов куда стоит развиваться. Потом наложите их на ИТ и выберите специализацию. А может вообще не ИТ захотите)
Почитал комментарии, ничего более менее приближенного к реальности.
1) Задрачиваешь какой то курс, по какому либо языку делаешь, какой нибуль тестовый шайтан машин, который можно показать.
2) И долбишся в любую компанию где на тебя будут тратить время и за еду стажируешся.
Здравствуйте! Если не секрет, какая именно у Вас гуманитарная специальность, полученная Вами в одном из лучших московских ВУЗ-ах?
Экономика в мгимо)
Делай нормально, будет нормально.
Ну и не распыляйтесь: сложно систематизировать и качественно выполнять работы на заказ по 13 дисциплинам. Очень обидно, когда делаешь дня 3 проект, а потом оказывается, что такой уже был.
В сети куча бесплатных материалов. Сам выбери что подойдет, никто за тебя этого не сделает. А может быть лучше начинать с админа или тестировщика и дальше апгрейдиться? В фирмы ведь стоят очереди новичков без опыта.
Если только в гос. организацию пойти, там да, можно из админа стать разработчиком (и продолжать админить, но еще и новости выкладывать на сайт)
Никто не сможет сказать тебе, какой язык лучше изучать. Сначала можешь найти какие-нибудь бесплатные вводные курсы. чтобы понять, для тебя это или нет и определиться с языком. А потом можете пройти курсы переподготовки, чтобы получить сертификат и хоть какой-то опыт. Вот есть норм курсы https://astobr.com/ .
Попался простой, но неплохой тест. Автор может попробовать оценить свою тягу и косвенную пригодность к программированию. Попробуйте на обычном русском языке (можно на английском, он вам тоже потребуется), максимально точно описать алгоритм перевода числа из римской системы счисления в десятичную. Т.е. MMXIX должно стать 2019 и наоборот. Все ответы на возникшие вопросы найдете в интернете (это тоже часть работы программиста).
Советую изучить какой нибудь популярный Фреймворк. Например gjango, на котором можно быстро делать полезные приложения.
Все перечисленное полный бред, можно всю жизнь изучать эту маркитингово-техническую любуду, в ИТ решают связи, конкретные заказы, задачи и удача. В принципе в институте это и объясняют.