
2015년부터 유튜브 영상을 꾸준히 봐왔지만, 지난 10년 동안 진짜 인생에 도움이 된 영상은 손에 꼽을 정도였다.
최근에 한 영상을 봤는데, 13년 경력의 시니어 개발자가 해 준 이야기는 나에게 꼭 필요한 조언이었고, 수강생들에게도 전해주고 싶은 내용이었다. 부족한 영어 실력이지만 정말 두고두고 보고 싶어서, 번역과 함께 글을 써보려고 한다.
이 글을 작성하게 해 준 Pete에게 정말 감사의 말씀을 드립니다. I truly appreciate it, Pete.
원본: It took me 10+ years to realize what I’ll tell you in 8 minutes
10년 넘게 걸려 깨달은 것을 8분 만에 알려드릴게요
저는 2012년부터 코딩을 해왔고,
정말 누군가 이 10가지를 미리 알려줬다면
수년을 고생하지 않았을 거예요.
혹시 지금 막히고, 압도되고, 스스로를 의심하고 있다면
제 경험이 여러분의 10년을 아껴줄 수 있을지도 모릅니다.
안녕하세요, 저는 Pete입니다.
13년 넘게 프로그래머로 일하며,
수백 명의 초보 개발자들이 제대로 코딩을 배우고
IT 업계에 입문할 수 있도록 도왔습니다.
모든 걸 다 알 필요는 없습니다
이게 제가 가장 먼저 들었어야 했던 이야기입니다.
정말이에요, 모든 걸 알 필요 없습니다. 전혀요.
저는 처음 시작할 때, 진짜 개발자는
JavaScript 전체를 외우고 있는 줄 알았어요.
마치 다른 종족인 줄 알았죠.
그들은 눈뜨자마자 베개 밑에 있는 키보드를 꺼내
완벽한 JavaScript 코드를 뚝딱 쓰는 줄 알았습니다.
스포일러입니다만, 아니에요. 그런 사람 없습니다.
비유하자면, 요리를 배울 때
세상의 모든 레시피를 외울 필요가 없습니다.
칼질, 간 맞추기, 불조절 같은 기본만 알면 되죠.
코딩도 똑같습니다.
세세한 문법을 외우기보다
패턴을 이해하는 게 훨씬 중요합니다.
저는 한때 배열의 마지막 요소 가져오는 방법을 검색할 때
“이것도 모르다니, 내가 개발자 맞나?”라는 생각이 들곤 했어요.
그런데요, 지금도 가끔 검색합니다.
그리고 저보다 훨씬 오래 개발한 분들도 마찬가지입니다.
좋은 개발자는 모든 걸 외우는 사람이 아니라,
문제를 해결할 수 있는 사람입니다.
정보를 찾을 줄 알고, 문제를 분석할 줄 알고,
아무것도 안 될 때에도 침착함을 유지할 수 있는 사람 말이죠.
그러니 만약 지금도 기본적인 걸 검색 중이라면,
잘하고 계신 겁니다.
배우는 방법부터 먼저 배우세요
이건 정말 중요합니다.
제가 수년 동안 제자리에 머물러 있던 이유 중 하나예요.
많은 초보 개발자들이 코드를 배우기 전에,
'코드를 배우는 법'을 먼저 익혀야 한다는 사실을 모릅니다.
저는 튜토리얼을 열심히 보기만 하면
언젠간 알게 되겠지, 라고 생각했어요.
하지만 현실은…
튜토리얼 10개를 보고도
스스로 아무것도 만들 수 없었습니다.
마치 유튜브로 자전거 타는 법을 배우고
막상 탈 때는 덤불에 처박히는 느낌이었죠.
코딩은 '언어'와 같습니다.
듣는다고 유창해지지 않습니다.
직접 말해봐야 늘어요.
즉, 키보드에 손이 닿지 않으면, 뇌도 학습하지 않습니다.
저를 진짜 바꿔준 건
'소비자 모드'에서 '창작자 모드'로 전환했을 때였습니다.
남이 만드는 걸 구경하는 대신
엉망이어도, 작은 거라도, 직접 만들어보기 시작했어요.
제가 처음부터 가졌어야 했던 규칙은 이겁니다:
튜토리얼 1시간을 본다면, 최소 4시간은 튜토리얼 없이 직접 만들어보세요.
막히세요? 검색하세요.
깨지세요? 괜찮아요.
그게 진짜 수업입니다.
완벽주의는 함정입니다
고백할 게 있습니다.
개발 처음 시작했을 때,
변수 이름 하나 짓는데 3시간을 쓴 적이 있어요.
진짜입니다.
화면만 보면서
data? info? 아니면... superImportantThingy...?
이런 고민만 하고 있었어요.
왜냐고요?
모든 코드가 완벽해야 한다고 믿었기 때문이에요.
하지만 문제는, 완벽이라는 건 거짓입니다.
완벽한 코드를 쓰는 사람은 없습니다.
심지어 여러분이 존경하는 시니어 개발자도
가끔은 망가진 코드를 배포해요.
그들은 단지 고치는 속도가 빠를 뿐이죠.
이건 마치
처음 붓질이 걸작이 아닐까 봐
캔버스에 붓을 대지 않는 화가와 같습니다.
그럴 수 없어요. 처음은 항상 별로입니다.
그게 당연한 거예요.
저는 완벽한 코드에 집착을 내려놓고
그냥 일단 완성하기 시작했을 때
모든 게 달라졌습니다.
프로젝트가 끝나기 시작했고,
속도가 붙었고,
결과적으로 코드도 훨씬 나아졌습니다.
왜냐고요?
실수할 여유를 줬기 때문입니다.
완성된 것이, 완벽한 것보다 낫습니다.
잘 돌아가는 못생긴 코드가,
예쁘지만 실행되지 않는 코드보다 훨씬 많은 걸 가르쳐줍니다.
준비된 느낌은 오지 않습니다
하지만 그래도 시작하세요.
첫 프로젝트를 만들 준비,
개발자 구직을 할 준비,
클라이언트에게 돈을 받을 준비…
절대, 충분하다고 느껴지지 않습니다.
저도 마법처럼 '나 이제 진짜 개발자다!'라는
느낌이 올 줄 알았는데요, 그런 거 없었습니다.
심지어 몇 년이 지난 후에도
“아니, 누가 나한테 운영 서버를 건드리게 해 준 거야?”
라는 생각을 하곤 했습니다.
이건 마치 헬스장에 처음 가는 것과 비슷합니다.
몸이 만들어져야 운동을 시작하는 게 아니라
운동하면서 몸이 만들어지는 거죠.
코딩도 마찬가지입니다.
자신감은 '행동'에서 생깁니다.
저의 첫 프리랜서 일은, 정말 무서웠어요.
임포스터 증후군이 폭발했죠.
그래도 그냥 수락했고,
솔직히 일의 절반은 실시간으로 구글링 해가며 처리했어요.
결과는?
그 작은 "네" 한 번이
상상도 못한 수많은 기회의 문을 열어줬습니다.
생각보다 당신은 이미 준비돼 있습니다.
중요한 건 자신감이 아니라,
시작하려는 의지입니다.
진짜 실력은 문제 해결 능력입니다
튜토리얼 썸네일 어디에도 적혀 있지 않지만,
진짜 중요한 말이 있습니다.
코딩의 핵심은 '문법'이 아니라 '문제 해결 능력'입니다.
누구나 for문 정도는 외울 수 있어요.
하지만 정말 중요한 건,
기능 요청을 작은 단위로 쪼개고
문제가 생겼을 때 어디서 잘못됐는지를
논리적으로 추론할 수 있는 능력입니다.
개발은 마치 탐정이 되는 것과 비슷합니다.
문법은 그냥 노트에 불과하고,
진짜 실력은 올바른 질문을 던지는 능력에 있습니다.
저는 예전에는 뭐가 안 되면
"망했다. 난 소질이 없나 봐." 하곤 했는데요,
이제는 압니다.
디버깅이 곧 개발입니다.
그건 실패가 아니라 과정이에요.
훌륭한 개발자들은 단순히 문법을 잘 아는 게 아니라,
문제를 끝까지 파고드는 태도를 가지고 있습니다.
계속 질문하고, 계속 의심하고, 계속 시도합니다.
타이핑 실력보다, 사고력을 키우세요.
왜 그렇게 작성했는지를 고민하세요.
아무도 당신의 코드에 관심 없습니다
이건 좀 아플 수도 있지만, 정말 필요한 이야기입니다.
아무도 당신의 코드 자체엔 관심 없습니다.
사람들이 원하는 건 기능입니다.
세상에서 가장 깨끗하고 우아한 코드를 짰다고 해도
버튼이 작동하지 않거나,
사이트가 거북이처럼 느리다면
그건 쓸모없는 코드입니다.
저는 예전에 추상화를 엄청나게 잘 해낸 컴포넌트를 만든 적이 있어요.
재사용 가능하고, DRY 하고, 정말 자랑스러웠습니다.
그런데 클라이언트는 딱 한마디 했습니다.
"좋아요. 버튼을 녹색 대신 파란색으로 바꿀 수 있을까요?"
… 끝.
그들은 제가 만든 커스텀 훅에는 관심 없었습니다.
결과만 원했습니다.
당신의 코드는 배관(plumbing)과도 같습니다.
싱크대 아래 파이프 정리 상태를 칭찬하는 사람은 없습니다.
그저 물이 잘 나오길 바랄 뿐이죠.
깔끔하고 우아한 코드면 좋지만,
그보다 더 중요한 건
작동하고, 문제를 해결하는 코드입니다.
겉치레보다는 실질적인 가치가 더 중요합니다.
번아웃은 실제로 존재합니다
에너지를 지키세요.
잠깐만 솔직해져 볼까요?
번아웃은 실제로 존재하고,
정말 세게 찾아올 수 있습니다.
처음엔 의욕 넘치게,
두 배속으로 튜토리얼 보고,
커피도 과하게 마시며 시작합니다.
하지만 몇 달이 지나면
지치고, 혼란스럽고,
'나는 개발자랑 안 맞나?'라는 생각이 들 수도 있어요.
저도 그랬습니다.
주말 내내 버그 하나 고치겠다고
잠도 안 자고, 밥도 제대로 안 먹고,
그냥 화면만 멍하니 바라본 적이 있어요.
결국 버그는 해결했지만…
제 에너지도 완전히 고갈돼 있었어요.
솔직히 말하면, 그건 성취가 아니라 경고 신호였죠.
"진짜 개발자는 24시간 7일 내내 코딩한다"는 말?
전혀 사실이 아닙니다.
제가 아는 훌륭한 개발자들은
휴식을 잘 챙깁니다.
게임도 하고, 산책도 하고, 휴가도 가요.
우리 뇌도 배터리와 같습니다.
스마트폰 배터리가 1% 일 때 안 쓰는 것처럼,
우리도 스스로를 과하게 몰아붙이면 안 됩니다.
매 순간 열심히 달려야 실력을 증명할 수 있는 게 아닙니다.
생산성이란
자신을 태워 없애는 게 아니라,
지속 가능함에서 나옵니다.
푹 자고,
바람 쐬고,
산책도 해보세요.
마지막 요약과 조언
모든 걸 알 필요는 없습니다.
배우는 법부터 배우세요.
완벽주의는 거짓입니다. 일단 만드세요.
준비된 느낌은 오지 않습니다. 그래도 시작하세요.
코딩은 단순 타이핑이 아닌 문제 해결입니다.
아무도 당신의 코드 자체엔 관심이 없습니다.
번아웃은 실재합니다. 스스로를 지키세요.
오늘 이 중 하나라도 마음에 와닿았다면, 이 영상은 제 역할을 한 거예요.
저는 Pete였고, 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!