생활코딩

Coding Everybody

코스 전체목록

닫기

수업을 마치며 2

 

 

---

 

 

이전 영상에서는
교양을 위해서
코딩을 배우고 있는 학우들과
작별의 시간을 가졌습니다.

그럼 이제
이 영상을 보고 계신 분들은
더 많은 것을 알고 싶은 분들일 거에요.
가야 할 길이 멀기 때문에 마음이 급하시죠?

그런데
지금은 공부를 더 하기도 좋은 때입니다만
공부를 멈추고 공부한 것을 사용하기도 좋은 때입니다.

공부만 하고 공부한 것을 사용하지 않으면
나중엔 머리 속이 너무 복잡해져서
막상 코딩을 하려니 무엇을 해야할 지 모르게 됩니다.


공부를 많이 해서
좋은 코드가 무엇인지는 알게 되었는데


좋은 코드를 짤 줄 모르면
내가 짠 코드가 실망스럽게 됩니다.


때로는 아는 것이 독이 될 때가 있어요.
바로 이 순간입니다.

 

 

이래서는
좋은 평론가가 될 수는 있지만
부족하더라도 무엇인가를 만들 수 있는 생산자가 될 수는 없습니다.

 

 

여러분이 현명한 판단을 할 수 있도록
생각의 재료를 제공해 드리겠습니다.

지금부터 하려는 이야기는
복잡함에 대한 것입니다.

우리 주변에는
눈에 보이는 복잡함이 있고
눈에 보이지 않는 복잡함이 있습니다.

 

 

그 중에
눈에 보이지 않는 복잡성은
공부한 것을 사용하려고 했을 때
무엇을 햬야할지 막막하게 하는 주범입니다.

이것의 실체를 추적해 봅시다.

 

웹페이지를 하나 만들고 아래처럼 코딩을 해 보세요.
(안 해도 됩니다)

이런 걸 체크 박스라고 합니다.

 

 

체크박스가 하나일 때
이 프로그램이 잘 동작하는지 확인하려면
몇 번 테스트를 해야 할까요?

 

 

2번입니다.

 

 

체크박스가 두 개일 때는 몇 번 일까요?

 

 

4번입니다.

 

 

3개일 때는 8번입니다.

 

 

그럼 이 추세로
체크박스가 50개일 때
몇 번의 테스트를 해야할까요?

 

 

수학적으로 생각하지 마시고,
직관적으로 짐작해 보세요.
라고 말해도
수학적으로 계산하는 분 계시죠? ㅎㅎ

 

 

그럼 좋습니다. 수학적으로는
2의 50승입니다.
2를 50번 곱하면 나오는 수죠.

 

 

그럼 2의 50승은 실제 얼마일까요?
계산기를 써 보세요.

 

 

제가 대신 계산해 드릴께요.
1000조입니다.

체크박스가 50개면
천 조 개의 경우의 수가 생겨납니다.
우리 주변에는
체크박스 50개보다 복잡한 앱들이 얼마나 많나요?

 

 

세상은 우리 생각과는 다르게
이렇게 쉽게 복잡해집니다.

눈에는 체크박스 50개가 보이기 때문에
쉽다고 생각되지만
실제로는 눈에 보이지 않는
천 조 개의 경우의 수가 숨어 있을 때
테스트 못한 경우에서
예상 못한 버그들이 생겨나게 됩니다.

 

 

처음엔 큰 기능도 쉽게 만들어지지만
뒤로 갈수록 사소한 기능 하나를 추가하는 것도
어렵게 되면서
깊은 슬럼프에 빠지게 됩니다.

 

 

이 복잡함은 눈에 보이지 않기 때문에
자연스럽게
좌절감의 원인을
자기 탓으로 돌리게 됩니다.
겨우 체크박스 50개 밖에 안 되는 단순한 프로그램도
제대로 못 만드는 사람이라고 여기게 되는 것이죠.

 

 

자기 탓이 아닙니다.
원래 그렇습니다.

공부도 마찬가지입니다.
개념을 알게 된다는 것은
말하자면 체크박스가 늘어난다는 것입니다.


자연스럽게 자신도 모르게
머리 속이 기하급수적으로 복잡해집니다.

그럼 이 복잡함은 나쁜 것일까요?
저는 그렇게 생각하지 않습니다.

 

 

오히려
인류는
눈에 보이는 단순함을 조작해서
눈에 보이지 않는 엄청나게 복잡한 것을
만들어내는 위대한 존재입니다.

그 위대함의 사례를 준비해 봤어요.

 

 

필자는 오랫동안 영어공부를 했어요.
그렇게 오래 공부를 했는데
저 스스로를 영어의 능숙한 사용자라고 느끼지 못합니다.
참 슬프네요. ㅎㅎ

영어는 주어, 동사, 목적어의 순서대로 단어들을 배치해서 의미를 만들어 냅니다.

아이가 자라면서 이 문법을 어떻게 습득하는가를 생각해 봅시다.

