IT 업계에서 일하건 그렇지 않건 코딩은 산업 시장에서 가장 인기 있는 능력입니다. 초등생, 직장인, 심지어 주부를 대상으로 온갖 강좌가 개설되는 것만 봐도 알 수 있는데요. 일단 배워만 두면 데이터 분석, 엔지니어링, 디자인, 정보 기술은 물론 일상생활에서도 유용하게 쓸 수 있는 코딩. 코딩에 관심 있는 분들을 위해 현대자동차그룹의 숨은 고수 다섯 명을 모아 조언을 들어봤습니다.
언어선택 하기
초심자 대상으로 알고리즘을 경험하고 싶다면 파이썬이나 C++, 홈페이지 만들기는 HMTL을 추천합니다
Q. 코딩을 배우기로 마음먹은 이들이 가장 처음 마주하는 난관은 ‘어떤 언어로 입문해야 하는가’입니다. Javascript, HTML, jQuery, Python, C++… 소위 잘 나가는 언어를 제하고도 수백 개에 달하는 언어 중 무엇을 택하면 좋을까요?
현대모비스 김병민(이하 김병민) 알고리즘을 경험해보고 싶다면 파이썬(Python)이나 C++을 추천합니다. 파이썬은 문법 구조가 단순하고 다른 언어에 비해 필요한 코드 수가 적어서 초심자가 접하기에 유리합니다. C++은 비교적 오래전에 개발되어서 문법 구조는 복잡하지만 알고리즘 파악에 도움이 되는 다양한 함수가 구축되어 있다는 이점이 있습니다.
현대오토에버 이재열(이하 이재열) 프로그래밍이라는 것이 메모장에 알파벳과 특수기호를 나열하는 것으로 아웃풋이 나오는 게 아닙니다. 코드가 돌아갈 환경을 만들어줘야 하는데, 이게 입문자에게는 진입장벽처럼 느껴질 수 있는데요. 윈도우 환경에서도 제대로 실행되려면 파이썬이 아무래도 스트레스가 덜합니다.
현대엠엔소프트 김우석(이하 김우석) 친구들과 웹 형태의 앱을 만들거나, 홈페이지를 만들기에는 HTML도 나쁘지 않습니다. 또 HTML은 누구나 가지고 있는 브라우저에서 간단히 바로 만들어 볼 수 있다는 장점도 있는데요. HTML에 좀 익숙해지면 자바스크립트(Javascript)로 넘어가는 것을 추천합니다.
배우는 방법
Q. 시간의 제약이 많은 직장인은 코딩 교육만을 위해 교육기관에 등록하는 게 쉽지 않기도 합니다. 그렇다면 이제 온라인 강의냐, 입문서를 구입해 독학하느냐 하는 선택지가 남았습니다.
현대엔지니어링 조정원(이하 조정원) 비주얼 베이직(Visual Basic) 언어 기반으로 단순한 엑셀 업무 자동화에 사용할 수 있는 알고리즘을 배우고 싶다면 ‘엑셀 매크로&VBA 바이블’을 추천합니다. 반복적인 작업이나 업무 효율 향상에 도움이 되는 다양한 시도를 해볼 수 있습니다. 만약 AI 기술에 관심이 있다면 ‘K-MOOC’를 통해 파이썬 언어를 학습하는 것을 추천합니다. AI의 기초지식이나 퀄리티 있는 수업을 무료로 들을 수 있습니다.
현대케피코 정현배(이하 정현배) 책은 따분하고 비싼 강의를 덜컥 끊기는 조심스럽다면 유튜브에 접속해보세요. 기초 단계의 강의를 무료로 경험할 수 있어 좋습니다. 유튜브 수준이 익숙해졌다면 ‘Hello Coding 한입에 쏙 파이썬’을 추천합니다. 책으로도 출간되어 있지만 강의도 무료로 볼 수 있습니다.
이재열 ‘Do it! 점프 투 파이썬’이라는 책자를 추천합니다. 제목이 파이썬이라 그렇지 프로그래밍의 기본기를 재미있게 익힐 수 있습니다.
김우석 요즘은 유튜브의 ‘드림코딩 by 엘리’ 채널을 추천합니다. 업으로서 하는 게 아니라면 유료 강의 보다 유튜브를 추천합니다.
심화 학습
코딩 고수들은 동료, 사람들에게 필요할 것 같은 기능을 한 개 한 개 추가하다 보면 코딩 실력이 일취월장할 것이라고 말합니다
Q. 호기심이 동하고 의욕이 앞섰던 것도 잠시. 내용이 어려워지니 슬슬 코딩이 지겨워지기도 한데요. 지치지 않고 공부하는 방법은 없을까요?
김병민 많이 해보는 수밖에는 없습니다. 머릿속에서 고안한 알고리즘을 코드로 작성하는 연습을 많이 해야 에러 없고 효율적인 코드 작성이 가능해집니다. 대규모 오픈소스 프로젝트의 코드를 많이 보는 것도 도움이 되는데요. SW 설계에 대한 안목을 한층 높일 수 있습니다.
조정원 독학으로 코딩을 학습한다는 건 지속성이나 효율성 면에서 추천하지 않습니다. 비전공자라면 더더욱 그런데요. 즐겁게 성취할 수 있는 목표를 정해서 학습하는 걸 추천합니다. 제 경우에는 좋아하는 축구팀 선수의 경기 데이터를 시각화하고 머신러닝으로 경기 결과를 예측해보는 알고리즘을 만들어 보기도 했습니다. 이외에도 주식이나 스포츠 등 자신이 관심 있는 분야의 데이터를 분석하거나 간단한 앱을 만들어 보는 것을 추천합니다. 생각보다 빠르게 코딩 실력을 늘릴 수 있습니다.
이재열 코딩도 결국 언어입니다. 문법만 익히는 건 영어 단어를 외우는 것만큼이나 즐겁지 않죠. 학생 시절 학번을 입력하면 입학지원서에 쓴 사진을 볼 수 있는 프로그램을 개발한 적이 있는데요. 필요한 걸 자주 만들고 누군가 이용하는 걸 봐야 재미가 붙고 실력이 늡니다. 추가로, ‘repl.it’이라는 툴을 추천합니다. 복기를 하듯, PC나 모바일에서 자신이 작업했던 알고리즘 히스토리를 볼 수 있습니다.
김우석 나에게 꼭 필요한 기능 한 가지를 떠올린 뒤 만드는 것을 추천합니다. 덧셈 뺄셈처럼 간단한 것도 좋습니다. 제가 만든 첫 앱은 폴더의 경로를 입력하면 폴더 내 모든 이미지를 한 번에 볼 수 있는 프로그램이었습니다. 단순히 0부터 99까지 반복하며 텍스트를 파일에 쓰는 기능밖에 없었지만 지금 개발자가 된 계기가 되었습니다.
이제, 실전
Q. 가까스로 언어의 개념은 잡혔습니다. 그렇다면 이제 무엇을 하면 좋은가요?
김병민 실무에 적용해보면서 꾸준히 업무나 취미로 하는 과정이 필요합니다. 실력을 향상시키는 데는 무엇보다도 투자한 시간이 중요하다는 것을 잊지 마세요.
조정원 코딩을 주 업무로 하는 개발자가 아니라면 코딩의 심화 학습보다는 이를 기반으로 적용 가능한 다양한 분야로 확장하는 게 좋습니다. 예를 들어 C언어나 파이썬, 비주얼 베이직의 기초를 쌓은 후에 이를 이용해 건축 설계 프로그램인 CAD나 BIM을 제어하거나, 구조 설계 프로그램을 제어할 수 있는 API를 학습해 사무자동화에 활용하는 식이죠.
정현배 한두 가지의 관심 주제를 정해 웹페이지나 미니 게임 등을 만들어보는 것을 추천합니다. 강의를 따라하는 것과 새로운 결과물을 만들어 내는 것은 그 막막함의 정도가 천지차이인데요. ‘나만의 ○○을 만들겠다’라는 목표를 두고 부족한 정보를 조금씩 매우면서 코드에 녹여내다 보면 어느새 근사한 작품이 탄생할 것입니다. 실력 향상에 탄력이 붙는 것은 말할 것도 없죠.
이재열 여자친구와 테트리스를 자주 했는데, 중간에 유료로 전환되었습니다. 그래서 1:1 대전이 가능한 온라인 테트리스를 C++로 개발한 적이 있는데요. 그래픽이며 온라인 통신까지 필요했던 덕에 OpenGL, 리눅스 OS를 덤으로 공부할 수 있었습니다.
김우석 자신이 만든 앱을 공유해보세요. ‘그냥 사서 써’라고 할 수도 있겠지만 같은 일을 하는 다른 누군가에게는 그 앱이 꼭 필요할지도 모릅니다. 앱 형태가 아니어도 좋습니다. 단순히 화면보호기를 띄우는 스크립트가 필요한 사람도 있습니다. 동료, 사람들에게 필요할 것 같은 기능을 한 개 한 개 추가하다 보면 코딩 실력이 일취월장할 것입니다.
▶ 해당 기사는 현대자동차그룹 사보 <모터스라인>에서도 확인하실 수 있습니다.