2008년 3월 13일 목요일

시작하는 후배들을 위하여..

자람 18기 문병원(tasyblue@gmail.com)


작성일 : 2007년 3월 31일


수정일 : 2008년 3월 12일


처음 이 세미나를 기획하면서 여러가지 생각들을 했습니다. 어떻게 하면 그들의 생각에 전환을 줄 수 있을까. 어떻게 해야 스스로의 열정을 느낄 수 있게 할지. 그러다 문득 든 생각이 있습니다. "우리들이 지금까지 보아온 수 많은 명언들, 그리고 다양한 종류의 위대한 책들. 그런 것들을 수 없이 접했어도 일어난 변화가 이 정도라면, 우리에게 영향을 줬던 그 무언가에 문제가 있는 것이 아니라. 바로 우리 자신이 문제였던게 아닐까" 하는 생각입니다.

제가 어떤 이야기를 해도, 어떤 행동을 보여도 여러분께 끼칠 수 있는 영향은 미약하기 짝이 없을 것입니다. 결국 받아 들이는 것은 개인이니까요. 이건 단순히, 체념적인 생각이 아니라. 어떤 일을 시작할 때, 그 한계를 파악하는 것이라 생각합니다. 비관적으로 들리더라도 전 이렇게 생각합니다. 오늘 내가 이 앞에 앉은 이들의 삶을 바꿀 수는 없는 것이라고.

하지만, 지금 이 글을 작성하는 제 마음에는 내 생각과는 다른 감정으로 가득합니다. 우리는 우리를 바꿀 수 있고, 우리는 다른 이들을 변화하도록 도울 수 있습니다. 그리고 우리는 주변을 행복하게 하고, 더 나아가 세상을 행복하게 할 수 있습니다. 그 시작은 미약한 변화를 일의키는 단 하나의 행동이며, 결국 어떠한 시도도 무모하거나 의미 없는게 아니라고 생각합니다.

진부한 말이라도, 이미 알고 있는 것이라도. 그것이 좋은 길이라면, 그것이 바른 것이라면 서로 상기시키고 함께 해야 한다고 생각합니다.

제가 앞으로 이야기 하고자 하는 것들은 그렇게 진부하기도 하고, 어떻게 보면 의미 없는 이야기지만 여러분께 지금 이순간 제가 드리고 싶은 진심입니다.

이번 기회를 통해, 이렇게 만나게 되어 반갑고 짧은 시간이지만 서로에게 의미있는 시간이 될 수 있기를 기대합니다.

Computer Science and Engineering


한양대학교 전자전기컴퓨터공학부를 선택하는 순간, 그리고 자람이라는 학회를 선택하는 순간, 여러분의 공부는 전산에 어느 정도 이상씩 관련된다. 지금 여기서 알아볼 전산에 대한 공부는 그 기초가 되는 전산을 알아보기 위함이다.

일단 우리는 뭉뚱그려서 전산학이라고 말하는 우리가 선택한 전자전기컴퓨터공학부에서 컴퓨터공학부에 해당하는 학문은, 그 구별을 크게 컴퓨터 사이언스와 소프트웨어 엔지니어링으로 나눌 수 있다. 여기서 말하는 구분은 내 생각일 뿐이며, 여러분들의 이해를 돕기 위해 임의로 구분한 것이라는 것을 일단 전제하려고 한다.

컴퓨터 사이언스(Computer Science)는 물리학이나 화학, 생물학과 마찬가지로 컴퓨터를 구성하는 원리나 컴퓨터를 이용하여 작동되는 다양한 프로그램들에 대해서 연구하는 학문이다. 필연적으로 학술적인 성격을 많이 가지고 있으며, 주로 대학이나 연구소에서 그 발전이 이루어진다.

컴퓨터에 관련된 분야 중에서(여러분이 앞으로 배울 교과가 각각의 분야라고 생각해도 된다) 컴퓨터 설계(Computer Architecture), 운영체제(Operating System), 컴파일러(Compiler), 데이터 베이스(Database), 파일 시스템(File System), 알고리즘(Algorithms), 자료구조(Data Structure), 네트워크(Network) 등의 분야가 이에 해당한다.

