개발자가 되고 싶어요.

paul lab
8 min readApr 2, 2022

--

이번주에는 하버드 합격 소식, Facebook(Meta) 합격 소식 등 인연이 되신 분에 기쁜 소식을 들을 수 있었습니다. 어제는 학생에서 직장 동료로, 육지에 있으신 두 분이 저희 회사 입사로 제주로 이주를 하셨고요. 대단한 학교나 회사가 아니더라도 자신의 업을 찾으시고 그것에 몰입하셨다는 것에 진심어린 응원을 보냅니다. 지금 이 글을 보고 있는 여러분도 곧 업을 찾게 되실 겁니다. 또 앞서 언급한 학교나 회사처럼 꿈에 그리는 무언가를 달성하는 주인공이 되실 겁니다.

비전공자에서 카카오 입사를 하신 분이 있으십니다. 제가 차린 학원 첫 학생에서 강사로, 그리고 직원으로도 잠시 오셨었구요.

개발 잘 하고 싶어요. 그런데 무엇을 해야할지 모르겠어요.

다행히 개발을 잘 하고 싶다고 말하셨죠. 이런분에게는 전략이 필요합니다. 아직 길을 찾지 못하고 방황하는 분도 많으십니다. 이분은 무엇을 원하는지 자신에게 솔직하게 물어야 할 것입니다.

호리에 노부히로는 마음이 방황하고 있을 때 스스로 길을 찾을 수 있도록 5가지 질문을 제시합니다.

  1. (want) 내가 얻고 싶은 결과는?
  2. (why) 나는 왜 그것을 얻고 싶은가?
  3. (strategy) 어떻게 하면 그것을 실현시킬 수 있는가?
  4. (meaning) 그것은 내 미래에 어떤 의미가 있을까?
  5. (action) 지금 내가 할 일은?

Want, Why

개발자가 되고 싶으신 것은 맞나요? 왜 되고 싶은지도 스스로 물어야 합니다. 긴 여정이 될 테니 말이죠. 1번과 2번은 외부의 도움으로 주입이 될 수 있는 성질은 아닙니다. 자신에게 솔직하게 물어주세요.

4번 ‘그것은 내 미래에 어떤 의미가 있을까?’ 또한 모두의 답이 다를 것입니다. 따라서 이 글에서는 언급하지 않습니다.

꼭 글로 표현되지 않더라도 강렬한 충동, 쉽게 사라지지 않는 열망으로 1번과 2번이 다가오기도 합니다.

Strategy

개발자가 되기 위해 여러 전략을 세울 수 있습니다. 전략을 세우지 않고 무작정 파고 들어 결국 개발자가 되시는 분도 있습니다. 그것도 하나의 전략이죠. 하지만 이러한 저돌적인 전략으로 문법에 함몰되기 시작하면 필히 절망에 가까운 좌절감이 오게 되어 있습니다. 왜냐하면 프로그래밍 언어와 Computer science를 학문으로 다가가면 정말 방대하고, 어렵거든요.

아래 로드맵을 큰 틀에서 한 번 봐주셨으면 좋겠습니다.

물론 저 로드맵에 개인적 목표에 따라 더하고 없어지는 것들이 있을 겁니다. 더하고 없어지는 것은 목표로 잡은 회사들이 어떠한 인력을 원하는지 채용공고를 보시면서 추려가시면 됩니다. 적어도 20~30여개는 살펴보시길 권해드립니다.

자신이 공부하고 있는 과목이 로드맵 상에 어느 부분인지 자주 상기하셨으면 좋겠습니다. 그리고 너무 완벽히 한 과목을 채우기 보다는 한 사이클을 먼저 돌아보시는 것을 권해드립니다.

나는 OO도 제대로 이해못하는데 OO개발자가 될 수 있겠어?

한 사이클을 돌아보지 않고, 한 과목을 깊게 연구하는 분이 간혹 이런 얘기를 하는 경우를 보았습니다. 또 어떠한 결과물 없이 한 언어를 깊게 학문적으로만 파고 들어가시는 경우도 보았지요.

실무에 필요한 문법이 모든 문법(또는 기술)이 아닙니다. 또한 우리는 언어(또는 기술)를 사용하기 위해 배우는 것이고, 무엇보다 하나의 결과물을 만들기 위해 배워야 할 부가적인 지식들이 많습니다. 생각하신 것보다 더 많아요.

그리고 가장 중요한 것이 하나 있습니다. 여러분이 한 사이클을 도는 사이(하나의 결과물을 만들어보는 사이) 여러분이 원하는 개발자의 모습을 좀 더 구체화 할 수 있다는 것입니다.

그전에 내가 관심있다고 생각했던 분야보다 더 재미있는 분야가 있다거나, 내가 관심있어 하는 분야가 좀 더 세부적인 분야라는 것을 알게 되었다거나, 다른 길이 보일 수도 있고, 내가 생각했던 길이 전혀 아닌 것을 깨닫게 될 수도 있죠.

좀 더 구체화가 되었다면 반복해야 합니다. 반복해서 얻어지는 것은 단순 문법, 개발의 흐름뿐만 아닙니다. 자신감이 채워집니다. 이정도는 개발할 수 있겠다 하는 객관화된 자신감, 더 멋진 것도 개발할 수 있다는 주관적 자신감도요!

