입문자의 공부 방향에 대한 질문
공부를 일단 시작하기는 했지만 너무 불안한 마음이 지속됩니다.
프로그래밍에 문외한이었다가 swift를 통해서 아이폰 개발에 입문하려 합니다.
현재는 책을 사서 기본적인 문법 사용법에 대해 공부중입니다.
기본적인 문법조차 사용할 수 없으면 개발을 시작할 수 없기에 문법 공부를
열심히 하고는 있습니다만, 언어는 도구일뿐이라는 생각이 듭니다.
혼자 하는 개발자라면 모로가도 동작만 되면 그만이다 라고 생각할 수 있지만
입사를 생각하고 있는 저로서는 혼자서 이것저것 만들어보면서 실력이 향상되는 것은
그저 언어를 자유자재로 사용하는 수준이 아닌가 생각이 듭니다.
물론 언어를 자유자재로 사용하는 것만으로도 상당한 시간과 노력이 필요할 것으로 보입니다만
같은 동작을 하더라도 객체지향에 대한 이해나 코드의 간결함 등의 기준으로 보면
분명 조금 더 가치있는 코드가 있기 마련이라 생각하는데
혼자서 공부하기에는 이런 부분에 대해선 제대로 캐치해내기가 힘들다는 생각이 듭니다.
그렇다고 학원에 다니기에는 제대로된 학원을 찾기 힘들뿐더러 주입식 강의를 주구장창 듣고 있는 것은
시간낭비라는 생각을 떨칠 수 가 없네요.
그저 입문수준에 머무르는게 아니고 정말 잘하는 프로그래머가 되고 싶은데 길잡이가 없다는 느낌이 강하게 들고 있습니다.
지금 현업에 계신 분들의 생각은 어떠신지 궁금합니다.
안녕하세요.
개발에 대한 막연함과 혼자 공부하는 것에 대한 두려움,
그리고 입사 등 먹고 사는 문제에 대한 불안함들을 갖고 계신 것 같습니다.
느끼시는 불안함을 이해할 수 있을 것 같아
제 경험을 토대로 한 번 말씀을 드려보고자 합니다.
(말씀 드리기에 앞서 먼저 제 소개를 간단히 드리면,
15년 이상의 개발 경력과 중견 IT 업체들에서 개발 팀장과 연구소장을 지냈으며 몇권의 개발 서적도 집필하였습니다)
처음 개발을 공부하시는 분들은 개발에 대해 막연한 두려움을 갖고 계신 경우가 많습니다.
차라리 외국어를 공부한다든가, 디자인을 공부한다고 하면 최소한 무엇을 공부하면 되는지 정도는 감을 잡을 수 있을 것 같은데,
개발을 공부한다고 하면 어디서부터 어디까지 공부해야 하는지에 대한 막연함이 있습니다.
실제로 개발이라는 것이 익숙한 용어도 아니고 게다가 분야도 많고 따지고 들어가면 그 폭이 방대한 것도 사실입니다.
어차피 해야할 것이 방대하다면 처음부터 많은 것을 공부하겠다는 목표를 조금은 조절해보시라는 말씀을 드리고 싶습니다.
즉, 공부의 범위를 “당장 만들고 싶은 것”에만 초점을 두시는 것을 추천드립니다.
예를 들어, 지금 SWIFT를 공부하신다고 하시니 아마도 아이폰 앱과 같은 모바일 앱을 만들고 싶으신 것 같습니다.
그렇다면 객체 지향이니 코드의 간결함이니 이런 것들은 일단 신경쓰지 마시고
어떻게든 앱이 동작하게 만드는데에만 집중하시라고 말씀드리고 싶습니다.
어차피 객체 지향이라는 것도 필요할 때 일부 적용하여 쓰는 것이지 반드시 객체 지향으로 만들어야 한다는 법은 없습니다.
실제로 객체 지향으로 코딩한다고 하는 실무자들도 객체 지향에 대해서 모두 안다고 할 수 있는 사람은 드뭅니다.
어차피 객체 지향같은 개념은 코딩을 하면서 자연히 알게되는 경험치일 뿐입니다.
객체 지향이나 코드의 간결함을 신경쓰지 않고도 어떻게든 돌아가는 코드가 있다면 그건 그 자체로 의미가 있습니다.
코딩을 너무 완벽하게 하려고 신경쓰지 않으셔도 됩니다.
단지 만들고 싶은 결과물이 나왔다면 그것만으로도 크나큰 성공이고 의미가 있는 것입니다.
그리고 나서 조금씩 경험이 쌓이면 그때그때 조금씩 필요한 것들을 학습해 나아가면 되는 것입니다.
실력이라는 것은 그렇게 알게 모르게 쌓여지는 것입니다.
그리고 입사 문제에 관해 말씀드리면,
주변에도 보면 혼자하는 코딩과 입사를 위한 코딩을 별개로 생각하시는 분이 많은 것 같습니다.
두번째로 제가 말씀드리고 싶은 것은 입사를 위한 코딩에 너무 신경쓰지 마시라는 얘기입니다.
저도 중견 IT업체에서 십수년 이상 실무 관리자로서 일을 했었고 수많은 개발자들의 면접을 보았습니다.
믿기 어려우실 수 있으시겠지만 사실 입사는 운이 많은 비중을 차지합니다.
물론 실력도 중요하지만 실력이 있다고 반드시 입사를 하는 것은 아니며 실력이 있다고 반드시 좋은 회사에 취업하는 것도 아닙니다.
때론 좋은 회사에 갈 수도 있고 때론 안 좋은 회사에 갈 수도 있지만 그것을 결정하는 것이 개발 실력만으로 결정되는 것은 아닙니다.
때마침 그 회사 팀장이 원하던 스펙과 좀 일치했다거나, 그 회사의 담당자가 실력보다는 인성을 본다거나,
때마침 그 시기에 사람을 많이 뽑는다거나 등등 외적인 요인이 상당히 많이 작용합니다.
입사 면접에 아예 신경을 안 쓸 수는 없겠지만 너무 입사에만 신경쓸 필요도 없고 또 그런 사람은 그것대로 티가 납니다.
다시 말해 실력보다는 입사에만 신경쓰는 티가 난다는 의미입니다.
면접을 보시는 분들은 경험이 많고 이런저런 사람들을 보기 때문에 면접용으로 공부한 사람과 뭔가를 만들 수 있는 방법을 터득하기 위해 공부하는 사람은 얘기해 보면 알 수 있습니다.
그러므로 입사에 대해서는 너무 신경쓰지 마시고 본인 원하는 것을 만들 수있는 실력에만 집중하시기 바랍니다.
회사도 그런 사람을 원합니다. 원하는 것이 있을 때 어떻게든 그걸 만들 방법을 찾으려고 하고 찾을 수 있는 사람을 원합니다.
그 방법이 언어를 자유자재로 사용해서이든 객체 지향을 사용해서이든 과정보다 중요한 것은 결과적으로 그것을 만들어 냈느냐하는 것입니다.
요컨대 원하는 것을 열심히 만드는 것이 곧 입사 준비도 같이 하는 것이라고 생각하시면 한결 편하실 것 같습니다.
다음으로 학원과 관련해서 말씀드리면,
저도 얼마 전 학원 강의를 한 적이 있습니다만,
말씀하신대로 요즘의 학원 수준이 10여년 전에 비해 달라진 것이 없는 것을 보고 놀란 적이있습니다.
어느 정도의 비용과 체계가 있는 학원은 모르겠지만, 정부 지원 등을 통해 무료나 저비용으로 수강할 수 있는 학원들은
그 구조상 학습의 질이 높기가 쉽지는 않은 것이 사실인 것 같습니다.
즉, 학원은 그냥 참고한다는 정도로 생각하시는 것이 좋을 것 같습니다.
학원은 학습에 필요한 것들이 무엇인지 제시하고 어느정도 가이드를 해줄 수는 있지만 결국 대부분은 본인 스스로 해결해야하는 것 같습니다.
(스스로 학습하시면서 이 곳 뎁스 노트 서비스를 충분히 활용하여 필요할때마다 질문하시는 것도 권장드립니다^^)
그리고 이건 다소 개인적인 생각일 수 있습니다만,
개발을 공부하는 분야에 대한 의견을 하나 말씀드리고자 합니다.
처음 아이폰이 출시된 이후에 모바일이 붐이 일고 이제는 아이폰과 안드로이드가 일상이 되어
많은 분들이 앱 개발에 관심을 갖고 계십니다.
그런데 이 모든 IT 환경의 시작은 사실 90년대 중반 인터넷이 보급되면서 부터입니다.
즉, 서로서로 네트워크로 연결되는 환경이되면서 IT가 일반에게 급격하게 보급되기 시작하였습니다.
그리고 지금도 IT는 곧 네트워크입니다.
다시 말해 IT의 핵심은 네트워크입니다. 네트워크를 통한 정보의 교류입니다.
IT 개발 공부를 한다는 것은 결국 이러한 네트워크를 활용하는 것을 익히는 것이 근본이라고 할 수 있습니다.
그런데 앱 개발은 기본적으로 네트워크에 대한 개념은 없습니다. 단지 스마트폰에서 돌아가는 프로그램을 만드는 것이 핵심입니다.
그런 의미에서 처음 개발을 공부하신다면 앱 개발도 좋지만 웹 개발을 먼저 공부하시는 것도 좋은 방법 중의 하나라고 말씀드리고 싶습니다.
그 이유는 일단 웹 개발은 네크워크상에서 정보를 제공하는 서버와 그 정보를 보는 클라이언트(브라우저)를 다루는 것이기 때문입니다.
또한 웹개발을 할 줄 알아도 충분히 앱을 개발할 수 있습니다.
앱 개발에는 웹뷰라는 개념이 있어서 앱 안에 웹으로 개발한 것을 넣어서 앱을 만들 수가 있습니다.
그리고 결정적으로 웹 개발을 공부하는 것이 앱 개발을 공부하는 것보다 훨씬 쉽습니다.
즉, 내가 원하는 것을 만드는데까지 도달하는 시간이 앱 개발보다는 빠를 수 있다는 얘기입니다.
물론 현재까지는 앱 개발자에 대한 수요가 많은 것은 사실입니다.
어차피 선택은 본인의 몫이고 정답은 없습니다만, 단지 아까 말씀드린 “내가 원하는 것을 만들 수 있는 능력”을 갖추는 것을 중심으로 본다면 웹 개발을 공부하시는 것도 좋은 선택이 될 수 있다고 조심스럽게 말씀드리고 싶습니다.
지금까지 생각나는 대로 두서없이 적어보았는데
조금이라도 도움이 되셨는지 모르겠습니다.
드리고 싶은 말씀이 훨씬 많습니다만 일목요연하게 정리해서 말씀드리기가 쉽지는 않은 것 같습니다.
또 언제든지 뎁스 노트에 방문하셔서 질문 남겨주시면 무엇이든지 성심성의껏 답변드리겠습니다.
혹시 기회가 된다면 오프라인에서도 만나뵙고 도움을 드릴 수도 있으니 부담없이 남겨주시기 바랍니다.
그럼 좋은 하루 되시고 또 뵙겠습니다^^