“전 취미로 개발하는데요.”
이런 분은 제외합니다.
프로(직업)개발자가 되려는 사람들 대상입니다.
프로(직업) 개발자가 된다는 것

직업개발자가 된다는 건,
월급을 받고 기술노동력을 제공한다는 뜻입니다.
노동력의 가치는 회사가 인정합니다.
나를 사주는 사람이죠.
채용이 된다는 건,
내 노동력이 구매할 만하다는 뜻입니다.
즉, 취업하려면 제일 먼저 해야 할 일은
내 노동력의 가치를 높이는 것입니다.
“열심히 배우겠습니다.” (X)
“무엇이든 열심히 하겠습니다.” (X)
시간당 노임을 받는 알바라면 그래도 됩니다.
개발자라면 절대로 해선 안될 말입니다.
내 노동력을 “부가가치”(생산효과)가 아니라,
“노동시간”으로 인정받겠다는 뜻입니다.
개발자가 기술가치로 인정받지 못한다는 건 능력이 없다는 뜻입니다.
직업개발자는 기술을 파는 사람입니다.
회사는 뭔가를 배우는 곳이 아닙니다.
내가 배운 걸 배풀어줘야 하는 곳입니다.
뛰어난 개발자가 된다는 것
단순 취업이 목적이라면, 단기 속성 코스가 더 낫습니다.
그런 사람을 원하는 곳은 우리 사회에 많습니다.
단점은 기술만 배운다는 겁니다.
기술을 사용할 수는 있지만 응용할 순 없습니다.
취직할 순 있지만 발전하긴 어렵습니다.
재미없죠 …
대학을 졸업하고 취업하는 시점에
세계 정상급 아키텍트를 뛰어넘는 사람은 없습니다.
하지만, 나중에 그렇게 되는 사람은 많죠.
뛰어난 개발자란 “부가가치”가 높다는 뜻입니다.
부가가치란 재료에 더해지는 유무형의 사용가치를 말합니다.
한번에 높아지지 않고, 훈련을 해야 높아집니다.
단기속성코스로는 그렇게 되지 않습니다.
단순기술만 배울 뿐 성장하는 법을 배우진 않거든요.
계속 성장한다는 건 계속 배운다는 뜻입니다.
책은 가르치지 않습니다.
회사도 가르치진 않습니다.
가르치는 사람이 없어도 배워야 합니다.
취업이 급하다면 단기속성코스로 충분합니다.
하지만 직업개발자로 오래 가고 싶다면
성장하는 법을 몸에 익혀야 합니다.
기업이 학교를 찾지 않는 이유

기업은 학교에 가지 않습니다.
일할 사람이 필요하기 때문입니다.
학교는 배우는 곳입니다.
일할 사람을 찾기 어렵습니다.
김과장은 다음달까지 이 일을 끝내야 합니다.
누구를 가르칠 여력이 없습니다.
그런데 들어와서 배우겠다고 합니다.
당연히 싫어 합니다.
대기업은 비교적 여건이 됩니다.
하지만 첫고과가 나오기 이전까지입니다.
1년이 지나도 여전히 가르쳐야 한다면,
2년이 지나도 여전히 가르쳐야 한다면,
그 사람은 여전히 짐일 뿐입니다.
에꼴42를 하면 좋은가?
에꼴42가 나을까, OOO 과정이 나을까?
솔직히 기업관점에선 관심이 없습니다.
실력있는 친구라면 언제나 오케이입니다.
옛날에는 관리직이 많았습니다.
관리직은 증명할 것이 없습니다.
그래서 스펙을 봅니다.
기술직은 명확합니다.
스펙 자체는 도움되지 않습니다.
첫째, 기술을 쓸 줄 알아야 합니다.
둘째, 기술을 써서 일할 수 있어야 합니다.
기술을 써서 일해 본 경험이 있으면 더욱 좋습니다.
잘 해본 경험이 있으면 더더욱 좋습니다.
에꼴42는 “시험을 쳐서 통과하는 과정”이 아닙니다.
통과해 봐야 학위도 없고, 졸업도 없습니다.
아무도 칭찬해주지 않습니다.
에꼴42는 “기술실력”을 기르도록 구성된 과정입니다.
그 “방법”을 익힐 수 있도록 구성된 과정입니다.
친구에게 묻고, 인터넷을 뒤지고, 멘토를 찾아가고, 다른 사람을 가르쳐 보기도 합니다.
이 과정의 반복을 통해 “성장하는 개발자”가 됩니다.
커리큘럼

