비전공자를 위한 전산관련 도서?

geekforum의 이미지

이런것 올려도 되는지 모르겠는데요..

전 전산학 전공자도 아니고 따로 학원에 다닌적도 없구요 그냥 혼자 공부하며 취미로 플밍을 하고 있답니다. (요기두 그런분들이 참 많겠져? ^^)

요즘 저의 이론적 배경이 넘 보잘것 없다는 자괴감에 빠져 운영체제나 자료구조, 알고리즘, 프로그래밍공학 등에 관련된 이론적인 책들을 하나하나 찾아보고 있는 중입니다.

문제는 정말정말 읽을만한(도움이 될만한) 책들이 없다는고에요..
제가 이해를 못하는 문제가 가장 크겠지만 그것보다도 정상적인 언어능력이 있는 사람이라면 별 탈없이 문맥정도는 짚어내야 하는거잖아요.. 근데 정말 책들이 모두 엉터립니다. 내용이 앞뒤가 않맞는것도 태반이고 문법두 이해못할정도로 엉터리더라구요..

저같이 비전공자가 차분하게 무리없이 공부할수 있는 전공서적?! 같은것들이 있다면 추천해주시길 부탁드립니다. 이곳엔 혼자 공부하는 분들이 더 많을것 같다는 생각에 도움을 청하고 싶네요..

어떠한 책도 좋답니다. (실용서말구요 이론서적요)혼자 공부할수 있도록 편집도 잘되있고 내용도 알찬책이면 고맙겠습니다.. ^^ 이뿐책이 좋다는 말씀이 아니란거 알구 계시겠져? 쿠쿠..

수고하세요..

댓글

freesoft의 이미지

s/w

The Language of Machine( or Languaegs and Machines )
An Introduction to Object-Oriented Programming
Understanding Object-Oriented Programming with JAVA
Concept of Programming Language
Compilers - principles, techniques, and tools -
Client/Server Survival Guide
SICP
Discrete Mathematics with Computer Science Applications
An Introduction to Database Systems
The C Programming Language
Modern Operating Systems
Artificial Inteligence
Intrduction to Functional Programming using Haskell
Lex & Yacc
Interactive Computer Graphics - A top-down approach with OpenGL

h/w

Digital Design
Computer System Architecture
Computer Oganization & Design: The Hardware/Software interface
VHDL for Programming Language

책장에 꽃혀있는 책들을 추려서 적어본겁니다. 대부분은 학부시절에 구입했던 책들이구요.
저도 내용을 다 모르긴 하지만...
독학으로 한두달만에 공부할 내용이 아닌것만은 분명합니다.
-_-;

여하튼.. 열심히 하시라는 말밖에는.. ^^;;

이동훈의 이미지


1. tcp/ip illustrate Volume Seriese
2. Unix Network Programming Seriese
3. Advanced Programming in the Unix Environment

P.S > 절대 번역본 사지 말것.
message queue를 소식대롱으로 번역하고 Kernel을 알맹이, STack을 통이라고 번역하는 아주 엽기적인
번역서들임.

익명 사용자의 이미지

Unix Network Programming 2nd Ed.의 번역에 참여했던 직장인입니다. 번역했을 당시에는 대학원생이었죠.

워낙 방대한 책이라서 몇명이 나뉘어서 했습니다. 그중에 몇명은 서로 교차검정까지 해가면서 용어통일이나 문맥검정을 하느라고 날 샜습니다. 그런데, 최종검사해달라고 출판사에서 온 것을 보고 저희들도 놀랐습니다. 기껏 문맥하고 용어를 맞춰서 정리해 놓은 것을 \'찾기/바꾸기\'로 몽창 다 바꿔버린 것입니다. 미치는 줄 알았습니다.

번역한 저희들도 속 터집니다. 저희도 학부과정 때 번역본에 치를 떨면서 수업을 들었으니깐요. 이런걸 피하기 위해서라도 원서를 보십시요. 저도 제가 번역한 책은 보지 않습니다. 그냥 원서보지요... --;

권순선의 이미지

음....그렇다면 제가 아는 분이거나, 최소한 아래위층 오가면서 얼굴은 몇번 마주쳤었겠네요. :-)

익명 사용자의 이미지

문맥이 엉터리인 책에 질리셨다면 같은 이름의 원서를 보는게
나을 듯 합니다.

익명 사용자의 이미지

저도 비전공자인데요.^^
책을 사는데는 돈을 아끼지 말아야 한다고 생각합니다.
요즘에 많이 느끼지만..
제가 고민하던 부분들을...
이미 다른분들은 해답을 제시하고있더군요.--
책살때는 카드로 사야지 좋은것같습니다.
부담없이 사게되서 좋습니다.
일단 일을 벌리고 보는거죠. :)
그럴만한 가치가 있는 일이라고 생각합니다.
아무리 많이사야 20만원어치이상은...
무거워서 못살테니까요 :)
고서도 좋지만 최근에 나온책들도 잘 살펴보면 좋습니다.
다른분들도 많이 지적하셨듯이..
한책만으로 모든걸 판단하면 안되는것 같습니다.
소켓 프로그래밍책에선 리차드 스티분책이 가장 권위있지만...
요즘 서점에 가보니...
[ Linux Socket Programming by example ]
이란 책이 있더군요.
아마도 리눅스에서 소켓프로그래밍 공부하시려면..
괜찮을듯합니다.
저도 그동안은 권위있는책들만을 고집했었는데..
요즘 생각이 많이 바뀌었습니다. :)

