좋은 개발자가 되고 싶은 모든 분들에게

좋은 글을보고 개발자가 될려고 하는 모든 분들에게 도움이 되는 글을 큐레이션 합니다.

결론부터 말씀드리자면 결국 개발자는 평생 공부를 해야합니다. 계속 공부하면 좋은 개발자로써 성장하게 됩니다.

개발자 붐이 일어나면서 너도 나도 개발자가 되겠다고 커리어를 바꾸는 분들을 최근 1년 사이에 많이 보게 되었습니다. 성공적으로 개발자가 되시는 분들도 계시고, 도전에 실패하여 원래 하던 일을 계속 하시는 분들도 있습니다.

개발자의 몸값이 급격하게 올라가면서 많은 직장인분들이 개발에 관심을 가진다는 건 현업자 입장에선 매우 좋게 생각합니다. 다양한 사람들이 모여서 좋은 개발 문화를 만드는데 이바지 할 수 있다는 생각을 가지기 때문입니다. 또한, 개발자 시장은 언제나 사람이 부족하다는 이야기를 합니다. 그 말은 사실입니다. 함께 일하기 좋은 개발자가 생각 이상으로 적기 때문이죠.

여기서는 어떻게 개발자가 되는지, 개발을 시작하려는 분들에게 가이드를 드릴 수 있는 글을 적어보고자 합니다.

왜 개발자가 되고 싶으세요?

개발자가 핫하긴 핫한가 봅니다. 나중에 이 글을 읽을 때 열기가 식어 있을 수도 있지만 이 글을 쓰는 현재는 개발자라고 소개하면 요즘 돈 많이 받지 않냐? 란 소리부터 듣습니다. 현업으로 있는 제가 그 열기를 직접 느끼고 수혜도 받았기에 할말은 없습니다. 다만, 연봉만 보고 들어오기에는 여러 단점이 존재합니다.

개발 정말 어렵습니다. 매일 공부해야하고, 커뮤니케이션 많이 해야하고, 대기업이 아니라면 업무 범위도 넓고.. 네 힘듭니다. 퇴근 후에 다른 공부(예를 들면 재태크)를 하면서 다른 일을 하고 싶지만, 직장인으로써 개발자는 시간이 정말 부족합니다.

그렇다고 회사를 나와서 혼자서 하기 시작하면, 개발자로써 경험하고자 하는 대량 트래픽 등 좋은 경험들을 할 수 없습니다. 계속해서 외주를 받아서 프리랜서를 하거나 상대적으로 낮은 기술들만 가지고 일을 할 수 있습니다. 개발자가 큰 서비스 회사를 가는 이유이기도 합니다.

그래서 하지말라? 라고 질문한다면 개발을 어느 정도 즐길 수 있는 분들에게 추천합니다. 어렵더라도 문제를 해결하고 무언가 만들었다는 뿌듯함을 즐긴다면 당신은 개발자와 아주 어울립니다! 정말로요!

개발 공부는 어떻게 할까요?

개발 공부는 다양한 방법이 있습니다. 이 다양하다는 말은 다시 말하면 선택할 수 있는 선택지가 많아서 초보에게는 방황할 수 밖에 없는 좋지 않은 상황이 포함되어 있습니다.

상황에 따라 대학 전공으로 배운다거나, 학원에 가서 배운다거나, 온라인 수업을 통해 독학을 한다거나 다양한 방법이 있다는 거죠.

이런 방법보다 좀 더 실력을 올릴 수 있는 방법들을 이야기 해보겠습니다.

문서(Document)를 보자.

의외로 문서를 보지 않는 분들이 많습니다. 새로운 언어를 배우거나, 새로운 프레임워크, 라이브러리를 익힐 때, 기본 문서는 많은 도움이 됩니다. 잘 정리된 문서는 튜토리얼도 제공을 하니 따라하면서 제공된 기능들을 익힐 수 있습니다. 다만, 번역되지 않은 문서들이 많아 힘들 수 있습니다.

