인사이트(insight)

개발 공부 제대로 하는 법

hatch 2022. 7. 26. 20:48
728x90
반응형

컴공 복수전공을 시작한 지, 1년 반개월.

휴학한 지 6개월째.

상반기에는 react native를 사용해 화면 수정하는 단기 알바를 진행했고,

현재는 한이음 프로젝트에서 팀장을 맡아 AI챗봇 앱을 개발하는 중이다.

 

이 외에 아르바이트도 겸하며 바쁘게 살고 있다고 생각했다.

 

그런데, 어느 순간부터 배우는 게 없다고 느껴졌다.

 

같은 문제를 마주했을 때, 바로 풀어내지 못하고 삽질을 반복했으며

누군가 관련 질문을 던졌을 때, 우물쭈물 답변 못하는 스스로를 발견했다.

겉만 그럴 듯하고 속은 텅... 비어있었다.

 

무엇이 문제일까?

 

개발자라면, 혹은 개발자를 생각하며 공부하는 학생이라면

한번쯤 느껴봤을 '정체기'에 대한 글을 쓰려고 한다.


 

나는 지금 어디에 있는가?

 

 

 

 

성장의 멈춤을 느꼈을 때 제일 첫 단계는, 자신을 돌아보는 것이다.

 

 

다음 항목에 해당되는가?

  • 생각없이 그냥 바쁨(현재 프로젝트가 제일 중요, 다른 건 신경쓸 겨를 없음).
  • 조급함(배울 건 산더미인데....).
  • 우선 만들고 보자!
  • 이번만...!
  • 무슨 코드인지 모르는데, 일단 복붙하고 보기.

 

 

그렇다면 <깨어있지 않은>, <정체기>의 개발자일 확률이 높다.

 

깨어있지 않다는 건, 곧 사고하지 않는다는 얘기다.

 

배워도 배워도 계속 제자리를 맴돌고, 결국 남는 게 하나 없어

경력을 쌓아도 후배에게 나눠줄 노하우도 없는 개발자가 되는 길이다.

 

 

개발자에게 '전문분야'에 해당하는 역량만 요구되지 않는다.

버전관리를 비롯해 배포, 개발툴, 터미널 사용 등에 해당하는 다른 역량 역시 중요하다.

이는 경력을 쌓아갈 수록, 더 좋은 개발자가 되기 위해 필수적이다.

 

그렇다면,

 

<성장하는 개발자>가 되기 위해 어떻게 해야할까?

 

 

고민하는 여러분들을 위해 다음 5가지를 제안한다.

 

 

 

깨어있기 이론

 

 

1. '이번만, 다음에!' 하지 않기

 

'지금 하고 있는 프로젝트, 공부가 중요하니까... 다음에!'

 

익숙한 말들이다.

현재 당면한 문제를 해결하기 급급해서,

빠른 솔루션과 대처에만 초점을 맞춰 공부는 뒷전이었던 우리.

 

 

문제에 직면한 지금이, 공부하기에 최적기다!

 

그러면 마주하는 모든 문제를 공부하느냐? 아니다.

효율적인 공부를 위해 '3번 이상' 동일 문제를 겪으면, 꼭 필요한 내용이므로 공부하자.

 

 

 

 

2. 사고하기

 

업무 중에 실제 '사고하는 시간'이 얼마나 될까?

 

  • 프로젝트의 궁극적인 목표가 뭐지?
  • 왜 이 코드를 적용하는거지?
  • 어떻게 동작하는 거지?
  • 비효율적인 부분이 있네... 어떻게 개선할 수 있을까?
  • 내가 부족한 부분이 이것이구나..
  • 왜 이 라이브러리를 쓸까?

 

의식적으로 생각을 깨우는 노력이 필요하다.

내가 복붙한 코드를 이해하고,

반복적으로 나타난 문제를 하나씩 배워가는!

 

"무엇이 부족하고, 무엇을 공부해야 하는지 의식해야 한다."

 

 

3. 메모하기 : 필요한 지식 정리

 

필요한 지식을 노트에 정리하기.

 

업무 중 튀어나왔던 지식들, 공부해야하는 부분들 메모해 두자.

 

그리고

빈도 수를 체크해서 중요성을 확인하자.

 

 

 

4. 우선 순위 정하기(T자 공략)

 

주력 나무를 중심으로 주변 가지들도 키우자!

 

ex. 주력 나무 : 프론트엔드, 기둥 세우기 위한 필수 기술들 파악(기본 지식 습득)

     주변 가지 : 배포, 성능, UI, 접근성 등 전문성 키우기.

 

뿐만 아니라 토양도 중요하다.

주력 나무와 밀접하게 관련있어 생산성을 높여주는 '튼튼 토양'

직접적인 영향을 주지는 않지만 비옥하게 해주는 '깊은 토양'이 있다.

 

튼튼 토양 : Git 명령어, 효율적인 개발툴 사용, 터미널 명령어에 능숙 ....

깊은 토양 : 알고리즘, 자료구조, 리팩토링 ....

 

3번에서 적은 기술들을 보며, 부족한 부분 파악하며 우선순위 세우자.

 

 

 

5. 일정관리 : 균형있게 공부하기

 

'이것도 해야되고, 저것도 해야하는데..ㅜㅜ'

 

대부분 같은 심정일 것이다. 그러나!

게임 캐릭터를 Level Up! 시키듯, 차근차근 나 자신을 키우자.

 

그래도 조급한 마음이 든다면?

일정관리를 통해 순서있게 공부하면 된다.

 

(🪵: 주력 나무 / ⛰️ : 튼튼, 깊은 토양 / 🍵 : 쉬는 날 )

🪵 🪵 🪵 🪵 🪵 Git 🍵
🪵 🪵 🪵 🪵 🪵 Git 🍵
🪵 🪵 🪵 🪵 🪵 Git 🍵
⛰️ ⛰️ ⛰️ ⛰️ ⛰️ Git 🍵

 

 

분기별 혹은 한달에 하나!

내 주력나무와 토양에 필요한 기술들을 배워간다면,

앞으로 2~3년 뒤 의미있는 성장 그래프를 그릴 수 있을 것이다.

 

 


 

본 글을 요약, 정리하며 느낀 점은 다음과 같다.

 

정체기에 있는 개발자에 대한 모습이 꼭 나와 같아서 놀랐다.

무언가 일은 많이 하는데, 성장하지 않는 것 같은 기분.

 

실제로 멈춰있었던 것.

문제를 깨닫는 것이, 해결의 첫 걸음이다.

오늘 현재 내 상태를 알게 됐으니 고치고 나아갈 길이 남았다.

 

복붙만 하는 무능력한 사람이 아니라,

코드에 대한 깊은 이해로 능동적으로 바꿀 수 있는 개발자.

 

Git 사용 능력 등 주변 가지도 잘 성장한 개발자.

 

차근차근, 꾸준히 성장하는 개발자가 되자.

 

 

성장 정체기에 있는 개발자들을 위한, 드림 코딩님 영상을 요약하였습니다.

[참고] https://youtu.be/DmK7d0xB2j0