17. 오래 전에 작성했던 코드를 지금 와서도 고칠 부분이 없어 보인다면,
그것은 그동안 배운 것이 없다는 뜻이다.
18. 품질 높은 코드
품질은 좋은 코드를 능숙하게 작성하고 싶다면 높은 품질의 코드를 작성하는 방법을 훈련해야한다
훈련을 할 때는 문제의 해결 자체가 아니라 해결에 사용한 테크닉에 집중해야 한다
반복적인 일이 아닌 항상 나은 방법을 찾는 습관을 들여야한다
19. 미하이 칙센트미하이의 몰입이론
A: 쉽다, 지루하다
B: 불안하고 두렵다
C: 몰입 경험, 최고 수준의 행복감, 최
고 수준의 집중력, 퍼포먼스나 학습 능력
이 최대치를 보인다.
작업 난이도
실력
A나 B 영역이 아닌 C 영역을 통한 의식적인 노력
20. I + 1 이론
자신의 수준을 i라고 할 때, 딱 한 단계 높은 수준 (i + 1)이 주어질 때 유의미한 능력 진전이 있다
21. 자신이 업무 시간 중에 불안감이나 지루함을 느끼는 때가 하루 중 대
부분이라면, 실력이 늘지 않는 환경에 있는 것..
22. 작업 난이도
실력
1
제자리 걸음 벗어나기
지루함을 느낄 때
1. 실력 낮추기 (팔과 다리에 모래 주머니를 단 격)
- 자주 쓰던 함수 내부 로직 확인하기
https://referencesource.microsoft.com/
- 좀 더 디테일한 설계해보기
- 기존 로직보다 나은 로직 고민하기
- 컴파일 시간을 더 늦춰보기
- 키보드만 써보기
23. 작업 난이도
실력
2
제자리 걸음 벗어나기
지루함을 느낄 때
2. 난이도 높이기 (자기 자신만의 제약 추가하기)
- 단 시간 내에 완료할 방법 고민해보기
- 고퀄리티 코드 작성해보기 (오버엔지니어링 부작용 주의)
- 스스로 코드 리뷰를 해보며 개선하기
- 리팩토링하기 (자주 변경되는 곳을 해야한다)
- 좀 더 깊게 이해하기
- 새로운 언어 써보기
24. 작업 난이도
실력
3
제자리 걸음 벗어나기
불안감을 느낄 때
3. 실력 높이기
- 사회적 접근: 보다 뛰어난 전문가의 도움을 얻는다
(짝 프로그래밍, 인터넷, 가이드 문서)
- 도구적 접근: 도구의 도움을 받는다
(디버거, 자동 통합 도구, 코드 분석 툴, 오픈소스 라이브러리)
- 내관적 접근: 과거의 경험을 되살려보고, 비유적으로 해결
기타
- 책보기
- 스터디 및 교육 참가하기
25. 작업 난이도
실력
4
제자리 걸음 벗어나기
불안감을 느낄 때
4. 난이도 낮추기
- 단기 목표 수립을 통해 동기 강화, 스트레스 감소, 자기 효능
감 증가
- 쉬운 일부터 점진적으로 증가
- 기획자와의 타협을 통한 기술 난이도 감소
32. 새로운 언어 써보기
퍼포스를 이용한 클라이언트 및 DS 차분 패치는 파이썬으로 제작된 프로그램
센터 머신에서 다른 머신에 명령을 내리는 프로그램도 파이썬으로 제작
(바이너리 배포, 서비스 제어)
33. 습관 들이기
복사 & 붙여넣기 안 하는 습관
현재 수정하는 코드에 대한 정확한 이해
사용하는 함수의 정확한 의도와 동작 파악
‘나중에 고쳐야지’ 마인드 버리기
반복적인 코드를 작성하고 있다면 공통으로 빼기
34. 한 템포 쉬기
코드 수정 – 컴파일 – 테스트 – 코드 수정 – 컴파일 - 테스트...
위와같이 단순하게 반복 작업을 하고 있음을 느낄 땐, 잠시 멈추고 다시 개념 파악, 디자인
재설계 등.. 수행
(개인적으론 이 경우에 자괴감이 많이 들었음..)
만약 될 때까지 반복 작업을 하고 있었다면, 추가 구현을 할 때도 같은 방법을 쓰게 된다
35. 보다 나은 방법으로 개발해보기
코드 중복, 가독성, 디자인 및 재활용성이 안 좋은 경우 리팩토링
적재적소에 맞는 디자인 패턴 적용해보기
36. 툴에 의존하지 않기
ssms 및 sqlite가 만들어주는 쿼리를 쓰지않고 직접 작성해보기
vs ide 에서의 코드가 아닌 il 코드 직접 살펴보기
37. 배우기
사용하는 언어 및 환경에 대한 깊은 이해
(gc 동작, 람다 구현)
네트워크 지식, 정규식, sql 쿼리 등..