본문 바로가기

2024-08-25 비전공자 웹 개발 학습방법 추천

codeConnection 2024. 8. 25.

본인은 비전공자이며 30대가 넘는 나이에 웹 개발에 입문하였다. 시중에 널려있는 온라인 부트캠프에서 반년 간 학습을 하였는데, 과거로 돌아간다면 조금 더 효율적인 학습을 할 수 있었을텐데 하는 아쉬움은 어떤 일을 마무리하는 단계에서 매번 가지는 아쉬움인 것 같다.

그런 의미에서 혹시나 비전공자로 웹 개발자에 입문하고자 하시는 분이 있다면 나의 조언이 어느정도 참고하실 만한 가치가 있길 바라본다.

 

시작하기 전

고려해볼 점

흥미가 있는가

시작하기 전에 일단 나에게 먼저 이쪽 분야의 흥미가 있는지 확인을 해 보는 게 좋을 것 같다. 여러 가지 방법으로 알 수 있겠지만 일단 웹 개발이라고 한다면 자바스크립트 MDN 문서나 모던 자바스크립트 튜토리얼 등을 일주일간 하루에 네 시간씩 공부해보면서 이 내용이 흥미로운지 아니면 고통스러운지 한 번 확인해 보는 게 좋을 것 같다.

"나는 공부 하는 것은 조금 힘들어도 막상 코딩을 시작하면 재미있게 잘 할 수 있을 것 같은 데요?' 라고 말할 수도 있겠지만 결국 끝날 때까지 계속해서 공식문서와 씨름 하며 공부해야 하는 게 개발자의 숙명이기 때문에 코드를 입력하는 행위보다 어쩌면 공부를 하는데의 더 많은 시간을 할애해야 할 수도 있다는 점을 알아야 한다.

재능이 있는가

가끔 "코딩도 재능이 필요한가?"라는 질문을 하는 수강생들을 본 적이 있는데, 사실 개발을 공부하면서 재능이 필요하다라는 것은 크게 느끼지 못했다. 거의 대부분의 분야에서 재능이 노력을 아득히 앞서는 경험을 많이 해왔지만 코딩 영역에 있어서는 재능 보다는 노력이 훨씬 더 가성비가 큰 것 같다.

우리가 영어를 쓰든 한국어를 쓰든 어떤 언어를 쓸 때 특이한 재능이 요구 되지는 않지 않는가? 물론 말을 더 유창하게 하고 재미있게 하고 효율적으로 하는데에는 재능이 필요할 순 있겠지만 적어도 언어를 학습 하고 말을 하는 과정까지는 크게 재능이 필요하지 않다는 것이다. 응당 기초 교육만 받은 인간이라면 누구든지 자유롭게 소통할 수 있는 것이 언어이다. 그리고 이러한 프로그래밍도 하나의 언어 이기 때문에 동일하게 작용한다.

각오가 되어 있는가

'각오가 되어 있는가' 사실 이 부분이 가장 중요할 것 같다. 물론 흥미가 있어야 그 이후에 계속 엉덩이 붙이고 앉아 있는 것도 더 잘 할 수 있고 하겠지만 기본적으로 프로그래밍을 학습 한다는 과정이 결코 짧은 과정이 아니라는 점을 알아야 한다. 많은 부트캠프에서 보통 4개월 이나 6개월, 심지어 인스타그램에서 광고하는 부트캠프는 심지어 직장을 다니면서도 공부를 할 수 있는데 왜 그렇게 오래 잡느냐고 마케팅을 하는 곳도 더러 보았다. 하지만 배운 사람은 이 마케팅이 허위라는 것을 금방 이해할 수 있을 것이다. 나는 비전공자이지만 내가 반 년간 웹 개발을 배우면서 수료한 이 시점에서 느끼는 점은 오르긴 몰라도 컴퓨터공학을 전공으로 배워도 프로그래밍을 제대로 학습 하기는 추가 학습을 하지 않는 4년 동안 배워도 쉽지 않을 것 같다라는 느낌이 들었다.

기본적으로 사물이나 주변 현상에 대해서 흥미를 가지고 왜 저렇게 하는지, 이런 것에 호기심을 갖거나 의문을 갖고, 학구열을 가지고 있는 사람이 프로그래밍을 오랫동안 꾸준히 배우기에도 더 유리하다. 사실 이런 사람들은 비단 프로그래밍 뿐만 아니라 모든 분야에서 학습을 하는 데 있어서 유리하겠지만 배우는 과정 같이 자체가, 하루에 열 시간씩 의자에 앉아 있는 이 과정 자체가 고통이라고 생각한다면 얼마 배우지 못 할 것이고 6개월이든 1년이든 부트캠프 일정을 어찌저찌 따라 간다고 하더라도 끝나고 나서 남는 게 하나도 없을 것이다. 짧디 짧은 인생, 소중한 인생인데 그중에서 반 년 가량을 아무 의미 없이 시간을 허비 하는 것은 너무 아깝지 않겠는가.

플랜B가 있는가

나는 온라인 부트캠프 중 스파르타 코딩클럽의 내일배움캠프라는 곳의 웹 개발 과정을 수료 했다. 이곳 과정은 약 반 년이 조금 넘는 과정이었고 이곳에 커리큘럼을 성실이 이행했을 때의 성과에 대해서 부트캠프 측에서는 자신있게 이야기 했었다. 하지만 부트캠프에서 "6개월이 지나면 무조건 취업이 됩니다"라고 이야기 한적은 단 한번도 없지만 일반적으로 사람들이 생각했을 때 부트캠프의 과정이 6개월로 맞춰져 있다고 하면 6개월만 배워도 취업이 가능하겠구나라고 생각하기 쉽다. 나 역시 그랬었다. 하지만 그냥 과정 자체가 6개월인 것 뿐이지 6개월 동안 밀도있게 배운다고 해서 취업이 쉬워지는 것은 절대 아니다. 특히 우리나라에서 이 개발자 시장은 일부 C언어와 같이 진입 장벽이 높은 언어를 제외하고는 거의 씨가 말라 있는 것이 사실이다. 오해하면 안 된다. 부트캠프의 교육 과정이 그 시간 만큼만 배워도 충분 하다는 것을 말하고 있는 것이 아니라 그냥 교육과정에 그렇게 되어 있는 것이고 막말로 6개월이 아니라 1년, 2년 이렇게 잡아놨으면 나였어도 그 과정이 참여 안했을 것이다. 그만큼 시간을 낼 수도 없고, 그렇게 오랫동안 참여할 수 있는 에너지도 없을 것 같기 때문이다.

즉 부트캠프가 끝나고 나서 바로 취업이 되지 않을 것을 인지하고 있는 상태에서 그 이후에 추가 학습을 할 것인지 아니면 알바를 병행하면서 취업 준비를 할 것인지 그 이후에 계획도 분명히 있어야 오랫동안 공부를 할 수가 있는 것이다.

학습방법

블로그 글쓰기 (TIL)

개발을 배우고 싶어서 이것저것 검색 하면서 찾아 본 사람들이라면 아마 이런 점을 느꼈을 수 있다. 유난히 개발자들은 블로그를 많이 운영 한다라는 것을 말이다. 일단 본인은 주변에서 블로그를 하는 사람이 한명도 없다. 대부분 마이크로 소셜 미디어인 Instagram이나 Facebook 같은 플렛폼은 많이 이용하지만 블로그를 직접 운영 하면서 글을 쓰는 사람은 내 주변에는 일단 단 한명도 없다, 그런데 개발자들은 블로그를 운영하지 않는 사람을 본 적이 없다. 지금 현재 글을 쓰지 않는다고 하더라도 블로그는 일단 무조건 가지고는 있다.

다른 직업군도 마찬가지겠지만 개발자는 특히 더더욱 매일 같이 학습을 해야 한다. 프로그래밍도 결국 컴퓨터와 소통하는 언어이기 때문에 사람의 언어도 오랫동안 그 언어를 사용하지 않으면 금방 까먹게 된다고 하는 것처럼 프로그래밍 언어는 그 정도가 더 심하다. 우리나라 사람들이 영어를 잘 못 하는 이유가 일상생활에서 영어가 없기 때문이라는 점은 다들 공감할 것이다.

영어를 쓰는 환경이 아예 없기 때문인데 마찬가지로 프로그램밍 언어도 계속해서 노출이 되어야만 한다. 그래서 매일 같은 학습을 어찌보면 강 받고 있는 직군이기도 한 것이다. 따라서 배워야 하는 양이 정말 많고 또 이것을 그냥 배우고 넘어 간다고 해서 온전히 내 것으로 흡수되는 것이 아니기 때문에 거의 모든 개발자가 기술 블로그를 운영하면서 그곳에 자신이 배운 것을 정리해서 저장을 하고 있는 것이다. 또한 개발자 같은 경우에는 나의 학습 의지와 실력을 보여줄 수 있는 하나의 포트폴리오가 바로 블로그가 될 수도 있다. 블로그가 아니라 다른 것으로 그걸 설명할 수 있다면 그것으로 대체해도 되지만 일단 접근하기 가장 쉬운 게 블로그에 글을 작성하는 것이기 때문에 대부분 블로그를 사용을 한다. 그런데 이렇게 글을 쓰고 꾸준히 기록을 하고 메모를 하는 그 과정 자체를 때려 죽여도 하기 싫어 하는 사람들이 개발자들 중에서도 분명히 있다. 이 과정을 고통으로 생각한다면 아마 지속 가능 하기가 힘들 것이다. 지금 본인이 작성하고 있는 이글도 못 해도 30분 이상 시간을 내야 하는 것인데 글을 어떻게 하면 조금 더 매끄럽게 작성 할 수 있을까 고민하고 수정 하는 이 과정 자체가 고통인 사람들은 아마 오랫동안 지속적으로 공부 하기가 쉽지 않을 수도 있다라는 것이다. 따라서 내가 어떤 것을 배우고 그것을 정리하고 일상을 기록 하는 이 과정 자체가 익숙하지 않고 심지어는 그것이 고통이라고 생각 한다면 이 분야가 적성에 맞지 않을 수도 있다.

하지만 그렇다고 해서 포기하지 말고 계속해서 익숙해지다 보면 이것도 하나의 재미가 될 수 있다. 본인도 블로그를 운영 해 본 적이 태어나서 단 한번도 없지만 개발을 공부하고 나서 부터는 블로그를 꾸준히 작성을 하고 있는데 정작 작성할게 없으면 이런 식으로 프로그램밍 언어와 전혀 상관 없는 이런 내용도 하나의 기록으로 남겨놓고 있다. 그 이유가 뭐냐면 하루 이틀 안 쓰다 보면 그것이 일주일이 되고 또 일주일이 한달이 되고 그렇다 보면 또 블로그를 쓰지 않는 그 패턴이 익숙해지기 때문에 어떻게든 하루에 서 일정 시간은 블로그에 글을 쓰는 과정으로 시간을 빼 두기 위해서 이렇게 작성하는 것이다. 개발 공부를 시작하기 전에 먼저 핸드폰에 있는 메모장에 사소하게 배우는 것들 기록하는 습관 부터가 가져보도록 하자.

더 나아가서 하나의 조원을 하자면 글을 써놓기만 하고 다시 들여다 보지 않으면 그것은 기록으로써의 가치가 없다. 글을 써놓고 내가 계속해서 그 글을 찾아 보면서 내가 내가 쓴 글을 이용할 수 있을 정도의 퀄리티로 글을 작성 하는 것이 중요하다. 오래 걸리더라도 그것이 중요하다.

인공지능vs공식문서

