С чего начать изучение программирования ради заработка

Здравствуйте.

11

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

А как сделать разработчика из человека, который не хочет разрабатывать для души, но хочет сразу за деньги, причем ищет кого-то, кто бы его тянул, заставлял расти (курсы, другие разработчики) – я не знаю. Безусловно, способы набить голову знаниями и навыками есть, натаскиванием можно научиться вообще чему угодно, но будет ли стоить в конечном итоге овчинка выделки?

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

15

Попробуй начать с Гарвардского курса «CS50»:

— Русская версия: https://vk.cc/5kG09Z
— Английская версия: https://vk.cc/3Ra4j6

Как по мне, это лучшее, с чего можно начать знакомство с Computer Science. Потому что этот курс весьма увлекательный.

3

А если нет возможности идти в ВУЗ (уже учусь на журфаке)? И вообще настолько ли важен ВУЗ в наше время? На примере журналистики, понял, что ВУЗ не так уж и нужен

1

Тут еще сложнее; Журфак, если это был осознанный выбор - это место для общительных гуманитариев. Я очень люблю гуманитариев, но все же отдаю отчет, что разработка - это более задумчивое и сумрачное состояние души и нормальному живому веселому человеку стать разработчиком будет непросто )

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

3

Вуз - важен. Проблема в том, что не от всякого вуза есть польза. (Вуз не аббревиатура по современным правилам русского языка. Сразу возникают вопросы к вашему журфаку.)

Я не люблю вечных студентов, но в наше время приходится зачастую отучиться в одном или двух вузах (нередко не до конца) чтобы на собственной шкуре понять, что выбирая вуз надо ориентироваться не на удобство или на имя заведения, а на людей, которые преподают.

1

ВУЗ дает в первую очередь среду для общения и единомышленников, из профильного ВУЗа легко попасть на стажировку в крутую ИТ компанию, куда с улицы просто не возьмут (даже если будешь уметь программировать).

Я уже не говорю про правильно заложенные основы.

Можно обойтись без всего это ? Да, можно, но будет в 100 раз сложнее и попасть на работу и работать. Так зачем себе усложнять жизнь ?

1

Все зависит от ваших амбиций , на хабре недавно была статья про высшее образование и IT , можете ознакомится

1

Если у вас ПК на Windows смотрите в сторону Java, C#, PHP или Python.
Если у вас Мак, учите Swift, Ruby. Но всё это под разные задачи, надо знать что именно вы хотите создавать (или на чем зарабатывать).

Джависты вроде всегда в цене, ПХП не советую первым, ломает голову.

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

Гандикап — учиться по англоязычным мануалам, книгам и стековефроу, заодно и язык подтянется.

Курсы "как стать миллионером и кодить на бали" не рекомендую, от них как показывает практика собеседований таких самородков, больше вреда, чем пользы.

2

Так то со всем согласен кроме первой строчки.
js то как раз более "странный язык".
Лучше правда Java.

Ради заработка не стоит заниматься, т.к. нужна усидчивость и мотивация сидеть ночами что-то делать и изучать.

Начни с того, что определи свои цели, что именно ты хочешь делать, к чему лежит душа: веб-сайты, программы для PC/Mac, мобильные приложения.

Если веб-сайты, то начни с HTML/CSS, затем переходи на JS, потом подумаешь, где тебе лучше frontend или backend. Если бэк, то PHP. Если фронт, то углубленное изучение JS и фреймворков.

Если PC и Android - начни с Java, продолжи C#.

Mac/iOS начни с Objective-C, продолжи Swift.

2

ИМХО «вечерком для себя код пишу» очень важная и нужная стадия. Начать можно с этого. для себя, для души.

2

Чувствую подвох.
H1, title и текст вопроса, все с ключами.
Думаю эта статья заточена под сео авторами журнала. Никакой читатель этот вопрос не задавал.
Вы б так не палились...

2

Комментарий удалён модератором

Начинал учиться паскалю еще в школе, потом Delphi, C++, Java, Pyhton и понеслось.

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

