C++ Изучение программирования с нуля

В связи с обилием свободного времени в последние месяцы я решил поднять свой скилл программирования с нулевой отметки в каком-нибудь языке программирования. При этом стоит отметить, что программировал я всего четыре раза в жизни: в школе на бейсике, в экселе, разбирая входящие данные с битыми значениями, решив изменить дизайн блога, параллельно изучив html & CSS и решив пройти курс по javascript на codecademy.com.

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

Врожденный перфекционизм не давал мне просто сесть и освоить assembler AVR (слишком узко), python и java (слишком аутентично), pascal (считал малоперспективным), C (зачем, если есть C++?). В итоге проведя пару вечеров за философскими рассуждениями на тему выбора первого языка для программирования, я остановился на C++, как универсальном современном языке программирования, решив, что потом при желании освою C#.

Потом я нашел книгу Б. Страуструпа «Принципы и практика использования C++» rutracker.org/forum/viewtopic.php?t=4123965 и определился, что учиться буду в Visual Studio 2013.

Скачал, установил, проверил, что SumatraPDF blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html позволяет копировать текст из DJVU файла данной книги, прочитал вводную главу и начал разбираться с первой частью «Основы».

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

Я получаю удовольствие от процесса обучения по данной книге и мне интересно, кто как изучает программирование в случае, похожем на мой.
  • +1
  • 13 января 2014, 16:18
  • habl

Комментарии (33)

RSS свернуть / развернуть
Начинал осваивать с видеоуроков на youtube, правда не с нуля а после обильного ковыряния в Delphi (который в голову, еще тогда глупому студнету, запихивали в инсте).
0
Кстати, а что там с Delphi? Он еще развивается?
0
Он еще развивается?
Вполне. Стащили СНГшных программеров. Взамен VCL тулят новую библиотеку Firemonkey (бывшая VG-Scene), которая дает возможность на одной кодовой базе кодить под разные платформы. На момент ХЕ5 в списке Win 32/64, MacOS/iOS и Android. Linux вроде в планах. Короче, загибаться не собирается.
0
Ну так на нем выросло то столько програмеров… куда им дется? Сам сейчас с делфой снова столкнулся по работе...
тулят новую библиотеку
Еше про CodeGear не стоит забывать… ароди до сих пор крутится на плаву.
0
Еше про CodeGear не стоит забывать… ароди до сих пор крутится на плаву.
Их же вроде давно Embarcadero купила. Под названием «Code Gear» команда дельфи выпустила только 2007 и 2009.
+1
Одни из лучших книг по С++ это «Объектно-ориентированное программирование в С++» Лафоре Р. и «Освой самостоятельно C++ за 21 день» Джесс Либерти rutracker.org/forum/viewtopic.php?t=4039549 и rutracker.org/forum/viewtopic.php?t=452291 Enjoy :)
+1
Я много смотрел вывод компилятора, то есть ассемблер который он генерирует. Если не могу мысленно скомпилировать код на C/C++, то я его не понимаю.

