[dev] 개발 학습 방법 정리

728x90

안녕하세요🖐

 

오늘은 개발을 하면서 어떻게 공부를 하면 좋은지에 대한 고민을 해보고, 글을 써보게 되었습니다.

아직은 신입 개발자이기도하고 개발에 대한 경험이 많지 않아, 제 주관적인 의견과 원티드 프리온보딩 챌린지를

통해 알게된 내용을 포스팅하겠습니다.

 


학습?

학습, 배움은 본능적인 변화인 성숙과 달리, 직간접적인 경험이나 훈련에 의해 지속적으로 자각하고, 인지하며, 변화시키는 행동 변화이다.

 

여기서 중요키워드 -> 훈련, 자각, 인지, 변화

훈련?

  • 무엇을 훈련시킬 것인가? (=내가 뭐가 부족한지를 파악해야한다)
  • 변화되었다는 것을 어떻게 알 수 있을까? (=얼마나 발전한지를 파악하기 위한 노력) => 피드백이 필요하다.

현실 인지 > 훈련(=학습) > 피드백 -> 위 과정을 반복하는 습관을 가져야 한다.

 

나는 무엇이 필요한가?

 

1) 무엇을 아는지, 모르는지가 중요하다
2) 언제 필요한 것인지 아는것도 중요하다

무엇을 모르는지 아는 것?

= 모르는 대상을 아는 것만으로도 무언가 찾을 수 있는 기회를 얻는다.

분류

  • 확실히 아는 것 -> 확실히 아는 것은 무언가 관계를 맺어서 임팩트를 낼 수 있다.
  • 들어 본 것 -> 들어 본 것을 넓히다 보면 무언가 필요할 때 도움이 된다.
  • 그냥 모르는 것 -> 모른다

언제 필요한지 아는 것?

  • 개발에서는 꼭 알아야 하는 것, 알아 두면 좋은 것 들이 너무 많다.
  • 하지만 다 알수 없고, 시간이 부족하다.

-> 그러므로 실무에서 쓰는 기술들을 위주로 공부를 해야한다.

-> 목표로 하는 회사가 있다면, 그 회사의 사용기술들을 위주로 학습하는 것이 중요함.

먼 미래를 보며 준비하는 것은 비효율적이라고 생각함 (물론 필요에 의해서는 장기적인 준비가 필요할 수 는 있음)

적당이3,4년 정도의 미래를 준비하는 것은 좋지만, 10년 이상의 계획을 가지고 무언가를 공부하고 시작하면은 비효율적이라는 뜻

하지만 이런 뜻을 알아도 실천하는 마음을 다잡기는 어렵다

왜냐? 회사에서 요구하는 것은 많고, 그 요구 기술을 학습하기 위해 시간과 노력이 필요하고, 기술들은 어렵고 하니
한꺼번에 많은 것을 하기 위해서는 벅차다 사실, 그리고 조급한 마음으로 시작하면 그 결과는 좋지 않다 항상

SI프로젝트에 기준을 맞춰서 생각을 해보면

클라이언트가 요구하는 것은 많고, 기간은 짧고 하면은 그 프로젝트는 높은 확률로 망하는 프로젝트라고 합니다.
좋은 품질과 좋은 제품을 얻기 위해서는 항상 시간이 필요하기 때문에, 너무 시간이 쫓기면은 뭐든 좋지않다

그러닌까 취준생 및 주니어 개발자 분들은 시간을 가지고 멀리봐야할 것 같습니다.

어떻게 훈련해야 할까?

1) 나를 잘 이해해야함 (=자기 객관화)
2) 효율적인 환경을 구성한다
3) 시도한다. 피드백한다.

 

그러면 나를 어떻게 잘 이해할 수 있을까요?

메타인지

1) gallup 사이트에서 지표를 활용하고 자기 객관화를 하는게 중요하다

효율적인 환경?

  • 시간 효율

시간효율이 제일 중요하다고 생각합니다

자신만의 루틴을 꼭 만들어보세요. 그 루틴대로 하루, 이틀, 삼일 지켜가면서 몸이 기억하고 익숙해질 필요가 있습니다

물론 처음에는 당연하게도 힘듭니다. 안하던 것을 해야하는데, 당연하죠

아래서 제가 진행했던 내용을 한번 예시로 들어보겠습니다.

저는 국비학원을 수료하고나서 취업을 하기위해서 저만의 스케쥴표를 작성하여 진행 했습니다.

국비학원을 다니면서 습관이 된 9시 6시 루틴을 적극적으로 활용 하였습니다.

1) 7시30분에 기상하고, 씻고 8시30분 까지 준비를 하고, 9시에는 도서관에 도착할 수 있게 하였고
2) 9 - 11 : cs+네트워크 책 읽기
3) 11 - 13 : Java 공부하기
4) 13 - 14 : 집으로 점심 식사
5) 14 - 17 : 알고리즘 2문제 풀기
6) 17 - 19 : 스프링 공부하기

위 루틴을 거의 한달 반 정도 진행을 했습니다.

처음에는 힘들었지만, 주변에 선배 개발자 분들과, 괴물개발자분들을 모티브로 삼아 항상 동기부여를 하며 공부 했습니다.

제가 이루고 싶은 가까운 목표는 다른 개발자 분들과 대화를 할 때 제가 모르는 내용이 많이 없이, 유연하게 대화를 이어 나가는 것 입니다.

  • 능력 효율

개발자는 효율이 좋아야 합니다. 9시간 자바 공부를 한 사람과, 2시간 자바 공부를 한 사람이 있습니다.

여러분들도 알다시피, 누가 더 잘하냐고 묻는다면, 쉽사리 대답하지 못할 것 같습니다

더 많이 공부했으면 잘하지 않을까? 라는 의문이 들겠지만 대답은 'No' 입니다.

결국 자신만의 공부 스타일과 방법을 찾는게 중요합니다. 그 방법을 깨우치는 것이 하지만 어렵죠

저도 아직 그 방법을 완벽하게 찾지 못하였고, 그것을 찾기 위해

여러 사람들의 공부 방법과 스타일을 들어보구 실천해보구 하며 저한테 맞는 방법을 찾는 중 입니다.

시도, 피드백?

개발자라고 함은, 새로운 것을 추구하고 환경에 적응을 해가야 합니다

하지만 저는 아직 신입개발자이기도 하고, 모르는 것도 많고, 이제 막 여러가지를 접해보고 배우고 있는데 새로운 것을 해야한다고 하면은
껄끄럽게 느껴지긴 할 것 같습니다.

저는 배움에 대한 두러움이 없고, 뭐든 하면 잘할 줄 알았는데, 직접 해보니 생각보다 쉽지가 않은 것이 많았습니다ㅎ...

그래도 시도를 해본 사람과, 안해본사람의 차이는 크다고 생각합니다

궂이 모든 걸 다알아야지? 게시판을 만들수가 있나요?

아닙니다. 일단 만들어보면서 부족한 부분을 채우고, 나중에 리팩토링을 하고, 이런식으로 하면서 경험하고 발전하는 것 또한 저는 좋다고 생각합니다.
물론, 지극히 주관적인 이야기 입니다. 제가 위 과정 처럼 경험을 해봤을 때, 저는 좋다고 느꼈습니다.

결국 아는 만큼 보인다는 것처럼, 직접 만들어봐야지 어느 포인트에서 수정하고, 무엇을 고치고 등등 더 넓어진 시야를 가질 수 있다고 생각합니다

일단 시도해보는 것이 중요하다

시도하지 않으면 아무것도 없습니다. 일단 뭐라도 해봐야 한다고 생각합니다

무언가를 해보고 만들어봐야지 보이는게 확실히 많다고 생각합니다.

  • 피드백 방법은 다양합니다.

    일단 모르겠으면 구글에서 뛰어난 사람들 것을 보고 베껴가면서 시도해보는 것도 좋다.

어떻게 피드백하지?

피드백을 어떻게 받아야 할지가 고민인 적이 많았습니다

저도 개발 입문한지 얼마나 안되었을 때, 내가 얼만큼 아는지도 잘 모르겠고, 실력이 어느정도인지를 전혀몰랐었습니다

그래서 커뮤니티에서 묾어보고, 오픈채팅을 통해 물어보는 과정을 많이했습니다.

나는 안보이지만, 다른 사람이 보이면 보이는 것이 더 많습니다

그래서 여러 사람들과 다양한 대화를 해보며, 시야를 넓히는 과정 또한 중요하다고 생각합니다

다른사람이 도움을 주는 것 말고, 나 스스로에게 어떻게 피드백을 할 수 있을까?

1) 빠른 피드백이 중요함
2) 피드백을 주는 장치가 필요함
3) 테스트 코드

피드백 루프를 구성하기

1) 주기적인 피드백 -> 기록, 일기

회고를 작성하는 것 또한 좋습니다.

습관,루틴 -> 아주 작은 습관의 힘이 크다

1) 습관을 실행가능하게 하는 쉬운 환경 만들기
2) 습관을 체이닝 하기

지속적으로 나의 레벨을 체크 해야한다

  • 나는 어느 레벨이지?
  • 나는 다음 레벨로 가기위해서 무엇을 해야하지?

나의 레벨을 측정하기 위해서는 개발을 시작한 연차로 측정은 주관적이므로, 그리고 연차가 실력이 크게 비례하지 않을 수 있으니

지표를 찾어서 측정을 해보는게 좋을 것 같다

다음 레벨로 올라가기 위해서는 여러 사람들과 대화를 해보고, 시니어 개발자들을 많이 만나보는 것이 좋다

시니어 개발자가 없다면? 인터넷에 읽은 책들로도 어느정도 해결을 해볼 수 있다고 생각합니다.

ex) 육각형 개발자

지속적으로 스터디 구성하기

  • 혼자하는 것은 지겹고, 목표를 달성하기 힘들 수 있다
  • 같이하면 이런 것들을 이겨낼 수 있다.
  • 그리고 다양한 사람들과 대화를 해보며 시야를 넓힐 수 있다.

이런 것들을 계속 하다보면 나만의 프레임워크, 파이프라인을 정의할 수 있게 될 것이라고 생각합니다.

 

이상 포스팅 마치겠습니다. 감사합니다.

728x90