Оптимизировать надо только тогда, когда возникли ощутимые проблемы с производительностью, потому что они часто оказываются совсем не там, где мы думаем, они появятся.
Со временем появится интуитивное понимание, где в будущем могут возникнуть проблемы, и как лучше написать, чтобы их по возможности избежать.
Без опыта, только по книгам и советам, научиться этому почти невозможно. У меня не получилось, во всяком случае.
Выбираю самое простое решение
Ну, это завсегда. Но я бы на твоём месте сначала доучился, если нет возможности совмещать. А потом искал работу по специальности. Ну, то есть, для начала потыкайся по фирмам, что они тебе смогут предложить, если увидят потенциал. Стажёр — это хороший старт.
Я однозначно убеждён, что процесс написания кода с обратной связью даёт гораздо более адекватный результат. Тем более если ты хочешь пощупать опенсорс. Код ты пишешь для себя/других людей.
У меня будет два типа слоя. Для генерации каждого слоя нужен разный набор параметров и генерируются они, соответственно, по-разному. При этом далее я в некоторых местах хочу относиться к этим слоям, как к похожим объектам.
Типа: Посмотрим-ка все созданные слои. Это слой? - Да. - Ок, тогда посмотрим его высоты.
То есть метод Create(какие_то_параметры) отрабатывает по-разному, но итоговый результат один должен быть у него.