요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

ChatGPT와 같은 강력한 생성 AI의 등장으로, 코딩하는 개발자의 시대는 끝났다는 이야기도 심심찮게 들려오고 있다. 하지만 그럼에도 여전히 개발자에 대한 사회적 수요는 높고, 개발자를 꿈꾸는 지망생도 많다. 나는 뒤늦게 컴퓨터 공학을 복수전공하긴 했지만, 원래 어문학과를 다녔기 때문에 완벽한 전공자라고는 볼 수 없다. 그래서 이번 글에서 비전공자로서 개발자를 꿈꾸는 사람들에게 공부 방법과 추천 도서, 취업 준비 팁 등을 공유하고자 한다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

비전공자 개발자 취업, 어떻게 준비해야 할까?

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

ChatGPT와 같은 강력한 생성 AI의 등장으로, 코딩하는 개발자의 시대는 끝났다는 이야기도 심심찮게 들려오고 있다. 하지만 그럼에도 여전히 개발자에 대한 사회적 수요는 높고, 개발자를 꿈꾸는 지망생도 많다. 나는 뒤늦게 컴퓨터 공학을 복수전공하긴 했지만, 원래 어문학과를 다녔기 때문에 완벽한 전공자라고는 볼 수 없다. 그래서 이번 글에서 비전공자로서 개발자를 꿈꾸는 사람들에게 공부 방법과 추천 도서, 취업 준비 팁 등을 공유하고자 한다.

 

개발자가 된 이유

개발자 공부 방법을 다루기 전, 약간의 TMI를 섞어 개발자가 된 이유에 대해 이야기하고자 한다. 학부생 시절 나는 진로에 대해 방황하다가 혼자 해외여행을 떠나게 되었다. 일본을 시작으로 대만, 베트남, 유럽 등을 일주했고, 일본에서의 마지막 날 컴퓨터 공학을 전공하던 한 친구와 통화를 했다. 그 친구는 나에게 “아직 시간도 많은데 이동시간에 코딩을 해봐.”라고 했고, 이 한 마디가 ‘개발’을 시작하게 된 계기가 되었다.

 

이상하지만 친구의 말이 계속 생각나, 바로 일본 서점에 가서 C 언어 교재를 구매했다. 영어로 된 책을 찾아달라고 점원에게 부탁했던 기억이 아직도 생생하다. 그다음 여행 중 이동시간에 코딩을 공부하기 시작했다. 그렇게 시작한 코딩이 진로 선택에 영향을 줬고, 결국 ‘개발자’라는 직군을 갖게 된 것이다. 굳이 이 이야기를 꺼낸 이유는 시작에 있어 꼭 거창한 이유나 계획은 필요하지 않다는 점을 말하고 싶었다. 작은 관심이나 계기로도 누구든 개발을 시작할 수 있다.

 

 

비전공자를 위한 개발 공부 방법

1) 첫 시작은 흥미 찾기로

<출처: smartspate>

 

어떤 분야든 마찬가지겠지만 개발자가 되고 싶다면 우선 흥미가 있어야 한다. 많은 사람들이 “이 언어로 시작해도 괜찮을까요?” 혹은 “이 언어가 근본이라고 하던데 맞나요?” 같은 질문을 던진다. 물론 어떤 언어로 시작해야 할지 고민되겠지만, 개인적으로 어떤 한 언어를 고집할 필요는 없다고 생각한다. 프로그래밍 언어는 정적 언어인 자바, C, C++부터, 동적 언어 자바스크립트, 파이썬, 루비 등이 대표적인데, 내가 추천하는 방법은 찾아본 언어들을 활용해 간단하게나마 프로그램을 짜보는 것이다. 직접 해보면 이 언어에 흥미를 느끼는지, 언어가 가진 철학이 나와 맞는지 등을 알 수 있다.

 

예를 들어, 파이썬을 선택했다면 먼저 정석대로 “Hello, World!”를 찍어 보고, 그다음 책이나 유튜브, 인터넷 강의 등을 통해 언어의 문법을 하나씩 익히는 것이다. 만약 파이썬으로 시작했지만 도저히 이해가 안 된다면 다른 언어로 넘어가면 된다. 처음 결정한 언어를 계속 공부해야 한다는 미련을 버리자. 첫 시작은 우선 흥미를 찾는 것이 가장 중요하다.

 

2) 우리는 인간이 아닌 컴퓨터를 이해해야 한다

프로그래밍 언어는 컴퓨터와 인간 사이의 대화 수단이다. 중간 전달자라고도 볼 수 있다. 그래서 개발자가 컴퓨터를 이해하는 것은 중요한 사안이다. 그동안 시니어 개발자에게 조언을 구하고, 공통적으로 얻은 답변은 이러하다. “컴퓨터를 이해하는 것은 발판이 되기 때문에, 언젠가 언어를 더 깊게 이해할 수 있게 도와준다.”라고 말이다.

 

