С чего начать путь в ИТ?

Привет. Мне 21 год, и я не имею никакого опыта в программировании. Закончил один из лучших московских вузов по гуманитарной специальности, но разочаровался и ищу новые пути.

Хочу переквалифицироваться в ИТ, начать изучать JavaScript или C++.

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

0
170 комментариев
Написать комментарий...
Nick Sidorov
 начать изучать JavaScript или C++

Это зависит от того, как у вас с растительностью на лице.

Если полноценная борода, то C++, а если жиденькая бороденка, то вас ждет мир JavaScript

Ответить
Развернуть ветку
Yuri Istomin

1. Вопрос, почему именно в ИТ? Если чисто за бабками - то много не жди, если не фанат кодить всегда и везде.

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

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

4. Что за гуманитарная специальность? Может по этому профилю тоже требуются программисты со знанием предмета? Это в 100 раз перспективнее, чем 100500-ый JS-ник)))

Ответить
Развернуть ветку
Sergei Timofeyev

Лучше всего идти на стыке технологии и потребностей в полученной специальности.

Ответить
Развернуть ветку
2 комментария
Anton Chukanov
1. Вопрос, почему именно в ИТ? Если чисто за бабками - то много не жди, если не фанат кодить всегда и везде.

Не миллионы, конечно, но в разы больше, чем в других местах.

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

Зачем? Если устроился забивать гвозди, никто тебя пилить не заставит.

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

Алгоритм вывода товаров в интернет-магазине. 
Ща его сразу возьмут драйвера писать или сложный поиск делать, ага)

Ответить
Развернуть ветку
Alex Shlenski

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

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

После этого уже можно учить структуру и функции операционных систем.

Затем пойдёт теория компиляции. Надо понимать как компилятор парсит сорсы и собирает объектники, и как они компонуются в исполняемые модули,и как ОС эти модули загружает.

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

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

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

Только после этого имеет смысл учить какую то платформу, то есть джаву с её библиотекой классов, или PHP, или .Net или что угодно.

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

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

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

Некоторым людям относящимся к подвиду "ламер непингуемый" лучше оставаться гуманитариями навсегда. В процессе обучения способность к освоению профессии проявит себя довольно быстро. Или не проявит.

И таки да, я начал карьеру программиста в 30 лет. Сейчас мне 62, работаю по специальности, а до пенсии ещё 5 лет пахать. Это Америка :)

Ответить
Развернуть ветку
Alexey Praskovin

Жир начал капать из монитора рано утром...

Ответить
Развернуть ветку
Семён Бочкарёв
 Потом добро пожаловать на гитхаб и учиться у местных мастеров

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

Ответить
Развернуть ветку
1 комментарий
Anton Chukanov

Был уверен, что это шутка такая, пока до последних абзацев не дошел

Ответить
Развернуть ветку
5 комментариев
Karensky
Автор

Вау.

Ответить
Развернуть ветку
1 комментарий
Denis Kiselev

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

Ответить
Развернуть ветку
илья савинков

Спасибо огромное, за Ваш пост!!!!!

Ответить
Развернуть ветку
Bogdan Shtepan

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

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

После успешного получения базы, думаю, уже будет минимальное понимание того, какой язык и для чего лучше подходит, и чем бы хотел заниматься сам. Для начала, собственно, погружения в программирование рекомендую начать с Python, JavaScript или C - это довольно простые языка, которыми можно овладеть (easy to learn, hard to master) за пару недель и начать успешно применять на практике. Ну, а дальше уже можно копать в сторону Седжвика, Ахо, Буча и т.д. и т.п.

Ответить
Развернуть ветку
Семён Бочкарёв
 А если он решит стать фронтенд-макакой, то на кой ему дискретка, а, советчики?

Современный фронтэнд ничуть не легче других сфер кодинга. И какие-то основы, типа сложности алгоритмов, понимать всё же стоит.

А то потом всё в один прекрасный момент ломается: 

