경쟁력 있는 소프트웨어 엔지니어가 되기 위한 조건

in #kr7 years ago (edited)

Screen Shot 2018-01-03 at 23.40.00.png

지금 전 세계적으로 좋은 소프트웨어 엔지니어의 수요가 엄청납니다. 곧 포화상태가 올 것만 같았던 소프트웨어 엔지니어 잡 마켓은 가상화폐가 성장하는것처럼 끊임없이 성장 해 왔으며, 아직까지도 좋은 소프트웨어 엔지니어는 너무나 찾기 어렵고 찾더라도 붇들어 놓기도 어렵습니다. 가상화폐라는 분야가 크게 부상함으로써, 좋은 소프트웨어 엔지니어의 수요는 계속해서 늘어날 것입니다. 빅4 IT 회사들은 좋은 소프트웨어를 찾기위해 인터뷰에 어마어마한 돈을 투자 해 왔고, 앞으로도 그 경쟁은 점점 치열해 질 것입니다.

아마존도 예외는 아니어서, 좋은 소프트웨어 엔지니어를 채용하기 위해서 엄청난 노력을 기울이고 있습니다. 현실적으로 탑 레벨 졸업생이나 경력자들은 구글, 페이스북을 선호 하기 때문에 아마존은 그 나머지를 데리고오는 분위기입니다. 회사의 네임벨류가 좋기 때문에 지원자는 언제나 차고 넘치지만, 회사 내에서는 언제나 소프트웨어 엔지니어가 부족해서 팀 곳곳에서 불평이 나올 정도입니다. 스탠다드가 높아 아무나 뽑을 수는 없다보니 프로젝트에 필요한 소프트웨어 엔지니어를 충분히 채우지 못하는 것이 현실입니다.

아웃스탠딩 소프트웨어 엔지니어

이렇게 소프트웨어 엔지니어가 많이 필요함에도 스탠다드에 타협을 하지 못하고 인력난에 허덕이는 이유는, 한명을 잘못 뽑으면 나머지 소프트웨어 엔지니어들에게 피해가 가고, 결과적으로는 기존에 잡고있던 엔지니어들까지 놓칠 수 있기 때문입니다. 페이스북, 구글, 아마존은 엔지니어가 갑입니다. 그중에서도 아웃스탠딩 소프트웨어 엔지니어는 프로젝트의 향방을 좌지우지 할 능력을 가지고 있기 때문에 무엇보다 중요한 리소스입니다. 그렇기 때문에 회사는 위험을 감수하면서 까지 기준 미달의 엔지니어로 확충하기 보다는 최대한의 경쟁을 통해서 소수라도 좋은 소프트웨어 엔지니어를 확보하려고 합니다. 그 결과로, 매우 까다로운 인터뷰 과정을 통해 선별합니다.

이렇게 까다로운 과정을 통해 입사한 사람들은 자연히 서로의 수준을 예상할 수 있고, 다들 만만치 않다는 것을 서로가 인지하고 있습니다. 그 덕분에 내가 A를 이야기 했는데 못알아들으면 그사람이 멍청해서 못알아들은것이 아니라 내 설명에 문제가 있을 수도 있다는 생각을 자연스럽게 하게 되고, 서로가 발빠르게 보완하는 식의 토론이 이루어 집니다. 토론 도중 감정적으로 부딛힌다거나 하는 경우보다는 문제 해결에 집중하는 경향이 있어 진행 속도가 엄청나게 빠릅니다. 이렇듯, 평범한 소프트웨어 엔지니어가 섞여있는 상황과, 아웃스탠딩 소프트웨어 엔지니어들만 모여있는 상황의 퍼포먼스는 체감상으로도 엄청나게 다릅니다.

이런 환경에서 일하는것은 개개인의 발전에도 지대한 영향을 끼칩니다. 물론 가끔은 대충 넘어갈 수 있는 일이 없어 숨막히기도 합니다. 이렇게 하겠다 하면 그래 그러자 하는 분위기가 아니라, "왜 그렇게 하는지", "대안은 없는지", "그렇게 안했을때의 문제는 무엇인지" 으로 시작해서 끊임없이 파고들기 때문에 스스로도 조금 더 치밀하게 변할 수 밖에 없습니다. 사서 고생하는 것 같지만, 장기적으로는 소프트웨어 엔지니어로써의 역량을 빠르게 키울 수 있는 길이라고 생각합니다.

그렇다면 좋은 소프트웨어 엔지니어들과 협업하고 경쟁하기 위해서는 어떤 역량이 필요할까요?

