brunch

You can make anything
by writing

C.S.Lewis

by 김영욱 Oct 07. 2022

당신이 훌륭한 개발자라는 5가지 증거

<해외 글에 제 견해를 추가하였습니다.>

최근들어 더욱 많은 사람들이 개발자, 소프트웨어 엔지니어, 프로그래머가 되기를 원하고 이미 그 자리에 있는 분들은 자신의 기술을 향상시키기를 원합니다. 소프트웨어 엔지니어로서 프로그래밍을 더 잘하고 싶어하는 주된 이유는 더 똑똑한 방법으로 극도로 어려운 문제를 더 빨리 해결하고, 멋진 애플리케이션을 통하여, 많은 경험과 기회를 얻는 것입니다. 그러다 보면 경제적 여유를 얻을 수 있는 행운도 주어지구요. 이 글은 훌륭한 개발자는 어떤것인가를 다루는 글입니다. 다른 개발자와 구별되는 훌륭한 소프트웨어 엔지니어의 특성 5가지에 대해서 기술하고 있습니다. 물론 '훌륭함'에 대한 정의가 우선이고 이 5가지 말고도 더 많겠지만, 읽어 볼만한 가치가 충분해서 추천드립니다. 제 경험에 근거한 견해도 몇가지 추가 하였습니다.

https://javascript.plainenglish.io/5-signs-that-youre-a-great-developer-1209f432be76


1. 다른 분야도 잘한다.

많은 개발자들이 놓치고 있는 부분입니다. 프로그래밍은 모니터 앞에 앉아서 몇 시간 동안 코딩하는 것만이 아닙니다. 프로그래밍은 두뇌가 문제를 해결하기 위한 방식으로 작동하도록 직접 변경하고, 알고리듬을 정리하고, 문제를 더 효율적으로 해결하므로 삶의 여러 측면에 실제로 영향을 미칩니다. 우수한 프로그래머는 특히 기술 관련 방향에 대해 이야기하는 경우에는 매우 관심이 있지만, 그 외의 세상 흘러가는 그 외의 일이라고 판단이 되는것들에 대해서는 무관심합니다. 여러 분야에 대해 잘 알고 있는 프로그래머라면 더욱 훌륭한 소프트웨어 엔지니어가 될 수 있습니다. 그게 꼭 기업가 정신일 필요는 없습니다. UI/UX 디자인, 카피라이팅, 기획, 마케팅 또는 다른 분야에 능숙할 수 있습니다. 당신이 좋은 프로그래머라면, 다른 것에도 능숙해져야 합니다. 


2. 무언가를 만들 수 있다.

아직 아무것도 구축하지 않았다면 훌륭한 프로그래머가 될 수 없습니다. GitHub에서 연습하고 업로드하기 위한 몇 가지 간단한 프로젝트나 아직 빛을 보지 못한 더 복잡한 프로젝트에 대해 말하는 것이 아닙니다. 어떤 종류의 문제를 해결하는 실제 프로젝트에 대해 이야기하고 있습니다. 그것은 특정 그룹의 사람들을 돕는 서비스 또는 예를 들어 이전에 할 수 없었던 일부 작업을 수행하는 데 도움이 되는 어떤것일 수도 있습니다. 즉, 사람들을 실제로 돕고 그들의 문제를 해결하는 실제 프로젝트를 구축해야 합니다. 단지 연습을 위한 프로젝트가 아닙니다. 완전히 작동하는 하나의 완성체가 되어야 합니다.


3. 기술에 자신감이 있습니다.

 무엇인가를 시작하기 전에 "나 스스로 완성할 수 있을까?", "완성을 위해 지식과 기술이 충분한가?"라는 질문을 스스로에게 던져야 합니다. 응답이 부정적이면 이 작업을 시작해서는 안 됩니다. 또한 팀과 함께 일하거나 도움을 줄 수 있는 다른 사람이 있더라도 이 프로젝트를 혼자 구축해야 한다고 상상해야 합니다. 그것은 당신이 알고 있는 것과 이 과업을 성취하기 위해 알아야 할 것에 대한 이해를 줄 것입니다. 시작하기 전에 완전히 혼자 할 수 있고 동료 중 한 명이 팀을 떠나더라도 모든 것을 스스로 완성할 수 있다는 것을 확신하게 될 것입니다. 내가 방금 언급한 모든 것은 물론 이론적인 것입니다. 혼자 일하거나 그렇게 하는 것이 성공을 보장할 것이라고 믿을 필요가 없습니다. 팀은 모든 프로젝트 성공의 중요한 구성 요소이며 혼자보다 함께 작업하는 것이 훨씬 더 효율적입니다. 자신의 기술에 자신감을 가지면 분명 훌륭한 개발자가 될 것입니다! 


4. 문제 해결을 좋아합니다.

프로그래밍은 창의적인 사고를 장려하고 가장 효과적인 방법으로 문제에 접근하는 방법을 찾는것입니다. 그러나 그렇게 하기 위해서는 먼저 이러한 많은 어려움을 해결할 수 있어야 하고 그렇게 하고자 하는 열정이 있어야 합니다. 그래야만 개발자로서 성공할 수 있습니다. 이제 막 시작하고 그렇게 쉽게 생각했다면 완전히 잘못된 것입니다. 시작한지 얼마안된 초보자들에게서 많이 보이는 경향입니다. 당신은 진정으로 어려운 문제를 파악하지 못했을 뿐이며, 더 많이 배울수록 어려움은 더 어렵고 복잡해집니다. 문제를 해결할 뿐만 아니라 가능한 가장 효과적인 방법으로 해결하고 알고리듬 속도를 높이고 모든 것을 최적화해야 하기 때문입니다.


5. 유연한 모빌리티를 가집니다.

소프트웨어 엔지니어는 전 세계에서 가장 이동이 많은 사람 중 하나입니다. 그리고 이것이 위대한 개발자와 평균 개발자의 주요 차이점입니다. 훌륭한 엔지니어는 가능한 한 인생에서 최소한의 것을 가지고 최소한의 생활 방식을 가지므로 독립적이고 전 세계 어디에서나 이동할 수 있습니다. 예를 하나 들어, 첫 번째 엔지니어는 특정 PC를 가지고 있는 사람이고, 9 to 5의 루틴을 가지고 일과 프로세스와 영역에 국한된 일을 합니다. 두 번째 유형의 엔지니어는 원격으로 일하고 노트북을 하나만 있으면 어디서든지 어떤일이던지 완성할 수 있습니다. 지금은 펜데믹 이전의 삶과 매우 다른 삶을 살고 있습니다. 

모바일이 된다는 것은 훌륭한 개발자에게 중요한 자질입니다. 이 모바일은 물리적인 이동만을 이야기 하지는 않습니다. 프로그래밍 환경이 변하고, 사용하는 라이브러리와 백본 시스템이 바뀌고, 팀원이 바뀌어도 내가 할 수 있는 적응력은 최고가 되어야 한다는 뜻을 포함합니다.


이 외에도 훌륭한 개발자가 될 수 있는 덕목은 많이 있겠지요? 본인 보다 기술이 미성숙된 분들을 코칭할 수 있어야 하고, 내가 모자란 부분은 적극적으로 코칭을 받을 수도 있어야 합니다. 늘 발전하고 사회적 영향력을 생각하는 것도 중요한 부분이라고 생각합니다. 발전하는 열정을 가진 여러분들을 늘 응원합니다!

매거진의 이전글 유투브에는 6개의 다른 광고 유형이 있다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari