초보자를 위한 프로그래밍 명언
목차
크리스 파인 – Learn to program 의 저자
“Programming isn’t about what you know; it’s about what you can figure out.”
Chris Pine
프로그래밍은 무엇을 알고 있는가에 대한 것이 아니다. 그것은 당신이 무엇을 알아낼 수 있는 가에 대한 것이다.
크리스 파인
이는 초보자들이 귀기울여야 할 내용입니다. 처음 프로그래밍을 배우기 시작하면 문법적인 지식에 대한 모든 것을 알기를 원합니다. 예를 들어 파이썬을 배우기 시작하면 파이썬 교재의 진도를 나가는 것을 목표로 합니다.
그러나 마지막에 우리가 필요로 하는 것은 문제해결능력입니다. 파이썬을 배웠는가는 중요하지 않습니다. 파이썬으로 무엇을 해낼 수 있는가에 초점을 맞춰야 합니다.
프로그래밍을 하면서 목표를 가져보세요. 아래는프로그래밍으로 할 수 있는 예시입니다.
- 웹사이트 만들기(웹서비스)
- GUI 프로그래밍
- 업무 자동화 프로그램 만들기
- 게임 만들기
- 나만의 검색엔진 만들기
- 이미지 프로세싱 프로그램
- 미디어 플레이어 만들기
- 모바일 앱 만들기
- 머신러닝 하기
- 시스템 유틸리티 만들기
- 사물 인터넷 만들기
- 웹 스크레이퍼 만들기
- 해킹하기
- 네트워크 프로그래밍 도구 만들기
찾는 것이 있다면 자신 스스로 문제를 정의하세요. 예를 들어 의사가 사용하는 프로그램, 변호사가 사용하는 웹사이트를 만들고 싶다면 그들에게 무엇이 필요한지 알아보고 목표를 정하세요.
프로라면 회사에서 시키는 혹은 외주를 받아 프로그램을 작성할 것입니다. 타인이 주는 목표도 중요합니다.
그러나 학습 초기에는 프로가 아니므로 스스로 목표를 찾아야 합니다.
무엇을 하겠다고 결심하면 그것이 자신의 프로젝트가 되는 것 입니다. 목표를 문법으로 정하면 언젠가 한계가 찾아옵니다. 목표는 무엇을 알아낼까? 무엇을 구현할까에 초점을 맞춰 보세요. 문법만 공부하는 것에 비하여 빠르게 실력이 늘 것입니다.
물론 그렇다고 문법을 소홀히 하라는 이야기는 아닙니다. 기본적인 문법과 알고리즘을 알아야 문제를 해결할 수 있겠죠?
데니스 리치 – C언어의 창시자
“The only way to learn a new programming language is by writing programs in it.”
Dennis Ritchie
새로운 프로그래밍 언어를 배우는 유일한 방법은 그 언어로 프로그램을 만드는 것이다.
데니스 리치
데니스 리치가 동료 커니핸과 저술한 튜토리얼 가이드인 The C Programming Language 의 글 입니다.
이는 크리스 파인의 명언과도 같은 맥락입니다. 그가 C언어를 창시했기에 더 신뢰감이 가는 말입니다.
프로그래머들은 대부분 시행착오를 통해 프로그래밍을 배웁니다. 아무리 좋은 코딩수업을 듣거나 다른 사람의 코드를 보더라도 내것이 되지 않습니다.
프로그래밍을 배우는 유일한 길은 지금 당장 텍스트 에디터를 열어 실행과 실패를 반복하는 것 입니다.
국내에서 많이 보는 코딩도장에서도 비슷한 말을 합니다.
“프로그래밍은 공부가 아닙니다. 연습입니다”
책을 열심히 보는 것은 중요하지 않습니다. 코드를 입력하여 실행하고 실행 결과에 대한 피드백을 하는 과정이 더 중요합니다.
처음에는 print(“Hello World”) 에서 시작하지만 나중에는 웹사이트도 만들고 윈도우 프로그램도 만들게 됩니다. 이는 책을 읽어서 된게 아니라 코드를 한줄이라도 직접 입력해서 컴퓨터의 명령어를 실행시킨 결과입니다.
데니스 리치는 사람들이 C언어를 어떻게 사용할 것인가에 초첨을 맞춰서 C언어를 개발했습니다. 결과적으로 이 세상 모든 사람들이 C언어의 혜택을 보고 있습니다.
C언어를 만들어서 무료로 나누어 준 것이죠. 물론 그도 C언어를 UNIX 를 개발하는데 사용했습니다.
앤드류 헌트 – The Pragmatic Programmer 의 저자
“In some ways, programming is like painting. You start with a blank canvas and certain basic raw materials. You use a combination of science, art, and craft to determine what to do with them.”
Andrew Hunt
어떤 면에서 프로그래밍은 그림그리는 것과 같다. 당신은 특정한 기본 재료들과 하얀 캔버스에서 시작한다. 그것들을 가지고 무엇을 할지 결정하기 위해서 당신은 과학, 기술, 기예의 조합을 사용한다
앤드류 헌트
앤드류 헌트(Andy Hunt 라고도 부른다)는 8개의 가장 영향력있는 프로그래밍 책인 실용주의 프로그래머의 저자입니다.
초보자는 프로그래밍 언어 자체를 배우려고 하지만 그것은 raw material 에 불과합니다. 우리가 원하는 것은 완성된 그림 즉 완성된 프로그램입니다.
그의 말을 빌리면 프로그래밍 언어는 그림을 그리는 도구인 붓, 물감에 비유할 수 있습니다. 라이브러리와 프레임워크는 좀 더 자동화된 툴이죠.
하나의 완결된 프로그램을 만들기 위해서는 언어의 문법, 알고리즘, 라이브러리, 프레임워크 때로는 마케팅 기법까지 조합합니다.
프로그래머로써 당신은 무엇을 할 것인지 결정하기 위해 이것들을 사용합니다.
물론 프로그램은 그림을 그리는 일보다 복잡한 일입니다. 캔버스가 너무 크기 때문에 여러사람과 팀을 이루어서 작업을 하는 일은 흔하고, 그림과 달리 프로그램을 출시한 이후에도 유지보수 작업을 해야합니다.
오래된 그림은 가치가 더해가지만 오래된 프로그램은 언젠가 새로운 버전으로 업데이트 하거나 교체되야 합니다.
하지만 그 프로그램을 만들기 위해 하는 일은 사람이 도화지에 그림을 그리기 위해 하는 것과 비슷하다는 말입니다.
드롭박스의 창업자 드류 휴스턴도 비슷한 말을 한적이 있습니다.
“프로그래밍은 악기 연주와 같다. 연습을 더 많이 할 수록 하나의 완결된 음악이 된다”
프로그래밍은 딱딱한 무엇인가 같지만 숙련된 프로그래머의 코드에는 개인의 예술성이 담겨있습니다.
프로그래밍 언어를 해석하고 실행하는 것은 기계(Machine)지만 프로그래밍은 인간이 하는 것이기에 기본적인 철학과 예술성이 들어갑니다.
오늘날 오픈소스 운동이 널리 퍼져서 많은 사람들이 무료 소프트웨어를 사용하거나 혹은 오픈소스 개발도구를 사용해서 가치를 얻으며 살아가고 있습니다.
자유정신도 하나의 철학이며 이것은 오랜 기간 프로그래밍이란 그림을 그리는 사람들이 창조한 정신적 창조물입니다. 우리는 그 혜택을 누리고 있는 것입니다.
결론
초보자를 위한 프로그래밍 명언은 최대한 많이 들을 수록 좋습니다. 컴퓨터 모니터에 써붙여도 좋습니다. 하지만 너무 명언이 많으면 혼란 스럽기만 하고 기억이 잘 나지 않으니까 세가지만 적어뒀습니다.
프로그래밍은 생각의 방향을 바꾸는 일입니다. 지금까지 무심코 사용했던 컴퓨터, 노트북, 스마트폰에 대한 모든 생각이 바꾸는 과정입니다.
초보자를 위한 프로그래밍 명언은 사고를 전환하는데 많은 도움이 됩니다.
외부참조문서
Learn to Program, by Chris Pine
Dennis Ritchie Home Page (bell-labs.com)
The Pragmatic Programmer, 20th Anniversary Edition