https://habr.com/ru/post/280099/

Ответить
Развернуть ветку
Denis Kiselev

Это все оттого, что программирование - более практическая дисциплина чем многие и навыки в ней более предметные. А умения - как и везде: развиваются циклами и по спирали «практика» - «теория» - «практика». Стандартный цикл познания из анализа и синтеза.

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

Ответить
Развернуть ветку
Denis Kiselev

Практических курсов по изучению каких-либо языков программирования - масса. Python там, JS, Java, Kotlin, и тп.

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

Ответить
Развернуть ветку
Alexey Praskovin

"идите в ВУЗ" - еще одна классика жанра. Если хотите профукать 4 или 6 лет и так и не научиться программировать - идите в ВУЗ.

В ВУЗ надо идти, когда начинаешь ощущать, что не хватает того самого, глубинного. В половине профессий этот момент может никогда не наступить.

Ответить
Развернуть ветку
1 комментарий
Mike Espoo

"Поэтому простой совет - идите в ВУЗ на соответствующую специальность"

 Эх... сказывал бы я, да не буду.

Ответить
Развернуть ветку
7 комментариев
Xieergai

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

После этого:

C#, Python, Go, C++, JS, Java, Delphi... - выбрать для начала 2-3 языка + SQL-необходимо.

Общаться с друзьями-программистами.

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

Но, судя по тому, что желание появилось в 21 год, то тяги к программированию нет.

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

Ответить
Развернуть ветку
Семен Смирнов

21 год это приговор, да

Все тру программисты формируются с начальной школы

Ответить
Развернуть ветку
36 комментариев
Алексей Овсянников

Начните с бесплатного курса Хекслета "Введение в программирование"

Ответить
Развернуть ветку
Xieergai
"Желаемая сфера деятельности - разработка приложений"

Какую машину купить? Основное желание - ездить.

Ответить
Развернуть ветку
Кроко

Начните изучать JavaScript или C++.

Ответить
Развернуть ветку
Коммунист

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

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

Ответить
Развернуть ветку
Семён Бочкарёв
 Чем больше я изучал язык и знакомился с чужим кодом, тем больше понимал, что я ни разу не программист, максимум - веб-разработчик

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

Мне за свой код старый тоже крайне стыдно — но я не жалею, что его писал.

Ответить
Развернуть ветку
1 комментарий
Anton Chukanov

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

Ответить
Развернуть ветку
1 комментарий
Вася Пражкин

Дружище, прими за данность - ты гуманитарий. Программирование - это просто не твое. Если в 21 год ты ни разу не программировал - оно у тебя не пойдет, должен быть интерес кодить. Поищи другие варианты реализации - реклама, маркетинг, SMM, соцсети, блоггеры и другие, близкие гуманитариям штуки.

Ответить
Развернуть ветку
Alexey Praskovin

Ох уж этот снобизм псевдоилитариев... Спокойно люди и после 30 начинают и отлично программируют, будучи и гуманитариями в том числе. И 90% тех же веб-разработчиков в жизни не встретят ситуацию, когда им понадобится серьезное знание математики или глубокое понимание алгоритмов.

Ответить
Развернуть ветку
14 комментариев
Make Luv

Херово хочешь, значит, раз даже погуглить лень. Когда я решил заниматься айти, то не писал статьи, а сел и начал пилить приложение под винфон. 

Ответить
Развернуть ветку
Alexey Praskovin

Ага, а пока допилил, винфоны исчезли. Кулстори, бро...

Ответить
Развернуть ветку
3 комментария
Mike Espoo

 Касательно 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 для работы ты все равно будешь сам учить.

Ответить
Развернуть ветку
Social Network

так React в основном требуется, и то, после того как выучит основы, а это не так быстро

Ответить
Развернуть ветку
Денис Федорец

1)берёте любой букварь по интересующей вас теме. Если мобайл - по Swift или Kotlin, что-то из Big Nerg Ranch например, тысячи их.
2)прорабатываете этот букварь.
3)выполняете упражнения.