번역되지 않은 것은 구글 번역을 통해 번역을 하고, 뜻을 유추해서 기능을 사용함으로써 빠르게 익힐 수 있다는 장점이 있습니다. 그래서 프로그래밍을 배울 때 가장 먼저 배워야 할 언어가 영어라는 이야기가 있습니다. 영어 공부를 병행하기 위해 꼭 문서를 먼저 보면 좋습니다.

문서를 보고 많이 막히게 된다면, 정제되고 좋은 리뷰가 많은 국내 기술 서적을 보시면 됩니다. 단계는 그렇게 밟아 가는게 좋습니다. 진짜 아무것도 모르고 따라가고 싶다면 온라인 강의가 마음 편합니다. 다만, 온라인 강의도 찾는 시간이 많아 쉽지는 않습니다.

반드시 내 것으로 만들자.

여러분이 개발을 하게 되면 구글 검색을 많이하게 됩니다. 모든 것을 외울 수 없기 때문에 구글 검색은 할 수밖에 없습니다. 하지만 검색한 결과를 가지고 결과물을 만들고 땡이 아닙니다. 이것을 꼭 나만의 지식으로 구축해야 합니다. 왜 저 사람은 이렇게 만들었고, 왜 결과가 이렇게 나오는지를 알아야 합니다.

여러분이 다른 사람이 쓴 글로 도움을 받았다면, 스스로도 도움을 줄 수 있는 사람이 되어야 합니다. 그 과정에서 남의 지식이 내 지식이 되는 마법을 느낄 수 있습니다.

꼭 사용한 지식에 대해서 내 것으로 만들기 → 지식을 나누기

어떤 지식이든 누군가에게는 필요한 지식이 됩니다. 나눔을 시작하면 머릿속에 오래 남는 지식이 될 확률이 높습니다. 그 과정을 나눠보시는 걸 추천합니다.

주변 리소스를 잘 활용하자.

강의를 듣던, 책을 보고 공부하던, 학원을 다니던 얼마나 많은 질문을 하셨을까요? 질문을 하기 전 답을 찾는 과정이 필요는 하지만 찾다가 지쳐서 포기하시는 분들도 많습니다. 그럴때는 주저하지 말고 커뮤니티, 선생님들에게 꼭 질문을 해보세요. 특히 학원은 질문에 대한 답을 얻는 것도 과정에 포함이기 때문에 많은 질문을 해야 스스로에게 남는 것이 많습니다.

물론 질문하고 나서 꼭 기록하여 반드시 내 것으로 만들자에 나온 것처럼 다시 나누면 더 좋습니다. 똑같은 질문을 여러번 대답하는 것은 쉬운게 아니기 때문이죠. 이 점만 명심하신다면 어려운 점이 있을 때 꼭 질문을 하셔서 답을 얻으세요. 그러면서 스스로의 지식을 빠르게 습득한다면 좋은 개발자에 빠르게 도달할 수 있습니다.

새로운 것을 만들자.

개발자는 새로운 것을 만들어야 합니다. 이 말이 어렵게 느껴질 수 있습니다. 우리가 흔히 하는 게시판 만들기, To-do list 만들기와 같은 것이 아닌 새로운 상품을 만드는 것은 개발을 할 때 좋은 경험이 됩니다.

예를 들면 크롤링과 관련된 책은 많습니다. 그렇다면 어떤걸 크롤링 할까요? 크롤링 한 것을 토대로 어떤 툴을 만들어 볼까요? 이와 같은 고민을 시작하셨다면 이미 새로운 것을 만들기 시작한 것입니다. 누가봐도 사용하지 않더라도 내가 재밌을 것 같다고 생각이 된다면 만들어 보세요. 그 과정이 매우 어렵고 힘들어도 문제를 해결한 경험은 어떤 일을 하더라도 도움이 됩니다.

채팅, 정산, 배송, 경매, 푸쉬, 광고, 추천 등등 다양한 기능들을 만들어 본다면, 면접을 볼 때 물어볼 것입니다. 어떻게 혼자서 이런걸 만들었는지 말이죠. 그리고 이런 것들은 전부 기능 명세가 다르고 사용 기술도 다양하기 때문에 실력을 올리기에 매우 좋습니다.

새로운 것을 두려워하지 말자

