개발자는 시작점이 사실상 끝점이 됩니다.
공사판에 들어와서 시멘트를 바른다고 가정하면 시멘트를 어떻게 물이랑 자갈이랑 혼합해서 섞는지는 학습 영역입니다.
어떻게 쓰는지는 노가다꾼마다 다릅니다.
타일만해도 경력 10년 20년 넘어가는데 타일공들 작업해 놓은거보면 잘하는 사람은 항상 잘하지만
못하는 놈들은 경력 암만 쳐 먹어도 못 합니다.
파견을 가면 여기에 본인 제외하고 다 남들 입니다. 어디서 굴러먹다 온 사람인지 아무도 모릅니다.
거기에 3년차라는 개발자 코드가 알고보면 어딘가에서 뻥튀기 되어서 들어온 신입의 코드일 수도 있는 겁니다.
코드도 규칙성이 없습니다. 이것도 학습의 영역이나 문제는 그 학습의 범위에 있는 겁니다.
자바와 자바스크립트 조차 철학이 다르나 언어 2개 학습하는건 쉬운게 아닙니다. 그런데 어떤게 맞는 규칙인지 찾는
것도 마찬가지에요 시스템이 굴러가는 코드의 규칙성이 잘 된건지 아닌건지 판단하려면 보통 내공이 필요한게 아닌거죠.
삼계탕이 좋냐 후라이드 치킨이 좋냐는 선택에 놓이면 둘 다 사실 좋아요.
그러나 "칼로리 낮은게 좋지"라는 원칙을 반영해서 삼계탕을 선택하는 겁니다.
그렇게 팀이 "칼로리 낮은게 좋아"라는 원칙이 되면 그 원칙아래서 선택이 발생하고 그것이 규칙이 되어가는거죠.
기술문서에서 trade off라는 말을 들어보셨을 겁니다. 해당 기술이 가진 원칙에 따라서 선택을 하는 겁니다.
이런 것들은 신입이 '노~~~오력'을해서 극복가능한 수준을 아주 뛰어넘어 버리는거죠.
구현능력은 말 그래도 인풋 넣으면 아웃풋 나오는겁니다.
RN배우면 RN앱 만드는거고 Flutter배우면 플러터앱 만드는거고 Spring하면 Spring백엔드 만드는거죠.
이런 구현능력으로 슈퍼마켓은 만들어냅니다. 그런데 빌딩은 절대로 못 만듭니다.
토이프로젝트 정도는 만들고 포폴정도는 만들죠.
그런데 11번가 쿠팡을 비롯한 규모있는 소프트웨어 통제하는 개발자로는 성장자체가 안 됩니다.
벽돌을 짱돌, 조약돌으로 부르는 팀을 가지고 뭔놈의 빌딩을 만듭니까..-_-
그래서 솔루션회사들이 알고리즘과 코드레벨에 목숨을 거는 겁니다.
'구현'이 아니라 '어떻게 구현'했는지가 핵심인거죠.
그런데 1년더 취업준비하는 것을 실패로 보시는데 아마 외주회사 1년 다녀보시면 알겁니다.
개인공부와 본인의 코드를 돌아볼 시간이 없습니다.
오히려 알바뛰면서 집에서 남은 시간에 공부하는 사람보다 코드레벨 측면에서는 더 떨어집니다.
문제는 더 높은 레벨의 회사에 취업한 개발자와 성장 속도의 차이가 심합니다.
외주회사 1년 다녀도 솔루션 회사입장에서는 본인들이 보유한 신입보다 코드레벨이 낮다고 생각합니다.
왜냐면 본인 회사에서는 20년차 CTO가 구축해놓은 시스템으로 신입이 들어와서 "무지성 따라치기"를 하는데
외주회사 다닌 사람들 포폴보면 그 따라치기 하는 신입코드보다 밥맛이니깐요.
이렇게 1년 늦게 들어간 신입은 20년차 CTO가 구축한 코드레벨을 무지성으로 따라치고 흉내내면서 배워나갑니다.
당장은 이해가 안되도 시간이 흐르면 '아!'하는 순간이 오는거죠.
그런데 외주회사 3천에서 출발한 개발자는 어떻게 될까요?
개발은 경력 1년 먼저 올리는게 문제가 아닙니다. 운동장 한바퀴 돌면 도착할 거리를 40바퀴 돌고 가는 것도 흔하게
일어나는게 여기 업계고 누구는 5년차인데 플랫폼 규모의 쇼핑몰을 만드는데 누군 5년차인데 프론트도 잘 못하는게
흔한 일입니다.
물론 연봉이 중요한건 아닙니다. 그 회사의 시니어 그리고 그 회사 코드를 만들어가는 방향이 중요한거죠.
그런데 결국 시니어 있고 코드레벨이 중요한 회사는 연봉이 낮지 않죠.