우선 이런 글을 쓰게 된 경위(?)에 대해서 말해본다.
나는 흔히 말하는 국비학원 출신의 비전공 개발자 루트를 가진 사람으로써,
코딩의 입문부터 지금까지 막연한 느낌과 구름같은 정보들만 가지고
개발자로서의 커리어를 쌓아왔다.
그렇기 때문에,
무언가 막연한 것이 답답했던 나와 같은 사람이
시행착오를 겪지 않기를 바라는 마음에서 적어본다
사실 나는 아직도 막연한 게 많은데,
그냥 생각을 정리하자는 차원에서 이러한 글을 적는것도 있다
들어가기에 앞서,
이 글이 매우 길어질 것 같음에 독자가 될 여러분에게 주의를 요하는 바이다.
그리고 이 글이 도움이 되거나 수정되어야 할 부분이 있다면(?)
댓글을 반드시 남겨주기를 바란다!
우선, 코딩이라는 것을 처음 접했던 때로 돌아가본다.
사실 처음에는 개발자가 되고 싶다는 생각을 하지는 않았었다
나는 눈에 보이는 것들을 좋아하는 사람이었기 때문에,
개발이라는 측면에서 생각하기 보다는
디자인 측면의 창의성, 독창성에 대한 막연한 꿈이 있었다
그래서 원래는 웹디자인 이라는 것을 배워볼까 한참을 고민하던 중이었다.
(실제로 국비를 시작하기 반 년 쯤 전에 디자인 툴 들을 국비로 한달정도 배운적이 있다)
그런 고민을 하던 중에, 개발자라는 것이 눈에 들어온 이유는
한 두 가지 정도가 있었던 것 같다.
첫번째로는, 기술직으로서 커리어를 성장시키기 좋아보였다는 것
그 동안 내가 했던 일이라고는 전부 사무보조와 같은 잡무를 하는 것이었다.
그래서 더더욱 기술직에 대한 알 수 없는 환상이 있었고
가정이 있는 상황에서는 생계문제까지 생각하게 되면서
기술직이 아니면 오래 살아남기 어렵지 않을까 하는 결론에 다다르게 되었다.
사무보조와 같은 잡무의 경우는,
애초에 몸값이 높지도 않을뿐더러 커리어의 성장이라는 측면에서는
정말 한 치 앞도 보이지 않는 상황이었다.
개발자는 기술직이면서도 도전하기에 어려울 것이 없다고 생각했다.
사실 어떤일이든 뛰어들 준비가 되어있다면 어려울 것이 없다고 생각하는 사람이라
더 그렇게 생각을 했는지도 모른다.
(물론, 모든 일은 비전공자가 전공자 만큼의 퍼포먼스를 내는것이 매우매우 어렵다)
이쯤에서 두번째 이유를 말해보자면,
디자인이라는 직무는 대중의 입맛을 잘 맞추어야 한다는 것이 걸림돌이 되었다.
사실 디자인과 같은 직무에 대한 환상이라 한다면,
내 머리속에 있는 다른 자아나 세계를 어떠한 유형의 것으로 표현하는
그 독창성, 창의성에 기인한 예술이라는 것일텐데
그러한 예술을 하려면 수입을 포기해야 한다는 것이다.
(이전에 음악이라는 것에 도전했다가 접었던 기억이 한 몫 한걸지도 모르겠다)
사실 수입을 포기해야 하는 것보다도
그런 예술을 하기 위해서는 대중의 니즈를 잘 알아야 하고
그만큼 기본기가 갖추어진 디자인을 잘 뽑아내고 나서야
나만의 예술을 하게 될 수 있는게 아닐까 라는 생각이 들기도 했다.
그렇치만 나는 평소에 예술적 측면에 대해서 만큼은
다른 사람과의 타협을 거의 불허하다시피 했기에
디자인 쪽으로서 내 커리어 성장을 바라기는 어려울 거라는 관망이었다.
여튼, 그러한 이유로 나는 개발자라는 직무에 대해 관심을 가지게 되었고
사전 정보가 거의 없는 상태로 온몸을 부딪히게 되었다.
사전 지식이 정말 전무하였기 때문에,
개발이라는 것을 어떻게 접근하여야 할지 너무나 막막했다.
막연하게 개발자라는 것만 알았지
프론트엔드, 백엔드가 무엇인지도 알지 못했고
풀스택 개발자가 무조건 좋은거 아닌가 생각했다
(지금에서는 풀스택이 되기보다는 맡은 분야에 대해서 만큼은 전문가가 되자는 생각.)
인터넷에서 많은 정보를 뒤져보기 시작했고,
서점에서 개발관련 서적들을 찾아보게 되었다
그 중에서 눈에 띄었던 위의 책을 보게 되었는데
제목처럼 비전공자가 개발을 이해하는데에 무척이나 도움이 되었다.
개발이라는 것을 그럴싸한 비유를 들어서 설명해주는데,
평소에 글 읽는 것 자체를 좋아한다면 무리 없이 읽을 수 있는 책이었다
이 책에서 강조했던 내용 중 하나가
'개발자가 가장 먼저 배워야 할 것은 프로그래밍 언어가 아닌 커뮤니케이션이다'
와 같은 뉘앙스의 말이 있었는데
3개월간의 실무까지 경험해 본 지금으로서는
커뮤니케이션에 대해 강조하는 글쓴이의 의도를 잘 알 것 같았다.
개발자는 개발이라고 하는 업무를 담당하지만,
그 개발이라고 하는 것을 통해서 결국 서비스를 만들어 내야 하는 것이기 때문에
기획에 맞게, 디자인에 맞게, 각종 요구사항에 맞게 개발하는 것이 가장 중요한 일이었다
그렇기 때문에, 직무 자체에 대한 탐색도 중요하지만
개발자의 위치가 어디인지를 정확하게 파악하고 업무에 임하는 것이 가장 중요해 보였다.
그래서 어쩌면 개발자는
개발 지식 뿐만 아니라 다른 직무에 대한 지식 전반에 대해서도
어느정도 알고 있어야 하는게 아닐까 하는 생각과 태도를 가지게 되었던 것 같다.
(물론, 생각은 쉽지만 실천은 매우 어렵다는 사실)
위에서 말하고자 했던 주제에서 살짝 벗어난 것 같아 돌아오자면,
비전공자로서 개발 직무에 접근을 하려고 한다면 정말 조심해야 한다는게 내 결론이다.
사실 아무것도 모르는 상태에서는
백엔드 개발자가 무얼하는지, 프론트엔드 개발자가 무얼하는지
백 날 천 날 말로 설명해봐야 이해하기 너무너무 어려울 것이다.
가장 좋은 방법은 그냥 부딪혀보는 것이다.
당장 시간과 자본을 투자하기 어렵다면, 이런 걸 추천한다.
아직까지도 이만큼 접근하기 쉬우면서 유익한 강의나 과정을 본 일이 없다.
특히, 이고잉님의 생활코딩 강의는 입문자에게 둘도 없는 친구같은 존재라고 생각한다.
비전공자에게는 이렇게 친절하고 쉽고 재밌는 강의가 없을지도 모른다고 생각한다.
(심지어 그런 강의가 무료라는게 믿기지 않을만큼 말이다)
일단 시간적 여유를 두고 경험을 하면서 지켜보기를 바란다. 제발.
시간적 여유가 없다면, 여유를 만들어서 시작하기를 바란다. 제발.
생각보다 더 만만한 생태계가 아니기 때문에, 어줍잖게 시작할 수는 없다.
경험을 하는 동안 자연스럽게 개발자가 어떤일을 하는 지 알게 될 것이고,
그게 적성에 맞는지는 스스로 판단을 꼭 해보아야 한다.
(맞지도 않는 옷을 억지로 입으려고 하는 것만큼 어리석은 일은 없을 것이다)
적성에 맞는다고 판단했다면,
이제는 정말 정보력 싸움에 돌입해야 할 때가 왔다!
전공자들은 아마 이 글을 읽지도 읽을 필요도 없을테니까
비전공자들을 대상으로 글을 계속 적어본다.
위의 시점에서 가장 중요한 정보력은
나에게 필요한 지식이 무엇인지, 어디서 그 지식을 얻어낼 것인지이다.
일단은 먼저 내가 개발자로서 어떤 일을 하고 싶은지 생각해보자.
개발자가 되려고 했던 이유를 이야기 하는게 아니다.
개발자가 되어서 나는 어떤 업무를 처리하고 싶은가에 대해서를 이야기 하는 것이다.
정말 단순하게 나누자면,
보이는 것을 만들어서 바로 확인하고 싶다면 프론트엔드
보이지 않는 것을 만들어서 내부에서 돌아가는 것들을 설계하고 싶다면 백엔드
라고 할 수는 있을 것 같다.
내가 하고 싶은 업무에 따라 큰 틀에서의 방향을 정했다면
그 방향성에 맞는 지식을 필요로 할 것이다.
프론트엔드를 기준으로 한다면 HTML, CSS, JavaScript가 주요하게 필요할 것이고
백엔드는 우리나라를 기준으로 Java와 DB관련 기술이 주요하게 필요할 것이다.
그러면 이제 어디서 그 지식을 얻을 것인가를 알아보아야 하는데
나는 이게 사실 제일 어렵고 힘들었다.
그 이유는 가르쳐주는 곳은 많지만,
필요한 것을 적재적소에 잘 가르쳐 주는 곳은 드물기 때문이다.
그리고 이러한 정보는 광고가 판치는 인터넷 세상에서 쉽게 찾기가 어렵다.
이 글을 읽는 당신이 돈이 많다면,
적당한 부트캠프를 들어가서 수업을 듣는게 가장 빠를 것 같다.
그치만 그러한 부트캠프도 너무 많기 때문에, 거르기 어려울 수도 있다.
그럴 땐 커뮤니티를 이용해서 조언을 얻어보는것도 좋은 방법이 될 수 있다.
물론, 처음보는 사람들이 쉽게 도움을 주지는 않겠지만
세상엔 생각보다 착한 사람들이 또 많기 때문에
길을 잃고 헤메는 뉴비를 인도할 고인물들이 많은 것도 사실이다.
사실 나는 커뮤니티의 존재를 늦게 알기도 했고,
부정적인 여론을 지켜보는 것을 별로 좋아하지는 않아서
그렇게 커뮤니티를 자주 이용하는 편은 아니지만
이 곳을 추천해본다
어디서 어떻게 배울건지 찾았는데,
이게 정말 최선인건지 모를때에는 커리큘럼이나 수강비용 등을
커뮤니티에 공개하고 물어보면 많은 하이에나(?) 들이 달려들어 물어뜯을 것이다.
위 과정까지 무사히 마치고 개발 공부를 시작하려고 하고 있다면
정말 마음을 독하게 먹고, 구체적인 계획과 착실한 실천만이 그 답이 될 것이다.
일단 시작했다면 죽이 되더라도 끝은 봐야한다
본인이 비전공자라고 하더라도, 절대 쉽게 포기하지 않기를 바라고 권면하는 바이다
(칼을 들었다면, 뭐가 되든 썰어봐야 하는 것 아니겠는가)
본인의 한계가 어디까지 인지를 꼭 시험해보기를 바란다.
개발자는 한계에 부딪히는 상황에 자주 놓이기 때문에,
그걸 극복할 수 있는 능력도 개발자에게 꼭 필요한 역량이다.
(사실, 어떤 일을 하더라도 틀을 부술 만큼의 끈기가 있는 사람이 성공하는 것 같다)
나는 부끄럽게도 개발 공부를 하면서 슬럼프에 빠지는 일이 너무나도 많았지만
이러한 경험을 해본 적이 없기 때문이었다고 생각한다.
본인이 낭떠러지와 같은 상황에 있지 않다고 하더라도,
미래를 생각해서 모든 것에 간절해지기를 바라는 마음이다.
아마도 본인이 생각하기에 백엔드 혹은 프론트엔드가 맞다고 생각해서 시작을 했지만,
어느정도 배워갈 때에 정말 이게 맞는 건지 헷갈릴 때가 반드시 찾아올 것이다.
(직무를 전환하는 한이 있더라도, 마지막까지 포기하지 않고 도전해보기를 바란다)
원래 처음 글을 쓸 때는 내가 겪었던 일들을 서술하며,
어떻게 하는 것이 좋은걸까를 회고해보려고 한 글이었는데
막상 쓰려고 하니 누군가에게 도움을 주는 편이 낫다는 생각도 들고
그냥 내가 겪었던 일을 서술하는 것보다는 개발을 어떻게 접근해야 할지
내 생각을 정리하는 차원의 글이 더 도움이 될거 같다는 생각이 들었다.
그래서 생각보다 글이 더 길어지는 것 같아,
이번 글은 이쯤에서 마무리 하는 걸로 하고
나머지 이야기는 다음 편에 이어서 하는 것으로 해야겠다.
조금이나마 도움이 되었다면, 댓글로 알려주길 바라고
수정해야 할 것이 있다면, 그것도 댓글로 알려주길 바란다!
정말 아직도 아무것도 모르는 바보 개발자라고 생각하지만
개발을 어떻게 접근해야 할지 모르겠는 막막함을 조금이나마 줄여보고자 이러한 글을 써 보았다.
이 글은 정말정말 이쯤에서 마무리를 짓고,
다음글로 돌아오도록 해보겠다!
정말, 블로그를 쓰지 말아야 할까..? (개발자 블로그) (2) | 2022.08.11 |
---|---|
백엔드 개발보다 프론트엔드 개발이 더 좋았던 건에 대하여(개발자 입문기) - 2 (0) | 2022.07.27 |
댓글 영역