기본 지식

학부때 배운 기본 지식들은 엄청나게 중요합니다. 컴퓨터 알고리즘, 데이터구조, 컴퓨터구조, 운영체제 등은 소프트웨어 설계나 구현 그리고 토론 전반에 걸쳐서 끊임없이 활용됩니다. 복잡한 알고리즘이나 아키텍처를 논의하는데 당연한 것을 이해 못하면 토론에서 배제 될 수 밖에 없습니다. 그렇기 때문에 인터뷰 과정에서도 이런 부분을 확인 하는 과정이 녹아들어 있습니다. 물론 업무중에도 직 간접적으로 활용됩니다. 현재 학부생이라면 이 과목들의 공부에 전력을 다 해야 합니다.

새로운 기술에 뛰어들어 익히는 능력

나는 C++ 전문가야 라고 하면서 다른 것들을 배척할 수 있는 시대는 지났습니다. 좋은 엔지니어들이 모인 집단에서는,"이 부분에는 XX를 써보자" 라는 의견이 나왔을때 "그건 안써봤는데" 라는 말보다는 "그걸 사용하면 단점과 장점이 뭔지"를 논의합니다. 제가 최근 일한 두 회사와 면접을 볼때도, "xx 언어를 할줄 아냐"고 전혀 묻지 않았습니다. 좋은 소프트웨어 엔지니어라면 필요 없는 질문이기 때문입니다. 아마존에서는 새로운 언어를 익혀서 사용한다, 새로운 프레임워크를 사용하는 것은 당연한 것으로 인식하는 경향이 있습니다. 구글이나 페이스북도 물론 마찬가지일 것입니다.

반대 의견을 수용할 수 있는 관용과 반대할 용기

소프트웨어를 설계할 때, 최상의 결론에 도달하기 위해서는 수많은 반대의견이 나오게 마련입니다. "I disagree"를 입에 달고사는 아마존 애들은, 마치 그 말을 하기 위해서 노리고 있는것처럼 보이기도 합니다. 상대의 이야기를 비판적으로 수용하고, 이해가 되지 않는 부분은 이해 될때까지 설명을 요구하고, 자신을 수긍시키지 못하면 "I disagree"을 내밷습니다. 하지만 설득 시키는 순간, 언제 그랬냐는듯이 "ok, makes sense" 로 바뀝니다.

아웃스탠딩 소프트웨어 엔지니어들은, 일에 개인적인 호불호나 감정을 담기 보다는 해결 지어야 하는 타겟을 보고 동의와 반대를 합니다. 이런 문화는 한국 사람들에게는 불편하고 힘듭니다. 저 또한 적응하는데 너무나 힘들었습니다. 상대의 동의하지 않음을 감정적으로 받아들이지 않을 수 있게 되면, 상대의 의견에 "I disagree" 하는것도 점차 쉬워집니다. 이 부분이 팀의 퍼포먼스에 굉장히 큰 차이를 만듭니다.

솔직함

모르는것을 솔직히 인정하지 않고, 빙빙 둘러댄다거나, 말을 돌린다거나, 우긴다거나 하는 사람은 최악의 구성원입니다. 아무리 1번 2번 3번이 완벽해도, 솔직함이 없으면 좋은 소프트웨어 엔지니어가 될 수 없습니다. 아는척 하거나 우기는것은 본인에게도, 다른 팀원들에게도, 프로젝트에도 100% 부정적인 영향을 미칩니다. 그리고 아는척 하는것은 다른 동료들도 모두 알고 있습니다. 그냥 거론 하지 않는 것 뿐이지요.

모르는것은 모른다고 최대한 빨리 이야기하고, 질문을 하거나, 더 잘 알고 있는 사람에게 주도권을 넘겨줘야 합니다. 그것은 지는것, 쪽팔리는 것이 아니라 팀의 효율을 높혀주는 매우 발전적인 행동입니다. 그렇기 때문에 좋은 소프트웨어 엔지니어는 반드시 솔직해야 합니다.

맺음말

소프트웨어 엔지니어라는 직업은 정말 축복 받은 직업입니다. 시대를 잘 만난 덕분에 선택 할 수 있는 일이 너무나도 다양하고, 대우도 좋으며, 프로젝트에서 가장 중요한 존재로 당당하게 일할 수 있습니다. 경쟁력 있는 소프트웨어 엔지니어가 됨으로써, 더 많은 기회를 얻게 되시길 빕니다.

Sort:  

