나는 이것이 당신의 기술의 매우 긍정적 인 신호라고 생각합니다. 팀에서 '더 나은'디자인을 찾는 데 어려움을 겪는 사람들이 다른 디자인이 더 나은 이유를 완전히 인식 할 수없는 경우가 훨씬 흔합니다.
당신에게는 두 가지 위대한 (그리고 놀랍게도 드문) 강점이 있습니다 :
- 당신은 객관적으로 다른 사람에 대한 디자인을 평가할 수 있습니다
- 당신은 당신의 디자인을 최적으로 만들기위한 열망과 노력을 기울입니다.
당신은 불과 몇 년 만에 갈 길이 멀지 만, 이런 태도로 당신은 분명히 거기에 갈 것입니다. 포기하지 마십시오. 우리는 모두 이와 같은 정신적 장애를 처리합니다. 디자인 원칙 과 동일하지는 않지만 디자인 원칙 을 연결 하는 것이 좋을 때마다 이것이 유용한 방법의 완벽한 예라고 생각합니다. 그것들을 연구하고 당신의 디자인에 적용하는 것을 연습하십시오.
하루가 끝나면 디자인이 어렵다는 것을 기억하십시오. 우리는 매일 복잡한 높은 수준의 추상화를 처리하고 있으며, 얇은 공기에서 생성하고, 잘 작동하며, 동료가 사용하기 쉬운 것은 매우 어려운 작업입니다. 몇 년 동안 연습이 필요합니다 .
따라서 두 개의 디자인을 평가할 수없고 실제로 하나를 다른 것보다 선호하는 것으로 인식 할 수있는 많은 사람들이 있습니다. 좋은 디자인을 만드는 데 얼마나 잘 대처하고 있다고 생각하십니까?
편집 :
'또 다른 팁, 원리에 대해 머리를 숙이고 응용 프로그램을 약간 연습 한 후에 다른 질문과 다른 목적과 규칙을 가진 다양한 언어를 연구하는 것의 가치에 대해 이야기하는 다른 보석이 있다고 생각합니다.
이상적으로 모든 프로그래머는 각 클래스의 언어를 알아야합니다. 무엇을 배울 수 있습니까?
- 정적 유형의 OOP 주류 언어 : Java, C # (대부분 엔터프라이즈 소프트웨어에서 사용) 및 C ++ (시스템 프로그래밍 및 복잡한 데스크탑 애플리케이션)
- 프로토 타입 기반 OOP 언어 : Javascript (클라이언트 측 웹 프로그래밍)
- 절차 적 언어 : C (내장 소프트웨어 및 시스템 프로그래밍)
- 기능적 언어 : Haskell, ML 또는 Lisp (기능적 언어는 고도로 병렬화 된 소프트웨어에 적합합니다).
논리 프로그래밍 언어 (Prolog)는 아마도 AI에서 연구에 주로 사용되는 산업에서는 그다지 유용하지 않을 것입니다.
이는 솔루션을 설계 할 때 떠오르는 다양한 아이디어를 넓히는 데 도움이됩니다.