5. SW가 HW를 리드 Hardware 차별 한계 : 시장 경쟁 심화, 기술 차별성 약화 기술발전 방향의 변화가 많지 않음 Software 무궁무진한 창의가 발현되고 적용 가능 SW의 진화 방향이 매우 다양 5/18
6. 지식 노동의 산물 SW SW가 인간의 삶 요소에 침투하는 시점 (무한대의 경우의 수) 구글이 주도한 클라우드 기반의 Machine Learning이 응용 분야를 확대. 점점 가치있는 정보를 만들어. 클라우드가 인간의 뇌를 특정 영역에서는 훨씬 능가하는 거대한 인공지능화 터미네이터의 스카이넷 6/18
7. 지식 노동의 요소 전문지식 (숙련) 기본 지식 외에 분석 능력, 통찰 능력의 결합 필요로 하는 지식 노동 창의 즉자적으로 추론되지 않는 아이디어를 동력으로 하는 지식 노동 한계를 두지 않는 생각이 중요 7/18
12. 코딩 능력 향상법 탑다운 코딩 소설을 쓰듯 논리적으로탑다운코딩 코딩 완료하기 전에는 컴파일하지 말라 논리 장악력이 떨어진다 비논리적인 코딩은 우연에 의존하는 것. 발전이 없음 배치로 개인 업무 관리 지식 노동은 인터럽트를 최소화하고 생각의 연속성 필요 컨텍스트 스위칭이 되기 때문. 순차적으로 집중해서 코딩하고 완성되면 컴파일해서 에러 고치고, 디버깅하라. 모든 논리에 단위 테스트를 작성하는 습관을 들여라. 의심나는 논리는 손으로(작은 코드 작성하여) 검증. 12/18
13. 아키텍처 능력 향상법 숙련이 필요 시스템 아키텍처를 잘 이해하는 사람들과 함께 해야 빠르고 제대로 배울 수 있다. 지적 추상화 능력 핵심 아키텍처 혹은 이슈를 논리적으로 추상화해낼 수 있는 훈련이 반복적으로 필요 13/18
15. 기업가 정신 Entrepreneurship 창업 바람이 있지만 좀더 많은 것을 제대로 배울 수 있는 환경을 택하라. 너무 일찍 창업하면 돈과 영업은 알지 몰라도 기술은 배울 기회가 없다. 학교에서 배운 것은 (특히 SW는) 기업에서는 출발점도 안되는 경우가 대부분이다. 판단을 기업가의 입장에서 하는 습관을 가지면 기업 환경의 결정들을 이해하는 데 도움이 된다.(내가 사장이라면?) 관리자로 성장하거나 창업하는 데 도움이 된다. 15/18
16. 엔지니어의 자세 끊임없이 평생을 배워야 한다.(지식 노동의 특성) 끊임없이 “왜”라는 질문을 던지며 생각의 수준을 높여가야 한다. 자기 머리로 이해하고 생각하지 못하면 지식 노동에서 가장 단순한 반복 노동밖에 하지 못한다. 배우는 것을, 도전하는 것을 두려워하지 말라. 16/18
17. 결어 SW 엔지니어는 자부심이 필요 전문지식의 숙련도와 통찰력을 높이고 창의적 지식 노동의 비중을 높이려면 엄청난 도전과 노력이 필요. 단순 노동자보단 지식 노동자를 선택하길 기업에는 항상 기술을 주도하고 발전시키는 부류와 불평, 불만에 급급해 자기 발전을 못하는 부류가 자석의 양극처럼 존재 어느 극쪽으로 자신의 존재를 위치시킬 것인가? 지금 당장의 기업을 볼 것이 아니라 자신의 발전을 중시하라. 더 나은 엔지니어가 되려면 자료구조, 알고리즘나아가 확률 통계 등 수학 기반을 잃지 않도록 노력하길 17/18
19. 추상화 명확한 개념 정확한 이해 아키텍처 능력 발표 능력 = 사고 능력 = Software 능력 = 추상화 능력 + 수학적 기반
20. Metaphor (은유) 적절한 Metaphor (은유) 구체적인 상을 머리속에 그려야 좋은 비유는 연역을 쉽게 하며 창의의 중요한 동력이 된다 정확한 이해의 전제 엄밀한 개념 구분 각 개념들의 metaphor들이 잘 짜여져 살아있는 것처럼 느껴질 때 비로소 개인의 view에서 정확한 이해에 가까이 간 것 발표는 개인의 개념적 이미지들에 대한 집단적 공유 및 검증 과정 설명할 수 없다면 이해한 것이 아니다
21. Terminology (용어) Self-Explanatory Terms 소집단에서만 사용되는 독특한 은어나, 내부에서 편의적으로 사용하기 위해 원래 의미를 변형한 용어 사용 금지 보편적인 용어를 사용하여 표현할 수 있어야 (보통명사화) 충분한 감성적 이해를 수반하지 않을 경우 외래어/영어/전문어 등 “좋은 단어” 사용 금지
22. 논리적 추상화 분석에 기반한 추상화 세부 내용에 의해 뒷받침되어야 (bottom-up) 개념 구체화 과정 선험적 직관에 의한 가설/개념 설정 세부 사실에 의한 가설/개념 검증 가설/개념의 재설정 및 검증 반복 논리 전개는 top-down 논리 전개 즉, 발표는 추상화 기반에서 top-down 내용이 많으면 적절히 분류 분할하여 명확하게 전달할 수 있는 단위로 축소하여 재구성
23. 아키텍처 능력 Software의 각 논리적 역할에 기반한 구성 각 모듈, 라이브러리를 Role에 기반하여 개념 분류 및 추상화 Role 기반 분류는 Objected Orientation 원칙과도 부합 System View와 논리 역할 View는 구분해서 접근
Editor's Notes
뇌 구조에 관한 TED Talk : http://www.ted.com/talks/lang/kor/jill_bolte_taylor_s_powerful_stroke_of_insight.html