반응형

개발 배우기가 정말 어려운 이유

https://brunch.co.kr/@jypthemiracle/14

 

[번역] 개발 배우기가 정말 어려운 이유

Why Learning to Code is So Damn Hard? | 이 글은 에릭 트라우트먼(Eric Trautman)이 Thinkful이라는 미국 코딩 부트캠프 블로그에 게시한 글입니다. 그는 2014년에 실리콘밸리에서 Viking Education이라는 부트캠프를

brunch.co.kr

1. 강의로 학습하며 자신감이 솟아나는 단계 (The Hand Holding Honeymoon) : 재미와 즐거움으로 가득찬 단계입니다. 조금 어려워는 보이지만, 자료가 잘 정리되어 있고 지원이 빵빵하기에 여러분은 잘 해낼 수 있을 겁니다. 기본적인 문법을 배우고 높은 수준의 성취도를 느낄 것입니다.

2. 혼돈의 카오스 (The Cliff of Confusion) : 강의를 다 봤고 강좌를 모두 수료하고 난 뒤에 느끼는 단계입니다. 생각보다 모든 것이 어렵고 고통스럽다는 사실을 자각하게 됩니다. 아직 스스로 무언가를 할 수 있는 단계가 아니라고 생각이 들 것입니다. 계속 디버깅을 하고 있고 여러분 스스로 무언가를 위해서 어찌저찌 시도해보고 있긴 하지만, 다른 사람들에게 어떻게 질문해야 잘 물어봤다고 할 수 있을 지 명확하지 않은 단계입니다.

3. 절망 한 가운데에 놓임 (The Desert of Despair) : 아주 지리밀렬하고 지루한 단계입니다. 새로운 길 하나하나가 옳은 것처럼 보이지만 나 자신은 원을 그리듯 제자리 걸음입니다. 어려움을 이겨낼 수 있는 자료를 찾아 계속 돌아다닙니다. 마치 사막에서 어디에 홀린 마냥, 사람들의 열광 속에서 신기루에 빠지지 않도록 조심하세요. 자칫하다간 잘못된 길에 빠지고 말 것입니다.

4. 놀라운 성장 (The Upswing of Awesome) : 사막 속에서 결국 길을 찾아내고야 말았습니다. 어떻게 개발해야 하는 지에 대한 이해가 생겼을 때입니다.

여전히 여러분의 코드는 여전히 어디엔가 갇혀진 느낌이고 깨지기가 쉽습니다. 다만, 여러분은 아무튼 작동한다는 사실에서 자신감을 얻게 되지요. 유용한 몇몇 패턴에 익숙해지고, 친구들은 여러분이 만든 화면이 엄청 대단하다고 느끼구요. 하지만 코드를 정작 까 보는 것에 여전히 두려워하고, 자신있게 내세울 수 있는 수준의 코드(production-ready)를 짜는 방법에 대해 결국 찾지 못한 상태입니다. 어떻게 해야 실제 취업이 요구하는 수준까지의 기술 격차(gap)을 줄일 수 있을까요.

 

 

계속 성장하는 방법
여정은 정말 빡세보이고 힘들어보입니다. 솔직히 말하면 종종 그렇습니다. 중요한 것은 여러분이 어느 상태에 있는 지 아는 것입니다. 특히 여러분이 혼자 공부한다면 더욱이 그렇습니다. 하지만 꼭 그럴 필요는 없습니다. 대부분의 경우에 적용할 수 있는 팁들이 있기 때문이지요. 코딩을 배우는 것은 사람들이 생각하는 것만큼 쉽지는 않지만, 절망할 것처럼 그렇게 깊이 어려운 것도 아닙니다. 여기서는 올바른 방법으로 갈 수 있는 팁에 대해 설명해보도록 하겠습니다.

1단계에서 살아남는 방법
정말 많은 종류의 학습 컨텐츠가 있습니다. 코딩에 대해 쉽게 입문할 수 있도록 해줍니다. 두 가지 팁을 꼭 명심하도록 하세요.



1. 여러 다양한 컨텐츠로 시작해보세요. 어떻게 배우는 것이 여러분에게 딱 맞는 방법인지 학습하 수 있을 것이고, 어떤 프로젝트가 흥미로운 지 발견할 수도 있을 것입니다. Khan Academy의 챌린지나 생활코딩의 WEB 강좌, 또는 노마드 코더의 클론코딩, 커넥트재단의 부스트코스, 인프런 강좌, 스터디파이 등이 될 수 있을 것입니다. 처음 시작할 때는 열린 마음을 가지되, 무엇을 꼭 배워야 한다느니 하는 소리에는 신경쓰지 않으셔도 됩니다. 기초 단계에서는 어짜피 다 비슷하거든요.



2. 여러분과 잘 맞다고 생각드는 컨텐츠 하나를 골라보세요. 그리고 그 컨텐츠 하나에 집중하세요. 처음부터 끝까지 다 들어보세요. 기초 스크립트와 앱 등 모든 기본 지식을 끝까지 다 들어보시고, 스스로 만들어보는 연습을 하세요.



