Вопрос

Я разработчик C ++, Unix, в основном на стороне систем, в области продуктов.Я хотел бы взяться за какой-нибудь побочный проект, чтобы улучшить свои навыки в следующем :

  • Объектно-ориентированный Дизайн
  • Многопоточное программирование с широкими возможностями для мьютексов и семафоров
  • Межпроцессные коммуникации в Unix
  • Базовый материал C ++ (хочу использовать шаблоны, обрабатывать исключения, использовать интеллектуальные указатели и прочее)

У меня есть приличные "книжные" знания обо всем вышеперечисленном, но у меня недостаточно возможностей запачкать руки.Недавно я пошел на собеседование, и они задали мне действительно хорошие (и трудные) реальные жизненные проблемы из вышеперечисленного, и я с треском провалился.Отсюда и эти усилия :-)

Я рассматриваю что-то вроде 6-месячного проекта, тратя на это около 3 часов ежедневно.Любые предложения были бы замечательными.

Спасибо.

Это было полезно?

Решение

Имея такое дополнительное время и мотивацию, вы с таким же успехом могли бы получать деньги во время тренировки! http://www.rentacoder.com

Для получения хорошей задачи попробуйте какое-нибудь сетевое приложение.Возможно, сервер, который сообщает о состоянии системы.То, чему ты научился бы:

  • Программирование сокетов.
  • Асинхронная обработка событий.
  • Многопоточность (обрабатывает один запрос в ожидании следующего).
  • Системные вызовы для получения информации о состоянии
  • Очень полезные навыки отладки в реальном мире.
  • Терпение.:-)

Удачи - наслаждайтесь!

Другие советы

Предложение Адама хорошее, но если вы больше склонны просто делать это для себя и получать удовольствие, я бы реализовал сетевую многопользовательскую экшн-игру, используя OpenGL, OpenSceneGraph или один из других существующих игровых наборов инструментов.

Вы могли бы сделать из этого забаву в Лучший Программист.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top