개발 공부 기록하기

반드시 읽어봐야 할 개발 학습법 19가지(1) 본문

프밍/[인강] 비전공자를 위한 개발자 취업 올인원 가이드

반드시 읽어봐야 할 개발 학습법 19가지(1)

태영(泰伶) 2022. 10. 20. 23:43

1. 프로그래밍 학습 방법(우아한형제들 교육 이사 박재성)

    지식 먼저 학습하고 만들기 vs. 무언가를 만들면서 관련 지식을 습득해 나가기

            → 내 학습 성향은 어느 쪽일까?

 

  • 새로운 용어, 개념 이해 안 되는 것

        → 책 & 온라인에서 비슷한 예제 반복 연습하기! (용어는 나만의 용어로 따로 정리해두기)

 

  • 모르던 개념이 다음 단계 연습하다가 자연스럽게 이해될 수도 있다

        → 그니까 이해 안 된다고 주구장창 붙들고 있지 말고 건너뛰어도 괜찮다.

 

  • 검색 습관화

        → 모르는 용어 & 내용은 구글링으로 관련 자료 찾아서 이해할 수 있는 부분까지 이해하려고 도전하기.

          용어를 이해해야 검색도 잘 한다. 한국어 검색만 고집하지 말고 영어를 적극 활용해 검색하자.

 

https://www.youtube.com/watch?v=Xcy2Pq6LABk

 

2. 개발자가 공부로 살아남는 방법(Evan Moon)

여기서도 "뭘 만들고 싶은지 먼저 정하자"라고 하고 있다.

 

노가다성 공부는 진짜로 이루고 싶은 목표가 있다면 사실 누구나 다 할 수 있다.

(크으 이거 좀 명언인듯... 밑줄 쳐 놔야지~♪)

 

결국 공부라는 건, 뭔가에 사용하기 위해 필요한 지식을 습득하는 것이다. (최고 효율은 아마 여기서 나타날 것)

헐... 학창시절 때 죽어도 공부를 안 했던 건 다 필요성을 못 느껴서였니.....

 

남들이 다 한다고 나도 반드시 그걸 공부해야 하는 것은 아니다.

 

내가 하고 싶은 공부가 설령 실제 업무에는 별달리 쓰이지는 않더라도, "자기만족" 하나만으로도 충분히 공부해볼만한 가치가 있는 것 아닐까ㅎ - 이건 순전히 내 생각...^^

 

https://evan-moon.github.io/2019/08/26/how-does-developer-study/

 

개발자가 공부로 살아남는 방법

이번 포스팅에서는 개발자들에게 뗄레야 뗄 수 없는 키워드인 에 대해서 포스팅 해보려고 한다. 물론 다른 직종도 마찬가지겠지만 다른 업계보다 빠르게 변화하는 IT 업계의 특성 상 개발자는

evan-moon.github.io

 

3. 학습에 실패한 이야기(남규진)

필자는 비효율적으로 공부하느라 시간을 허비한 경험을 이야기하고 있었다.

 

그에 따른 결과로,

프로그래밍 공부를 할 때 의식적으로 지키려고 노력한 것들이 있었다.

  • 공부하기 전, 구체적 계획 & 목표 수립

         → 살을 빼겠다 (×)    매일 달리기를 해서 두 달 안에 5kg 빼겠다 (○) 처럼 구체적으로!

           ex, 목표: 객체지향 프로그래밍을 학습하자.

               ① 만들고자 하는 주제를 정해서

               ② 그 안에서 객체를 추출

               ③ 각 객체에 책임을 할당하고 서로 협력하도록 프로그램 작성

               ④ 기존에 작성한 적 있던 코드를 객체지향적으로 리팩토링 시도

 

  • 단순 타이핑하지 않기 (= 인출 연습Retrieval Practice하기)

         → 책의 예제 따라만 하는 건 단순히 받아 적기, 옮겨 적기일 뿐이다.

           책은 전체적으로 살펴보기만 하고, 코드를 작성하는 것은 최대한 스스로 해 보자.

 

  • 일정 주기로 반복하기

         → 한 달 또는 일정 주기로 다시 학습하는 건 장기기억에 도움이 된다! (H. Ebbinghaus의 망각 곡선)

           이전에 푼 *알고리즘 문제 다시 풀거나, 작성한 코드를 개선해보자.

                * 알고리즘 문제 : 요샌 코딩 테스트라는 표현히 훨씬 익숙하다고 한다.

 

  • 부숴도 좋은 장난감 만들기

         → 프로그래밍 효과적 학습 = 개인 프로젝트 많이 하기!!!

           (∵ 프로그램 하나 만드는 과정에서도 수많은 실행 오류를 겪고 그걸 풀기 위해 노력하게 된다.

              새 기능을 마음껏 추가, 다양한 방식으로 리팩토링할 수 있는 놀이터로 활용하자.)

 

  • 피드백 받을 방법 찾고, 피드백 받은 것 교정하기

         → TDDtest-driven development방식을 취하면, 좀 더 작은 단위로, 좀 더 빠르게 피드백을 받을 수 있다.

 

           객체지향 설계나 좋은 코드에 대한 피드백을 받는 가장 좋은 방법은

           정적분석static analysis 도구를 사용하는 것도, 많이 알려진 주제로 선택하는 것도 아니고,

           다른 개발자의 리뷰를 받는 것이다.

           리뷰를 통해 또 다른 토론을 이끌어내고, 그로 인해 생각이 더 확장될 수 있다.

 

           스터디 모임 참가도 도움이 될 것이다.

 

https://techblog.woowahan.com/2555/

 

학습에 실패한 이야기 | 우아한형제들 기술블로그

{{item.name}} 프로그래머에게 지속적인 학습은 기본적으로 갖춰야 할 덕목 중 하나라고 생각합니다. 문제를 해결하는 방법들은 계속 발전하고 변해가며 하나를 배우면 오히려 배울 것이 늘어나는

techblog.woowahan.com

 

4. 나는 어떻게 공부했는가? - 성장하는 개발자를 위한 Tip (조은)

  • 해당 분야 커뮤니티 or 전문가를 찾는다.

        → Twitter, Facebook, Okky 등 활용

        → 애매하면 대충 팔로워 많아보이는 사람 찾기

        → 그래도 아직 애매하면 그 기술 만드는 곳에 이메일 보내기

 

  • 키워드를 줍는다.

        ex, Flutter

            - Flutter는 ①크로스 플랫폼 ②라이브러리이다.

            - Flutter 엔진은 ③C++과 ④Skia로 구성되어 있다.

            - Flutter는 크게 ⑤Cupertino와 ⑥Material 컴포넌트를 사용한다.

            - Flutter의 모든 것은 ⑦위젯이다.

            - Flutter의 ⑧상태 ⑨관리는 ⑩리액트의 많은 것을 차용했다.

 

        ex, 데이터 과학

            - 데이터 과학은 ①데이터를 ②수집하고 ③정제하여, 의사 결정을 더 정교화시킬 때 사용할 수 있다.

            - ④어떤 데이터를 수집하냐에 따라 ⑤제품 전략이 달라질 수 있으며, 이는 곧 ⑥수익 창출로 이어지기도 한다.

 

  • 키워드를 바탕으로 어떤 공부가 필요할지 청사진을 그린다.

        → Flutter란 무엇인가?

        → Flutter의 크로스 플랫폼이란 무엇인가?

        → 라이브러리와 프레임워크의 차이점은 무엇인가?

        → 전통적인 Android, iOS 개발과 어떤 점이 다른가?

        → Flutter는 왜 독자적인 엔진을 가지고있으며, C++로 구현했는가? 

        → Skia는 무엇이며, 왜 필요한가?

        → Cupertino와 Material의 차이점은 무엇인가?

        → 위젯은 무엇인가?

        → 상태는 무엇인가? 상태가 바뀌면 무슨 일이 일어나는가?

        → 어떤 상태 관리 모델이 있으며, 어떤 식의 관리가 유용한가?

        → 리액트는 무엇이며, 어떤 상태 관리 모델을 가지고 있는가?

 

  • 가용할 리소스를 최대한 활용하여 공부한다. (생략 가능한 건 회색으로 표시)

        → 책이 있다면 책이 최고!

        → 공식 홈페이지 이용

        → 인터넷 강의 이용 (인프런, Udemy, Udacity 등)

        → Flutter의 경우 Udemy의 Angela Yu 강의가 바이블처럼 전승된다.

        → 오프라인 강의를 이용한다.

        → 세미나 등을 통해 트렌드를 파악하고 키워드를 줍는다.

 

  • 데드라인을 정한다.

        → 20○○년 ○○월 ○○일까지, chapter 1까지 완료하겠다.

        → 그 날까지 완료했다면, 작은 보상을 주는 것도 좋다.

        → 완료 못했다면, 되돌아보면서 내가 정말 '가능한' 분량을 세웠는지 고민해본다.

        → 의도적 공부(특정 행동을 의도적으로 반복하는 방식)를 하고 싶다면

          내가 사용하는 시간을 정리해 두는 게 도움이 된다.

        → 45분 공부 / 15분 휴식 패턴을 권장하되, 하루 2시간 이상은 지양한다.

 

  • 공부한 내용은 반드시 블로그에 정리한다.

        → 인간은 까먹는 동물인 거 잊지 말자.

        → 코드만 짜놓고 뿌듯해하는 일은 절대 Nope!

        → 블로그 정리를 통해 내가 부족했던 것, 몰랐던 것, 알았던 것 모두 정리하자.

 

  • 위의 내용을 반복한다.

 

★★ 정리하는 습관은 중요하다. 성장을 위해서 정리는 선택이 아니라 필수다!

∵ 어디까지 알고 있고, 어디를 더 알아야 하는지에 대한 지표로 사용할 수 있다.

 

내가 학습한 걸 다시 정리하는 과정에서 더 많은 걸 이해할 수 있게 된다.

 

내가 공부하고 있다는 걸 전국 방방곡곡에 알리면 누군가는 나를 도와줄 것이다..!!ㅋㅋ

 

https://euncho.medium.com/%EB%82%98%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B3%B5%EB%B6%80%ED%96%88%EB%8A%94%EA%B0%80-709df6714c42

 

나는 어떻게 공부했는가?

성장하는 개발자를 위한 팁

euncho.medium.com

 

 

 

19개 다 정리하려면 포스팅 하나에는 너무 많으니까 여기서 cut^^

Comments