11월 18일부터 12월 28일까지 한달 반정도 진행되었던 자료구조 스터디를 마무리하며 작성하는 회고록. 결론부터 말하자면, 정말 좋았다.

왜, 뭐가 그렇게 좋았을까.

아래부터 기술되는 후기는 철저히 필자인 sujilee의 주관에 의한 것입니다.

1. 자료구조 스터디 신청

평소 java 와 자료구조에 관련해 random에 종종 글을 올려주시는 박은종 멘토님께서 자료구조 스터디를 모집한다고 하셨다. 42과정 복학 후 다시 공부를 시작해보려는 내게 매우 솔깃한 기회였지만 솔직히 신청이 망설여졌다. 잘 해낼 수 있을거라는 확신이 서지 않았기 때문이다.

코맹이입니다.

나는 코딩이란 단어가 진짜 뭔지 몰랐던 2기 피씨너로, 피씬 직전에 “코딩 뜻”, “코딩 단어 의미”라고 네이버에 쳐보던 컴맹이었다.

피씬 중 C코드를 처음 접했을 때 내게 C를 알려주는 동료의 코드에 적혀있는

if (a <= 7)

를 보고 동료에게 “왜 7이 a를 화살표로 가리켜요?”라고 물어봤었으며, 처음 C 과제 동료평가때에는 함수명을 int sun, int moon, void star 로 해놓고 작동되는 main에 만족하며 모의평가하러 오신 분께 하이파이브를 요청했다.

그런 내가 여기까지 해내올 수 있었던 것은 동료학습의 몫이 컸다. 쉽지는 않았다. 성격이 나빠질때까지 코드를 들여다보고 동료분들의 도움으로 꾸역꾸역 본과정 과제를 해내던 나인데, 42과정 휴학 후 C를 다 잊은 상태로 자료구조 스터디를 잘 해낼 수 있을까? 신청하기까지는 하루정도의 망설임이 있었다. 그래도 신청했다. Pair Programming. 저 키워드가 나에게 용기를 줬다.

2. 자료구조 스터디 진행

자료구조 스터디는 주에 이틀(화, 금) 진행됐으며 멘토님이 격려의 말씀과 함께 이번 주제에 대해 간략히 설명해주시면, 우리끼리 본격적으로 해당 자료구조를 공부한 후 다음 스터디날까지 코드를 구현해오는 방식이었다.

이 스터디의 백미는 짝 프로그래밍이었다. 매주 정해진 짝과 함께 공부했던 개념을 확인하고 코드를 구현했다.

온/오프라인 모두 선택할 수 있었는데 나는 보통 오프라인을 선호했으며 온라인으로 진행해도 슬랙 허들과 vscode 라이브쉐어로 끊임없이 소통하며 한 화면 코딩을 고수했다. 이것이 신의 한수였다.

첫 오프라인 페어 프로그래밍에서 우리는 클러스터에 모여 한명이 타이핑하고, 나머지가 조력하는 방식으로 진행했다. 물론 조력하는게 훨씬 편했겠지만 나는 내가 먼저 타이핑하겠다고 자원했다. 그래야 휴학의 공백을 극복할 수 있을것 같았다.

물론 쉽지 않았다. 오타가 작렬하는 코딩은 둘째치고 나는 데이터에 접근하는 법도 까먹은 상태였다. 구조체 뒤에 “.”을 찍고 멤버명을 적는 것으로 구조체에 접근할 수 있다는 것도 하면서 기억났다. 메모리 관리며 예외처리며 동료들이 없으면 못하는 나를 보고 솔직히 충격이었지만 계속했다. 막막해도 지금 날 도와줄 동료가 곁에 있을 때 해야한다고 생각했다. 동료분들께 정말 감사하며 결국 코드를 마무리할 수 있었다.

그 후에 번갈아 가며 서로가 코드를 쳤을때, 우리는 끊임없이 소통하고 코드를 다듬으며 서로의 맹점을 보완해주었다. 첫 짝코딩을 진행하며 정말 오랜만에 동료학습다운 동료학습을 했다고 연신 감탄했던 것은 아직도 즐거운 기억으로 남아있다.

매주 다른 동료와 짝이 되어 코딩을 했고, 어느덧 나는 피씬 때 그러했던 것처럼 나를 일으켜준 동료들의 손 덕분에 다시 혼자서도 처음부터 끝까지 코드를 짤 수 있게 되었다. 이렇게 빨리 회복할 거라곤 생각 못했다. 다시 돌이켜봐도 놀랍다. 이게 동료학습의 힘 💪😾

