파이썬에서 C언어로 넘어오며 익숙해지려고 Linked list의 기본 구조를 바탕으로 포인터와 malloc, free 연습을 했다. 이번 문제들은 그닥 어렵지 않아서 전부 풀 수 있었는데, 그래서인지 오히려 어셈블리어나 내부 구조에 더 관심이 생겼던 것 같다. 어셈블리어로 코드가 어떤 식으로 메모리를 활용하는지 뜯어보고, CPU에 맞는 코드를 짜는 게 중요하다고 생각했기 때문이다.
하지만 내가 간과했던 건, 요즘은 CPU 성능이 워낙 좋아져서 그 정도로 고도화된 코드보다는 남들과 협업하기 좋은, 즉 남들이 읽기 쉬운 코드를 짜는 게 더 중요하다는 조언을 들은 것이다. Code is a book이라는 말이 이래서 나왔나 보다. 앞으로 많은 프로젝트를 할 텐데, 절대 나 혼자 하는 게 아니란 걸 명심하면서 하는 게 좋을 것 같다. 물론 요즘 회사들은 다 AI를 써서 코드를 한 줄도 안 본다던데.. 잘 모르겠다. 앞으로 나도 코딩할 때 AI를 쓰겠지만, 기본적인 실력은 무조건 갖춰야 한다고 본다. 내가 믿는 그 기본기란, 운영체제까지 딥하게 파보는 것과 내가 가고자 하는 분야의 일정 수준 이상의 도메인 지식을 갖추는 거다.
이번 AI 팀 프로젝트는 C언어로 SQL을 구현해보는 거였는데, DBMS의 탄생 과정과 실제 C언어 프로젝트의 파일 구조가 어떻게 구성되는지 엿볼 수 있어서 좋았다. 이것 외에도 오픈 소스를 분석하는 방법을 조금씩 익혀나가고 있다. 하루빨리 거대한 코드를 술술 읽게 되고 싶다..
잠깐 쉬는 시간에 Kotlin을 공부했는데, 지금껏 쌓아놨던 지식들 덕분에 새로운 언어에도 금세 적응할 수 있어 그간의 노력이 헛되지 않았다는 생각이 들었다. 파이썬과 C라는 편의성의 양극단에 있는 언어들을 배우고 나니, 그 사이의 갭은 어느 정도 메꿔지는 기분이다.