개발자 자가진단 체크리스트
□ 실제 서비스를 공개적으로 배포하고 운영해보는 경험을 해 보았다.
□ 유저의 피드백에 따라 성능/사용성을 개선하고 신규 기능을 추가해보았다.
□ 발견되는 버그와 개선사항을 정리하고 쌓인 이슈들을 체계적으로 관리 해 보았다.
□ 코드를 지속적으로 리팩토링하고 디자인 패턴을 적용해 보았다.
□ 위의 시도에서 더 좋은 설계와 더 빠른 개발 사이의 트레이드오프를 고민 해보았다.
□ 반복되는 수정과 배포에 수반되는 작업들을 자동화해보았다.
□ 언어나 프레임워크의 기능만으로는 구현 할 수 없는 것들을 구현해보았다.
□ 내가 사용한 라이브러리나 프레임워크의 문제점이나 한계를 느끼고 개선해보았다.
□ 코드나 제품의 퀄리티를 유지하기 위한 분석툴이나 테스트툴을 도입해보았다.
□ 타인과의 협업을 효율적으로 하기위한 고민을 해보았다.
여러분들은 이 체크 박스를 몇 개정도 채우셨나요?
대부분의 신입 개발자들은 물론 어느정도 경력있는 분들도 체크박스 2~3개를 채우기 어려운 경우가 많습니다.
많은 자극적인 컨텐츠들은 입문자들로 하여금 토이 프로젝트를 빠르게 찍어내기만하면
고연봉을 받는 개발자가 될 수 있다고 현혹합니다.
생산성 높은 언어와 프레임워크가 계속 나오고 있고 이것들을 배울 수 있는 교육자료와 강의가 넘쳐나는 요즘
사실상 그 정도(찍어내는 능력)는 누구나 금방 배울 수 있습니다.
그리고 외주 개발식의 프로젝트만 하는 회사들은 취업을 해도 이런 경험을 하기 힘든 구조를 갖고있죠.
프로젝트를 할 때 위의 체크들을 채워나갈 수 있는 환경에 노출되는 것이 중요합니다.
다르게 말하면 체크박스를 하나 둘 채워나갈 때마다
구인 시장에서 나의 경쟁력은 지수적으로 증가할 것입니다.