[DC 펌] 코더에서 프로그래머로... (펌)

[■프로그래밍 일반]

DC 펌 : http://gall.dcinside.com/list.php?id=pr ··· page%3D1

여기서 공부하는 많은 사람들 보면, 걍 옛날 생각도나고해서... 올려 봤습니다. ^^


프로그래밍 언어를 공부하는 많은 입문자들은 프로그래머가 되기위해 보통 C언어를 먼저 공부하게 됩니다.


그리고는 좌절하죠 -_-;;


우선 암기해야할 문법 규칙이 너무 많기 때문입니다.


이건 뭐..... Hello World 문장 하나 만드는데도, 암껏두 안보구 혼자 만들라면, 컴파일 단계를 넘어가기가 왜 이리 힘든지 ㅋㅋ


C를 공부하고자 하는 여러분들을 위해서 제가 드리고 싶은 말은...


문법 생각하지 말고 로직을 생각하라는 겁니다.

 

문법 까짓꺼 책보고 하면 됩니다. 중요한건 어떤 절차를 기반으로 프로그램이 실행 될것이냐 하는 것입니다.

 

먼저 종이에 글을 쓰시기 바랍니다. 귀찮으면 그림을 그리시던지 -_-;;


코드를 작성하는것은 시험볼때 아니면 책보고 해도 문제될것 없습니다.


C는 로직이 중심입니다.


어쨌든 이래저래 고생고생해서 제법 포인터와 구조체를 가지고 어찌어찌 몇천라인 정도 되는 코드를 작성할 수 있는 단계까지 왔습니다.


C는 로직이 중요하기 땜에, 몇천라인 작성했으면 몇만라인 작성하는건 문제가 안됩니다. 시간이 문제죠 ㅋㅋㅋ


이제 C++이랑 자바를 좀 배워볼까? 라고 생각하고 책을 펴는 순간 속이 울렁이기 시작하죠


객체지향... -_-;;;


관련 책에보면 대충 이런말이 나옵니다.


사람이랑 원숭이는 포유류의 자식 클래스이고, 원숭이들 중에 내 원숭이는 원숭이 클래스의 객체이다.


이런 ㅅㅂ 그래서 클래스가 뭐고 객체가 도데체 뭔데? 내가 원숭이랑 동급인가? 라는 생각이 들면서 괜히 짜증이 납니다. -_-;;


대충 C는 아니까 C++이나 자바관련 과제 나오면 코드는 작성 할 수 있겠죠.... 그러나 그건 객체 코드가 아닙니다. 로직 중심의 코드입니다.


C언어의 로직에 익숙해진 여러분은 객체중심으로 생각하는 능력을 가지고 있지 않습니다.


따라서 진짜 객체지향 프로그래밍을 할 수 없습니다.


객체지향은 단순 코드만 보고 쉽게 이해할 수 있는 언어가 아닙니다.


소프트웨어가 객체들간의 메시지 교환을 통해서 내가 원하는 행동을 하도록 만드는것이 객체지향의 기본 개념입니다.


제가 여러분께 권해드리는 방식은, UML(Unified Modeling Language)을 공부하라는 것 입니다.


특히 UML의 클래스 다이어그램, 상태 다이어그램, 시퀀스 다이어그램을 공부하시기 바랍니다.


어렵지 않습니다. 한.... 1주일정도면 충분히 마스터 가능 합니다.


그리고, 코드를 작성 하기 전에, 먼저 위에서 소개한 다이어그램을 이용하여 그림을 그려보시기 바랍니다.


처음엔 시간이 걸리지만, 익숙해지면, 머리에 객체지향에 관한 개념이 그려질 것입니다.


Together나 Rational Rose와 같은 UML도구는 클래스 다이어그램 설계로부터 C++이나 자바와 같은 객체지향 언어로의 소스코드 생성을 지원합니다. ^^


생성된 소스코드를 살펴보는 것도 많은 공부가 될 것입니다.


그리고 사전에 UML로 설계를 할때, 무엇보다 클래스의 재 사용성에 관해서 고민하시기 바랍니다.


이 작업을 반복하게되면 여러분의 개인 라이브러리가 구축될 것입니다.


그리고 또 하나,


소프트웨어 공학을 공부하시기 바랍니다.


이것은 여러분이 프로젝트에 임했을때, 여러분 스스로가 문제를 해결해나갈 수 있는 다양한 방법을 제공합니다.


그 외에도 여러분이 훌륭한 프로그래머로 성장하기 위해선 많은 경험을 쌓아야 하고, 많은 학문을 공부해야 합니다.


최소 3개월 마다 새로운 언어를 익혀두시기 바랍니다.


그리고 무엇보다 중요한건 프로그래밍 관점에서 모든 사물을 재 해석할 수 있는 능력입니다.


예를들어 똑같이 스타크래프트 동영상을 구경 하더라도


저그대 저그 3:3 경기를 본다고 가정하면


양 팀에서 저글링 수백마리가 나와서 맵을 캐첩 번벅으로 만들면서 박터지게 싸우는걸 봤다면


여러분은.... 우아 대박이다 라고 생각할것입니다. -_-;;


그러나 진짜 프로그래머라면,,,,


우아 장난아니다. 저글링 한마리 한마리가 다 객체로 생성되었을때 그게 다 메모리 한공간씩 잡아먹는다면,


라운드 로빈 방식으로 동작 하는 CPU에서 저녀석들의 개별적인 동작을 각각 하나씩 처리할텐데....


저건 최소 600개의 객체가 성성되는건데, 왜 컴퓨터가 버벅되지 않을까?


어떤 방식으로 객체를 처리할까....


라고 생각하는 것입니다. -_-;;;


그리고  저것이 가능한 코드를 작성하려면 어떤 방식으로 설계가 되어야 할지 고민하게 되고


결국, 시스템의 성능에 최적화된 코드를 작성할 수 있는 능력을 기르게 됩니다.


단순한 코더가 될것인지, 생각하는 프로그래머가 될것인지는 여러분이 어느길을 선택하느냐에 따라 달려있습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

이 글의 트랙백 주소 :: http://munduki.tomeii.com/darkhorse/trackback/159

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::