코드 읽기 스터디

0
post-thumbnail

코딩을 잘하고 싶다

나는 코딩을 잘하고 싶은데, 실력이 한없이 부족하다고 느껴진다.

서비스를 능숙하게 만들고, 솔루션을 완벽하게 구현하며, 마법처럼 도커와 쿠버네티스를 다루고 싶다. 뿐만 아니라 SQL 최적화도 잘하고, 네트워크 성능을 향상시키며, DBMS나 프로그래밍 언어를 만들고, 커널 프로그래밍까지 하고 싶다. Rust도 능숙하게 다루고 싶다.

학생 때는 무작정 부딪혀봤던 것 같은데, 이제는 회사 생활을 하다 보니 퇴근 후 한정된 시간 안에 최대한의 성과를 내는 방법을 고민하게 된다. 몇 달째 퇴근 후 강의를 듣고 주말마다 모각코 모임에 참석하지만, 남는 것이 별로 없다는 느낌이다. 무작정 시간을 쏟아붓는 것도 답이 아닌 것 같다. 그래서 효율적인 학습 방법에 대해 고민하게 되었다.

공부는 안 하고 이런 것만 따라하고 있다.

thanks to 코딩애플

인간은 어떻게 학습할까?

인간은 어떻게 학습할까?
영어를 배울 때는?
넷플릭스와 유튜브를 통해 현지 영어를 최대한 습득할 것이다.

근력 운동을 배울 때는?
PT를 받거나 유튜브에서 남의 자세와 루틴을 참고할 것이다.

롤을 배울 때는?
프로게이머 선수들의 플레이를 많이 분석할 것이다.

그런데 정작 코딩을 배울 때는 남의 코드를 보는 일이 비교적 적은 것 같다.

대학교 전공 수업에서 C와 Python의 문법을 배우고, 자료구조, 알고리즘, 컴퓨터 구조, 네트워크, 데이터베이스 강의를 듣고 과제를 해나가며 CS 지식을 쌓았다. 하지만 정작 프로그래밍 실력은 (개인적으로 정의하기 나름이겠지만) 향상된 것 같지 않다.

문득 이런 생각이 들었다. 아, 나는 너무 코드를 쓰기만 한게 아닐까?

남의 코드를 읽는 경험도 많이 쌓아야 하지 않을까?

그래서 코드 읽기 스터디를 시작해보기로 했다. 마치 영어 공부하는 사람들이 많은 원서를 읽고, 근력 운동하는 사람들이 운동 유튜버들의 자세를 보는 것처럼, 좋은 코드를 많이 읽고 그 핵심을 파악해보기로 한 것이다.

읽어볼 만한 코드들 찾기

언어는 Rust로 선택했다.

GitHub에서 Star를 많이 받은 Rust 프로젝트 100개 중 사이즈가 작은 프로젝트부터 읽어보기로 했다.

https://api.github.com/search/repositories?q=language:rust&sort=stars&order=desc&per_page=100

GPT가 친절하게도 약 1만 2천 줄의 스타 수 상위 100개 Rust 프로젝트의 정보를 JSON 데이터로 받아보는 방법을 알려줘서 이를 활용해보기로 했다. 100개로는 부족할 것 같아 총 300개의 정보를 받았다.

스타 수 랭킹 상위 300개의 Rust 프로젝트 정보를 정렬한 결과, 다음과 같은 결과가 나왔다.

레포 이름과 함께, 옆에 크기가 KB 단위로 표시되는데, 가장 작은 프로젝트인 "bore"부터 순서대로 코드 분석을 시작하기로 했다.

부디 이 학습법이 성과를 보이기를 기대한다. 앞으로 순서대로 코드를 분석해가며 배운 점을 공유해보고자 한다.

0개의 댓글

관련 채용 정보