더 나은 개발자로 성장하기 위한 8가지 제안
서론
웹 백엔드 개발자로 지내오면서 평소에 중요하다고 생각하는 8가지에 대한 내용입니다. 이외에도 더 중요한 요소들이 있을 수 있으며, 지극히 개인의 의견일 뿐입니다.
1. 말하기
첫 번째는 말하기 입니다.
최근에 OKKYCON 2021 협업의 기술이라는 온라인 세미나를 들었는데 컨퍼런스 시작 부분부터 다음과 같은 내용이 나왔습니다.
“개발을 조금 못하는 사람이랑은 일을 할 수 있지만, 말 안통하는 사람과는 일을 못하겠다. 라고 말하는 시니어 개발자분들이 계시다.”
OKKYCON 2021 협업의 기술
그 만큼 개발자들은 개발 능력 뿐만 아니라 커뮤니케이션(Communication)
능력이 정말 중요하다라는 것을 알 수 있게 해주는 대목입니다.
우리들은 기획자, 디자이너, 다른 개발자, 고객 등 여러 사람들과 소통을 해야하는 경우가 많습니다. 이렇게 서로 간에 말(언어) 혹은 도구를 통해 의사소통 하는 것을 커뮤니케이션(Communication)
이라고 합니다. 이런 커뮤니케이션을 효과적으로 하기 위한 여러가지 수단이 있는데 이러한 수단 중 가장 중요한 것 중 하나가 말하기
입니다.
상대방에게 자신의 의사를 정확하게 전달하는 말하기 능력이 필요합니다.
예를들어 신입 개발자가 혹은 경력 개발자가 자신이 모르는 부분에 대해서 질문을하는 경우가 있습니다. A 라는 사람은 “내가 뭘 모르는지? 그리고 이걸 해결하기 위해 어떻게 접근하고 어디서 막혔는지”에 대해서 상대방에게 정확하게 전달합니다. 반면 B 라는 사람은 효과적으로 상대방에게 의사를 전달하지 못합니다. 가령 상대방이 선임이라는 이유만으로 “이 정도만 말해도 알아 듣겠지?” 라고 혼자 스스로 짐작
을 해버린체 상대방에게 말을 합니다. 아니면 자신이 뭘 모르는지에 대해서 조차 제대로 의사를 전달하지 못하는 경우도 많습니다.
저도 신입 때 후자와 같은 실수를 한 적이 있습니다. 당시에 왜 저런 실수를 했는지 돌이켜보면, 깊게 생각하지 않고 머리에 떠오르는 순간 질문을 하는 경우였습니다. 이러한 실수를 반복하지 않기 위해 지금도 상대방에게 질문을 하기 전에 정확하게 의사를 전달할 수 있을지 머릿속으로 생각해 본 다음, 머릿 속에서 조차 버벅거리면, 메모장으로 내 생각을 정리한 후 질문을 하거나 혹은 글로 쓴 내용을 채팅으로 전달하곤 합니다.
자신이 생각한 바를 정확하게 전달 할 수 있으며, 상대방과의 의사소통이 원활한 개발자라면 분명 어느 회사에서든 사랑 받는 개발자가 될 수 있을 것이라 생각합니다.
2. 글쓰기
두 번째는 글쓰기 입니다.
글쓰기도 말하기와 마찬가지로 커뮤니케이션(Communication)
을 잘 하기 위한 중요한 수단 중 하나입니다. 말하기와 글쓰기 즉, 1번과 2번은 커뮤니케이션에 관한 내용입니다.
오히려 저는 글을 선호하는 경우가 많습니다. 그 이유는 히스토리(history)
가 남기 때문입니다.
여기서 설명하는 글쓰기는 소설이나 수필등을 의미하는 것이 아니라 자신의 생각을 전달하기 위한 수단
을 의미합니다.
글을 잘쓴다라는 의미는 쉽게 읽히며, 상대방을 쉽게 설득시킬 수 있는 글을 의미합니다.
가령 블로그 글을 쓰는 경우에도 폰트는 어떤식으로 할지, 강조는 어떤식으로 할 지, 문장과 문단은 어떤식으로 나눌지 등 글을 잘 쓰기 위한 여러가지 수단이 있습니다. 결국 이런 수단은 블로그의 내용을 상대방에게 쉽게 전달하기 위함입니다.
코딩도 똑같습니다. 코딩도 글쓰기와 다름 없습니다. 코드는 요구사항을 표현하는 언어이며 기계와 소통하기 위한 수단입니다. 즉, 코드는 기계와 커뮤니케이션을 하기 위한 수단
중 하나입니다.
시간이 흐를 수록 우리는 기계와의 협업
을 준비해야할 것입니다. 그 수단이 되는게 바로 코드일 것이고, 그 코드를 읽는 것은 기계와 인간일 것입니다. 따라서 가독성 좋은 코드를 짜기 위해 노력해야할 것이며, 그런 코드를 짜는 사람이 미래에도 개발자로 일할 수 있을 거라 생각합니다.
3. 영어 독해
세 번째는 영어 독해입니다.
개발자의 QnA 커뮤니티 중 세계적으로 유명한 Stack Overlfow 가 있습니다. 이 커뮤니티는 질문을 영어로 해야하며, 물론 답변도 영어로 되어있기 때문에 영어 독해 능력이 좋으면 정보를 빠르게 습득할 수 있습니다.
물론 지금은 번역기 기능이 좋아져서 번역기만 돌려도 어느정도 이해할 수 있습니다. 하지만 Stack Overflow 뿐만 아니라 도큐먼트를 읽어야 하는 경우가 생깁니다. 예를 들어 내가 배우고자하는 기술이 나온지 얼마 안된 신 기술인 경우에는 책, 인강보다는 도큐먼트를 보면서 익히는게 가장 효과적일 수 있기 때문에 영어 독해 능력을 키우시는 것을 추천합니다.
더 나아가 영어 듣기 능력까지 키우시면 영어로 강의하는 인강까지 볼 수 있으니 남들 보다 정보 수집 능력이 더 우월해질 것입니다.
4. 도큐먼트 읽기
네 번재는 도큐먼트 읽기입니다.
내가 어떤 기술을 사용하거나 API 를 사용하려는데 모르는 것이 있다면 가장 먼저 찾아봐야 할 것은 도큐먼트입니다. 물론 구글에 검색해 각종 블로그를 통해서 정보를 습득할 수 있지만, 경우에 따라서는 도큐먼트가 가장 빠른 지름길이 될 수 있습니다.
예를 들어, 스프링의 경우에는 시중에 나온 좋은 책도 많고 인강도 많기 때문에 굳이 도큐먼트를 읽지 않더라도 대부분은 책과 인강으로 정확하고 많은 정보를 습득 가능합니다. 하지만 신 기술의 경우에는 도큐먼트 읽는 것이 효과적입니다.
예를 들어 미세먼지와 날씨 공공 API 를 사용하려고하면 해당 API 를 제공하는 사이트에가서 문서를 읽으며 개발하는 것이 가장 빠른 지름길 입니다.
도큐먼트를 읽는 습관을 들이면 나중에 신 기술이 나오더라도 남들 보다 빠르게 정보를 습득할 수 있을 것입니다.
5. 활동
다섯 번째는 활동입니다.
활동은 스터디, 컨퍼런스, 사이드 프로젝트
등을 의미합니다. 이러한 활동들을 GitHub 나 블로그를 통해서 관리를 하게 되면, 이런 것들이 모여서 포트폴리오와 이력서가 됩니다. 즉, 이직에 도움이 되며 경우에 따라서는 인맥일 넓힐 수도 있고 개인 실력을 향상 시킬 수 있는 수단이 되기도 합니다.
이런 활동들을 통해서 얻을 수 있는 점은 다음과 같습니다.
컨퍼런스의 경우 국내 유명인들의 생각을 엿볼 수 있는 좋은 수단입니다. 성공한 사람들은 어떤 식으로 생각하고 일하고 있는지, 성공한 회사 혹은 성공하기 위해 노력하고 있는 회사들은 어떤 식으로 일하고 있는지, IT 업계의 흐름이 어떤식으로 바뀔지 등 좋은 정보들을 습득할 수 있습니다.
스터디의 경우에는 자신에게 이익이 있는지를 먼저 판단하고 스터디를 하는 것을 추천드립니다. 스터디도 여러 형태가 존재하지만 공통적으로 스터디를 하는 이유는 혼자 공부할 때보다 강제성을 부여한다는 것과, 다른 팀원들의 공부 방식, 생각을 엿볼 수 있기 때문에 좋습니다.
사이드 프로젝트의 경우에는 자신이 사용하고 싶은 기술, 툴, 협업도구 등을 사용할 수 있고, 경우에 따라서는 새로운 협업 방식을 습득할 수도 있습니다.
6. 투자
여섯 번째는 투자입니다.
공부에 대한 투자
공부를 하기 위해서는 돈이 필요합니다. 도큐먼트만 보고 공부할 거 아니면 대부분은 책 혹은 인강을 통해서 공부를 하게 됩니다. 개발자는 끊임 없이 공부하고 새로운 것을 익혀야하기 때문에 공부는 평생 달고 가야합니다. 따라서 공부에 대한 투자를 아깝게 생각하시면 안됩니다.
취미에 대한 투자
개인적으로 취미가 하나 쯤은 있어야 한다고 생각합니다. 취미가 있으면 상대적으로 번아웃도 덜 오는거 같고 스트레스 관리가 조금 더 수월 해집니다.
7. 환경
일곱 번째는 환경입니다.
좋은 환경에서 일하는 것이 핵심입니다.
우리가 좋은 대학을 나오려는 이유는 좋은 학벌로 좋은 곳을 취업하기 위함도 있지만, 좋은 인적 자원을 만들려는 이유도 있습니다.
요즘 많은 회사들이 높은 초봉, 좋은 조건 등을 제시하여 좋은 개발자들을 채용하는 경우를 많이 볼 수 있습니다.
왜 좋은 인적 자원이 필요할까? 라고 한번 생각해 볼 필요가 있습니다.
“최고의 복지는 좋은 동료다
” 라는 말이 있을 정도로 회사내 인적 자원이 정말 중요하다라는 것을 알 수 있습니다.
또한 “자신의 미래를 보고싶거든 자기 선임을 보라
” 즉, 회사 선임의 모습이 자신의 미래나 다름 없다는 의미입니다. 이 문구를 생각했을 때 이 회사에 남아야겠다라고 판단되면 자신이 만족할만한 좋은 회사일테고 아닌 경우에는 만족하지 못한 회사일 것입니다.
본인이 좋지 못한 환경에서 개발자로 일하고 있다면, 자신의 선임 모습을 보고 만족하지 못한다면 수단과 방법을 가리지 않고 열심히 노력해서 좋은 환경으로 이직을 해야할 것입니다.
8. 꾸준함
여덟 번째는 꾸준함 입니다.
개발자는 평생 공부해야하는 직업 중 하나입니다. 따라서 본인이 더 나은 개발자로 성장하기 위해서는 꾸준하게 공부하고 노력하는 것이 중요하다고 생각합니다.
정리
더 나은 개발자로 성장하기 위한 8가지 제안은 제가 중요하다고 생각하는 8가지를 모아서 정리한 내용입니다. 어디까지나 개인의 생각이며 더 나은 요소들이 충분히 많이 있을 것입니다. 이 내용을 참고로 본인이 생각하는 중요한 요소들을 만들어 보시는 것도 추천드립니다.