정리를 해보자면 아래와 같이 될 것입니다.

  1. 큰 그림 그리기
  2. 시장에서 원하는 인재상 찾아보기
  3. 언어에 함몰되지 않게 공부하면서도
  4. 하나의 결과물 만들어보기
  5. (완성도 높은) 여러 결과물 만들어보기

3번에서 좀 더 부가적인 설명을 해드리자면 80%를 채우셨다면 20%를 채우는 것은 그 전 80%를 채우는 일보다 어려울 것입니다. 따라서 그 에너지를 다른 과목에 쏟으셔서 얼른 4번으로 넘어가시는 것을 권해드립니다. 실전을 경험해보며 부족한 것이 무엇인지 또 나에게 필요한 지식이 무엇인지 경험해볼 수 있기 때문입니다.

위에 언급한 것을 하면서도 병행해야 할 것이 있습니다. 지금 생각나는 것은 2가지 정도가 될 것같습니다.

  1. 이력서 쓰기
  2. 입사문제 풀어보기

이력서를 미리 써놓으세요. 기회가 갑자기 오는 경우도 있고, 준비가 덜 되었음에도 필히 잡아야 하는 경우가 생기기도 합니다. 마찬가지 이유로 입사문제를 주기적으로 풀어보실 필요가 있습니다.

예를들어 요즘 Front-end 개발자 Test로 아래와 같은 구현 테스트가 많이 나옵니다.

완성된 코드의 폴더트리를 살펴볼까요?

|   index.html
|
\---src
|
+---assets
| cart-btn.svg
| icon-check-box-OFF.png
| icon-check-box-OFF.svg
| icon-check-box-ON.png
| icon-check-box-ON.svg
| ...
|
+---javascript
| | app.js
| | index.js
| |
| +---components
| | | index.js
| | |
| | +---Buttons
| | | cartButton.js
| | | closeButton.js
| | | index.js
| | | ...
| | |
| | +---Cart
| | | couponList.js
| | | couponSection.js
| | | index.js
| | | ...
| | |
| | +---Input
| | | index.js
| | | quantityInput.js
| | |
| | +---ProductDetail
| | | index.js
| | | messageModal.js
| | | optionList.js
| | | ...
| | |
| | +---ProductInfo
| | | index.js
| | | productImage.js
| | | ...
| | |
| | \---ProductList
| | index.js
| | productList.js
| |
| +---pages
| | cart.js
| | index.js
| | productDetail.js
| | productPage.js
| |
| \---utils
| checkDiscountRate.js
| href.js
| index.js
| ...
|
\---style
reset.css
style.css

대부분 js 파일입니다. 문제 요구사항에 SPA 구현으로 컴포넌트화 하여 구현하도록 되어 있고요.

예를 들어 HTML, CSS, JavaScript를 공부하여 간단하게 페이지 구현할 수 있을 정도로 공부를 하신 분들은 매우 어려운 문제가 될 것입니다.

핵심은 ‘이정도 준비해야 한다!’가 아닙니다.

  1. 원하시는 기업에 따라 준비해야 하는 과목이 다릅니다.
  2. 기업마다, 연봉마다 난이도가 상이합니다.(너무 높은 곳을 목표로 하여 준비하고 있는지도 살펴봐주세요.)
  3. 만약 원하시는 기업에 입사문제 난이도가 높다면 문제 풀이 능력은 지속해서 풀어 쌓아야 합니다. 벼락치기가 안됩니다.

Action

지금 무엇을 하실 예정이시죠? 오히려 더 모호해지지 않으셨나요? 기간을 정하시고 월간, 주간, 일간으로 무엇을 할지 한 번 계획해보세요. 물론 계획(전략)처럼 잘 안될 가능성이 매우 큽니다. 중간에 우선순위가 바뀌는 것이 있을 것이고 큰 그림이 바뀌는 경우도 있을 것입니다.

중요한 것이 무엇일까요? 의지입니다. 복잡성 속에서 명확한 의지를 등불삼아 자신만의 길을 찾아가세요.

복잡성은 시간이 흘러 정리됩니다. 근육과 관성이 붙을테고, 실력만큼 시야는 넓어지고 지난 노력들을 스스로 뿌듯해하는 날이 곧 올 것입니다.

마치며

모두가 같은 길을 갈 수 없습니다. 자신만의 속도가 있고, 이해의 정도가 다르며, 기존에 해왔던 지식이 얼만큼 도움이 될지 공부를 하기 전까진 알 수 없습니다.

좀 더 장기적으로, 긴 호흡으로 누구의 길도 아닌 여러분의 길을 준비하시길 바랍니다. 순간에 투쟁하듯이 모든 에너지를 쏟지 마세요.

자극되는 말을 부탁드려요.

수강생에게 자주 듣는 이야기입니다. 그러면 저는 대부분 아래와 같이 말합니다.

코딩은 일상이에요. 매일매일 자극만으로 일상을 움직일 수는 없습니다. 하루 이틀은 그렇게 움직일 수 있지만요. 코딩과 학습을 습관화 하세요.그냥 하는겁니다.

긴 호흡으로 가야 하니까요. 걷다보면 도달하게 되어 있습니다. 포기치 않았는데 정상을 못보신 적이 있으셨던가요?

--

--