코딩 배우기, 왜 어떻게 시작해야 할까? 독학하기 좋은 교육 프로그램 추천

SHARE

Last updated on 1월 26th, 2024 at 04:59 오후

몇 년 사이, 코딩(프로그래밍) 교육에 대한 사회적 관심은 눈에 띄게 달라졌습니다. 초등학교에서는 정규 프로그램으로 코딩 교육을 편성하고, 대학에서도 컴퓨터 관련 전공이 아니더라도 코딩 교육을 의무로 실시하기 시작했죠. 성인들 사이에서도 코딩 배우기에 대한 수요는 꾸준히 오르고 있는데요.

코딩배우기-코딩교육-패스트캠퍼스

4차 산업혁명 같은 거창한 이야기는 잠시 내려놓고, 오늘은 개발자가 아닌 사람도 코딩을 배워야 하는 지극히 개인적인 이유를 알아보려 합니다. 동시에, 프로그래밍 언어로는 무엇이 있고 개발자와 협업을 잘 하기 위해서는 어떤 사고방식이 필요한지 확인해봅시다.

코딩 배우기, 시작해야 할 4가지 이유

  • 돈이 된다
  • 의외로 쉽다
  • 써먹을 곳이 많다
  • 개발자와의 협업이 즐거워진다

1. 돈이 된다

나만의 아이디어가 있고, 이를 소프트웨어로 구현할 수 있다면 큰 진입장벽 없이 수입을 올리는 것이 가능합니다. 예를 들어, 구글 플레이스토어나 앱스토어만 가봐도 기업이 아닌 개인이 작업하여 올려둔 모바일 어플리케이션이 굉장히 많습니다. 회사에서 개발자로 일하지 않아도, 프리랜서로 웹사이트나 모바일 앱을 대신 개발해주어 외주로 수입을 올리는 경우도 꽤 많습니다.

코딩교육-코딩배우기-패스트캠퍼스

또한 개인적으로 실력을 올리기 위해 노력한다면, IT 회사에 개발자로 취업하는 것도 가능합니다. 물론 이 모든 일이 결코 쉽다고 말할 수는 없지만, 코딩을 할 줄 알게 되면 내가 가진 기회와 선택지가 훨씬 넓어진다는 것은 분명합니다.

2. 의외로 쉽다

오늘날의 프로그래밍은 예전에 비하면 진입장벽이 많이 낮아졌습니다. 이전에는 프로그래밍을 하려면 컴퓨터에 대한 깊은 이해가 필요했고, 서비스 하나를 만들기 위해서는 정말 많은 코드를 개발자가 직접 구현해야 했습니다. 하지만 오늘날은 많은 이들이 프로그래밍을 쉽게 할 수 있도록 다양한 소프트웨어가 쏟아져 나오고 있죠. 어려운 명령어를 타이핑 하지 않아도, 마우스만으로 코딩을 할 수 있는 플랫폼이 많아 누구나 쉽게 코딩을 시작할 수 있습니다. 또한 잘 만들어진 각종 코딩 서비스를 돈을 내고 가져다, 내 창작물에 사용하는 것도 가능합니다.

코딩배우기-코딩교육-패스트캠퍼스
코드 없이(No code) 모바일 앱을 개발할 수 있는 플랫폼 Glide

프로그래밍은 인터넷을 통한 지식 공유가 가장 활발한 영역이기도 합니다. 그러므로 온라인으로 혼자서 공부하는 것이 전혀 어렵지 않죠. 특히, 내가 프로그래밍에 소질이 있는 사람인지 아닌지는 사실 해보는 것 말고는 알 도리가 없습니다. 유명 IT 기업의 프로그래머들 중에도 비전공자가 굉장히 많다는 것만 봐도 알 수 있죠. 프로그래밍은 더 이상 특정 부류의 전유물이 아니라는 걸 꼭 기억하세요.

3. 써 먹을 데가 많다

오늘날 컴퓨터를 사용하지 않는 곳을 찾기가 어렵습니다. 여기서 컴퓨터란, PC 뿐만 아니라 태블릿, 스마트폰, 각종 센서 등 프로그램이 탑재된 각종 전자기기를 말합니다. 프로그래밍을 할 줄 안다는 건, 이 전자기기들이 최적화된 조건으로 다양하게 기능할 수 있게끔 만들 수 있다는 걸 의미합니다.

이렇게 말하니, 프로그래밍은 나와 별로 관련이 없을 것 같다고요?

코딩배우기-코딩교육-패스트캠퍼스

사실 프로그래밍은 꼭 IT회사에 다녀야만 하는 것이 아닙니다. 개발과 관련이 없는 일이라도, 프로그래밍을 공부하면 기존에 하고 있는 복잡하고 지루한 서류 작업을 빠르게 해치우는 것도 가능합니다. 예를 들면, 직장인이라면 누구나 사용하는 엑셀 프로그램을 내 업무에 맞게 자동화 시키는 것을 할 수 있어요(관련 글 : 야근에서 나를 지키는 마법, 업무자동화). 또한 약간의 HTML 지식만 있어도 다양한 용도의 사이트를 내 필요에 맞게 만들어볼 수도 있을 겁니다.

4. 개발자와의 협업이 즐거워진다

주방에 한 번도 들어가 본 적 없고, 요리에 대해 1도 모르는 식당 주인이 주방장을 데리고 일을 한다고 생각해보세요. 아마 식당 주인도 주방장도 서로 소통하는데 큰 어려움을 겪을 수밖에 없을 겁니다. 이는 개발을 전혀 모르는 대표나, 디자이너, 기획자가 개발자와 일할 때 흔히 볼 수 있는 상황과 동일합니다.

개발자와 일을 해야 하는 사람이라면, 어느 정도 수준의 프로그래밍 지식을 갖추고 있는 것이 업무의 퀄리티와 좋은 협업 분위기를 위해서 좋습니다. 나에게 필요한 특정 기능이나 프로그램을 개발자가 구현하는데 어느 정도의 리소스가 필요한지, 시간은 얼마나 소요될지, 방법이 여러 개라면 각각의 방법에는 어떤 장단점과 리스크가 따르는지 알면 커뮤니케이션이 훨씬 수월해지겠죠.

또한 개발자가 ‘안돼요’라고 말하는 것들은 정말 안 되는 건지, 혹은 왜 안 되는 것인지 이해하고 일을 하는 것과 그렇지 않은 것은 퍼포먼스 측면에서도 큰 차이를 보일 것입니다.

코딩배우기-코딩교육-패스트캠퍼스

특히 디자이너는 개발자와 갈등이 빈번한 직종입니다. 디자이너와 개발자의 사고회로는 완전히 다르기 때문인데요. 그래서 좋은 팀으로 일하기 위해서는, 개발자와 디자이너가 서로의 업무를 잘 이해하고 있어야 합니다.

코딩을 위한 사고방식 : 샌드위치 만들기

요즘은 컴퓨터가 똑똑해져서 사람과 자유롭게 대화하는 것도 가능하다고 합니다. 하지만 그건 고도의 기능이 탑재된 AI 스피커에서나 가능한 일이죠. 컴퓨터는 사실 우리가 생각하는 것처럼 마냥 똑똑하기만 하진 않습니다. 컴퓨터에게 우리가 원하는 일을 시키기 위해서는 하나의 태스크(Task)를 굉장히 작은 단위로 나누어서 지시할 수 있어야 하는데요. 샌드위치 만들기를 예로 들어보겠습니다.

잼과 계란, 양상추가 들어간 샌드위치가 있다고 해볼까요. 요리를 잘 못하는 친구에게 레시피를 적어준다면 아마 이렇게 쓸 겁니다.

  1. 식빵에 잼을 바른다.
  2. 양상추를 얹는다.
  3. 계란프라이를 얹는다.

코딩배우기-코딩교육-프로그래밍 샌드위치 만들기

반면, 깡통로봇에게 똑같은 일을 시킨다면 어떨까요? 아마 위의 레시피만 준다면, 뜯지도 않은 식빵 봉지에 잼을 바르고 있을지도 모릅니다. 그럼 로봇에게 샌드위치를 만들어달라고 하려면 어떻게 지시해야 할까요?

  1. 도마에 놓인 식빵이 2장이 될 때까지
    – 식빵을 한 장 꺼낸다
    – 한쪽 면이 흰색이 아니면 다음 식빵
    – 반대쪽 면이 흰색이 아니면 다음 식빵
    식빵을 도마에 놓는다

이렇게 해야, 껍데기 쪽이 아닌 식빵 2장을 온전히 꺼낼 수 있을 겁니다. 프로그래밍을 할 때는, 유치원생에게 길을 알려주는 것과 같이 상세하게 서술하는 것이 중요합니다.

프로그래밍 언어는 어떤 게 있을까?

프로그래밍 언어란 컴퓨터에게 일을 시키기 위해 사용하는 사람과 컴퓨터 간의 대화 수단입니다.

안녕하세요. 반갑습니다. (자연어)
010010001111101010 (기계어)

 

분류 기준에 따라 차이는 있겠지만, 현재 프로그래밍 언어는 700가지가 넘습니다. 그럼 이중에서 도대체 무엇을 써야 하는 걸까요? 일단 어떤 프로그래밍 언어가 가장 많이 사용되는지 알아봅니다.

엘리베이터 버튼 누르기
폰 게임화면 터치하기
엑셀 매크로 작성하기

 

아래로 갈수록 태스크의 난이도는 올라가지만, 동시에 기능성도 상승합니다. 이러한 기능성은 프로그래밍 언어의 분류와도 관련이 있는데요.

사람 언어에 가까움 High Level 언어
기계 언어에 가까움 Low Level 언어

 

기계어(Machine Language)는 컴퓨터 언어를 말합니다. 0과 1의 조합으로 이루어진 기계어는 사람이 바로 이해하기는 어렵습니다.

기계어 다음으로 나온 언어는 어셈블리어(Assembly Language)입니다. 어셈블리어란 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어입니다(위키백과 어셈블리어). 사람이 이해하기 어려운 기계어보다는 가독성이 높습니다만, 프로그래밍이 발전하면서 개발자들도 어셈블리어를 보는 일은 거의 없어졌습니다.

코딩배우기-코딩교육-패스트캠퍼스
어셈블리어의 예시

하지만 지금까지도 많이 사용되고 있는데요. 기계어로의 번역 없이, 인간이 기계에게 바로 명령할 수 있기 때문에 기계 성능의 최적화가 중요한 분야나 IoT 등을 다루는 프로그램에서 유용하게 사용됩니다.

어셈블리어를 제외한 대부분의 프로그래밍 언어는 모두 사람 언어에 가깝다고 보는 High Level 언어라고 할 수 있습니다. 그렇다면 High Level에 속하는 프로그래밍 언어는 무엇이 있는지 알아볼까요?

관련 글 더 보기 : 프로그래밍 입문자가 공부할 때 알아야 할 꿀팁 Top 6

코딩배우기-코딩교육-패스트캠퍼스
출처 : 패스트캠퍼스 코딩 첫걸음 프로젝트 올인원 패키지

C언어
대학에서 컴퓨터 공학 기초 단계에서 필수로 학습하는 언어입니다. 기계의 상당 부분을 기계어로 번역 없이 통제할 수 있는 프로그래밍 언어로 High Level 언어 중에서도 기계어에 가까운 편입니다. 코딩의 효율성보다는 기계 성능을 최대치로 끌어올리는 언어라 널리 사용됩니다.

C++
C언어의 발전된 형태입니다. 게임이나 그래픽 분야에서 주로 활용됩니다.

C#
마이크로소프트사에서 개발했고, 윈도우에서 동작하는 프로그램에는 대부분 사용됩니다.

Java
우리나라에서는 압도적으로 많이 사용하는 프로그래밍 언어입니다. 코드를 한 번 짜면 가능한 모든 기기와 플랫폼에서 다양하게 활용될 수 있어, 많은 개발자들이 사용합니다. 우리나라 정부에서 제공하는 사이트 대부분이 Java로 개발되어 있습니다. 따라서, Java를 한 번 배워두면 한국에서 취업하기에는 용이합니다.

Python
Java보다 문법이 간결하고, 초보자도 배우기 쉽다는 장점이 있습니다. 적은 코드로 빠르게 프로그램을 완성할 수 있는데요. 특히 머신러닝 분야에서 폭넓게 활용됩니다. 단, 기계어보다는 인간의 자연어에 가까운 프로그래밍 언어 중 하나이기 때문에 실행시 속도가 느릴 수 있습니다.

PHP
오래된 게시판 사이트 대부분이 PHP로 개발되었습니다. 다만, 사이트가 커지고 보안 문제가 중요해지면 한계가 있다는 단점이 있습니다.

Swift
파이썬이나 루비처럼 간결하고 쉬운 문법이 장점입니다. 아이폰이나 맥처럼 애플에서 만들어진 기기들을 구성하는데 주로 사용됩니다.

Kotlin
구글에서 인정한 안드로이드 앱 개발 공식 언어입니다.

JavaScript
이름과 다르게 Java와는 전혀 관련이 없습니다. JavaScript는 원래 브라우저에서 돌아가도록 만들어진 언어입니다. 브라우저 화면에서 애니메이션을 보여주거나, 클릭하면 특정 브라우저의 화면으로 이동하는 등 다소 제한적인 기능을 구현하기 위해 만들어졌습니다.

자바스크립트-코딩배우기-코딩교육-패스트캠퍼스

그런데 Node.js가 등장하면서 브라우저에 한정하지 않고, 컴퓨터에서 직접 프로그램을 돌릴 수 있는 언어로 확장되었습니다. 이제는 엄연히 프로그래밍 언어 중 하나로서의 입지를 다지게 된 것이죠. 현재는 웹사이트 뿐만 아니라, PC 서버, 모바일 서비스 등 폭넓은 분야에서 활용됩니다.

개발자와 대화하는 것이 어려운 이유

프로그래머와의 커뮤니케이션이 쉽지 않은 이유는 2가지가 있습니다.

  1. 비개발자들은 개발자들이 사용하는 전문 용어를 잘 모른다.
  2. 개발자들이 스스로 사용하는 전문 용어를 잘 설명하지 못 한다.

비개발자가 원하는 기능에 대해 개발자에게 물어보면, 개발자는 개발자만의 언어로만 대답하는 것이 대부분입니다. 비개발자는 개발자의 답변을 이해하지 못하고 커뮤니케이션은 점차 미궁 속으로 빠지는 것이죠. 결국 서로 필요한 일을 하지 못한 채, 오해만 쌓이게 됩니다.

코딩배우기-코딩교육-패스트캠퍼스

그럼 디자이너나 기획자, 마케터가 개발자만큼 프로그래밍에 대해 알아야 할까요? 물론 그럴 필요는 없습니다. 단지, 식당 주인이 칼이라는 도구가 무엇인지 알고 어디에 쓰는지 안다면, 주방장의 말을 이해하는데 큰 문제가 없는 것과 마찬가지라 할 수 있습니다.


우리나라에서는 압도적으로 많이 사용하는 프로그래밍 언어인 JAVA&SPRING 강의는 어떠신가요?  다양하게 활용될 수 있어, 많은 개발자들이 사용하고, 한국에서 개발자로 취업할 때 필수인 언어입니다. <나도 할 수 있는 Java&Spring 웹 개발 종합반>은 국비지원 과정으로 무료로 수강 가능합니다. 지금 커리큘럼을 확인해 보세요.

쉽게 배우는 JAVA&SPRING 강의 커리큘럼 보러가기 ▼

Facebook Comments