Рекомендую начать с базового изучения Java, сейчас дефицит Java программистов. Благо книг очень много, в том числе на русском (смотри топ по отзывам на ozon)

В фоне обязательно читать Александреску и Страуструпа про с/c++

Дальше как пойдет, все зависит от тебя и от твоих пристрастий к языкам и их назначению.

2

Не считаю, что нужно выбирать программирование как призвание. Я в профессии из-за денег. Работать в офисе на холодных звонках или в магазине продавцом тоже не призвание. К тому же даже у тех кому нравится кодить просто так наступает момент отвращения к программированию. Я заставил себя выучить сначала PHP, затем Python, потом Java и C#, сейчас Kotlin. Сам я адепт C#, но должен признать, что зарплаты программистов Java выше и проектов больше. Поэтому выучите Java, она проще чем C# и C++, но все так же имеет типы, это очень важно. После понимания типизации, ООП, работы кучи и стека, модели работы JVM для вас остальные языки будут казаться простыми. Да и судя по рынку Java это самый доходный язык. Вы ничего не потеряете даже если у вас не пойдёт дело потом, пару месяцев потратить на изучение программирования не большая потеря, зато если пойдёт можно начать неплохо зарабатывать. Ну, а область применения Java это все, что угодно - web, standalone приложения, поэтому и с этой стороны все хорошо. Ну и как говорится не боги горшки обжигают, думайте о будущих деньгах :) Но рассчитывайте, что программистом возьмут вас не раньше 7-9 месяцев упорного изучения и с парой выполненных проектов. Удачи

2

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

2

Минимальный порог вхождения с сфере фронтэнда(разработка сайтов), за месяц, действительно, можно выйти на уровень джуниора и где-то ещё месяца два надо для приобретения опыта и свободной вёрстки несложных проектов с этого момента можно уже начинать искать работу ориентировочная з/п при таких знаниях будет 20-30К, но главное, что работа послужит порядочным таким катализатором обучения и рост в знаниях будет очень стремительный.
Для обучения могу порекомендовать курсы на https://htmlacademy.ru/ они бесплатные, также у них есть очень неплохие "интенсивы"(вебинары, практические занятия, свой проект и т.д), которые при должном интересе дадут очень много.Из хороших оффлайн-курсов знаю только вот этих ребят http://www.moscoding.ru/

1

Никто вас не возьмёт через месяц (или даже три) обучения HTML/CSS на зарплату 20-30к. Ну может быть только люди, которые ничего в этом не понимают сами.
Фронтенд сейчас - это знание вёрстки, куча JS-фреймворков помимо самого JS и JQuery, а это годы практики! Туда не въехать на хромой козе.
А джуниор - это уже обученный человек, который уже практиковал свой скилл и имеет понимание, чего он делает, но у которого просто мало опыта и не хватает знаний. А человек, который только что курс прошёл - это Незнайкин на Луне, вы уж извините.

2

Если отвечать очень поверхностно:
1. Выбираете направление (frontend, backend, mobile или что-либо еще)
2. Овладеваете базовым знанием необходимых инструментов для данного направления (для фронтенда - это, например, JS, HTML, CSS, jQuery, для бекенда - тут вариантов очень много, очень часто берут PHP и MySQL)
3. Пилите парочку приложений по видеоурокам а-ля how to build messenger with PHP. По ходу видеоуроков, возможно, придется столкнуться с git, composer, какими-то фреймворками. Будет полезно.
4. Начинайте искать работу, на собеседованиях вас скорее всего завалят, но возьмут. Тогда-то и начнется настоящее обучение.

2

Есть для этого отличная русская платформа:http://welcome.stepik.org/ru Там можно базовое образование получить.

Сама я пользуюсь Solo learn и курсом от Rice University на Coursera. У меня несколько очень хороших отзывов об этих курсах. Но они на англ.

2

Сходи в ВУЗ для начала, там тебе мозги поставят

4

А то так перспективы стать очередным web-кодером-версталой

3

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

1