다시 말해, 컴퓨터 사이언스는 우리의 분야를 구성하고 있는 가장 기초적인 이론적 토대를 제공하는 부분이다. 결국 소프트웨어 개발이란 그 소프트웨어가 실행되고 개발되는 하드웨어적 소프트웨어적 기반요소가 자리 잡은 상태에서 이루어지는 것이므로, 그 기반에 대한 이해가 필연적으로 높은 수준의 소프트웨어 개발 역량으로 이어진다는 것을 생각해 볼 수 있으 것이다. 여기에 컴퓨터 사이언스의 중요함 중에 하나가 있다.

소프트웨어 엔지니어링(Software Engineering)은 일반적으로 소프트웨어 개발 프로세스와 같은 개발 방법에 대한 공학적 접근을 말하지만. 여기서 말하고자 하는 것은 그를 포함하는 소프트웨어 개발에 직접적으로 관련되는 전반적인 부분이다.

교과목으로 그 범위를 이야기해 보자면, 객체지향 프로그래밍(Object Oriented Programming), 프로그래밍 언어들(자바 프로그래밍, C 프로그래밍, ML, Scheme, Haskell..), 프로그래밍 방법론 등이 이에 해당한다.

단순하게 대학에 한정지어 각 분야의 비율을 따져보면 8:2정도로 컴퓨터 사이언스가 높은 비중을 차지한다. SE관련 분야들이 차후 실제 개발에 밀접하게 연관된다는 사실을 볼 때, 이는 아직 대학에 SE의 중요성에 대한 인식이 미흡하다는 것으로 생각할 수 있는데, 우리가 이런 상황을 극복하기 위해서는 소프트웨어 개발의 다양한 요소들을 나름의 계획을 세워 알아나가야겠다.

소프트웨어는 살아 있다


여기서 말하고자 하는 내용은 100% 내 개인적인 생각이지만, 꽤 높은 확률로 적중할 것이라고 생각한다.

일단 소프트웨어 분야가 점점 중요성이 더해지고 있다고 생각하는 근거를 보자면 아래와 같다.

  • 몇년 전부터 인텔리전트 아파트의 개념이 강해지고 있다. -> 앞으로 점점 똑똑한(Smart) 주거환경에 대한 관심과 투자가 이루어질 것이다.

  • 최근까지 휴대폰의 지상목표는 최대한 작고 가볍게였으나, 요즘은 다양한 기능과 사용성이 중요시 되고 있으며, 얼마전 IPhone의 등장은 소프트웨어의 혁신이 제품의 매력의 결정적인 요소가 된다는 점을 보여준다.

  • 구글에서 시작했던 구글맵, 그리고 그로 인해 현재 웹에 광범위하게 퍼진 AJAX -> 현재 구글의 웹 에플리케이션들은 컴퓨터를 이용하는 사람들의 이용 패턴을 바꾸어 놓을 정도의 영향력을 보여주고 있다.

  • 중요성이 점점 부각되고 있는 컨버전스의 핵심은 소프트웨어이다. -> 차후 높은 수준의 제품의 뒤에는 높은 수준의 소프트웨어가 핵심이 될 것이다.

  • 구글과 애플은 대표적으로 강력한 소프트웨어 개발능력 회사의 승패를 결정하는 요소가 되었던 예.

    • 구글은 소프트웨어 개발 능력이 회사의 발전을 주도한 전형적인 경우

    • 애플은 경우는 구글에 비해 소프트웨어 개발 역량이 차지하는 비율은 적은편, 애플의 혁신적인 아이디어가 애플의 현재 발전의 주요인. 하지만 그것을 뒷 받침 했던 것이 소프트웨어 개발 역량, 애플의 재등장의 숨은 주역은 소프트웨어 개발.




