Проектные идеи, чтобы стать хорошими в C ++ - PullRequest
17 голосов
/ 27 августа 2010

Я хочу попасть в команду C ++ на работе. Их работа заключается в написании CGI на C ++ (в основном, но не только). Я знаю базовый C ++. Читая список на C ++ book guide вопрос о SO, у меня есть три книги от друга (у меня на самом деле была первая).

  1. Язык программирования C ++ - Бьярне Страуструп - для справки
  2. Шаблоны C ++ Полное руководство - Дэвид Вандевурде / Николай М. Йосуттис
  3. Современный дизайн C ++ - Андрей Александреску

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

  2. Настройка мне нужна. У меня есть Macbook и личный дерьмовый сервер Ubuntu dev. Я могу bootcamp установить любую ОС, если это будет необходимо.

  3. Не могли бы вы также дать мне несколько советов о том, как начать писать CGI (или любой учебник)?


Большое спасибо.

AJ

Ответы [ 5 ]

6 голосов
/ 27 августа 2010

Позвольте мне добавить в ваш список материалов для чтения; C ++ FAQ Lite - это абсолютно лучший ресурс для изучения тонкостей C ++. Он полезен как справочник для старожилов, так и для начинающих. Я настоятельно рекомендую прочитать как можно больше и попробовать небольшие примеры, демонстрирующие каждую упомянутую функцию, прежде чем присоединиться к реальному проекту.

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

Что касается среды разработки, я считаю, что Ubuntu проще всего настроить, потому что почти все настройки можно сократить до серии команд apt-get install. Например:

sudo apt-get install build-essential

Независимо от того, какую операционную систему вы используете, вы, вероятно, захотите создать и запустить свой код в предсказуемой воспроизводимой среде. Я также должен отметить, что среда, в которой вы разрабатываете, не обязательно должна быть такой же, как среда, в которой вы фактически строите и запускаете свой код. Например, вы можете написать весь свой код в Mac OS X, но собрать и выполнить его в контейнере Docker , на котором работает экземпляр Ubuntu с вашей предустановленной воспроизводимой конфигурацией сборки / запуска.

Что касается ресурсов для реализации CGI в C ++ (и для другого кода), пожалуйста, посетите страницу C ++ resources на моем веб-сайте. В нем перечислены несколько инструментов для работы в сети, компьютерной графики и других задач C ++, а также библиотеки общего назначения, такие как Boost и Qt.

4 голосов
/ 27 августа 2010

Лучший способ стать лучше в C ++ - это ... писать код на C ++. Начните с простого raytracer без каких-либо внешних зависимостей (просто запишите выходные данные в файл PPM).

  1. Я думаю, что это достаточно интересная проблема, которая позволит вам начать работу с языковым ядром,
  2. Отсутствие зависимостей уменьшит отвлекающие факторы из-за потенциально сложных сторонних библиотечных идиом, которые вы еще не можете оценить, и раздражающих вещей, таких как библиотеки и ссылки. Кроме того, у вас будет меньше причуда C ++ на вашем лице.

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

Промыть, повторить.

3 голосов
/ 27 августа 2010

ответ на заголовок вопроса :) при условии C ++ 03

с сайта Bjarnes:

1.Новое обучение

2.Принципы и практика использования C ++ (Должен дать представление о коротких программах / проектах)

3.Обучение и преподавание C ++

И да, если вы хотите выучить хороший C ++, вы должны иметь хорошего рецензента.Держите копию соответствующего стандартного под рукой (open-std.org)

2 голосов
/ 27 августа 2010

Прочитайте книгу «Эффективный C ++» Скотта Мейерса.Это отлично, и даст вам хороший совет о лучших методах и вещах, которых следует избегать.

2 голосов
/ 27 августа 2010

по моему мнению, если вы делаете небольшой проект, используя

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

если вы знаете немного C ++, вы можете получить массу удовольствия, подталкивая язык к пределам с помощьюодин феникс.

Что касается идей, CGI, вероятно, будет тяжелым в математике, попробуйте, например, написать алгоритм параллельной интеграции, используя шаблоны выражений.

Например, вы можете создать синтаксис, подобный этому:

integrate(x*x + sin(x), 0, 100, threads(4));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...