Я думаю, що це дуже позитивний знак ваших навичок. Набагато частіше для людей, які мають труднощі придумати «кращий» дизайн в команді, бути абсолютно нездатними визнати, чому інший дизайн кращий.
У вас є дві по-справжньому сильні (і дивно незвичайні) сили:
- Ви здатні об'єктивно оцінювати свої проекти проти інших
- Ви маєте бажання і доклали зусиль, щоб зробити свої проекти оптимальними
Вам всього пару років, і вам належить пройти довгий шлях, але при такому ставленні ви обов'язково потрапите туди, просто не здайтеся; всі ми маємо справу з ментальною спиною, як це. Оскільки часто я отримую шанс, я люблю підключати принципи дизайну (НЕ такі, як шаблони дизайну), і я думаю, що це ідеальний приклад того, як вони стануть у нагоді. Вивчайте їх і практикуйте їх застосування у своїх проектах, ви перед тим, як дізнаєтесь, зробили ще один крок вперед у цьому плані.
Зрештою, пам’ятайте, що проектування важко. Ми щодня маємо справу зі складними абстракціями високого рівня, щоб створити їх з повітря, щоб вони працювали добре, а їх легкість у використанні колегами є надзвичайно складним завданням. Це вимагає практики, роками .
Тож підборіддя і просто пам’ятайте: там є купа людей, які не в змозі оцінити два дизайни і насправді визнають один як кращий за інший, наскільки добре, на вашу думку, вони ладнають у створенні гарних конструкцій?
Редагувати:
"Порада, після того, як ви поцікавитеся принципами та трохи практикуєте їх застосування, я думаю, що тут є ще одна дорогоцінний камінь з іншого питання, що говорить про значення вивчення різних мов, які мають різні цілі та правила:
В ідеалі кожен програміст повинен знати мову з кожного класу. Що ви могли дізнатися:
- Статична набрана основна мова OOP: Java, C # (в основному використовується у програмному забезпеченні підприємства) та C ++ (системне програмування та складні настільні програми)
- На основі прототипу мова OOP: Javascript (веб-програмування на стороні клієнта)
- Процедурна мова: C (вбудоване програмне забезпечення та системне програмування)
- Функціональна мова: Haskell, ML або Lisp (функціональні мови добре підходять для програм із сильною паралельністю).
Мова логічного програмування (Prolog), ймовірно, не є такою корисною в промисловості, тому що використовується, здебільшого, при дослідженні AI.
Це допоможе розширити різноманітність ідей, які приходять на думку при спробі розробки рішення.