군대에서 코딩 공부 하는 법

홍태리·2022년 1월 31일
0

하는 법

목록 보기
1/1
post-thumbnail

군복무 기간을 그저 버리는 시간으로 보내고 싶지 않은 것은 모두가 같은 마음일 것이라 생각한다.

대학 입학 후 3년 동안은 노느라 바빠서,
그 이후에는 진로를 찾다가 다시 대학에 들어가 공부하느라 바빠서,
그 다음에는 창업에 뜻을 가지고 창업 준비를 하느라 바빠서...

정말 다양한 이유로 군대를 미루고 미뤄왔었기에 공군 입대를 눈앞에 두게 된 시점은 25살이라는 늦은 나이였다.

정말 많은 걱정과 고민을 했다.
하고 싶은 도전과 배우고 싶은 기술이 산더미처럼 쌓여 있는데 군대로 2년 가까이를 날려버린다는 것이 정말 아쉬웠기 때문이다.

'군대에 가 있는 1년 9개월동안 나는 다른 사람들보다 뒤쳐지겠지'라는 생각 하나 때문에 입대 전까지 무척 우울해했었는데, 정작 군복무 중인 지금은 결코 그런 생각이 들지 않는다.

사회에 비해서야 당연히 자기계발에 투자할 수 있는 시간이 적겠지만, 그럼에도 불구하고 열심히 하기만 하면 군생활 동안에도 충분히 실력을 올릴 수 있겠다는 확신이 든다.

본인이 어떻게 하느냐에 따라 하루에 평균 3시간 정도의 코딩 공부 시간은 확보할 수 있다.
주말시간까지 생각하면 그 이상 무언가 공부해볼 수도 있다는 뜻이다.

이러한 군복무 라이프를 확보하기 위해 필자가 계획하고 준비했던 것은 다음과 같다.

1. 일과제 특기를 위한 자격증 확보

디시인사이드 공군 갤러리

디시인사이드 공군 갤러리. 공군 관련 정보를 얻을 때 유용하다.

공군의 특기들은 크게 일과제 근무크루 근무로 나뉜다.

일과제 근무는 출근 시간과 퇴근 시간이 정해져 있고 퇴근 후 자유시간을 가질 수 있는 근무형태이다.
크루 근무는 출근 시간과 퇴근 시간이 따로 정해져 있지 않으며 교대 근무를 선다.

어떤 유형에서라도 당연히 공부할 수 있겠지만, 필자의 경우에는 수면 패턴이 불규칙적으로 바뀌면 금방 피곤해지고 꾸준한 공부가 힘들 것 같아 일과제 근무 특기를 받기 위해 그에 해당하는 자격증을 확보했다.

2. 온라인 IDE(통합개발환경) 선정

코딩을 위해서는 컴퓨터가 필요하다.

너무도 당연한 것이지만 군대 안에서는 이 말의 의미가 달라진다. 왜냐하면 인터넷이 연결된 컴퓨터를 찾을 수 없기 때문이다.

부대 내에서 업무에 사용되는 컴퓨터는 보안을 위해 자체 인트라넷을 사용하고, 외부 노트북 등은 부대 내로 반입이 금지되어 있다.

따라서 병사가 접근할 수 있는 인터넷이 가능한 컴퓨터는 사이버지식정보방이 유일하다.

그런데 사이버지식정보방의 컴퓨터는 마치 PC방처럼 전원이 꺼지면 그때까지 저장되거나 변경된 모든 사항이 초기화된다. 즉, Visual Studio Code나 Pycharm, Eclipse, Anaconda 같은 통합개발환경을 다운받아 설치하고 열심히 코딩을 해봤자 로그아웃 하는 순간 IDE와 스크립트 파일이 모두 날라간다는 뜻이다.

그래서 온라인 IDE가 필수적으로 필요하다. 온라인 IDE는 웹 브라우저와 인터넷만 있다면 웹 상에서 통합개발환경을 제공하는 서비스이다. 클라우드 환경을 기반으로 제공되는 서비스이기에 사지방 컴퓨터의 전원이 꺼지고 모든 것이 초기화된다고 해도 저장한 모든 파일들이 안전하게 보존된다.

필자가 찾아보았던 온라인 IDE에는 구름IDE, Repl.it, CodeSandbox, 구글 Colaboratory 등이 있다. (구글 Colab은 엄밀히 말해 Jupyter Notebook 개발환경이다)




이 4가지의 온라인 IDE 중 무엇을 선택할 지는 개인의 상황과 무엇을 공부할 것인지에 따라 달라질 것이다. 참고로 필자는 구름IDE로 시작했지만 현재는 Repl.it을 사용하고 있다.