Helpful and useful post thank dear for sharing

why no some english xD

개발자는 아니지만 저에게 많은 깨닳음을 주는 좋은글이었습니다. 잘봤습니다. 약소하지만 응원의 보팅을~!! 앞으로도 좋은글 부탁드립니다. 감사합니다.

@hwantag님 보팅감사합니다. 앞으로도 자주뵈어요^^

공감가는 글이예요.
정말 괜찮은 엔지니어 뽑기가 하늘의 별따기죠.
다른 분야도 마찬가지겟지만 SW 엔지니어의 능력과 퍼포먼스는 정말 천차 만별입니다. 요즘은 다 고만고만한 3D 업종이라고 생각하는 것 같지만 앞으로도 쭈욱~ 가능성 있는 분야인데다가 점점 세분화되는 덕에 한분야만 파도 먹고 사는데 지장이 없는 직종이죠.
단, 말씀하신대로 변화에 유연하게 대처해야하고 기술과 트랜드 습득을 일상화 해야한다는거~

여튼 개인적으로는 아주 좋은 직종? 직업이란 생각이 듭니다.
감사합니다.

참 옜날에는 개발자 포화상태로 노가다대우받을거라는 말까지 나왔었는데. 폭발적인 수요증가가 도왔지요 ^^

소프트엔지니어는 정말 가치있는 것을 만들어 내는 것 같습니다.
시대적인 요인도 있지만 업무 자체가 굉장히 매력적이네용

맞습니다. 적성만 맞으면 참 괜찮은 직업입니다.

잘 읽고 갑니다. 특히 소프트웨어 엔지니어가 축복받은 직업이라는 부분에 깊은 공감합니다.

얼마나 갈런지모르겠지만, 계속 준비하는 사람한테는 꾸준히 기회가 있는 분야같습니다. ^^ 감사합니다!

컴퓨터 전공을 하고있는 학부생입니다.
언젠가 경쟁력 있는 소프트웨어 엔지니어가 될 수 있기를
바래봅니다 :)

앗 줄리안님 컴퓨터 사이언스이셨군요. ㅋㅋ 화이팅입니다!!

백퍼 리스팀 감입니다.!!!
같은 업계 종사자로써... 정말 한두명이 프로젝트 전체를 망치는 일이 많거든요.
그런 사람은 말도 안통하더군요.
그리고 위에 써주신 솔직함 마저 없는... 자신의 실력이 탄로날 것을 무서워해 오히려 때쓰고 억지로 진행하는건 참....
다른 사람들은 이미 다 알고 있는데 말이죠 그런사람의 실력을 말이죠..

암튼 최근에 프로젝트에서 그런 비슥한 부분을 겪다보니 너무 공감갑니다. 혹시 언젠가 소프트웨어 회사를 차린다면 채용에 적극 활용해야겠어요..!!! 인재 찾기는 힘들겠지만요..!!

저도 경험하신것에 너무 동감합니다. 갈등의 씨앗이 되고 모든것을 서서히 무너뜨리죠.
존경받을만한 리더가 되시면 인재는 반드시 찾을수 있다고 생각합니다 ^^

좋은글 감사합니다 저도 스팀잇을 알아서 축복받은 1인입니다

저도 최고의 행운이라고 생각합니다.^^

저도 소프트엔지니어 였는데... 지금은 백수...ㅎㅎ
괜찮은 직업이기도 하고 힘든 직업이기도 하고 장단이 있는거 같지만
본인이 잘하고 꾸준히 노력하면 대우 받을 수 있는 매력적인 직업이라고 생각합니다. 공감!!

본인이 잘하고 꾸준히 노력하면 대우 받을 수 있는 매력적인 직업이라고 생각합니다.

공감합니다. ^^

오, 글 정말 잘 쓰시네요! 저와는 다른 분야지만 대략적인 필요 능력과 일처리 과정을 알 수 있었습니다. 감사합니다. 잘 읽었습니다 :)

감사드립니다. ^^

asbear님의 이런 글을 보는 것만으로도 좋네요.ㅎㅎ
저야 개발자와는 거리가 멀지만..
앞으로도 좋은 글 많이 부탁드려요~~

@feyee95님 감사합니다.. ^^ 글을 쓸수있는게 새삼 넘 좋네요..

시대에따라 각광받는 분야가 있는거같습니다
지금은 소프트웨어 엔지니어가 그 시기인 듯 싶습니다
홧팅입니다

그런것같습니다. 블록체인이 떠오르면서 기회가 더 많아지고있구요.. ^^

