우리는 늘 배워야 한다. 삶은 언제나 우리를 가르치기 때문이다. 무엇이든 꾸준히 오래 하면 전문가가 된다. 문제는 우리가 아주 오랜 시간을 살지 못한다는 것이다. 당신은 파이선 프로그래밍 언어를 배우러 이곳을 방문했다. 축하한다. 당신은 길을 제대로 찾았다. 생각해 보라. 당신에게 파이선을 가르치는 사람이 글을 잘 쓰고, 마라톤 풀코스를 여러 번 달리고, 개발자며, 회사 대표이고, 대학생을 가르치는 사람이고, IoT(사물인터넷) 전문가, 플루트를 연주하고, 그림을 그리는 사람일 확률은 거의 제로에 가깝기 때문이다. 당신은 지금 충분히 옳다.
프로그래밍이란 무엇인가, 리얼 파이선 01
파이선 언어를 배우는 데 있어 가장 안전하고 확실하고 빠른 길을 찾은 것이다. 돈을 버는 방법은 부자에게서 배워야 하고, 축구는 공 만드는 사람이 아니라 축구 선수에게서 배워야 하고, 프로그래밍은 프로그래머에게 배워야 한다. 그것도 아주 훌륭한 프로그래머에게 배워야 한다. 동네에서 잘하는 수준의 사람에게 배우면 동네에서 잘하는 수준이지만, 적어도 전문가에게 배우면 당신도 더 빨리 전문가가 될 수 있는 확률이 높아진다.
당신이 프로그래밍 언어를 배우는 순간, 설명하자면 수많은 프로그래밍 언어와 코딩을 배우고, 프로그래머가 되기 위해 착실히 코드를 입력하는 순간 당신은 모든 직업을 가진 사람으로, 모든 역할을 하는 사람으로 생각해야만 한다. 당신이 프로그램 언어를 배우는 순간 당신은 건축가, 음악가, 예술가, 작가, 군인, 화학자, 물리학자, 수학자, 경영자, 목수, 요리사다. 당신이 프로그래밍을 배우는 순간 당신은 회사 대표이며, 영업사원, 돈을 빌려오는 사람, 채용 담당자, 공장을 책임지는 사람, 로봇을 수리하는 사람, 컴퓨터를 만드는 사람, 물건을 포장하고 배송하는 사람, 공장에서 물건을 생산하는 사람, 건물을 설계하고 다리를 건설하는 사람, 드론을 날리고, 3차원 그림을 그리는 사람, 파이(π)의 소수점 1억짜리 까지 단 시간에 뽑아내는 사람, 환경을 걱정하며, 애완동물을 사랑하고, 키보드를 가지고 전투를 벌이는 전사다. 프로그래머는 그런 사람이다.
프로그래밍 언어를 구성하는 코드, the Code 자체가 하는 일은 아무것도 없다. 암호도 아니고 그림도 아닌, 단지 알파벳 문자가 줄지어 나란히 배치된 코드가 무슨 일을 하겠는가? 코드 자체는 이진수 0과 1의 조합이다.
코드란...
- 메시지를 전송할 때 숫자와 글자를 나타내기 위해 사용하는 신호의 체계
- 비밀이나 간결함이 요구되는 메시지를 전송하기 위해 사용하는, 임의의 특정한 의미를 부여한 기호, 문자, 단어의 체계
- 컴퓨터에게 내리는 명령어를 나타내는 데 사용하는 기호와 규칙의 체계
그러니까 C 언어나 파이선을 잘 안다는 것은 사실 의미가 없다. 그것들이 프로그래밍이라는 건전하고 지긋지긋한 작업을 거쳐 문제를 해결하고, 편리함을 주고, 시간을 절약하고, 돈을 벌게 해 주는 일을 할 때 언어가 가치를 발휘하고 막강한 능력을 나타낼 뿐이다.
흔히 소프트웨어를 배우는 목적은 논리적 사고를 키우는 일이라고도, 창의력을 키운다고도, 교육 환경이 변해 컴퓨팅 사고를 하기 위해서라고 말한다. 다 집어치워라. 그런 것들이 언어를 배우는 목적이라면 차라리 영어나 스페인어를 배울 일이다. 소프트웨어, 코딩, 프로그래밍 등 어떤 단어로 표현해도 우리가 코드를 짜는 방법을 배우는 이유는 하나다. 바로 '자동화'다. 컴퓨터로 처리하는 대부분의 일은 다 자동화와 관련이 되어있다. 인터넷 환경이 그렇고, 게시판과 세무 프로그램, 배경을 지우는 일, 영상에서 음악을 뽑아내는 것까지 자동화할 수 없는 일은 컴퓨터가 하지 않는 일이다. 자동화할 수 있는 일을 찾고, 자동화하기 위해 아이디어를 내고, 자동화하는 프로그램을 짜는 일이 우리가 할 일이다. 현재 그런 일을 가장 잘하는 프로그래밍 언어는 파이선으로 알려져 있다.
파이선은 간결하고, 일기 쉽게 프로그램을 작성할 수 있다. 파이선 프로그램은 여러 가지 이유로 같은 기능을 하는 C, C++, Java와 같은 프로그래밍 언어들에 비해 간결하고 배우기 쉽다. 복잡한 연산 문제를 한 문장으로 쉽게 해결이 가능하고, 실행 문장 묶음을 괄호 대신 들여 쓰기 Indentation를 사용하며, 변수나 다른 함수에 전달해주는 인자의 선언이 필요 없다. 파이선은 확장이 무시무시할 정도로 넓게 적용된다. 특히 사람과 친한 문장을 사용하고, 문자 연산이나 인공 지능, 수학, 지리, 웹을 지원하는 라이브러리나 모듈, 패키지가 아주 많다.
리얼 파이선 강의에서 당신은 진짜 파이선을 배울 것이다. 코드가 일을 어떻게 하는지 보고, 어떻게 코드에게 일을 시킬지 고민할 것이다. 지금 우리가 집중할 것은 관습적인 코딩 규칙도 아니고, 이진수도 아니고, 작거나 큰 인디언도 아니고, 주석 작성법도 아니고, 언어의 역사도 아니다. 즉시 활용할 수 있는 언어, 결과를 통해 우리가 원하는 일을 하는 코드, 에러 없이 잘 돌아가는 코드를 배울 것이다. 기대해도 좋다. 모든 게 당신 것이다. 그리고 무료다.
당신은 개발자가 아니다. 당신은 프로그램을 짜고 소프트웨어 프로그램을 개발하는 일로 급여를 받는 사람도 아니다. 그냥 당신은 소프트웨어가 무엇인지, 코드를 짜려면 어떻게 짜야하는지, 코드를 사용해 당신이 원하는 일을 어떻게 해야 되는지를 배우고 싶은 사람일 뿐이다. 그러니 다 잊어라. 양식, 규칙, 규격, 주석도 달지 마라. 모든 것을 다 잊어라. 지금은 코드에 집중하라. 어떤 위치에 어떤 알파벳을 써야 코드가 실행되는지, 규칙은 무엇인지 거기에만 신경 써라. 달리기는 달리기로 배울 수 있고, 글쓰기는 글쓰기로 배울 수 있다. 프로그래밍은 사고와 타이핑으로 배울 수 있다. 아직은 머리로 배울 때가 아니라 손과 엉덩이로 배워야 한다. 지치거나 포기하지 말고 끈기를 가져야 한다. 적어도 1만 줄 정도의 프로그램을 이해하고 실행시켜 보면 모든 것을 이해한다. 일반 용어와 전문용어, 소프트웨어 개념을 알아가고, 중요한 것이 무엇인지 알아보는 눈을 갖게 되고, 무엇보다 세상을 멀리서 흐릿하게 보는 게 아니라 가까이에서 또렷하고 선명하게 볼 수 있게 된다. 한층 넓어진 시야와 사고는 우리가 세상을 살아가는데 많은 도움을 준다.
주옥같은 말은 앞으로 계속하기로 하고 닻을 올리고, 돛을 펼치고 시작하자. 당신은 소프트웨어의 소 자도, 프로그래밍의 프 자도, 코딩의 코 자도 모르는 사람이라고 치고 시작하자.
우리가 프로그래밍 언어를 배운다는 의미는 변수, 연산, 제어, 함수(Variable, Operation, Control, Function)를 배우는 것이다. VOCF 네 가지를 어떤 규칙에 따라, 어떤 구문과 형식으로 적절한 예약어(reserved word)를 늘어놓아야 제대로 에러 없이 실행되는지를 배우는 일이다.
예절 바른 사람이 되려면 예의바른 말을 외우고 예의바른 행동을 그대로 따라하면 된다. 프로그램을 잘 짜려면 예제를 그대로 타이핑하고 외우면 된다. 외워라. 모든 프로그래밍 언어를 배운다는 것은 변수, 연산, 제어, 함수를 프로그래밍 언어가 제공하는 예약어 reserved word를 정해진 형식에 맞춰 적재적소에 배치하는 일이다. 언어마다 각기 다른 배치하는 형식과 규칙은 실제로 한 줄 한 줄 코드를 타이핑하고 실행하는 과정과 결과를 보면서 이해해야 한다. 그리고 자기 것이 되면 그때부터는 자유다. 원하는 대로 코드를 짜고, 원하는 일을 컴퓨터에게 시킬 수 있고, 보다 많은 일을 자동으로 처리할 수 있을 것이다.
다음 시간에는 파이선에 대해 간략하게 알아보고 파이선을 배우기 위한 실습 환경을 만들어 보도록 하자. 구구절절한 이론은 필요 없다. 걷다 보면 어디로 가는 지 알게 된다. 일단 시작한다. 달리면서 목적지를 바꾸고 방향을 바꾸고, 속도를 조절한다. 멀리서 보면 아무것도 보이지 않지만 가까이 다가갈 수록 사물과 상황은 그 본 모습을 드러낸다. 한 걸음씩 앞으로 나아가자.
참고
'개발자 > 파이썬 Python' 카테고리의 다른 글
파이선 연산 리얼파이선 6 (0) | 2022.01.26 |
---|---|
파이선 변수. 리얼파이선 5 (0) | 2022.01.26 |
파이선의 간략한 소개. 리얼파이선 4 (0) | 2022.01.24 |
파이선에 대해 알아야 할 것, 리얼파이선 2 (0) | 2022.01.20 |
일정 간격으로 함수를 반복 실행하는 방법 python (3) | 2020.11.12 |
마이크로 컨트로러 개발에 최적화 된 Adafruitd의 CircuitPython (0) | 2020.11.10 |
ValueError: Unknown format code 'f' for object of type 'str' (0) | 2020.11.07 |
티스토리 글올리기 API (2) | 2020.01.13 |
더욱 좋은 정보를 제공하겠습니다.~ ^^