Когда это пройдет, можно начинать работать с абстракциями и шаблоноконструкциями в случае C++.
0
Ага. Мой начальник рассказывал, что С учил так же. Поэтому эту привычку нужно отбивать. Скриптовыми языками, вроде Python.
Asm первым языком немного вредит, сужает горизонт. Его бы изучить после С/С++, тогда отлично. Я вот не знаю Asm. Не горжусь этим, но это незнание мне не мешает пока.
0
АСМ ставит мозги — в самое правильное место! И самое главное — после ниго ничего не страшно! А понимание самого процесса(как именно твой код будет работать) добавляет овер 100500!
0
АСМ ставит мозги — в самое правильное место!
Далеко не факт, что это место правильное. И уж совсем не факт, что для этого нужен асм.
И самое главное — после ниго ничего не страшно!
Еще как страшно. Например страх высокоуровневых решений типа тех же темплейтов в плюсах. В целом наблюдается тяга к примитивизму (не к упрощению, а именно к примитивизму) в решениях.
А понимание самого процесса(как именно твой код будет работать) добавляет овер 100500!
В каких-то моментах это полезно, безусловно. Скажем, люди с подобным навыком гораздо проще воспринимают детали реализации многопоточного взаимодействия и неблокирующих алгоритмов. Но обилие понимаемых деталей усложняет подъем на более высокие уровни абстракции, что совершенно необходимо при написании больших и сложных программ.
+1
А чего так сразу Си не буду учить ибо есть Си++? Вроде как Си++ походной из Си? Да и ввобще от него много языков пошло. Я бы на вашем месте думал чуть дольше что учить первым.
0
Я посчитал, что С развивается медленнее С++ и окончательно меня подкупила большая универсальность С++.
0
Что ты собираешься программировать на С++?
0
Да, вобщем-то, что угодно.
0
Никто конечно не мешает, но это как на тракторе и в лес на природу сгонять, и в магазин за продуктами.
Я уже давно понял, что с/с++ использую только для мк и может драйверов, в общем для системного программирования. Виндовые окна лучше на шарпе — код сильно красивше и понятнее. В линуксах конечно тоже придется плюсы пользовать, но пока задачи не ставились.
+1
Согласен. Просто на С++ можно писать почти как на языках типа жабы или шарпа. А можно почти как на С. Вобщем, почти универсальный и весьма сложный инструмент.
0
Я читал про Qt и мне он для винды больше понравился, чем Mono для линукса. Это тоже внесло лепту в пользу C++.
0
В планах опрашивать андроидным приложением колесного робота по блютусу и наделить его простейшим интеллектом.
0
По большому счету — это два сильно разных языка.
0
Я понимаю. Но на C++ можно больше и гибче, чем на С. Может я еще и не скоро дойду этого «больше и гибче». Но все же, перфекционизм дает о себе знать.
0
Б. Страуструпа «Принципы и практика использования C++»
Книга правильная.
Я думал, что Страуструп будет объяснять все нюансы синтаксиса функций, которые позволяют выполнить упражнения после главы.
Для этого берется еще 2 книги. Если что-то непонятно в одной из них, читается это место из других.
и определился, что учиться буду в Visual Studio 2013.
Ок. Как вариант, предлагаю рассмотреть вариант использования QtCreator. Это среда разработки. Не заставляет использовать фреймворк Qt, с которым поставляется QtCreator. Замечательно можно писать консольные проги, отлаживать их.
В QtCreator из коробки лучше подсветка синтаксиса. В Студии нужно ставить VisualAssist.
QtCreator бесплатен. Говорят, в Студии лучше отладчик.

Я учил по книге «Освой самостоятельно C++ за 21 день» Джесс Либерти. Неплоха для С-шника, но для начинающего с нуля не рекомендую.
С++ слишком богатый язык и чтобы раскрыть всю его мощь, им нужно пользоваться правильно (как правильно сам не скажу, передаю мнение гуру).
0
  • avatar
  • tugo
  • 13 января 2014, 19:46
Шилдт кстати мне больше нравится, как то даже не засыпаешь, читается как художественная литература.
В 13 студии подсветка вполне себе пойдет, но асистант конечно же крут.
0
Не знаю как книги по плюсам и другие, но книга по С у Шилдта отвратная, категорически не рекомендую.
0
А кто что с кажет о книге Х.М. Дейтела и П.Дж. Дейтела «Как программировать на Си»? Сейчас помаленьку «мучаю» её, вроде не плохая книга на взгляд начинающего.
0
  • avatar
  • xpeh
  • 13 января 2014, 21:00
А кто что скажет про книгу Стивена Прата «Язык С/С++ программирования. Лекции и упражнения»? Много примеров, описания и все вроде вкусное.
0
Есть еще книга по самому языку от автора языка: «Язык программирования С++». www.books.ru/books/yazyk-programmirovaniya-s-spetsialnoe-izd-816590/?show=1 — как раз для ответов по синтаксису и т.д.
А если захочется узнать не только «как», но и «почему» рекомендую «Дизайн и эволюция языка C++» (опять автор Страуструп, есть уже второе издание).
0
Странно, что никто еще не порекомендовал книги Джеффа Элджера и Андрея Александреску…
+1
  • avatar
  • evsi
  • 14 января 2014, 14:11
Это более сложные книги ;-)
0
Отчасти. Но именно они дают представление о том, как правильно писать на плюсах.
0
Порекомендуйте Вы :)
0
А что там у Элджера?
0
+1
А, знакомая книга. Правда, сам я ее до сих пор не дочитал, но время от времени рекомендую другим :D
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.