개발자가 되기 위한 현실적인 학습 방법

Ivy
6 min readApr 14, 2022

안녕하세요, Naver 커넥트재단 부스트캠프코드스쿼드에서 Android 앱개발 교육을 담당하고 있는 Ivy 입니다.

저는 수학 강사에서 개발자로 커리어를 전환한 경험이 있기 때문에, 최근 몇년 간 개발자 취업에 대한 주제로 많은 질문을 받아왔습니다. 이 글에서는 개발자로 취업을 준비하는 기간에 학습해야 하는 주제를 다루겠습니다.

저는 수학 강사에서 개발자로 커리어 전환에 성공한 뒤 카카오페이지, ProtoPie, NBT에서 Android 개발자로 근무했습니다. ‘커리어 전환에 성공했다'라는 표현은 한 줄로 끝나지만, 생소한 분야에 대해 한정된 시간동안 다양한 주제를 학습하는 과정은 결코 짧지 않습니다. 24시간을 모두 활용하겠다는 마음 가짐과 전략이 필요한 시기입니다.

[ FAQ ]

가장 많이 받는 질문은 ‘기초가 너무 부족해서, 어디부터 공부해야할지 모르겠다'라는 내용입니다. 그리고 ‘어떤 분야를 선택하는게 좋을까요? 유망할까요?’와 같은 질문도 많이 받습니다.

1. 개발 언어 선택

이 시기에는 참고할 학습자료가 많은 개발 언어를 선택하는 것을 권장드립니다. 학습자료는 책, 온라인 강의, Youtube 등 스스로 학습효과가 가장 좋은 방식을 선택하시면 됩니다.

그리고 초급 수준의 코딩테스트를 풀어보거나, 간단한 입출력 프로그램을 만들어보는 것까지 해보시는 것을 추천드립니다.

2. 분야 선택

학습을 처음 시작하는 시점에 유망한 분야를 따져보는 것은 어려운 일입니다. 전문가마다 다른 관점을 갖고 있는 경우도 있고, 사전 지식이 부족한 상태에서 판단을 내리기에는 너무 많은 시간이 필요하기 때문입니다.

제가 Android 개발자로 취업을 준비했던 이유는, 당시에 Java 라는 언어는 앱개발과 서버 개발 모두에서 널리 쓰이는 언어였고 제 Android 스마트폰에서 바로 결과물을 확인할 수 있는 점이 재밌었기 때문입니다. 각 분야를 정량적으로 비교하기 힘들다고 생각했기 때문에, 진로는 길게 고민하지 않고 단순하게 결정했습니다.

유망한 분야를 한 번 따져보는 것도 좋지만, 조금 더 흥미를 갖고 힘든 학습 과정을 인내할 수 있는 주제가 있을지도 함께 찾아보시면 좋겠습니다.

[ 개발자가 되기 위한 학습 과정 ]

분야를 결정하고, 학습을 시작하고 나면 ‘해야할 게 너무 많다, 끝이 없다'라는 고민을 자주 듣게 됩니다. 이 시기에는 학습 우선 순위를 정하고, 이를 그대로 따라야 합니다.

1. CS(Computer Science) 전공 지식

CS 전공에서 학습하는 주요 내용들을 알고 있는 건 여러 프레임워크를 이루는 기술을 학습할 때 도움이 많이 됩니다. 기술의 근간이 되는 내용을 더 빠르게 이해할 수 있기에 학습 과정이 수월해집니다.

하지만 사전지식이 부족한 부분은 계속 채워나가면 된다고 생각합니다. 늦게 시작하는 경우일수록 CS 전공지식과 실무 역량을 함께 키워가시는 것을 추천하고 싶습니다.

이 때, 분야별로 우선순위를 정하는 것이 도움될 수 있습니다. 저는 운영체제, 네트워크, 데이터베이스, 자료구조 등의 기초를 다룬 책을 읽으면서 개발을 하며 많이 들어왔던 용어들을 다시 정리하는 시간을 가졌습니다. 그리고 특히 코딩테스트를 대비한 자료구조와 알고리즘 학습에 많은 비중을 두었습니다.

