ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 좋은 개발자는 어떤 개발자일까?
    [+] 기타 [+] 2021. 3. 21. 19:45

     

    최근 1만 시간의 재발견이라는 책을 읽었습니다.

    책에서는 한 분야의 전문가가 되기위해 무엇을 하면 될지, 높은 경지에 이른 사람들은 어떤 일들을 하였는지 등을 소개하며 지침을 제공하고, 선천, 재능, 타고남 등 불가능이라 믿었던 영역들에 대해 감히 맞설 수 있는 용기를 불어넣어줍니다.

    참 좋은책이라고 생각합니다. 구체적이고 디테일한 접근방법, 환경과 상황, 분야에 따라 훈련을 어떻게 진행하면 좋을 지에 대한 상세한 방법을 제공합니다. 하지만 동시에 염려스러운 것이, 책에서는 전문가가 되기위한 의식적인 연습을 소개합니다.

    매일 같은 일을 반복하면서 전문가가 되기를 바랄 수는 없는 법입니다. 높은 집중력과 목표에 대한 열망이 있어야하고, 즉각적인 피드백과, 도달하고자하는 경지에 대한 형체가 분명해야 한다는 점인데요, 개발 분야에서 높은 경지란 무엇인가요?  좋은 개발자는 어떤 개발자인가요? 높은 수준의 퍼포먼스는 어떤 퍼포먼스인지 참 난해해서 구체적인 청사진을 그리기가 참 어렵다는 점입니다. 

     

    좋은 개발자는 어떤 개발자일까요? 어쩌면 이 질문은 우문일 수도 있습니다. 정답이 존재하지 않는 질문이기도 하고, 상황에 따라 대답이 얼마든지 변할 수도, 시대에 따라, 개발 분야에 따라 혹은 연차에 따라 대답은 상이할 것입니다, 하지만 자료를 찾아보고 의견을 여쭈어보며 이상적인 개발자에 대한 단서를 구하고, 제 생각을 더하여 닮고 싶은 개발자의 모습을 그려보았습니다. 

     

     

    좋은 코드 생산 능력

     

    몇 년 전, 저는 누군가에게 알고리즘 역량이 중요하다는 이야기를 들었습니다. 그 당시 저는 개발자로서 성공하려면 무엇을 해야할지 전혀 아는 바가 없었습니다. 알고리즘이 세상의 전부 인 줄 알고 하루종일 알고리즘만 붙잡고 공부하곤 했습니다. 알고리즘을 풀고 남의 코드 참고하기를 반복하던 중, 멋진 아이디어를 내서 짧고 간결하게 문제를 해치우는 모습을 본 적이 있습니다. 주먹구구식으로 작성한 저의 코드와는 대조적으로 무심한듯 하면서 고작 몇 줄로 뚝딱 문제를 해결하는 모습이 참 인상적이었습니다. 아마 그때부터 였을까요, 코드를 최대한 짧게 작성하면서 문제를 푸는대에 많은 노력을 기울였던 것 같습니다. 그때 제게 좋은 코드란 짧은 코드였습니다. 한번은 내장함수를 잔뜩 때려박아서 한 줄 짜리 코드를 작성하고 스스로 으쓱했던 경험이 있습니다.

     

    [Programmers] 가장 큰 수 문제 ㅎ...

    지금 생각해보면 참 우스운 일이 아닐수 없습니다. 제가 작성한 코드를 제 자신도 이해하지 못하고, 코드를 새로 작성하는 경우가 대부분이었습니다. 이전에 작성한 코드는 제게 참고자료가 되어주지 못했습니다. 저런 코드를 타인이 본다면 어떤 반응일지, 만약 저상태로 취업을 하게된다면 이런 코드를 본 팀장님의 반응이 어떨지 참 궁금해집니다.

     

    최근 훌륭한 코드에 대한 이야기를 들었습니다. 적절한 부분에 주석이 잘 들어가 있고, 주석이 없는 부분은 코드 그 자체만으로 작성자의 사색이 녹아있어 그 의도를 파악하기 수월한 코드가 있다 들었습니다. 말에는 영혼이 있다고 합니다. 말에는 그 사람에 사색과 철학, 성향, 의도, 분위기 등이 녹아 있어, 몇 토막의 말이 그 사람의 많은 것을 대변해 줍니다. 저는 종종 세 마디 안되는 대화 만으로 그 사람의 팬이 되곤합니다. 가수에게도 동일합니다. 그들은 노래로써 말을 대신합니다. (저는 이것이야 말로 가수의 본(本)이라 생각합니다.) 배우에게도 동일합니다. 축구선수에게도 동일하고, 기타리스트에게도 동일합니다. 기타는 연주자의 목소리가 되고 그 사람의 삶이 녹아있어서, 같은 곡이라 할지라도 연주자에따라 다른 감상을 전해주곤합니다.

     

    이는 코드에서도 적용가능한 듯합니다. 디테일하면서도 쉽게 작성되어있어 이해하기가 수월하고, 배려의 마음씨를 엿볼 수 있어, 저의 코드를 읽는 일이 기쁜 일이 되었으면합니다. 좋은 개발자란 이런 개발자가 아닐까 합니다.

     

     

    깊은 지식 지속적인 학습

     

    이 업계는 변동속도가 참 빠르다고합니다. 매일매일 새로운 기술이 쏟아져 나오고, 매일 새로운 것을 익히는 것이 평생의 업이 라고 알고 있습니다. 참으로 고된 길이라 생각합니다. 그리고 정도(正道)를 따르지 못한 경우도 적지 않으리라 생각합니다. 제 경우에도 지식이 과거에 멈추어 있어, 자신이 알고있는 것이 전부인 줄 알고, 다름을 받아들이지 못하는 경우를 여럿 보았습니다.(실은 교단에서 많이 보았습니다.)

    안타까운 일입니다. 또한 이와 반대로 자기 분야에 대해 깊은 지식을 갖춘 분을 보았습니다. 무언가를 물어보면 막히는 경우가 없고, 학습을 게을리하지도 않습니다. 간혹 새로움에 대한 갈증을 느끼고 있다는 생각이 종종 들기도 합니다. 그분은 넓은 깊은 지식을 기반으로 당면한 문제에 적절한 해결책을 떠올려 적용합니다. 하루종일 코딩을 해도 지친 기색을 비치지 않고, 새로운 접근법을 매우 반가워하며 받아 들이곤합니다. 어쩌면 코딩에서의 최고의 재능은 코딩을 사랑하는 능력이 아닐까 하는 생각을 최근 하고있습니다.

    저 또한 새로운 기술을 익히는데에 주저함이 없고자 합니다. 사람은 언제나 편한 길을 찾습니다. 그 관성을 이겨내고 끊임없이 배우는 사람이 되고자 합니다.

     

     

    뛰어난 생산성

     

    프로그래머는 프로그램 만드는 일을 합니다. 구현은 개발자의 전부가 아닐까 싶습니다. 원하는 바를 능숙하게 구현하는 일이 중요하다는 데에는 이견이 없는듯합니다. 기획, 디자인, 설계 등을 모두 거치면 마지막에 개발자의 손을 거쳐서 프로덕트가 생산됩니다. 프로덕트에 문제가 있다면 다시 개발자의 손을 타야하고, 개선점이 보이면 또 다시 개발자는 코드를 수정합니다. 이렇게 써놓고 보니 개발자는 참 사내에서 중책을 맡고 있다는 생각이 듭니다. 모든 아이디어의 집합이 개발자의 손에 만들어지니 말이지요. (어쩌면 구현 속도가 회사의 속도와 동일할지 모릅니다.) 혹자는 코드의 질을 조금 훼손하더라도 빠르게 생산해내는 것을 으뜸으로 칩니다. 내 주변의 누구는 단 기간에 게임을 많이 개발하여 포트폴리오를 구성하고 코드 퀄리티 보다 높은 생산성을 어필하여 좋은 점수를 받았다고 합니다. 또 최신 연구를 빠르게 구현하여 공개하는 일을 통해 세계적인 주목을 받은 일화도 있습니다. 높은 생산성은 개발자의 훌륭한 개발자의 중요한 자질임에 틀림 없는 것같다는 생각이 듭니다. 머릿속에 잇는 프로세스를 코드로 옮기는 일에 막힘이 없는 개발자가 되고자합니다.

     

     


    참조

     

    What Is a Senior Developer and How Can I Become One?

    7 QUALITIES THAT DIFFERENTIATE A GREAT PROGRAMMER FROM A GOOD PROGRAMMER

    Good Developer 1 | 좋은 개발자의 5가지 기준

    성공하는 IT 개발자가 갖추어야 할 역량들

    흔하지 않고 좋은 웹 개발자가 되는 방법

    신입 개발자 면접 준비 (1) : 일반 면접 관련 예상 질문(개발 외)
    면접담당자를 진행하면서 느낀점

    '[+] 기타 [+]' 카테고리의 다른 글

    글또 5기 : 시작! 다짐!  (0) 2020.11.05

    댓글

Designed by Tistory.