개발자의 학습법

rbw·2022년 2월 17일
1

Study-Tips

목록 보기
1/1
post-thumbnail

지속 성장하기 위한 개발자의 학습법

udemy에서 열린 특강(지속 성장하는 개발자 되기)의 내용을 참고하여 작성하였다.

part1. TDD의 철학을 적용해보는 피드백 주도 학습 방법

생년월일을 입력 받는 프로그램의 예시

// 테스트 코드
test("생년월일을 받아 나이를 출력한다.",
{
  expect(App.getAge(20000515)).toBe(23);
})

class App() {
  getAge(birthday) {
    return
  }
}

TDD : Test Driven Development

테스트를 먼저 만들고, 실제 코드를 작성하고, 원하는 대로 동작하는지 빠르게 피드백을 받는 것

본질적인 목적은 빠른 피드백이라고 설명을 하셨다. 핵심은 더 자주, 더 빨리 피드백을 받는 것 !

테스트 코드는 의도치 않은 유용한 부산물.

결정과 피드백 사이의 갭에 대한 인식결정과 피드백 사이의 갭을 조절하기 위한 테크닉

  • 결정 - 내가 시도하려는 것
  • 피드백 - 성공/실패

만약 내가 던진 농구공이 들어갔는지 1달 뒤에 알 수 있다면 ? >> 결과를 모르기 때문에 잘 나아가고 있는지를 몰라 답답할것이다. 하지만 테스트를 활용한다면, 그 결과가 눈에 보이고, 피드백도 받을 수 있어 좀 더 정확한 방향으로 나아갈 수 있다.

질문. 무언가를 만들려고할 때 뭐부터 해야할지 모르겠어요 !

ex) 계산기 만들기

간단하게 단계로 나누어서 만드려고 시도를 하면 좋다

1. ui 없이 사칙연산이 되는 것만 먼저 빠르게 만들기

class Calculator() {
  add() {

  }
  minus() {

  }
  multiply() {

  }
  devide() {

  }
}

// 테스트를 자기가 해본다.
const calculator = new Calculator();
console.log(calculator.add(1,2))
...

2. input으로 사용자 입력 받고 이벤트 처리하기

다음 단계로 입력을 받아본다

3. 숫자 UI 추가하고 이벤트 처리하기

이제 화면에 나타낼 UI를 만들어보고 이벤트 기능을 추가해본다.

4. UI 레이아웃 잡기

UI들을 어떻게 배치할지 구상해본다.

5. 스타일 입히기

보기 좋게 스타일을 입혀서 누가봐도 계산기인지 알 수 있게 만들어 준다.

강의를 들으며, 느낀점 part 1

나도 제대로 된 프로젝트를 해본적이 없어서 하려고 시도를 할 때 막막한 경우가 많았는데 이번 강의를 들으며 조금 풀린 기분이 들었다. 알고는 있었지만 확실히 뭔가 말로 들으니까 더 와닿은 느낌이다..


part2. 개발자 : 지식의 저주

지식의 저주(curse of knowledge) : 개인이 다른 사람과 의사소통을 할 때 다른사람도 이해할 수 있는 배경을 가지고 있다고 자신도 모르게 추측하여 발생하는 인식적 편견.

알고 있다고 착각하는 개발자.

내가 무엇을 알고 있다고 생각하는 기준은 무엇일까 ?

메타인지

자신의 인지 과정에 대해 관찰, 발견, 통제, 판단하는 정신 작용으로 "인식에 대한 인식", "생각에 대한 생각", "다른 사람의 의식에 대해 의식" 그리고 고차원의 생각하는 기술이다.

쉽게 말해, 자신이 무엇을 알고, 무엇을 모르는지를 아는 것을 뜻함

약속하기

  1. 컴퓨터 공학은 일종의 학문 이다. 따라서, 개발을 얕보지말고, 어려운 학문을 인정하자.

    學問(배울 학, 물을 문) : 어떤 분야를 체게적으로 배워서 익힘

  2. 인스턴트 학습의 유혹에 빠지지 말자. 쉬워 보이는 교육 컨텐츠에 익숙해져 평생 따라하지 말자.

  3. 언젠가는 이해하겠지 x , 대충 넘어가지말고 러닝 커브를 극복하자. 고통스럽지만 완벽하게 이해하도록 노력하자

  4. 지름길은 없다. 나만의 로드맵을 그리자. 어차피 선택에 대한 책임은 내가 진다

  5. 모범 사례가 될 것인가, 모범 사례만 찾는 하이에나가 될 것인가

    react best practices, react directory structure

  6. 포기할 이유 찾지 않기, 스스로 한계를 만들지 않기, 합리화 x 그저 실천하자 그리고 꾸준히 하자 !

강의의 교훈

  1. 지식의 저주에 빠진건 아닌지 지속적으로 점검하자
  2. 아는 만큼 보인다.
  3. 메타인지 능력을 향상하자
  4. 하지만 압도되지 말자(공부할 양...)

강의를 들으며, 느낀점 part 2

클론코딩도 적당히 얻어갈 부분은 얻어가면 좋다고 생각한다 (강사님의 생각과는 조금 반하지만 맞다고 생각한다..)

포기할 이유를 찾지 않기에서 좀 공감을 하였다. 어디서 주워들은 앞으로 웹이 앱 생태계를 지배할 것이다 라는 말을 들어서 스위프트를 배우는데 조금 망설임이 있었던 것 같다. 미래를 생각하는 것도 좋지만 웹이 지배하게 된다고 해도 머어어언 미래라고 생각하니까 나랑 별 상관도 없는 얘기 같다 (지금 당장은 ?) 그래서 그런 생각은 치우고 공부에 집중을 하자 라고 생각을 하게된 계기가 되어서 좋았다.

지름길은 없다 라는 부분도 예전이었다면 좀 받아들이기 힘들었을것 같지만, 최근에 클로져를 공부하면서 조금 공감하고 있다.. 확실히 시간을 많이 투자하니까 오래 남는것 같다. 예전에는 어떻게 하면 더 효율적으로 공부를 할 수 있을까를 고민 했겠지만 하나를 깊게 파고 넘어가는 공부도 괜찮은것 같다.


개발자의 학습법에 대해 현업자분들이 설명해주셔서 매우 유용한 시간이 되었다. 나도 언젠가는 이렇게 강의를 찍어 여러 사람에게 도움이 되고 싶다고 생각하게된 계기가 되었다.

profile
hi there 👋

0개의 댓글