Другие языки программирования и технологии

Недавно начал изучать программирование (не с полного нуля), но мои решения задач слишком громоздкое, это нормально?

При решении различных задач для практики\отработки тем проблема возникает не в получении верного ответа, а в решении этой задачи как можно проще и короче.

Дана простая задача, какой-нибудь сеньор решит её в 5 строчек, а у меня уходит 50. Куча циклов\условий\переменных и ответ получен верный. Но когда пытаюсь решить это короче, сразу кипит бошка, взрывается мозг, появляются мысли: "да если я так буду решать реальные задачи, меня в первый же день выкинут с работы, если не начальство, то те, кто будут писать код после меня".

Я понимаю, что я ещё даже не джуниор, но всё же, никак не могу придумать решение короче своего, а моё решение у меня супер большое, хоть и верное.
В современном мире правильное решение - такое, которое среди всех прочих возможных:

  1. Требует меньше вычислительных ресурсов и/или
  2. Требует меньше памяти и/или
  3. Надежно и масштабируемо

Пункты 1 и 2 часто лежат в противофазе, но в данном случае это неважно. А важно то, что о длине кода нигде речь не идет. Если твой код соответствует этим критериям, то все хорошо. Экономить память на коде в современном мире не нужно - память эта очень дешева и ее очень много.
Димон 1
Димон 1
66 052
Лучший ответ
Математика, алгоритмизация - это база для тех самых эффективных алгоритмов. Без базы они особо лучше не станут (ну, могут сократиться внешне за счёт функций языка, но внутри как были громоздкими, так и останутся)
Артём Усатых
Артём Усатых
82 958
80% вашего кода - это обработка пограничных, особых, неправильных и несуществующих данных и только 20% - непосредственно решение задачи.
Просто если сроки горят или вам дали гарантию, что нереальные данные с вероятностью 100% не придут ко входу вашего модуля, только вы можете смело оставить те самые 20% и выглядеть, как сеньор.
А где смотрел и сравнивал-то? Если на каком-нибудь codewars, там люди занимаются дро... спортивным сокращением кода. 20 строчек понятного и последовательного кода всегда лучше вашего гениального однострочного с однобуквенными переменными, который вы сами через месяц уже не будете помнить и понимать)

Тренироваться и учить прикольные финты и сокращения - прикольно, но не надо сильно париться, если не получается. В конечном итоге главное решить задачу) Со временем сам начнешь находить в своих старых кодах ошибки и понимать, как можно было написать лучше.

Это всё процесс учебы. Плохо будет, когда начнешь считать себя дофига крутым прогером и перестанешь развиваться)
Ilkin........ .
Ilkin........ .
62 361
Бунёд Ражаббоев Но иногда лишний код может тормозить программу и это же желательно оптимизировать?
ищите короткие алгоритмы,

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

формул

только так: "чаще поворачивай стиль"
Erlan Tazhi
Erlan Tazhi
53 360
Слишком сумбурно. С одной стороны начинающий в любой сфере будет генерить "не то" и этот период проходят все, с др. стороны красиво получится, (только) если у человека в голове есть какая-никакая матчасть. В ИТ эта мч - математика хотя бы школьного уровня.
Но я бы смотрел со стороны скорости разработки. При неназванной задаче трудно оценить качество решения. Не исключаю, что решения "в 5 строк" не существует
Лачин Халилов
Лачин Халилов
20 491
Не волнуйтесь, это абсолютно нормально. Начинающим программистам часто сложно сразу находить оптимальные решения. С опытом вы научитесь улучшать свои решения и делать код более компактным и эффективным. Важно продолжать практиковаться, изучать различные подходы к решению задач и читать код более опытных программистов. С течением времени и опыта ваш навык программирования будет совершенствоваться, и вы сможете решать задачи более эффективно.
Arin Sholpankulov
Arin Sholpankulov
3 078