해당 내용은 아래 영상을 보고 요약 및 재구성하여 작성하였습니다.
https://www.youtube.com/watch?v=JyAiWo4ghVg
해당 세션을 발표하신 발표자님은 임희진 / Foundation Leader이시고, 좋은 커리어를 가지고 계시기 때문에 배울 부분이 많지 않을까 생각하였습니다.
1. 왜 소프트 스킬을 길러야 할까요?
하드스킬(프로그래밍, 아키텍쳐 설계, 트러블슈팅)이 더하기라면, 소프트스킬(커뮤니케이션, 시간 관리, 문제해결 능력, 메타인지 능력)은 곱하기 스킬이라고 합니다.
하드스킬은 해당 직무를 수행 위해 필수적으로 알아야 하는 지식이라면, 소프트스킬은 하드스킬을 빠르게 학습하기 위한, 하드스킬을 이용해 문제를 해결하기 위한 지식인것 같습니다.(2-3년 뒤에 회고를 했을 때, 알 수 있을 것 같습니다...)
2. 주니어 개발자를 위한 소프트 스킬 5가지
1) 그림으로 소통하기
IT 기술은 너무 복잡하고, 상대방의 배경지식에 따라 설명해야 하는 깊이가 달라 커뮤니케이션을 하기 어려우며, 구두나 텍스트로 표현하는 과정에서 정보의 유실이 생길 수 있습니다. 따라서, 그림으로 소통하는 것을 추천하셨습니다.
whimsical라는 도구가 있는데, 이외에도 Excalidraw, darw.io 툴도 시각화하는 데 있어 사용해 보면서 추후에 블로그에 정리하겠습니다.
whimsical에 대해서는 아래 링크를 참고하시면 될 것 같습니다.
https://yozm.wishket.com/magazine/detail/1099/
2) 나만의 ToDoList 만들기
커리어의 성장은 결국 우리가 평생 해내온 TODO의 결과물이기 때문에, 나만의 TODO List 시스템을 만드는 것을 추천하셨습니다.
ToDoList는 마치 나의 뇌 백업처럼 동작합니다. 굳이 내가 오늘 해야 할 일을 생각하지 않고, ToDoList만 보고 그냥 실행만 하면 되는 최적화된 상태를 구축하는 것입니다. 이를 통해 바쁜 일정에 내가 해야 할 일을 까먹지 않고 실행할 수 있습니다.
ToDoList 시스템을 구축할 때, 고려해야 할 2가지가 있습니다.
1. 접근성
회사든, 집이든, 휴대폰이든, PC이든, Mac이든 Windows든 모두 동기화되어 접근이 용이해야 합니다.
2. 단순성
복잡한 기능이 너무 많으면, 도구를 공부하느라 시간을 쓰게 되고, 사용하기 어려워 손이 안 가게 됩니다.
발표자님은 Google Task를 통해서 ToDoList를 구축하셨고, 일간, 주간, 월간, 연간으로 나누어서 할 일을 관리하셨습니다. 저는 TickTick을 사용하는데, 일간, 주간, 월간, 연간으로 나누는 시스템이 괜찮은 것 같아서 추후에 적용해 볼 생각입니다.
3) 코드를 보는 안목 기르기
코드를 보는 안목을 일반인이 예술작품을 보는 것과 전문가가 예술작품을 보는 것에 비유를 해서 쉽게 설명을 해주셨습니다.
저는 최근에 재밌게 봤는 흑백요리사에서 리소토를 만드는데, 심사위원은 완벽한 리소토이다.라고 생각하는 반면에 일반인은 밥이 설익은 것 같다라고 생각하는 것을 보고 이게 주니어와 시니어의 차이가 아닐까 라는 생각을 하였습니다.
아무튼 좋은 코드를 보는 안목을 기르기 위해서는 실제로 사용되는 좋은 코드를 보고 공부하거나, 좋은 코드를 작성하기 위한 가독성, 리팩토링, 디자인 패턴을 다루는 책을 읽어야 합니다.
그래서 위와 같은 습관 중에서 몇 가지를 채택해서 학습에 적용을 시키면 좋을 것 같아 보입니다.
4) 왜? 라고 묻기
개발자는 최소한의 비용, 최소한의 인력, 최소한의 시간으로 문제를 해결해야 합니다. 따라서 최고의 개발은 개발을 하지 않고 문제를 해결할수 있어야합니다. 이러한 문제의 본질을 파악하기 위해서는 왜?라는 질문을 해야합니다. 특정 프레임워크 5 WHY라는 기법이 있을 정도로 WHY라는 질문은 문제를 본질을 파악하는데 매우 중요합니다.
커뮤니케이션을 할 때도, 단순히 요청하는 부분에 대한 문제해결이 아닌 왜?라는 질문을 통해 문제의 본질을 파악해서 추가적인 개발 없이 기존에 있던 기능을 활용해서 해결할 수 있습니다.
나 또한 마찬가지로 내가 왜? 이러한 말을 했는지 명확하게 전달합니다.
5) 나만의 개발 공부법 찾기
사람마다 개발 공부하는 법이 2가지로 나뉩니다.
1. 책과 이론을 바탕으로 공부하는 이론파
2. 실습을 바탕으로 공부하는 실전파
발표자님의 공부법은 위의 그림과 같습니다.
해당 기술을 공부하기 위한 얇은 책이나 목차를 읽어서 전체적인 그림을 파악하고(해당 과정에서 해당 기술이 왜 필요한지 기존 기술과 비교해서 학습하는 것을 추천), 튜토리얼 코드를 통해서 이론적인 지식들을 실습을 통해 기술을 익히는 방향을 추천하셨습니다.
결국에는 시행착오를 통해서 나와 가장 잘 맞는 공부법을 찾아야 하고, 공부법에 이론/실습을 편식하지 않도록 주의해야 한다는 것인 핵심입니다.