нота бене: одного букваря достаточно! а то многие так из застревают на штудировании букварей.

4)ищете объявления - "набираем джунов/трейни без опыта", "ищем людей на стажировку" - они есть. на любые деньги или даже без денег.
5)идёте туда и работаете за еду/без еды, ходите в старых шмотках со старым смартфоном, обедать ходите к родителям.
6)через год ищете нормальную работу, вас уже можно назвать программистом в том смысле который вкладывают в это слово на рынке труда.

удачи.

Ответить
Развернуть ветку
Вячеслав Григорьев

Учись пилить под ios, берешь mac, оплачиваешь подписку на ray wenderlich, покупаешь книгу Василия Усова, учишь и практикуешься в xcode playground. Плавно переходя к архитектуре и пониманию процессов.

Ответить
Развернуть ветку
Make Luv

Скоро всему вашему айосу кирдык.

Ответить
Развернуть ветку
5 комментариев
Alexander Belousov

Смотря каких приложений, если мобильных для Android, то начните с Java и Kotlin, если хотите делать приложения для iphone, то понадобится Мак. Если вы совсем новичок, то вам проще все будет записаться на какой-нибудь онлайн-курс, где вам все разжуют.

Если после прохождения такого курса тяга к разработке не пропала, а усилилась, то попробовать сделать базовый проект для портфолио и пытаться устроиться на работу или стажировку. 

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

Ответить
Развернуть ветку
Андрей Захаров

Наверное проще всего пойти на курсы и начинать с тестировщика. Ручного и/или автоматизированного. Потом, попав "на галеру" завести знакомства и параллельно учить языки и перелезать в разработку (если тема будет всё еще интересна). Просто так с улицы в 21 год в разработку попасть будет трудно, если только в какое-то НИИ, но там и копейки платят и никуда потом в другое место из него не возьмут. Сейчас на старте конкуренция сильная, многие учатся программированию со школы (факультативы у того же Яндекса, если мне не изменяют память, есть чуть ли не со второго класса).

Ответить
Развернуть ветку
Семён Бочкарёв
 Хочу переквалифицироваться в ИТ, начать изучать JavaScript или C++.

Я бы для начала определился с целями переквалификации в IT.

Если для работы — подождите с этим. Возможно, эта работа вам не понравится.

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

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

Ответить
Развернуть ветку
Maxim Yavorskiy

Вангог начал писать картины, когда ему было около 30ти, так что дерзай - шансы есть! Насчёт курсов / вуза / практики - тут уже писали. Добавлю от себя - старайся нетворкить как можно больше и главное - найди себе ментора. Он поможет разобраться - в какой области тебе интереснее (а главное - реальнее) начать работать и подскажет, в каком направлении обучаться и какие пробелы заполнять в первую очередь. Ну и плюс - через него можно познакомиться с полезными людьми.

Ответить
Развернуть ветку
Треугольный Илья

Поделюсь своим опытом. Мне 24, скоро 25. Закончил лингвистический, параллельно получил диплом госслужащего-менеджера. По второму, понял - не моё, не хочу-не буду.

Я по дефолту маковод, мне удобнее Xcode/Swift. Сейчас учусь на iOS-разработчика, о чём ни капельки не жалею. Где учусь - не скажу, чтобы не сошло за рекламу (не гос. вуз само собой). В моей ситуации никакого пенделя не нужно было - я люблю мобилки и всё, что связано с ними, - я учусь писать мобильные приложения)

Ответить
Развернуть ветку
Андрей Фомичев

В 1с-ники иди. Ближе к бухам = ближе к деньгам.

Ответить
Развернуть ветку
Yuri Istomin

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

Ответить
Развернуть ветку
1 комментарий
Кроко

Почему именно IT?

Ответить
Развернуть ветку
Xieergai

Думаю, по той же причине, что и 90% в его возрасте - из-за денег в отрасли

Ответить
Развернуть ветку
5 комментариев
Karensky
Автор

