프로그래밍을 수련하는 법은 음악을 공부하는 것과 비슷합니다.
이론을 배우고 연습하고, 이론을 배우고 연습하는 것을 반복하는 겁니다.
 
훌륭한 선생님이 있다면 더 빨리 배울 수 있다는 것도 비슷합니다.
다행히 프로그래밍은 선생님을 구하는 데 아주 적은 돈이 필요합니다.
책과 인터넷만 있으면 되니까요.
 
현재 프로그래밍에 입문하시는 단계이므로 서적을 처음부터 차근차근 읽으시고
실습도 성실하게 따라하시기 바랍니다. 특히 책에 연습 문제가 있다면
그것을 풀어보세요. 답은 절대 보지도 말고, 책에 정답이 없다면 다른 곳에서 구하지 마십시오.
혼자서 답을 구하는 과정이 바로 실력이 느는 시간입니다. 
 
프로그래밍 언어는 C#이 적절할 것입니다. 가장 쉬운 언어 중의 하나입니다. C나 C++은 미리
공부할 필요가 없고, 나중에 관심이 가면 따로 보더라도 지금은 C#만 하는 것이 좋습니다.
 
단숨에 능숙하게 프로그램을 만들 수 잇는 방법은 없습니다. 지름길은 없으며, 차근 차근 단계를
성실하게 밟아 나가세요. 피아노를 배우는 학생이 음계를 외우고 왼손 오른손을 연습한 다음에
바이엘을 배우고, 체르니를 배워 나가는 것처럼 말입니다. 꾸준히, 성실하게 하시면 1년 후에는
난이도가 아주 높지 않다면 프로그램을 잘 작성할 수 있을 겁니다.
 
공부하다가 어려운 내용이 나올 때 생기는 좌절감이나 두려움은 정면돌파를
하시길 바랍니다. 누구나 다 겪는 것이며, 몇 번 극복하고 나면 자신감도 생기고 재미도 붙습니다.
이것은 비단 프로그래밍 뿐 아니라 어느 분야에서나 마찬가지이니 이미 잘 알고 계실거라 생각합니다.
 
한 가지 더, 프로그래밍은 재미있습니다. 즐거운 취미라는 마음으로 재미있게 해보세요.
 
- 박상현 드림.
저작자 표시 비영리 변경 금지

그대를 O(n!) 동안 기다려 왔습니다.

Short Talk 2009/09/17 06:12 Posted by seanlab
원작자가 누구신지 너무 궁금합니다. 이렇게 센스 있는 시를 쓰시다니. ^^


 

그대를 O(n!) 동안 기다려 왔습니다.

그대를 만나기 전 나의 인생은 const 였습니다.
매일 매일이 무의미한 Ctrl+C Ctrl+V 였습니다.

그대를 처음 보았을 때
나는 인텔리센스를 처음 접한 프로그래머마냥 기뻤습니다.
나의 FPS는 60.0을 넘었습니다.
<그대의 미소, 그대의 몸짓, 그대의 눈길, 그대의 해맑음> 이라는 쿼터니언으로
나는 π/2 가량 회전했습니다.

그리고 나의 메인 루프는 while(1) Love(You) 로 덮어 씌워졌습니다.



하지만 그대를 만나고 난 이후
내 속은 스파게티 코드가 되어 갔습니다.

섣부른 접근이 Unhandled Exception이 되진 않을까 싶어
언제나 그대 주변 4byte 경계에서 맴돌기만 하였고,
혹여나 올 그 날을 위해 그대를 즐겁게 해 줄 유스 케이스 디자인에
몇날 몇일을 고민했습니다.

마음 속으로 수없이 그대를 불러봐도
결국 나에 대한 재귀호출일 뿐이었습니다.

나의 갈등은 delete 없는 new 였습니다.


이런 제가 그대를 참조하려 합니다.

그대가 나를 private 멤버로 삼아 준다면
나는 다른 누구에게도 인스턴스를 생성하지 않는
그대만의 싱글턴이 되겠습니다.

나의 행복을 memcpy() 해 드리겠습니다.
그대의 나날을 리팩토링해 드리겠습니다.

그대의 map에 나를 넣어 주세요.
나의 key를 "연인" 으로 잡아 주세요.

그대가 어디에서든 "연인"을 부르면
나는 O(1)로 달려갈 것입니다.










그대를 사랑합니다.


