좋은 문화를 가진 회사가 개발자에게 요구하는 역량은?

  • 꾸준히 학습하고 성장하기 위한 노력을 하는 개발자
  • 프로그래밍 자체에 대한 열정이 있는 개발자

면접에서도 진정 프로그래밍을 좋아하는지가 드러난다. 삽질을 한 경험 등을 이야기할 때 흥분하여 말하는 표정과 몸짓에서 그것이 드러나게 된다.

  • 다른 사람이 읽기 좋은 클린코드, 유지보수하기 좋은 코드를 구현하는 능력

단기 프로젝트만 단발성으로 수행하고 유지보수를 할 기회가 없다면 그러한 능력이 길러질 기회 자체가 없다. SI나 일부 교수님들은 프로젝트를 빨리 구현해내는 능력만을 우선시하는 경우가 많다. 하지만 실제로 초기 개발보다 유지보수에 대한 역량이 몇 배나 더 어렵고 중요하다.

  • 다른 사람들과 원활히 소통하고, 팀워크를 만들어갈 수 있는 협업 능력

소프트웨어 복잡도도 높아졌고, 유지보수가 중요해진만큼 의사소통과 협업 능력이 훨씬 더 중요시된다.

  • 자기 주도적으로 문제를 해결하는 능력

레거시 코드가 쓰레기이지만 자기 주도적인 신입이 이것을 해결해주기를 바라는 마음

꾸준한 학습, 성장, 프로그래밍에 대한 열정

  • 의지력보다는 환경(상황)을 바꿔 꾸준한 학습, 성장 - 해빗, 최고의 변화는 어디서 시작되는가

아무리 의지가 있더라도 환경이 뒷받침되지 않는다면 좋은 습관을 가지기 힘들다. 대신에 환경을 바꾸는 것이 훨씬 빠른 성장을 이끌 수 있다.

이 부분은 격하게 공감하는 부분이다. 개인적으로 수도권이 아닌 지방에서, 그것도 집에서 혼자 공부를 하는데 큰 어려움을 겪었다. 하지만 큰 결심을 하고 부트캠프를 찾아보았고, 코드스쿼드라는 교육 프로그램에 참가하게 되었다. 확실히 '스터디'라는 환경은 시간과 공간의 제약, 집이라는 마찰력 까지도 무시할 만큼 학습에 대한 원동력이 되어주었다. 더불어 '함께 자라기'의 미학까지도 꺠닫고 있다.

다른 사람이 읽기 좋은 클린코드, 유지보수하기 좋은 코드를 구현하는 능력

  • 목적의식있는 연습 - 1만 시간의 재발견
  • 프로그래머로 살아가는 평생을 통해 도전해야할 과제

A라는 방향으로 구현해보고, B라는 방향으로도 구현해보는 등 의식적인 노력이 있어야 발전할 수 있다.

다른 사람들과 원활히 소통하고, 팀워크를 만들어갈 수 있는 협업 능력

  • 주니어일 때 좋은 문화를 가진 팀 속에서 일 해보는 경험
  • 커뮤니티 스터디 활동을 통해 다른 사람들과 소통하는 연습

주니어일 때 1~2년 주기로 이직하는 것이 더 좋은 경험이 되기도 한다.

자기 주도적으로 문제를 해결하는 능력

  • 프로그래밍을 대하는 자세, 삶을 대하는 자세에 변화
  • 전문가인 프로그래머로서 "나는 어떻게 일할 것인가?"에 대한 고민

우리나라의 교육을 받은 사람은 자기 주도적으로 문제를 해결하려는 자세가 기본적으로 약하다. 주니어일 때 이러한 자기 주도적인 연습이 많이 필요하다. 마치 근육을 키우는 것처럼 열심히 하다보면 나중에 내재화 될 것이다.

세 가지 역량 모두 기존의 학습 방식으로 키울 수 있는 역량이 아니다. 지금까지 가지고 있던 직업, 일, 삶의 대한 선입견에 의구심을 가지고 접근해야 할 때!

Q) 위 역량 중 가장 핵심이 되는 역량은 무엇일까?

A) 자기 주도적으로 문제를 해결하는 능력이라 생각한다. 주변에서 발생하는 문제를 해결하려면 성장, 클린코드, 소통, 협업에 관심을 가질 수 밖에 없다.

누군가 변화를 만들기를 기대하 말고 내가 주도적으로 변화를 만들 때이다. 실패해도 괜찮다. 실패하기 전보다는 나는 한 단계 성장한다.

실패의 책임을 묻는다면 그만둔다. 그러한 회사는 좋은 회사가 아니다. 좋은 회사는 실패해도 같이 도전하는 사람을 원한다.