'프로그래머'에 해당되는 글 3건

  1. 2014.08.04 프로그래밍은 상상이다
  2. 2014.02.03 002. 프로그래밍을 잘 하고 싶어요?!
  3. 2014.01.02 001. Language? 6
Book2014. 8. 4. 22:05

임백준의 프로그래밍은 상상이다는 2008년 한빛미디어에서 출판된 책이다.

[나름정리]

저자는 자신의 경험 및 이론을 토대로 다른 프로그래머에게 메세지를 전달하고 있다.
자신의 직무 경험을 토대로 ‘프로그래밍’에 대한 철학과 이런저런 방법론, 혹은 팁을 전달하고 있는데,
6년이나 지난 책임에도 불구하고 현재의 프로그래머들도 분명히 읽어 볼만한 가치가 있다.
프로그래머로서 실무자의 경험을 들을 수 있고 프로그래밍에 대한 철학적 개념을 읽을 수 있다면
그 자체로 이미 훌륭한 멘토를 둔 것이 아닐까…

 

[기억에 남는 것]

해커와 화가를 읽은 후에는 프로그램은 예술을 만드는 것이고 프로그래머는 예술가라는 생각을 했었다.
헌데 책 내용 중에 프로그래머는 예술품을 만드는 게 아니라 예술가(프로그램) 자체를 만드는 것이라는 표현을 봤을 때 소름이 끼쳤다..
그 표현에서 저자의 통찰력을 알 수 있었고, 그가 내 멘토가 되었으면 좋겠다고 생각했다.


Posted by 슈퍼 점프
MubCrazy2014. 2. 3. 00:53

많은 학생들이 물어보고, 물어본다.


프로그래밍을 잘하려면 어떻게 해요?

그에 따른 적절한 답을 주지 못하면 많은 이들은 엄청난 시행착오를 겪게  된다.


내게 묻는 사람들이 주로 대학생, 이제 막 프로그래밍을 시작하려는 사람들이기 때문에 

그들에게 맞는 방법을 설명하려 한다.


학생들에게 조언을 해주고 수 많은 Case 중 가장 좋은 방법은 바로

'따라하기'이다.


어떤 종류이건 자신이 학습하고 싶은 분야를 정하고,

기존에 있는 것을 똑같이 Copy 하는 것이다.


즉 그 수준의 학생들에게 '안드로이드를 잘 하려면 어떻게 해야해요?'라는 질문을 받는다면,

너 C할줄 알지? 자바는? 자료구존? 뭐 이런거 다 확인하고나서

그럼 이 책 사서 따라해봐 라는 솔루션 보다는.


목표로 한 프로그램, 서비스, 어플 따위를 설정하고 똑같이 Copy 하는 것이 가장 빠르게 늘 수 있는 방법이다.


물론 체계적으로 배우면 좋겠지만, 그렇게 끌고가면 아무도 따라오지 못한다.

더 정확히 말하면 질문자에게 필요한 것은 체계적인 학습보다, 직접 빌드해서 만들어보는 것이 훨씬 더 중요하다.

그게 프로그래밍에 더 빨리 친해지고, 자신감을 갖을 수 있는 방법이다.


대게는 그렇게 구현에 초점을 맞춰 공부를 하게되면 학교에서 전산 관련 과목이 왜 필요한지 스스로 깨닫게 된다.

학교에서 배우는 전공 '자료구조', '논리회로', '알고리즘', '운영체제', '이산수학', '선형대수','데이터통신' 등등의

필요성과 중요함을 스스로 깨닫고, 다시 공부를 하기 때문이다.


부가적으로 이렇게 '따라하기'를 하다보면 SW관련 안목도 올라갈 수 있다.

새로운 서비스나 프로그램을 접할 때 단순히 사용만 하는 것이 아니라

신기하게 느껴서 "이건 어떻게 구현한 거지?" 라고 생각할 수 있는 기회를 갖을 수 있고,

그 차이는 더 많은 학습의 기회를 제공할 수 있기 때문이다.



Posted by 슈퍼 점프
MubCrazy2014. 1. 2. 23:58

중학교 때 유난히 컴퓨터에 관심이 많았던 나는 또래들이 컴퓨터로 할 수 있는 거의 모든 것을 다 했다.

PC통신, 인터넷, PC게임, 온라인게임, 포토샾은 물론 AutoCAD 까지 할 수 있었다.