아마 내가 개발을 배우기 1~2년 전까지만 해도 인공지능 챗봇, 즉 ChatGPT와 같은 툴을 개발에 적극적으로 이용하기에는 어려움이 컸을 것이다. 하지만 내가 개발을 배우는 과정에서 ChatGPT 4.0이 출시되면서 인공지능 챗봇과 Copilot의 발전이 비약적으로 이루어졌다. 나 역시 인공지능 챗봇이 저보다 훨씬 더 코딩을 잘하고 맥락을 잘 이해하는 것 같아, 때로는 무력함에 빠지기도 했다. ‘이렇게 해서 정말 취업이 될 수 있을까?’라는 생각이 들기도 했다. 그러나 개발을 심도 있게 해 보면, 결국 인공지능 챗봇은 아직 멀었다는 점을 알 수 있다. 개발을 배우지 않은 일반인들이 인공지능에 의해 개발자가 대체될 것이라는 우려를 하고 있지만, 실제로 개발자들은 지금 당장은 그렇게까지 생각하지 않는 것 같다. 왜냐하면 개발자들이 인공지능을 누구보다도 더 많이 활용하고 있는 사람들이기 때문에, 인공지능의 한계가 뚜렷하게 보이기 때문이다.

그럼에도 학습자의 입장에서, 인공지능 챗봇으로 학습하는 시간과 노력 자체를 줄이는 것이 가장 좋은 방법인가에 대한 질문에는 나는 ‘아니오’라고 대답하고 싶다. 나 역시 인공지능을 적극적으로 활용하여 모든 인공지능 툴을 유료 결제하고 사용하고 있지만, 그것 때문에 더 많은 것을 배울 수 있었고, 같은 시간에 더 많은 것을 만들어낼 수 있었다. 그러나 결국 머릿속에 남는 것은 별로 없었다.

우리가 책을 읽는 이유가 무엇일까? 팟캐스트나 요약본이 잘 나와 있음에도 불구하고 종이 책을 읽으라고 하는 이유는 무엇일까? 독서가 취미인 사람들은 아마 책을 왜 읽어야 하는지 잘 설명할 수 있을 것이다. 나 역시 개발을 배우기 전에는 독서가 취미가 아니었지만, 지금도 주말마다 시간이 있으면 도서관에 들러서 책을 읽는다. 만약 누군가가 나에게 왜 책을 읽느냐고 묻는다면, 내 대답은 명확하다. 책을 읽어 보면, 우리가 결론에 도달하기까지의 서론이 책 내용의 80% 이상을 차지한다. 그리고 결론은 10%에서 20%밖에 되지 않는다. 극도의 효율을 추구하는 사람들은 이 과정 자체를 시간 낭비라고 생각할 수 있지만, 그럼에도 불구하고 우리가 책을 읽는 이유는 무엇일까? 수많은 자기 계발서에서 하루하루 의미 있는 삶을 살고, 노력하며 살아가라고 말하고 있습니다. 이 내용을 모르는 사람이 어디 있을까? 자기 계발서에서 말하는 내용을 모르는 사람은 없을 것이다. 하지만 누구는 그것을 실행해서 성공하고, 누구는 실행하지 않고 소파에 누워 넷플릭스를 보며 시간을 소비하고 있다. 이 둘의 차이는 어디에서 올까? 둘 다 무엇을 해야 하는지 잘 알고 있지만, 누구는 하고 있고, 누구는 하지 않고 있는 차이다. 왜 그럴까? 필요성을 절실히 느끼는 사람이 움직일 것이고, 지금 자신에게 그 필요성이 있다고 생각하지 않거나, 현재에 만족하고 있다면 실행하지 않는 것이다. 그런 사람들에게는 어떤 조언도 통하지 않는다. 그래서 책이 필요한 것이다. 책을 읽다 보면 작가의 생각, 작가가 그러한 결론에 도달하기까지의 경험과 학술적 자료들이 이어지기 때문에, 책을 읽다 보면 스스로 필요성과 중요성을 깨닫게 되고, 마지막 결론은 그저 방점만 찍을 뿐이다.