3. 코딩 공부 방향 설정

'코딩 공부'라고 말하면 간단해 보이지만, 사실 어떤 식으로 어떻게 공부할 것인지에 대한 명확한 계획이 없다면 우왕좌왕할 가능성이 높다. (실제로 필자가 그랬다..)

유튜브나 구글 검색 등을 통해 접할 수 있는 코딩 공부 방법이 상당히 많다. 이를 정리해 보자면 크게 세 가지로 분류할 수 있겠다. 동영상 활용, 프로젝트 만들기, 코딩 테스트 공부가 바로 그것이다.

1) 동영상 활용

무언가를 공부할 때 인터넷 강의를 활용하는 것은 이제 상식이 되었다.

하지만 코딩 관련 강의만 해도 접할 수 있는 경로가 엄청 많아서, 필자가 경험해봤거나 검색해본 것들만 한 번 정리해보도록 하겠다.

YouTube 코딩 강의

코딩 강의 영상을 무료로 들을 수 있는 방법이다.
한국 채널에도 좋은 강의 영상들이 많지만, 영어로 검색할 경우 정말 엄청난 양의 코딩 강의 영상이 쏟아져 나온다.
필자는 FreeCodeCamp라는 채널을 적극 활용하고 있다.

코딩 강의 전문 사이트

유료 결제를 하고 코딩 강의를 들을 수 있는 사이트이다.

  • 패스트캠퍼스

    방대한 양의 강의를 저렴한 값에 들을 수 있다. 하지만 다소 딱딱한 면이 있어 수강자의 공부의지가 적극적으로 필요하다.

  • 스파르타코딩클럽

    코딩에 입문하기에 적합한 강의들을 구비하고 있다. 하지만 강의를 전부 들은 후에 개발 실력이 늘었다기 보다는 전체적인 개발 흐름을 훑어봤다 정도의 느낌이 든다.

  • 인프런

    코딩 강의 전문 사이트는 아니지만 온갖 개발 분야의 모든 강의는 다 모아놓은 느낌의 사이트이다. 필자가 실제로 결제하여 수강해본 적은 없다.

  • 노마드코더

    클론 코딩에 특화되어 있는 사이트이다. 강의 언어가 영어이지만 한국어 자막이 지원되어 이해하는 것에 어려움은 없다. 강의자가 따로 유튜브 채널을 운영해서 그런지 친근한 느낌으로 설명해준다.

MOOC 강의

찾아보기만 하고 따로 들어본 적은 없기에 짧게 정리하고 넘어가겠다.

  • 코세라(Coursera)
  • edX
  • 유다시티(Udacity)

2) 프로젝트 만들기

코딩 공부에 있어서 많은 고수분들이 추천하시는 방법이다.

"코딩 공부는 절대로 책으로 하지 말 것. 문법만 외운다고 코딩 공부가 아니다. 처음에는 당연히 고생하겠지만, 하나라도 완성된 서비스를 만들어본다면 그 다음부터는 자신이 무엇을 공부해야 하는지 명확하게 보일 것이다."

이러한 류의 얘기는 유튜브를 통해 정말정말 많이 들어본 듯하다. 그래서 필자도 당연히 코딩 공부를 위해 작게라도 토이 프로젝트를 만들어야겠다고 생각을 하며 접근했다.

하지만 막상 해보니 이 공부방식이 과연 자신에게 적합한지 의문이 들었다.

물론, 개발이라는 것은 엄연히 실무의 영역이고 차후 취업을 위해 포트폴리오를 준비하거나 실무에 투입되었을 때 프로젝트 중심으로 공부했던 경험이 무척이나 도움이 될 것이라는 것은 알고 있다. 어떻게 보면 단순히 '도움이 많이 될 것이다'의 수준이 아니라 '필수적으로 필요하다'일지도 모른다.

