밑에 어떤 글을 보고 몇자 적어봅니다...
저는 비전공자 이며, 학부 시절 비전공자 후배들에게 파이썬 강의를 해본 경험이 있고, 해당 강의 이후 후배들이 프로그래밍에 흥미를 느껴 전과하거나 부전공을 하는 경험을 바탕으로 보편적인 프로그래밍 언어를 배우는 기초적인 방법에 대해 설명하고자 합니다.
저도 고수는 아니기 때문에 좋은 의견이 있으시다면, 댓글 달아주시면 더 좋을거 같습니다!
1. 교재: 전 프로그래밍 언어를 처음 배울때 교재는 필수적이라고 생각 합니다. 다만 여기서 교재라 함은 특정한 '서적' 뿐만 아니라 프로그래밍 언어의 기본적인 기능들(function(method), type, loop 등)을 포괄적으로 다루는 어떤 형태의 자료를 말합니다. 때문에 교재는 생활코딩이나 유튜브 강의 또한 포함됩니다. (다만, 1시간 만에 파이썬 익히기 류는 권장하지 않습니다. 내용이 빈약하거나, 예제가 부족할 수 있습니다.)
추천하지 않는 방식은 A 유튜브 영상에서 function에 대해 배우고, B 블로그 글에서 반복문을 배우는 방식과 같이, 각각의 기능을 서로 다른곳에서 찾아 공부하는 것은 권장하지 않습니다. 이렇게 하면 배우는 과정에서 빠뜨리는 부분이 생기거나, 언어를 지엽적으로 공부하게 될 수도 있습니다.
2. 교재 선택 기준: 교재를 선택하는 기준은 사람마다 다르겠지만, 제 개인적인 기준은 다음과 같습니다.
a. 인지도 있는 교재인가?
저는 인지도가 있는 책중 나쁜 책은 없다고 생각하는 편입니다.
b. 쉽게 설명되어 있는가? 너무 두껍거나 딱딱하지 않는가?
입문자의 경우 너무 어렵거나 두꺼울 경우 흥미를 잃거나 안 읽히는 경우가 생기기 때문에, 제 경험으로는 얇고 가벼운 교재로 먼저 공부하는 편이 좋다고 생각합니다.
예전에 C++을 공부하면서 C++기초플러스 라는 책으로 입문하려 했었는데 너무~ 두껍고 딱딱해서 더 쉬운 책으로 다시 사서 공부한 기억이 있네요.
c. 개인적인 선호(출판사, 저자 등)
저는 개인적으로 표지가 이쁜 책을 좋아해서 오라일리 책을 좋아라 합니다만, 모두 개인적인 선호도가 있겠죠 ㅎ
3. 교재를 공부하는 방법.
제일 중요하다고 생각하는 부분인데, 교재의 모든 코드를 직접 작성 해보고 실행해 보세요.
제가 절대 추천하지 않는 방법은 눈으로 공부하는 것입니다.
눈으로 공부하면 코드를 보고 이해했다고 착각하는 경우가 종종 발생합니다.
저는 언어를 공부할 때에 있어서는 교재의 모든 코드를 손으로 직접 쳐 가며 공부하는 편인데, 시간은 조금 더 걸릴지 몰라도 확실히 도움이 됩니다.
저는 예제정도는 직접 쳐봐야 한다고 생각했는데 의외로 코드를 직접 치지 않으면서 학습하는 경우가 꽤 있었습니다. 실제로 그렇게 했을때는 성취도도 좋지 않더라구요.
코드를 직접 작성하면 얻게 되는 이점은
a. 눈으로 보고, 손으로 타이핑하고, 타이핑 한걸 다시 확인하면서 코드를 더 자세하게 읽게되는 효과가 있습니다.
b. 일종의 머슬메모리가 생기게 됩니다.
c. 논리적으로 어려운 코드의 경우 디버깅을 통해 오히려 더 빨리 이해할 수도 있습니다.
4. 매일 공부한 이후.
교재의 문제가 있다면 교재를 보지 않고 풀어보거나 코딩테스트의 기초적인 문법 문제들을 풀어보는 것을 추천합니다.
단 이때, IDE의 assist를 받는 것 정도는 괜찮을 지 모르겠지만, chat gpt등의 ai assist를 받는것은 추천하지 않습니다.
(공부할 때 ai assist는 이견이 많을 거 같긴 한데 저는 아직 반대파입니다...)
5. 단기간 내에 공부를 끝내야 합니다.
예를들어 파이썬을 생활코딩으로 공부 하는 경우 길어도 2주일을 넘어가서는 안된다고 생각됩니다.
공부 기간이 길어 질수록 앞의 부분을 잊어 버리게 되고, 흥미를 잃게 될 수도 있습니다. 차라리 얕더라도 빠르게 끝내고 부족한 부분을 채우는 것이 좋습니다.
6. 뭔가 만들어 보기.
대단한게 아닐수록 좋습니다. 단순한 로또 번호 추천 프로그램 부터 시작해도 좋고, (파이썬이나 자바, 자바스크립트의 경우)간단한 웹사이트를 만들어 봐도 좋겠네요. 아니면 쉬운 코딩테스트 문제를 풀어가는 것도 흥미를 잃지 않고 언어공부 및 알고리즘 공부에 도움이 됩니다.
오히려 너무 대단한걸 목표로 삼으면 목표를 이루지 못하고 흥미를 잃기 쉽습니다.
여기까지 도달하게 되면 보편적인 프로그래밍 언어의 일반적인 기능들을 공부하는 데에 큰 어려움은 없을 것 같습니다.
ps. 일반적인, 보편적인을 강조하는 이유는 제가 예전에 scheme을 공부하려고 한 적이 있는데 해당 언어를 학습하는데 실패한 경험이 있어서 그렇습니다. 아직 scheme은 특이한 언어고 일반적이지 않은 언어라고 믿고 있습니다.
ps2. 다른 의견, 더 좋은 의견 있으시면 댓글 달아주시면 감사하겠습니다.
덧붙여 저는 책과 유료인강을 같이 하라고 하고 싶네요. 인강은 PHP와 자바스크립트라면 생활코딩 추천하고요.
AI는 저는 적극적으로쓰되, 코드에대해서 반드시 물어보라고 하고 싶네요. 배우는입장에서 무지성으로 가져다 붙이면 발전이 없거든요. 근데 개념이라던가 함수라던가 코드 동작사항들 물어보면 잘가르쳐줍니다.
멀리할 것: 유튜브. 개발채팅방. 커뮤니티. 혼자 언어공부하는데 미미 충분한 자료와 AI가 있는데 시간낭비이거나 하기싫어서 기웃대는 것에 지나지 않습니다.
저는 유튜브는 찬성하는 입장인데 게임 하고 놀바에는 개발 유튜브라도 보는게 더 낫다고 생각해서요.
저는 문법 수준에서는 유튜브 끄자는 입장이예요. 유튜브아니어도 그정도는 자료 충분히 차고 넘치고 그만으로도 배울수 있는 단계인데 유튜브는 되려 한눈팔기 좋거든요. 사회이슈나 강아지고양이보면서 시간낭비하기 쉽상이더라고요.
최신트렌드, 실용적인 예제 이런건 유튜브가 좋은데 그건 충분히 개발능력이 있는단계에서나 그때 보면 된다고 생각해요.
(다만 게임개발 분야는 논외로 하겠습니다)
책들이 너무 개별 언어 문법에 치우져 있어서 막상 코딩을 하려고 하면 어떤 구조를 이뤄야하는지 전혀 모른다는 거였습니다.
영어 문법을 실컷 배웠지만 한 문장을 제대로 못쓰는 것처럼요.
공부하면서 실제로 사용되고 잘 작성된 전체 코드를 리뷰하면서 어떤 구조를 이루도록 설계됐는지 배운 언어문법이 어디에 어떻게 사용되는지 이해하는 과정이 꼭 필요하다고 생각합니다.
언어책의 주목적은 문법을 가르치기위한 것이고, 그때문에 실용적이지 않은 예제코드도 많습니다. 그 챕터의 목표를 설명하기위한 코드일 뿐이죠.
독자입장에 특정 목적을 이루기위해선 그 단계를 넘어서 익힐 수밖에 없더라고요.
사용처의 예를 다루자면 너무 예가 많고 깊어지며 다 다루려면 책이 두꺼워지고 되려 외면받습니다.
IT는 트렌드가 빠르게 변화하는데(패러다임,유행, 버전업) 책이 출판될즘엔 이미 바뀐게 태반입니다. 그런책은 얼마안가 책내용의 반이상이 못쓰게되는 내용이거나 그냥 버리는 책이 되더군요.
순수하게 언어 그 자체만 다룬 책은 10년이지나도 유효할 수 있죠.(언어자체가 버전업하더라도 그래요)
집필자와 출판사 입장에서도 나은 선택이라고 봅니다.
그래서 개인적으로는 쉽고 얇은책으로 문법을 빠르게 익히고 쉬운 프로젝트/코테를 진행하면서 헤딩하는게 낫다고 생각됩니다.
제가 예전에 자바 스터디를 구해보려고 오픈채팅방에 들어가 본 적이 있는데, 거기선 두꺼운 자바 책을 3회독을 해야되니 5회독을 해야되니 이런 소리를 하더라구요;;
한 권은 반복문, 조건문, 연산자 등등 언어의 기본 기능에 대한 책이고. 이 책은 두껍고 재미없는 부분이 많겠지만 입문자라면 반드시 알아야 하겠죠.
또 한 권은, 배우고자 하는 언어의 문서를 실무에 필요한 부분만 가져와서 실제 어떤식으로 사용하면 되는 지를 예시로 작성해놓은 책입니다.
말씀해주신 카테고리 책을 추천해주시면 감사하겠습니다!
말씀해주신 책들은 원론적인 내용들과 거기에 예시를 살짝 얹는 정도라고 보여지는 데, 저는 개인적으로 이런 책들은 필요한 부분만 빠르게 가져가는 용도는 아니라고 생각하기에..
잠깐 검색해보니 ’실전! 스프링 부트와 리액트로 시작하는 모던 웹 애플리케이션 개발‘ 이런 책이 리소스 긁어서 사용하기에 좋아보이네요. 리액트가 끼어있기는 하지만, 실무적으로는 스프링 부트를 봐야겠죠. 이 책은 예시를 들었을 뿐 이 책을 추천하는 것은 아닙니다.
그리고 웬만하면 최근에 출간한 책을 추천합니다.
올해부터 웹 백엔드쪽으로 진로를 바꿔서 스프링부트를 공부중입니다.
말씀해 주신거랑 비슷해보이는 '스프링 부트 3 백엔드 개발자 되기: 자바 편' 이란 책을 읽었었는데 내용은 괜찮았지만 내용이 너무너무너무 부족하더라구요. 말이 좀이상하긴한데. 내용의 질은 좋았는데 양이 부실했었어요.
그래서 그 이후로 스프링부트 입문용 원서를 또 따로 읽고 있네요 ㅎㅎ
조언 감사합니다!
윗분처럼 프로그래밍 언어의 기본서 와 실무용 책 2권 익히는게 좋죠.
실무용 책은 예전에는 cookbook 이었나요?? 쿡북이란 이름으로 나온것들이 있었는데 요즘은 어떤지 모르겠습니다.
저도 아직은 뭔가 새로운거 익힐 때에는 다 보지는 않더라도 책으로 봐야 (마음이) 편하더라고요. ㅎㅎㅎ
우선 파이썬부터 진득히 공부하는게 맞을까요?