위에서 말하고 있는 근거는 그다지 설득력있는 근거는 아니지만, 직관적으로도 최근 우리 주변의 다양한 분야에 소프트웨어가 포함되고 지능화되거나 자동화되고 있다는 것을 알 수 있다. 이러한 변화는 차후 더 가속화될 것이며 앞으로 역량있는 개발자들의 수요는 더욱 늘어날 것이다.

How to study computer programming


위기지학을 하라


위기지학(爲己之學) : 학문의 시작은 자신을 위한 학문이다.
학문에는 자기를 위하는 위기지학(爲己之學)과 남을 위하는 위인지학(爲人之學)이 있다. 위기가 먼저고 위인이 나중이다. 수신제가가 있어서 치국평천하가 있는 것과 같다. 경전공부는 수기, 즉 내 몸을 닦는 위기지학이다. 그것은 안으로 수렴하는 공부다. 이를 통해 바탕이 서면, 그 다음에는 밖으로 미루어 확장하는 치인 또는 안인(安人)의 위인지학으로 나아간다. 역사와 경세제민(經世濟民)의 공부가 그것이다.

- 다산선생 지식경영법, 정민, 페이지66~67



소프트웨어 개발도 자신을 위한, 자신이 사용하는 소프트웨어를 만드는 것이 그 시작이 되어야 한다. 남을 위해서만 만드는 프로그램에서는 개발동기를 찾을만한 내용을 발견할 수 없고, 소프트웨어 개발과 같은 정신적인 측면이 차지하는 부분이 많은 작업에서는 동기나 흥미가 굉장히 중요한 요소.

요즘 프로그래머들 중에서는 예전에 게임을 하면서 자신이 직접 그 게임을 만들어 보고 싶다는 생각에서 프로그래밍을 시작한 경우가 많음.

주변이나 다양한 분야의 이름있는 개발자들을 보면, 실제 생활에서 소프트웨어 개발능력을 활요하고 있는 경우를 많이 볼 수 있음.

  • 장혜식 : 파이썬 커미터와 FreeBSD 포트 커미터로 생활에 필요한 프로그램들을 주로 파이썬이나 다른 스크립트 언어를 이용하여 만들어 사용.


  • 이승근 : 자람 17기, 내가 말은 안했지만, 존경하는 선배. 역시 필요한 프로그램들을 종종 개발하여 잘 사용하고 있음.

    • MSN 봇

    • 한양 소리바다

    • 카플 (이건 매쉬업용으로 만드는거지만)

    • 스토커

    • ...




위기지학에 대한 좋은글로 김창준 씨의 "프로그래머의 위기지학"을 추천한다.

프로그래밍은 종합학문


만류귀종(萬流歸終) : 프로그래밍은 종합학문이다. 공부의 중심을 잡고 변화와 변주를 추구하라. '주제와 변주'사이를 넘나드는 한편의 교향곡과 같은 생활이 필요하다.

꼭, 프로그래밍을 잘 하기 위해서가 아니라 생각을 넓히기 위해서라도 다양한 분야에 대한 공부가 필요하다.

프로그래밍이 종합학문이라기 보다는(물론 프로그래밍도 종합학문이지만) 프로그램 개발이 종합적인 요소들을 필요로 한다.

프로그램 개발은 단순히 프로그램을 만드는 과정뿐만이 아니라. 프로그램을 기획하고, 프로그램을 제작하는 과정에서 다양한 사람들과 의견을 조율하고, 요구사항을 생성하고, 프로그램의 사용성을 개선하고, 프로그램을 테스틍 하는 등의 모든 과정과 함께, 프로그램이 개발된 이후에 서비스하는 과정에서 발생할 수 있는 요구사항 변경이나, 유지보수 작업같은 부분까지 포함하는 일이다.

