Мой опыт - электротехника, точнее DSP. Компания, в которой я сейчас работаю, выполняет множество разнообразных проектов, в основном создание аналогового оборудования. Будучи несколько ближе к компьютерам, чем все остальные здесь, я часто пишу код как для встроенных устройств (с которыми я прекрасно справляюсь), так и для ОС Windows или Linux. Это последняя для меня чужая территория.
Я умею кодировать и знаю несколько языков (C / C ++, Java, немного VB.NET), но я использовал их только для моделирования алгоритмов при обработке сигналов и изображений, нейронных сетей и других подобных приложений. Для меня программирование было вычислительным инструментом больше всего на свете. Тем не менее, я получаю все больше и больше проектов, в которых мне приходится писать полноценное программное обеспечение, и я не знаю, как это сделать, потому что мне никогда не приходилось это делать, и я никогда не был достаточно заинтересован. Я сам видел довольно много инженеров, которые были в определенной степени преобразованы в программистов из-за требований работы, и большинство из них не были настолько хороши в том, что они делали. Я уверен, что многие люди сталкивались с тем же.
Если бы я научился писать правильное программное обеспечение с хорошим пользовательским интерфейсом, хорошей внутренней архитектурой и так далее, как мне это сделать? У нас нет никого на работе, кто мог бы сказать мне, что такое хорошая практика, а что нет. Учитывая, что я могу писать код в прямом смысле этого слова, что еще нужно знать о написании хорошего программного обеспечения и как я могу получить его самостоятельно?