익명 사용자의 이미지

프로그래밍 공부 시작한지 몇 달 안된 초보입니다..C언어를 배우고 있습니다. 기본적인 문법은 대충 알고 있습니다. 그러나 \"프로그램\"이걸 도대처 어떻게 설계하고 코딩할지 감을 못 잡겠습니다. 일반적인 C언어 입문서에는 이런 내용을 보지 못했습니다. 워낙 읽은 책이 몇권 안되서. 위의 내용 설명한 책 있으면 알려주세요.
책보고 예제 프로그램 짜보고 소스분석해보고 등등등 하면 자연적으로 설계하고 능력이 생길까요.

소프트웨어 제작에 있어서 계발자가 있고 3.도구 2.기법,기술,방법론 1.원리 의 관계가 있다고 하내요. 여기서 원리가 무었인지 모르겠습니다. 너무 질문이 구체적이지 않은것 같습니다. 구체적으로 질문을 못하겠내요. 이것에 대해서 잘 모르니까요.
원리란 무었인지 명쾌하게 답변좀 해주세요..

여기서 설계란? 건물을 지을때 설계하는것처럼 프로그램 작성에서도 똑같은 계념으로 저는 사용했습니다.

익명 사용자의 이미지

3.도구 2.기법,기술,방법론 1.원리
굉장히 중요한 얘기입니다..

예를들어 gcc, python이나 윈도그 환경에서 vc++, vb같은것
들은 3.도구에 해당합니다.
그리고 SW공학 프로세스로 프로토타이핑 모형을
선택한다던가 DFD, STD를 만들어 낸다던가..
정기적으로 검토회를 갖는다던가..하는것 따위의 것들은
2.기법,기술,방법론에 해당합니다.
그리고 \"될 수 있으면 프로그램을 모듈로 쪼개라\"와 같은
말은 1.원리에 해당합니다.

그러니까 3->2->1 로 갈수록 시간이 흘러도
덜 변하는 것들이죠.
초보 개발자들은 보통 3에 묶여 생각하죠.
그러나, \'도\'를 깨달은 개발자는 1을 항상 마음속에
품고 다닌답니다.

익명 사용자의 이미지

절대적으로 옳으신 말씀.

원리를 알고 있다면 도구나 개발 방법은 큰 문제가 되지 않습니다. 가장 우리들이 우매하게 논쟁하는 부분이 Java가 낫다느니, Python이 낫다느니 하는 것 따위 입니다. 그리고 기껏 신기술이라고 하는 것들 대부분도 기존의 원리를 \'극\'하는 기술은 대체로 없습니다. 물론 언젠가 뉴턴의 고전역학을 극해버린 양자역학같은 기술이 튀어 나오면 초천재 개발자들도 커다란 혼란에 휩싸일 때가 올 수 있겠지만 말이지요.(그 초천재님을 지칭하는 것은 아님 ;-) 어쨌거나 초천재 아인슈타인은 양자역학을 인정 못한 대표적 인물이라는 사실... 재미있죠? 아인슈타인이 양자역학을 쓰레기로 치부하고 다른 학자들과 영합해 이 학문을 사장시켜 버렸다면 어떻게 반도체를 만들고, 이런 소형 컴퓨터가 나왔을 수 있었을까요?

그나저나 그 원리란 무엇일까요...?
아래에 여러분께서 제시한 많은 교과서들을 이해하면 어느 정도 습득될 것들입니다. 더 기본을 깊게 깔자면 수리, 논리, 물리학따위가 되지 않을까 싶네요. 물론 인문학도 무시하지 않으면 더욱 더 큰 도움이 될 것이라 생각됩니다.

우리가 익히 들어 유명한 \'촘스키\'는 언어학자였다는 사실은 시사하는 바 크며, 새로운 이론의 상당히 많은 부분이 다른 학문의 크로스오버라는 사실은 공부하는 시간이 길어질 수록 깨닫는 횟수도 늘어갈 것이라 생각되어지는구만요.

어떤 분야에 종사하건 더욱 넓게 학문을 이해하면 이해할수록 좋은 것 같습니다. 너무 스스로의 자만심에만 빠지지말고 말이쥐요... :)

익명 사용자의 이미지

발전적인 자만은 좋습니다.
남이 보기에 뭣같아 보인다고 해서 일부러 겸손해질
필요는 없다고 봅니다.
래리월이 자만에 대응되는 겸손이라는 요소를 끄집어냈지만
그렇게 생각하는것 자체가 그 사람의 \'개성\'입니다.
독특한 개성이라는것은 자신만의 철학이 밑바탕을 이루고
있어야 뿜어져 나오는겁니다.
저 같은 경우는 개인 플레이하면서 제 스스로 모든 분야를 다
파고들어 들쑤시고 다니며 논쟁을 일으키고 거기서 피드백 받아올걸 선별섭취하면서 지식을 쌓아나가는게
저만의 개성입니다.
저는 특별히 리눅스자체에 대한 애정이 있는것도 아니고
쓸데없이 MS에 반감을 갖지도 않습니다.
그저 순수하게 지식을 얻어내기를 좋아할 뿐이죠.
모든것에 지나치게 호기심이 많아서 미친놈으로 취급받을때도
있습니다만.. 이런 성격이 지식을 쌓는데는 참 많은 도움이
되는것 같습니다.

