그 동안에 대한 간략한 개요
정말 어마어마한 나날들이었다, 정신이 하나도 없었다
어떻게 지나갔는지는 내가 두들겼던 코드와 커밋했던 git log 를 봐야
'아 내가 이런 일을 했구나' 하고 겨우 알 수 있을 정도다
저 기간동안 내게 있던 일은 underbar, recursion 과제와
지금 하고 있는 코스(프리코스) 를 마치고, 그 다음 레벨의 코스(이머시브 코스)에 넘어가도 되는지를
진단(assesment) 하는 pass me 테스트를 해결해내는 과정들이었고
상술한 두 과제도 어려웠으나
프리코스에서 이머시브 코스로 넘어가도 되는지에 대한 평가인 pass me 가 상당히 힘들었다
pass me 는 내가 공부해온 지식을 전부 쏟아서 보는 진단평가
(다시 말 하지만, grading 을 하는 evaluation 이 아니다, 진단을 위한 assesment 이다)
24시간의 제출기한 중, 밤을 샌 끝에 20시간 정도를 쏟아서 겨우 통과했다
그 와중에 척척 풀어서 7시간 안에 올린 사람들을 보면서 자연스레 내 스스로의 부족함도 알게 되었다
대단한 사람들이 참 많았고, 대단한 사람들이 있는 곳에서 공부할 수 있다는 것에 대해서 감사하기도 하였다
방금까지도 밤을 새서 underbar, recursion,
그리고 coplit 에 있는 알고리즘 문제들을 전부 해결하고 왔다
테스트 결과와는 별개로, 여태까지 주어진 과제들을 전부 해결해야만 이머시브 코스를 수강할 수 있는데
오늘은 너무 힘들고 피곤해서, 좀만 이따가 한다는 마음을 먹어서
그렇게 밀린 것들을 뒤늦게나마 하고 왔다
오늘 안으로 이머시브 코스를 수강할 수 있는지의 여부가 발표가 날텐데,
나는 내가 할 수 있는 것을 다 했기에, 그냥 내가 할 수 있는 것들에 충실하고자 한다, TIL 작성이 그것이고
그래서 작성하려고 한다
오늘 적을 것은 세 개
1. underbar
2. recursion
3. pass me
Underbar
사실 이미(1편) 적은 적이 있는(2편) 포스팅이다
그러나 사실 저 2편 안에 해결을 못 한 부분이 있어서
늦게나마 마저 해결했던 과제 중 하나
새로운 개념은 아무래도 없었다
재귀를 연습하기 위한 문제들 중 약간 어려운 문제들을 푸는 느낌이었는데
해당 단원에서 정말 내가 중요함을 뼈저리게 느꼈던 부분은
스코프 / 함수의 인자 전달 / 배열 메소드(map, fliter, reduce) 의 능숙한 사용
그리고 익명함수 - 즉시실행함수의 사용 (더 나아가자면 Arrow Function 의 사용)
이었다
Recursion
underbar 에서 배운 재귀의 본격적인 활용이다
수능 수학으로 칠 때 underbar 가 쉬운 4점 기출이라면
recursion 은 어려운 4점 기출같은 느낌
이 곳에서는 앞서 배운 것들에 더해서
내가 구현해야 할 기능들이 있다면 그것을 함수로 구현하는데
어떤 기준을 가지고 함수로 쪼개야 하는지, 어디까지 쪼개야 하는지
그리고 그렇게 쪼갠 함수를 underbar 에서 배운 것처럼
서로서로 티키타카가 가능하게끔 코드를 짤 수 있는지
문제 해결을 위해서 이것들이 정말 중요했다
특히 코드가 복잡해 질수록 중요한 건 psuedo code, 즉 의사코드의 작성법이다
과장 조금 보태서 솔직하게 말하자면 의사코드가 반, 아니 반 이상 먹고가는 거 같다
내가 어떻게 할 지 대략적으로 방향을 잡고, 각 케이스를 개발자 도구같은 곳에 바로바로 체크해보고
그렇게 첨예한 의사코드를 완성하면 실제 코드까지도 금방이다
특히 이번에 만났던 페어 분께서 상당한 실력자여서
의사 코드를 작성하는 방법을 아주 제대로 배울 수 있었다
가장 기억에 남았던 점은, 한 문장에 하나의 기능을 담는 것
그렇게 해서 의사 코드의 명시성을 올리는 것
예를 들자면 '빈 배열을 선언한다' 라는 우리가 흔히 쓰는 문장을
'변수를 선언한다', '그 변수에 빈 배열을 할당한다' 라는 식으로 나누는 것이다
저 정도에서야 '굳이 저렇게 쪼갤 필요가 있나?' 싶었지만
조건문이 들어가고, 반복문이 들어가고, 다양한 메소드가 들어가는
그런 다양한 기능들이 본격적으로 튀어나오는 순간부터는
저렇게 한 문장에 하나의 기능을 담는 식으로 명시성을 높였냐, 그렇지 않느냐의 차이가 아주 극명하게 보인다
의사 코드를 작성하는 방법 뿐만 아니라, git 에 접근 가능하도록 사용자를 추가하고
push - pull 을 통해 핑퐁을 치듯 서로 공동작업을 하는 것부터
node.js 를 설치해서 크롬 개발자 도구까지 갈 필요 없이 vscode 안에서 편하게 디버깅을 하는 방법 등등
정말 배운게 많았지만 (너무 감사드린다)
아무래도 가장 인상깊게 남았던 가르침은 저 명시성을 올려주는 유사코드 작성시의 핵심요약 같은 이야기가 아닐까... 한다
Pass Me
말 그대로 여태껏 배운 것들의 총 집합
단순히 '이 메소드는 뭐야', '이 개념은 어떤 개념이야' 라고 알기만 해선
절대 무난하게 풀어낼 수 없다
"이 개념은 실제로 어떻게 활용할까" 에 대해서 스스로 찾아보고
그리고 "나는 이런 상황이 오면, 이 기능을 통해서 풀어낼 수 있겠다" 라는 자신이 들 때까지
콘솔에 띄워서 연습해보는 과정을 거쳐야만 무난하게 풀어낼 수 있는 문제들이었다
특히 크게 느꼈던 건 '내가 안다' 라는 사실과, '내가 이걸 능숙하게 사용할 줄 안다' 라는 사실은
아주 명확히 다르다는 점이다
문제 해결을 위해서 지식을 활용하고 결과물을 만들어 내야하는 개발자라는 직업의 특성상
'내가 안다' 수준에서 절대 공부를 끝내지 말고, '내가 이걸 능숙하게 사용할 줄 안다' 까지 가야
비로소 '그 부분을 공부했다' 라고 말할 수 있다 라는 생각을 하였다
사실 개발자 말고도 세상에 다른 어떤 일들이 안 그렇겠냐만...
문제를 풀면서 내가 부족하다고 느낀 점들, 그리고 더 알아야 할 것 같단 생각이 든 점들을 정리하였다
내가 이머시브 코스로 계속 공부가 가능하다면
코스를 들어가기 전 내게 지금 남은 시간은 얼마 남지 않은 오늘, 그리고 주말 이틀인데
주말동안은 조금 건강관리를 하면서 저기 적은 내용들을 집중 공략한 총 정리 포스팅을 작성해 볼 생각이다
하고싶은게 소박하지만 몇 가지 있다
먼저 이틀 연속 밤샘 작업을 했더니 몸이 조금씩 이상해져서 일단 잠을 푹 자고 싶다
읽고 싶은 책도 많이 밀려서 책들도 읽고 싶고
주말에 있는 투자 모임도 이번 주엔 참석 신청했고
뭔가 훈련소 외박 나오면, 군대 휴가 나오면 뭐 할지 꾹꾹 눌러담는 느낌
부트캠프라는 이름에 참 걸맞는 한 달이었다
개괄적인 포스팅, 끝!
여담
혹시 코드스테이츠에 지원하시려고 후기글들을 찾아보시는 분들이 있다면,
아니면 다음 기수 프리코스를 하시는 분들이 캘린더를 보고
'대체 이 pass me 는 뭐지, 어떻게 대비해야 하는거야!' 하고 막막하신 분들이 있다면
너무 걱정하진 마세요
약간 부족한 편인 제게 꽤나 어려운거지,
저 말고 대부분 사람들은 일곱시간에서 열 시간 남짓을 투자하셔서 멋지게 풀어내셨답니다
문제는 일곱문제
말 그대로 지금까지 거쳐온 과정들에서 배운 지식들을 아는지,
그리고 그 지식을 통해 배운 것들을 내가 활용할 수 있는지
마지막으로 그 지식들을 서로 엮어서 사용이 가능한지에 대해 스스로에게 물어보고
저 질문을 던졌을 때 부족한 점이 있다는 생각이 든다면 그 부분을 구체적으로 찾아내서 보완하세요
위에 적은 내용 그대로입니다
그렇다면 테스트를 수월하게 통과하실 수 있을 겁니다
저는 그게 잘 안되어서, 그렇게 하지 않아서 상당히 고생했습니다
부디 저를 반면교사 삼아주시길 바라는 마음에
제 실력과 제 심정을 솔직하게 남깁니다
'code-states' 카테고리의 다른 글
[code-states][we-win] 34일차 - git pingpong (0) | 2020.06.09 |
---|---|
[code-states][we-win] 프리코스 수강 후기 (0) | 2020.06.05 |
[code-states][we-win] 25일차 - underbar (2일차) (0) | 2020.05.28 |
[code-states][we-win] 24일차 - underbar (1일차) (0) | 2020.05.27 |
[code-states][we-win] 18~23일차 - SNS 클론코딩 (1) (0) | 2020.05.26 |