본문 바로가기
야미로깅

개발자의 평생공부

by 의정부핵꿀밤 2024. 7. 24.
728x90

요즘 내 부적, 제프딘 성님..!

간만에 남기고 싶은 내용이 있어서 갑자기 적어보는 블로그..ㅎ

 

최근에 입사 1주년을 맞이하고 이제는 2년차 개발자라는것을 깨닫고부터 더이상 신입이 아니라는 것, 이제 진짜 주니어 개발자로서의 역량을 드러내야 한다는 것 등에 대한 책임감, 불안감, 무게감,, 등을 느끼고 있다.

 

1년간의 나를 돌아보면 치열하게 공부하고 성장하기 보단 그저 입사하고 "진짜 개발자"가 되었다는 "착각" 속에서 안주하고 자만하며 편안하게 지냈던 것 같다.

 

아니, 누구보다 편하고 즐거운 생활을 했다.

 

지난 1년간 너무 놀아제꼈던 내 자신이 한심하고 후회스럽지만 그만큼 앞으로 노력하고 꾸준히 성장해나가면 된다고 마음을 다잡고 다시 나만의 공부 루틴을 구축해나가고 있다.

(어쩌면 그만큼 놀아서 마음을 다잡기가 쉬웠을지도?)

 

그러나 느리더라도 꾸준하게 성장해나가자고 생각하다가도 막상 공부를 시작하면 나는 여전히 모르는게 많고 두려움과 불안함에 휩싸이고 있다.

 

그러다 우연찮게 읽게 된 글이었는데 진정 "실력있는 개발자"는 무엇일까에 대한 고민을 하고 있는 내게 너무 와닿고 성장에 대한 동기 유발이 되는 글이라서 내가 수시로 읽어보고자 블로그에 정리해보려 한다!

 


 

https://zdnet.co.kr/view/?no=20170616090644

 

개발자의 평생공부

평생 공부하는 건 개발자만이 아니다. 다른 직업을 가진 사람들도 쉼 없이 공부하고, 컨퍼런스와 세미나를 참가하고, 스터디를 한다. 공부없이 할 수 있는 일이 없기 때문이다. 언뜻 보기에 공부

zdnet.co.kr

 

 

평생 공부하는 건 개발자만이 아니다.

공부는 누구나 하는 것이지나 문제는 공부의 방향이다.

 

개발자의 지식에는 수명이 존재하지만, 프로그래밍의 본질에 가까운 지식일수록 수명이 길다.

그래서 본질을 추구하며 에피파니(Epiphany)를 경험한 사람은 공부로 인한 스트레스를 덜 받는다.

그만큼 중요한 것과 중요하지 않은 것을 구별하는 것은 중요하다.

 

기술의 최신 트렌드에 깨어있고 다양하고 새로운 도구를 건드려보는 것도 중요하지만, 실전이 필요로 하는 사람은 다르다.

 

요구사항을 날카롭게 분석하고, 꼼꼼한 설계 과정을 거쳐 코드를 작성하고, 정밀한 테스트를 거쳐 출시 후에는 다른 요구사항을 처리하는 것.

요구사항을 코드로 바꾸는 과정에서 필요한 추상을 스스로 만들어내고 새로운 구조물의 상호작용, 데이터의 무결성, 성능 등을 빈틈없이 사고하는 철두철미한 개발자.

 

위의 개발자가 가진 능력이 프로그래밍의 본질에 더 가깝다.

 

개발자가 공부하는 것은 위와 같이 "본질적인 능력"을 키우기 위함이다.

프로그래밍의 본질은 문제의 해결이다.

 

트렌드를 좇는 것은 파편적인 지식을 획득하는 것에 불과하기 때문에 의미가 없다.

파편적인 지식은 파편적인 태도만으로 충분하며, 트렌드에 필요한 것은 가벼운 눈팅이다.

공부는 본질에 다가서려는 노력이다.

 

