Towards a higher

개발자는 설계를 한다. Such as Class Design, User Interfaces and Source codes. 따라서, 내가 알고 있는 것(= 계속 유지해야 할 부분) 에 대한 전문성을 유지 해야 한다.

But 아키텍트는 어느 한 가지 문제만 해결 가능한 전문 지식 보다는, 문제를 해결할 수 있는 여러 솔루션을 알고 있는게 더욱 중요하다. (From. Fundamentals of Software Architecture)

위 문구를 읽고 든 생각. The Future of Developers 여기서 살짝 언급했지만, ChatGPT 등장으로 앞으로는 2차전직을 위해서 노력해야 한다고 생각한다.

개발자를 넘어선 아키텍트와 같은 것으로 2차 전직을 위해서는 내가 모르는 것을 아는 것 에 대한 지식을 얻기 위한 노력의 비중을 늘려야 한다. (전문성을 유지하는 것도 당연히 중요하다.)

그 비중을 높여감에 있어서 Fundamental Knowledge (CS, Algorithms ..) 에 대한 중요성은 스스로 느낄 것임.

쉽게 말하면, 큰 그림을 다양하게 그릴 줄 아는 능력(The ability to draw system blueprint in variously) 이 필요한 것 같다.

따라서 공부를 할 때 적절한 비중을 두어서 공부하는 것이 좋을 것 같다. (주니어 개발자라면 전문성만 높이는데 집중해도 충분하다고 생각한다. 하지만 미들급을 바라보고 있는 개발자라면 혹은 시니어를 바라보고 있는 개발자라면 각자 상황 마다 공부 비중을 조절하는 것이 중요하겠다.)

  1. Fundamental Knowledge
  2. Software Architecture, System Design …
  3. Expertise

위 세 가지 항목 정도가 비중 조정의 대상이라고 생각한다. 추가로 아키텍트가 되기 위해서는 도메인 전문가가 되어야 하기 때문에 Domain 지식도 겸비해야 한다. (soft skills 는 논외)