나만의 개인 학습 커리큘럼 구축

게시 됨: 2022-03-10
빠른 요약 ↬ 개발자로서 우리는 끊임없이 새로운 언어와 프레임워크를 배우고 있습니다. 그러나 계속 진행하면서 최대의 이점을 보장하기 위해 이 학습을 어떻게 구성할 수 있습니까? 올바른 방향으로 계속 나아갈 수 있도록 자신의 커리큘럼을 고안하는 방법은 다음과 같습니다.

2019년 3월에 부트캠프를 마친 후, 독립적인 학습을 계속하기 위해 선택해야 하는 프레임워크, 라이브러리, 언어 및 과정에 압도되었습니다. 내가 이야기한 거의 모든 사람들은 무엇이 중요하고 추구할 가치가 있는지에 대해 서로 다른 의견을 가지고 있었지만, 그들 대부분은 '기본'을 배우는 것이 중요하다는 데 동의했지만 그것이 무엇인지 구체적으로 설명하지는 않았습니다.

지난 여름에 첫 번째 개발자 직업을 얻은 후에도 이 새로운 역할에 대한 요구를 충족시키기 위해 정기적인 과외 학습을 해야 한다는 것이 금세 명백해졌습니다. 한동안 Udemy 과정을 오가며 공부하다가 스스로 문제 해결 능력 을 키우지 않고 강사를 따라하는 동작을 하는 경우가 많았습니다. 새로운 재료를 제대로 이해하기 위해 나만의 작은 스크래치 패드 사이드 프로젝트를 만드는 데 시간이 걸렸습니다. 이제 저는 제 학습 스타일이 무엇인지 알았습니다. 코스나 직장에서 아이디어를 처음 접하고, 개념을 구체화하기 위해 프로젝트 스케치를 만든 다음, 가능하면 이 새로운 학습을 일상 업무에 사용합니다.

우리 대부분은 단기적으로 가장 잘 배울 수 있는 방법에 대해 (힘겹게 얻은) 확고한 감각을 가지고 있습니다. 그러나 그것이 장기 과외 학습의 구조로 어떻게 해석됩니까? 이 문제를 어떻게 해결했는지 알려드리겠습니다. 이러한 전략은 소프트웨어 개발이 처음이건 노련한 엔지니어이건 관계 없이 다양한 경험에 걸쳐 작동합니다.

나만의 개인 커리큘럼

이것이 내가 학습 커리큘럼 을 짜는 방법입니다. 제한된 시간과 지속적이고 집중적인 작업을 희생하면서 충동적인 바람에 휘둘리는 경향이 있는 사람으로서 나는 이 방법이 내 두뇌와 일반적인 리듬에 가장 적합하다는 것을 발견했습니다. 물론 마일리지는 다를 수 있습니다.

'꿈의 직업' 역할 사양을 사용하여 목표 설정

나는 이 단계가 모든 주변 소음을 없애고 향후 5년 정도 내 경력에 실질적으로 유용할 일에 집중하는 데 정말 유용하다는 것을 알았습니다. (프론트엔드 개발자로서 Rust를 배우는 데 눈이 번쩍 뜨이는 경우가 많습니다. 매력적이긴 하지만 정확히 우선순위는 아닙니다.)

거대한 기술 회사에서 직접 일하고 싶지 않을 수도 있지만, 좋든 나쁘든 대기업이 업계 전반의 분위기를 조성하는 경향이 있기 때문에 고용할 때 그들이 무엇을 우선시하는지 살펴볼 가치가 있습니다. 나는 언젠가 끝내고 싶은 사악하지 않은 회사의 작은 쇼핑 목록을 가지고 있으며 의미론적 HTML/CSS, 우수한 바닐라 JS 기술, 접근성 및 인기 있는 프레임워크와 같은 우선 순위를 모두 공유합니다. 언젠가는 Rust를 배우게 될 것이지만, 현재로서는 이러한 기술을 연구하는 것이 최우선 과제입니다.

작업 사양이 학습 목표로 어떻게 변환되는지 보여주는 그래픽
구인 게시판을 살펴보고 회사가 개발자를 고용할 때 어떤 요구 사항을 찾고 있는지 연구해 볼 가치가 있습니다. (큰 미리보기)

나는 인디드, 가디언 잡스, 링크드 인을 선호하는 경향이 있다 몇 달에 한 번씩 좋아하는 몇 안 되는 회사 의 '채용' 페이지 에서. @jesslynnrose라는 이름으로 트윗하는 Jessica Rose는 종종 다른 곳에서는 잘 알려지지 않은 '악이 아닌 회사'의 공석에 대한 긴 Twitter 스레드를 작성합니다.

몇 가지 직업 사양을 수집했다면, 그들 사이 의 공통점 을 찾아내고 기록해 두십시오. 다음 단계에서 사용하겠습니다.