예를 들어, 운영체제의 메모리 구조를 살펴보면 Code, Stack, Heap, Data로 이루어져 있다. 만약 비전공자라면 이러한 구조에 대해 잘 모를 수도 있다. 당장 운영체제부터 공부하진 않아도 된다. 다만 개발자로서 커리어를 시작하려면 많은 리소스를 어떻게 효율적으로 다룰 것이고, 이 언어가 어떻게 운영체제, 컴퓨터 구조에 연관되어 효율적인 코드를 짤 수 있을지 아는 것은 중요한 부분이다.

 

결국 컴퓨터에 대한 이해, 즉 컴퓨터 공학과에서 배우는 컴퓨터 과학(computer science) 등 기초 커리큘럼은 개발자로서 한걸음 더 나아갈 수 있는 발판이 되어준다. 하지만 비전공자라고 벌써 실망할 필요는 없다. 공부할 수 있는 방법은 얼마든지 있다.

 

<출처: C Programming a Modern Approach>

 

내가 추천하는 방법은 일단 책이나 기초 강의, 유튜브 등 무엇이든 하나를 정해 독해를 시작하는 것이다. 나는 C 언어를 공부할 때, ‘C Programming a Modern Approach’ 원서로 시작했다. 이후에 모르는 부분이 나오거나, 설명이 부족하다고 느끼면 그 내용을 구글링(요즘은 ChatGPT를 이용해도 괜찮을 것 같다.) 하거나, 강의를 찾아보며 더 깊게 파고들었다.

 

예를 들어, 네트워크에서 TCP, UDP가 나오면 이 부분의 차이점만 이해하지 말고, TCP가 어떻게 작동하는지, 혹은 왜 3-way Handshaking을 도입했는지, 이러한 특징이 가지는 장단점은 무엇인지 하나하나 스스로 물으며 답변했다. 이렇게 들어가다 보면 패킷에 대한 이야기, TCP의 패킷이 어떤 구조로 되어있는지도 함께 공부할 수 있다.

 

이렇게 깊게 파는 게 과연 도움이 될까?라고 생각할 수도 있다. 하지만 결국 컴퓨터라는 범주 내에서 모든 내용이 연관되어 있음을 알 수 있다. 네트워크를 공부하다 보면, 이를 수신하는 네트워크 I/O는 어떻게 컴퓨터에서 작동하며, 데이터는 어떻게 CPU나 메모리에서 처리되는지 등으로 연결되기 때문이다. 한번 시작했다면 깊게 파고드는 노력도 필요하다.

 

3) 영어 공부는 선택이 아닌 필수다

<출처: Stack Overflow>

 

영어라는 단어만 봐도 벌써 지루한 분들도 있겠지만, 개발자에게 있어 영어는 굉장히 중요한 무기이자 능력이다. 만약 개발에 어느 정도 흥미를 느끼고, 프로그래밍에 발을 들이기 시작했다면 영어로 된 원서 읽기 혹은 공식 문서 읽기를 추천한다. 개발 언어 대부분이 영어인 것도 있지만, 커뮤니티의 중요성도 무시할 수 없기 때문이다.

 

개발자들이 프로그래밍 관련 질문을 주고받는 글로벌 커뮤니티 ‘Stack Overflow’만 해도 영어를 중심으로 돌아가고, 대부분의 에러 로그를 검색하면 영어부터 뜬다. 물론 한글로 번역해서 읽어도 되지만, 어느 순간 한계에 부딪힐 것이다. 그러니 다양한 개발 생태계를 경험하기 위해 영어 공부는 필수다. 개발자를 위한 영어 공부 커뮤니티나 스터디 등에 가입해 보는 것도 좋은 방법이다.

 

 

비전공자를 위한 개발 도서 추천

다음은 비전공자가 읽어보면 좋은 도서를 소개하고자 한다. 워낙 유명한 책들이 많지만 대표적으로 3권을 가져왔다. 앞서 강조했듯이 개발자에게 영어 실력은 중요한 부분이라, 책은 원서로 읽어보는 것을 추천한다.

 

1) Fundamentals of Data Structures in C, 저자 엘리스 호로비츠

<출처: 네이버 도서>

 

이 책은 자료구조를 다룬 도서 중 양대 산맥에 속한다. 다른 하나는 ‘Data Structures and Algorithm Analysis in C++’라고 생각하는데 이외에도 여러 종류가 있다. 자료구조의 이론에 대해 이만큼 자세하고 깊게 정리한 책은 없다고 생각한다. 영어로 된 원서를 추천하지만, 한글로 번역된 책도 있다. 이 책은 자료구조에 대한 기본적인 개념은 물론 C 언어로 된 코드들도 제공해 준다. C 언어를 먼저 공부한 다음, 다른 언어로 다시 구현해 보는 것도 좋은 방법이기 때문에 이 책을 추천한다.

 

2) Introduction to Algorithms, 저자 토머스 코멘,찰스 레이서손 외 2명

<출처: 네이버 도서>

 

모든 알고리즘을 전부 이해할 필요는 없지만, 알고리즘에 대한 기본 개념을 잡고 이해하고 싶은 분들에게 추천하는 책이다. 나의 경우 이 책을 끝까지 읽고 문제를 푸는 방식보다는 평소 궁금했거나, 중요하다고 알려진 알고리즘을 검색해본 후, 책에서 찾아 읽어보는 식으로 접근했다.

 

