Плохо пишу программы и хочу это исправить
От: i3F  
Дата: 15.01.13 14:35
Оценка:
Здравствуйте, господа,
нужна ваша помощь.

Есть опыт работы 2 года программистом в одной фирме и 4 года самостоятельной работы.
За время работы с другими программистами в конторе научился у них хорошему, но не слишком многому, поскольку они тоже не всё умели и не всё знали о том, как правильно писать ПО.
То есть были в той фирме проблемы с проектированием, тестированием, взаимодействием разработчиков и т.п., в общем работали "на коленке".

Сейчас в одиночку разрабатываю одну программу, время на разработку/самообучение ничем не ограничивается.
Объем исходников в настоящий момент 600 кб.
Программа работоспособна, свои функции выполняет, успешно эксплуатируется.
Язык С++.

Сейчас глядя на программу считаю, что написано она плохо, "на коленке", не профессионально, неверно структурирована, неправильно разбита на объекты или вообще не разбита там где надо бы разбить и т.п.
Чувствую себя человеком, который знает язык программирования, но не умеет его правильно применять и не организовал нормально процесс разработки.
Как следствие ощущаю нежелание (иногда и неспособность) вносить жизненно важные изменения изменения в программу, особенно если эти изменения не очень хорошо ложатся на написанный код.
Какие-то фрагменты программы написаны хорошо (мне так кажется), но в целом вся программа требует переписывания.
Я пытался переписывать программу заново, но даже с опытом разработки этой же самой программы, с хорошим представление о предметной области, со знанием подводных камней новая версия получается не намного лучше старой.

Надо решить как изменить организацию труда, принципы разработки, чтобы уменьшить количество проблем с программой, вернуть над ней контроль.

Вижу два варианта.

1) Оторваться от работы и почитать книжки.
Тут есть проблемы и сомнения...
а) Надо выбрать про что вообще читать — про ООП, или про рефакторинг, или про организацию разработки, или ещё о чем-нибудь. Собираюсь ознакомиться со всеми озвученными темами, но если вы подскажете порядок в котором надо читать это необъятное море страниц, то буду благодарен.
б) При попытке чтения часто выясняется, что книжка написана водянисто. (Видать, авторам хочется кушать, и они увеличивают объемы пространными разговорами.)
Читать такие книги тяжело. Возможно, вреда от них больше чем пользы, поскольку потратив много времени и сил на изучение сотен страниц остаешься опустошенным, пропадает энтузиазм — и узнал мало и измучился.
в) Самое плохое то, что написанное в книге является неким абстрактным знанием, которое надо еще и уметь применять правильно на практике, а в этом то и моя основная проблема.
Но по идее должны быть полезные мне книги про разработку, написанные хорошими педагогами, легко читаемые, понятные, конкретные... Подсказывайте какие!

2) Можно устроиться на работу в профессиональную контору. Там-то на примере специалистов можно будет набраться хорошему, попробовать разные техники программирования и находиться под контролем опытных товарищей. Код-ревью там точно возможен. Но у этого варианта есть и громадные издержки. Во первых контору, работа в которой мне будет максимально полезна, надо ещё найти. Второе — работа в конторе сопровождается огромными затратами времени и сил: год или несколько лет придется работать 5 дней в неделю на по 8 часов. Кажется очевидным, что для таких усилий можно найти лучшее применение.

Может быть я немного сбивчиво написал, буду дописывать и дорассказывать по мере необходимости...
Высказывайте свои соображения...
Ясно что серебряной пули нет, однако надеюсь, что разговор окажется полезным...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.