Объективно - деньги, да.

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

Ну и третье - какая-то тяга к матану, ещё со школы.

_____

Здесь просто встаёт вопрос издержек. Я могу заботать кучу материала, погрузиться, как здесь писали, в теорию, изучить принципы алгоритмов и устройство машины Тьюринга. Если это правда нужно и поможет.
Но, если даже спустя 1.5-2 года самообучения ты не можешь претендовать на позицию джуниора, то игра правда не стоит свеч. В этом случае за тот же срок я смогу заработать (не только в финансовом плане) гораздо больше, уйдя в более «примитивные» среды.

**я не предъявляю претензий в стиле «дайте мне работу в гугле после прохождения курсов на курсере», просто пытаюсь прикинуть целесообразность.

Ответить
Развернуть ветку
4 комментария
Игорь Игорь

Совет: иди переустанавливать виндусы теткам из бухгалтерии. Для 90% айтишников это единственный денежный функционал

Ответить
Развернуть ветку
Karensky
Автор

Какие-то более обнадеживающие советы?

Ответить
Развернуть ветку
5 комментариев
Denis Kiselev

Техсаппорт - не самая перспективная ниша в ИТ.

Ответить
Развернуть ветку
3 комментария
Ринат Г.

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

Ответить
Развернуть ветку
Anton Chukanov

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

Ответить
Развернуть ветку
3 комментария
Social Network

Попробуй на freecodecamp изучить html, css, js и сделать пару простых сайтов, понравится - вперед

Ответить
Развернуть ветку
okman

Java изучай

Ответить
Развернуть ветку
Сергей Севдиз

Прочти пару книг чисто по программированию, например, Роберт Мартин "Чистый код" и пару книг по языку который хочешь использовать.

Frontend не такой уж и сложный, в плане алгоритмов не особо требовательный. Стоит хотя бы поверхностно знать, о матрицах и графах, и других подобных вещах, чтобы если вдруг, подробней их изучить. Опять же, если фронтенд, то начинать надо с html/css.

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

Первые года 2-3 о большой зп и не мечтай - 30-40к предел (по своему опыту. Хотя если ты гений, то конечно, намного раньше)  

Ответить
Развернуть ветку
Владимир Цай

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

Ответить
Развернуть ветку
Михаил Донской

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

Ответить
Развернуть ветку
Александр Прилипко

Почитал комментарии, ничего более менее приближенного к реальности. 

1) Задрачиваешь какой то курс, по какому либо языку делаешь, какой нибуль тестовый шайтан машин, который можно показать.
2) И долбишся в любую компанию где на тебя будут тратить время и за еду стажируешся. 

Ответить
Развернуть ветку
Леонид Николаевич

Здравствуйте! Если не секрет, какая именно у Вас гуманитарная специальность, полученная Вами в одном из лучших московских ВУЗ-ах?

Ответить
Развернуть ветку
Karensky
Автор

Экономика в мгимо)

Ответить
Развернуть ветку
8 комментариев
Вася Михеев

Делай нормально, будет нормально.

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

Ответить
Развернуть ветку
stivstivsti

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

Ответить
Развернуть ветку
Anton Chukanov

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

Ответить
Развернуть ветку
Kedu Ru

Никто не сможет сказать тебе, какой язык лучше изучать. Сначала можешь найти какие-нибудь бесплатные вводные курсы. чтобы понять, для тебя это или нет и определиться с языком. А потом можете пройти курсы переподготовки, чтобы получить сертификат и хоть какой-то  опыт.  Вот есть норм курсы https://astobr.com/

Ответить
Развернуть ветку
Кроко

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

Ответить
Развернуть ветку
Дмитрий Медведев

Советую изучить какой нибудь популярный Фреймворк. Например gjango, на котором можно быстро делать полезные приложения.

Ответить
Развернуть ветку
Wit Witov

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

Ответить
Развернуть ветку
167 комментариев
Раскрывать всегда