짧은 시간은 아니지만 10년 넘게 개발을 접하면서 어제도 오늘도 개발은 새롭습니다. 어제 배운 기술이 오늘 또 새로운 것으로 대체가 될 때도 있습니다. 그럴 때보면 따라가기 힘들지 않을까 생각을 하곤합니다.

개발자가 되면 공부를 덜 할 수도 있다고 생각합니다. 전혀 아닙니다. 오히려 더 많은 기술을 배워야하며, 끊임없이 새로운 기술들이 들어옵니다. 그 기술 중 우리가 필요한 것들만 배우는 눈도 필요합니다.

개발 공부를 하면 할수록 느껴지는 건 기본을 잘 배워두면 새로운 것이 나와도 재미로 볼 수 있다는 점입니다. 새로운 걸 모두 마스터 하겠어! 란 생각을 안하게 됩니다. 시장에서 사라지는 기술도 수두룩 하거든요. 오래 유지된 기술들은 이유가 있습니다. 1~2년 만에 사라질 기술들은 볼 필요가 없다는 거죠. 10년 동안 유지된 기술들은 단점을 잘 보완하고, 많은 사람들이 계속해서 쓰는 이유가 있습니다.

그러니 새로운 기술이 나왔다고 당황하지 않아도 됩니다. 영원한 것은 없더라구요. 이 글을 작성하는 저자는 Java로 시작해서 C#으로 개발하다가 현재는 TypeScript를 사용하고 있습니다. 이 3개의 언어는 전부 객체지향 언어로 객체 지향을 잘 이해하면 언어를 사용하는데 큰 무리가 없었습니다. 따라가는데도 오래 걸리지도 않았습니다.

앞서 이야기한 방법을 통해 금방 적응하고 현장에 적용하고 개발을 진행했습니다. 이렇듯 독자 여러분들도 새로운 것을 두려워 하지 않았으면 좋겠습니다. 꾸준히 공부하면 금방 문제 해결할 정도로 실력이 올라옵니다. 물론 “꾸준히” 해야 합니다.

좋은 성격을 가지기 위해 노력하자.

개발자는 컴퓨터랑만 이야기 하는 사람들이 아닙니다. 간혹 오해를 하시는 분들이 있습니다. 혼자 개발하는게 아니라면 다양한 팀과 협업을 진행합니다. 저도 신입 개발자 때에는 코드만 잘 짜면 되는줄 알았습니다. 지금은 사람과 컴퓨터 중간에 앉아 중재를 하는 외교관 역할을 많이 합니다. 협업하는 사람들의 요구사항을 잘 이해하고 그것을 결과물로 코드화 시켜야 하는거죠.

결국 개발자는 좋은 성격을 가져야 합니다. 중간에서 다양한 지식을 가진 지식인이기 때문에 다른 동료들이 이야기하는게 답답할수도 있고, 이해가 안되는 이야기를 할 수도 있습니다. 어쩔수 없습니다. 그들은 여러분들보다 모를 가능성이 높습니다. 그렇기 때문에 잘 이야기 해야 합니다. 또한, 그들이 이야기 할 수 있는 능력이 있어야 동료들이 여러분을 믿고 협업을 합니다.

결국 모난 성격이 아닌 둥글둥글한 성격이 좋습니다. 동료들과 문제를 함께 해결한다는 마인드로 접근하면 좋은 동료들은 함께 마음의 문을 열고 여러분을 도와 줄 것입니다. 이것이 회사에서 보는 커뮤니케이션 능력입니다.

결론

위에서 나온 이야기는 개발을 입문하는 사람들에게는 어려운 내용일 수 있습니다. 개발을 입문하시는 분들은 어떤 개발자가 있고, 개발자마다 어떤일을 하는지 먼저 아시는게 중요합니다. 그 다음 언어 하나를 잡아 공부하는 것이 좋습니다. 그 다음 위에 글을 읽어보시면 지속적으로 성장하는 개발자가 될 수 있습니다.

여러분들은 어떤 방식으로 성장하고 계신가요?

댓글로 여러분의 성장 방법을 나눠주셨으면 좋겠습니다.

감사합니다.

추천 글

개발자가 알아야 할 필수 지식 5개

참고

https://okky.kr/articles/1182110

Leave a Comment