Смотрю, многие сейчас хотят научиться программировать для заработка, популярно и модно видимо. А я вот наоборот ушел из программистов, и занялся музыкой. хотя ИТ мое основное образование. Работал в основном с низкоуровневым Си, а сейчас много Web смотрю, я это даже программированием не могу назвать, не штырит. И помню на первом экзамене на первом курсе получил двойку, потому что пытался сделать пузырьковую сортировку одним циклом. Тупой был. Ну как можно научиться программированию без пузырьковой сортировки :-)? Только через университет нормальный. Или так чисто сайты делать и считаться программистом. Или быть просто одержимым маньяком-хакером. Тогда никакие курсы, университеты не нужны - сколько нужно книг прочитаешь и сделаешь.

1

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

И да. Английский изучать намного проще, чем программирование.

1

Хочу посоветовать замечательный сайт (правда на английском): https://www.codewars.com/

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

1

Тоже интересно узнать мнения

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

2

Мое мнение, ужас когда зацикливаются на одном языке, это в перспективе вызовет ряд проблем. Нужно учиться решать именно поставленные задачи+решать нужно на том, что реально для этого подходит! Тогда в результате будет резюме с которым возьмут где пожелаешь. Разработчику стоит заморачиваться над тем, что бы каждая последующая задача была чуть выше твоей планки знаний, вот и все)

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

Грубо говоря - если можете разобраться в бухгалтерском учете и управлении предприятием - учите 1C и фрилансите с самого начала. Поднимите денег - осваивайте SAP. Если есть возможность заняться веб-программированием, ройте в PHP, JS (Angular, Node, etc. фреймворки). Если есть возможность устроиться кодером - Java и C++ ваши лучшие друзья.

Крайний вариант - сам подумываю о таком когда получу бакалавра - это зарыться с головой в Computer Science (The Art of Computer Programming Кнута + парочка пособий по низкоуровневому программированию,затем The Structure and Interperetation of Computer Programs потом COBOL + LISP + Scheme + Clojure). Потратите 5-6 лет как минимум - но зато сможете стать довольно неплохим специалистом.

1. Между 1С уровня фриланса (это исключительно задачи начального уровня в малом бизнесе) и SAP просто пропасть, это совершенно разные весовые категории и необходимости переходить из одного в другое просто нет, т.к. по зарплатам разницы нет. Еще надо понимать что 1С (а SAP тем более), если говорить о топовой карьере, это проектная работа и командировки.

2. Нужно исходить из рынка и изначальных условий. Если вы студент из ИТ с хорошим английским, живете в Москве, можно делать карьеру в Java. Хотя 10 лет назад популярность Java совсем не была очевидна и лично у меня есть внутренние ощущения, что ее популярность идет на спад, так что входить в эту технологию сейчас возможно не лучшее время. Я не подскажу что сейчас учить, но сразу скажу что C++ это очень узкий и специфический рынок труда.

3. Ваш крайний вариант это еще одно заблуждение. Даже через 5-6 лет такой теоретик COBOL никому не нужен будет. Чтобы стать востребованным и дорогим специалистом, нужны вертикальные компетенции (сильные знания предметной области + хорошие техники программирования)

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

Общий совет - откройте любой сайт с работой, посмотрите что нужно и оцените уровень вакансий, т.е. есть ли junior позиции ? Соберите требования кроме языка программирования, выпишите все неизвестные аббревиатуры и гуглите поочередно до просветления.

P.S. Я не теоретик и не студент, 16 лет стажа коммерческого программирования за плечами.

2

Вводные данные: не профильное образование, нет знаний английского и приход в профессию ради заработка (в любой профессии есть заработок, значит имеется ввиду быстро начать зарабатывать).

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

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

На ум приходит только два варианта - веб-программирование на 1С-Битрикс (PHP, Mysql), либо программирование учетных систем 1С-Предприятие (но в эту экосистему попасть сложнее). В первую экосистему можно попасть через мелкие веб-студии, а через пару-тройку лет пиления сайтиков может и найдет озарение. Во-вторую можно попасть через компании-франчайзи, там есть всякая неблагодарная работа вроде курьера ИТС дисков и всяких программистов по обновлению бухгалтерии, дальше можно получить (обычно за счет работодателя, но можно и самому, стоит копейки) сертификат 1С-Профессионал по платформе, выучив наизусть 1500 вопросов и тогда уже можно двигаться дальше.