에꼴42의 커리큘럼은 2020년 상반기 대폭 바뀌었습니다.
새로운 교육 목표를 위해 대폭 어려워졌습니다.
6개의 동심원 Inner Circle 에 공통과제를 배치하고,
동심원 바깥 Outer Circle에 분야별 과제를 배치했습니다.
Inner Circle의 기본언어는 C 언어입니다.
하지만, C 언어를 배우는 과정이 아닙니다.
정확히 말하면, “OS 분해 과정” 입니다.
자동차 덕후는 자동차를 분해 해보고,
컴퓨터 덕후는 컴퓨터를 분해 해봅니다.
분해를 해보고나서야 원리를 이해하게 됩니다.
소프트웨어 개발자는 OS를 분해해 봅니다.
네트워크와 서버, 메모리, OS 등을 익힙니다.
물고 뜯고 마셔봅니다.
가장 중요하게 양성되는 스킬은 Rigor 입니다.
개발자로서의 꼼꼼함, 엄격함을 말합니다.
즉, Inner Circle은 “개발자”를 만드는 과정이자,
“소프트웨어 덕후”가 되는 과정입니다.
Outer Circle 로 가면 클라우드, 보안 등 보다 전문적인 걸 뜯어봅니다.
더 깊게 뜯어봅니다.
다른 언어를 쓰기도 합니다.
C++ 을 써도 좋고, python 을 쓰기도 합니다.
언어는 중요하지 않습니다.
문제를 해결하는게 중요합니다.
기술을 익히지만 기술만 익히는 게 아닙니다.
엔지니어링도 익히고, 이론도 공부하게 됩니다.
하지만, 세상에 없는 대단한 지식은 아닙니다.
그냥 문제푸는 걸로는 얻어지는게 없습니다.
에꼴은 기술지식을 습득하는 곳이 아니라,
개발자가 되는 곳이기 때문입니다.
학습방식

에꼴42 교육은 Active Pedagogy를 기반으로 한 “구성주의 학습방식”을 정체성으로 합니다.
Active Pedagogy란 “Learning by doing/teaching”의 교육철학입니다.
구성주의 학습이론이란, “지식”은 “경험”으로부터 구성된다는 이론입니다.
소프트웨어는 자연법칙처럼 불변의 것이 아니고,
연구소에서 발명되는 게 아니기 때문에
구성주의 학습방식에 딱 맞아떨어집니다.
특히 성인 교육에선 더 잘 맞아떨어집니다.
IT가 뜨면서 이 교육방식은 매우 인기를 끌게 됩니다.
학생을 “지식의 수용자”가 아니라, “적극적 학습의 주체”로 봅니다.
그래서 “교육” Teaching이라고 부르지 않고, “학습” Learning이라고 부릅니다.
지식습득 수단을 “암기”가 아니라, “협력”과 “발견”으로 봅니다.
평가는 “객관적, 고정적” 방식이 아니라, 수행평가처럼 “다양한 형태”로 합니다.
교육내용을 “구조화, 체계화, 순서화” 시키지 않고,
현실처럼 뒤죽박죽 섞어 “현실성 복잡성”을 유지합니다.
학생들은 해결책을 자기 힘으로 찾아야 합니다.
이런 방식은 개발자가 일하는 방식과 정확히 일치하며,
지속적으로 성장하는 방식과도 유사합니다.
리더형 개발자일수록 이런 특성은 매우 더 강합니다.
즉, 에꼴42의 혁신성은 기술지식을 전달하는게 아니라,
소프트웨어 개발자를 길러내는 훈련과정이라는데 있습니다.
그래서 “에꼴42″는 “프랑스의 창업 사관학교”로 불리우고 있으며,
학생들 명칭도 “카뎃”(사관생도)라고 합니다.
실력의 증명

