본문 바로가기
미국 개발자/HOOTips

[Q&A] 2년차 프로그래머인데 프로그래밍 실력이 늘지 않아요.

by Henry Cho 2023. 4. 3.
728x90

# "2년 차 프로그래머인데 프로그래밍 실력이 늘지 않아요."

프로그래머 (또는 개발자)는 자기 계발에 대한 고민에서 오는 답답함의 연속이라고 생각한다. 프로그래밍을 공부를 할 때는 어떻게 공부를 해야 할 지에 대해서 답답했다면 취업을 하고 신입 개발자에서 주니어급으로 넘어가는 과정에서 프로그래머로써의 실력이 정체되어 있는 기분이 들어 답답함을 느낄 수가 있다. 특히 학부를 졸업하거나 비전공자로써 일을 시작하고 나서 2년에서 3년 차쯤이 되었을 때 이러한 고민을 많이 하곤 한다. 실무에서 자신의 실력 향상이 필요하다는 걸 인지하고 있음에도 실질적으로 프로그래밍 능력을 어떻게 키워야 할지 잘 모르기 때문이다. 2년 차에서 3년 차는 신입 개발자와 주니어급의 중간 위치에 있기 때문에 업무가 숙달되지 않는 상황이라면 더더욱 시간을 내서 프로그래밍 실력을 향상하기가 어렵다.

물론 요즘에는 다양한 교육 프로그램과 플랫폼 등을 통해서 프로그래밍 실력을 어떻게 키워나가야하는지에 대해서 도움을 받을 수 있게 되었다. 하지만 그럼에도 글쓴이도 그랬고 주변 개발자 브로들이 고민이 많았던 시기 중 한 부분이 바로 신입과 주니어급 사이일 때였다. 그래서 이번 포스트에서는 2년 차 프로그래머가 어떻게 시간을 내서 자기 계발을 할 수 있는 방법에 대해서 경험을 공유해보고자 한다. 또한 이 질문을 했던 브로는 업무를 열심히 하면서도 추가로 자기 계발을 할 수 있는 방법에 대해서 알고 싶어 했다. 따라서 이번 포스트의 기준은 업무를 열심히 수행하여 실무 경력을 쌓으면서도 추가로 자기 계발을 할 수 있는 방법과 2년 차 프로그래머로써 마인드를 어떻게 가져야 편안할 수 있는지에 대해서 살펴보도록 하자.

# 2년차 프로그래머란 신입도 주니어도 아닐 수 있다.

우선 2년차 프로그래머 때에 대해서 기억을 더듬어 본다면, 참 애매한 시기였다는 생각이 남아있다. 글쓴이는 기업으로 가지 않고 연구원이 되었기에 개발자로서 어떤 분야의 연구원으로 일을 할 지에 대해서와 그러기 위해서는 어떤 분야의 개발 공부를 했어야 하는지에 대한 고민이 정말 많았던 것 같다.

과거와 달리 이제는 개발 분야가 정말 다양해졌고 분야에 따라 상황이 다를 수는 있다. 하지만 일반적으로 이직하지 않고 2년차 프로그래머 되었다면 업무의 흐름을 파악하고 익숙해져 있거나 이제 막 업무가 숙달되고 있을 것이다. 처음 신입으로 들어와서 비전공자이든 전공자이든 실질적으로 업무에 바로 투입될 수가 없다 보니 실무를 익히는데 1년 정도는 고생하는 편이다. 물론 취업 전부터 혼자서 해당 분야의 프로그래밍을 해보고 어느 정도 실력이 갖춰져 있다면 회사 내에 있는 1년차 선배보다도 더 능력이 뛰어날 수 있다. 하지만 프로그래밍에 대한 지식이 있더라도 실질적으로 회사에서 하고 있는 업무 내용을 숙지해야 되기 때문에 결과적으로 1년동안 무엇을 어떻게 하는지에 대해서 일을 하며 배우게 된다. 그렇기에 2년 차 프로그래머란 더 이상 신입이 아니면서도 주니어급도 아닌 애매한 상황일 가능성이 높다.

# 열심히 하는 것이 공부이자 실력 향상

