울트라러닝으로 톺아보는 나의 웹 개발 도전기(feat. Codestates Full Pre Course)

devPomme·2020년 12월 20일
3

코드스테이츠 We-win 코스의 프리코스 과정의 절반이 지났다.
정말 하루하루가 눈코뜰새 없이 지나갔고, 24시간이 모자라~라는 말이 저절로 나올 정도였다. 그럼에도 매일 밤 내일은 어떤 새로운 걸 배우게 될까 기대감을 느끼면서 잠들었던 것같다.

사실 나는 코드스테이츠에 지원하기 전 혼자 웹 개발을 공부할 때, 지도를 그리면서 길을 찾는 느낌이 막막했다. 그 때, 현직에서 일하고 있는 개발자 출신 친구가 울트라러닝에 대한 기사를 알려줬다. 어떻게 공부해야하는지, 뼈대를 잡는데 큰 도움이 되었고 내가 어떻게 '울트라러닝 학습법'을 나의 웹 개발 공부에 적용했는 지 간단히 소개하고자 한다.
그리고 후반부에는 지난 나의 2주차를 돌아보고, 스스로 칭찬할 점과 부족했던 점을 보고 개선점을 찾아 실천하기로 다짐하는 것으로 포스팅을 마무리하겠다.

울트라러닝을 웹 개발 학습에 적용하기

1. 메타 학습: 지도를 먼저 그리기

(1) 왜 배워야하는가?

  • 배우는 목적을 알면, 지도를 그리기가 쉬워진다.
  • 나는 웹 어플리케이션 개발자가 되고 싶다.
    Q. 왜?
    A. 다양한 직무들 중에서 유연한 스타트업 근무 환경에서, 나의 퍼포먼스를 구체적이고 객관적인 결과물로 나타낼 수 있는 직무가 SW엔지니어링이라고 생각했다. 또 나의 비개발적 역량(커뮤니케이션 스킬, 다양한 직무에 대한 경험)과 결합되었을 때 큰 시너지를 낼 것이라고 판단했기때문이다.
    그렇다면 웹개발에 필요한 프로그래밍 언어를 학습하고, 학습한 언어로 동료들과 명확히 프로젝트에 대해 소통하고 작업할 수 있을 정도로 이해하는 것이 나의 학습 목표이다.

(2) 무엇을 배워야하는가?

  • 개념, 사실, 방법으로 학습해야하는 것을 나눈다.
  • 개념: 이해해야하는 것
    • ex) 자바스크립트 규칙(immutable, iterable, lecxical, Scope, Closure...), CSS/HTML의 box model
  • 사실: 외워야하는 것(Javascript의 다양한 함수 및 메소드의 역할, 기능,사용법/CSS·HTML의 tag/class/id 문법)
  • 과정: 연습해야하는 것(CSS/HTML로 내가 원하는 방식으로 애플리케이션 구현하기, Coplit으로 함수 작성하기)

어떤 부분이 가장 시간이 오래 걸리고, 어려울까? 그 ‘병목’을 찾아내야한다. 배워야할 것을 속성에 따라 나누고, 주로 공략해야할 ‘병목’에 맞추어 학습을 짜야한다.
나의 경우에는 자바스크립트에서는 개념이 병목이었다. 코플릿으로 함수를 작성하는 경우에는, 다소 직관적으로 문제를 해결해나갔기때문에 크게 어려움을 느끼지 않았고 오히려 재미가 있었다. 다만 정확히 언어의 규칙이나 특성에 대해서는 설명하기가 어려웠기에 병목으로 설정하고, Koans를 반복해서 푸는 데 집중했다.
반면 CSS/HTML에서는 웹 페이지를 구현하는 과정을 병목이라고 느꼈다. 아무리 개념을 urclass 강의와 checkpoint를 반복하면서 이해했다하더라도, 그걸 한번에 바로 브라우저에서 구현할 수는 없었다. (내가 머리가 나쁜가? 고민했다.) 그러나 그건 내가 개념을 제대로 숙지하지 못했기때문이 아니라, 정확히 사용하는 방법에 대한 훈련이 충분하지 않았기때문이었다.

(3) 어떻게 배워야 하는가?

