개발자한테 첫 직장에서 첫 언어, 첫 직군, 첫 프레임워크는 대학 입시 때 전공 선택만큼 중요하다. 개발자 경력 전체에 영향을 미치기 때문이다.
우연한 선택과 경로의존성
좋아하는 것 또는 하고 싶은 것이 명확한 친구라면 우연이 영향을 덜 미친다. 하지만 별생각이 없다면 우연한 선택이 인생 전체에 영향을 미친다. 이 글을 읽고 있을 여러분들은 한국어가 모국어인 분들일 것이다. 그렇다면 왜 한국어가 모국어인가? 맞다. 우연이다. 우연히 한국에 태어나서 그런 거다. 대부분 사람들은 평생 한국을 벗어나기 어렵다. 한국이 살기 좋아서가 아니라 한국을 떠나면 포기해야 할 기회비용이 크기 때문이다. 대부분 사람들은 우연한 결과에 따라 경로의존적으로 살아간다.
첫 언어
첫 언어는 정말 중요하다. 그 언어를 중심으로 사고하게 되기 때문이다. 학원에서든 대학에서든 잠깐 배운 경험이 아니라 본격 실무에 어떤 언어를 쓰게 되면 그 언어가 모국어처럼 된다. 사고 자체를 해당 언어의 특성에 맞춰서 사고 하게 된다. 예를 들어 파이썬이 첫 언어라면 동적타입 언어가 사고의 기준이 된다. C나 자바 등 정적타입 언어가 가진 장점에 대해서 제대로 이해하기 어렵다. 이해하기 위한 시간과 경험이 부족하기 때문이다. 거꾸로 정적타입 언어인 자바가 첫 언어였다면 동적타입 언어가 가진 장점을 이해하기 어렵다.
첫 직군
취업할 때 직군을 선택하게 된다. 개발자라면 보통 백엔드, 프론트엔드, 앱(iOS, Android) 3가지 중 선택하게 된다. 각 직군의 특성에 대해서 깊이 있게 이해하기보다는 각 직군이 갖고 있는 이미지에 따라 선택하는 경우가 많다. 난 꾸미는 걸 좋아하니 프론트엔드, 아이폰 좋아하니 iOS 같은 식으로 말이다. 처음 별생각 없이 선택한 직군에서 벗어나기란 정말 어렵다. 경력이 쌓일수록 더더욱 어려워진다. 각 직군마다 특성도 다르고 프레임워크도 다르고 언어도 다르다. 프론트엔드인데 백엔드로 넘어가려면 그나마 Node.js 쪽으로는 넘어가기 쉬워도 자바 계열 Spring 등 언어가 완전히 다른 경우로는 넘어가기가 쉽지 않다. 새롭게 언어 프레임워크에 익숙해져야 하고 이직 시 신입급으로 들어가야 한다. 그 동안 쌓아온 경력, 연봉 등을 포기하기에는 기회비용이 너무 커서 직군 변경은 정말 어렵다.
꾸미는 걸 좋아하지만 꿈은 최고기술책임자(CTO)라는 사람이 프론트엔드를 첫 직군으로 선택했다면 잘못된 선택일 가능성이 크다. 프론트엔드 출신 CTO는 정말 드물기 때문이다. 한번 찾아보자. 대부분 대규모 데이터, 트래픽 처리 경험, 아키텍처 설계 및 운영 경험이 있는 백엔드 개발자가 CTO다.
첫 프레임워크
백엔드든 프론트엔드든 프레임워크 선택은 정말 중요하다. 범용적인 프레임워크를 쓰고 있는 회사가 첫 직장일 때 이직 시 유리하다. 예를 들어 뜨고 있지만 아직 사용하는 회사가 적은 플루터Flutter를 쓰는 회사에 취업했다면? 리액트React를 쓰는 회사로는 이직이 어렵다. 이직해도 역시나 신입 취급을 받게 된다. 잘 모르니 신입 취급이 당연하다. 결국 경력을 인정받기 위해서 플루터 쓰는 회사로 이직하려고 알아보면 별로 없다. 선택의 폭이 확 줄어들게 된다.
통계적 접근의 필요
실수를 줄이고, 선택의 폭을 넓히려면 첫 선택에 정말 신중해야 한다. '이게 나한테 맞을 거 같은데'라는 직감도 중요하지만 미래 하고 싶은 일, 미래의 수익, 이직 가능성, 선택의 폭도 모두 고려하는 게 좋다. 그러기 위해서는 통계적 접근이 필요하다. 어느 직군이 연봉이 더 높은지, 어느 언어, 어느 프레임워크가 인기가 많은지 등등.
가고 싶은 유명 회사들의 사용 언어, 프레임워크 등을 미리 미리 조사하는 게 좋다. 예를 들어서 백엔드 직군으로 가기로 마음 먹었다면 가고 싶은 회사들의 목록을 뽑고, 해당 회사들의 주 언어와 프레임워크를 모두 정리하는 식이다. 배민에 가고 싶은데 파이썬 장고를 공부하고 있다면? 배민에 갈 수 없다. 배민은 스프링을 쓰니까. 단순 통계에 의지하고 싶다면 해마다 나오는 개발 언어 인기도, 사용 프레임워크 순위 등을 눈여겨 보는 게 좋다. 2022 프로그래머스 개발자 설문 조사, 2022 Stackoverflow Developer Survey 같은 것 말이다.
첫 직장보다 중요한 첫 언어, 직군, 프레임워크
사람마다 다르겠지만 난 첫 직장보다 언어와 직군, 프레임워크가 개발자 인생에 큰 영향을 미친다고 생각한다. 다른 직업과 달리 개발자는 기술자, 엔지니어니까 이직이 쉽다. 기회가 되면 좋은 곳으로 이직할 수 있다. 그 이직 가능성, 성장 가능성을 결정하는 것이 언어와 직군, 프레임워크니까.