온라인, 오프라인을 통해 자주 받게 되는 질문 중의 하나이다. 오늘도 비슷한 질문을 두 명으로부터 받았다. 질문 중 일부를 인용하면 다음과 같다.
NEXT 복학생
가장 큰 고민은 제가 비전공자이기에 프로그래밍에 대해서는 1학년 학부 수업 때 배운 C언어 포인터까지가 전부입니다.그래서 현재 생활코딩에서 올라온 강의 중 웹 애플리케이션 만들기 라는 코스를 따라 프로그래밍이 무엇인지 알아보고는 있습니다. 전공에 대해서는 아직 구체적으로 정하지는 못했지만 웹UI/UX 쪽으로 공부를 하고 싶습니다. 저는 지금 이 시점, 복학 전에 무엇을 해야(공부or그 외 활동) NEXT에서의 2년동안 공부에 도움이 될까요?
20살의 젊은 친구
1년 가까이되가는데 수능 끝나고 놀기에 바빠 프로그램 생각도 나지 않았습니다. 이제 다 놀고 나서 돌이켜보니 제 가슴한가운데에 프로그램이라는 미련이 아직까지 남아있네요. 뒤돌아보면 프로그래밍의 의지가 없어서 그런건가 부끄럽기도 합니다만. 그래도 제 인생에서 한번쯤은 해봐야 직성이 풀릴거같은 그런느낌 안하면 평생 그 생각이 날거같은 느낌이 납니다.그래서 지금이라도 초심잡고 시작해볼려고하는데요 프로그래밍에 대해 조언을 구하고자 이렇게 글을 남깁니다. 제가 큰틀을 짜놓긴했습니다. 뭐 딱히 큰틀은 아니지만 프로그래밍을 시작해서 보안 해킹 관련 공부를 하고싶습니다. 어떻게해야 좋은지 조언 부탁드립니다.
이런 질문을 많이 받는데 딱히 무엇부터 시작하고 준비하라고 답변하기 힘들다. 답변하기 힘든 이유는 각각의 상황이 다를 뿐 아니라 프로그래밍을 통해 하고 싶은 일이 무엇인지도 다르기 때문이다. 각 상황에 맞는 다른 답변을 주기도 힘들 뿐 아니라 일반화된 하나의 답변을 주기도 힘들다. 그래서 이렇게 질문으로 남겨 다양한 사람들의 의견을 공유함으로써 자신들이 판단하고 선택할 수 있는 기회를 주려고 질문으로 남긴다.
프로그래밍을 시작하는 친구가 어떻게 학습하면 좋을까에 대해 같이 고민해 주면 좋겠다.
0개의 의견 from FB
6개의 의견 from SLiPP
만약 웹 프로그래머가 되는 것이 목표라면 NEXT에서 교수님으로 계셨던 분이 작성한 초보 웹 개발자를 위하여 문서를 참고한다면 많은 도움이 되겠다.
이 문서의 내용을 보면 웹 개발자가 뿐만 아니라 개발자가 되고 싶어하는 친구들에게 도움이 될만한 내용이 많으니 참고하면 좋겠다.
질문을 남겼으니 이제 본격적으로 나의 의견을 남겨 보자. 모든 경우에 일반화하기는 힘들고 각각의 상황에 맞춰 자신이 설계해 나가면 좋겠다.
나는 소프트웨어를 공부하기에 지금보다 좋은 시기가 없다고 생각한다. 온라인에 정말 많은 좋은 강의가 넘쳐나고 있다. 너무 많은 컨텐츠가 있기 때문에 어느 컨텐츠를 취사 선택하느냐도 힘든 상황이다. 이제 학습할 컨텐츠가 없어 프로그래밍을 학습하기 힘들다는 것은 한편으로 보면 핑계일 수도 있다.
그렇다면 무엇보다 시작하면 좋을까? 나는 프로그래밍을 학습하려고 하기 전에 소프트웨어를 통해 무슨 문제를 해결하고 싶은지, 무엇을 만들고 싶은지, 왜 하고 싶은지를 먼저 고민하면 좋겠다. 거창하지 않아도 된다. "취업이 잘 되니까."라는 세속적인 목적도 좋다. 세속적이더라도 이 목적이 간절하면 된다. 순수한 동기이건, 세속적인 동기이건 무엇인가를 해결하기 위한 목적이 간절해야 한다. 간절함이 필요한 이유는 프로그래밍을 학습하는 과정에서 겪게 되는 어려운 시기를 극복할 수 있는 원동력이 되기 때문이다. 프로그래밍을 학습하는 과정이 쉽지 않은 길이다. 이 과정을 지속하려면 시작 동기를 명확히 할 필요가 있다. 특히 주변에 비슷한 주제로 학습하는 친구가 없는 경우에는 더더욱 그렇다.
일단 왜 프로그래밍을 학습하고 싶은지에 대한 고민이 끝나면 이후에는 자신이 집중적으로 학습할 분야를 선택해야 한다. 해결하고 싶은 문제가 웹으로 가능한지, 모바일로 가능한지, 게임으로 가능한지 등등. 지금 소프트웨어 업계가 너무 다양하기 때문에 한 가지 분야를 선택해 집중하는 것이 좋다. 자신이 해결하고 싶은 문제, 만들고 싶은 것이 어느 기술로 해결할 수 있는지 모르겠다면 온라인 커뮤니티에 질문을 남겨본다. 그러면 무수히 많은 선배 개발자들이 어떤 기술, 어떤 내용을 학습하라고 조언해 줄 것이다. "막연히 프로그래머가 되고 싶은데 무엇부터 시작하는 것이 좋아요?"라는 질문 보다는 "무엇을 만들고 싶은데, 무슨 문제를 해결하고 싶은데 어떻게 시작하는 것이 좋아요?"라고 질문하는 것이 좀 더 구체적이고 좋은 답변을 받을 수 있다. 질문할 수 있는 온라인 커뮤니티는 초보 웹 개발자를 위하여 문서에 잘 정리되어 있다. 페이스북을 통해 다양한 개발자 그룹에 참여해 질문 남기는 것도 좋다.
이렇게 무엇을 학습할 것인지 정했다면 초보 웹 개발자를 위하여 문서에서도 이야기하고 있듯이 일단 시작해라. 온라인 상에 일단 시작해 볼 수 있는 너무나도 많은 좋은 온라인 강의가 있다. 따라하기 식으로 그럴 듯한 소프트웨어를 만들어 볼 수 있는 경험을 할 수 있다. 일단 머리가 아니라 몸이 소프트웨어를 느끼도록 만드는 경험을 해보면 좋겠다. 만들면서 짜릿한 느낌과 성취감을 느껴보기 바란다. 시작하는 시점의 이런 짜릿함과 성취감은 프로그래밍에 대한 학습을 지속할 수 있는 힘을 준다.
일정 수준 경험을 한 후 좀 더 깊이 있는 지식을 학습하기 위해 기초 지식과 이론을 학습해 나가면 좋겠다. 기초 지식과 이론을 학습하는 과정은 지루하고 힘들다. 하지만 앞에서 얻었던 짜릿함과 즐거움 때문에 이런 어려움도 극복할 수 있을 것이다.
코딩을 지탱하는 기술 : 원리로 깨우치는 프로그래밍 기법 책에 프로그래밍 학습과 관련해 나오는 세 가지 이야기를 공유해 본다.
필요한 부분부터 흡수한다.
대략적인 부분을 잡아서 조금씩 상세화한다.
끝에서부터 차례대로 베껴간다.
우리나라 초,중,고 교육은 기초부터 탄탄히 다지면서 12년을 학습해 나간다. 특히 수학 같은 경우 더욱 그렇다. 물론 소프트웨어도 똑같은 방식으로 학습할 수 있다. 하지만 너무 지치고 힘들다. 또한 수학과 같이 정형화된 커리큘럼과 순서도 없다. 기존의 학습 방식의 틀을 깨는 연습을 해라. 이 연습만 잘 되어 있어도 몇 개월, 몇 년을 아낄 수도 있다. 위 글 중 "필요한 부분부터 흡수한다."에도 나오는 다음 문장을 꼭 전하고 싶다.
안녕하세요. 비슷한 고민을 한적이 있었는데 그때 도움이 되었던 아티클이나 자료들을 첨부해봅니다.
<어떤 랭기지를 먼저 배워야 할까요> http://programmingisterrible.com/post/40453884799/what-language-should-i-learn-first (영문입니다만 번역이 필요하시면 조악하게나마 번역한게 있으니 연락주세용)
<Google의 기술 개발을 위한 가이드> https://www.google.com/about/careers/students/guide-to-technical-development.html
<나는 개발자인데 왜 자신이 없을까> http://deview.kr/2013/detail.nhn?topicSeq=19
<자신있는 개발자에서 훌륭한 개발자로> http://deview.kr/2014/session?seq=14
저는 해보고 나서야 이걸 잘할 수 있을지, 직업으로 할 수 있을지, 계속 하고 싶은 일인지 판단할 수 있었어요. 저는 금융을 전공했는데 금융업에서 인턴을 해보로 나서야 직업으로 하기 싫은 일이라는 걸 알 수 있었어요. 학교 다닐 땐 전공이 싫은 건 아니었어요 공부로써는 재미도 있었어요. 프로그래밍 언어만 익혔을때는 저는 백지 상태여서 많이 못하는 것 같아서 힘들고, 다른 친구들보다 이해하는 속도도 느려서 걱정이 됐어요. 근데 웹으로 뭔가를 만드는걸 배운 뒤로는 너무 재밌고 저의 경우는 언어만 배웠을때보단 쉽고 만들고 싶은 것도 많아졌어요. 무언가를 만들수 있게 되기까지는 조금 힘들더라도 참고 해보고 난 뒤에 선택하는 것도 방법일것같아요~ :)
내가 남긴 질문을 이어 받아 지앤선의 김지영님이 엘프의 외계어 배우기라는 글을 남겨주어 공유한다.
프로그래밍 학습을 시작한지 얼마되지 않은 상태에서 경험담을 남겼기 때문에 나보다 훨씬 의미있는 답변이다.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.