middlefitting

roadmap.sh로 학습하기 본문

MyStory

roadmap.sh로 학습하기

middlefitting 2024. 6. 19. 18:27

해당 글은 최근 roadmap.sh로 학습을 시작한 계기와 아직 시작 단계이지만 진행하면서 느꼈던 긍정적인 점, 고민한 부분을 나누고자 작성하였습니다.

 

저는 개발자, 그중에 백엔드 개발자로 진로를 결정하였고 현재까지 2년 반 정도의 학습을 이어오고 최근 구직을 시작하였습니다.

 

전공은 빅데이터 관련 전공이었는데, 너무 데이터에 한정된 것 보다는 서버 개발에 대해 기본적인 이해를 갖추면 데이터 흐름에 이해를 갖추는데 도움이 많이 된다는 추천이 많았고, 저 또한 공감하였기 때문에 백엔드 관련 학습을 시작했습니다.

 

모 학원의 Java/Spring 국비교육 과정을 통해 입문하게 되었는데요, 이때 반성도 많이하고 개발 영역에 강한 흥미를 느끼는 계기가 되었습니다. 

 

정말 부끄러운 일이지만, 당시 '밑바닥부터 시작하는 딥러닝' 이라는 책을 읽고 있었는데 거기서 나오는 파이썬의 self 키워드를 저는 이해하지 못하고 있었습니다. 국비교육 과정에서 객체지향 프로그래밍에 입문하고, 집에 와서 혼자 관련 서적을 읽어보면서 저는 드디어 이를 이해할 수 있었고, 재학기간 동안 고차원 영역에서 ML 모델을 다루고 관련 논문만 읽어보고 프로그래밍적으로는 전혀 기본이 되어있지 않다는 점을 느꼈습니다.

 

그때부터 진로를 진지하게 고민하게 되었는데요, 저는 국비과정에서 서버 개발에 큰 매력을 느꼈고, 학습 면에서 좀 더 알고 싶고 능동적인 자세를 가진다는 것에서 이것이 제가 원하는 길이라 생각했습니다. 

 

그래서 기본기가 탄탄한 백엔드 개발자가 되는 것을 진로로 결정했습니다. 국비교육과정이 입문에 큰 도움이 된것은 사실이지만 6개월로 이를 달성하는것 택도 없었습니다. CS 영역에 이해가 부족하다 보니 알고리즘 문제도 잘 풀지 못하였고, 스레드 동시성 문제, 심지어 C언어 포인터 이런 개념도 따로 학습해도 잘 와닿지 않았습니다. 저는 성장할 수 있는 환경이 필요하였고 42 Seoul이 정답이라 생각했습니다.

 

42 Seoul에 대해 빠르게 취업하기엔 부적절하다는 의견도 많은데 물론 커리어 면에서 빠르게 취업하는 것도 중요하지만, 제 목표는 전공자 이상의 튼튼한 컴퓨터 공학 지식과 깊은 백엔드 개발 지식을 갖춘 개발자가 되는 것이 목표였습니다. 취업이 목표라기 보다는 인정받는 SW 영역의 개발자가 되고 싶었습니다. 결말이 어떻게 될지는 모르지만 이는 언젠가 저만의 경쟁력이 될 것이라 확신합니다.

 

2년간 42 Seoul 공통과정을 진행하면서, 입과 과정인 라피신에서는 한 1주일동안 이해하지 못한 메모리 포인터의 개념을 하루만에 이해할 수 있었고 Nginx를 모방한 웹 서버를 직접 구현하는 과제 등 정말 CS 부분에서 많은 성장을 할 수 있었고, 42 Seoul 학생들에게 도서관, 탁구 웹 서비스를 제공하는 개발 동아리 및 해커톤에 참여하면서 다양한 프로젝트도 경험할 수 있었습니다.

 

좀 오글거릴수도 있지만 저는 진심인데요, 42Seoul에서 가장 크게 얻을 수 있던 역량들은 협업 역량과 자기주도 학습 역량입니다. 이게 추상적이기도 하고 소프트 스킬이긴 하지만 이건 다녀봐야 알 수 있습니다. 팀프로젝트도 정말 많이 하게 되고, 과제 구현하려고 공식문서 살피고 그러다보면 자연스럽게 달성하게 됩니다.

 