다만..그저 남들처럼 평범하게 살고 싶지는 않습니다.
여기 kldp 리눅서들처럼 엄숙주의에 사로잡혀 실제로
하고 싶은 말을 접어둘만큼 제 개성이 평범하지는 않습니다.
혁명을 이루려면 기존의 것과는 전혀 다르게 생각해볼
필요가 있죠..
저는 그렇게 하려고 하는겁니다..
그것도 제 개성이죠.
저는 제가 앞으로 무엇을 할 수 있으며 무엇을 해야하는지를
잘 알고 있다고 생각합니다.
그것에 대해 자신감을 피력했을 뿐이며 저는 충분히 그럴만한
자격이 된다고 보고 있습니다.
제가 관심만 가진다면..
경우에 따라서는 무언가 대단한걸 만들수도 있다고 생각합니다.
아니.. 그렇게 됩니다.. 제 자신을 알거든요.
제가 어떤놈인지를...

저같은 사람이 나쁜분야로 투신하면
그야말로 나라를 말아먹게 될것입니다.. ^^

초보리눅서의 이미지

저만그런줄 알았는데 딴분도 비슷한 문제를 안고있나 보군요....

ㅠ.ㅠ
(뭐냐, 이 동질감은....)

초보리눅서의 이미지

원서를 보려고 한다면......
제 경우에는
한컴영한사전과 인터넷에서 구한 롱맨 영영사전을 메모장을 함께 띄워놓고 본답니다.

리눅스로 나온 좋은 사전은 없나요?

익명 사용자의 이미지

밑에글 wkt님 답장으로 쓴 글입니다.
죄송.

익명 사용자의 이미지

메모리상에 각 배열이 모두 연속적으로 배치됩니다.
배열대신 포인터를 사용하는 이유도 그 때문(메모리 절약, 동적 할당)이구요.
알면서 장난하신건가? ^^;;

익명 사용자의 이미지

제가 보기엔 원서 읽는게
훨 나아 보이던데요
물론 처음엔 책내용 파악
이 안됩
니다만,... 한 서너달 보
다보면
문장들 이해가 가능해지구요

번역서 이거정말 보면 안
돼구요

하여튼 영어가 걸림돌인데..
ㅡ,.ㅡ 맨날 사전만 보게되는
경우도...헐..ㅡ,.ㅡ
그래도 번역서는 보지마세요
그럼..

익명 사용자의 이미지

제생각엔 말이죠.

책은 별 문제가 않된다고 봐요.

아무리 알기쉽게 설명한 책이라도 문자가 가지는

한계는 어쩔수 없는거 아니겠어요.

문득 영화 \'주유소 습격사건\'의 한장면이

떠오르는군요.

유오성이 싸울때 외치는 한마디.....

\"난 무조꼰 한놈만 패!!!!\"

흔히 돈이 조금있는 초보들이(직딩) 하는 실수중에

하나가 책만 산다는겁니다.

엄청 두께운 책을 그것도 5,600 페이지의 거의

백과사전 만한 책만 골라서.....

하기야 술값으로 날리는 것 보다 건전하기는 하지만

그리고 딱 3일만에 책을 마스터 하죠.

머리말과 책의 목차!

(이상은 모두 저의 이야기 입니다 ^^)

결론을 말씀드리자면

책은 두권이면 충분하다고 봅니다.

아무거나 (대개 내용이 다 비슷비슷해요)문법서 한권!

아무거나 함수 메뉴얼 한권!

그리고 죽도록.. 무조건... 가차없이....절라리......

대못으로 허벅지 찔러가며......

패다보면 해뜰날이 있겠죠.

(참고로 저는 지금 char *main_menu[]={

\"file\",\"edit\",\"run\"

};

가지고 3일째 고민하고 있읍니다.

머리가 나쁜건지 대가리가 돌인건지....

도대체 메모리맵을 그릴수가 없네요

누구 아는 분 없나요?)

logout_의 이미지

누구나 한번씩은 다 하는 고민입니다. :)

char로 보면 괴로우니까... int로 보죠.

이거랑 요거랑 차이를 한번 생각해 봅시다.

int a[3][3];

그리고

int *a[3];

a[0] = (int*) malloc (3 * sizeof (int));
a[1] = (int*) malloc (3 * sizeof (int));
a[2] = (int*) malloc (3 * sizeof (int));

두 경우 모두 똑같이 3x3 의 정방행렬을 int 타입으로
선언하는 겁니다. 아무래도 앞에 것이 편하고 뒤의 것이
불편하죠.

그런데 이런 경우를 생각해 볼까요? 3x3 정방행렬이
아니고 첫줄에는 3개, 둘째줄에는 4개, 마지막 줄에는
2개의 원소를 가지는 경우는 경우는 어떻게 코딩할까요?
제일 속편한 방법은 int a[4][4] 로 선언하고
첫줄과 마지막줄에 남는 메모리는 안쓰면 됩니다.
그러나 malloc을 쓰면 여기서 이렇게 할 수 있죠.

int *a[3];
a[0= (int*) malloc(3* sizeof(int));
a[1] = (int*) malloc(4* sizeof(int));
a[2] = (int*) malloc(2* sizeof(int));

이렇게 들쭉날쭉한 배열을 dynamic하게 on the fly로
만들 수 있습니다. :)

왜 이런 짓을 하느냐... 사실상 dynamic이라는 개념은
프로그래밍에서 상당히 중요한 개념입니다. 이게
감이 안오면 플밍하기가 가면 갈수록 괴로와지죠...

