하마
7k
2021-06-20 11:18:42 작성 2021-06-21 11:39:54 수정됨
5
1120

코딩을 잘 한다는 것, 코더가 되지 말라는 것


"코딩을 잘하는 사람" 보다는 ooo 사람이 되라.
"코더보다는 프로그래머가 되라" 
코딩이라는 단어에 대한 감각이 다들 다르니,  저런 식의 말들도 많이 있는거 같습니다.
저는 저런 식의 말들이 틀렸다라고 생각하진 않습니다. 옳은말입니다.
다만 그냥 저는 조금 다른 감각을 가지고 있습니다.

저는

개발자의 '코딩'은 소설가의 '글쓰기'와 같다고 생각 합니다.
소설가가 '글쓰기'를 잘하는 것은 가장 중요한 재능이나 노력의 결과인 겁니다. 
어떤 대학의 소설 한편 못써본 국문과 교수가, 직업 소설가를 바라보며 '글쓰기'는 사소한거다.
라고 말해바짜 비웃음만 당할 뿐이겠지요.  

'코딩'도 마찬가지입니다. '코딩'은 가장 중요한 덕목이며,
'코딩'을 잘하기 위해 서는 매일 매일 습작 하는 버릇을 들이고, 평생 '장인' 정신을 가지고 노력해야하는 일입니다.

지나가는 길에 방망이깍는 노인을 보고, 일기장에
"오늘 방망이 깍는 노인을 봤다, 신기했다" 라고 적는것과
그것을 주제로 수필을 쓰는 능력과는 천지차이겠지요. 토지같은 장편소설을 글쓰기 하는것은 스프링프레임워크를 코딩하는것과 일맥상통 합니다.

'코딩' 도 잘하려면  어느정도의 재능과 하루하루 쌓아가는  오랜기간의 부단한 노력이 필요합니다. 


'코딩'을 잘한 다는 것은 

1. 어떤 주제에 대해서 유려하게 구성을 잡고, 꼼꼼하게 빈틈을 채워나가는 능력을 보유 한다는 것을 말합니다. 누구는 어떤 주제에 대해 겨우 10줄밖에 못짜겠지만, 누군가는 200줄로 짤 수 있을 수 있습니다. 
여기서 이 200줄이 쓸모없는 것이 아니라, 모두 필요한 요소들이라면 이 격차는 어마어마 한 것일 겁니다.

2. 문제해결을 위한 기본적인 지식을 기반으로 가지고 있거나, 상황에 따라서  빠르게 공부 할 수 있는 능력을 가지고 있어야 합니다.

3. 문제해결을 유연한 사고 방식으로 다른 각도에서 바라 볼 수 있는 창의력으르 가지고 있어야 합니다.

4. 의사소통 위해 노력을 기울여야 합니다. 문서화/예제 코드 제공/세미나 등을 잘 할 수 있어야 합니다.

5. 기타

을 기반으로 코드를 작성해 나간다는 의미라고 생각합니다.


그러므로, '코딩'을 잘한다는 것은 우리 소프트웨어 개발자의 평생의 목적이지 않을까 싶습니다.
제 개인적으로 이렇게 정의를 내려 놓고 보니, '코딩' 을 잘하는 사람들에게 절로 존경심이 들며,  그 다음 단계로 관리자가 되어야지 코딩만 잘해서는 안되다는 말을 하는 사람들에게 쓴 웃음이 나거나 고깝게 보이 기도 하지만, 정의가 다르거니 하고 흘려 버리곤 합니다. 서로 다른 직무들에 대해서 서로 다른 전문가로써의 인정이 필요 하겠지요.


(TODO: 맺음말 쓸 것)


ps) 

주변에서 코딩잘하는 사람을 보기란 정말 어렵습니다.
물론 모든 사람들이 최고의 능력을 보일 필요는 없습니다.평범한 직업으로써의 능력만으로도 충분할 수 있으며, 삶을 영위하는데 존중 받을 수 있습니다. 이게 직업으로써의 소설가와는 조금 다를 수있는 부분 인거 같습니다. 