“그래서 나는 취업할 수 있는가?”
“그래서 나는 수준급 개발실력을 획득했는가?”
불안합니다.
내 실력이 얼마나 되는지 인정받고 싶습니다.
아쉽게도 “에꼴42” 내에는 객관화된 측정도구가 없습니다.
시험을 아무리 잘 친다고 해도 기업들이 알아주지 않습니다.
“에꼴42” 과제는 철저하게 학습도구로만 설계되었습니다.
“상호평가”도 마찬가집니다.
그래서 꼼수를 쓸 수도 있습니다.
물론 실력은 성장되지 않습니다.
실력이 없다면 사회에 첫발을 내딛는 순간 알게 됩니다.
누가 말해주지 않아도 온몸으로 알게 됩니다.
소프트웨어 개발자는 “기술”로 말하는 사람이기 때문입니다.
100% 후회하게 됩니다.
그런데 취업하기 전에 내 실력을 알고 싶습니다.
몇 가지 방법을 알려드립니다.
(1) 현업개발자에게 만들걸 보여줍니다.
가장 쉬운 방법입니다.
현업 개발자에게 코드를 보여주고 평가를 받습니다.
물론 아무 개발자나 내 코드를 봐주진 않습니다.
재단에는 풀타임 “멘토”가 있습니다.
현장에 CTO로 계셨던 분들이고, 때가 되면 현장으로 돌아가실 분들입니다.
내가 개발한 걸 보여주며 설명하고,
약점을 보완하며 개발하는 것을 반복합니다.
그렇게 성장하다 보면 어느 순간 인정을 해줍니다.
비로소 내 실력이 현장에서 통하게 되었다는 뜻입니다.
멘토는 “친하다”고 해서 인정해주지 않습니다.
“기특하다”고 해서 인정해주지 않습니다.
회사에 들어가는 순간 실력이 없다면,
“멘토의 신뢰도”에도 타격받게 됩니다.
개발자들은 확인하지 않으면 인정하지 않습니다.
중요한 건 멘토링을 받는 게 아니라,
성장하기 위해 계속 Try and Error를 반복하는 겁니다.
성장을 위해 노력하지 않는다면,
멘토를 만난다 해도 얻는 건 없습니다.
(2) 해커톤에 나가보는 겁니다.
몇가지 제한요소들과 함께 문제를 풉니다.
다양한 현업개발자분들이 심사위원으로 나옵니다.
그 분들에게서 인정받는 건 내 실력이 현장에서 통한다는 뜻입니다.
해커톤은 스펙을 쌓기 위해 나가는 곳이 아닙니다.
내 실력을 확인하기 위해 나가는 것입니다.
부족한 것을 인식하고 조언받기 위해 나가는 곳입니다.
해커톤을 끝내고 해야 할 일은,
나의 부족함을 깨닫고 모자란 것을 채우는 일입니다.
1등을 할 수도 있습니다.
하지만, 어떤 기업도 그것만으로는 채용하지 않습니다.
1등을 해도 실력은 확인해야 합니다.
그래야 내일부터 같이 일할 수 있기 때문입니다.
그래서 스펙으로서의 가치는 그다지 높지 않습니다.
(3) 친구들과 “앱” 하나를 출시해 봅니다.
정확히 표현하자면,
고객에게 제품을 안겨주고 피드백을 받아봅니다.
팔릴만한지 아닌지 바로 알게 됩니다.
소비자는 나의 스펙과 배경을 보지 않습니다.
오로지 제품이 쓸만한지를 봅니다.
제품이 쓸만하면 내 실력은 그걸로 증명됩니다.
앱이 아니어도 좋습니다.
웹이나 서버 프로그램이어도 좋습니다.
중요한 건 “소비자”로부터 쓸만하다는 걸 인정받는 겁니다.
제품을 내어놓을 때 압니다.
내 실력이 부족하다는 것을.
난이도는 가장 어렵습니다.
내 실력을 확인코자 노력하는 과정은,
내 실력을 향상시키고자 노력하는 것과 같습니다.
토이프로젝트
“토이프로젝트”는 실력을 증명하는 수단이 아닙니다.
실력을 연습하는 수단입니다.
그림 연습을 하는 낙서장과도 같습니다.
특정한 기술을 익히기 위해 지웠다 썼다를 반복합니다.
코드가 지저분 할 수 있습니다.
약점이 많을 수도 있습니다.
보여주기 부담스러울 수 밖에 없습니다.
이런 경우라면 실력증명의 수단으로 쓰지 않는게 좋습니다.
개발자의 실력은 결과물로 승부하지,
말로 승부하는게 아닙니다.
재현능력 = 응용능력
기초가 없어도 웹 페이지를 만들 수 있습니다.
하지만 그것 뿐입니다.
이해하지 못하고 따라하기로 만들면 재현해낼 수 없습니다.
재현할 수 없다면 그 일을 원하는 사람에게 팔릴 수 없다는 뜻입니다.
응용할 수 없다면 그런 류의 일도 할 수 없다는 뜻입니다.
그 일을 할 수 없다면 “개발자”는 아닙니다.
뭔가를 만든다는 건 말로 할 수 없고,
오직 기술과 실력으로 할 수 밖에 없습니다.
기술과 실력은 외워서 느는게 아니라,
생각하고 훈련하는 것을 반복해야 합니다.
그 과정이 “에꼴42″입니다.
끝.