프로그램 개발은 사람이 하는 일이고 그 목적은 다양하겠지만, 궁극적으로 사람이 관련되기 때문에 그에 따라 발생하는 다양한 문제가 생긴다. 그로 인해, 심리학이나 인지공학 같은 부분, 인간관계론 같은 대인관계에 관한 기술, 대화나 회의를 위해 필요한 기술, 자료를 체계적으로 정리하고 요점을 뽑는 기술등 언듯보면 관련이 없어보이는 작업들이 함께 필요해진다.

시작하는 후배들을 위하여


무식한 대학생이 되지 않도록


매번 듣는 말이지만, 목적과 수단을 잘 구분하라.

프로그래밍 기술은 목적이 아니다.

당신이 프로그래밍을 하고 배우는 것은 무엇 때문인가?
그대 이름은 <무식한 대학생>

그대는 대학에 입학했다. 한국의 수많은 무식한 대학생의 대열에 합류한 것이다. 지금까지 그대는 12년 동안 줄세우기 경쟁시험에서 앞부분을 차지하기 위해 부단히 노력했다. 영어 단어를 암기하고 수학 공식을 풀었으며 주입식 교육을 받아들였다. 선행학습, 야간자율학습,보충수업 등 학습노동에 시달렸으며 사교육비로 부모님 재산을 축냈다.

그것은 시험문제 풀이 요령을 익힌 노동이었지 공부가 아니었다. 그대는 그 동안 고전 한 권 제대로 읽지 않았다. 그리고 대학에 입학했다. 그대의 대학 주위를 둘러 보라. 그 곳이 대학가인가? 12년 동안 고생한 그대를 위해 마련된 '먹고 마시고 놀자'판의 위락시설 아니던가.

그대가 입학한 대학과 학과는 그대가 선택한 게 아니다. 그대가 선택 당한 것이다. 줄세우기 경쟁에서 어느 지점에 있는가를 알게 해주는 그대의 성적을 보고 대학과 학과가 그대를 선택한 것이다. '적성' 따라 학과를 선택하는 게 아니라 '성적' 따라, 그리고 제비 따라 강남 가듯 시류 따라 대학과 학과를 선택한 그대는 지금까지 한 권도 제대로 읽지 않은 고전을 앞으로도 읽을 의사가 별로 없다. 영어영문학과, 중어중문학과에 입학한 학생은 영어, 중국어를 배워야 취직을 잘 할 수 있어 입학했을 뿐, 세익스피어, 밀턴을 읽거나 두보, 이백과 벗하기 위해 입학한 게 아니다. 그렇다면 차라리 어학원에 다니는 편이 좋겠는데, 이러한 점은 다른 학과 입학생에게도 똑같이 적용된다. '인문학의 위기'가 왜 중요한 물음인지 알지 못하는 그대는 인간에 대한 물음 한 번 던져보지 않은 채, 철학과, 사회학과, 역사학과, 정치학과, 경제학과를 선택했고, 사회와 경제에 대해 무식한 그대가 시류에 영합하여 경영학과,행정학과를 선택했고 의대, 약대를 선택했다.

한국 현대사에 대한 그대의 무식은 특기할 만한데, 왜 우리에게 현대사가 중요한지 모를 만큼 철저히 무식하다. 그대는 <조선일보>와 <동아일보>가 '민족지'를 참칭하는 동안 진정한 민족지였던 <민족일보>가 어떻게 압살되었는지 모르고, 보도연맹과 보도지침이 어떻게 다른지 모른다. 그대는 민족적 정체성이나 사회경제적 정체성에 대해 그 어떤 문제의식도 갖고 있지 않을 만큼 무식하다.

그대는 무식하지만 대중문화의 혜택을 듬뿍 받아 스스로 무식하다고 믿지 않는다. 20세기 전반까지만 해도 읽지 않은 사람은 스스로 무식하다고 인정했다. 그러나 지금은 대중문화가 토해내는 수많은 '정보'와 진실된 '앎'이 혼동돼 아무도 스스로 무식하다고 말하지 않는다. 하물며 대학생인데! "당신의 능력을 보여주세요!"에 익숙한 그대는 '물질적 가치'를 '인간적 가치'로 이미 치환했다. 물질만 획득할 수 있으면 그만이지, 자신의 무지에 대해 성찰할 필요조차 느끼지 않게 된 것이다.

