학습이 힘들다면 이것이 당신을 위한 내용입니다.
Source: Dev.to
저는 거의 10년 동안 기술을 따라잡아 왔고, 함께 일했던 대부분의 원격 개발자들은 제가 어떻게 그렇게 하는지 물어봅니다.
우리가 뭔가를 배워야 한다고 가정하고, 그 뭔가가 1부터 10까지의 번호라고 생각해 봅시다.
각 번호는 하나의 전체 섹션이므로 복잡합니다.
이상적으로는 1을 배우고, 그 다음 2, 3 순으로 배우는 것이 학습 방식이지만, 저는 지난 10년 동안 이런 선형적인 학습 방식을 따르지 않았습니다.
처음부터 모든 것을 완전히 마스터하거나 완전히 이해할 필요는 없습니다. 새로운 개념과 아이디어에 뇌를 노출시키기만 하면 됩니다. 1을 이해하지 못한다면 2, 3, 4 등으로 넘어가세요. 8이나 9에 도달했을 때 다른 접근법으로 다시 돌아오면 됩니다.
예를 들어, 최근 저는 C++와 ESP‑IDF(Espressif IoT Development Framework) SDK를 사용한 하드웨어 개발에 참여했습니다. 그리고 배선, 전자공학, PCB, KiCad 회로 설계 등을 각각 따로 배우는 데 시간을 낭비하는 대신, 실용적인 임베디드 시스템 개발(펌웨어 + 풀스택 개발 + IoT)을 바로 생산 가능한 수준으로 완전히 몰입하기로 했습니다.
그래서 저는 Golang 백엔드와 함께 Flutter 앱을 만들고, 하드웨어 프로그래밍을 위한 C++와 ESP‑IDF SDK 코드를 넣을 firmware라는 새 폴더를 만들었습니다. 사용되는 업계 표준 도구들을 조사한 뒤 회로도와 PCB 설계를 위한 KiCad와 3D 디자인을 위한 Autodesk Fusion 360을 다운로드했습니다.
보시다시피 일들이 이미 쌓이고 있습니다.
또한 C++ 펌웨어가 제어할 IoT 장치들을 구매했고, 마지막으로 배선을 위한 작은 작업 공간도 마련했습니다.
각각을 마스터하려면 몇 달이 걸렸을 텐데, 저는 “내 방식”을 선택했습니다. 전체 라이프사이클을 한 번에 진행했고, 단 일주일 만에 하드웨어 개발 전체 라이프사이클의 약 80%를 Flutter와 Golang 프로젝트에 WebSocket으로 완전히 연결한 상태로 완료했습니다. 남은 20%는 지금은 건너뛰어도 됩니다. 왜냐하면 이 소중한 시간을 “읽기” 같은 다른 분야를 복습하는 데 사용할 것이기 때문입니다 😄.
맞아요, 언급하지 않았지만 새로운 개념에 대해 읽고 조사하는 것도 필요합니다. 코딩을 제외한 모든 것이 거칠고 다듬어지지 않은 느낌이었지만 계속 진행했고, 이제 8과 9에 도달하면서 자동으로 성숙해지는 질문과 개념들이 생겼습니다. 저는 AI에게 질문을 쏟아붓고 배우고 있습니다.
이와 같은 과정을 몇 가지 다른 프로젝트에 몇 번 더 반복하면 완전한 임베디드 시스템 엔지니어가 될 수 있습니다. 이는 제 커리어에 새로운 기회를 열어줄 것입니다.
다음에 배우기로 결심한다면, 어떤 단계를 밟을 건가요? 선형적인 방법을 선택할 건가요, 아니면 더 실용적인 방법을 선택할 건가요? 😉