레쥬메
: 내가 왜 이회사를 오고 싶은지 / 이 회사에 어떤 것을 기여할 수 있는지/왜 나를 뽑아야하는지
면접
: 질문의 답만 해선 안된다.
빨리 배울수 있는지(개인시간 활용, 누굴만나는지, 어떤 책을 보는지)
부지런한가(극단적으로 게으르지 않은지 확인)
착한가(인터뷰를 하면서 말을 바꾸거나, 숨기는게 있는것처럼 보인다면 뽑지 않는다.)
평생에 걸쳐 이루고 싶은 목표와 현재 하는 일이 그 목표에 도움이 되는지
10년을 갈지, 10년 뒤엔 내가 이 회사에 있을지, 10년 뒤에 난 무얼 하고 있을지 고민
중요요소
: 생산성, 안정적, 팀워크, 제네럴/도메인 지식, 코드의 안정성, 클린코드, 시스템 디자인
성장
: 실패가 많을 수록 사람은 항상 한계에 도전하는 걸로 봐야한다.
쉬운 일은 언제든지 시작할 수 있으니 항상 어려운 일을 선택하자.
고생의 총량이 현재의 내 실력
꾸준하게 연습하는 사람
세상은 성공과 성공하지 않은 사람으로 나누는게 아니라, 배우는 사람과 배우지 않는 사람으로 나눈다.
시니어 개발자가 되는 과정(2년,3년후에 다시 보기)
의도적수련
아는 걸로 빨리 해결해버린다면 학습의 시간 X / 코드리뷰 - 학습시간(적절한 피드백의 중요성)
회사 내에서 수련 방법
기존 코드 완성 > 테스트 코드 작성 > 전수 테스트 코드 작성
나만의 도전과제 만들기
테스트 코드 작성을 넘어 TDD 진행해 보기
60만큼의 힘으로 원래의 퍼포먼스가 나오도록 해보는것
코드가 아닌 가치
동료를 변화시키고 성과로 이어지게 하는 사람
주니어라면 본인의 코드에만 관심을 갖지만, 시니어는 본인이 만든 것의 가치의 관심을 갖는다.
이직의 2가지 동기(여길 떠나고 싶어하는 이유, 바깥에서 날 끌어당기는 이유)
야생학습 - 비순차적, 범위의 한정X, 명확한 평가X, 협업
하고있는 일에 대해서 시각적인 근거를 남긴다(기록)
Task를 짧게 짧게 만족도와 현재 상태 파악가능
의도적 수련이란?
: 잘 정의된 작업, 적절한 난이도, 정보가 풍부한 피드백, 반복과 실수 교정의 기회
SQ3R 방법론
: Survey(훑어보기), Question(질문 정리), Read, Recite(안보고 적어보기), Review(기억한게 맞는지 확인하기)
프로그래밍의 의도적 수련방법
ex)
쉬우면 어렵게 만들어 공부, 어려우면 쉽게 만들어 공부.
오늘 코딩한 것 중에 실수한걸 기록하고 다음엔 안하도록.
결과 피드백보다 과정피드백이 낫다.
액션과 피드백 사이의 시간을 줄여라.
프로그램에서 테스트(컴파일러, 단위테스트(30분단위), 코드리뷰, 동료, 커뮤니티)
알고리즘 디자인 실력 향상방법
프로그래밍에선 같은걸 다르게 다른 맥락에서 여러번 해보는게 좋다. 실수를 많이 해야 한다.
과거에 어댑터 패턴을 적용하면 좋았을게 뭐가 있을까 고민 -> 현재 연습 -> 정리
비효율적인 학습
효율적인 학습
읽은 부분에 대해 왜 그런지 자주 자문해보기
"전이효과" 누리기
: 과거 경험, 실제 사용사례 관련해 설명, 왜 에러가 났는지 우선 코드를 보기전에 상상해서 스스로에게 설명해봄
=> 전이를 높이기 위해선 어떤 문제를 풀었을 때 그 문제에서 살짝 추가기능을 더해서 풀어봄, 같은 문제를 반복해서 푸는게 아니라 살짝씩 변경하는것
섞어서 공부하기
연습시험 치기(기억해서 쳐보기, API 외워서 쳐보기) Cornell Note활용법(백견이 불여일타)
분산연습 : 1시간씩 공부해서 중간 중간 테스트 하는것 Anki(Spaced Repetition Software)
↔️ Chunk(연속되어 있는 집중시간) by 피터드러커
새로운 정보가 이미 아는 것과 어떻게 관련있는지(혹은 문제 푸는 단계를) 설명해보기
특정 프로그래밍 언어들, 자료구조, 소프트웨어 디자인과 패턴, 소프트웨어 아키텍쳐, 요구사항 수집 및 분석, HCI(Human Computer Interaction) 및 유저 인터페이스, 객체 지향 기술 및 개념, 직업윤리와 프로페셔널리즘, 분석 및 디자인방법, 청중에게 프리젠테이션, 프로젝트 관리, 테스팅 검증및 QA, 알고리즘 설계, 기술적 글쓰기, 운영체제, 데이터베이스, 리더쉽, 형상 및 릴리즈 관리, 데이터 전송과 네트워크, 경영
책읽기(Code complete, 실용주의 프로그래머, TDD, 기타 등등)
프로그래머의 길, 멘토에게 묻다.
회사는 팀플레이
작은 도구 만들기 : 같은 일을 수작업으로 처리하지 않는다.
기억력을 보완하는 습관(블로깅)
일상생활의 최적화
다른 개발자와의 커뮤니케이션 중요(오픈소스 코드 참고)