주니어 개발자로 성장하기 위한 마음가짐
자체 제작한 구조도 입니다.
주니어 개발자로 성장하기 위해 많은 역량을 개발해야 합니다.
위 그림과 같이 경력수준(시간)이 증가할수록 더 많은 역량이 필요합니다.
이것을 역량 함수라고 정의한다면 일정 수준 이상의 역량이 되어야 비즈니스 성장에 기여할 수 있습니다. 이때가 실무 문제를 해결하거나 개선하는 주니어 개발자라고 생각합니다.
주니어 개발자가 되기 어려운 이유는 학습의 양이 많기 때문입니다. 학습의 양은 경력 성장 시간에 따른 역량 함수의 적분값(넓이)이 ‘학습의 양 ≒ 고통의 양’ 입니다. 이 ‘학습의 양 ≒ 고통의 양’ 을 이겨낼 수 있는 마음가짐이 주니어 개발자로 성장하기 위한 마음가짐이라고 생각합니다.
20년 차 개발자의 성장 마인드
‘나는 LINE 개발자입니다’ 책에 소개된 20년 차 시니어 개발자의 성장 스토리에서 어떤 마음가짐으로 성장했는지 간략히 소개해 드리겠습니다.
라인 20년 차 현업 개발자 성장 중에 경험한 마음가짐
•
업무적으로도 개발적으로도 결과물을 명쾌하게 설명하지 못해서 부끄러움을 느낌
◦
O’Relly에 나오는 JAVA 관련 서적은 거의 다 읽음
◦
업무적으로 이해가 안 되는 부분이 있으면 다음 날 출근한 선배에게 질문을 통해 이해
◦
Pattern, Thread, JAVA vs C++, Oracle vs DB2, Tomcat 등에 대해 자유롭게 대화할 수 있음
◦
성공적인 결과를 이뤄내고, 개발 직군을 진정으로 사랑하게 됨
•
‘게임은 어떻게 만드는 걸까?’, ‘저 많은 그림은 어떻게 저렇게 그려지는 거지?’ 호기심을 느낌
◦
‘어떻게든 하다 보면 되겠지’ 라는 긍정적인 생각
◦
잠을 좀 줄이더라도 공부를 하면서 개발해야 한다는 마음가짐
◦
새로운 기회 앞에서 주저하지 않고 도전
◦
힘든 상황이 오더라도 쉽게 포기하지 않음
◦
게임을 개발하는 일이 정말 힘들면서도 동시에 재미있음
마음가짐의 중요성
취업에 성공하는 내담자의 경력관리 상담을 돌이켜보면 성장하는 마음가짐을 가지고 있다는 것을 느낍니다. 정말 성장하고 싶다면 마음가짐은 저절로 따라오는 것 같습니다.
주니어 개발자로 성장하기 위한 마음가짐 소개
개발자는 어떤 상황을 경험하며, 어떤 마음가짐을 가진 개발자가 성장하는지 소개하겠습니다.
주니어 개발자로 성장하는 데 도움을 주는 5가지 마음가짐을 소개해 드립니다.
1.
열정을 가지고 문제해결을 하려고 하는 마음가짐
2.
문제해결에 몰입하고, 성취감 느끼려는 마음가짐
3.
문제해결을 위해 다양한 도구를 존중하는 마음가짐
4.
의사소통을 통해 최선의 해결책을 찾으려는 마음가짐
5.
사용성에 고민하는 마음가짐
열정을 가지고 문제해결을 하려고 하는 마음가짐
개발자가 열정이 부족한 상황
•
자신도 충분히 이해하지 못한 알고리즘을 작성합니다.
•
디버깅할 때 어처구니없는 곳에서 버그가 발견됩니다.
•
프로그램이 기능적으로는 하자가 없지만 효율성에서 허점이 발견됩니다.
열정을 가지고 문제해결하려고 하는 마음가짐이 있다는 것은
•
사람의 능력보다 일을 대하는 기본적인 자세와 책임감, 애착을 의미합니다.
•
단 몇 줄의 프로그램을 작성할 때도 최선의 코드를 만들려고 노력합니다.
•
매너리즘에 빠지지 않고 가볍게 보거나 무시하지 않는다.
•
보안 결함이나 심각한 버그와 같은 문제가 발생한다면 끝까지 책임지려고 노력합니다.
문제해결에 몰입하고 성취감 느끼려는 마음가짐
개발자가 몰입이 필요한 상황
•
개발의 세계에서는 오묘한 문제가 끊임없이 나타납니다.
•
‘이게 도대체 왜 안 되는 거지?’ 라는 질문에 대한 문제를 해결해야 합니다.
•
‘당연히 이렇게 되어야 할 것 같은데, 왜 저런 엉뚱한 결과가 나오지?’ 라는 질문에 대한 문제를 해결해야 합니다.
몰입을 통한 문제해결에서 성취감 느끼려는 마음가짐이 있다는 것은
•
실패 가능성은 당연한 사실로 받아들입니다.
•
당연한 사실마저 끊임없이 의심하고, 그 의심을 확인하고자 실험하고자 노력합니다.
•
일단 내 코드에 무조건 문제가 있을 거라 믿고, 검증을 받으려고 노력합니다.
•
어려운 문제를 해결하는 순간에 머리끝에서 가슴으로 느껴지는 성취감을 느낍니다.
문제해결을 위해 다양한 도구를 존중하는 마음가짐
문제해결을 위해 다양한 도구를 존중해야 하는 상황
•
개발자는 문제를 해결해야 하는 직무입니다.
•
문제를 해결하기 위해서 다양한 도구를 존중하여 문제를 해결해야 합니다.
•
더 나은 도구를 찾고 존중해야 하는 마음가짐이 있어야 합니다.
문제해결을 위해 다양한 도구를 존중하는 마음가짐이 있다는 것은
•
자기가 사용하는 기술를 종교적인 맹신이나 애착의 감정을 품지 않는 것입니다.
•
자기가 사용하지 않는 기술에 대해 무시하거나 적대적이지 않는 것입니다.
•
이 세상의 모든 것, 모든 사람에게 마음을 활짝 열고 배우려고 노력하는 것입니다.
•
문제를 해결하기 위해 끊임없이 성장해야 한다는 마음가짐이 있는 것입니다.
의사소통을 통해 최선의 해결책을 찾으려는 마음가짐
의사소통을 통해 최선의 해결책을 찾아야 하는 상황
•
소프트웨어의 개발 과정이 요구하는 내부, 외부 다양한 의사소통을 통해 결정됩니다.
•
[내부] 아키텍처, 프로토콜, 데이터 통신 방식, 언어, 프레임워크 등에 관해 협의해야 합니다.
•
[외부] 최종 사용자, 개발자, 엔지니어, 테스터 등 다양한 이해관계자 등과 협의해야 합니다.
의사소통을 통해 최선의 해결책을 찾으려는 마음가짐이 있다는 것은
•
규모가 크고 복잡한 소프트웨어를 소통을 통해 통제합니다.
•
직급이나 형식을 따지지 않고, 엄밀하게 옳고 그름을 따지며 자유롭게 소통합니다.
•
솔직한 자세로 구체적이며, 예의를 갖추어 소통합니다.
•
테크 스펙을 쓰고 회의를 통해 팀원과 공유하며 및 피드백 수용합니다.
•
기술에 관해 위키 문서를 작성하고 공유합니다.
사용성에 고민하려고 하는 마음가짐
개발자가 사용성에 관한 고민이 필요한 상황
•
사용성이 있는 기능(오랫동안 사용할 수 있는 기능)을 잘 만들기 위해서 고민해야 합니다.
사용성에 고민하려고 하는 마음가짐이 있다는 것은
•
사용자의 니즈를 통해 사용성에 관한 근거를 찾습니다.
•
A/B 테스트 등 데이터에서 사용성에 관한 근거를 찾습니다.
•
서비스를 개발할 때 사용성을 높은 우선순위로 생각합니다.
•
서비스 업데이트 후 얼마나 개선을 이루었는지 효과를 측정합니다.
마무리
주니어 개발자로 성장하기 위한 마음가짐에 관해 소개해 드렸습니다. 개발자을 목표로 성장한다면 많은 프로젝트를 마주치게 될 것입니다. 프로젝트를 진행하면서 소개한 5가지 마음가짐을 기억해 주셨으면 좋겠습니다.
채용담당자에게 아래와 같은 개발자라고 주장해 주세요.
개발 역량이 뛰어난 개발자입니다.
•
기술 영역에 대한 지식이 풍부합니다.
•
특정한 기술을 깊이 이해하고 있습니다.
•
기술에 대해 끊임없이 학습하고 있습니다.
자기 주도적인 개발자입니다.
•
누가 시키거나 요청하지 않아도 문제를 찾아내고, 해결책을 찾습니다.
주변에 긍정적인 영향을 미치는 개발자입니다.
•
좋은 문화를 만들려고 노력합니다.
•
함께 일하고 싶은 동료가 되기 위해 노력합니다.
문제해결이 뛰어난 개발자입니다.
•
버그나 장애 처리 경험이 많습니다.
•
비즈니스 문제에 고민하고 해결한 경험이 있습니다.
끊임없는 학습하는 개발자입니다.
•
정보 파이프라인 만들고 있습니다.
•
책과 공식 문서를 통해 학습하고 있습니다.
mlp.pisik@gmail.com