Подтвердить что ты не робот

Каков наилучший способ изучить С++, если у меня есть немного другого опыта программирования?

Просто хотелось бы, чтобы некоторые мысли о том, что вы думаете о моей стратегии, изучать С++. Хотя я понимаю, что для овладения языком программирования требуются годы, я просто хочу дойти до точки, где меня можно считать компетентным как можно быстрее. Почему быстро? Хорошо, когда я говорю быстро, я действительно говорю, что я совершен, и что я не хочу, чтобы это вечно вечно, где навсегда никогда. Если понадобится пять лет, чтобы стать компетентным, требуется пять лет. Я не ожидаю 24 часа или 30 дней.

Обо мне: У меня нет степени в CS, у меня есть степень антропологии и магистры в области библиотечной науки. Изучение основ CS, таких как нотация Big O, и основы, такие как бинарные деревья и связанные списки, алгоритмы сортировки были проблемой. Вероятно, ничто не заменит хорошую степень CS.:( У меня есть многолетний опыт программирования, начиная с PHP в 2001 году, ActionScript, 2003, JavaScript вскоре. Я пишу программы на Python уже около двух лет, и я научился C (читая книгу K & R и написав некоторые программы), но я, вероятно, не собираюсь наниматься на работу C. Также недавно выучил Objective C. Я работаю как разработчик JavaScript и Python, так и разработчик CSS на веб-сайте в настоящий момент.

Во всяком случае, это моя стратегия: прочитайте книгу Stroustrup (я только начал в первой части) и в то же время запустил простой проект на С++, а также выполнил многие упражнения Stroustrup.

Мысли?

4b9b3361

Ответ 1

Книга Bjarne является фантастической, особенно для синтаксиса С++, но одна книга, которая действительно сделает вас компетентным программистом на С++, - это Эффективный С++. Возьми. Прочтите.

У меня также нет степени CS, но я работаю для запуска силиконовой долины. Возможно, вам просто нужно знать, что там и никогда не прекращать обучение. Многие студенты, окончившие диплом с высшим образованием, работают на языке, который они не изучали, поэтому обязательно поразите основы. Если вы слышите что-то незнакомое вам, не забудьте найти хорошую книгу и кафе и добраться до него. С++ придет вовремя - с Stroustrup и Meyers, у вас есть 90% того, что нужно, чтобы быть хорошим на С++

Ответ 2

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

Ответ 3

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

Попробуйте использовать инструменты анализа кода, попробуйте использовать соглашения на С++ (например, google http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml), попробуйте использовать valgrind для утечки памяти обнаружение. Узнайте, как писать Make-скрипты вручную, попробуйте некоторые компиляции в кросс-платформе, чтобы узнать, какие детали сложны.

Вы также можете взглянуть на некоторые популярные библиотеки, такие как boost.

По состоянию на проект, сделайте его openource, чтобы люди могли посмотреть на него и дать вам предложения. Чтобы действительно включить ваше отсутствие образования в области CS, возьмите научную статью и попытайтесь ее реализовать с помощью С++. Проверьте результаты и сравните их.

Ответ 4

Я не хочу, чтобы книга Stroustrop была хорошим местом для начала. Это более продвинутый/справочник. Я бы начал с Мышление в С++ (том 1)Volume 2 и напишите много кода. После того, как вы получите базовый дескриптор кода, я бы получил книги Скотта Майера "Эффективные книги на C++" и, безусловно, книгу "Строустроп".

Ответ 5

Вот список чтения/обучения, который я предлагаю

  • Сначала прочитайте Thinking in С++ в первом выпуске (получите синтаксис прямо)
  • Читайте книгу Скотта Мейера Эффективный С++ (получите тонкие нюансы)

После этого вы можете разветкиться на следующее. Вы можете пропустить все, кроме 1-го. Вы можете использовать boost, STL, что бы вы ни изучали 1 Научитесь использовать строки и другие контейнеры   (знать, когда использовать контейнер) 2 Предполагая, что вы уже знаете XML, научитесь использовать XML из С++   (Возможно, напишите переводчик WBXML на XML) 3 Просмотрите свои основы TCP/IP,   (возможно, написать простой клиент для чата на базе XMPP) 4 Возможно, вы захотите изучить некоторые инструменты GUI GTK +, Qt, MFC, независимо от того, что

В это время вы можете захотеть вникать в чтение о шаблонах проектирования. Я рекомендую "Разработанные шаблоны проектирования".

После того, как вы потратили более года на работу с С++, вы можете прочитать, среди прочего, "Внутри объектной модели С++".

Кроме того, я не рекомендую вам читать Stroustrup, но YMMV.

НТН

Ответ 6

Изучите Qt. Поверьте мне в этом; Я разрабатываю все виды приложений на С++ для жизни. С++ с Qt делает вас бесконечно более продуктивным. Я использовал для объединения так много разных библиотек (Boost, Intel, разъемы базы данных и т.д.), Чтобы добиться того, что мы делаем (высокопроизводительные/в режиме реального времени). В конце я обнаружил, что более 80% того, что мне нужно, уже включено в Qt.

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

Попробуйте и убедитесь сами.

Отказ от ответственности: я просто разработчик - я не работаю для Nokia. = Р

Ответ 7

Звучит хорошо для меня. Подходите к нему!

Ответ 8

Похоже, вы на правильном пути;

1) Задайте себе мини-проекты все возрастающей сложности (Hello World, Lottery Picker, Etc Etc)

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

Прошло около 15 лет с тех пор, как я его прочитал, но, похоже, я помню, что книга Страуструпа была не совсем дружелюбней из книг "Как учиться..." на С++. Вы можете потратить некоторое время на Amazon и сделать некоторые сравнения.

Ответ 9

Совершенно откровенно, если вы хорошо изучили C, и вы сделали объектно-ориентированное программирование (поскольку вы изучили цель C), вам не нужно слишком переубеждать ваш подход к обучению С++.

Тем не менее, ваш план хорош.

Ответ 10

Если у вас есть сильный дескриптор на C, то С++ не является огромным прыжком, как только у вас будет хороший дескриптор концепций ООП.... что, надеюсь, вам нужно овладеть Python. Исходя из C, самая большая вещь, которую нужно изучать на С++, действительно знакома со стандартной библиотекой шаблонов (STL), и все тонкие вещи приходят вместе с ней.

Лично я считаю, что книга Страуструпа не так уж хороша для изучения языка, это скорее ссылка. Я бы рекомендовал С++ Primer Plus в качестве лучшей книги и Эффективный С++ книги от Meyers за то, что они действительно учатся правильно использовать язык.

Ответ 12

Есть десятки Стили обучения. Вы выбрали тот, который, по вашему мнению, будет работать на вас.

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

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

Ответ 13

Если вы находитесь в этой книге Страуструпа:

Язык программирования С++
http://www.research.att.com/~bs/3rd.html

И найти это сложно... что это может быть. Вместо этого вы можете переключиться и начать с этого:

Программирование - Принципы и практика с использованием С++
http://www.research.att.com/~bs/programming.html