그대의 이름은 무식한 대학생. 그대가 무지의 폐쇄회로에서 벗어날 수 있을 것인가. 그것은 그대에게 달려 있다. 좋은 선배를 만나고 좋은 동아리를 선택하려 하는가, 그리고 대학가에서 그대가 찾기 어려운 책방을 열심히 찾아내려 노력하는가에 달려 있다.

홍세화, 2004.1.26. 진보누리에서



무식한 대학생이 되지 말이라. 네가 공부하는 것은 단지, 공부를 해야 해서가 아니다. 생각의 그리고 행동의 중심을 갖자. 지금까지 살아온 삶은 자신의 의지에 따른 삶이 아니었을 수도 있다. 하지만 이제 마음의 중심을 가져라

마음이 바로 선다면 그 때야 비로소 삶을 다체롭게 그리고 여유있게 살 수 있을 것이다.

난 스노우 보드를 타길 좋아한다. 보드를 탈 때는 몸의 중심을 잘 유지하는 것이 중요하다. 일단, 활강하면서 중심을 유지하는 방법만 알게 된다면, 간단한 중심이동으로 다양한 턴을 하면서 경사면을 내려올 수 있다.

마찬가지로 삶의 중심이 바로 선다면 대학생활에서도 다양한 가치와 경험의 순간을 경험할 수 있을 것이고 그러한 것들이 생활의 활력이자 더 나은 사람이 되는데 도움이 될 것이다.

당신의 스승을 찾아라


스승의 형태는 중요하지 않다. 학교 선배나 교수님이라도 상관없고 한권의 책, 혹은 잡지에서 우연히 본 기사의 저자라도 상관없다. 하지만 그 스승은 분명 현재의 위치의 당신에게 혁명적인 변화를 주었고 그 변화를 이루어 나갈 수 있어야 한다.

스승을 통해서 스승의 경지에 도달하고자 하면, 그 스승을 더욱 자세히 알게 된다. 그리고 그렇게 노력하다보면 어느 순간 예전과 같은 감정을 느낄 수 없게 될 것이다. 그것이 성장이다.

스승을 찾기 위해서 노력하라. 가만히 있는데 그런 존재가 나타날리가 없다. 찾기 위해 뛰어다녀라. 탐구하고 궁리하라. 즉, 다양한 사람을 만날 수 있는 기회에 부단히 참여하고, 새로운 시도를 두려워 하지 말아라. 다양한 책을 읽고, 이런 모든 일 과정에서 눈을 부릅뜨고 스승의 존재를 찾기위해 노력하라. 찾으라 그럼 얻을 것이다.

이번 1년 이 책은 읽어라


책에는 죽은 지식도 들어있고, 책을 읽다가 혁명적인 경험을 한다거나, 자신이 송두리째 바뀌는 그런 경험을 하기는 어렵다.

하지만, 그렇다는 것을 알 정도는 책을 보아야 하지 않을까?

아래, 두권의 책은 지난 1년, 더 나아가 최근 5년 동안 읽은 책중에서 삶을 바꾸는 힘을 느겼던 책이다.

 



 




tags : 프로그래밍에 대한 이야기, 신변잡기

댓글 2개:

  1. [...] Tasy.jaram.org 잡동사니 놀이터 « 시작하는 후배들을 위하여.. [...]

    답글삭제
  2. 선배님의 후배사랑이 철철 넘쳐보입니다. ^^

    답글삭제

Man of Month를 마치며

벌써 2020년 1월 14일이다. 19년의 마지막 달에 Man of Month라는 팀의 제도를 시작한다고 했었는데, 12월이 지나고 그 다음 달도 거의 절반이 흐른 것이다. MoM을 시작하면서 하겠다고 계획했던 것들도 실제 한 것들과 비교해보니...