또다른 예를들죠. 성적처리 프로그램을 만든다고
합시다. 가상적으로 string 타입이 있다고 하죠.
학생들의 이름을 기억하는 배열을 만든다고 하죠.

그런데.. 학교마다 학생수는 틀립니다. 1명짜리
개인교습부터 수만명의 대학교까지 있습니다.
대강 이렇게 쓰면 배열 선언이 충분할까요?

String names[100000];

어느 컴파일러든지 이 경우에 이렇게 하면 에러를
냅니다.

int n; printf(\"전교생 수는?\"); scanf(\"%d\", &n);

String names[n];

컴파일러 입장에서는 아랫줄에서 에러를 내는게
당연합니다. n은 프로그램 실행 전까지는 알 수가
없죠. 그렇다고 위의 경우처럼 큰 숫자로 정의를
하면 실제 학생수가 작은 경우는 메모리 낭비요,
많은 경우는 Segmentation Fault입니다. --;

이 경우 해결책은 이렇죠. 이래서 포인터와 다이내믹
메모리 할당이 중요한 겁니다.

String *names;
int n; printf(\"전교생 수는?\"); scanf(\"%d\", &n);

names = (String*) malloc(n * sizeof(String));

이렇게되면 n의 값에 상관없이 필요한 메모리만
할당해서 쓰게 되겠죠.

다 아시는 것을 다시 설명한 것은 아닌지 모르겠는데요..
하여간 제 경험으로는 이건 공대생들도 자료구조론
정도를 수강해야 감을 잡는 개념입니다. 모르는 분들
짧은 설명이지만 참고하세요.

따라서 위에 올리신 코드는... 이건 자동적으로
compile시에 정방형 배열이 아닌 들쑥날쑥한
배열을 알아서 만들어 주는 겁니다. 이걸
char menu[200][80] 이런 식으로 변수 선언을
해 놓고 한다고 생각해 보세요. general하게
써먹을 수 있는 게 아니죠? :)

그래도 의문사항이 있으시면 또 질문해 주세요.
그럼.

익명 사용자의 이미지

구조체를 사용하는게 더좋을것 같네요..^^

익명 사용자의 이미지

...
char *main_menu[]는
main_manu 라는 배열을 선언하고 초기화 하는데
이 놈의 요소들이 char * 타입이라는 얘깁니다.
즉 char를 가리키는 포인터들의 배열이죠.

즉 main_menu[0] 이 \"file\"의 첫번째 주소를 가리키고
main_menu[1] 이 \"edit\"의 첫번째 주소를 가리키는 겁니다.


char * main_menu_first = \"file\";
char * main_menu_second = \"edit\";
와 같은 식으로 해도 가능하겠지만 좀더 간결하게
배열을 쓴겁니다요.

흠.. 별거아닌걸로 아는척하는거 같아 마음이 불편하군요.. ^^

익명 사용자의 이미지

이분이 설명 하시는게 정말 더 쉽군요 ^^;

익명 사용자의 이미지

초보들이 책만 산다구요?
그렇지는 않은것 같은데...
저도 전산전공자가 아니고, 혼자 공부해온 독학파입니다만..
책.. 정말 중요하다고 봅니다.
저도 책 무지하게 많습니다.(대략 이론서만 40여권 됩니다.
실용서는 20여권 되지요..필요할때는 논문도 보게됩니다.)
덕분에 전산 전공자들보다 더 전산을 많이 안다고
인정받고 있습니다.. ^^
우선은 책보는 순서가 중요합니다.
처음부터 자신의 수준에 맞지도 않는 책을 갖다가
백날 봐봐야 이해도 안되고 금방 포기하게 되죠.
어느분야든 마찬가지겠지만.. 어떤 개념을 익히기 위한
선행 이론을 학습해야 그 다음의 개념을 제대로 학습
할 수 있게 됩니다.
단계적으로 학습해야 제대로된 효과를 보실 수
있습니다. 그래서 학부때의 커리도 그렇게 짜여져 있죠.
선행과목을 들어야 제대로 이수할 수 있는 과목들이 많습니다.
처음부터 차근차근.. 그러나 꾸준하게..
이 방법이 최고입니다.
이렇게 공부한 사람과 그렇지 않고 건너뛰면서 공부한
사람과는 나중에는 큰 차이가 날 수 밖에 없죠.
물론 자신이 단지 그저그런 웹 코더로 남을거라면 이렇게까지
할 필요는 없습니다.. 하지만, 진정 \'알아주는\' 개발자로
남고 싶다면 가장 좋은 방법은 천천히 그러나 꾸준히 앞으로
전진하는 방법이 가장 좋습니다.
책은 자신에게 맞는 것부터 학습해 나가되..
절대로 어떤 이론을 책 한권으로 끝내려고 하지는 마십시오.
설령 그 책이 가장 권위있다고 인정받을지라도..
어떤 책이든 약간 부족한 부분이 있고, 또 지나치게 상세한
부분이 있게 마련입니다.. 아무리 권위있고 좋다고 인정받는
책이라도 어떤 챕터는 조금 부실할수도 있고, 다른 챕터는
상세하게 잘 나와 있을수가 있습니다. 결국 특정 분야를 제대로 알려면 그 분야에 대해 똑같은 내용을 다루는 책 몇권을
사다가 같이 보는 방법이 가장 좋습니다. 그러는 과정속에서
부족한 부분이 cross check가 되기때문이죠..
그리고 단지 책을 보는것보다는 실제로 코딩해보면서 테스트
해보고 하면서 시행착오를 겪어봐야 머리에 많이 남습니다.
다음의 속담을 마음속에 새겨두시길...

\"slow & steady wins the race\" ...

p.s 여기 kldp에는 어떤 사람들이 있는지 모르겠지만..
저는 대체적으로 이런곳에 모습을 드러내지 않고
홀로 독야청청하려고 노력합니다..
주제넘지만 언젠가는 제 자신이 충분히 유명해질수도
있다고 생각합니다.
어떻든 간에 제가 현업에서 일해본바 대로라면..
실력으로 따질때 저는 상위 0.1%안에 드는 IT개발자가
확실한듯합니다.
아니 사실은 국내 최고 수준이라고 생각합니다.. ^^
그러나, 성격상 남들과 타협하거나 어울리기를 별로
좋아하지 않아서 어디에 참여한다는것 자체를 싫어
한답니다.
그냥 제 혼자 모조리 다 최고수준으로 이뤄내고 싶을
뿐이죠.

스카리의 이미지

넹. 0.1% 상위의 프로그래머님.. 글 잘 읽었습니다.

약간은 겸손해지시는게 어떨까 하는 제 소견입니다만..
저를 비롯한 주변의 친구들중에는
86년 일반인들이 컴퓨터라는 단어조차 모르던 그 시절
애플앞에서 베이직 코드를 짜던 것부터 시작해서
지금까지 프로그래밍만 하던 친구들이 많습니다.

중학교를 다니기 전부터 전산인을 꿈꾸며 중/고등학교시절
학교공부보다 C레퍼런스를 더 많이 보고 밥먹는것보다
코딩하는게 더 즐거웠던 사람들입니다.
컴퓨터 동아리 활동도 하면서 수많은 전국의 IT영재들과
겨뤄왔던 사람들입니다.

대학도 학교보다는 과를 선택했습니다.
컴퓨터공학을 공부하고 학교에서 배우는걸로는 턱없이
모잘라서 밤세워 수많은 책들을 섭렵하고 뉴스그룹을 뒤지며
공부했던 사람들입니다.

인터넷열풍이 불면서 벤쳐들이 우후죽순 생겨날때
그 벤쳐속에서 몇안되는 개발자들과 함께 밤을 세며
코딩을 하고 벌레 잡고 떠오르는 해를 보며
기분좋은 맘으로 퇴근 하던 그런 사람들입니다.

개나 소나 책을 낸다고 불평하면서
책을 내라는 의뢰가 들어와도 자신의 실력을 불신하면서
거절했던 사람들입니다.

우리나라는 좁다고, 하고 싶은 걸 더이상은 할수없다고
생각해서 좀더 큰 나라에서 계속 공부를 하고 개발을
하고싶은 꿈을 가진 그런 사람들입니다.

그런 우리들중 누구도 자신의 실력을 평가하지 않습니다.

우리들은 언제나 부족할뿐입니다.

남들이 하는 표현을 빌리자면

아직도 \"초허접 프로그래머\" 입니다.

그런 우리들이 님의 글을 봤을때 느낀것이라고는
자만에 가득차 가벼운 실력만 믿고 떠들어대는
수다쟁이의 글이라는것 말고는 아무것도 느껴지지 않는군요

님이 비전공자라서... 그리고 비전공자가 \'감히\'자신의
실력을 운운하는 글이 아니꼬와서 올리는 글이 아닙니다.

비전공자이든 전공자이든..
이 바닥에 최고는 없습니다.

누구나 아직 \'허접\'이며 언제나 그럴것입니다.

누가 님의 실력을 평가해줬는지는 모르겠지만..
그 사람도 그렇게 믿을만한 사람은 아니군요
입에 발린 말만 잘하는 영업쟁이거나
님에게 빌붙어 뭔가를 바라는 아첩꾼이 아닐까 생각합니다.

좀 더 겸손하십쇼...

하늘보다 더 높은 하늘이 있다는걸 아셨으면 합니다.

그럼

익명 사용자의 이미지

호호호..대단한 자신감이긴 한데..
어째 자만심으로 느껴지는군요..
독야청청 하신다는 분이 0.1%운운
하시는것은..
누구나 여기 와서 자신이 \"0.1%
포지션에 있다\"라거나 \"나는 울트라
일류 소프트웨어 엔지니어다\" 라고
이야기 할 수는 있습니다.
하기야 전 당신이 0.1%에 있던지
90%에도 못 들던지 간에 전혀 상관
안하지만..
그냥 적어봅니다..
happy narrow brain!

익명 사용자의 이미지

어쨋든 ... 제 자신의 위치는 파악할 수 있습니다.
코드를 보여달라는말 농담이시죠?
소스코드로 설계를 보려는 시도는 현미경으로 사람을
보려고 하는 시도와 마찬가지죠.. 코딩 스타일만
볼 수 있을뿐입니다..
전체 소스를 공개하지 않는이상 부분 소스는 무의미합니다.
함수들의 추상화단계도 알아낼수 없을걸요..

익명 사용자의 이미지

쩝.. 밑에글도 제글입니다.
한마디 더해야겠어서 씁니다.

왜 책에 관해서는 언급이 있으면서
사부에 관해서는 언급이 없죠?

;-)

익명 사용자의 이미지

\"덕분에 전산 전공자들보다 더 전산을 많이 안다고
인정받고 있습니다.. ^^ \"

...

\"어떻든 간에 제가 현업에서 일해본바 대로라면..
실력으로 따질때 저는 상위 0.1%안에 드는 IT개발자가
확실한듯합니다. \"

이런 오만한 말을 할수 있다니..
허허허..
\"가장 완벽한 코드 속에 가장 찾기 힘든 버그가 있다\"
라는 말을 한번쯤 생각해보시죠..

0.1%라....
농담하는건지 오만한건지..
전산 전공자의 무서움을 모르는군...

자신있다면 댁이 짠 코드의 일부분을 올려봐요
나의 눈으로 직접 보고 싶으니까..

익명 사용자의 이미지

저도 동감~ 똑똑한 분이시네요~~ ..

저는 전산전공자인데~.. 전산전공자중에서도 이런 소리가 있죠.
상위 5%(성적순 절대 아님)만 제대로 프로그래밍 할 수 있다고요~.. ^^
근데 상위 5% 수준의 사람들이 얼마만큼의 책을 볼까요??
님이 말하신 정도의 양은 기본서 정도로 다 가지고 봅니다. ^^

개인적인 역량만 가지고 좋은 프로그램이 나오질 않습니다.
보다 원만한 개인관계를~ ^^

초보리눅서의 이미지

똑똑한 분이시군요.

뛰어난 사람이 겸양의 덕을 갖추지 못하면 불행해 진답니다.

심성의 도야에도 정진하시기를.

익명 사용자의 이미지

움... 글의 후미에 느닷없이 거만해지셔서 갑자기 등골에 썰렁함이 감돌긴 했습니다만,

다른 여러분들도 바이블이라 할 수 있는 좋은 책들 여러분께 널리 알려 주셔서 참 좋았고, 또한 전적으로 \'내실있는 꾸준함을 강조하는\' 님의 말씀에도 공감합니다. 따라서 그 거만함이 왠지 김용옥 교수님의 지적 성취에 따른 거만함 같은 느낌이 들기도 합니다만... 어쨌거나 그 다음은 언급 회피.

익명 사용자의 이미지

저랑 전공이 같으시네요...-비전공이라는 면에서^^
그냥 제가 읽었고, 읽고 있는 책 중에서 좋다고
생각되는 책을 추천해 보면요.

자료구조&알고리즘 쪽에서는 이한에서 나온
[자료구조 & 알고리즘 in Java] -지금 제게 책이
없어서 정확한지는... 웨이츠 그룹으로 유명한
웨이츠가 공동 저자 중의 하나구요. 지겨울 정도로
반복적으로 쉽게, 명료하게 써놓았어요. 첨 나왔을 때
샀는데 오자가 좀 많더라고요. 심지어는 소스에도!
그치만 잠깐 퀴즈 정도로 생각하면 오히려 오자가
기달려 질 거예요. 또 하나 출판사에서 예제 소스
서비스를 전혀 하지 않는다는 것... 끌끌끌 책만 팔아
먹고... 여튼 이런 허다한 단점이 있는 책이지만
내용만 놓고 보면 천하무적입니다. 별 다섯 개 짜리!
(언어에 관계없이 좋은 책이랍니다^^)

글구 운영체제에 대해서는 unix 운영체제의 설계라는,
좀 오래된 책을 Unix 시스템 프로그램(홍릉)하구 같이
보면 좋을 거 같네요. 앞에 책은 출판사가...?
두 책 다 쉬운 책은 아니지만, 첫번 책은 거의 선택의
여지가 없는 책에 속하고, 두번째 책은 시스템 플밍
주제에서는 가장 쉬운 축에 속할 책일 거 같습니다.
(책 두께로 봐서...^^) 아울러 c 문법 정도 아신다면
꽤 좋은 c 활용 사례 연구처럼 보실 수 있을 거라고
생각합니다.

컴파일러론이나 디비, 화일구조같은 것은 차라리
얇은 대학 교재를 이용하는 것이 나을 듯 싶어요.
일단 전모를 파악하는 게 좋으니까... 전 동생이
사날른 방송대 교재로 공부했어용...(운영체제같은 건
이걸로 시작해두 좋을 거 같은데 디비나 알고리즘은
너무 어려워~~^^요)

혹 자바 쪽 좋아하시면 원서이긴 하지만,
Object-Oiented Software Development Using Java를
강권합니다. 객체지향 개념에 대해 실무적으로 확실히
체득하게 해 주는 좋은 책입니다. 영어도 평이하고...
자바를 이용해서 객체지향 개념을 실제적으로 가르쳐
주는 책이라고 생각하면 될 겁니다.

따지고 보면 어느 책 하나 쉬운 건 없겠지만, 그냥
작은 언덕이라고 생각하죠 뭐^^ 에베레스트를 넘기
위해서는!!

익명 사용자의 이미지

답글 감사합니다!
근데 저두 그만한 책들은 다 보았는데요.. ^^;
문제는 번역서의 번역이 엉터리라는것이..
아무래두 영어공부 더해서 원서를 보는것이 좋을거 같네요.. ^^
울나라 교수님들.. 책이나 좀 잘썻스면 좋겠는데.. 히.. ^^;

익명 사용자의 이미지

흠...
모모 출판사에서 나온 c++ 포인터라는 책 혹시
보셨나요. 쉽지 않은 주제의 책이지만 번역은 거의
대학 1학년생의 초벌 번역 수준이었지요.
오역에, 오식에... 그러나 감 잡고 읽어나가면 오식,
오역이 전혀 문제가 되지 않더군요.
전 내용을 파악 못할 정도로 문맥이 안맞고, 문장
구성이 안되고... 그런 책은 본 적이 없어요.
문제는 내용에 대한 이해입니다. 만약 님께서 어떤
책을 읽는데 그게 문맥도 안맞고 엉터리같다 하신다면
그건 님이 아직 그 자료에 대한 소화능력이 충분치
못하기 때문이라고 판단하심이 옳을 것 같습니다.
(다들 그런 책으로 공부했거든요. 그것도 자알^^)
요즘 웬만한 책들, 그렇게까지 엉터리는 아니라고요^^

에구 그냥 노파심에서 한 마디 했습니다...
(기분이 안 상하셨기를...)

zzaratra의 이미지

저도 전산 전공이 아닙
니다.전 재료 공학을 전
공하죠... 근데 어떻게
리눅스를 알게 되어 컴을
하게 되었습니다... 저는
책 보다는 잡지책을 추천
하고 싶네요... 저 같은
경우 97년에 리눅스를 알
게 된 후로 프세와 리눅
스 월드를 거의 빼놓지
않고 구독하고 있는데...
살때는 필요 없던 내용들
이 지금은 많은 도움을
주고 연재 되는 글 들이
어떠한 책보다.. 설명이
잘 되어 있는것 같고 도
움을 많이 주네요.. 저
는 프로그램세계를 강력
추천해 주고싶네요..

~~~~ 난 언제면 초보 소
리를 안들으려나
......................

익명 사용자의 이미지

* 자료구조
C로 배우는 알고리즘(이재규)
Data Structures in C(or C++) (Horowitz)

* 알고리즘
Algorithms in C++ (Horowitz) 고급

* 시스템 프로그래밍
System Software (Beck)

* 디지털 회로 & 아키텍쳐(RISC & CISC)
제목이.. -_-; (Mano)

* 프로그래밍 언어
Programming Languages (Sebesta?)

* 운영 체제
Operating Systems (Silberschatz)

* 컴파일러
Compiler.. (울만)

학부 수준에서 기본적으로 이런 책을 봅니다.

위에 있는 책들은 모두 번역판도 나와 있습니다.

물론 읽기에 어려운 책들도 있습니다.

로우 레벨에 관심이 있으시면 시스템 프로그래밍은

꼭 한번쯤 보고 실제로 구현해보는게 좋습니다.

익명 사용자의 이미지

Mano 가 쓴 책 :
Computer System Architecture / Prentice Hall

-----------
덧붙여 봅니다. (이책, ... 감동적입니다!!)

익명 사용자의 이미지

참...
이 책 보기 위해서는
디지탈 소자들 (MUX, DECODER, FF 등)
에 대한 지식이 약간 필요합니다.
저는
Ronald J. Tocci 의
Digital systems 를 봤습니다.

익명 사용자의 이미지

이책 지루합니다.
기냥...간단한거...지루하게 설명..
지루합니다.
그냥 우리나라 사람이 쓴 간단한 디지틀 회로 책 보는게 좋던데..

white23의 이미지

* 시스템 프로그래밍
System Software (Beck)
엔 이 책에다가...
\"Advanced Programming in the UNIX Environment\"
Writen by Stevens

* 그리고 network & IPC
UNIX Network Programming Volume I
UNIX Network Programming Volume II

* 그리고 protocol
TCP / IP Illustrated, Volume I
TCP / IP Illustrated, Volume II
TCP / IP Illustrated, Volume III

이 모두 Stevens씨가 쓴건데 정말 좋습니다.
정말 이거 배우고 나면(전 소장만...^^)은...
이미 당신은 해커입니다.

* 기본적인 C
ABC(A Book on C)

<어떠한 역경에도 굴하지 않는 \'하양 지훈\'>

어떠한 역경에도 굴하지 않는 '하양 지훈' - It's Now or Never!!!

익명 사용자의 이미지

저 역시 stevens씨의 책 강추임다.
초보급에는 안어울리지만 어느 정도 아는 수준이면 한 번은 꼭 봐야하는 책이죠 (저도 소장만 ^^;;)

참... stevens씨 작년에 사망했습니다(slashdot.org에 난리가 났었죠). 책 참 잘쓰는 사람인데....

익명 사용자의 이미지

이론 stevens가 사망했나요~.
몰랐네요~.

참 오랬동안 그분 책 봤고~. 후배들한테도 항상 추천해주는 책인데~
아쉽네요~ 그 뒤에를 볼 수 없다는 것이~

익명 사용자의 이미지

W. Richard Stevens이 쓴 책들은 적어도 UNIX계열쪽에서는 Bible로 통하지요..
다만 아쉽게도 작년에 이분이 작고 하셨다는것이..
얘기 듣기로는 이분은 UNIX 초기시절부터 이쪽으로 계속 참여해오셨던걸로 생각합니다..
일단 이분이 쓴 책들은 TCP/IP illustrate 1은 SunOS를 중심으로..
2는 BSD의 TCP/IP 소스를 중심으로..
3은.. 저도 아직 안읽어봐서 모릅니다.. ^.^
Advenced ~도 BSD를 중심으로 한걸로 알고 있습니다..
다만 아쉬운점은 자체 개발한 header를 쓴다는거..
(물론 소스는 책뒤에 공개되어 있지요..)
Network Programming 시리즈들도 Bible입니다.. ^.^
물론 이것들도 BSD계열을 중심으로 썼습니다만.. SunOS와 많이 비슷하니까요..
UNIX쪽에서 C로 시스템 엔지니어를 원하신다면 이분이 쓴 책들은 강추입니다.. ^.^
글고.. 이분이 쓴 책의 번역본은 TCP/IP illustrate 1과 Advanced Programming in the UNIX Environment, Network Programming 1만 있습니다.. 만..
번역본? 진짜로 보지 마십시요.. (그나마 TCP/IP 번역본이 젤로 읽을만 하더군요.. 전 다 원서로 봤습니다만.. -.-)
만약.. 빠른 이해를 원하시면 일단 번역서와 원서를 함께 보시는게 좋은 방법일듯..
(번역서를 쭉~ 읽다가 도저히 인간으로서 해석 불가능일때 해당 내용을 원서에서 찾는겁니다.. ^.^
번역서의 피해? 윗분이 얘기하셨듯 커널이 알맹이가 되고 shell이 껍데기,
queue는 대롱, stack은 통, big endian, little endian은 큰 끝돌이, 작은 끝돌이.. -.-
진짜로 황당한건 Login Shell(!).. 이건 사용자 인증을 위한 껍데기입니다.. -.-)
Stevens의 책은 다 좋으나.. 말장난같은 내용들이 많습니다..
(TCP/IP 시리즈를 읽으면서 느낌.. -.-)
이게 이 책들의 단점이라면 단점이겠지요..
그럼..

익명 사용자의 이미지

음냐... 다 좋은 책들인데요... -.- 단지 문제는
전산 전공자라고 해도... 위의 책들을 제대로
이해하는 사람이 별로 없다는... -.- (흑흑흑
사실 접니다.)

개인적으로는 자료구조를 열심히 하시라는...
모든 프로그램의 근본은 자료구조니까요.

어떤 사람의 유명한 말이 있었는데...

나에게 자료구조를 숨기고 알고리즘을 가르쳐준다면
그 프로그램이 뭔지 알 수 없지만...
자료구조를 가르쳐주고 알고리즘을 숨긴다면...
그 프로그램을 명확히 이해할 수 있다...

라고 비스무리한 말을 한것 같은데... -.-

쿠쿠쿠... 요새 느끼는 건데... 프로그래밍
언어에 담긴 사상을 알게 되면, 한결 좋은
프로그램이 나오는 것 같습니다. ^^;
프로그래밍 언어론도 공부해 보시는게...

위에 분이 적어주신 책들... 전부 저희 학부
교재들이네요... T.T (흑흑흑... 어려버 어려버)

하여튼 고운 하루되시길...

익명 사용자의 이미지

그 자료구조가 말씀하신 자료구조랑 같은 말이 아닐 텐데요?
잘은 모르지만...

익명 사용자의 이미지

음냐... 그런가요? 전 같은 의미로 알았는데...

정보는 어떤 형태로 저장하고... 그 방식은 어떻게
하는 것이 효율적인지에 대해서 배우는게 자료구조
아닌가요... -.-( 아니라면... 제가 잘못알아서 그런
것이니... 용서를)

스택, 큐, 트리, 그래프 등을 배우면서 어떤 식으로
프로그램을 설계 해야 하는지에 대해서 배우는게
자료구조라고 생각을 했는데... 음냐... -.-

하여튼 고운 하루~~~~~~

freesoft의 이미지

Data Structure 라는것은 의미있는 데이터들과 그 데이터들을 다루기 위한 방법이 함께 포함되어 있는 것입니다.

즉 Data Structure 는 Algorithm + Data 인 셈이죠.
따라서 Data Structure 안에는 데이터를 다룰 수 있는 방법들과(값을 입력하고 빼내고, 변경하는) 실제 의미있는 데이터들이 함께 포함되어 있는것입니다.

이걸 좀 더 명확하게 구분하기 위해서 만든게 Class 라는 개념이구요.

Algorithm -> method
Data -> field

이런 식인거죠.

익명 사용자의 이미지

앞에서 말한 \"나에게 자료구조...\"의 자료구조는 파일에 자료를 넣는 데이터의 관계(소위 말하는 데이터 베이스의 ER)를 말하는 것이구 뒤의 자료구조란 것(큐니 스택이니 이런것)은 메인메모리에 자료를 집어넣구 읽어오는 방법을 말하는 것 같네요 ㅋㅋ

냐하 졸리당 난 왜 낮에 졸리징 밤엔 멀쩡허구 힝~ 박쥔가?

익명 사용자의 이미지

쯧쯧 데이터베이스(화일)의 그거와 메모리 그거와는 같은 겁니다.

쯧쯧 모르는거 아는척 한다고 익명으로 글을 올렸길래
저도 익명으로 올립니다.

쉽게 얘기해서 데이터베이스에서 데이터를 정렬한다면 어떻게 할까요?
자료구조에서 말하는 정렬알고리즘이 연상되지 않나요?

자료구조를 전혀모르거나 건성으로 읽었거나 배웠나 보군요 쯧쯧

화일, 메모리 언급은 실망에 가까운 수준입니다.
그건 단지 기록매체가 주기억장치이냐 보조기억장치이냐의 차이이지...
큐가 쓰인다, 스텍이 쓰인다 그런게 아닙니다. --;

공부를 더 하시던지...
모르는거 아는척 하지 맙시다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.