프로그램의 작성 ▸문제: 전교생 명부를 키 순서대로 정렬해줘 ▸사람 – OK! (아놔…) ▸기계 – What is 정렬? I’m so 멘붕... ▸문제: 이 종이에 적힌 걸 그대로 타이핑해줘 ▸사람 – OK! (니가 하지 왜 나한테…) ▸기계 – What is 글자? I’m so 문맹...
코드 이상의 것 ▸MS Windows = 5천만 줄 이상의 코드 ▸어떻게 구획을 나누고 조직화할까? ▸문제가 있는데 어느 부분이 원인이지? ▸더 빠르게 하고 싶은데 어디를 고쳐야 하지? ▸회사에 사람이 새로 들어오면 어떻게 설명하지? ▸새로운 기능을 추가해야 하는데 고칠 곳이 너무 많아… ▸이제부터 이걸 폰에서도 돌릴 거래… (맙소사, 집에 가긴 글렀군!)
좋은 프로그래머의 자질 ▸변화를 받아들이기 ▸내적으로: 롤이나 옵치보다도 메타의 변화가 빠른 곳 ▸외적으로: 이거랑 저것도 해 주세요~ (앗, 이젠 필요 없어졌어요ㅋㅋㅋ) ▸변화에 따라 끊임없이 체계적으로 재구성하기 ▸내 MP3·MKV 컬렉션의 폴더 구조를… 태그는 일관되게… ▸약간은 게으르기 ▸반복되는 작업을 자동화·재사용하기 ▸주어진 도구에 만족하지 않고 도구를 프로그래밍하기
좋은 프로그래머의 자질 (계속) ▸체계적 · 논리적 · 디테일 중심적 ▸자신의 체계나 논리에 구멍이 없는지 챙기는 꼼꼼함 ▸그 체계를 ‘코드’로 잘 표현해낼 수 있다면… ▸커뮤니케이션 기술 ▸규모가 커지면서 팀 플레이의 중요성이 ↑↑↑ ▸고객과 팀원이 원하는 것을 읽어내기 ▸나의 논리와 체계를 남에게 글로 설명하기
역시 잘 하면 좋은 것: 영어 ▸컴퓨터 기술의 제1언어는 영어 ▸프로그래머가 작성하는 ‘코드’는 전부 영어 ▸제대로 된 용어를 사용하는 것이 품질에 중대한 영향 ▸ habgye = jwapyo.x + jwapyo.y (스, 스미마셍…) sum = coordinate.x + coordinate.y (끄덕끄덕) ▸‘영어 가능’ 프로그래머가 한국어 가능자 대비 절대다수 ▸내가 짠 끝내주는 프로그램을 한국 사람만 알아야 한다니… ▸더 많은 일자리, 더 많은 선택지
몇 명의 프로그래머가 필요할까? ▸타임라인 ▸이미지·동영상 저장 ▸인앱 구매 ▸프로필·업체 정보 ▸친구 추천 ▸메시징 ▸음성·화상 통화 ▸로그인·계정 분실 ▸사용자 행동 분석 ▸스팸·악성 사용자 검출 ▸타겟 광고 ▸성능 분석 ▸푸시 알림 ▸타사 앱 연동 ▸공통 모듈 ▸…
첫 직장에서는 아마도… ▸서비스 기능의 일부의 일부의 일부의 일부를 개발 ▸개별 모듈의 이해도가 상승하면서 점차 더 많은 모듈을 이해할 수 있게 된다. ▸전체의 모습을 모두 이해하기는 너무나 큰 ▸좋은 소식 – 사실 다 아는 사람은 없다. ▸나쁜 소식 – 앞으로도 없을 것이다. ▸좋은 소식 – 그래도 괜찮게 만들었다.
전혀 경험이 없다면… ▸유·무료 온·오프라인 과정을 찾아 보자. ▸Google “무료 프로그래밍 수업” ▸반드시 자신의 PC에서 직접 따라하면서 익힐 것 ▸벽에 부딪히는 것은 당연 ▸커뮤니티의 도움을 받자. ▸ 본연의 목적을 잊지는 말자. 전문가 행세나 친목 위주의 활동에는 주의