- 나는 3년밖에 되지 않은 햇병아리 개발자.
- 주력 언어&프레임워크는 C#, .NET FrameWork, ASP.NET (원래 학원 다닐 땐 java과정으로 6개월 배웠으나 학원 수료와 동시에 c# 회사에 붙어서 일을 해온 게 어느덧 여기까지 왔다.)
- 요즘 java, spring boot, REST API를 혼자 배우고 있다. 너무 재미있다.
- 아래는 배움에 대한 내 생각이다. 몸으로 느낀점들을 개인적으로 기록한 글이라서 틀린 부분이 많을 수 있다.
- 그럼 정리해보자.
" 새로운 프로그래밍 언어 + 프레임워크를 배울 때는 한 가지만 생각하면 되는 것 같다. 그것은 바로 "
'절대 이해하려고 하지 말기'
어떤 프로그래밍 언어를 처음 배울 때 모든 코드가 정확하게 어떻게 돌아가는지 완전히 다 이해하려는 것에 초점을 맞추면 안 된다. 그대신, 그냥 단순하게 튜토리얼 (혹은 책) 코드를 무지성으로 따라 쳐보자.
이런 작은 경험(몸으로 느끼는 경험)들 그 자체가 도움이 된다.
처음에는 절대 이해하려고 하면 안 되고 '무지성으로 걍 따라하기'가 정말 많은 도움이 된다.
왜 그럴까?
01. 친숙함 쌓기. 자신감 느끼기.
- 친숙함
* 프로그래밍 언어를 처음 접해보면 복잡해보인다. 두꺼운 책을 보고있자면 한숨부터 나온다.
* 때문에 튜토리얼을 그냥 따라하면서 친숙함을 쌓는 것이 중요하다. 그게 유튜브가 됐든 책이 됐든 본인 편한 방식으로.
* 기본적인 syntax(구문)나 구조(for문, if문 등) 등등을 눈으로 보면서 아 이렇게 생긴 놈들이 있구나 하고 넘어가면 된다. (몰라도 이해하려고 하지 말고 걍 넘어가기)
* 그렇게 해야 작은 디테일들에 짓눌려서 배우는 것 자체에 흥미를 잃게 만드는 일이 없어진다.
- 자신감
* 단지 그냥 코드 샘플을 따라치고, 그 코드들이 어떻게 작동하는지 느껴보는 그 자체가 자신감을 쌓게 해준다.
* 시간이 흐르면 자연스럽게 패턴들이 보이게 된다. 그리고 그것은 코드들이 어떻게 작동하는지 감각적으로(자연스럽게) 이해하게 해준다.
02. 점진적 이해
* 처음 프로그래밍 (프레임워크도 마찬가지) 을 접할 때, '암기해야만 하는 일련의 규칙들이 많이 있는 어떤 것'으로 생각하고 압도당할 수 있다. 그러지 말자.
* 단순하게 따라치고, 튜토리얼 영상을 '그냥' 보고, 책을 눈으로만 보면서 '가볍게 그냥' 넘기면서 내 무의식에 맡겨보자. 물론 여러 번 반복해야 함.
* 그러면 자연스럽게 다양한 구조들과 명령어들이 상호작용 하는 것이 '인식'되기 시작한다. 점진적으로.
* 이런 배움의 과정은 새로운 언어 (프로그래밍 언어가 아님. 영어나 일본어 등을 말하는 것) 를 배울 때도 동일하게 작용한다.
* 아가들이 말을 자연스럽게 하게 되는 경우를 생각해보자. 짧은 단어나 약간 긴 문장을 무지성으로 태어났을 때부터 걍 따라하다가 되지 않았나?
03. 분석 집착에서 벗어나기
* 모든 세부사항들을 다 이해하고 넘어가려는 행위 그 자체가 공부를 할 때 피로감을 느끼게 할 수 있다.
* 프로그래밍에는 많은 개념들이 있다. 메모리 관리, 자료 구조, 객체 지향 등등... 한 번에 바로 이해되지 않는 것들..
* 반복횟수가 쌓이고 작은 경험들이 모이면 어려운 내용들 (위에서 말한 메모리 관리, 자료 구조 등) 에 대해서 자연스럽게 궁금증이 생겨나는 시기가 온다.
* "너무 느린데, 메모리 관리? 라는 걸 하면 빨라지려나?" , "이거 저번에 만든 코드인데 똑같은 걸 또 만들고 있네.. 붕어빵 틀처럼 같은 모양 만들어서 나중에 똑같이 찍어낼 수는 없을까?" (객체 지향) , "얘는 왜 이렇게 작동할까? 얘는 뭐지?" 등등... 그 내용이 궁금해서 찾아봐야겠다는 그런 '필요를 스스로 느낄 때'만 조금씩 깊게 찾아보자.
* 단순히 코드를 따라치자. 작더라도 명확한(1+1=2를 계산해주는 함수 등) 무언가를 만들자.
* 그렇게 해야만 실체적인 연습(코드 읽고 따라치기) 없이 이론에만 매몰되는 것을 피할 수 있다.
04. 하면서 배우기
* 교육학적으로 생각해보았다.
* 어떤 것을 배우는 방법은 다양하다.
* 우리나라를 비롯한 대부분의 아시아권 교육 방법은 옛날 제국주의에서부터 온 것이다. 앞에 선생님이 있다. 개념을 설명한다. 학생은 주입식으로 머리에 쑤셔넣는다.
* 왜 배워야 하는지, 어디에 써먹는지는 중요하지 않다.
* 이렇게 배우면 머리에 남는 것도 없고 이해도 안 된다.
* 이런 수동적 교육방식 (개념을 먼저 배우고 문제를 푸는 방식) 과 반대되는 교육방식이 있다.
* 그것은 PBL (Problem-Based Learning : 문제중심학습 방법) 이다. 쉽게 생각해서 문제를 먼저 접하고 그걸 풀면서 어떤 개념(subject)을 배우는 거라고 생각하면 된다. 즉, 문제를 풀기위한 개념은 모른 상태에서 문제를 먼저 만나는 상황.
* 나는 프로그래밍 뿐만 아니라 어떤 새로운 것을 배울 때는 PBL 방식으로 학습한다. 그래야 '필요'를 느끼게 되기 때문.
* 영어를 예로 들자면, 문제상황을 먼저 설정한다.
>> 문제상황 : 좋아하는 축구 분석을 영어 원문으로 듣고 싶음. 혹은 프로그래밍은 미국에서부터 왔으니까 미국 자료 그대로 보고 싶음.
>> 이후 흐름 : 영어 원문 유튜브 그냥 보고 듣기 > 모르는 거 나오면 찾아보기
* 영어 문법을 먼저 공부하고, 듣기를 공부하고, 어휘를 공부한 뒤에 유튜브를 찾아보는 게 아니고 그냥 무지성으로 관련 자료를 보고 읽고 듣는다.
* 프로그래밍 학습할 때도 마찬가지.
* "어떤 문제를 해결하기 위해 이 수단 (예를 들면 자바 언어 혹은 스프링부트 등) 이 나왔지?", "그래서 어디에 어떻게 쓰이는 건데?" 를 스스로 질문하면서 학습한다.
* 프로그래밍은 연습하면 되는 '기술'이다. 프로그래밍을 배우는 가장 좋은 방법은 '하면서' 배우는 것이다.
* 심지어 모든 코드가 어떻게 동작하는지 이해 안 되도, 그것을 따라 치고 작은 부분들을 조금씩 변경하면서 일어나는 변화들을 실험하며 배우는 것이 중요하다.
<요약>
* 처음 프로그래밍 언어를 배울 때 절대 많은양의 내용을 이해하려고 하지 말기.
* 샘플코드와 튜토리얼을 그대로 따라치기 (이해 안 되도 걍 무지성으로)
* 이런 경험들이 반복적으로 쌓이면 이해의 깊이도 자연스럽게 깊어진다.
* 시간이 지나면서 조금 더 어려운 것들을 만났을 때, 그때 자연스럽게 해당 부분을 깊게 공부하면 된다.
* 프로그래밍 언어도 어떤 문제를 해결하기 위한 단순한 '수단' 에 불과하다. 너무 깊게, 무겁게 생각하지 말자. 오직 재미있게.
'Life' 카테고리의 다른 글
| 두려움, 스트레스는 어디에서 오는가 (0) | 2025.10.24 |
|---|---|
| 나발 라비칸트가 말하는 "지혜" (0) | 2024.09.11 |
| [생각] 감정을 소비로 풀지 말기 (0) | 2023.10.16 |