사실상 실력은 지식의 총량과 무관하다.

진짜 실력은 임기응변이며 주변상황에 휘둘리지 않는 집중력이고 해결해야 하는 문제가 무엇인지 알아채고 해결하는 것이다.

이는 이미 알고있는 지식으로부터 나오는 것이 아닌, 본질에 다가가기 위해 감내해온 고통, 불면의 밤, 좌절, 환희 등으로 점철된 경험에서 나오는 것이다.

그래서 실력은 지식의 총합이 아닌 "고통의 총합"이다.

 

단순히 새로운 기술에 대한 링크를 저장하는 것은 마치 쇼핑몰에서 위시리스트에 물건을 담는 행위의 심리와 정확히 일치한다.

즉, 이것은 공부가 아닌 쇼핑이다.

이를 공부로 착각하고 파편적인 지식의 늪에서 빠져나와야 한다.

 

 

다음은 개발자가 본질에 다가가기 위해 공부해야 하는 방법에 대해 나열한 것이다

 

  1. 지금 다니고 있는 회사에서 하는 일을 잘하기 위해서 노력하는 것이 가장 좋은 공부다.
  2. 회사에서 하는 일과 개인적으로 공부하는 내용을 최대한 근접시키기 위해서 노력하라.
  3. 새로운 기술을 익히는 최선의 방법은 스스로 문제를 정의한 다음, 새로운 기술을 이용해서 그 문제를 풀어보는 것이다.
    책을 읽거나 동영상을 보는 것은 그보다 하위수준의 방법이다.
  4. 신기술을 좇는 메뚜기가 되지 말라.
  5. 모든 것을 알아야 한다는 강박을 버려라.
    미리 획득하는 지식의 99%는 무용지물이다.
    필요할 때 필요한 기술을 익힐 수 있는 것이 능력이다. 그 능력을 키워라.
  6. 이상한 나라의 앨리스에 나오는 토끼굴(rabbit hole)을 피하라.
    카테고리 이론을 알아야 함수형 언어를 쓸 수 있는게 아니고, 선형대수학을 공부해야 머신러닝을 할 수 있는게 아니다.
    토끼굴에 빠져서 한없이 들어가다보면 비본질적인 공부에 시간을 허비하게 된다.
  7. 겉만 핥는 것은 경박하지만 토끼굴에 빠지는 것은 우매하다.
    둘 사이의 적당한 지점에서 균형을 잡는 것이 개발자의 능력이다.
  8. 머리에 들어오지 않는 어려운 개념이나 용어는 자투리 시간을 이용해서 반복적으로 읽고 암기하라.
    나중에 큰 그림을 공부할 때 도움이 된다.
  9. 항상 겸손해야 하지만 동시에 자긍심을 가져라.
    내가 지금 작성한 코드, 지금 읽은 책, 지금 공부한 내용을 나보다 잘 아는 사람은 없다.
    모든 걸 알고 있는 것처럼 보이는 사람도 나와 마찬가지로 불안하고 위축되고 두려워하며 살아간다.
    자긍심이란 그런 타인을 돕고자 하는 마음가짐의 다른 이름이다.
  10. 혼자 하지 말고 함께 공부하라.

 

이 시점에 가슴에 손을 얹고 스스로 질문해보자.

 

나는 정말 공부가 재밌는가?
새로운 기술을 익히고, 키보드를 두드리고, 결과를 확인하고,
친구들과 이야기하는 모든 경험이 나를 행복하게 만드는가?

 

 

이 질문에 대한 대답이 YES 라면, 그 대답의 강도만큼 나의 미래는 성공이 보장되어 있는 것이다.

그러므로 개발자는 미래에 대해 불안해할 필요가 없다.

 

미래의 성공은 YES라는 작은 변수의 함수이기 때문이다.

이 변수는 개발자인 나 자신의 손에 놓여 있다.

 

728x90

댓글