아이들은 명사만으로 대화를 합니다. 이를테면, 엄마, 아빠, 밥... 아이가 명사를 10개를 안다면 아이는 10개의 의미를 만들 수 있습니다. 1000개의 의미를 말하려면 1000개의 단어를 알아야 합니다.

아이가 조금 나이가 들면 동사를 사용할 수 있게 됩니다. 명사를 앞, 동사를 뒤에 두어서 말을 하기 시작합니다.

그럼 명사 10개, 동사 10개로 만들 수 있는 의미의 경우의 수를 따져보면, 20개의 단어로 100개의 의미를 만들 수 있습니다. 80개가 이득입니다.

 

 

좀 더 나이가 들면 동사 뒤에 명사를 배치해서 좀 더 복잡한 말을 만들기 시작합니다.

동사 앞의 명사와 동사 뒤의 명사를 구분하기 위해서 앞에 있는 것은 주어 뒤에 있는 것은 목적어라고 부릅니다. 그럼 20개의 단어로 1,000개의 의미를 만들 수 있습니다. 980개가 이득입니다.

 

 

전치사가 추가되면 30개의 단어로 100,000개의 의미를 만들 수 있습니다.

 

 

이렇게
문법이 조금만 복잡해져도
이득은 천문학적으로 커집니다.

 

 


주어+동사+목적어라는 어순만으로도
우리는 엄청나게 많은 의미를 만들어 낼 수 있습니다.

이렇게 간단한 문법이
이렇게 대단한 도구라는 것을 알았다면
저는 이것만을 가지고
의미를 만들어 보는
연습을 충분히 했을 것 같습니다.

 

 

그런데 이렇게 중요한 도구의 사용에
충분히 익숙해지기도 전에
더 복잡한 문법들을 배웠습니다.


나중에는
머리 속이 너무 복잡해져서
한마디도 할 수 없게 되더라구요.

지금까지 우리가 배운 내용은
영어로 치면
주어+동사+목적어와 같이
혁명적인 것이었습니다.

이것만으로도 우리는
웹이 웹이기 위한 모든 것을
알게 되었어요.

덜 아름답고
덜 편리하고
덜 생산적일 뿐입니다.

그럼 어떻게 해야 할까요?
진도를 멈추세요.


그리고 지금까지 배운 것을 이용해서
여러분의 삶에서 정말 중요한 정보를
잘 정리정돈 해 보세요.
 

 

그것이 여러분의 인생에서 중요한 것일수록
여러 가지 불만족이 쏟아져나올꺼예요.

더 예쁘게 만들고 싶을 수도 있고
더 편리하게 만들고 싶을 수도 있습니다.
더 생산적으로 만들고 싶을 수도 있습니다.

중요한 것은 이런 불만족을
자기 눈으로 직접 확인해 보는 것입니다.


그래야 부분학습할 수 있습니다.
또 그 불만족이 누적되서 절망감이 충분히 성숙해야 합니다.
그래야 공부가 우리의 문제를 해결해 줄 수 있습니다.
바로 이 때가 진도를 나갈 절호의 타이밍입니다.
더 빨라도, 더 늦어져도 안 됩니다.

자 그럼 조사 한 번해 볼게요.
진도는 여기서 잠깐 멈추고
지금까지 배운 것을 사용하실 분 손 드세요. ㅎㅎ


잘 생각하셨습니다.
지금 손 드신 분들은
공부를 그만두고,
즐겁게 만들면서,
한계에 스스로 직면하세요.


그리고 그 한계에 대해서 충분히 절망하세요.
그 때 다시 찾아오시면
절망감을 극복할 수 있는 공부가 준비되어 있을 거에요.
절망감의 크기가 클수록 그것을 극복했을 때의 행복감도 커질 것입니다.

 

그럼 그 때까지 안녕히 가세요.

그럼 나머지 분들은 진도를 나갈 준비가 된 분들이죠?
그럼 어디 가지 마시고 다음 영상에서 뵙겠습니다.

댓글

