임베디드 시스템에 입문하시나요? 그렇다면 잘 오셨습니다. ^^ 저도 시작한 지 얼마 안되서 함께 학습하시면 좋겠습니다.
효과적인 학습은 개인마다 차이가 있을 것 같아서 우선 제 경험을 말씀드리겠습니다.
저는 이미 소프트웨어 개발 경력이 있고, C 뿐만 아니라 다른 언어를 많이 사용해 왔습니다. 그러므로 C 언어와 프로그래밍에 대해서는 어느 정도 지식이 쌓인 상태입니다. 그러나 C 언어에 대해 잘 안다고 해도 임베디드 시스템에 대한 학업 성취도를 말하기는 어렵다고 생각합니다.
물론 프로그램을 작성하기 위한 언어를 잘 알아야 하는 것은 당연하지만 그에 못지 않게 그 시스템의 기본 바탕인 OS, 즉 리눅스에 대해 이해를 하셔야 하며, 주로 사용하시는 OS만큼은 아니더라도 리눅스와 친숙하셔야 겠습니다. 제가 만든 프로그램이 바로 리눅스 위에서 실행되니까 말이죠. ^^
보통 쉽게 생각하시는 것이 단계적인 학습입니다.
먼저 C 언어를 학습하고, 그 다음에는 리눅스를 학습하고, 리눅스에 대해서 좀 알게되면 최종적으로 임베디드 보드를 구매해서 임베디드 보드에서 프로그램을 작성한다라고 생각하시는 경우가 있습니다.
경험으로도 이렇게 생각하시는 분들이 의외로 많습니다. 그러나 이렇게 하시면 지루하고 재미 없습니다. 대부분 C 언어를 학습하다가 중도에 포기하시죠. ^^
제 생각에는 병행하시기를 권합니다.
즉, 리눅스를 직접 설치하시고 윈도즈나 다른 OS와이 네트워크 연결을 해 보시면서 네트워크에 대한 이해와 환경 설정에 친숙해 지시고, 직접 리눅스에서 프로그래밍 하시면서 C 언어를 학습하시면 자연스럽게 리눅스와 친숙해 집니다.
물론 무지 답답하고 학습 진척이 더딘듯 합니다만 점점 가속도가 붙습니다. 답답하게만 느꼈던 쉘 명령도 손에 익어가구요.
그리고 에러로 꽉찾던 프로그램을 하나씩 에러와 경고를 없애고 드디어 실행되는 프로그램을 작성하셨다면 꼭 임베디드 보드에 옮겨서 실행해 보십시오.
임베디드 보드를 한 마디로 말씀드린다면 "매우 열악한 시스템"입니다.
환경이 매우 좋은 PC와는 비교하기 힘들 정도로 임베디드 보드는 기본적으로 CPU의 속도와 메모리 용량 및 기타 리소스 면에서 매우 열악합니다.
태생적으로 임베디스 시스템은 원래 이런 열악한 환경에서 자신의 임무를 꿋꿋이 수행할 수 있도록 만들어진 것입니다.
그러므로 PC하고는 또 다른 문제점을 만나실 수 있고, 그 문제점을 해결하다 보면 임베디드 시스템에 대한 이해와 경험을 높일 수 있습니다.
또한 임베디드 보드에서 프로그램을 실행 시켜놓고 잘 돌아 가는 모습을 보면 학습 성취도와 학구열을 높일 수 있습니다.
임베디드 시스템에 입문하시나요? 그렇다면 잘 오셨습니다. ^^
저도 시작한 지 얼마 안되서 함께 학습하시면 좋겠습니다.
효과적인 학습은 개인마다 차이가 있을 것 같아서 우선 제 경험을 말씀드리겠습니다.
저는 이미 소프트웨어 개발 경력이 있고, C 뿐만 아니라 다른 언어를 많이 사용해 왔습니다.
그러므로 C 언어와 프로그래밍에 대해서는 어느 정도 지식이 쌓인 상태입니다.
그러나 C 언어에 대해 잘 안다고 해도 임베디드 시스템에 대한 학업 성취도를 말하기는
어렵다고 생각합니다.
물론 프로그램을 작성하기 위한 언어를 잘 알아야 하는 것은 당연하지만
그에 못지 않게 그 시스템의 기본 바탕인 OS, 즉 리눅스에 대해 이해를 하셔야 하며,
주로 사용하시는 OS만큼은 아니더라도 리눅스와 친숙하셔야 겠습니다.
제가 만든 프로그램이 바로 리눅스 위에서 실행되니까 말이죠. ^^
보통 쉽게 생각하시는 것이 단계적인 학습입니다.
먼저 C 언어를 학습하고, 그 다음에는 리눅스를 학습하고,
리눅스에 대해서 좀 알게되면 최종적으로 임베디드 보드를 구매해서
임베디드 보드에서 프로그램을 작성한다라고 생각하시는 경우가 있습니다.
경험으로도 이렇게 생각하시는 분들이 의외로 많습니다.
그러나 이렇게 하시면 지루하고 재미 없습니다.
대부분 C 언어를 학습하다가 중도에 포기하시죠. ^^
제 생각에는 병행하시기를 권합니다.
즉, 리눅스를 직접 설치하시고 윈도즈나 다른 OS와이 네트워크 연결을 해 보시면서
네트워크에 대한 이해와 환경 설정에 친숙해 지시고,
직접 리눅스에서 프로그래밍 하시면서 C 언어를 학습하시면
자연스럽게 리눅스와 친숙해 집니다.
물론 무지 답답하고 학습 진척이 더딘듯 합니다만 점점 가속도가 붙습니다.
답답하게만 느꼈던 쉘 명령도 손에 익어가구요.
그리고 에러로 꽉찾던 프로그램을 하나씩 에러와 경고를 없애고
드디어 실행되는 프로그램을 작성하셨다면
꼭 임베디드 보드에 옮겨서 실행해 보십시오.
임베디드 보드를 한 마디로 말씀드린다면 "매우 열악한 시스템"입니다.
환경이 매우 좋은 PC와는 비교하기 힘들 정도로
임베디드 보드는 기본적으로 CPU의 속도와 메모리 용량 및 기타 리소스 면에서
매우 열악합니다.
태생적으로 임베디스 시스템은 원래 이런 열악한 환경에서
자신의 임무를 꿋꿋이 수행할 수 있도록 만들어진 것입니다.
그러므로 PC하고는 또 다른 문제점을 만나실 수 있고,
그 문제점을 해결하다 보면 임베디드 시스템에 대한 이해와 경험을 높일 수 있습니다.
또한 임베디드 보드에서 프로그램을 실행 시켜놓고
잘 돌아 가는 모습을 보면 학습 성취도와 학구열을 높일 수 있습니다.
말이 어쩌다 보니 길어 졌네요. 모쪼록 도움이 되는 글이었으면 좋겠습니다. ^^