서론이 정말 길었는데요, 저는 결과적으로 42 Seoul 공통과정을 이수하고, 앞으로 취업 여부와 상관없이 어떻게 성장할지에 대한 고민을 하였습니다. 그리고 roadmap.sh를 진행하기로 결정했습니다. 취업하면 금전적으로 행복해지지만 로드맵 달성하는데 시간이 좀 더 걸릴 것이고, 취업이 빠르게 되지 않으면 조금 빠듯하게 살면서 로드맵을 빠르게 달성할 겁니다. 둘다 나름의 장단점이 존재하는 것 같습니다.

 

 


 

 


roadmap.sh

 

roadmap.sh는 개발 영역에서 특정 영역에서 필수적이다 생각되는 부분을 그래프로 보여주는데요, 노란 그림으로 개발을 공부하셨으면 한번쯤을 다들 보셨을 것 같습니다.

 

이는 아래 사이트에서 확인하실 수 있는데요 저는 우선적으로 Java, Computer Science, Spring Boot, Backend 로드맵을 병렬로 진행하려고 합니다. 예상 기간은 4개월에서 긴 로드맵은 6개월까지 소요되지 않을까 생각합니다.

 

https://roadmap.sh

 

Developer Roadmaps - roadmap.sh

Community driven roadmaps, articles and guides for developers to grow in their career.

roadmap.sh

 

시작하게 된 계기는 SW를 공부하면서 정말 이 분야는 너무 방대해서 다 알고 싶지만 물리적으로 한계가 있고, 제가 목표로 한 백엔드 영역에 전문성을 가지는 것에 우선적으로 초점을 맞추고 싶었기 때문입니다. 로드맵 자체도 방대하긴 해서 이걸 다알면 시니어다라는 의견도 많지만 실제 요즘 JD를 보면 신입도 다 알아야 취업을 할 수 있는 수준으로 변하고 있습니다. 개발자 경쟁이 많이 심화되었기 때문에 경쟁력을 가지기 위해서라도 뎁스가 깊어져야 한다 생각합니다. 백엔드 개발자 JD를 보면 여기 로드맵에서 크게 벗어나지 않아서 괜찮은 선택지지 않나 생각합니다.

 

이게 로드맵이라는 것뿐만 아니라 가장 큰 강점은 로드맵의 요소들을 클릭해보면 관련 공식문서, 무료 강의 (유튜브, 코세라, MIT) 등 공신력있는 자료들로 구성되어 있어서 학습 시간을 단축할 수 있습니다. 그리고 전반적으로 자료들이 가독성이 좋습니다. 자료를 찾는 것도 정말 시간이 많이 소요됩니다. 얼마나 깊게 공부할지는 선택이긴 하지만 기간을 고려하되 얕지 않게 진행하려 합니다.

 

그리고 다른 장점은 모두 영여입니다. 저는 영여 실력이 좋지 않아 부담스러웠는데, 번역기 및 GPT를 동원하면 모두 충분히 읽을 수 있습니다. 그리고 읽다보니 영어 실력이 결국에는 좋아질 것 같다는 확신이 드는데요, SW 공부하다 보면 결국에는 최신 문서는 모두 영어이기 때문에 관련 훈련을 할 수 있다는 것도 장점입니다.

 

저는 학습을 진행하면서 그동안은 노션에 정리하던 방식에서 벗어나 깃허브에 학습 기록, 코드, 테스트 코드 등을 모두 올릴 것이고 이를 바탕으로 블로그에도 글을 작성하려 합니다.

 


진행중

 

https://github.com/middlefitting/Java-roadmap.sh

 

GitHub - middlefitting/Java-roadmap.sh

Contribute to middlefitting/Java-roadmap.sh development by creating an account on GitHub.

github.com

 

https://github.com/middlefitting/ComputerScience-roadmap.sh

 

GitHub - middlefitting/ComputerScience-roadmap.sh

Contribute to middlefitting/ComputerScience-roadmap.sh development by creating an account on GitHub.

github.com