Какой учебник для изучения С++ с нуля в данный момент актуален ?
Вот закончил институт, в армию идти не скоро и решил скрасить свое бытие изучением великого С++. Ну вот столкнулся с проблемой. Нашел учебник С++ для чайников 4 издание и начал потихоньку читать, ну а когда дошел до практики началась хурма. По книге сказано скачать GNU C++, а я так понял что это вещь ставится только на Linux. Гугл вместо GNU предложил скачать dev c++, что я и сделал. Ну вот дальше что со всем этим делать мне не понятно. В учебники описано что и как делать делать нужно в GNU, а в установленном dev c++ я не чего похожего не нахожу.
Посоветуйте как и с чего лучше начать изучать С++ , с учетом того что я в программировании 0.
Лучше все же начать с чистого Си. Почти все книги по Си++ подразумевают что вы уже знакомы с языком Си, поэтому множество базовых, совпадающих с си вещей (вроде циклов, условных операторов и тд ) в учебниках по плюсам не объясняются.
Да и вообще - разобраться на базовом уровне с голым Си куда проще чем сделать тоже самое с плюсами. А вот после этого вполне можно открывать любой учебник по си++ ( Рекомендую Брюса Эккеля, хотя сейчас в связи с выходом нового стандартна он уже немного устарел, впрочем не думаю что уже есть хорошие учебники с учетом этого самого нового стандарта ).
Сам когда-то читал Кернигана и Ричи, но думаю в сети можно найти много других учебников, не хуже этого. Просто сам не в теме, так что посоветовать не могу.
Щас попробуем Кернигана и Ричи. Скажите на перед, в учебнике чисто теория или есть практическая часть ? Нужно ли что то дополнительно качать для этого ?
Практическая часть вам в любом случае потребуется ( даже если ее не будет в этой книге, хотя какие-то примеры там будут обязательно ). Поэтому да - обязательно озаботьтесь устновкой IDE и компилятора языка си ( как вам уже советовали можно выбрать Visual Studio Express, или QtCreator со встроенным mingw компилятором ). Ну и дальше - советую проверять изученное в книге сразу же практике.
Вообще если язык выбирать, то возможно лучше что-то более высокоуровневое: C#, Java, Python, ...
С и даже С++ довольно низкоуровневы и сложны для изучения, особенно с 0, и практики (ну если не писать что-то системное, драйвера и т.п. или где производительность важна), с вышеперечисленными обычно веселее дело идет, быстрее результат можно увидеть.:)
С другой стороны начинать с языка Си хорошо тем, что человек понимает как что устроено внутри. Считается, что после си гораздо легче перейти на высокоуровневые языки чем если делать наоборот. Даже если потом автор захочет уйти в питон или жаву - знание работы с указателями с ним останется, что поможет ему понять причины многих явлений, скрытых за красивыми паттернами ( к примеру разницу между deep и shallow copy ).
Ну можно ведь и наоборот, изучить С со временем, по необходимости :) Тут вроде бы речь об освоении программирования в свободное время, как хобби, на мой взгляд это интереснее делать с высокоуровневыми языками, чем мучиться с С и С++.
Да, вероятно. Если человек хочет быстро сделать что-то чтобы работало, то лучше брать что-то с автоматическим управлением памятью и другими ресурсами. Не придется тратить годы жизни на попытки понять где течет память, и почему у ОС закончились дескрипторы =)
Если честно сам не знаю что лучше. Я думаю если человек хочет стать профессиональным программистом - нужно начинать с низкого уровня, и плавно подходить к высокому. Если же и правда только как хобби, или чтобы для себя наваять простой сайт, скрипт или утилитку - то вполне можно забить на указатели, и сразу писать на питоне/джаве/js и тд.
Я полазил по форумам и люди посоветовали не трогать С/С++, а лучше выбрать что попроще. Я решил остановится на Python и "открыл" книгу Лутц.М - Изучаем Python. Надеюсь, что через месяц будет толк от этой затеи.
GNU C++ (gcc / g++) не только на Linux, есть MinGW. Но это только сам компилятор, а не среда разработки (IDE ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%... ), поэтому с dev c++ сравнение неправильно. Можно вообще без IDE из консоли компилировать, запуская компилятор с нужными параметрами (путь к файлам с кодом и т.д.). И в Linux, и в Windows. А если использовать IDE, то возьмите лучше Visual Studio (Express) или Qt Creator.
GCC ещё есть в составе Cygwin (это практически полноценная линукс- (или вернее POSIX-) среда для Windows). Хотя новичку лучше воспользоваться MinGW, ставить Cygwin ради одного только компилятора, пожалуй, не стоит, да и обычно линуксовый софт под виндой собирается с помощью MinGW. В качестве IDE могу порекомендовать NetBeans, она как раз использует GCC, к тому же эта связка (NetBeans + GCC) кроссплатформенна, не нужно будет переучиваться, если автор вопроса вдруг захочет перейти на Linux. Впрочем, для Qt Creator это справедливо в равной степени.
Вообще, я бы порекомендовал автору заняться параллельным изучением Linux, хотя бы даже в виртуальной машине, это поможет ему скрасить бытиё ничуть не хуже, и вполне может ему пригодиться в будущем.
Хотя от цели изучения зависит. Если ему интересна исключительно разработка под Windows, то в этом случае стоит делать упор на Visual Studio.
Берите любые, где написано "введение в xxx". Мне лично понравились Ivor Horton's Beginning Visual C++ 2013 и Sams Teach Yourself C++ in 24 Hours, но вам могут пригодиться любые другие. Проще найти два-три разных учебника и прочитать их, чем выяснить на форуме какой из них лучший.