Good programmer 2 - HOWTO be professional

in #kr-dev7 years ago

초급/중급 개발자를 구분 하는 것은 쉬운 일이 아닙니다.
10년 된 개발자도 "나는 초급이야"라고 하는 경우가 있으며, 3년이 된 개발자에게 "저 사람은 프로야"라고 하는 경우도 있습니다.

제 기준으로는 회사에 입사해서 프로젝트를 한, 두번 수행해 보면 그 분야에서는 초급 딱지를 뗏다고 볼 수 있습니다. 회사의 규모에 따라 다르겠지만, 스타트업의 경우 비교적 이 기간이 짧습니다. 한사람이 이것저것 많은 것을 손봐야하기 때문일 것입니다. 이 기간 동안(길게는 5년 짧게는 2년 정도) 경험치가 많이 쌓입니다. 좋은 멘토를 만난다면 급성장도 가능합니다.

이 바닥은 정말 누구를 만나느냐가 중요한 것 같습니다. 동료도 중요합니다. 결국 회사에 좋은 구성원이 있으면, 서로서로 도움을 주게 되어있습니다. (시너지 효과를 제대로 보는 것입니다)

아무튼 이 기간을 지나면 어떠한 프로젝트도 두렵지 않다는 마인드가 생길 법도 한데, 실제로는 그렇지 않습니다.

  • 첫번째 이유는 이 바닥에서 많이 알면 알 수록 모르는게 더 많아지기 때문입니다.
  • 두번째 이유는 두번의 프로젝트에서 얻을 것을 제대로 얻지 못했기 때문입니다. 이는 환경의 요인도 있습니다.

첫번째 이유로 고민한다면, 좋은 방향으로 가고 있다는 징조입니다.

풀 스택(Full stack) 개발자라는 말이 있습니다.
웹 개발에서는 Front End(HTML, CSS, JS) 부터 Back End(Web server, WSGI, 시스템 설정) 까지 잘 하는 개발자라는 이야기입니다.
임베디드 쪽에서는 HW, SW, Service 까지 다 잘 하는 개발자라는 의미로도 쓰입니다.

결국은 이 방향으로 가게끔 되어있긴 합니다. 직접 모든 분야를 하지 않더라도 연관성을 맺고 대화할 수 있는 수준이 될 필요는 있습니다.
풀 스택이 되어야 하느냐 말아야 하느냐? 이 이야기는 나중에 좀 더 이야기를 하도록 하지요.

각기 다른 레이어의 일은 다른 언어를 사용하기도 하고 다른 구조를 가지고 있어서 단 시간에 숙련되기 어렵습니다. 심지어는 같은 레이어의 일도 옆사람이 뭘 하는지 이해하기란 쉬운일이 아닙니다.
"몰라서 못한다"는 이야기는 이 바닥에서 통용되는 이야기가 아닙니다. "배우면서 한다"는 생각을 항상 가져야 합니다. 주변에 좋은 사람들이 있다면 덜 불안해질 수는 있습니다.

이 경우 개인에게 중요한 것은 메타 인지인데, "아는 것"과 "모르는 것"을 구분할 수 있는 능력을 말합니다.

question1.jpg

두번째 이유는 개인 환경의 이유와 사회 환경의 이유로 나눌 수 있습니다.
개인적인 이유라면 "머리가 나쁜거다"라고 간단히 이야기할 수 있으나, 사람마다 학습의 속도는 다르기 때문에 대기만성형도 있습니다. 마라톤을 생각한다면 처음에 빨리 가는 사람이 꼭 유리하진 않지요. 꾸준히 쉬지 않고 가는 것이 중요합니다.

동기에 관한 문제가 있을 수 있습니다. 동기부여가 되지 않는다면 학습 곡선이 나아지기 어렵기 때문입니다. 그리고 "나는 이 일을 하는데 동기부여가 되는가"라는 자문을 해보면 좋을 것 같습니다.

한국의 교육은 그다지 자율적이지 못하기 때문에 "메타 인지 능력"과 "동기 부여"를 키우는 것이
이 바닥에서 뿐만 아니라 인생에서 큰 도움이 될 수 있을 것입니다.

20:60:20 의 법칙이 있습니다. 20프로는 나아가게 하고, 60프로는 따라가고, 20프로는 반대로 가게 한다. 심지어는 앞의 20프로 사람들을 모아 두어도 20:60:20 법칙은 유효합니다.

마지막 20프로의 사람들도 "나는 나아가게 하는 사람이야"라고 생각한다고 합니다. 이 사람들에게 "아니야 너는 아니야"라고 이야기 해 봤자 입만 아플 뿐입니다.

이 사람들이 꼭 능력이 없어서 그런 것은 아닙니다. 능력과 무관하게 좋은 개발자와 나쁜 개발자는 구분되어야 합니다.
사회 환경적 요인은 항상 있다는 점이며, 이를 극복해 나갈 문화가 있느냐가 중요합니다.
스크럼을 쓰는 것은 매우 좋은 문화적 정책이지만, 그 밑에 있는 조직문화가 수직적이라면 스크럼도 잘 될 턱이 없습니다.

  • "다양한 사람들"이 "다양한 소리"를 낼 수 있고 그것이 받아들여질 수 있도록 하는 것,
  • "양심"에 따라 정직해 지는 것
  • "실수"에 솔직하고 팀이 책임 지는 것
  • 좋은 팀을 키워서 좋은 소프트웨어를 만드는 것

맺음말

더 나은 좋은 개발자로 스스로 발전하려는 마음을 가지고 노력하려는 의지가 있다면 이미 좋은 개발자입니다.
좋은 조직 문화를 만들고자 한다면 너무나 훌륭한 개발자일 것입니다.
이 과정은 끝없이 스스로를 개선시키고 환경을 변화시킬 것입니다. 그것이 프로입니다.

Sort:  

프로그래밍은 하면 할수록 모르는게 더 생기는 것 같아요
잘 모르고 있으면, 그만큼 더 해야될 게 안보이는...

그런데 하면 모르는게 하나씩 생깁니다. 마치 버그처럼요.

그런 것이 묘미입니다. 그리고 겸손해져야 하지요.
자신감을 갖고 표현하되 겸손해져야 많은 것들을 알게 되는 것 같습니다.

잘읽고 갑니다. !!
팔로우하고 갈게요!

감사합니다. 자주 들러주세요...

Congratulations @agile! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

팔로하고 갑니당. 리스팀!

프로그래머 분들은 뭔가 멋있어 보입니다. ㅋ 어릴때 동경이 있어서 그런지 팔로우하고 갑니다~

Coin Marketplace

STEEM 0.22
TRX 0.21
JST 0.035
BTC 98705.91
ETH 3342.47
USDT 1.00
SBD 3.14