마지막으로 어떤 콘텐츠, 방법, 환경을 활용해 배울지 인지해야한다. 다행히 코드스테이츠에는 개념·사실·과정에 대한 학습을 충분히 반복할 수 있는 콘텐츠가 정말 많다.

  • urclass 강의로는 개념(이해해야하는 것)을 학습하고,
  • Checkpoint, Socrative, Quiz를 통해서 사실(외워야하는 것)에 대한 이해도를 확인하고,
  • 코플릿, Koans, Sprint를 통해서는 과정(연습해야하는 것)을 반복한다.

2. 실전 후 훈련 - 일단 부딪쳐보고 연습하라

  • 이 부분에 대해서는 코드스테이츠의 커리큘럼이 정말 훌륭하다고 생각했다. 스프린트나 페어 프로그래밍이라는 실전과 유사한 경험을 통해 학습을 하는 환경과 실제 배운 것을 적용하는 환경을 일치시키는 것이다.
    이것을 잘하려면 결국, 자신의 실수를 부끄러워하거나 두려워하지 않는 자세가 가장 중요한 것같다. 자신의 부족함에 자꾸 눈길이 가면, 쪽팔리다(!)는 느낌때문에 어떻게 해야 더 잘할 수 있는 지, 건설적인 생각을 하기가 힘들어졌다.
    당연한 말이지만 실전 후 훈련이 더 중요하다. 그러나 나 역시 이 부분을 나의 개선점이라고 느낄 정도였고, 그래서 평일 정규시간 외 학습시간에는 학습했던 스프린트 복습에 충실하고자했다.

3. 피드백 - 펀치를 피하지 말자

성장 속도를 올리는 가장 좋은 방법은 자주, 정확한 피드백을 받는 것이다. 페어 프로그래밍이 나는 이 피드백을 받기에 아주 좋은 콘텐츠라고 생각했다.
물론, 피드백은 혼자서 학습할 때 갖추기가 어려운 조건이기도 하다. 따라서 최대한 정량적인 목표를 잡거나, 사람들에게 공개적으로 보여주려고 노력하면 도움이 된다고 한다. 그래서 나는 남은 Pre course 기간동안 꼭 사람들 앞에서 나의 결과물을 발표하고 설명하는 기회를 잡는 것을 새로운 목표로 잡기로 했다.

지금까지의 나의 모습, 그리고...

잘한 점

(1) 건강 관리

몸의 보이지 않는 부분이 마음, 마음이 보여져 나타나는 것이 몸이다.

  • 나는 청소년기에 자가면역질환을 앓은 적이 있다. 부모님의 가족력때문에 당뇨도 조심해야한다. (이제 겨우 20대 후반인데 공복혈당수치도 꽤 높게 나온다.) 그래서 적절한 식이조절과 운동은 필수적이다. 뿐만 아니라 최근에는 2주동안이긴 했지만 허리와 고관절, 골반이 굉장히 뻐근해지는 게 느껴졌다. 사실 저녁 7시정도까지 강의를 듣고, 저녁밥을 먹고나면, 그저 누워있고싶기만하다. 그 순간을 잘 넘겨야한다. 식곤증을 깨우기 위해 40분 정도 땀이 나고 숨이 찰 정도의 홈트레이닝을 하고나면, 잠이 깨고 다시 컴퓨터 앞에 앉을 수 있게 된다. 조금이라도 오늘 배운 것을 복습하고, 정리하기위해서라면 내 몸과 마음을 환기해주는 게 꼭 필요하다.
    특히 내가 2주동안 잘한 점은, 하루도 빼먹지 않고 숨이 가쁠 정도의 운동 혹은 요가 스트레칭을 진행했다는 것이다!

    내가 2018년부터 사용하고 있는 온라인 홈트 어플 마이다노. 코드스테이츠의 채용협력 협력사라는 것을 알게 됐을 때 굉장히 설렜다. 나의 최애 앱서비스의 개발자가 된다면 어떨까?

(2) 과정이 곧 보상이다

