2022-12-28

프로그래밍 관련한 책을 보고 있습니다.

최근 들어서 코딩에 대한 신문기사를 종종 읽습니다. 앞으로 정규 교육 과정에도 포함시킬 듯 합니다.( https://www.hani.co.kr/arti/society/schooling/1055749.html ) 코딩은 꽤 오래 전에 HTML을 익힌다고 간단한 자바 스크립트를 사용해 본 것이 전부입니다. 여기에 그동안 공부한 것들도 코딩과는 거리가 매우 멀었습니다. 아는 것이 없다 보니 프로그래밍이 대체 무엇인지 궁금증이 생겼습니다.

원하는 수준은 고급적인 지식은 바라지 않고 대강만 알 수 있는 정도입니다. 인터넷을 찾아보니 코딩에 입문할 때 파이썬을 선호하는 것 같습니다. 파이썬의 다음 단계로 C를 접한 후에 심화 과정에 들어가는 것으로 보입니다.

저녁에 시간이 있을 때마다 볼 생각으로 책을 구입했습니다. 지금까지 읽은 책은 이렇습니다.
가장 왼쪽의 책은 "처음 시작하는 파이썬"( https://books.google.co.kr/books?id=4Rr6DwAAQBAJ&lpg=PP1&hl=ko&pg=PP1#v=onepage&q&f=false )입니다. 뱀을 굉장히 싫어하는 가족이 있어서 표지를 떼어냈습니다.

읽은 순서는 "처음 시작하는 파이썬", "C 기초 플러스", "러스트 프로그래밍 공식 가이드" 순입니다. 프로그래밍 입문으로 파이썬은 클래스까지만 접하면 된다는 글을 보고 처음 시작하는 파이썬은 중간 정도까지만 읽었습니다. 최근에 Go하고 러스트가 주목 받는 것 같아서 러스트와 관련한 책도 넣었습니다. 평가 받아야 하는 공부가 아니고, 돈을 벌려고 일부러 하는 직업도 아니고, 머리 빠지게 어렵지 않은 입문 수준이니 재미있게 읽었습니다.

C와 파이썬은 유사한 점이 꽤 많았습니다. 둘 중 하나에 어느 정도 익숙해지면 나머지 하나도 책을 읽는 것이 많이 수월해집니다. 개인적으로는 입문을 파이썬 보다는 C로 하는 것이 더 낫지 않았나 하는 생각이 듭니다. C의 장점은 단순하고 빠르다는 점인데, 단순함 때문에 함정이 굉장히 많습니다. 함정에 계속 빠지면서 삽질하다 보니 코딩 특유의 논리의 흐름을 빠르게 익힐 수 있었습니다. 시행착오가 개념을 익히는데 많은 도움이 되었습니다. 그리고 이해가 되지 않을 때 디버거로 변수의 변화하는 과정을 보면 머릿속의 직관과 실제 코드의 흐름의 차이를 가시화 하기 좋았습니다. 파이썬으로 동일한 경험을 못 하는 것은 아니지만 C가 단순하다 보니 초심자의 입장에서는 논리의 흐름이 더 직접적으로 보였습니다.

러스트는 온갖 좋은 수식어가 다 붙어 있고 틀린 말이 아닙니다. 러스트 코드는 보기에는 C나 파이썬보다 지저분한데 읽기는 오히려 쉽습니다. 실수한 부분이 잘 보이고 여기에 더해서 컴파일러가 지적을 잘 해줍니다. 러스트의 트레이트와 메서드는 파이썬의 클래스보다 인간의 사고 방식과 더 잘 맞는 것 같습니다. 문제는 초기 난이도가 꽤 높습니다. C를 전혀 모르는 상태로 러스트를 접했다면 참조가 등장할 쯤에서 책을 던졌을 것 같습니다.

어떤 분야이든 초기 지식이 필요합니다. 초기 지식을 익히는 과정은 난이도를 떠나서 답답합니다. 알고 있는 지식으로 이해의 연쇄가 이뤄져야 하는데 처음에는 우로보로스처럼 A를 이해하려면 B가 필요하고, B를 이해하려면 A가 필요합니다. 초기 지식을 익힌 이후의 과정은 난이도의 측면에서는 더 어려워지지만 요구 지식의 피드백이 사라지니 답답하지는 않습니다. 파이썬은 문턱을 크게 낮춰서 차근차근 접하면 되고 C는 포인터에 들어서면 답답함이 사라집니다. 그런데 러스트는 이 과정이 너무 깁니다.

그냥 호기심에 시작한 독서인데 생각보다 재미가 있었습니다. 그동안 PC를 사용하면서 봤던 것들이 조금 더 구체적으로 보입니다. 여기에 오랜만에 느리게라도 머리를 굴리니 신선한 자극이 됐습니다.

댓글 없음: