Какой лучший способ перейти на продвинутый C ++? - PullRequest
9 голосов
/ 02 июля 2010

И что вы предлагаете перейти на следующий уровень программирования на C ++ для кого-то, кого можно назвать, ну, в общем, программистом среднего уровня C ++?

Среднестатистический программист: достаточно хорошо понимает ISO C ++, может с некоторой удачей читать и изменять код другого, хорошо работает со структурами данных и алгоритмами, но не великолепно

  1. Learn C ++ 0x
  2. Узнайте, какой код сборки генерируется для различных типов конструкций, может быть, для x86
  3. Забудьте языковые нюансы и получите основы - теорию автоматов откуда-то вроде Sipser или Papadimitriou
  4. Если вы знаете ООП или, по крайней мере, думаете, что знаете, подумайте, как объединить навыки функционального программирования с C ++
  5. Работа над чем-то в строках компилятора и с открытым исходным кодом, например, LLVM или GNU Toolchain
  6. Вся идея разрушена - следующий уровень означает более сложные структуры данных. Так что, если вы знаете AVL, подумайте об изучении левого наклона красно-черных деревьев и др.

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

ПРИМЕЧАНИЕ: Спасибо всем за очень полезные ответы.

Ответы [ 12 ]

0 голосов
/ 02 июля 2010

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

0 голосов
/ 02 июля 2010

С другой точки зрения: 7. Изучайте другие языки программирования, отличающиеся от C ++, насколько это практически возможно.Обязательно узнайте о функциональном программировании и пока не беспокойтесь о том, как оно применяется к C ++.Некоторые языки для рассмотрения: Scheme, Common Lisp, Haskell, Prolog, Forth, Smalltalk.Вам не нужно разбираться в них, но вы должны попытаться понять, как они работают и каков хороший код на этих языках.

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

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