2년차 프로그래머인데 프로그래밍 실력 향상에 대해 고민을 하고 있다면 글쓴이의 입장에서는 어느 정도 잘 성공한 케이스라고 본다. 업무 외 적으로도 자신의 능력에 대해서 고민을 한다는 것은 이미 업무가 숙달되었고 고민이 들 정도로 시간적 여유가 생겼다는 걸 보여준다. 시간적 여유가 생겼다는 것은 2년 동안 본인이 실무에서 경험을 쌓고 실력이 늘었다는 걸 의미한다. 하지만 프로그래머 또는 개발자라는 직업은 당장의 눈에 보이는 실력 변화가 이루어지지 않기 때문에 막상 당사자는 자신의 실력이 향상되었다는 걸 인지하지 못하는 경우가 많다. 그렇다 보니 본인의 실력이 정체되어 있다고 판단하여 큰 고민을 하지만 2년 차인데 프로그래밍 실력이 크게 늘지 않았다고 생각하는 것 자체가 욕심이라고 본다. 왜냐하면 2년 차까지는 자신이 맡은 분야에서 열심히 일하고 실무에 대해 완벽히 숙달하는 것 자체가 최종 목표이기 때문이다. 예를 들어 어떤 기업에 유지보수팀에 들어갔다고 가정해 보자.유지보수팀 막내로 들어가서 프로그래밍이라는 것은 하지 않고 정말 단조로운 일만 한다고 가정한다면 연차가 쌓이면서 조급해질 수도 있다. 개발팀에 있는 친구들은 힘들지언정 직접 프로그래밍 개발을 하며 경력과 실력을 쌓고 있는데 본인은 유지보수팀에서 아무 실력 향상도 없이 고여있다는 생각을 가질 수 있다. 하지만 앞서 이야기했듯이 어떤 분야에 어떤 팀이건

1년, 2년 차는 배우는 단계의 개발자 또는 프로그래머에 해당한다. 개발팀에 갔어도 처음부터 신입 개발자가 개발하는 것이 아니라 배우는 시간을 거쳐 경험을 쌓는 것이다. 한마디로 어떤 방법으로 경험을 쌓느냐가 다를 뿐 솔직히 1년, 2년 차 개발자에게는 실무 업무에 대한 공통적인 경험을 쌓는 시간에 해당한다.

# 업무를 100% 흡수해야한다.

글쓴이가 봐 온 프로그래머 브로 중 한 명은 취업하고 나서 본인 업무를 소홀히 하고 직장에서 시간만 흘려보냈었다. 업무를 하긴 하지만 해당 업무를 끝내는 거에만 초점을 두고 업무에서 한 프로그래밍이나 개발 방식에 대해서는 신경 쓰지 않았다. 물론 신입 때는 맡은 일이 어렵지 않고 못해도 이해해 주니까 괜찮다. 하지만 시간이 지남에 따라 업무를 소홀히 하면 본인 실력은 정체되어 있다. 결국 회사에서 잘리거나 무능력한 프로그래머 소리를 들으며 살게 된다. 물론 미국 기업의 경우는 예외 없이 Bye다. 글쓴이가 이야기하고자 하는 바는 1년에서 2년 차 프로그래머라면 본인이 맡은 업무를 열심히 하고 모르는 부분은 찾아가면 100% 흡수하려고 노력해야 한다.  업무를 수행하고 끝이 나는 게 업무를 완벽히 했다고 말할 수 없다. 업무에 한 모든 개발 과정과 경험들을 이해하고 응용할 수 있게끔 만들어야 업무를 완벽히 수행했다고 볼 수 있다. 우리가 흔히 개발 능력은 노력보다 재능이라고 한다. 하지만 글쓴이가 느낀 바로는 회사에서 필요로 하는 개발자 또는 프로그래머의 역량은 노력으로도 충분히 가능하다는 것이다.

# 방향성과 목표 분야

업무 외에 딱 한 가지를 추가해 보자면 방향성과 목표에 대해서 정확히 인지해야 한다는 점이다. 2년 차 개발자는 더이상 신입 개발자가 아니다. 한마디로 능력으로 평가를 받는 진정한 의미의 프로그래머 또는 개발자가 된 셈이다. 따라서 2년차 프로그래머 또는 개발자라면 이제는 자신의 분야에 대한 어느 정도의 확신을 가지고 있어야 한다. 본인이 최종적으로 프로그래머 또는 개발자로서 경력을 쌓아서 어떤 분야로 갈 것이고 어느 레벨까지가 최종 목표인지에 대해서 정확한 목표 의식을 가지고 있어야 한다. "어떻게든 되겠지, 일단은 프로그래머로 일을 하고 있으니까."라는  생각이라면 수명이 짧은 프로그래머 중 한 명에 그치지 않거나 일명 최근 한국 개발자 사이에서 흔히들 말하는 연차만 쌓고 실력 없는 PM이라는 소리를 듣게 될 것이다. 한마디로 자신의 전문성을 나타낼 분야를 정해야 되는 시점이 바로 2년 차이다.

# 고민을 한다는 건 좋은 Signal

앞서 이야기했지만 2년 차인데 추가적인 공부를 하고 싶어 하고 실력 향상에 대한 고민은 욕심이라고 했다. 업무에 차질이 없다면 이러한 욕심은  앞으로의 미래가 긍정적인 좋은 Signal이다. 하지만 방향성을 정하지 못해 방황한다면 우선적으로 앞으로 어떤 경력을 가지고 나아갈 건지를 우선적으로 정해야 한다. 한마디로 방향성과 목표를 먼저 세우라는 것이다.

# 작은 것부터 시작해라