역시 기본에 충실해야 하는군요ㅎㅎ
경쟁력있는 엔지니어가 될겁니다.ㅎㅎ

워니님 화이팅!!!!

좋은글 잘 읽었습니다.

저는 최근 약 1년간 서버 엔지니어로 일하다가 퇴사를 하였습니다. 요즘에는 비전공자이지만 개발자가 되고자 역삼동에 위치한 모 교육기관에서 6개월 과정 빅데이터 기반 개발자 과정을 수강하고 있습니다. Java 언어를 중점적으로 배웠는데 코딩을 하는게 참 쉽지가 않은 것 같습니다. 쉽지는 않지만 열심히 해볼 생각입니다. 종국적으로는 저도 훌륭한 개발자로 거듭나고 싶습니다.

혹시 실례가 되지 않는다면 필자님은 어떠한 업무와 직무를 수행하고 계신지 물어봐도 될까요?
그리고 덕담이나 충고, 조언도 좀 해주셨으면 좋겠습니다.

저는 텔레콤이랑 방송쪽 백엔드 서버 개발자로 10년정도 일하다가, 보안쪽 풀스택으로 2년 일하고 이제 파이낸셜쪽 풀스택으로 4개월째입니다. ^^
따라잡는 기간이시면, 공부에 시간을 아주아주 많이 투자하시고 개인프로젝트를 많이 하시기를 추천드립니다. 쉽지 않지만 왕도도 없는 것 같습니다..

조언 감사합니다. 묵묵히 열심히 하는 수 밖에 없을 것 같네요.

원래도 그랬을테지만, 소프트웨어 엔지니어는 크리에이터죠~ 말씀하신 역량과 조건 중에서, 저는 인정하는 자세가 가장 중요하다고 생각합니다. 그래야, 커뮤니케이션이 되고, 팀으로 시너지가 올라가니 말입니다. ^*

정확한말씀입니다. 소프트웨어 엔지니어가 독고다이처럼 혼자 가는 직업이라 생각하는 사람들이 있는데, 완전히 잘못된 생각이죠.. ^^

분야를 막론하고 협업을 해야 하는 모든 분들에게 적용되는 좋은 글이라 생각합니다. 특히 '반대 의견을 수용할 용기와 반대할 용기', '솔직함'에 공감합니다. 반대 의견을 감정적으로 받아들여서 반대를 위한 반대를 상대에게 돌려주는 경우도 경계해야 하죠.

공감합니다. 협업시에는 항상 스스로 경계할 필요가 있는것 같습니다.

저도 소프트웨어 개발자입니다. I disagree 하는 용기, 그리고 그걸 수용하고 It makes sense라고 말하는 지식과 수용력, 용기... 정말 멋집니다. 제가 꿈꾸는 협업방식이네요 정말로.......

그런 개발자이실것 같습니다. 그게 가능한 팀을 꼭 만나실겁니다!

아마존에 관심이 많은 사람으로서 또 들르겠습니다!

감사합니다! 인터뷰 준비관련 글도 적어왔는데, 추후에도 자주 적어보겠습니다 ^^

저는 하고 싶지만 그럴 환경이 안되네요..
4차산업시대의 딱 맞는 직업인데.. 휴

소프트웨어 엔지니어이신가요? 힘내세요. 오래된 문화를 바꾸는게 쉽지는 않다는걸 알다보니 참 와닿네요.

기계공학과를 다니던 시절에 컴퓨처라는 동아리에 있었습니다. 소프트웨어 엔지니어의 미래가 깜깜했는데, 요즘 참 엔지니어 몸이 귀해진것 같습니다. 좋은글 감사합니다

댓글 감사드립니다.. ^^

중학교 아들놈에게 코팅을 배우보게 하겠다고 생각하고 있는데...이쪽은 잘 몰라서....고민하고 있습니다..좋은 지식 얻고 갑니다.

외국에서는 애들이 Python을 많이 배웁니다. 제가 생각하기에도 파이썬이 좋지 않나 생각합니다. 재밌게 배우는게 많더라구요. ^^

넘넘 감사합니다

구구절절 공감이 가네요. 좋은글 감사합니다.

공감 감사드립니다....

블로그 하면서 이제 html공부를 시작했는데 .. 코딩의 세계는 무궁무진 한 듯 합니다. 지금은 취미이지만 잘 닦아서 개발자로 성장을 해보고 싶네요 ㅎㅎ 좋은 글 감사합니다 ^ㅆ^