부트캠프 많이 지켜봄. 천명이 넘는 학생들 중에, 재능 있다고 생각한 친구가 5명도 안됨.
재능의 여부가 성공을 결정하는 것이 아니다. 즐기는자 이기기 힘들다.
프로그래밍은 정말 정말 긴 세월의 공부, 그리고 끝이 없는 길. 이거 버티려면, 재능 보다도 성장 동력이 핵심.
본인은 부트캠프 수강생들에게 관심이 참 많다. 어떤 식으로 과정을 소화하고 있을지 궁금하다.
배경은 사람마다 다르지만, 백지상태로 부트캠프 왔다고 가정하겠다.
자바스크립트 진도 나가기 시작한 지금, 많은 생각이 교차하지 않을까?
-> 이게 내가 제대로 선택한게 맞나? 취업할 수 있을까? 나는 잘 안 맞나보네.
흔히 불안감에 휩싸이곤 한다. 이렇게 해도 되는걸까? 방황감. 당황감.
본인도 똑같은 감정을 초보자때 겪었다.
그런데 이렇게 심리적 불안은 부작용이 있다.
우리가 어떠한 방향성, 태도를 가지느냐가 공부의 성과에서 큰 차이를 발생시킴.
광고보니까 쉽다고만 하는데. 왜 어렵지. 내가 문제인걸까?
정답은 프로그래밍은 어려운게 맞다.
얘네 할때는 안 어려웠지. 뭐라도 만들 수 있었어.
근데 자바스크립트 하니까 이거는 달라.
html css -> JS 순서로 공부하는게 정말 정말 비추천. 얘네 내부 동작 알아? 모르지 당연히.
css 내부 동작 메커니즘을 이해하는건, 상상 이상으로 어려워. 그리고 얘네 내부동작 몰라도 됨.
얘네는 그나마 경우의 수가 좀 적어. 열심히 하면, 외워서 돌파 가능. 몇 패턴을 외우면 누구나 할 수 있어.
근데, 자스는 경우의 수가 매우 커. 외워서 해결되는게 아니야;; 요구사항이 매우 다양해.
초반엔 인터넷 치면 다 나오지 물론. 코테 답안도 풀다가 검색하면 다 나와.
근데 프로덕트 만들기 위해서는, 회사의 독특한 요구사항. 이거는 검색해도 안나와. 여기서 난항을 겪어.
프로그래밍 언어의 학습법은 몇가지 스킬을 배워서 하는게 아님. 폭넓은 기본기가 필요해.
프로그래밍 언어에서는 기본기가 있어.
HTML CSS 기본기가 있긴 하지. 박스모델 같은거. 레이아웃. 근데, 나머지는 다 외우면 그만.
근데 자스의 세상에서는 그렇게 단순하지 않아. 그러니까 HTML/CSS 그대로 공부방법 가져오는거 좋지 않아.
원래 쉬운게 아니야. 원래 어려워. 어려우니까 이거 배워서 취직하지. 쉽다고 생각한게 잘못된거야.
컴퓨터적인 사고가 필요하다고 많이들 얘기하지.
이거 자체가 어려워. 많은 생각이 필요해. 사고를 해야하는데, 결과만 맞추겠다고 복붙하면 아주 아주 치명적이야.
원하는 결과가 나오지 않더라도, 안 되는 코드 하나 붙잡고, 이틀 삼일 밤을 새워 볼 필요가 있어.
온갖 삽질 끝에 고민 고민하고 극복 -> 이런게 필요한데
우리는 시간이 없어. 6개월 안에 이 많은걸 다해. 물리적으로 사실 감당이 안됨.
그럼 왜 6개월일까. 그 이상이면 학생들이 안 옴;; 이것도 비즈니스니까.
어떻게든 때려 박아. 6개월 안에 완성되면 컴공과는 바보야? 왜 거기는 4년이나 배워. 그게 아니거든.
항상 우리는 시간이 없고, 조급해. 6개월이 끝나면 바로 취업해야 할 것 같은. 뭔가 해야만 할 것 같은.
근데 막상 취직 앞두고 본인의 실력은 본인이 알거든. 사실 누가 안 도와주면 아무것도 못 만들거든. 이게 오히려 자연스럽다.
프로그래밍은 어려워. 이걸 인정하는게 첫 걸음. 우리는 지금 흰띠를 멘거임. 근데 행동은 검은띠 흉내를 내냐. 왜 실무에서 쓰는거에 목을 메냐.
하물며 초딩이 배우는 태권도도 단계가 있다. 당연히 우리가 배우는 프로그래밍도 단계가 있다.
단계를 무시하면 가랑이가 찢어져요. 단계별로 하나씩 하나씩 격파하는게 중요. -> 근데 6개월이라는 시간이 압박, 초조하게 만들어
본인은 부트캠프 중도포기생 대다수를 관찰함. 공통점이 프로그래밍을 너무 쉽게 생각했어. 대충 해보니 쉽네. 단순한 생각으로 접근.
막상 해보니 앗뜨거. 이게 막상 해보니 잘 안되네;; ㄷㄷ 현실에 괴리가 생겨. 그러니 쉽게 포기.
뭐든 처음에 배울 때는 자신감. '별거 아니네 ㅋㅋ 내가 재능이 있나?'
근데 좀만 더 배우면 '어? 이게 뭐지. 무슨 얘기 하는거지?'
-> 자신감 수직 낙하
점점 악순환. 뭔가 이해해야, 다음 단계를 가는데. 이해가 끝나지 않은 상태에서 다른걸 더 배워,
점점 더 눈덩이마냥 굴러가.
근데 중요한거. 나만 그런게 아니야 다들 그래.
자신감이 떨어질 필요가 없어. 그냥 어려운거야. 그러니 원래 쉽게 배우지 못해. 절망하지 마.
누구든지 저 자신감의 구렁이에 빠져. 근데 포기하지만 않고 잘 버티면, 실력도 쌓고 자신감도 상승해.
취업을 하려면, 누구든지 한 번 저 구덩이를 들어갔다 나와야 한다.
각오가 있어야해. 각오가 없으면 중도포기는 백프로.
포기만 안 하면, 상위 50프로야. 왜? 나머지 절반이 포기했거든.
포기만 하지 말아라. 우리 반에서 제일 못해도, 상위 50프로야. 포기만 하지 마.
어려우니까 시간이 필요한게 맞아. 쉽게 배우려는 노력을 하지 말고, 시간을 때려 박아야 한다.
하루에 잉여 시간으로 공부해서 취업하겠다? -> 되겠냐?
하루에 10시간은 최소한으로 쏟아라. 6개월 내내 계속 투입하면. 여러분들이 생각하는 그 회사는 아니어도. 비스무리 회사는 갈 수 있어.
반대로 이 이야기를 희망적으로도 할 수 있어.
내가 이렇게 어렵고, 시간을 많이 쏟아야 한다면, 이건 다른 사람도 마찬가지야. 쉽게 프로그래머 되기 어려워. 원래 어려운게 맞아.
그러니까, 타업종보다 연봉을 더 주는거임. 수요와 공급이야 이게. 프로그래머는 어느 정도 진입장벽이 있는게 맞아.
요즘 취업난? 언제는 취업이 잘된적이 있냐. 취업은 항상 안됨. 근데 이쪽 업종이 그나마 괜찮아.
왜냐? 개나소나 개발자? 어림 없다. 많은 학생들이 관둔다. 좀만 깊게 들어가니 앗뜨거하면서.
내가 할 수 있는건 시간을 때려 박는다. 취업은 반드시 되고. 걱정 ㄴㄴ
효율 중요하지. 같은 시간을 들여 더 많은 가치를 생산하는게 효율이야.
그러면 프로그래밍을 남들보다 더 수월하게 익힐 수 있는 효율적인 공부법이 있느냐?
그런거 없어요 ㅋㅋ 공부에는 왕도가 없다. 그냥 고통 받고 시간을 때려박아야 해.
어디 광고에서 하루에 한시간만 투자하면 개발자 된다? 지랄노 ㅋㅋ 이런 사람들 다 장사꾼
재능보다 투입시간이 성장에 더 중요해. 아무리 좋은 책 강의를 쌓아놔도, 내가 시간을 때려박아야지 내꺼가 되거든.
코드잇 강의 훌륭해. 멘토들도 열심히 해줘. 시스템도 좋아. 그럼 얘네가 너네 취업시켜주냐?
ㄴㄴ 걔네는 도우미일뿐. 결론은 너가 잘해야 해. 내가 안하면 좋은 강의가 뭔 필요.
효율적인 학습방법 찾기 전에, 한 글자라도 더 봐야 한다.
쟤는 왜 나보다 잘하지? 이런 의문 가질 수 있어.
걔는 너보다 시간을 더 씀.
우리가 천재프로그래머가 되는게 목표가 아니잖아. 고졸 정도 지능이면, 누구나 프로그래머 할 수 있어.
10시간 공부 못할거면 때려치워야지 ㅋㅋ
물론 열심히 앉아만 있으면 되는 장땡이 아냐.
방향이 틀리면 속도는 의미가 없어.
공부에 효율은 없지만, 방향성은 있다. 이게 5도만 틀어져도, 시간이 지날 수록 에임이 무지 달라져.
본인이 생각하는 방향성. 프로가 되기 위해 훈련해야 한다.
근데 프로그래머 지망생들은 왜 실전부터, 구현부터 하려고 하냐 이 말이야? 왜 조기축구회처럼 해 ㅋㅋ
프로가 되려면 기본기를 프로의 자세로 훈련해야지. 기초를 몇개월동안 다져야지.
본인 커뮤니티 잠복중. 프로그래머 지망생 오픈카톡에도 잠입. 거기선, 십중팔구로 자스 어떻게 공부하면 좋을까요? 질문하고 -> 여기에 대한 대답: 뭐라도 만들어 보세요
굉장히 그럴듯한 대답... 근데 뭘 어케 만듬. 아는게 없는데... -> 이거 굉장히 무책임한 대답.
뭐 만들지? -> 찾다가 클론코딩 ㅋㅋ. 트위터 클론코딩 강의. 강의 사서 해. 왜 그렇게 하는지 모르고 그냥 된다니까 따라쳐.
이게 실력이 늘까? 아니란 말이야...
어떤식으로 공부해야 할 까? 프로다운 학습. 기본기 위주의 훈련.
기본기부터 공부해야지. 기본기는 지루하고 힘들어. 맞아. 어디든 그래.
기본기를 등한시하고 바로 실전만 하고 싶다? 이러면 잔기술만 쌓여... 어느정도 성장은 하겠지만, 단기간에 멈출 것이야. 경력이 늘수록, 실력이 늘어야 하는데
실력이 안 느는 침체기가 반드시 와
우리는 정년을 70까지는 가져. 30에 취업하면, 40년 근무해야 해...
우리가 20년차가 되었을 때, 딱 경력상 중간. 엄청난 경력...!
그런데 5년차 후배한테 실력으로 밀리는 상황이 발생한다... -> 회사를 못다녀
개발쪽의 장점이기도 한 단점은, 실력이 그대로 드러나. 너무 투명해.
열명있는 회사에 입사하면, 3개월 근무하면 누가 짱인지 다 나와. 다른 사람 눈에도 보임.
서열이 매겨진다고. 그래서 상위권에 들면, 회사에서 여러분을 잡아. 연봉도 알아서 올려줘.
근데 하위권이야. 연봉을 안 올려줘. 20년차. 연봉이 이미 높겠지. 그 연봉 받을 수 있는 자리는 많이 없어.
그러면 이직할 데가 없어. 어떻게든 회사를 붙잡아야 하는데,
경력만 있고 실력이 후달리면 얼마나 가시방석이고 눈치야.
잘해야지 유능해지고. 성장 동력이 끊어지면 안돼. 밑천이 드러나면 안됨.
본인도 이 나이 먹고 계속 프로젝트 한다.
그렇지 않으면 트렌드에서 밀려... 그래서 하기 싫은 마음 부여잡고 계속 해.
성장 동력이 끊어지지 않으려면, 기본기를 장착할 필요가 있다.
항상 내 발목을 잡는 무언가 => 기본기
틀린거 또 틀려, 안되는거 또 안되, 이런게 반복되는게 기본기라는 것.
FE는 기술 중에서 어떤게 가장 중요? 리액트? -> 리액트 천년만년 갈까?
자바 스크립트는 리액트보다는 오래살아. 이런게 핵심 기본기야.
그래 바로 리액트 하고 타입스크립트 하고 싶겠지. 근데 기본을 잊어선 안된다.
학생들 입장에서는 고통이 없는 강의를 선호. 한번들으니까 알 것 같아. 그리고 짧아. 10분 15분.
10분 정도는 버티면서 볼 수 있어. 그 이상은 고통이 생긴다. 그러니까 고통을 주지 않는 강의가 인기야.
이런 강의는 생각할 필요가 없어 -> 아 저 분 강의 잘하신다. 귀에 쏙쏙
그런 강의 특징이, 어려운 내용은 절대 다루지 않아. 쉽고 재밌는, 학생이 절망은 커녕 자신감만 느껴.
근데 우리가 성장을 위해선 고통을 받아야 해.
절망의 골짜기를 넘어야만 취업할 수 있는 자격이 있는거야.
내가 뭘 알고 있는지. 뭘 모르고 있는지 알아야 한다.
지혜의 시작은 너 자신을 아는 것부터이다 - 소크라테스 like 공부의 시작은 어려움을 인정하는 것
내 자신을 아는 것이 어렵구나. 객관적으로 아는 것이 참으로 어렵구나.
나의 부족을 알았다면, 나는 왜 100미터 수영을 완주 못하지 --> 왜 내가 완주를 못할까
뭐가 부족한지 생각해야 함. 내가 체력이 부족한지, 영법의 문제냐. 내가 필요한 적절한 훈련에 고민해야지.
내가 뭘 할 수 있/없는지 알아야 -> 이유를 알고 -> 원인을 해결해서
그래서 안타깝게도 이런 질문을 좋아하지 않아. 어려워요 -> 뭐가 어려운데 구체적으로.
반문하지 않으면, 그냥 어려워요에서 멈춰.
기술을 공부하는데, 어디서 뭘 못하는지 알아야 메꾸지. 할 수 없는 상태에서 할 수 있는 상태로 변이.
나는 무엇을 못하는가에 대한 메타인지를 할 필요가 있다.
프로젝트 -> 왜 합니까? 프로도 아닌 학생인데.
학생때 프로젝트하는거 -> 새로운 기술을 습득하기 위함.
내가 잘 안되는 부분을 메타 인지 하기 위해서. 안되는 부분이 나오면, 오히려 즐거워 해야지
근데 프로젝트 할 때, 여러분의 자세는 프로야.
막히는 구간에 봉착하면, 어떻게서든지 동작하게 하려 해.
작동하기만 하면 되는게 성공? 프로젝트의 이유는 부족한 점을 발견하고 메꾸기 위함인데.
진짜 지식은 -> 내가 말로 이야기할 수 있느냐 (안다는 느낌의 지식은 가짜야)
공부를 하면 지식이 생겨. 그 지식이 내 것이냐 아니냐를 확인해야지. 그걸로 말로 설명할 수 있느냐 없느냐로 테스트하는거야.
클로져를 열심히 공부해. 클로져에 대해 내 언어로 설명할 수 있어야 해. 이게 아는거고, 이게 면접에서 우리에게 물어보는 것.
우리 코테 공부는 굉장히 시간 많이 투자해. 근데 면접 연습은 왜 안하는거야. 코테보다 면접이 더 중요해
면접 연습을 어떻게 해. 자료가 없는 조건에서 말하기해야지. 근데 달달 외워서 하는게 아냐
우리 머릿 속에서 정리된 것을 끄집어 내는 인출이 있어야 해.
이게 중요해. 이게 안다는 것이다.
그래서 팀이든 스터디든. 어떤 사람이 질문하면, 그 질문에 대해 말로 대답해. like 기술면접.
스터디할 때, 같은 부분을 같이 공부하고, 그 부분에 대해 이야기를 나눠. 그냥 줄줄이 읽지 않고.
자료 없이 끄집어내는 인출 훈련을 했을 때, 장기적으로 의미 있어.
의식적이지 않은 단순 반복은 아무것도 안 늘어.
한거 또하고 한거 또하고. 할 수 있으면 그만 놓아주고, 내가 못하는걸 해야지.
컴포트 존 : 심리적으로 안정을 느끼는 상황. (쉬운 단계의 태스크)
컴포트 존을 벗어나야지. 도전을 해야지!
매일 했던거 또하고 또하고. 그런거보다, 조금씩 난이도를 높여가야 한다.
어떻게? 보다는 왜? 작동하면 왜 되는지, 안되면 왜 안되는지. 왜 이렇게 해야 하는지. 이것이 최선인지 끊임 없이 질문해야지.
how 사고는 프로가 하는거야. 결과물만 주면 되잖아.
학생은 why! 학생이니까 과정에 중심을 두어야 한다.
이렇게 하는게 더 좋은가, 저게 더 좋은가 고민해야해.
그리고 강사에게 질문이 너무 없어. 구현에 급급하지 말고. 여러가지 시도해보고 여러가지 장애물에 부딪히라고.
이해 못하는 코드는 copy/paste 하면 안돼!
이해하지 못한 복붙 코딩은 운에 기반한 거야
코드의 작동한다면 이게 끝이 아니고, 오히려 시작이야.
코드를 어떤 식으로 개선할 수 있을까? 여러분 코드 보면 흡족해요?
흡족한 마음이 들지 않아. -> 최선의 코드를 고민해봐야 한다.
멘토님에게 고민의 과정을 보여줘. 그리고 견해를 물어봐. 이런 질문을 해줘야 해.
멘토님 제가 이러이러한 문제를 맞닦뜨려서 A 해결법과 B 해결법 사이에 고민하다가 B로 갔습니다. 강사님이라면 어떻게 하시겠습니까?
조급한 마음을 버리고, 학습의 기본을 놓치지 말아라
커뮤니케이션 능력! 용어와 개념. 이게 탑이야...
저 사람이 말하는걸 내가 알아듣는 것. + 내가 이해한 것을 저 사람이 알아듣게 말해
개발자 일의 50프로가 코딩, 나머지가 커뮤니케이션
협업을 잘한다... 생산성의 개선.
반대로 생산성 저해의 원인은 미스커뮤니케이션. 나는 A 만들어 달라 했느데 쟤는 B 를 만들고 앉아.
일주일 뒤에 싸워, 책임전가. 이건 팀도 깨져. 회사에서는 최악. 말을 제대로 못 알아먹은게 원인. 커뮤니케이션.
왜 이렇게 될까? -> 소통에서는 개발자 용어를 쓰잖아. 근데 얘네는 용어를 몰라. 용어 안쓰고 당연히 대화 못하지.
용어의 이해 -> 개념을 이해해야지. 용어는 단순히 단어를 아는게 아니야. 그 말이 의미하는 정확한 뜻을 이해하는 것. 굉장히 중요해.
못 알아들었는데, 쪽팔려서 질문을 안해 ㅋㅋ 체면이 깎이니까. 저게 무슨 말이지.... 이해된것 같아요 ㅋㅋ -> 모른다는 뜻이죠
문제해결능력. 문제를 해결해야지. 요구사항을 반영하지.
이런걸 스스로 생각해내서, 할 수 있어야지. 누가 또 가르쳐주어야 하냐? 프론데? 돈받고 일하는 시점에서, 이런거 가르쳐줄 사람 없음.
문제해결능력은 신입사원은 갖기어려워. 경험의 영역.
구현능력: 코딩하는 능력, 프로그래밍 하는 능력. 1, 2 되는데 구현을 못하면, 어차피 꽝이야. 셋다 잘해야지 ㅋㅋ
한 번 할 때, 제대로 가는거야. 빨리 갈려고 얼기설기 대충하려면 어차피 다시 해야해. 효율, 그런거 없고 제대로 해라. 건너뛰기 하지 말고.
그럼 어떤 강의 이해가 안되면, 이해가 될때까지 늘어져라?
ㄴㄴ 일단 스킵하고 다시 돌아와야죠. 기본기를 무시하고 가지 말아라.
6개월동안 열심히 해준다면, 취업? 반드시 되요 ㅋㅋ 걱정 ㄴㄴ
조급한 마음 버리고, 오늘부터라도 프로그래밍은 쉽지 않음을 인정. 이 꽉 깨물고. 최대한 많은 시간을 투자. 방향성은 중요해.
!! 동료들과 많은 기술적 이야기를 해라. 적절한 용어 잘 쓰기만 해도 인기짱.
각오를 다져라.
눈물이 나오네요