글쓴이와 같이 욕심쟁이들에게는 사실 뭔가 더 하고 싶어 하는 마음을 막을 순 없다. 방향성을 가지고 있으면서 일적인 부분 외에도 프로그래밍 실력을 키우고 싶다면 자신이 생각한 분야의 공부를 틈틈이 하는 것이 가장 좋다. 그 공부가 처음부터 거대한 프로젝트가 아닐지라도 작은 것부터 시작해도 좋다. 물론 Side projects까지 할 정도로 능력이 되면 좋겠지만2년 차 프로그래머한테 할 일 다 하면서 "Side projects도 해보세요" 하는 것은 어려운 일이다. 특히 밤새서 야근하고 있는 2년차 프로그래머한테 면전에다가

이렇게 이야기한다면 100% 주먹으로 인중을 맞을 것이다.  (포스트 업데이트 이전에 썼던 표현인데 당시에 감정이입이 많이 되었었나 보다.)

한마디로 글쓴이가 말하고자 하는 공부는 정말 단순한 것부터 시작하라는 것이다. 하루에 1시간이 될 수도 있고 30분이 될 수도 있지만 도전해 보는 것이다. 예를 들어, Tensor flow를 다뤄보지 못했다면 웹사이트에 가서 무엇인지 살펴보거나 웹프로그래머인데 PM이 잘 알지도 못하면서 조언해 대는 꼴을 보기 싫어서 보다 더 전문 분야로 가고 싶어서 Data Science 분야로 가고 싶다면 Data Science가 무엇인지에 대해서부터 살펴보는 것이다. (언제든 궁금한 점에 대해서 글쓴이와 이야기를 나누고 싶다면 환영이다.) 여기서 유의할 점은 의욕이 앞선다고 무리해서 공부하다 보면 더 큰 슬럼프에 빠질 수 있다.

# Side Projects

10년이 지났음에도 아직도 프로그래머로써 실력 향상을 하기 가장 좋은 방법은 사이드 프로젝트(Side projects)이다. 사이드 프로젝트가 좋을 수밖에 없는 이유는 이상과 현실을 모두 다 가지고 있기 때문이라고 본다. 우선 프로그래밍 실력을 향상한다는 것은 결국 직접 해보고 경험과 스킬을 쌓는 것이 제일 좋은 방법이다. 그렇기에 우리들은 수많은 예제 코드를 봤었고 수많은 코딩 과제들을 해왔던 것이다. 사이드 프로젝트는 이러한 과제와 코드들의 상위 버전 연습이라고 생각하면 된다. 두 번째로 우리는 프로그래밍 실력 향상을 위해 공부하는 데에만 시간을 소비할 수는 없다. 마치 코딩에서 효율성을 중시하듯이 현실에서는 공부를 했다는 것이 경력으로 입증하기가 어렵다. 하지만 관련 분야의 사이드 프로젝트는 프로그래밍 연습을 할 수 있는 거와 동시에 사이드 프로젝트가 하나의 포트폴리오가 될 수 있다. 목표가 정해져 있는 사이드 프로젝트는 프로그래머에게 동기 부여를 주고 목표를 달성함과 동시에 자기 계발과 더불어 프로그래머 경력에도 도움이 된다.

# Side Projects는 작은 것부터 시작하는 게 좋다.

사실 사이드 프로젝트를 하면 좋다는 걸 대부분의 개발자 또는 프로그래머들은 알고 있을 것이다. (몰랐다면 오늘부터 알면 된다.) 하지만 문제는 사이드 프로젝트가 부담되어 시작하기를 힘들어한다는 것이다. 예를 들어 글쓴이의 경우에도 처음부터 큰 사이드 프로젝트에 참가하여 프로젝트 상금도 받고 경력에도 큰 도움이 되었으면 하는 바람을 가지고 있었던 적이 있다. 하지만 결국에는 끝까지 마무리를 하지 못하거나 정말 많은 시간을 투자해야 하다 보니 사실상 사이드 프로젝트가 아니라 메인 프로젝트에 가까웠던 적도 있다. 그렇다 보니 사이드 프로젝트를 하면서 즐기는 것이 아니라 사이드 프로젝트로 인해 받는 스트레스가 더 커지기도 했었다. 글쓴이가 느낀 점은 자신의 레벨과 비슷한 사이드 프로젝트를 선택하여 주요 업무에 피해가 가지 않는 선에서 즐기면서 사이드 프로젝트를 해야 한다는 것이다.사이드 프로젝트는 본인의 실력을 향상하고자 자발적으로 시작한 추가적인 프로젝트이다. 따라서 스트레스받는 하나의 일이라고 생각하면 안 되고 나의 또 다른 취미 생활이라고 생각이 들 정도로 사이드 프로젝트에 임해야 한다. 그러기 위해서는 본인의 레벨에 맞는 적당한 사이드 프로젝트부터 시작하는 것이 가장 중요하다. 그렇다 보면 나중에는 어렵게만 느껴졌던 사이드 프로젝트들이 쉽고 재미있다는 생각이 들기 시작한다. 글쓴이도 프로그래머에서 개발자가 되고 나니, 이제는 사이드 프로젝트를 하는 것이 즐겁고 기대된다.


 

728x90

댓글