원하는 기술을 개발할 수 있는 기회 식별

내가 언급한 그 목록을 기억하십니까? 두 개의 열로 나눕니다. 1열: 일상 업무에서 할 수 있는 일. 2열: 자신의 시간에 봐야 할 것들.

직장 학습

귀하의 목록에 있는 귀하의 일상 업무에 포함된 항목은 최소한으로 걱정할 필요가 있는 항목입니다. 무엇이든 이 분야의 기술은 시간이 지남에 따라 향상될 것입니다. 여러분 중 일부는 다양한 수준의 연공서열과 전문 분야를 가진 많은 개발자들로 구성된 거대한 조직에서 일하고 있을 것입니다. 저는 솔직하게 말해서 가치 있는 모든 것을 우유로 만들 것을 조언합니다.

접근성이 개선하고 싶은 지식 격차 라면 신경을 곤두세우고 직장에서 채팅/줌 커피에 대한 기술이 있는 사람에게 접근하십시오. 코딩 문제가 아닌 항목에 대해 '페어링'할 수 있다는 점을 이해하면서 그들과 짝을 지어보십시오. 정보를 찾는 위치, 유지 관리하는 Twitter 계정, 블로그 및 팟캐스트, 그리고 새로운 개발에 대한 최신 정보를 유지하는 방법에 대해 이야기하십시오.

점프 후 더! 아래에서 계속 읽기 ↓

재택 학습

1년 전 9주간의 부트캠프를 통해 업계에 뛰어든 두 가지 모두 컴퓨터 공학 관련 경력이 없는 사람으로서 저는 컴퓨터 과학에 대한 기본적인 이해를 가지고 있으며 많은 분들이 같은 상황에 처해 있을 것입니다.

저는 Frontend Masters가 컴퓨터 과학 원리와 보다 구체적인 학습에 대해 정말 잘 설계된 과정에 있어 매우 중요하다는 것을 알았습니다. 개인적으로 저는 Will Sentance의 Frontend Masters 과정이 어떻게 그리고 왜 바닐라 JavaScript에 관한 것인지 이해하는 데 가치가 있다는 것을 알았습니다. 마찬가지로, Brian Holt의 '5시간 동안의 컴퓨터 과학 4학기' 과정은 학생들에게 기술 면접에서 발생할 수 있는 일종의 개념에 노출시킵니다.

Frontend Masters에는 월간 구독료가 있으며 그만한 가치가 있지만 훌륭한 무료 리소스가 많이 있습니다. 아직 등록하지 않은 사람은 CS50에 등록하는 것이 좋습니다. Harvard University에서 운영하는 이 과정은 C, Python, JavaScript 및 윤리 및 기본 데이터 구조에 대한 모듈을 제공하는 훌륭한 무료 리소스입니다. 강의는 엄청나게 재미있고 시간 제약 없이 원하는 만큼 과정을 할 수 있습니다.

하버드에서 CS50 프로그래밍 강의 중 무대에 오른 학생들
CS50은 컴퓨터 과학과 프로그래밍 기술에 대한 철저한 소개를 가르치는 훌륭한 무료 리소스입니다. (큰 미리보기)

마찬가지로, FreeCodeCamp는 독학 개발자와 기존 기술을 기반으로 하려는 개발자 모두를 위한 핵심 출발점으로서의 지위를 얻었습니다. Udemy에서 귀하의 관심과 관련된 과정을 찾도록 권장합니다. 많이 할인되지 않은 Udemy 과정을 구입하세요. 몇 주에 한 번씩 판매가 이루어지며 항상 할인 코드가 떠돌아다니고 있습니다.)

제가 특히 좋아하는 것은 Andrew Mead의 The Complete Node.js 개발자 과정이며 저는 Colt Steele의 과정을 좋아합니다(알고리즘과 데이터 구조에 대한 특히 좋은 과정이 있어 알고리즘이 더 많은 편에 서게 될 경우 도움이 될 것입니다. 기술 면접 스펙트럼). Smashing Magazine은 또한 기술 향상에 도움이 되는 다양한 주제에 대한 온라인 워크샵을 자주 운영합니다.

아시는 바와 같이 기술 분야에서 사람들에게 일자리를 제공하는 기술은 사람들이 업무에서 사용하는 데 필요한 기술과 종종 다를 수 있습니다. 이 과정은 인터뷰를 위해 민첩하게 유지하면서 컴퓨터 공학 기초를 가르치고 다양한 데이터 구조와 장단점에 대한 간략한 요약으로 잠재적으로 압도하는 침묵을 채우는 데 도움이 됩니다. 요점은 이러한 과정을 모두 수행하는 것이 아니라 목표한 직무 사양에 맞는 과정을 식별하고 결합하는 것입니다 .

