Задать вопрос

Как мне научиться учиться программированию?

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

Через месяца 2-3 без программирования, я не выдержал и решил подойти к изучению программирования серьезнее.
После беглого обзора существующих языков программирования, выбор пал на C++. Начал я со старой книги "Deytel_Kharvi Как программировать на С" и программы Dev-Cpp. Он мне очень понравился, он красив, понятен, правилен, удобен.

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

Только недавно, я начал обращать внимание на то, что в мире уже существуют различные полезные функции наподобие vector или queue. До сих пор, я довольствовался простыми массивами и самостоятельно созданными функциями queue, stack и т.д. И... и я не знаю что мне делать дальше.
Сосредоточиться на изучении существующих функций, методов, технологий и т.д я считаю более перспективным, но тут возникает вопрос - с чего "начать"? Сейчас слишком много информации - можно найти 100 и 1 рекомендацию для начинающих, можно найти в десятки раз больше рекомендаций что прочитать для профессионалов. Первые, в большинстве своем, повторяют то, что я уже знаю, а вторые для меня слишком рано.

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

Я хочу научиться учиться программированию. (по своему опыту знаю, что это крайне важный навык)
Я не могу понять какие книги мне надо прочесть.
Я не могу понять как мне знакомиться с существующими библиотеками и технологиями.
Я не могу понять что я не знаю, чего мне не хватает.
Даже если я захочу пройти курсы программирования, у меня в городе их просто нет. (именно по C++)
К обучению по интернету отношусь скептически.

Прошу у Вас помощь в том, чему и как мне учиться.
  • Вопрос задан
  • 2545 просмотров
Подписаться 9 Простой Комментировать
Решения вопроса 1
feycot
@feycot
TD;DR https://stepik.org/course/363
https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...

Если тебе обещают, что научат программировать за 21 день - не верь им.
Если тебе обещают, что трудоустроят - не верь им.
Если тебе обещают, что это будет бесплатно - не верь им.

Программирование это навык, поэтому нужно учить не язык, а развивать навык.
Необходимо понять, что оно в себя включает - алгоритмы, структуры данных, абстрактное мышление, инженерное мышление.
Если у тебя нет своей программы - доверься людям, которые прошли путь и могут порекомендовать ресурсы. Помни, что бесплатный сыр только в мышеловке. Либо ты тратишь кучу времени на систематизацию знаний, либо ты платишь за то, чтобы получить программу.
Вот тебе ссылка на плейлист, посмотри, понравится ли тебе
https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...

Я думаю, что дальше сам разберешься.

Из литературы. Это из тех, что я читал или слышал о них:
Грокаем алгоритмы (Адитья Бхаргава)
Код. Тайный язык информатики (Чарльз Петцольд)
Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)
Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)
Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)

Помни, что нужно учиться непрерывно всю жизнь, если один раз вступил на этот путь, то назад дороги нет. Будешь видеть мир по-другому. Если тебе кажется, что ты все знаешь, значит ты не знаешь ничего.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@savenko
Php программист
Здравствуйте!
Я не С++ программист поэтому не на многие вопросы смогу ответить.
1) Я не могу понять какие книги мне надо прочесть.
Открываем Ozon и вводим C++ смотрим свежие книги с хорошими отзывами. Есть так же издательство Питер и ДМК пресс.
2) Я не могу понять как мне знакомиться с существующими библиотеками и технологиями.
Зависит от области (Для сайтов одни библиотеки нужны, для написания драйверов другие, правда с сайтами мне кажется С++ неподходящий язык программирования, но это мое мнение). Можно посмотреть на HH.ru какие вообще требуются программисты по C++ что что они вообще должны знать. Посмотрите 10-20 вакансий и у Вас появится список топ навыков которыми должен обладать программист.
Если либа очень популярна, то у нее должна быть хорошая документация, попробуйте поделать свои проекты использую популярные либы.

Как правило хорошие знания приходят с хорошим проектом. Очень часто бывает что прочитал и понял все на 100%, начинаешь делать проект то там, то тут засада.

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

Даже если я захочу пройти курсы программирования, у меня в городе их просто нет. К обучению по интернету отношусь скептически.
Курсы курсам рознь. Если с английским все хорошо то можно посмотреть курсы https://www.edx.org/ (лекции от университетов Гарвард, Беркли, MIT) https://www.coursera.org/
Ответ написан
sgjurano
@sgjurano
Разработчик
https://www.coursera.org/specializations/c-plus-pl...
В добрый путь, курс отличный :)
Ответ написан
MDiMaI666
@MDiMaI666
Талантливый программист
Все просто начни зарабатывать и проснется аппетит, будет "зачем" изучать и развиваться.
С++ это хорошо но C# куда проще для начала. Если интересно можем поболтать - напиши в мыло mdimai666@mail.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы