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