댓글 본문
  1. 주말농장주인
    2020.08.03 완료
  2. 따릉이덕후
    마음이 급해서 아직도 너무 부족한 느낌이 들지만 그래도 한번 선생님말에 따라보려구요! 좋은 강의와 따뜻한 말까지 많은 도움이 되요 감사합니다!
  3. yoonjae
    20.08.02 완료
  4. ddggmm
    지금 미국은 새벽 1시 30분, 배우는게 즐겁고, 또 그것으로 빨리 무엇인가 생산해 내고 싶은 욕심에 서둘러 진도를 나갈려고 했는데...전지적 스승님 시점을 갖고 계신가 봅니다. 예 조급해 하지 않고, 지금까지 배운것으로 일단 무언가를 해 봐야겠습니다. 그러다보면 자연적으로 이렇게 하고 싶은데, 저렇게 하고 싶은데라며...익숙함과 한계가 동시에 극에 달하는 시점이 있겠지요. 그 때 다시 찾아오겠습니다. 두배의 설렘으로 말이지요. 감사합니다.
  5. 조아라
    2020.08.01
  6. Jay1025
    2020.07.31. 완료
  7. seo0see
    2020.07.31. 완료.

    감사합니다! : )
    지금까지 한 것도 충분히 혁명적인 것이다..
    마음을 급하게 먹지 말구, 긍정적인 생각으로 공부를 해나가며,,
    문제에 직면하고 절망감이 성숙해질까지 충분히 도구를 사용해보고 와보겠습니다..
  8. 2020.07.30.
  9. 동효고
    오오....좋은 말씀입니다. 항상 코딩을 공부할 때 마다 지식을 쌓아두기만 하고는 써먹지를 않아서 절망감에 빠져있는 순간이 많았는데 말이죠. 이번에는 늦지 않고 싶긴 하나...그래도 다음 페이지를 보고 싶은 욕심은 막지 못했네요ㅋㅋ
  10. 미진
    저는 배우면서 제 식대로 해봤기 때문에..ㅎㅎ 다음영상에서 뵙겠습니다!
  11. 하늘콩땅콩
    영어를 몇년동안 공부하는 입장에서 왜 안되는지 알게 되었네요 ㅎㅎ
  12. Lemil
    7/24 완료
    절망감을 맛보러 갔다옵니다
  13. flyingdeuk
    감사합니다.
  14. 라피네
    절망감을 맛봐야합니다!
  15. 코딩의 마술사
    thanks!
  16. 뻐끔
    20.07.10
  17. 이뿐이
    완료
  18. 뽀짝이
    완료
  19. cottoncandy
    20200706 완료
  20. chapter5447
    완료하였습니다
  21. 김성곤
    20200703
  22. 메텔
    20200630 완료
  23. LikeAHandy
    20200629 완료~
  24. Kangsoo Jeong
    선생님 강의 너무너무 감사합니다.
    잘 배워오다가 이부분에서 한가지 질문이 있습니다.
    이번 강좌를 통해서 잠시 멈춰서 지금까지 배웠던 것으로 뭔가 시도를 해보라고 하셨는데,
    지금까지 배운 것으로 간단한 윕페이지 구현 정도가 전부이지 않을까 라는 생각이 들었습니다.
    물론,,, 여기에는 제 욕심인 ‘이정도의 페이지 말고 보다 역동적이고 멋진 페이지를 만들고 싶어’
    가 내포되어 있어서 현재 단계로 뭔가를 시도해보기 보다는 css등 다른 것들이 대한 학습이 필요하다고 생각되어 학습을 먼저 하려던 마음이 있어 이러한 생각이 들게 된 것 같습니다,
    본래 이번강의를 마치고 css,javascript등 계속해서 배움을 이어가려다가,
    이번 강의의 조언(?)말씀으로 잠시 멈칫 했습니다.
    현 단계에서 시도해볼만한 과제나 챌린지가 뭔가 있을까요???
    두서없는 질문이지만, 혹시 가볍게라도 추천해주실 수 있다면 부탁드리겠습니다!
  25. 200627
  26. 200627
  27. dongmi95
    20.06.25완료
  28. 200625
  29. 2020/06/19 완료
  30. 옴므박탈
    완료
  31. 리다
    20200618 완료
  32. 이정혁
    20/06/17 완
  33. 허심탄회
    0616 완료
  34. 정고
    6/16 완료 매번 감사드립니다!
  35. 김광현
    6/14완료
  36. ghwcin
    ㅎㅎ... css를 억지로 마치고 자바스크립트 첫강의를 보다가 멍때리는 절 발견했습니다. 그러다가 . . . html로 돌아와서 이강의를 다시 보게 됐네요. 전 아직 html을 더 익혀야 할 단계가 확실하네요. 열심히 해보고 이어서 강의 보러 오겠습니다. 이고잉님 감사합니다.
  37. 나미콩
    6/8 완료
  38. 김혜린
    6월 9일 완료!
  39. psyless
    20200605
  40. 용사는 부지런했다
    2020.06.04. 빠셍.
    이고잉 멋진 분
  41. HanLee
    생각을 많이 하게 되네요.
    감사합니다
  42. 은준
    5/26 완료
  43. doyoel
    이 웹사이트를 접속하는 것만으로도 설레고 또 즐겁습니다. 건강 잃지 마세요. 정말 고맙습니다.
  44. HyeonHui Jeong
    5/21
  45. 김용재
    ㄹㅇ 미쳤다 말 한마디한마디가
  46. 장지윤
    완료
  47. goodluck
    "인류는 눈에 보이는 단순한 것을 조작해서 보이지 않는 엄청나게 복잡한 것을 만들 수 있는 위대한 존재이다."
  48. 탁기태
    완료
  49. 박종찬
    진짜 너무 감동이잖아요ㅗ
  50. namnamk21
    감사합니다!
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기