저는 Twitter가 코드 문제에 대해 대화할 사람들을 찾는 데 매우 유용하다는 것을 알았습니다. 지난 봄에 저는 Android Studio와 관련된 문제에 대해 허공에 소리쳤고 10분도 채 되지 않아 Android 개발자와 화상 통화를 하고 놀랐습니다. 뿐만 아니라 그는 기꺼이 도와주는 것 같았습니다!

개발자 커뮤니티의 친절을 과소평가하지 말고, 필요할 때 도움을 요청하는 것을 부끄러워하지 말고, 당신과 비슷한 세계의 사람들과 대화할 수 있는 상황에 최선을 다하세요. 기술 산업의 더 넓은 맥락. #CodeNewbie 해시태그는 도움이 필요할 때 사용할 수 있는 편리한 기능입니다.

목표 및 시간표 설정

이제 자기주도적 학습 목표를 일부 목표에 연결할 때입니다. 기준을 너무 높게 설정하지 마십시오. 일주일 만에 Udemy 과정을 완료하는 것이 비현실적이라면 너무 열심히 하려고 노력하지 마십시오. 목표를 달성하거나 인생의 다른 중요한 일을 희생하면서 또는 목표를 달성하지 못하고 스스로를 실패자처럼 느끼게 만듭니다. 동기를 유지 하기 위해 부드러운 압력을 가하되 압도되어 모든 의욕을 잃을 정도는 아닙니다.

아침형 인간으로서 나는 오전 9시 30분에 일을 시작하기 몇 시간 전에 공부에 가장 집중할 수 있다고 느낀다. 이를 염두에 두고 훌륭한 시간 추적 도구인 Toggl을 사용하여 매주 오전 7시에서 오전 9시까지 코드 연구에 시간을 보냅니다. Toggl을 사용하는 것은 나에게 매우 중요했습니다. 왜냐하면 아무리 많이 해도 충분하지 않다는 느낌이 자주 들기 때문입니다. 그러나 Toggl의 도움으로 나는 주당 최소 4시간 을 하고 있다는 것을 확실히 알 수 있었고(필요한 경우 저녁과 주말에 추가 시간도 포함) 내 자신의 기준에 따라 허용 가능한 시간을 모았다는 사실을 알고 안전했습니다.

진행 상황을 측정 가능하게 만들기

평균 주간 일정에 대해 생각하고 하루 중 어느 정도 집중할 수 있는 가장 좋은 기회를 차단 하도록 노력하십시오. 여러분 중 일부는 간병인이거나 그렇지 않으면 극도로 바쁠 것이며, 시간을 낼 수 있을 때 시간을 내는 것이 아마도 더 나을 것입니다.

예를 보는 데 도움이 된다면 제 개인적인 목표는 다음과 같습니다.

  • 2월 말까지 Node.js Udemy 과정을 완료하세요.
  • 매일 일하기 전에 30분의 Execute Program을 수행하십시오.

첫 번째 목표 세트에 대해 조심스럽게 실수를 시도하십시오. 원하는 경우 언제든지 압력을 높일 수 있지만 몇 가지에 성공하면 그렇게 하는 것이 좋습니다. 트랙을 유지하기 위해 해야 할 일에 정말로 집중할 수 있는 정신적, 육체적 여유 공간이 있는지 확인하십시오 .

멘토나 친구, 또는 둘 다를 찾아보세요!

멘토링은 대부분의 개발자가 기술을 향상시키기 위해 권장하는 것이지만, 제 개인적인 경험으로 볼 때 시간이 있는 사람을 찾는 것은 특히 지금 어려운 일입니다. Coding Coach와 같은 리소스가 도움이 될 수 있으며 모임과 소셜 미디어에서 꿈의 멘토를 찾았지만 완벽한 일치를 찾는 것은 말처럼 쉽지 않은 개발자를 몇 명 알고 있습니다.

저는 Thinkful(대규모 공개 온라인 과정(또는 줄여서 MOOC))의 교육 디자이너인 Falina Lothamer와 대화하여 전문가들이 독립적인 학습에 접근하는 방법에 대한 아이디어를 얻었습니다. 그녀는 멘토를 찾고 함께 일하는 것이 개발자로서의 기술을 발전시키는 데 중요하다는 점을 매우 분명했습니다.

“당신을 위해 뭔가를 마련해야 한다면 멘토가 '여기에 집중해야 한다고 생각합니다'라고 말하게 하고, 그들이 직장에서 무엇을 하고 있는지 보여주고, 당신이 속한 지역의 미래에 대한 의견을 공유합니다. 기술의 도움이 많이 될 것입니다. 업계에는 멘토 역할을 기꺼이 수행하고 누군가가 그들을 위해 한 일을 다른 사람들을 위해 기꺼이 하는 사람들이 많이 있다고 생각합니다.”