물론 취업과 같은 결과를 생각하면 마음이 초조해질 수 있습니다. 이 시기에는 불안감은 잠시 무시하고, 단기 목표와 장기 목표를 분리해서 개발자가 되는 데 필요한 준비를 실행해야 한다고 생각합니다. 그리고 CS 전공지식은 단기간에 채우기 힘든 부분이기 때문에 개발자가 된 이후에도 계속 학습을 하겠다는 마음가짐과 실행력이 필요합니다.

저는 개발자가 된 이후에도 방송통신대학교 컴퓨터과학 복수전공을 이수하면서 부족한 부분을 스스로 학습했습니다. 여러분들도 이러한 장기 계획을 실행할 수만 있다면, CS 전공지식이 부족한 것은 극복할 수 있는 문제로 느껴지게 될 것입니다.

2. 개발 언어

여러분들이 선택한 분야에서 많이 쓰이는 개발 언어의 활용 능력을 키우셔야 합니다. 개발 언어로 코딩테스트를 준비하는 것도 좋은 방법입니다.

Android 앱개발은 Java로도 가능하지만, 현재는 Kotlin으로 많이 개발을 하고 있습니다. 그래서 제 수업은 모두 Kotlin을 기준으로 진행합니다. 하지만 Android 프레임워크는 Java로 구현된 코드들이 많기 때문에 내부 코드를 읽고 이해할 수 있으면 좋습니다.

이와 같이 여러분들의 개발 환경에서 활용되는 언어의 문법은 꾸준히 학습해야 합니다. 내부 구조를 이해하는 데 도움되는 언어가 있다면, 그 언어를 자유자재로 활용하지는 못하더라도 읽을줄은 아는 상태로 만드시는 것이 좋습니다. 그리고 이는 실무 역량과도 연결이 됩니다.

3. 실무 역량

지금까지는 주로 전공지식이나 개발 언어의 중요성을 말씀드렸습니다. 하지만 안타깝게도 실무가 가능한 개발자가 되기 위해서는 이것들 만으로는 부족합니다. 여러분들이 어떤 종류의 개발자가 되더라도 맨땅에서 개발을 시작하는 경우는 극히 드뭅니다.

모든 개발 분야에는 해당 분야에서 더 효율적인 코드 작성을 위해 많은 고민을 해온 개발자들의 노력이 남아 있습니다. 선배 개발자들의 노력으로 만들어진 프레임워크나 라이브러리를 적절히 활용하면 그들이 겪었던 시행착오를 똑같이 겪지 않고 빠르게 제품을 만들 능력을 갖출 수 있습니다.

그렇다면 어떻게 실무에 필요한 프레임워크나 라이브러리 지식을 습득할 수 있을까요? 우선 취업정보 사이트를 통해 해당 직무의 모집공고들에 필수요건으로 적혀있는 프레임워크나 라이브러리 정보들을 수집해야 합니다. 이렇게 정보를 수집한 뒤 공식문서나 책, 온라인강의, Youtube 등을 통해 학습하면 됩니다.

어느 정도 프레임워크나 라이브러리에 대한 지식이 쌓였다고 느껴진다면 그 지식들을 조합하여 프로젝트를 완성시켜 보는 것을 추천드립니다. 개별적인 프레임워크, 라이브러리 학습에서는 다양한 상황에 대한 대처 및 디버깅을 경험할 수는 없으므로 이를 프로젝트 과정에서 채울 수 있을 것입니다.

신입 개발자가 된 이후에도 해야할 공부는 끝이 없겠지만, 취업을 준비하던 시기와는 고민하는 주제가 조금씩 바뀌실 것입니다. 개발자로 커리어 전환을 희망하시는 분들이 모두 좋은 결실을 맺으실 수 있기를 바라겠습니다.

글쓴이

카카오페이지, ProtoPie, NBT에서 Android 개발자로 근무했으며 2021년부터는 Android 앱개발로 코딩교육을 시작했습니다.

커리어 프로필 https://www.linkedin.com/in/ivy-bae/

인터뷰 : 뭐든 관심이 생기면 도전하세요

--

--