ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주니어가 되기 위해: "개발자가 갖추어야 할 9가지 기술"
    기타 2022. 1. 15. 10:57

    주니어가 되기 위해

    세상에 배울 것은 정말 많다. 요즘에는 쉽게 떠먹으라고 차려주는 곳도 많으니, 그야말로 진수성찬이다.
    오래 굶주린 사람이라면 재고 따지지도, 가리지도 않고 이것저것 입에 집어넣기 마련이겠지만, 난 그래도 가능하면 맛있고 영양가 있는 음식부터 주워 먹어야겠다는 생각이다. 오래 먹고 살려면.

    유튜브에서 개발자 박종천님의 개발자가 갖추어야 할 9가지 기술이란 제목의 2016년 강의를 보게 되었다.
    영상 전체를 정리요약하며 정말 잘 보았다. 영상에서는 주니어-미들에게 중요한 하드스킬, 시니어에게 중요한 소프트스킬, 그 이상에게 요구되는 비즈니스 스킬이란 것들에 대해 설명하고 있다.

    물론 수준별로 딱 잘라서 준비물 챙기듯 고것만 딱 챙기면 되는 건 아니겠지만, 그래도 당장 내게 가장 중요하게 요구되는 스킬들을 잘 알아보기 위해 요약하여 기록을 남겨보려고 한다. 주니어 개발자가 되기 위해서!


    하드 스킬

    1~5년차 정도의 개발자들이 이 정도 해당한다.

    1. 기본 지식
    • 수학, 물리
    • 프로그래밍 언어
    • 알고리즘, 자료구조, 디자인 패턴
    • 그래픽, 데이터베이스, 네트워킹, AI
    • 게임엔진
    • OS
    • 도구들(소스컨트롤, 비주얼스튜디오)

    기본적으로 스스로 공부해야 하는 것들이다. 끊임없이 배웠던 것들을 버리고, 새로운 것들을 배워야 한다. 그래야 버틸 수 있다.

    1. 제품에 대한 이해

    세상에 존재하는 소프트웨어들은 생각보다 구리다. 당장 큰 돈들여 구축하고 고도화 하는 공공기관들만 해도 그렇다. 사용자가 쉽게 쓸 수 있는 소프트웨어/제품이 잘 없는 이유는 뭘까.
    많은 개발자들이 그냥 스펙에 맞춰 개발할 뿐이기 때문이다.
    어떻게 쓰여지는가 제품에 대한 분석과 이해가 필요하다.

    자신을 파악할 필요도 있다. 예를 들어, 식당을 오픈하는 사람들 중 첫번째 부류는 돈을 벌려고, 두번째 부류는 사람들이 음식을 먹고 기뻐하는게 좋아서, 세번째 부류는 그냥 요리만드는 걸 좋아해서. 본인의 성향을 파악해야 한다. 궁극적으로는 셋 다 적절히 섞을 필요가 있다.
    고객을 생각할 필요가 있고, 고객의 입장에서 사용할 필요가 있다.

    1. 개발 사이클
    • 요구사항 분석
    • 디자인 & 모델링
    • 구현
    • 테스트 / 출시
    • 피드백 수용 / 업데이트

    최소한 각 과정의 시간 배분이 1:1:1:1:1은 되어야 한다. 현재 어떤 단계인지 정확히 파악할 필요도 있다. 단계별로 왔다갔다 해서는 안된다. 시간 줄이겠다고 급하게 왔다갔다 할 생각을 하지 말고, 단계마다의 진척 속도를 빠르게 해라.
    코딩을 하면서도 전체 과정을 생각하면서 만들 줄 알아야 한다. (하지만 사람마다 특화된 단계가 있기도 하다 - 이니시에이터, 임플리멘터, 피니셔)


    느낀점

    전체적으로 느낀 바는, 하드스킬이란 '공부'라는 점이다. 스스로 들이파는 공부.

    첫번째 '기본 지식' 파트에서 느낀 점은 역시 내게 공부가 정말 많이 필요하구나 하는 점이었다. 예로 들어주신 것 중에 내가 '그나마 조금이라도' 안다고 말할 수 있는 것은 프로그래밍 언어 뿐이다. 공부는 꾸준히 계속, 나에겐 특히나, 많이 필요하다.

    근데 당장 급하다고 생각되지 않는 것은(급한데, 급하지 않은 이유는), 회사에서 계속 일을 하려면 나머지 두 가지가 더 중요하지 않나 생각이 되었기 때문이다. 프로덕트에 대한 이해는 발만 담궈본 내게도 굉장히 중요하게 느껴졌었다. 스펙에 맞추는 개발이란 안전한 걸지도 모르지만 딱 그뿐이라면 그저 태만한 것일지도 모른다. 스펙을 충실히 이행하되 뛰어넘는 이해와 코드가 후행되어야 한다고 생각한다.

    개발 사이클에 대해서는 '중요한 것 같은데...'라고 생각이 들면서도 아직 크게 와닿지가 않았다. 요구사항 분석이 철저해야 한다는 점만큼은 알겠지만... 못 알아듣는다는 것은 그만큼 내가 쩌리라는 거겠지...!
    하지만 한 가지만큼은 정말 와닿았고 전체 강의 중에서도 기억에 남는 말씀이었는데, 오늘 포스팅의 마지막 문구로 남겨두려고 한다.

    코딩을 하면서도 전체 과정을 생각하면서 만들 줄 알아야 한다.

    댓글

Designed by Tistory.