비전공자인 짝과 비전공자인 내가 3일에 걸쳐 완성한 최소 비용 신장 트리(MST). 잘 작동했을 때의 기쁨이란.

자료구조 스터디를 마무리하며

혼자였다면 불가능했을 것이다.

함께 코딩했던 모두가 입을 모아 말했던 것이다. 동료와 함께한 한 화면 프로그래밍은 시너지가 기대 이상이었다. 그동안 멘토님들께서 여러번 언급하셨던 쉐어 코딩이 드디어 와닿았다. 한 번 제대로 맛보니 이걸 하지 않을 이유가 없다. 실제로 지금 진행중인 42cursus 과제도 자료구조 스터디에서 만난 동료 분과 같이 한 화면 코딩으로 협업하기로 했다.

힘들고 지쳐도 나를 기다리는 동료가 있다는 생각에 버티게 되고 민폐를 끼치고 싶지 않아 평소보다 공들여 준비하게 됐다. 그리고 동료와 함께하는 코딩은 언제나 즐거웠다. 엄청 웃고 엄청 집중했다.

덕분에 자료구조 스터디 전 배열과 연결리스트를 복습하러 Libft를 열었을때 기억나는 것이 하나도 없어 당황하던 나는 이제 여섯가지 이상의 자료구조에 대해 직접 구현할 수 있을 정도로 이해하게 되었다.

42서울에 와서, 컴퓨터라고는 게임만 할 줄 알던 컴맹이었던(구글링도 몹시 구렸다) 내가 이제는 전공을 컴퓨터공학으로 바꾸기 위해 준비중일만큼 이 분야에 몰입해있다. 42의 독특한 교육 방식과 카뎃들이 만들어가는 협조적인 학습 문화, 열린 마음으로 선뜻 도움의 손길을 내밀어주는 동료들이 없었으면 말도 안되는 일이었을 것이다.

42에는 정말 멋진 동료분들이 많이 계신다. 그 분들에게 받은 것을 나도 다른 분들에게 나눠드릴 수 있길 바란다. 항상 생각하지만 42의 이런 방식은 자발적인 선순환을 이끌어내는 것 같다.

ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ승리의 하이파이브!

보석같은 동료들과 닿게 해주고 코딩의 재미도 다시 알게 해준 자료구조 스터디에 너무나 감사한다. 기회를 주신 박은종 멘토님께도 감사드립니다.

자료구조를 짝코딩으로 해서 끝까지 완주할 수 있었습니다. 무려 크리스마스 이브에도 스터디를 하는 여러분 너무 멋졌습니다! 이 기세를 몰아서 컨테이너를 끝내보겠습니다!

🥕 mki님

이번에 자료구조 스터디를 하면서, 이론으로만 알고 있던 시간 복잡도를 실제로 적용해 보는 시간을 가졌습니다. 시간복잡도를 이용해 각 상황에 맞게 자료구조를 택하는 능력을 키울 수 있었습니다. 또 세부적으로는 이 자료구조가 어떻게 짜여졌는지를 습득했기 때문에 각 라이브러리를 더 효율적으로 사용할 수도 있었습니다.
이 자료구조 스터디반에서는 페어 프로그래밍이라는 학습방법을 이용했는데, 이 덕분에 상대적으로 c코딩 능력이 우수한 분들은 코드와 자료구조를 설명하게 되고 c코딩이 익숙치 않은 분들이나 조금 어려움을 겪는 분들은 구글링이 아닌 동료 학습으로 이론과 실습을 습득하게 되어 혼자 해결하는 것 보다는 더 효율적으로 학습한 것 같습니다.1달동안 같이 자료구조 스터디를 하면서 재밌었습니다. sujilee님께서 밝은 에너지를 가지고 얘기해 주셔서 저도 즐겁게 코딩할 수 있었습니다! 나중에 클러스터에서 뵈면 좋겠습니다ㅎㅎ

❄️ yeonjkim님

팀원분들로 만나신 분들이 다들 너무 열심히 해주셔서 저도 덩달아 열심히 하게되는 기분이였습니다 많은 분들과 같이 코드도 짜고 서로의 생각도 공유하고 잡다한 얘기도 많이 하면서 한달 조금 넘은 시간이 짧게 느껴질정도로 너무 재밌고 행복한 시간이었습니다 다음에도 이런 비슷한 기회가 있다면 또 참가하여 공부하고 싶습니다 멘토님 너무 감사했습니다~~!!

🔥 mson님

블랙박스로 남아 있었던 자료구조가 이번 스터디를 통해 어떤 것인지 약간은 알게 되었습니다!

🐻 taeskim님