오늘 하루를 보내면서 얼마나 많은 프로그램을 만났을까? 핸드폰, 이 안의 수많은 앱들, 텔레비전, 세탁기, 냉장고, 자동차, 편의점 등 상점의 포스, 엘리베이터, 지하철, 광고판, 인터넷, SNS 등 프로그램 없는 삶은 거의 불가능하다.
"4차 산업 혁명의 등장과 더불어 우리는 프로그래밍 기술이 더는 선택이 아니라 필수인 시대에 살고 있습니다. 모두가 프로그래머가 될 필요는 없지만, 적어도 프로그래밍의 개념이 우리의 일 혹은 일상과 어떻게 융합되는지를 알아야 하는 시대가 온 것이죠." <<혼자 공부하는 첫 프로그래밍 with 파이썬>>(문현일 지음, 한빛 미디어)
“산업혁명의 동력은 수학이었다. 4차 산업혁명에선 코딩이 수학과 같은 역할을 할 것이다.” ([출처: 중앙일보] [취재일기] 영국 초등생의 코딩 교육이 무서운 이유).
지금보다 앞으로는 더 많이 새로운 기술 습득 능력이 필요하다.
"제4차 산업혁명에서는 기술혁신의 빠른 진보 때문에 노동자가 지속적으로 적응해나가며 새로운 능력을 배우고 다양한 문맥 안 해서 접근할 수 있는 능력을 구축하는 것이 더 중요하다" <<클라우스 슈밥의 제4차 산업혁명(클루우스 슈밥 지음, 송경진 옮김, 새로운 현재)
어떤 분야든 낯선 분야에 입문하기란 쉽지 않다. 사람과 대화하는 외국어를 배우는 것도 쉽지 않은데, 컴퓨터와 대화하는 건 더 쉽지 않다. 프로그램 언어뿐만 아니라 그 외 컴퓨터 작동 원리, 적용된 기술 등 알아야 할 것들이 많기 때문이다. 이 프로그래밍은 왜 하는지, 어떻게 동작해야 하는지, 어떤 방식으로 설계하고 구현해야 하는지, 다른 사람과 함께 작업한다면 어떻게 해야 하는지 등에 대한 고민도 함께 해야 한다.
생각하는 패턴도 바꾸어야 한다. 컴퓨터에게 일을 시켜야 하기 때문에 '묻지도 따지지도 말고'가 아닌 모든 상황에 대해 다 고려해야 한다. 말하지 않아도 알 수 있지 않다.(머신 러닝은 제외하고...). 이런 이유로 ‘프알못(프로그래밍을 알지 못하는 사람)’은 프로그래밍을 배우기 쉽지 않다.
직장의 조직 리더가 이런 말씀을 하셨다.
"소프트웨어는 컴퓨터에게 글로써 업무 지시를 하는 것이다. 컴퓨터는 고지식하다. 합리적으로 논리적으로 지시를 해야 한다. 어떻게 쓸지 구상하고 리뷰하고 논리적인 빈틈이 없는지 돌아볼 필요가 있다."
이 어려운 진입 장벽을 그나마 조금 낮춰주는 책과 유튜브들이 많이 나왔다. 한빛 미디어에서 '혼자 공부하는' 시리즈를 내고 있는데, <<혼자 공부하는 첫 프로그래밍 with 파이썬>>(문현일 지음, 한빛미디어)가 그중 하나다.
이 말에 한빛 미디어는 이렇게 대답한다.
프로그래밍 시작할 때 처음 접하는 프로그래밍 언어도 중요하다. 보통 처음 C 언어나 자바로 프로그래밍을 많이 시작한다. 이 언어들은 초보자에게 결코 쉽지 않다. 이 책의 저자는 혼자 프로그래밍을 시작한다면 파이썬을 추천한다. 파이썬은 "어차피 배워야 하는 프로그래밍이라면 쉽고 빠르게 배워 잘 활용하기 좋은" 언어이기 때문이다.
파이썬은 1990년 네덜란드 출신의 컴퓨터 프로그래머인 귀도 반 로섬이 만든 언어다. 파이썬(Python) 이름은 원래 피톤(Python)으로 그리스 신화에서 그리스 중부의 파르나소스 산 남쪽 기슭에 있는 델포이의 신탁소를 지배하였던 큰 뱀이다. (출처: 위키피디아). 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있다.
프로그래밍 처음 배울 때 'Hello world'부터 배운다. C와 자바, 파이썬 세 언어로 짠 'Hello World'를 비교해보면 어떤 언어가 간결하고 쉬운지 금세 알 수 있다. 요즘 머신러닝과 관련해 인기 있는 프로그램인 텐서플로, 넘파이, 판다스 등도 파이썬으로 작성되었다.
다른 블로그에는 파이썬이 쉬운 이유를 이렇게 소개한다.
"프로그래밍이란 컴퓨터에 인간이 생각하는 것을 입력시키는 행위라고 할 수 있다. 앞으로 살펴볼 파이썬 문법들에서도 볼 수 있겠지만 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있도록 해 주는 언어이다. 따라서 프로그래머는 굳이 컴퓨터식 사고방식으로 프로그래밍을 하려고 애쓸 필요가 없다. 이제 곧 어떤 프로그램을 구상하자마자 생각한 대로 쉽게 술술 써 내려가는 여러분의 모습에 놀라게 될 것이다. 아래 예문을 보면 이 말이 쉽게 이해될 것이다.
if 4 in [1,2,3,4]: print ("4가 있습니다")
위의 예제는 다음처럼 읽을 수 있다.
"만약 4가 1,2,3,4중에 있으면 "4가 있습니다"를 출력한다."
프로그램을 모르더라도 직관적으로 무엇을 뜻하는지 알 수 있지 않겠는가? 마치 영어문장을 읽는 듯한 착각에 빠져든다. (출처: https://ghgus0702.tistory.com/9 [hohyunera])"
저자는 가장 오래된 언어인 C도 아니고 취업 시장에서 가장 인기 있는 자바도 아닌 파이썬을 택한 이유를 다음과 같이 설명한다.
당장 사라질 언어가 아니고 많은 사람이 쓰고 있기 때문에 문제 해결에도 도움이 됩니다.
문법이 쉽고, 가독성이 뛰어납니다.
빠르고 느림을 고려할 때 프로그램 실행 속도뿐만 아니라 프로그램 개발 속도도 고려해야 하며 최근 후자의 중요성이 점점 부각되고 있습니다.
다른 언어의 장점과 파이썬의 장점을 섞어 쓰기 좋습니다.
"인생은 짧아요. 그래서 파이썬이 필요해요 (Life is short. You need Python)" (브루스 에켈)
학습 로드맵을 보면 개발 환경, 데이터, 연산식, 변수, 조건식, 데이터 세트, 반복 등 프로그래밍에 필요한 내용들이 다 들어있다.
이론을 실 생활 예제를 통해 설명하고 눈 코딩으로 프로그램을 눈으로 보고 내용을 익히게 하고, 그다음 직접 손 코딩하게 한다.
각 장별로 '키워드로 정리하는 핵심 포인트'로 앞의 내용을 정리해주고 확인 문제를 통해 잘 이해했는지 확인하게 한다.
가장 인상적인 부분은 조건식에서 순서도에 대한 설명이다. "일기 예보를 믿고 우산을 가지고 나가려니 왠지 비는 내리지 않을 것 같고, 안 가지고 나갔는데 혹시 비가 내리면 어떡하지?"라는 상황을 프로그램으로 작성해가는 순서를 설명한다.
1단계: 선택 가능한 모든 대안을 확인합니다.
-우산을 가져간다.
-우산을 가져가지 않는다.
2단계: 대안을 선택하는 판단 기준이 무엇인지 확인합니다.
"햇볕이 쨍쨍해 비가 올 것 같지 않지만 오늘은 중요한 면접이 있으니까 일기 예보를 믿고 우산을 챙겨가야겠다.
-증요한 일정이 있으니까 우산을 가져간다.
-중요한 일정이 없으니까 우산이 없어도 된다.
"이처럼 프로그래밍에서는 선택의 판단 기준이 되는 조건식을 만들고, 각 조건식의 결과(예/아니오)에 선택 가능한 대안을 연결해주는 것으로 선택의 과정을 처리해요. 이러한 방식의 프로그램 흐름을 선택 구조 또는 조건문이라고 합니다."
상황을 분석해서 명확한 논리적 조건으로 분리하고 각 조건에 대한 결과마다 어떤 action을 해야 하는지 결정할 줄 아는 능력이 바로 문제 해결 능력이다. 쉬운 설명을 보며 하나씩 따라가다 보면 조금씩 이해할 수 있게 된다.
물론 아무리 잘 쓰인 책이고 설명이 쉬워도 낯선 분야는 쉽지 않다. 그래도 지루하고 어려운 내용보다는 쉽게 이해하고 따라 해 볼 수 있다면 그다음 단계를 시도해볼 수도 있고, 그런 시간이 축적되면 일단 뇌 회로가 강화되고, 기억을 되살려 작업을 하다 보면 그게 실력이 아닐까 한다.
"우리는 무언가를 배울 때 뇌에 이미 형성된 회로를 이용한다. 그래야만 새로운 연결을 추가할 수 있기 때문에다. 이미 존재하는 회로를 활성화하면 그것은 우리가 배우려고 하는 새 주제에 매우 밀접하게 연결될 것이다. (중략) 새로운 것을 배웠다는 것은 새로운 신경 회로를 만들었다는 것이다. 배우고 기억한 모든 지식은 뇌의 기존 회로를 수정할 뿐 아니라, 뇌의 하부구조에 길을 만든다. 의식적인 인식을 통해 우리는 새롭게 형성된 회로에 생명을 부여하고, 그에 대응하는 마음 상태를 만들 수 있다." (출처: <<꿈을 이룬 사람들의 뇌>>(조 디스펜자 지음, 김재일, 윤혜영 옮김, 한언)
프로그래밍도 글쓰기와 다르지 않다. 무엇을 쓸지 정하고, 논리에 맞게 구성을 하고, 이에 따라 써내려 가는 것이다. 논리의 허점이 없는지 리뷰하고, 의도한 바가 제대로 전달되는지 확인해야 한다. 잘 쓴 글을 따라 필사하듯이 소스 코드를 따라 치다 보면 실력이 는다. 세상 어떤 일이든 배우고 실력을 키우는 일은 다 비슷한 과정을 거치기 마련이다.
* 이 책은 한빛 미디어의 나는 리뷰어다 활동으로 출판사로부터 제공받았으나 내용은 제 주관적인 의견입니다.