그러다 바람에 나라에 빠졌는데 칠지도가 갖고 싶었다.

돈 없고, 게임할 시간도 부족한 학생 때라 칠지도는 말 그대로 꿈의 아이템이였다.

우연히 PC통신 게시판에서 'PC방에서 바람의 나라를 했는데, 해킹당해 칠지도를 잃어버렸다'라는 내용의 글을 보게됐고,

그 뒤로 아무것도 모른채로 야후에 해킹이라고 검색을 했었다.


15살의 나이에 인터넷에서 다운로드 받은 출처가 정확하지 않은 Hwp문서로 

리눅스 구조를 공부했었다. 커널이 뭔지.. 이게 내게 칠지도를 갖다줄 수 있는 것인가?!


리눅스를 깔아보지도 못한 채 글로만 리눅스를 읽었다.

당시에 리눅스 설치는 매우 어려웠다. 

우분투는 커녕 리눅스 설치 CD를 구하려면 서점에서 3~4만원 정도의 책을 구입했어야 했다. 

헌데 그마저도 설치가 쉽지 않았다.


그렇게 공부를 하다보니 "C언어를 알아야 리눅스를 제대로 할 수 있고, 해킹을 제대로 할 수 있다"라는 인터넷 글을 보게된다.


허허 C언어는 무엇인가? 영어는 커녕 한국어도 잘 못하는데,

그러다 동네 형을 통해 C언어 뿐만 아니라 C++이라는 것도 있다는 것을 알게 된다.


뭔가 덧셈 다음엔 뺄샘을 배우듯 C -> C++ 이 순서대로 공부해야 하는 건가?


그러다 그 형에게 질문을 한다.

"형 전 C언어가 뭔지도 잘 모르는데 C+이나 C++을 해도 될까요?"

내가 SW에 대해 질문한 첫번째 멍청한 질문이었다.


뒤로 대학을 컴퓨터 교육과로 입학해서 Programming에 관심을 갖고,

교수님을 찾아간다.

"교수님, 전 C를 해야 하나요? 그 다음에는 C++과 JAVA중 뭘 해야하죠?"

두번째 멍청한 질문...


지금 내가 예전에 그랬던 것 처럼 수많은 대학생 및 SW Programmer를 꿈꾸는 사람들에게 질문을 받는다.

"C# or JAVA or C++"


이런 웃지 못할 상황은 왜 일어날까?

바로 C'언어'라는 표현 때문은 아닐까?


대게 많은 사람들이 컴퓨터 언어를 마치 외국어처럼 생각하는 것은 아닌가!!!

영어, 중국어, 불어, 독어, 일본어 뭐 이런것 처럼 말이다.

이 기세를 몰아 대한민국의 SW Programming 관련 기초서적은 모두 '언어'기반으로 나오게되니 당연한 결과이다.

나 조차 그렇게 생각했었고, 많은 사람들이 아직도 그렇게 생각하니 말이다.


그림에 비유해 Programming을 설명하자면, Language는 연필이고 붓이다.

그림을 잘 그리느냐 못그리느냐의 차이는 화가(프로그래머)에 의존하는 것이지 연필이나 붓과는 큰 관련이 없다.

막상 어떤 언어를 선택하는냐는 별반 차이가 없다는 것이다.

(사실 그림보다는 문학작품이 더 적절한 비유 대상이다.)


연필로 캐리커쳐 잘 그리는 화가가 매직으로 못그릴리가 없다.

다만 동양화를 그리는데 포스터용 붓을 준다면 그리기 힘들 것이다. 

컴퓨터 프로그래밍 언어란 그런 것이다. 웹을 C로 짤 수 없는 것 처럼...


화가가 되려면 그림연습을 해야지, 연필을 잘 깍는다고, 팔레트에 색을 잘 섞는다고 그림을 잘 그릴 수 있는게 아니듯,

프로그래머가 되려면 프로그래밍을 해야지 

언어 사용법이 전부인, 그 조차 if문과 for문에 대해서 절반이상 다룬 책을 공부한다고 좋은 프로그램을 만들 수 있는게 아니다.


어떤 언어를 선택하는데 시간을 보내기보다는,

뭐라도 하나 선택해서 머리속에 그것을 모니터 위로, 스마트폰 위로 끄집어 내는 것이 가장 중요한 것 같다.

마치 거진 모든 C언어 책에서 "Hello World"를 첫 예제로 하듯이 말이다.







Posted by 슈퍼 점프