책을 통해서 개발을 배워나가는 예전의 시대(잔기술을 선배로 부터 직접 배움)
Jeff Atwood, Joel Spolsky 개발문화의 큰 영향을 준 두 사람
Stackoverflow - Gamification(ex. reddit, digg, blog, ebay)
software 1.0 - 파이썬, 자바, C++ 같은 언어를 써서 명령어를 명시적으로 전달해주는 방식
software 2.0 - 뉴럴 네트워크의 웨이트 처럼 사람이 읽을 수 없는 숫자로 컴퓨터에게 할 일을 전해주는 방식
Software 2.0 공간의 확대(ex. 자율 주행, 교육, 채용, 주식, 헬스케어 등등)
Software 2.0 시대의 코딩
1. 풀고자 하는 목제와 목적을 설정(무엇을 예측, 분류, 추론할 것인가)
2. 컴퓨터가 탐색할 공간을 지정하는 코드의 얼개 작성(뉴럴넷 아키텍쳐)
3. 가능한 모든 자원을 동원해서 컴퓨터가 탐색을 수행하는 환경 제공
Software 1.0 개발자 vs Software 2.0 개발자
1.0 개발자
: 전통적인 코딩을 통해 Software 2.0 개발자가 작업하는 환경, 툴 , 분석, 시각화 인프라제공
2.0 개발자
: 데이터 정제, 레이블링, 전처리, 연계 통합, 관리, ML, DL 사용
모든 것을 직접 경험하여 익히는 것은 불가능
DevOps나 Full stack 개발자는 모든 것을 경험한 사람이 아니라 어떤 일도 잘 할 것 같은 사람
하나의 경험을 통해 다른 일도 잘 할 수 있는 역량을 키워야
핵심은 일시적으로 유행하는 프레임워크나 API가 아닌
10년, 20년 유지되는 fundamental을 학습하는 것
유행하는 프레임워크나 API의 수명은 길어야 3년(잔기술)
객체지향, 함수형, TDD, 리팩토링, 패턴 등 원리와 패러다임은 10년이상
문제 해결능력(원초적인 능력)
Clean Code, Code Complete, Programming Pearl, Design Patterns, The Mythical Manmonth 등 개발자들의 필독서는 습관과 태도에 대한 이야기
문제 해결 능력을 키우는 것은 습관과 태도의 문제로 귀결
Fundamental을 공부하는 것 => 역시 바른 습관과 태도를 배양하는 것이 시작
Fake it till you make it 일단 저지르자
Job vs Career 큰 그림을 보자
People skills 커뮤니케이션
Brand 자신만의 가치
How to quit 긍정적인 가치를 찾아서 이직, 부정적인 기분 때문에 이직은 좋지 않다
Technology is not a religion
Add value to others
Don't be afraid to look like an idiot
환경이나 타인을 탓하지 않은 대범함
실패에 좌절하지 않는 집요함
흥분하지 않는 침착함
자신을 사랑할 줄 아는 자존감
긍정적인 밝은 에너지
이러한 내면의 품성이 진짜 실력을 떠받드는 fundamental의 핵심 요소
정보에 대한 접근의 평준화 및 급변하는 기술 때문에 자기 경험을 도움이 되는 방식으로 후배에게 전수해줄 선배가 존재하지 않음
스스로 마음을 일으켜 공부하는것이 중요
정해진 길이 없으며 각자 가는 길이 모두 맞는 길
누구에게 배우는 것이 아니라 누구를 가르치는 게 더 좋은 공부
중요한 것은 물 분자의 회전이 아니라 팝콘을 튀기는 것이다 - Cassie Kozyrkov
전자레인지로 음식을 데울 수 있으며 충분하며 전자레인지를 사용하기 위해 전자공학을 공부할 필요는 없다
왜 사람들은 머신러닝에 대해 처음부터 만드는 법을 공부하는 것일까?
머신러닝 알고리즘을 개발하는 것과 활용하는 것은 다르다.
합리적인 테스트 방법이 있다면 머신러닝을 블랙박스처럼 다뤄도 좋다.
프로그래밍의 본질은 새로운 언어를 배우는 것 일까?
AI/데이터 시대를 맞이하여 선형대수, 통계, 미적분학을 처음부터 공부해야 할까