3
  • 댓글 5

  • 마라토집착
    5k
    2021-06-20 13:39:22 작성 2021-06-20 15:06:08 수정됨

    와 엄청나게 좋을 글입니다

    추상화능력 : 스케치 하듯 요구사힝의 경계를  잡아가면서 

    전산적 layer 와 실제 고객이 일하는(구현할) 프로세스를 맵핑 하는것 

    단, 그림에서 피카소 추상화 이런걸 떠올리면 안되고 layer를 몇개 더 두는 개념 ,  indirection 하는게 현실요구사항을 명확하게 정리 됩니다.  간극을 메워주는 핵심 컨셉도 도출이 되죠.

    이렇게 생각했는데 코더가 어떤건지 잘 보여주는  ㅎ.

    기막히게 추상화 잘된 글 입니다

    잘 읽었고 자주 되새김 필요하군요 

  • 마라토집착
    5k
    2021-06-20 14:13:48 작성 2021-06-20 15:08:11 수정됨

    본문 각 항목에 실례를 들어보면 

    2.  리액트와 es6  기본을 공부하면서 동시에 당장 실무에  쓸수있는  ui 프레임워크를 익히는 요령이 회사에서는 필요 하죠

    새로운 오픈소스를 공부하며 simultaneously 견고하게 운영반영 하는 능력 


    3. 기술적으로 서버사이드를 튜닝하면서 리팩터링 하면서

    동시에  현업 즉 고객의 요구사항도 리팩터링(소스코드가 아닌 업무절차를) 하는 비니지스 관점의 새로운 시각이 코딩시 필요 합니다.  ㅎ with different angle of view 

    -->  이 부분이 배민cto 유튜브 내용과 비슷요

    업무프로세스를 튜닝해서 코딩최소화 !

    업무 레이어 -- 브로커 -- 전산 레이어  ,  도메인엑스퍼트 역할, 기술적 예외 케이스는 디폴트로 고민 할것 

    4. 회사메일로 이슈를  글로 정리하고 팀원을 설득하는 능력도 코더의 덕목,  내가 적용할 모듈이 더 나은 더 견고 하다는것을  증명하는 과정을 즐기는 태도죠.  타이핑 치며 문서  만들기 짜증이지만 


    5. 기타는  그냥 취미가 코딩 인것,  지하철에서 할일  없으면 stackoverflow 사이트의 유명닉이 쓴 평점 좋은 게시물 같은것 읽는 태도  


    그리고 저도 딱 중간급 개발자로 코딩 잘하지는  않지만  내가 짠 코드가 실무에서 잘 작동해,  8시간만 딱 회사노동하는 평범개발자로도 충분 할수 있다는 글에 위안이 되네요

    내가 치열하게 살아야 하는데 잠잘것 잘것 다자고 ,  운동도 맘껏하고 취미로만 하는 코딩에 나이가 많아져서 정체감을 느꼈거든요

  • 늙은호랑이
    104
    2021-06-20 23:02:31

    "코딩"이란 단어를 엄청나게 광의로 표현하시네요.

    요구사항만 보고 바로 "코딩"한다는 느낌으로요.

    소프트웨어공학은 어디로 갔는지요?

    분석가, 아키텍트. 설계자들은 전부 사라지고 개발자가 시스템을 다 만든다는 상상이랄까요.

    지나가면서 개발자의 "코딩"을 너무 광내는 것 같아 배 아파서 한마디 합니다.

  • 재현아빠
    3k
    2021-06-21 08:30:16 작성 2021-06-21 08:32:06 수정됨

    저도 늙은호랑이 님 의견에 한표 드립니다. 코딩을 잘 한다는 의미가 너무 확대되어있는 것 같습니다.

    코딩을 잘한다는 것에 문서화/세미나 등이 왜 포함이 되어 있는지 잘 모르겠네요. 코딩을 잘한다는 말은 말 그래도 프로그램을 잘 짠다는 의미 아닐까요 ?

    소설가는 직접 소설을 위해 자료조사도 하고 모든 일을 하실 지는 모르겠지만, 프로그램을 개발한다는 게 코딩만으로 이루어지는 게 아니고 분석하시는 분이 분석하고, 그 분석으로 바탕으로 설계하고, 그 설계서를 바탕으로 코딩하고, 완성된 프로그램을 테스트해서 완성되는 거라 생각합니다. 분석하고 설계하고 코딩하고 테스트하는 모든 분야가 잘 이루어져야 훌륭한 프로그램이 나올 수 있다고 생각합니다.

    코딩이 그 중 하나의 부분이지 전체를 의미한다고 생각하지 않습니다. 모든 일을 한분이 하신다면 그분은 정말 분석도 잘하고 설계도 잘하고 코딩도 잘하는 분이신거지, "코딩"을 잘 하는 분은 아니지않을까요 ?

  • 하마
    7k
    2021-06-21 11:44:30 작성 2021-06-21 11:45:37 수정됨
    의견들 감사합니다. 
    최대 개발자 싸이트인데 더 많은 생각들이 있었으면 좋겠습니다만 페이지가 넘어가 버렸네요. 😂
  • 로그인을 하시면 댓글을 등록할 수 있습니다.