게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
초보자가 C언어 포인터에서 좌절하는 이유는
게시물ID : programmer_931짧은주소 복사하기
작성자 : 잠이오네요
추천 : 2
조회수 : 3903회
댓글수 : 7개
등록시간 : 2014/01/31 19:15:58


포인터가 초보자들에게 가르칠만한 개념이 아니거든요....-_-

기본적으로 CPU에서 메모리 접근을 어떻게 하는지, 또 OS에서 프로그램에게 메모리를 어떻게 할당하는지 이해하고

힙 영역과 데이터 영역과 코드영역이 어떻게 구분되는지 알아야지 포인터라는게 어떻게 작동하는지 정확히 이해할 수 있고

그래야 포인터 사용중 발생한 논리적 오류들이 왜 발생했는지 원인을 올바르게 추측하고 디버깅이 가능한데

이정도의 컴퓨터공학적 소양이 없는 사람이 무턱대고 C를 배우기에는 C언어, 특히 포인터는 너무 어려운 개념이라고 생각합니다.

대부분의 대학이 C를 첫 언어로 가르치는 이유는 교수들이 그 언어가 제일 익숙한 것도 있겠지만

차후에 공학적 지식을 쌓아 나가다보면 C의 동작이 컴퓨터의 원리와 구조가 맞물리며 이해가 가는 경우가 많기 때문이라고 봅니다.

즉, 본격적으로 컴퓨터공학을 깊게 배울 사람이 아니라면 C언어는 필요 이상으로 어려운 언어라고 봅니다.

컴퓨터 공학에 대한 공부 없이 C만 1년을 배운들 printf같은 함수가 다수의 인자를 받아들일 때 

이게 메모리상에서 어떻게 적재되고 어떻게 동작하는지 이해할 수 있는 사람이 얼마나 될까요, 결코 많지는 않으리라 봅니다.
(언어를 배우는게 단순히 사용법만 배우는 걸로 충분하다면 상관 없겠지만, 그래서야 코더 이상 되기는 힘들겠죠)

그래서인지 최근에는 다른 언어를 첫 언어로 가르치는 대학도 늘어나는 추세 같더라구요...

사실, 어려운 걸로 따지면 C++도 풀 썰은 많습니다

리누스 토발즈가 C++은 제대로 다룰 수 있는 개발자가 너무 적다며 리눅스 커널 개발에서 C++을 제외하고 C만 쓰기로 한 일화도 있죠
(그래서 리눅스 커널은 아직도 C로만 작성됩니다.)

아무튼 틈틈히 여러가지 썰을 풀 여유가 있으면 좋겠네요 

CoderDeveloperHackerHanselmanVennv2_77a2dcf3-ea76-4508-8645-2b7e0f261d40.png

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호