개발자라면 어떤 기초 지식을 습득해야 하고 어떤 사고방식을 갖춰야 할까?
개발자의 기본은 영어, 수학, 물리이다. 이 중에서도 수학을 잘 알아야 한다. 알아야하는 지식이 너무나도 많지만 개발자리는 직업은 평생 공부 하는 직업이기에 공부가 싫으면 다른 길을 고민하는 편이 시간 낭비를 줄이는 방법이다. 강조하자면 세상이 빠르게 변하므로 새로운 하드웨어, 새로운 운영체재, 새로운 프로그래밍 언어를 빠르게 익힐 수 있는 능력을 갖추는데 집중해야한다.
일잘러가 되려면 왜 이 일을 해야되는지, 이 일을 하다가 말면 어떻게 되는지, 어떤 방식으로 일 하는게 최선인지 문제의 상하좌우까지 고민하는 사고방식을 습관으로 들이면 모든일을 더 깊이 들여다 볼 수 있다. 이유를 생각하고 근거를 평가하고 문제를 해결한 뒤 합리적인 결정, 그리고 상황 분석까지 하며 이 크리티컬 싱킹을 순환구조로 계속 돌려주어야 한다. 그렇다면 그런 기여가 자연스럽게 자신을 성장시킬 것이다.
개발자의 도구는 역할과 프로젝트마다 달라져야하기에 특정 언어나 도구와 사랑에 빠지면 안된다. 게임클라이언트 개발자라면 유니티와 C# 혹은 언리얼과 C++을 알아야하고 서버 개발자라면 자바나 닷넷이나 파이썬을 알아야 한다. 도구는 어떤 자동화 프로세스를 채택하느냐에 따라 충분히 달라질 수 있기에 기술 흐름을 조망하고 큰 흐름을 계속 따라가야 한다.
한가지를 깊게 파서 잘하는 인재가 각광받던 시절이 있다. 변화가 빠른 지금은 적어도 하나는 깊게, 나머지는 골고루 잘 아는 T자형 인재가 각광 받고 있지만 이제 T자를 넘어 파이자형 인재라는 말도 나왔다. 하나가 아니라 두가지에서 전문성이 있어야 한다는 이야기이다. 백엔드 개발자도 프론트엔드 개발을 할 줄 알아야한다. 다만 이렇게 파이자형 인재가 되려면 눈물나는 노력을 필요로 한다. 정말 힘들기 때문에 공부는 할 때 해야한다.
우선 개발에 대한 기본 지식으로 다양한 분야와 상세지식을 필요로 한다는 부분에서 "지금 내가 swift를 배운다고 하지만 배울 것이 이것뿐만이 아니구나" 하며 알게 된 부분에서 이 글을 쓰신 개발자님에게 고마움을 느꼈다.
나는 어디를 가던 일잘러가 되고 싶어하는 마음이 크다. 그렇기에 어느 면접을 가게 되더라도 그냥 시킨것만 했다는 말은 절대로 하고 싶지 않다. 이 글을 보며 기본적인 개발 지식을 익히고 나의 대한 주인의식을 좀 더 가질 수 있게 도와야겠다라는 생각을 했다. 그리고 그런 기여가 자연스럽게 스스로를 성장시킬 수 있도록 나의 성장에 포커스를 맞추며 공부할 것이다.