2단계에서 살아남는 방법
거의 대부분의 사람들이 2단계를 겪을 것입니다. 왜냐하면 개발자가 되는 방법은 직접 개발을 하는 것이기 때문이죠. 여러분은 튜토리얼을 해보면서 직접 자신이 만들었다고 생각할 지도 모릅니다. 하지만 튜토리얼 따위를 몰아내는 것은 아주 필수적인 일입니다. 튜토리얼은 처음에는 좋지만 이제 스스로 걸음마도 좀 해봐야죠. 그래야 진짜 세계를 볼 수 있습니다.



여러분 스스로 만들기 위한 세 가지 팁을 명심하도록 하세요.

1. 다른 사람들과 함께 하세요. 아무리 초보더라도 두 명이서 함께 페어를 할 때 불가능해 보이는 에러도 디버깅할 수 있답니다.

2. 다른 사람의 코드를 읽으세요. 좋은 패턴에 익숙해지도록 하세요. 다른 사람들이 어떠한 의도로 코드를 작성했는지 파악하려고 노력하세요. 책을 읽지 않고 소설가가 될 수 있나요? 자그마한 문제 하나하나에 귀를 기울이고, 다른 사람이 이를 어떻게 해결했는지 관심을 기울이도록 하세요.

3. 자그마한 것으로 시작하고 계속해서 만들어보세요. 미래에 내가 만들어 볼 큰 프로젝트에 관심 가질 수도 있겠습니다만, 지금은 당장 디버깅에 익숙해지고 자그마한 문제를 해결할 수 있는 능력을 길러야 합니다. 이 과정은 정말 필수적으로 하셔야 합니다.



3단계에서 살아남는 방법
디버깅에 익숙해지면, 여러분의 가장 큰 문제는 학습할 거리들이 아주 많아진다는 점입니다. 이걸 대체 언제 다 공부하고 있나요. 이 경우에 여러분은 자신만의 굳은 믿음과 올바른 길에 대한 전진이 필요한 때입니다. 가끔 사막에서 신기루가 나타나서 빨리 스킬을 얻을 수 있는 방법을 알려주겠노라고 여러분을 홀릴 수도 있겠습니다만, 여기에 속아넘어가면 정말 시간만 낭비하게 될 것입니다.



1. 분명한 목표를 가지세요. 무엇을 이루고 싶은가요? 목표가 없다면 관심이 있는 모든 것에 이리저리 기웃대다가 아무 것도 안 될 것입니다. 여유 부릴 시간이 있으면 공부를 하세요.

2. 분명한 길을 걸으세요. 여러분의 목표로 인도해줄 것이고, 그 곳이 맞다는 사실을 확신시켜 줄 것입니다. 각종 마케팅 슬로건에 속지 않고, 여러분 나름대로 깊이 파고들 수 있게 될 것입니다. 다양한 강좌 웹사이트나 소개자료집, 기술 책 앞에서 "이것이 나의 목표 달성에 있어 꼭 필요한 일인지" 판단할 수 있게 될 것입니다.

3. 집중하셔야 합니다. 여러분이 코딩에 관심이 있다는 것은 여러분은 아마 다른 모든 것에 관심이 있을 거라는 뜻입니다. 코딩이 어려워진다면 금방 질려 다른 거 하지 마시고 여기에 오로지 집중하도록 하세요.



여러분이 나름의 길을 찾고 여기에 오롯이 집중할 수 있을 때, 여러분은 몇 개월, 몇 년 동안 각종 열풍과 환상에 속아 넘어가지 않고 다음 단계로 넘어갈 수 있을 것입니다.



4단계에서 살아남는 방법
사실 여기가 제일 어려운 부분입니다. 앱을 개발할 수 있게 되었지만 정말 진정한 개발자가 되고 싶으실 것입니다. 이 과정을 지나고 취업에 다다르기 위해서는 다음의 과정을 거치셔야 합니다.



1. 모범 사례를 찾아 따라해보세요. 해결책과 베스트 프렉티스의 차이점에 대해 이해하실 수 있어야 합니다. 베스트 프렉티스, 즉 모범사레는 여러분이 스스로 하던 것과 어딘가 차이가 있을 것이구요. 실제 회사환경과 코드 수준차이가 있을 것입니다.

2. 여러분의 상황을 계속해서 점검해보세요. 여러분은 계속 중간중간에 모르는 내용으로 구멍 뚫린 것 때문에 미끄러진 경험이 있을 것입니다. 내가 알지도 몰랐던 지식들 때문이기도 하구요. 이것들을 점검하고 고쳐나가야만 합니다.

3. 하기 싫어했던 것을 공부하세요. 평소에 자주 다뤄지지는 않지만 회사에 업무를 수행하기 위해서는 매우 중요한 것들 말입니다. 테스트 하는 것이나 데이터 모델링, 구조 짜기, 배포하기 같은 것은 지루할 지 모르지만 좋은 개발자가 되기 위해서는 매우 중요한 것들입니다.



사실 제일 중요한 것은 피드백을 얻는 것입니다. 스스로 학습하는 것이 최고라고 믿는 학생들은 읽기 쉬운 코드, 모듈화가 잘 된 코드, 유지보수 하기 쉬운 코드와 같이 업무 환경에서 중요한 요소들에 대한 고민을 해본 적이 없을 것입니다. 여러분 스스로의 환경에 계속 도전할 수 있는 누군가와 함께 일해 볼 필요가 있습니다. 계속 난처한 질문을 던져달라고 요구하시고, 이를 통해 여러분의 부족한 지식을 메꿔두세요.

반응형

+ Recent posts