1

Умеете убивать мотивацию

1

Немного дополню свой предыдущий ответ. После выбора платформы напиши своё первое приложение - чем оно будет проще, тем лучше. За время написания ты поймёшь, где у тебя пробелы и в следующий раз будешь писать код более качественно.

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

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

1

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

Возьми Питон - самый простой синтаксис, голодным точно не останешься - простой ответ

1

Наверное сейчас да, какую-то моно-экосистему выбрать лучше, Apple или Android, учить проще.

Товарищи программисты, расскажите в комментариях про язык Ruby и его дальнейшую востребованность?

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

На рынке не так много рубистов. Поэтому они дорого стоят. Дороже, чем тежи питонцы.

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

Есть обучающий проект www.freecodecamp.com (на английском), после прохождения которого (занимает 5000 часов), люди находят работу. В процессе обучения участвуешь в разработке приложений, которые потом можно включать в свое портфолио.

http://stolyarov.info/books/programming_intro/vol1
Начните с этой книги. Написана на основе программы первых курсов ВМК МГУ. Лучший вариант, чтобы научиться программировать, а не кодить. Только после нее можно уже выбирать сферу (веб, мобайл, десктоп итд).

Вот отличный способ: it.innopolis.ru

Считаю, что может быть очень интересно начать с Ардуино и плат. Это достаточно наглядный, очень дешевый и простой способ понять как оно работает.
Для работы с графикой можно начать с процессинга.

PHP и Java идут из С, С++... Да и теоретические основы объектного программирования также не лишними будут, плюс ассемблер - всегда видишь что получает машина из компилятора...

Я бы посоветовала начать учиться программировать, когда есть какая-то прикладная задача, которая нужна и интересна вам или заказчику (можно поспрашивать знакомых предпринимателей, если пока нет понимания, за что готовы платить заказчики и нет идей своего продукта): например, сделать одностраничный сайт с возможностью записи к парикмахеру и создание простой бд, в которую будет записываться телефон и имя клиента, а также можно посмотреть расписание. Я так в общем-то сама сейчас осваиваю php, а примеры из курсов да, мне тоже не интересны.

Вот, хороший совет.

Без прикладной задачи можно просидеть пять лет в лучшем вузе и ничего не усвоить вообще.

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

Проходя мимо, не могу не вставить свои 5 копеек.
Чем бы вы не занимались - веб-разработка, бухгалтерия, тестирование, бэкенд - высока вероятность, что вам очень понадобится умение работать с БД.
Не надо этого недооценивать! Учите SQL, умейте писать запросы - на собеседованиях это очень даже спрашивают. Для прокачки скилла - идите на сайт sql-ex.ru/

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

Первое, что вам нужно для себя решить — какая вам область интересна. Исходя из вашего поста — это либо энтерпрайз/банки (Java), либо веб (PHP). Приняв решение, остановитесь первое время на одном языке программирования. Это никак не мешает вам в будущем мигрировать на другой, но стократно повышает шансы на успех.

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

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

Четвёртое. Чередуйте изучение и практику. Изучили кусочек — сразу добавили немного функционала в проект. На изучении основ придётся потерпеть голую теорию, но основы — это неделя, две максимум.

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

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

К сожалению, проблема студентов и молодых ИТ специалистов известна -
компании не хотят рисковать и брать на работу людей без опыта, без нужных компетенций.
А без работы невозможно (а точнее очень трудно) получить необходимый опыт.
Злосчастный круг замыкается и его сложно разорвать.

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

http://gitlab.asvoip.com
- интерактивный курс Компетенции профессиональной разработки программного обеспечения для новичков и молодых ИТ специалистов. Регистрируйся в системе (бесплатно), используемой в сотне тысяч ИТ компаний и вливайся в сообщество ИТ специалистов. Десятки теоретических и практических заданий (с нуля). Планируется командная разработка.

Примерное представление о материалах курса можно получить по чек листу компетенций:
https://info.asvoip.com/pro-sd-check-list.pdf