후하하핫
5k
2021-12-22 13:20:37
10
2236

잘 모르는 분야를 빠르게 공부하는 방법 (부제: 일단 돌아가게)


요약


0. 구체적인 산출물의 형태를 정하세요.

1. 산출물을 내기 위해 만들어야 하는 최소한의 결과를 정하세요.

2. 일단 뭐든 갖다 써서 그 결과가 나오게 만드세요.

3. 그 결과가 나온 과정을 공부하세요.

4. 1부터 3까지 반복하세요.


우리는 뭔가를 만들기 위해, 시간 압박 속에서 잘 모르는 분야를 빨리 공부해서 갖다 써야 하는 상황이 참 많습니다. 이런 상황에서 어떻게 빨리 공부하는지에 대한 팁을 공유합니다.


0. 구체적인 산출물의 형태를 정하세요.


이런 상황에서 공부해야 하는 이유는 시험치기 위해서가 아니라 원하는 산출물이 있을 때가 많습니다. 산출물이 구체적으로 어떻게 나왔으면 하는지에 대한 구조를 짜보세요.

다만, 공부를 하면서 자신이 생각한 구조가 틀렸을 수도 있습니다. 이때는 그 구조를 바꾸되, 구체성을 유지하면서 형태를 정하세요.


예를 들어서, okky 같은 사이트를 만들어야 하는데 html, css에 대한 기본적인 개념만 있고 프로그래밍은 할줄 아는, 그 외에는 웹에 대해 일자 무식인 상황이라고 가정합시다. 일단 프론트랑 백 정도가 있다는걸 생각하고, 프론트는 어떤 언어로, 백은 어떤 언어로 만들고, DB는 뭘로 간다, 디자인은 okky 사이트를 캡쳐하는 식으로 구체적으로 정해 놓는 겁니다.


1. 산출물을 내기 위해 만들어야 하는 최소한의 결과를 정하세요.


한 발자국 씩 움직입시다. okky 에서 핵심 가능은 일단 글을 쓰는 기능 같네요.


일단 위의 뷰를 만듭시다.


요소가 많아서 한꺼번에 만들기 벅차니까, 글 쓰고 Create 버튼을 누르면 글 내용이 출력되는 걸로 하면 좋겠네요. 일단 백엔드는 필요 없으니까 프론트만 만들고요.


2. 일단 뭐든 갖다 써서 그 결과가 나오게 만드세요.


구글에 html simple text editor example github 이라고 치니까 https://github.com/jaredreich/pell 이런게 나오네요. 일단 뭔지 몰라도 붙여봅시다. 예제가 있으니, 다운 받아서 돌려봅시다.

demo.html이 있네요. 열어보니 역시 무슨 얘긴진 모르겠지만, 얘를 열어보니까 에디터가 나옵니다.

구글에 html button 을 찾으니까 이런저런 버튼 예제가 있습니다. 얘를 갖다 붙이면... 일단 에디터랑 버튼이 나옵니다. 아쉽게도 버튼을 누르면 에디터의 내용이 출력 되어야 하는데, 그건 어떻게 하는지 모르겠습니다. 일정을 수정해서 에디터만 이해해 봅시다.


3. 그 결과가 나온 과정을 공부하세요.


일단 HTML 코드를 열어보니 태그들이 있네요. 모르는 태그들을 검색해 봅시다. class가 뭔지, id가 무슨 차인지 구글에 검색해 보고요. JavaScript는 모르지만 대략 프로그래밍 언어는 할 줄 아니, window가 뭔지, document.getElementById()가 뭔지 찾아봅시다. 생각해보니 웹브라우저에서 출력을 어떻게 하는지도 모르네요. 그것도 검색해서 공부해 봅시다.

이 부분을 강조하고 싶은데, 책을 따라서 모든 내용을 독파하고 공부하는 것보다, 이렇게 한 단계씩 가면서 모르는 부분을 이해하고, 찾아서 정보를 공부하는 게 효율적입니다. 책을 독파 했다고 해서 뭘 알게 되는건 아니거든요. 일단 돌아가는 걸 보고, 내가 조금씩 바꿔 보는게 더 낫습니다.


4. 1부터 3까지 반복하세요.


다시 1로 돌아갑니다. 아까 버튼에 이벤트를 못 붙였으니, html button event를 검색해 봅시다. 코드를 이해했다면 getElementById로 text-output을 가져오면 텍스트 값을 가져올 수 있는건 알았으니, 버튼이 눌리면 onclick 이벤트에서 text-output을 가져와 console.log() 로 찍어 줍시다.

...


---


아마 웹을 잘 아시는 분들이면, 그냥 github 다운 받아 돌린 것에 불과한데, 이게 무슨 공부지, 라고 생각하실 수 있겠습니다만 (그리고 사실 맞는 얘기이기도 하죠), 시작은 이렇게 해도 좋습니다.

코드를 따라쳐보든, 갖다 쓰든, 이렇게 학습의 양을 늘려보세요. 결과물이 눈 앞에 빠르게 나타나면 재미가 붙어서 공부를 더 하게 될거고, 나중에 진짜 개념이 필요하면 그때 책을 봐도 늦지 않습니다. 오히려 더 빠르게 읽고 이해를 할 수 있게 되겠죠.


결론은, 최대한 결과물을 빨리 만들 수 있게 기획하고, 그 결과물을 빨리 만드세요. 그 이후에 공부하시고, 계속 반복해서 뭔가를 만들어보세요.


지면과 성의(?)의 한계로 예시의 내용이 좀 부실하게 느껴지실 수 있는데, 관련해서 질문 주시면 답 드리겠습니다.

16
14
  • 댓글 10

  • 밀리언셀러
    26
    2021-12-22 13:28:17

    좋은 글 감사합니다ㅎㅎ

  • 마라토집착
    6k
    2021-12-22 14:03:22 작성 2021-12-22 14:07:30 수정됨

    Si 가 이글처럼 개발을 많이 합니다

    예로 struts 1 + jquery 만 써봤다고 해도 스프링 + 리액트 ui 쓰는데도 뽑아줍니다. 

    Si는 데이터 중심 개발이 많아서 sql 이나 유닉스 쉘 이란게 비중이 커서요. 

    업무화면의 기능을 구성 하는 로직이 리액트 ui 콤포넌트를 다루는 기술보다 더 중요 하니 

    그래서 코딩 기술은 이본문 내용 처럼 경럭 20년차도 신기술은 초보처럼 배웁니다. 

    물론 은행이런데 ui가 트래픽이나 대용량 디비라 멀티쓰레드나 동기비동기 구현이 쉽지는 않지만

  • clr
    59
    2021-12-22 14:16:08 작성 2021-12-22 14:24:15 수정됨

    동의합니다. 저는 모든 공부를 말해주신 방식으로 합니다.

    실무에서 필요하니 일단 가져다 쓰고 나중에 내부 로직을 뜯어 보면 많은 걸 배울 수 있습니다. 내부를 까보면 예전에 대학에서 시험 치고 잊었던 이론 들이 실제 사용되고 있습니다. 그걸 깨달으니 그제야 학교에서 배웠던 수업이 진짜 이해가 되더군요.

  • 꽁손
    319
    2021-12-22 14:28:20

    전적으로 동의하는 글이네요 ㅠㅠ

    뭐하든간에 직접 만들어보는게 제일 좋더라구요

  • 후하하핫
    5k
    2021-12-22 15:05:20

    참고로, 저는 "전문가"가 되어야 하는 지식에 대해서 위 방법으로 공부하는 것은 반대입니다. 위 방법은 사용자 레벨에서 통하는 거고, 고급 사용자 및 전문가가 되려면 https://okky.kr/article/1118213 글에서 말한 것과 같이 1차문헌을 꼭 봐야합니다.

  • ignoreOrange
    2k
    2021-12-22 18:15:05

    좋은글 감사합니다! 해야게썽요

  • HTTYD
    188
    2021-12-27 16:39:16

    저방식대로 하다가 java/html/css/js에 대해서 완전히 학을 떼게 되어버렸습니다 흑흑

    그래서 그런지 몰라도 정석대로 배운 C++나 Python이 훨씬 좋더라구요 전

  • 애아빠
    2k
    2021-12-28 10:42:26 작성 2021-12-28 10:46:01 수정됨

    좋은 의견 입니다.

    다만, 모든 케이스에 통용되기는 힘들 수 있다고 생각합니다.

    이렇게 일단 가져다 쓰면서 배울 수 있는 것도 있지만 개념부터 잡고 가지 않으면 오히려 나중에 더 힘들어지거나 아예 진도 자체가 안나가는 경우도 있을 수 있겠지요.


    추가

    https://okky.kr/article/1118213 여기에서 이미 좋은 글을 써주셨네요 잘 읽었습니다.

  • OKKY
    3k
    2022-01-01 02:39:14
    해당 게시물은 관리자에 의해 사는얘기에서 칼럼로 이동 되었습니다.
  • winfly
    113
    2022-01-01 02:48:45

    동의합니다!

    게임프로그래밍을 배우고 있습니다. 

    이론만 배운 c++ 로 간단하게 게임을 

    만들어 보면서 객체지향의 개념도 적용해보고, 

    화면에 움직이는 이것저것에 재미를 느끼고 있습니다!


    항상 좋은 글 감사드립니다!

  • 로그인을 하시면 댓글을 등록할 수 있습니다.