《좋은 000에게 어떤 능력이 필요한가?》 원문에서 000은 개발자이지만, 디자이너나 리서처, 마케터로 치환해도 유효한 이야기입니다. 뛰어난 개발자와 일을 하는 경우가 많다면, 뛰어난 개발자에게 필요한 능력을 갖출 때 비로소 협업을 잘할 수 있기 때문입니다. 1️⃣ Computational Thinking - 문제를 도출하는 능력 문제를 컴퓨터를 이용해 풀 수 있는 형태로 정리하고, 해결 방법을 도출할 수 있는 능력을 말합니다. 데이터 구조, 알고리즘, 머신 러닝 등 주어진 문제를 푸는 방법에 대한 훈련도 중요하지만, 풀고자 하는 현실의 문제를 컴퓨터를 이용해서 풀 수 있는 형태로 도출할 수 있는 능력이 정말 중요합니다. 좋은 개발자라면 문제 해결 방법에 대한 훈련뿐만 아니라 문제를 도출하는 훈련도 필수입니다. 그렇지 않으면 남이 다 풀어놓은 문제를 똑같이 따라 푸는 것 밖에 하지 못하게 됩니다. 2️⃣ Coding Skill - 문제 해결방법을 표현하는 능력 앞에 1번에서 도출한 해결 방법을 논리적이고 간결하게 코드로 표현하는 능력을 말합니다. 이해하기 쉬운 코드, 유지보수가 쉬운 코드, 테스트하기 쉬운 코드를 작성하기 위해서는 좋은 코드를 많이 읽고, 내가 짠 코드를 잘하는 동료에게 리뷰받는 과정이 필수입니다. 3️⃣ Communication Skill - 소통하는 능력 커뮤니케이션 능력은 모든 직군에서 중요한 능력이겠지만, 특히 다른 개발자와 협업이 많은 개발자가 반드시 갖춰야 하는 능력입니다. 자기 생각을 논리적으로 말과 글로 표현하는 능력, 다른 사람의 의견을 듣고 이해하고 논의를 통해 더 좋은 결론을 도출할 수 있는 능력이 여기에 포함됩니다. 커뮤니케이션 능력은 주니어 개발자와 시니어 개발자를 나누는 가장 큰 차이이기도 합니다. 4️⃣ Domain Knowledge - 업에 대한 이해도 해결하고자 하는 문제 대한 깊이 있는 이해 없이는, 코딩 능력이 아무리 뛰어나도 문제를 어설프게 해결할 수밖에 없습니다. 개발자는 기본적으로 내가 만드는 제품과 서비스에 대해 도메인 전문가 이상의 지식을 가져야 합니다. 무엇을 / 어떻게 / 왜 만들어야 하는지 다른 누군가가 다 이야기해주고, 그걸 코드로 표현만 해서는 제대로 된 제품과 서비스를 만들 수 없습니다. 발생할 수 있는 모든 시나리오와 코너 케이스를 챙길 수 있는 사람은 개발자뿐이기 때문입니다.

좋은 개발자는 어떤 능력이 필요한가?

Brunch Story

좋은 개발자는 어떤 능력이 필요한가?

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2021년 12월 12일 오전 7:35

댓글 0