여러 Udemy 과정에서 벽에 부딪힌 것에 대한 좌절감을 표현한 후, 단순히 정보를 유지하고 다른 영역이나 다른 프로젝트에 적용하기 위해 배운 내용에 대한 확신이 없다는 것을 알게 된 Fallina는 다른 사람(이상적으로는 멘토이지만 당신과 비슷한 수준의 전문적인 경험을 가진 다른 개발자)에게 책임을 지는 것이 필수적이라는 점을 분명히 하십시오.

“개발자로서 당신은 당신이 알고 있는 것과 배우고 있는 방법을 보여줄 기회를 찾아야 합니다. 당신이 직면한 도전에 대해 이야기할 다른 사람이 있고, 누군가와 이야기를 나눌 수 있는 공간이 있고 '내가 하려고 하는 것은 복잡합니다. 검증은 엄청날 수 있습니다."

자신을 맡길 선임 개발자를 찾지 못한 분들을 위해 Fallina의 조언을 참고하여 업계에서 당신과 비슷한 수준의 다른 누군가에게 책임을 물을 것을 권합니다. 개발자들이 함께 뭉치고 이야기를 공유하면 이 일 어렵고 언젠가는 직장에서 버티기 위해 고군분투하는 유일한 엔지니어가 아니라는 점을 강화할 것입니다. 이 일은 감정적으로 매우 힘들 수 있으며, 아무 일도 잘 풀리지 않는 것 같을 때 함께 고군분투할 친구를 갖는 것은 매우 중요할 것입니다.

나는 당신의 기술 수준과 전문성에 대해 인터뷰 케이크, 프로그램 실행 또는 관련 Udemy 과정에 등록하고 친구와 거의 같은 시간에 같은 연습을 완료하는 것이 좋습니다. 당신이 더 쉽게 찾은 것과 넘어진 곳을 토론하고 내내 서로 연락을 유지하십시오. 이러한 일을 혼자 할 수는 있지만 공동체 의식을 키우는 것은 일을 계속하는 데 도움이 되고 계속 할 가능성이 높아집니다.

스크래치 패드 적용 사례

작업 외에 큰 부 프로젝트에 쏟아 붓는 시간과 에너지가 있다면 더 많은 권한을 얻을 수 있지만 그렇게 해야 한다는 압력은 다소 부담스럽습니다. 대신, 저는 스크래치 패드 프로젝트의 팬입니다. 주로 한 번에 많은 새로운 아이디어를 따르는 것이 정말 유익하고 개인 프로젝트에 빠르게 관심을 갖지 않고 시간 압박이 없기 때문입니다.

귀하의 사이드 프로젝트가 API를 호출하고, 반쯤 매력적인 방식으로 정보를 표시하고, 프로세스에서 무언가를 배웠고, 프로젝트를 더 큰 응용 프로그램으로 구축하는 것이 신경과, 돌보는 일정에 맞지 않는 경우 , 또는 귀하의 취향에 따라 휴식을 취하십시오 . 당신은 스케치를 위해 예술가를 비웃지 않을 것이고, 당신의 사이드 프로젝트가 과정에서 무언가를 얻는 한 반쯤 형성된 돌연변이라도 기분이 나쁘지 않을 것입니다. 내 GitHub 리포지토리는 지나간 좋은 아이디어에 대한 애가이며 나는 그것으로 평화를 이뤘습니다.

모으다

지금 세계의 상황을 감안할 때 내가 마지막으로 되고 싶은 것은 잠금 상태에서 생산성을 요구하는 또 다른 목소리입니다. 이것은 이것에 관한 것이 아닙니다. 이것들은 시간이 지남에 따라 배워야 할 때 나 에게 효과가 있었던 단계일 뿐이며, 지치거나 나 자신에게 과도한 압력을 가하지 않습니다. 그들이 당신을 위해 일한다면 훌륭합니다. 그렇지 않은 경우 걱정할 필요가 없습니다. 우리 모두는 각자의 속도가 있습니다.

단계

  1. 작업 사양을 사용하여 핵심 기술을 식별합니다.
  2. 이러한 기술을 직장 내 학습과 시간 내 학습으로 나눕니다.
  3. 명확하고 측정 가능하며 현실적인 목표를 설정하고 자신의 리듬을 찾은 경우에만 목표를 높이십시오.
  4. 멘토나 친구를 찾아 그 목표에 대해 책임을 지도록 하십시오.
  5. 안심하다! 지저분한 학습은 학습이 없는 것보다 낫습니다.

유용한 리소스

  • 유데미
  • 인터뷰 케이크
  • CS50
  • 프로그램 실행
  • 코딩 코치
  • 토글
  • #코드뉴비
  • Smashing Mag의 온라인 워크샵
  • 프리코드캠프
  • 프론트엔드 마스터
  • 물론
  • 가디언 작업
  • 링크드인

행운을 빕니다!