La Piscine 체험기
작년, 42 Seoul 선발과정 "피신(La Piscine)"을 통과하고 본과정에 합격했습니다.(지금은 진행하지 않고 있다) 사실 처음 42 Seoul을 지원한 계기는 그곳의 "학습 방법"을 배우고 싶어서였습니다.
저는 이공계 베이스가 아닌데 it 쪽에 들어오기 위해서 책이나 강의로 독학한 케이스입니다. 그래서 학습 속도도 느렸고 같은 비전공자라면 이해하겠지만 모르는 것을 물어볼 곳이나 같이 공부할 사람이 없다는 것은 굉장히 괴롭습니다. 당연히 스터디를 구하고 같이 공부도 해봤습니다. 하지만 다 같이 모르는 상황에서 잘 배우기는 참 어렵습니다. 42 Seoul은 이것이 가능하다는 것을 알려줍니다.
42는 교수, 교재 없이 다양한 배경과 다양한 수준의 사람들이 모여서 아주 낮은 단계에서부터 도장 깨기 식으로 프로젝트 단위 학습을 하게 되어있습니다. 배우는 내용은 (내 기준에서) 고리타분한 컴퓨터공학, C언어, 시스템 네트워크 같은 것들이지만 굳이 경험하고 싶었던 이유는 "아무것도 모르는 사람들이 누가 가르쳐주지도 않는데 이런 것들을 어떻게 배우지?"에 대한 궁금증이 있었기 때문입니다.
제가 생각하는 커리어 방향에 이런 저수준 언어나 아키텍처가 깊게 필요하지는 않겠지만 이렇게 IT의 근간이 되는 기술을 배우는 방법을 배울 수 있다면 최소한 지금까지의 비효율적인 무지성 공부 방식은 고이 보내드릴 수 있을 것이라 생각했습니다.
컴퓨터공학을 학부에서 배워보지 못한 것이 약간의 한이 되어서 온갖 강의란 강의는 쓸어 담듯이 듣고, 이삿짐 절반이 기술 서적이 되었을 만큼 어느 정도의 주입식 교육으로 한을 풀었지만 여전히 이게 맞나? 싶었습니다. 그러다 42의 교육 시스템과 본과정 교육생들의 후기를 들어보면서 기술을 공부하고 체화하는 학습 방식을 배우기에 최적이라 판단했습니다.
"라 피신"이라는 선발과정에서 1달간 이 동료학습을 토대로 저수준 파일 구조, 기초 알고리즘, 자료구조를 쉘 명령어와 makefile, c언어 등을 사용해 직접 구현하게 됩니다. 이 선발과정에서 경쟁률을 뚫고 올라오면 본과정에 합류하게 됩니다.
본과정에서는 피신 때 배운 기초지식을 기반으로 쉘이나 통신 서버를 직접 저수준 아키텍처로 구현하기도 하고 간단한 게임이나 가상화 패키지도 직접 구현해볼 수 있습니다. 이 모든 것이 교수 교재 없이 동료학습 기반으로 배워나간다는 것이 놀랍습니다.
저는 비전공자로서 "배우는 방법"을 배우기 위해 42 서울에 발을 들이게 되었습니다. 라 피신에서 이 목표를 달성했고, 다시 현업에 집중하는 것이 맞다고 생각했습니다. 그러나 본과정 합격 당시 마음 한편으로는 42에서 공부를 조금 더 하고 싶었습니다. 본과정은 최대 2년간 진행되며 피신 때 배운 "배우는 방법"을 활용해 리눅스 서버, 네트워크 등 소프트웨어 기반 지식을 깊게 공부 해나는데, 관심이 있는 분야고 데이터를 다루거나 개발자들과 협업하면서 추상적으로만 이해하고 있는 위 내용들이 가끔 허들로 작용하곤 했기 때문입니다. 집중해야 할 실무가 있기 때문에 사실 2년까지는 계획하고 있지 않았지만, 조금은 더 있으려 했습니다.
42의 최대 장점은 직장을 다니거나 학교를 다니거나 심지어 사업을 해도 문제가 되지 않는다는 것입니다(단, 재직자나 사업자는 지원금을 수령할 수 없습니다!). 물론 이러한 병행이 결코 쉽지는 않지만 '강제성'이나 '시간상 제약'이 있는 타 교육들과 달리 100% 자율 학습 방식이기 때문에 본인이 하고자 한다면 공부를 계속 이어나갈 수 있습니다.
떠 먹여주지 않는 교육 방식 탓에 이런저런 말도 많고, 아웃풋도 천차만별입니다. 살면서 이것저것 해보니 마음에 쏙 드는 일만 하고, 곧장 필요한 공부만 하게 되는 상황은 그리 많지 않았던 것 같습니다. 결국 저마다 하기 나름입니다. 업무나 커리어에 직접적인 도움이 되지 않더라도 동료들과 함께 공부하는 것에 의미가 있고, 소프트웨어 기반 지식은 더 단단해질 것이라 믿습니다. 물론 42가 아니더라도 소프트웨어 공부는 평생 교육의 개념으로 지속해야 한다고 생각합니다. 하지만 42가 아니면 '굳이 여기까지 공부해야 하나?' 싶은 것들을 다루지는 않을 것 같습니다. "굳이 필요하지 않은 공부". 이것이 내가 본과정을 조금 더 지속하게 된 계기입니다. 42 과제를 진행하는 만큼은 업무 할 때의 압박감은 잠시 내려놓고, 순수한 호기심과 재미로 공부할 수 있었습니다.
나름 '정성적인' 합격팁을 남기자면, 42를 하며 느낀 것은 엔지니어가 체질인 사람이 실제로 있었습니다. 개발을 정말 사랑하고 지치지 않고 하루 종일 개발 이야기로 채워도 그것에 행복을 느끼는 사람들, 나이대는 다양하지만 그 시작이 빠르건 늦건 저 사람은 개발을 해야 하는 사람이다 하는 동료들이 있었습니다. 그 친구들은 모두 본과정에 합격했습니다.
저는 개발 공부를 무지성 독학으로라도 어느 정도 하고 들어간 것이기 때문에 이 친구들처럼 '개발이 너무 좋아서' 혹은 '개발자가 되겠다는 다짐' 없어도 합격했지만 적어도 하루 10시간씩 공부를 했고, 경쟁심이 붙어서 마치 최고의 개발자가 되겠다는 마음가짐으로 과정에 임했습니다. 실제로 이렇게 경험을 위해 들어왔다가 여기서 소질을 발견하고 개발자가 되는 경우도 상당히 많습니다. 그러니 여기서만큼은 목표나 꿈의 여부를 떠나서 "나는 개발자다" 생각하고, "떨어지면 굶어 죽는다" 생각하며 죽기 살기로 해야 할 것입니다.
열심히 하면 된다는 소리를 뭘 장황하게 하고 있나 하실까봐 정량적인 팁도 드리겠습니다. 모든 수치를 남들보다 높게 달성해야 할 것입니다. 선발기준이 매우 불분명해서 그렇습니다. 그래서 가능성을 최대한 높이는 전략만이 존재하는데 개인 프로젝트, 팀 프로젝트, 학습 시간, 시험 등 숫자로 결과가 나오는 모든 것에 전력을 다하고 1/3 정도 든다 싶으면 합격합니다.
42는 동료학습이라는 친목적인 단어 뒤편에 굉장한 압박과 경쟁이 숨어있습니다. 서로 도와야 더 잘 될 수 있는 시스템이지만 본질적으로 선발 과정은 냉정합니다. 잘하는 사람이 붙습니다.
모르는 것은 어떻게든 물어봐서 배우고 아는 것은 최대한 열심히 알려주세요. 모르는 것을 배우면 좋고 알려줘서 그 사람을 이해시키는 순간 그 지식이 더 온전히 내 것이 됩니다. 선의의 경쟁이 승리를 가져다줄 것입니다!
여기서 느낀 것은 개발 공부는 지금까지 우리가 학습한 방식처럼 암기나 문제풀이식 공부가 아니라는 것입니다. 내용은 무지막지하게 많고 그 속에서 뭘 공부해야 할지 모릅니다. 정해진 답이 없어서 내가 이해한 것이 맞다고 설득하는 것도 중요합니다. 혼자 공부하지 말고, 같이 하고, 대신 마지막 승부(시험)는 반드시 이기세요. 역전의 기회입니다.
42 후기글을 보면 일단 도전해보는 것이 좋다는 내용이 많았을 것입니다. 하지만 저는 굳이 목표의식 없이 들어오는 게 도움이 될까 싶습니다. 특히 지원금 준다고 해서 들어오는 경우입니다만 글쎄요. 대학교 병행이나 휴학생이 특히 이런 케이스가 많은데 그냥 학교 공부에 집중하고, 진로탐색에 집중하는 게 어떨까요. 이곳은 에너지와 시간을 굉장히 많이 소비하는 곳입니다. 그래서 제가 추천하는 42 지원자는 다음과 같습니다.
1. 개발자가 되고 싶은데, 여러 가지 이유로 컴퓨터 공학을 배워보지 않은 사람
2. 당장 취업이나 일이 중요하지 않고 시간적 여유가 충분한 사람
3. 내가 개발자 성향이 맞는지 확인해보고 싶은 사람
4. 여러 가지 이유로 개발을 어떻게 공부해야 좋은지, 나처럼 "학습방법"을 새롭게 배워보고 싶은 사람
5. 혹은 나처럼 소프트웨어 공부를 평생 학습(Lifetime Learning)으로서 동행할 사람
제 경우를 예로 들면, 라 피신 지원 당시 목표는 4번, 본과정에서의 목표는 5번에 속했습니다. 이외에도 적합한 대상은 많겠지만, 이러한 자신만의 목표나 목적이 없다면 여기서 크게 얻을 것은 없을 것 같습니다. 떠먹여 주는 곳이 아니기 때문에 학생 관성을 버리고 무엇을 얻고 싶은지 확실히 하고 가셨으면 좋겠습니다. 개발이 좋고 이 과정에서 얻고자 하는 것이 뚜렷하다면 선발과정이든 본과정이든 많은 기회와 배움, 그리고 재미를 얻을 것입니다.