저는 올해를 졸업했으며 C 프로그래밍, Linux 관리 및 임베디드 시스템 개발과 관련된 첫 번째 직업을 얻었습니다. 나는 직업에 만족한다고 느끼지만,이 분야에서 성공적인 프로그래머가되지 않을까 걱정됩니다. 나는 지금 내 직업에있어 고독한 개발자입니다. 팀원들이 하드웨어 전문가가되어서, 임베디드 프로그래밍 방식으로 저를지도하거나 가르쳐 줄 사람이 없습니다. 나는 스스로 공부해야합니다.
여기 내 질문이 있습니다. 선임 프로그래머의 감독없이 엔트리 레벨에서 시작하여 우수한 임베디드 시스템 개발자가 될 수 있습니까? 어떻게 하나가 될 수 있습니까 (아마도 포럼, IRC 채널, 좋은 교과서의 도움으로)? 얼마나 걸립니까?
업데이트 : 지금까지 몇 가지 유용한 답변을 받았지만 주제에 대한 특정 포인터가 필요하다는 것을 깨달았습니다.
그래서, 여기 내 특정한 질문이 있습니다 :
- 임베디드 개발을 배우기 위해 사용할 수있는 좋은 교과서는 무엇입니까?
- 주목할만한 임베디드 개발자에게 도움이 될 수있는 전문화 된 온라인 커뮤니티는 무엇입니까 (스택 오버플로, Reddit 등과 같은 일반적인 사항은 제외)?
- 임베디드 개발 전용 블로그는 무엇입니까?
답변
당신의 경우에있는 것이 일을 조금 더 힘들게 할 것입니다. 그러나 문제를 해결하기위한 많은 솔루션이 있습니다.
-
먼저 이와 같은 지역 사회 에 참여 하려고 노력 하십시오. 참여하면 지식을 키우고 더 중요한 것은 다른 사람들을 만나는 것입니다.
-
코드 캠프 또는 실제로 다른 개발자를 만나는 이니셔티브 에 참여 하십시오 . 상대방 앞에있을 때 지식을 공유하는 것이 더 쉽습니다.
-
상사에게 1 년 에 최소 10 일의 훈련 을 예약하도록 요청하십시오 . 그가 거부한다면, 여기에 장점을 설명 할 필요가 없습니다.
-
시도 2 회의 또는 무역 쇼 1로 이동 귀하의 비즈니스와 관련된.
-
2 개월마다 기술 서적 을 읽으십시오 . 더 읽을 수 있다면 망설이지 마십시오.
-
멘토를 얻는다 . 물론 달성하기가 가장 쉬운 것은 아닙니다.
-
책, 커뮤니티, 전시회, 교육 등에서 읽은 것들에 대한 새로운 기술을 시도함으로써 일주일 동안 시간을내어 실험하고 연구 개발 을하십시오. 배운 것을 실천하는 데 시간을내는 것이 매우 중요합니다.
-
오늘날 당신은 유일한 개발자이지만, 당신의 노력 덕분에 당신이 속한 회사는 성장할 것이며 아마도 더 많은 사람들을 고용해야 할 것입니다 .
답변
저는 현재 직장에서 고독한 개발자입니다. 팀원은 하드웨어 전문가입니다.
그것들을 자원으로 사용하는 것을 망설이지 마십시오. EE가 아닌 임베디드 프로그래머에게 가장 어려운 점 중 하나는 하드웨어에 익숙해지는 것입니다. 회로도 (설계 할 수없는 경우에도)를 읽고 스코프를 사용하여 마이크로 컨트롤러에서 나오는 신호를 보는 방법을 이해하는 것이 매우 유용합니다.
답변
이 질문을 한 지 오래되었습니다. 잘 지냈 으면 좋겠습니다. 다음은 도움이 될만한 추가 제안 사항입니다.
스택 교환 및 블로그
놀랍게도 Stack Exchange에는 임베디드 시스템을위한 자체 Q & A 사이트가 없습니다. 하나는 약 2 년 전에 제안되었지만, 여전히 약정 단계에 있으며,이를 지원하기 위해 충분한 사람들이 가입하지 않아도 어려움을 겪고 있습니다. 차이를 만들고 싶다면 여기로 이동하십시오.
http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development
제안서를 읽고 동의하면 커밋을 클릭하여 참여하십시오.
또한 Linked In에는 임베디드 시스템 그룹과 관련성이 높은 몇 가지 관련 그룹이 있습니다.
웹 자료
EETimes에는 임베디드 시스템에 대한 기능이 있습니다.
http://www.eetimes.com/design/embedded
Dr. Dobbs는 모든 유형의 프로그래머에게 오랜 친구이자 임베디드에 큰 도움이되었습니다.
http://www.drdobbs.com/embedded-systems
Arduino 커뮤니티는 규모가 크고 열정적이며 가격 및 사전 교육을 포함하여 임베디드 프로그래밍에 대한 진입 장벽을 제거했습니다.
임베디드 시스템을 주로 사용하는 여성 소프트웨어 개발자 또는 계몽되지 않은 남성 개발자 인 경우이 사이트를 확인하십시오. 저자는 MIT 졸업생으로, 상자 밖으로 (또는 때로는 Altoids-box iPhone 충전기와 같은 상자에서) 초초를했으며, 디자인, 글쓰기 및 비디오 블로깅에서 매우 많은 것으로 보입니다.
http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !
http://www.adafruit.com/tutorials
많은 공급 업체가 광범위한 데이터 시트, 애플리케이션 노트, 백서 및 개발 도구의 무료 또는 평가판을 보유하고 있습니다. 이 분야의 최고 기업으로는 ARM, Atmel, Freescale, 인텔, Microchip Technologies, NXP (이전 Phillips), TI 등이 있습니다.
서적
찾을 수 있는지 확실하지 않지만 도구 (어셈블러, 링커, 로더) 및 마이크로 프로세서 (인터럽트, I / O, 단순)에서 발생하는 기본 사항과 관련하여 임베디드 시스템에 대한 많은 이야기를 들려줍니다. 작업 관리자 및 스케줄러, 간단한 파일 구조). 소규모 컴퓨터를위한 시스템 프로그래밍, Daniel Marcellus.
보다 현대적인 참조는 Embedded Linux Primer입니다. 초기 장에서는 임베디드 시스템에서 Linux를 실행 한 이유와 관련 메커니즘에 대해 설명합니다. 3 장에서는 현재 설계에 사용할 수있는 프로세서 + 지원 칩셋 및 SOC (System On a Chip) 옵션에 대해 설명합니다. 실제로, 목표는 움직이고 있기 때문에 책의 출판과 함께 현대적인 출발점이됩니다. 3 장은 훌륭하지만 웹에 대한 추가 조사와 공급 업체와의 논의를 통해 보완해야합니다. 일반적으로 프로젝트의 전기 엔지니어 및 수석 소프트웨어 엔지니어가 프로세서를 선택하므로 회사에 있거나 임베디드 시스템을 배우는 경우 선택한 하드웨어에 대해 자세히 알아보십시오.
이후 장에는 Linux를 하드웨어로 대상으로하는 많은 실제 측면에 대한 광범위한 설명이 포함되어 있지만 공급 업체와의 제휴 및 표준 참조 디자인을 사용하면 노력이 크게 줄어들 수 있습니다.
답변
그것은 대부분 자신에 달려 있습니다. 당신이 기꺼이 배우고 주제에 대한 충분한 정보를 수집하는 방법을 알고 있다면 당신은 무엇이든 가르 칠 수 있습니다. 그러나 모든 사람들이 그렇게하는 데 똑같이 성공하는 것은 아닙니다.
나는 비슷한 환경에서 시작했고 5 년 전 (전자 엔지니어로 학위를 받았으며 프로그래밍 배경이 거의 없음)과 반대되는 위치를 보면 인간의 두뇌가 무엇을 할 수 있는지 놀랍습니다. 시작했을 때 나는 디자인 패턴, TDD에 대해 들어 본 적이 없었고 실제 프로그램의 코드를 보지 못했습니다. 이제 나는 이것들을 꽤 잘 알고 있으며 사용법을 알고 있습니다. 내가하는 유일한 일은 인터넷을 검색하고 다른 책과 일부 책 (다시 인터넷에서 찾은 책)에서 코드를 읽는 것입니다. 가장 중요한 것은 많은 코드를 작성하고 디버그하고 내 실수로부터 배우는 것입니다. 실수로부터 배우는 것은 단지 샘플을 읽고 행동을 복제하는 것이 아니라 무언가를 배우는 훨씬 더 좋은 방법입니다. 매우 이상하지만, 실생활에서 좋은 프로그래머라고하는 것을 몇 번만 이야기했습니다.
여기에서 유일하게 다른 프로그래머는 당신이 선배라고 부르는 것입니다 (15 년 이상 일을했기 때문에). 그는 나와 완전히 다른 방식으로 일합니다. 그리고 그는 여전히 클래스가있는 C의 주름 잡힌 형태를 작성하고 STL을 사용하지 않으며 디자인 패턴 등을 전혀 모릅니다 (아마도이 문제에 대한 질문을 곧 시작할 것입니다. 그에게 적어도 내 방법 중 일부를 채택하게하십시오.)