좋은 소프트웨어 개발자기 되기 위해 하드웨적인 지식을 요구하신다면, 전자공학 책은 매우 low level한 학문을 선택한듯 하네요.
이미 컴퓨터 과학에는 그럴때 필요한 정보가 담긴 분야가 잘 마련되어 있습니다.
단순히 stand alone 적인 머신을 생각했을 땐 computer architecture, operating system, computer system이 있습니다. CA, OS는 정말 중요합니다.
이런 하드웨어적인 구조에서 어떻게 C같은 중/고 수준의 언어가 만들어지는 지는 compiler 나 program language 를 보시면 되구요.
이제 이런게 익숙해 지시면 네트워크로 가서 하드웨어적으론 어떻게 통신을 하는지 알기 위해선 data and computer communications 를 보시면 되고 소프웨어적인 하이레벨은 computer networks 를 보시고 그 상위는 distributed system 을 보시면 됩니다.
혹시 오해하실까봐 하는 말인데
여기서 하이레벨이나 로우레벨은 난이도나 가치를 말하는게 아니고 추상화 수준을 말하는겁니다.
그리고 컴퓨터 모니터나 프린터가 어떻게 만들어지에 대한 건 컴터 분야에는 없네요. ㅎㅎ 그건 어쩔 수 없이 전기/전자 공학을 ^^;;
ssehoony님께서 잘 설명해주셨는데,
Computer Architecture와 Operating System이 가장 필수적인 과목인 것 같습니다.
그리고 디지털 회로에 관한 과목을 이에 앞서 들으시면 더 좋을 것 같습니다.
제가 학부 때에는 Katz의 'Contemporary Logic Design'이라는 책으로 배웠습니다.
조금 오래 된 책이네요.
Computer Architecture는 Patterson & Hennesy의 'Computer Organization & Design - The Hardware/Software Interface'이라는 책으로 배웠습니다.
부제가 말이 말해주듯이 Microprocessor 개발자나 OS개발자 모두에게 필요한 과목이 아닌가 싶습니다.
조금 더 심화된 내용을 알고 싶으시면 같은 저자의 'Computer Architecture - A Quantitative Approach'라는 책을 추천합니다.
여기까지 배우면 아마도 RTL 수준에서 간단한 CPU를 설계한다거나,
각종 Processor Architecture Manual등을 이해하는데 무리가 없을 것 같습니다.
혹시나라도 이후에 디지털 하드웨어 설계에 관심이 있으시다면,
Rabaey의 'Digital Integrated Circuits'와 Weste의 'Principles of CMOS VLSI Design'이라는 책을 추천합니다.
------
저는 Nadia85님과 반대로 전자공학을 전공했고 (현재 microprocessor 분야를 공부하고 있습니다.)
컴퓨터 공학에 관심이 있어서 이번에 System Programming이라는 과목을 수강했습니다.
OS랑 거의 비슷한 과목인데, 약간 practical한 부분을 배웁니다.
주교재로 많이들 보시는 OS책을 사용했고,
부교재로 Stevens의 'Advanced Programming in the UNIX Environment'와 'TCP/IP Illustrated, Vol. 1',
그리고 McKusick의 'The Design and Implementation of the 4.4BSD Operating System'를 사용했네요.
전자분야는
전자분야는 스펙트럼이 넓기 때문에 먼저 어떤 목적으로 어떤 것을 하고 싶은지 말씀해주시는 것이 좋을 것 같습니다.
다음 링크가 도움이 될런지 모르겠네요.
http://www.ee.kaist.ac.kr/kor/education/course.asp
http://ee.yonsei.ac.kr/Curriculum/Department/TreeD.asp
What a wonderful world!
좋은 자료
좋은 자료 감사합니다.
아, 그리고 제가 하드웨어 쪽을 공부하고 싶은 목적는
요즘 컴퓨터 공학쪽 수업을 들으면서, 자꾸 먼가 부족하지 않나... 이런 생각이 들어서
막연히 하드웨어 쪽을 공부해야 겠다고 생각한 것 입니다.
소프트웨어를 한다는게, 하드웨어 밑단을 모르고 한다는데 왠지 꺼림직 한것 같기도 하고,
만약 임베디드 관련 연구를 안다고 하면, 컴퓨터 공학쪽에서 할 수 있는지 뭐가 있을지,
전자 쪽 분야에서는 프로그램으로 해결할 수 있는 걸 SoC로 처리 한다는 소리도 듣고 이쪽으로도 조금 호기심을 느낌니다.
또 막상 사회에 나가면 지금 배운걸 써 먹을 수 있는데가 어디 있나라는 두려움도 느낌니다.
공대에서 입학점수가 가장 높은 과중 하나를 들어왔다고 자부 하고 있었는데
2학년을 끝낸 지금, 내가 뭐했나... 이런 자멸감마저 듬니다 ㅠ,.ㅠ
여기계신 이쪽을 전공하신 선배님들도 저랑 비슷한 고민을 하지 않았을까하는 생각이 드는데요,
조언 부탁 드립니다.
좋은 소프트웨어
좋은 소프트웨어 개발자기 되기 위해 하드웨적인 지식을 요구하신다면, 전자공학 책은 매우 low level한 학문을 선택한듯 하네요.
이미 컴퓨터 과학에는 그럴때 필요한 정보가 담긴 분야가 잘 마련되어 있습니다.
단순히 stand alone 적인 머신을 생각했을 땐 computer architecture, operating system, computer system이 있습니다. CA, OS는 정말 중요합니다.
이런 하드웨어적인 구조에서 어떻게 C같은 중/고 수준의 언어가 만들어지는 지는 compiler 나 program language 를 보시면 되구요.
이제 이런게 익숙해 지시면 네트워크로 가서 하드웨어적으론 어떻게 통신을 하는지 알기 위해선 data and computer communications 를 보시면 되고 소프웨어적인 하이레벨은 computer networks 를 보시고 그 상위는 distributed system 을 보시면 됩니다.
혹시 오해하실까봐 하는 말인데
여기서 하이레벨이나 로우레벨은 난이도나 가치를 말하는게 아니고 추상화 수준을 말하는겁니다.
그리고 컴퓨터 모니터나 프린터가 어떻게 만들어지에 대한 건 컴터 분야에는 없네요. ㅎㅎ 그건 어쩔 수 없이 전기/전자 공학을 ^^;;
ssehoony님께서 잘
ssehoony님께서 잘 설명해주셨는데,
Computer Architecture와 Operating System이 가장 필수적인 과목인 것 같습니다.
그리고 디지털 회로에 관한 과목을 이에 앞서 들으시면 더 좋을 것 같습니다.
제가 학부 때에는 Katz의 'Contemporary Logic Design'이라는 책으로 배웠습니다.
조금 오래 된 책이네요.
Computer Architecture는 Patterson & Hennesy의 'Computer Organization & Design - The Hardware/Software Interface'이라는 책으로 배웠습니다.
부제가 말이 말해주듯이 Microprocessor 개발자나 OS개발자 모두에게 필요한 과목이 아닌가 싶습니다.
조금 더 심화된 내용을 알고 싶으시면 같은 저자의 'Computer Architecture - A Quantitative Approach'라는 책을 추천합니다.
여기까지 배우면 아마도 RTL 수준에서 간단한 CPU를 설계한다거나,
각종 Processor Architecture Manual등을 이해하는데 무리가 없을 것 같습니다.
혹시나라도 이후에 디지털 하드웨어 설계에 관심이 있으시다면,
Rabaey의 'Digital Integrated Circuits'와 Weste의 'Principles of CMOS VLSI Design'이라는 책을 추천합니다.
------
저는 Nadia85님과 반대로 전자공학을 전공했고 (현재 microprocessor 분야를 공부하고 있습니다.)
컴퓨터 공학에 관심이 있어서 이번에 System Programming이라는 과목을 수강했습니다.
OS랑 거의 비슷한 과목인데, 약간 practical한 부분을 배웁니다.
주교재로 많이들 보시는 OS책을 사용했고,
부교재로 Stevens의 'Advanced Programming in the UNIX Environment'와 'TCP/IP Illustrated, Vol. 1',
그리고 McKusick의 'The Design and Implementation of the 4.4BSD Operating System'를 사용했네요.
What a wonderful world!
댓글 달기