День добрый.
Поясню вопрос:
Кодер (для меня) - человек, который способен писать хороший код
Программист - специалист, которые разбирается во многих аспектах языка на котором работает, а также в смежных областях, вроде математики.
На данный момент я могу себя позиционировать как C++ кодер - знание и использование всех стандартов до 17 включительно, умение работать с многопоточными примитивами, умение оптимизировать код, разбираться с чужим и т. д.
Но меня не оставляет сомнение, что по сути, я ничего конкретного не умею: на написание простейшего КМП может уйти вечность, потому что углубляюсь в код и ищу оптимальные методы на протяжении нескольких часов, в то время как можно было бы реализовать более громоздко, но за два часа, а то и меньше. Нет представления об асимптотической сложности алгоритмов, и структур данных.
В общем в голове сидит мысль, что единственное, что я могу - писать красивый и эффективный код. Куда копать чтобы от этого избавиться? Пока что штудирую книги по алгоритмам, но мне этого кажется мало
...может уйти вечность, потому что углубляюсь в код и ищу оптимальные методы на протяжении нескольких часов, в то время как можно было бы реализовать более громоздко, но за два часа, а то и меньше.
Сила воли не помогает?)
Пока что штудирую книги по алгоритмам, но мне этого кажется мало
Штудируете книги по алгоритмам и вылизываете алгоритмы, это же логично. Попробуйте поискать что-нибудь по архитектуре, TDD и вот этому всему.
Ваша проблема в том, что вы не планируете разработку программы.
Задайте себе вопрос: что я смогу написать за сегодня?
И постарайтесь это написать.
Так вы научитесь измерять код в трудоднях. И начнёте искать решения проблемы не "как написать красивый код", а "как написать столько много кода и не свихнуться".
Потому что реальные программы измеряются в человекогодах.
Если вы найдёте способ программу объёмом, допустим, в 10 человеколет написать за 5 человеколет, то это уже будет сделать экономически выгодно. Вы начнёте искать варианты финансирования своего проекта.
Так и создадите успешную компанию по разработке ПО.
Бывает код дешёвый и код дорогой. Вы сейчас начинающий разработчик, поэтому ваш код ничего стоит, и вы можете потратить хоть месяц на решение какой-нибудь задачки, которую какой-нибудь школьник на олимпиаде решит за два часа.
Но чем больше вы знаете, тем дороже стоит ваше время, и года через три у вас уже не будет этого месяца. Поэтому вам надо научиться программировать быстро, то есть экономически эффективно.
В противном случае через три года вы станете заниматься чем-то другим, с программированием может быть даже и не связанным непосредственно. Просто это будет приносить вам больше денег, чем программирование.