감동적이지 않습니까?
저작자 표시 비영리 변경 금지
프로그래밍을 공부하다 보면 평소에는사용하지 않던 말들이 튀어나오거나, 평소에 사용하던 단어이지만 문맥상 늘 사용하던 그 뜻이 아닌 것 같은 경우가 종종 있습니다. 이렇게 프로그래밍을 공부하는 학생들을 괴롭히는 용어 중의 하나가 "추상화(Abstraction)"가 아닌가 합니다.

국어 사전에서 "추상"을 다음과 같이 정의합니다.
추상 [, abstraction]  : 대상으로서의 소여() 전체로부터 특정성질이나 공통징표()를 분리하고, 골라내는 정신작용.
좀 어려운 말들이 사용되긴 했지만 무슨 뜻인지는 알 수 있습니다. 추상이란, '생각'을 이용하여 어느 대상의 특징을 분리하고 골라내는 과정입니다. 따라서 추상화(抽象畫가 아니라 抽象化) 란 어떤 대상을 그것이 가진 특징만을 골라내는 생각하는 과정이라 할 수 있습니다.

이런 국어 사전의 정의에 근거하여 제가 프로그래밍에서의 추상화를 설명해 보겠습니다.
 똑같은 사람을 그리더라도  사실주의 화가는 있는 그대로를 표현합니다. 반면에 추상주의 화가는 표현 대상을 분석해서 그 표현 대상이 갖고 있는 주요한 특징 외에는 모두 버리고, 자기가 갖고 있는 표현 도구 몇 가지(예를 들어 점, 선, 색)만을 이용해서 화폭안에 인물을 재창조합니다. 이렇게 추상주의 화가가 그린 인물은 실제 모델과는 아주 다른 모습이 됩니다.

 프로그래머들은 모두 추상주의 예술가입니다. 우리는 코드로 사람을 표현해야 하고, 코드로 자동차를 그려야 하며, 코드로 보험 업무를 그려야 합니다. 이 세상을 코드로 표현해야 합니다. 실제 세계의 것을 분석해서 주요한 특징을 제외한 나머지는 버리고 코드로 다시 그려내는 것, 이것을 추상화라고 합니다.


즐거운 주말 되세요. :)
저작자 표시 비영리 변경 금지
TAG 추상화

삼성 이재용 전무의 인터뷰를 읽고

Short Talk 2009/09/06 17:51 Posted by seanlab

관련 기사 : 이재용에 '힘들지 않느냐' 물었더니…

제조업, 기능인의 중요함을 강조하는 경영자는 근래 들어 처음 보는 것 같습니다. 불법 상속 때문에 이재용 전무에게 별로 좋지 않은 인상을 받았는데, 인터뷰 중 다음 발언이 그 인상을 조금은 바꾸는 것 같습니다.

이 전무는 또 ‘일이 많은데 힘들지 않느냐’는 질문에 “나는 사는 게 피곤하다고 불평할 자격이 없다”며 “부담스럽지 않다고 한다면 거짓말이지만 운 좋게 좋은 부모를 만나고 훌륭한 선배(경영진)를 많이 만나서 혜택을 많이 보고 있다”고 말하기도 했다.

 

 최근에 불행한 일도 겪으셨는데, 훌훌 털고 모쪼록 삼성을 잘 이끌어 나갔으면 좋겠습니다.

저작자 표시 비영리 변경 금지

안녕하세요? 박상현입니다.

무료 To-Do List 프로그램, Finish It의 0.75a 버전을 배포합니다. 이번 버전에서 바뀐 사항은 다음과 같습니다.

  • 윈도우 시작시 Finish It 자동 실행 기능(더드미님의 제안)
  • Always On Top 속성 해지시 다이얼로그들이 여전히 최상위 창으로 남는 버그 수정- (맥스폐인님의 버그 레포트)
  • 속성 영구 저장 기능(지금은 Always On Top, Run At Windows Startup  2개뿐이지만 ^^;)

다음은 Finish It 0.75a에서 속성을 변경하는 화면을 캡쳐한 것입니다. 속성이 2개뿐이라 좀 썰렁합니다. 앞으로도 이정도 수준으로 간결하게 유지될 것 같습니다. ^^;

설치 파일은 아래의 링크에서 다운받으시면 됩니다. 프로그램에 대한 개선 희망 사항이나 버그 레포트, 언제나 감사히 받겠습니다. :)

 

 

저작자 표시 비영리 변경 금지

이제 곧 뇌를 자극하는 알고리즘이 출간됩니다. 인쇄소에서 한참 책을 만들고 있다는군요. ^^

http://hanb.co.kr/look.php?isbn=978-89-7914-687-5

 

저작자 표시 비영리 변경 금지