3) Clean Code(클린 코드), 저자 로버트 C. 마틴

<출처: 네이버 도서>

 

이 책은 개발자가 코드는 혼자 쓰고 유지 보수하는 것이 아니라, 다 같이 작성하고 유지 보수하는 것임을 깨닫게 해준다. 그래서 어떻게 해야 여러 사람들이 읽기 쉬운 코드를 쓸 수 있는지, 좋은 코드와 나쁜 코드를 구분하는 방법 등에 대해 설명해 준다. 개발자 지망생이나 주니어 개발자의 경우, 협업의 중요성에 대해 깨닫지 못할 때가 있는데 이 책을 통해 동료들과 함께 클린 코드를 만드는 방법에 대해 배울 수 있을 것이다.

 

 

비전공자를 위한 개발자 취업 준비 팁

마지막으로 비전공자 개발자로 어떻게 취업을 준비해야 할지 막막한 분들을 위해 몇 가지 팁을 공유하고자 한다. 가장 중요한 것은 지원하고자 하는 기업에 대해 열심히 공부하는 것이니, 개인적 경험에 의한 팁은 참고만 해주시길 바란다.

 

코딩 테스트와 면접은 어떻게 준비해야 하나요?

1) 코딩 테스트

코딩 테스트는 각 회사마다 다르지만, “지원자가 가진 최소한의 베이스”를 평가하는 과정이라고 생각한다. 그래서 각기 다르면서도 큰 틀에서 볼 땐 비슷하다. 코딩 테스트를 위해 우선 알고리즘과 자료 구조에 대해 알고 있어야 하며, 위에서 추천한 책을 참고하면 좋다. 개인적으로 참고했던 사이트는 백준, Leet Code, Programmers가 있다. 백준과 프로그래머스는 특히 국내 기업에 특화되어 자료가 많은 편이라, 다양한 문제들을 풀어보면서 손에 익히는 것을 추천한다.

 

다양한 문제가 출제되지만, 패턴은 각 회사마다 비슷하다. 그래서 코딩 테스트 기출을 풀기 전, 코딩할 때 알고리즘을 어떻게 구현할지, 시간이 얼마나 걸리는지 등 하나하나 체크해 보아야 한다. 어떤 문제가 주어졌을 때, 요구되는 적절한 알고리즘이 있는데 이것을 파악해야 한다. 그다음 기출문제를 풀며, 예상되는 문제를 파악해 보자.

 

2) 면접 준비

개인적으로 면접은 일희일비하지 않는 것이 가장 중요하다고 본다. 면접 분위기가 좋아도 떨어질 수 있고, 분위기가 좋지 않았어도 붙을 수 있다. 그래서 최대한 많은 곳에 지원해, 면접에 대한 경험치를 늘리는 것이 먼저다. 면접을 미리 준비하더라도, 언제든 예상치 못한 질문을 만날 수 있기 때문이다.

 

다만 백엔드, 프론트엔드 등 직무에 대한 질문부터,  Django, Vue, React, Spring Boot 등 스택에 대한 질문은 쉽게 찾아볼 수 있다. 더 나아가 CRUD(Create Read Update Delete)부터 HTTP 1.0, 1.1, 2.0 등의 차이를 설명하는 공통적인 질문에도 대비하자. 여기서 내가 추천하는 방법은 좀 더 깊게 파고드는 것이다. 예를 들어, 단순히 CRUD가 HTTP의 POST, UPDATE에 해당되는 것을 넘어, 데이터베이스를 수정할 때 어떤 네이밍을 짓고, 어떤 HTTP 메소드를 사용하면 좋을지 등을 더 자세히 떠올려 보는 것이다. 

 

개발자 스터디는 꼭 필요한가요?

스터디는 꼭 필요하다기보단 시간을 어떻게 활용할 것인가를 고민해야 한다. 스터디를 시작해도 누군가는 준비를 안 하거나, 도중에 빠지는 사람이 생길 수 있다. 이러면 스터디의 목적이 흐지부지될 수 있다. 좋게 보면 함께 피드백을 주고받으며 몰랐던 부분을 보완할 수 있지만, 자칫 시간만 낭비하고 끝날 수도 있다. 지망생들만 모인 곳보다는 실무자가 리드해 주는 곳을 선택하는 것이 좋다.

 

 

마치며

비전공자라고 너무 늦었다고 생각할지도 모른다. 하지만 개발자는 좋은 의미에서 접근성이 높다는 장점이 있다. 컴퓨터 하나면 모든 것을 시작할 수 있기 때문이다. 그러니 개발자가 되길 원한다면, 코드를 써보는 것부터 바로 시작해 보길 바란다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 1
sinhe93
            잘 봤습니다!!!!
          
2023.08.05. 오후 17:29
혼란스러운 개발자
2
명 알림 받는 중

작가 홈

혼란스러운 개발자
2
명 알림 받는 중
어문학과를 갔다가, 어쩌다보니 친구의 권유로 컴퓨터 공학을 복수전공한 혼란스러운 개발자입니다.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기