"저기 공놀이 하는 어린애들을 봐. 서툰 애들은 공을 대상화해서 갖고 노는 반면에, 잘하는 애들은 마치 공이 그들을 데리고 놀기라도 하듯이 공을 다루고 있어. 가장 능숙한 애들은 공이 이동하고 튀는 방향에 따라 움직이고 위치를 바꾸잖아. 우리가 보듯이 인간 주체가 공을 다룬다는 생각을 정말 잘못된 거야. 공이 그들 사이의 관계를 창조하고 있거든. 바로 그들이 공의 궤적으로 따라감으로써 팀이 창조되고, 인식되고, 표상되는 것이지. 그래, 공은 능동적이야. 놀이를 하고 있는 것은 바로 공이란 말이야."

나는 2주동안의 과정동안 하루하루가 즐거웠다. 정확히는, 과정 속에 온전히 몰입하는 것에 집중할 수 있었기에 지난 시간을 즐거웠다고 말할 수 있을 것이다. 물론 답답한 적도 있었고, 해결하지 못했거나 아직까지 완벽히 이해하지 못한 난제들도 남아있지만, 자책하는 마음에 갇혀있기보다는 새로운 개념을 받아들이고 컴퓨터 공학적으로 사고하는 것이 무엇인지에 나의 관심이 더 쏠려있었다. 어떻게 보면 그것은 개발자의 길에 들어서기 이전의 나를 지워가는 과정이라고도 볼 수 있겠다. 즉, 소프트웨어 엔지니어링이라는 새로운 세계에서 나의 창의성을 발휘하면서 웹 개발과 나의 관계를 맺어가는 그 과정 자체가 나에게 소중한 경험이었다.

개선해야할 점

(1) 효율적인 시간관리

  • 나는 아침잠이 정말 많다. 전형적인 올빼미족이기도 했고, 스타트업에서 일하면서 자연스럽게 10시 출근, 잦은 야근과 잔업 덕분에 이 싸이클이 너무나 익숙했다. 과부하가 걸리지 않는 선에서 생활패턴을 바꾸고 있지만 좀 더 빡빡하게(?) 시간을 써야할 필요성을 느꼈다. 공부하기만도 빠듯한데, 기본적인 재생산을 위한 가사노동(요리, 빨래, 청소...)을 하다보면 평일 저녁이 순살된다. 최대한 덩어리 시간을 확보해서 학습을 하고 집중력이 떨어지는 시간대에 집안일·운동을 해야할 필요성을 느꼈다.

(2) 강제성

"다른 사람의 의지에 복종하게 되는 두려움이 다른 무엇보다도 더 강하다는 것은 매우 흔히 드러나는 일입니다. 인간은 의식적으로 동의하는 것에 복종하는 것만이 자신의 의지를 획득하는 유일한 길임을 깨닫지 못합니다."

나는 자유의지는 환상이라는 스피노자의 말에 전적으로 동의한다. 첫 주 주말에는 그래도 열심히 복습을 했지만, 두 번째 주말에는 충분한 학습시간을 확보하지 못했다. 토요일에는 거의 하지않았고, 일요일에는 5시간 정도만 복습을 했지만 목표했던 학습량에 도달하지 못했다.

인간은 환경의 그물망에서 도움을 받아야 하는 존재이기에 그 필연성에 따른 제약을 바로 인식해야 하며, 환경의 속박을 내적 필연성을 방해하는 것이 아니라 오히려 그것을 지속시키고 촉진하는 방식으로 변형시켜나가야 한다.

그래서 나는 나의 자유의지를 믿는 대신, 동료들과 학습에 몰입할 수 있는 장치를 만들어야겠다는 생각이 들었다! 칸트 역시 인간의 자유란 자신이 정한 규칙에 복종할 수 있는 힘이라고 말하지 않았던가. 따라서 남은 Pre course의 주말에는, 함께 웹캠이나 화면공유를 통해 서로를 독려하고 각자 설정한 학습시간이나 학습량에 도달하는 지 점검하는 모각코를 진행하려고 한다. 물론, 모각코에 더욱 몰입할 수 있는 장치도 둘 생각이다!

profile
헌신하고 확장하는 삶

1개의 댓글

comment-user-thumbnail
2020년 12월 20일

과정이 곧 보상이다! 좋은 말이네요ㅎㅎ
회고를 통해 많은 것들이 정리된 것 같아 보기가 좋습니다 :)
남은 2주간 효율적인 시간 관리와 모각코를 활용한 강제성 부여를 이뤄내실 수 있게 응원하겠습니다 🙌

답글 달기