하지만 다음과 같은 성향으로 인해 결단을 내릴 수밖에 없었다.

  • 프론트엔드에 큰 관심이 없다.
    보통 코딩 공부에 입문할 때 웹개발, 그것도 프론트엔드 쪽을 먼저 공부하라고 하는데 그 이유는 배운 것을 활용할 경우 바로바로 눈으로 확인이 가능하기 때문이다.
    그리고 가벼운 프로젝트를 만들면서 공부하는 것의 대부분은 웹개발 중심으로 이루어진다.
    물론 언젠가는 당연히 웹개발을 배워야겠지만, 공부를 시작하는 지금 단계에서 흥미가 가지 않는 것을 붙잡고 있기에는 부담이 크다.

  • 코딩에 흥미를 느끼게 된 계기가 '문제 해결'에 있다.
    따라서 코딩 공부를 한다고 해도 계산기 만들기, 투두리스트(To-do List) 만들기 등의 간단한 제작보다는 수학 문제를 풀 듯 어떤 기능을 구현해내기 위해 머리를 싸매고 고민하는 쪽이 더 즐겁다.
    하지만 토이 프로젝트에는 그럴 만큼 난이도 있는 문제가 없고, 그 정도 수준의 프로젝트의 경우에는 감히 접근하지 못한다.

결론적으로 필자는 현재 프로젝트 중심의 코딩 공부를 하지 않는다.

대신 코딩 테스트로 대표되는 알고리즘 문제 해결을 중심으로 공부를 하고 있다.

3) 코딩 테스트 공부

코딩 테스트는 개발자로 취직을 하기 위해 거의 필수적으로 거쳐야 하는 3개의 관문(코딩 테스트, 포트폴리오, 기술 면접) 중 하나이다.

창업을 하고자 하기 때문에 코딩 테스트를 준비한다는 건 계획에 전혀 없었지만, 다음 2가지 이유로 생각이 완전히 바뀌었다.

  • 아무것도 없는 지금 상황에서는 창업을 시도할 수는 있으나 성공하기 어렵다.
    실무 경험이라고는 인턴 일을 한 번 해본 게 전부인 상황에서 팀원을 모으고 스타트업을 일구는 것은 대단히 힘들다. 군입대 직전 창업을 시도해보면서 정말 X고생했던 경험이 이러한 생각에 큰 기여를 했다.
    필자가 내린 결론은 회사에서 일을 하면서 많은 것들, 단순히 기술 뿐만이 아니라 조직 문화, 커뮤니케이션, 운영 능력 등의 다양한 실무적인 경험을 습득할 필요성이 있다는 것이었다.
    생각이 여기까지 도달한 후에야 개발자로 취직을 하는 것이 매력적인 선택지로 다가왔고, 코딩 테스트라는 것에 대해 알아보기 시작했다.

  • 알고리즘 문제는 의외로 무척 재미있다!
    코딩 테스트라고 해서 지루한 컴퓨터 지식을 일일이 외우는 것을 상상했었지만, 막상 문제를 접하고 풀어보니 흥미에 정확하게 부합하는 류의 문제들이었다.
    고등학교 때도 수학 문제 하나 붙잡고 끙끙대며 풀고, 퍼즐 맞추듯 해결해나가는 것에 재미를 붙였었는데, 다시금 그 시절의 생각이 날 정도로 알고리즘 문제를 풀어나가는 것이 재미있었다.
    물론 그 당시에도 어려운 문제를 푸는 것은 고통스러웠듯이 고난도의 알고리즘 문제는 분명 고통스럽게 다가올 것임을 안다. 하지만 과정이 힘들지언정 '그래도 즐길 수 있을 것 같다'라는 생각을 가질 수 있다는 것 자체가 코딩 테스트 공부에 엄청난 동기를 불어넣어 주고 있는 상태이다.
    이럴 때 미친듯이 공부하지 않으면 언제 하겠는가.

코딩 테스트 공부는 주로 온라인 저지를 활용한다. 아직은 기초단계라, 다음 2개의 사이트에서 단계별로 문제를 풀어보고 있다.

  • 코드업

  • 백준 온라인 저지(BOJ)

글을 마치며

공군에 입대한 지 시간이 꽤 지났지만, 전역을 생각하면 아직 까마득하다.

만약 전역까지의 남은 시간을 발전의 시간으로 보낼 방법이 없었다면, 혹은 발전의 시간으로 보낼 의지가 없었다면 참으로 고통스러웠을 것 같다.

하지만 다행히도 방법을 찾았고, 남은 것은 주어진 상황에서 계획한 방식대로 최선을 다하는 것 뿐이다.

필자의 이 기록이 군입대를 고민하는 누군가에게 도움이 될 수 있기를 바란다.

profile
스타트업을 준비하는 대학생입니다.

1개의 댓글

comment-user-thumbnail
2023년 9월 28일

안녕하세요! 공군 자격증 중 궁금한 점이 있어 댓글 남깁니다. 어떤 자격증을 따면 크루 근무가 아닌 일과제 근무를 맡을 수 있나요? 이러한 자세한 정보는 제 검색 능력의 한계로 찾을 수가 없네요ㅠㅠ

답글 달기