말이 길어졌지만, 인공지능 기능을 적극적으로 이용하면 같은 시간에 더 많은 것을 이루어낼 수 있고, 더 많은 것을 배울 수 있다. 그러나 그것을 온전히 내 것으로 흡수할 수 있느냐는 장담할 수 없다. 왜냐하면 공식 문서를 읽는 과정 자체는 책을 읽는 것만큼이나 고통스럽기 때문이다. 심지어 대부분의 문서는 영어로 되어 있다. 이것을 하나하나 직독직해하거나 번역 툴을 이용해 읽어 내려가는 과정 자체가 고통스럽다. 디지털 문화에 익숙한 MZ 세대에게는 공식 문서로 공부하는 것이 더 고통스럽게 느껴질 수 있다. 그러나 어떤 코드나 라이브러리가 등장하기까지는 이유가 있을 것이고, 개발자들은 그것을 공식 문서에서 잘 풀어내고 있다. 반면, 인공지능 챗봇은 정답만 얻을 수 있기 때문에, 이것을 왜 사용하는지에 대한 심도 있는 고찰이 어렵다.

물론 이런 말은 누구나 할 수 있다. 하지만 우리에게는 시간이 많지 않기 때문에 공식 문서를 하나하나 읽으며 공부하는 것이 현실적으로 어려울 수 있다. 나 역시 이점을 잘 알고 있지만, 결국 인공지능 챗봇을 사용할 수밖에 없었다. 인공지능 챗봇을 사용하지 말라는 것은 아니지만, 기본적으로 이론을 학습할 때 처음부터라도 공식 문서로 학습하는 방법과 코드를 한 줄씩 직접 쳐가며 공부하는 방식에 익숙해질 것을 권장한다. 처음부터 그런 습관을 들이는 것이 중요하다. 이것이 6개월 전의 저에게 해주고 싶은 조언이다.

무궁무진한 아이디어?

이러한 생각은 아마 많은 개발자들이 공감할 수 있는 부분일 것이다. 기본적으로, 개발자로서 꾸준히 오랫동안 공부하는 사람들을 보면, 혼자서 이것저것 만들어 보고 싶어하고, 또 그런 아이디어가 많은 사람들이 오래 가는 경향이 있다는 말을 많이 들어봤을 것이다. 나 역시도 공감하는 부분이다. 만들고 싶은 것이 많지만, 시간이 부족해서 실현하지 못하고 있을 뿐, 하고 싶은 일들이 많다는 것은 사실이다. 그리고 이러한 것들이 하나의 아이디어로 발전하기 때문에, 팀 회의를 할 때도 더 많은 이야기를 나눌 수 있고, 생각의 깊이도 더해지는 장점이 분명히 있다.

하지만 개발자가 그렇다고 해서 완전히 창의적인 영역에서 예술을 하는 사람은 아닌 것 같다. 이 말의 의미는, 물론 백지에서 무언가를 새롭게 만들어내는 사람들도 존재하지만, 개발자 중 90% 이상은 이미 존재하는 것을 디벨롭하여 더 나은 서비스를 만들어내는 사람들이 대부분이라는 점이다. 실제로, 내가 이게 좋을 것 같다고 생각해서 나만의 방식으로 웹페이지를 만들었을 때, 그것이 웹 표준과 거리가 있다면 인정받지 못할 확률이 굉장히 높다. 아무리 많은 아이디어가 있다 하더라도, 시장에는 분명히 유행이라는 것이 존재하고, 소비자들의 니즈라는 것이 있다. 이를 벗어나 내가 무에서 유를 창조한다는 것은 결코 쉬운 일이 아니다. 물론, 이러한 것을 해내는 사람을 천재라 부르지만, 대부분의 개발자는 그런 천재가 아니다. 거의 대부분의 서비스는 기존에 있는 것을 디벨롭하여 발전시키는 것임을 알고 있어야 한다. 카카오톡이나 배달의민족 같은 서비스들도 사실상 완전히 새로운 것을 만들어낸 것이 아니라, 원래 존재하던 것에 개선을 가한 것이다. 오히려 무궁무진한 아이디어보다 세심한 관찰력이 더 필요하다고 본다. 일상생활에서 불편했던 점을 개선하기 위한 아이디어를 떠올려보고, 그 아이디어가 이미 있는 것이라면, 왜 내가 그 서비스를 몰랐는지 생각해보는 것이 중요하다. 그리고 그 서비스의 부족한 점이 무엇인지 캐치하여, 그것을 디벨롭해서 나만의 서비스를 만들어나가면 되는 것이다. 물론, 시간이 허락한다면 말이다.

댓글