본문 바로가기
라이프/책읽기

프로그래머로 사는법

by ahnne 2014. 4. 27.






목차


1. 기초

크게 성공하기 / 좋은 SW란? / 학교 대 직장 / 미션 임파서블 SW개발 분야 직장 구하기 / SW 개발자 초기 시절 활용법 / 필수 역량 / SW R&D조직 / 경력을 말아먹는 법


2. 리더십

조직생활 /SW 제안서 작성법 / 승진 / 시간 관리 / 개발 일정을 맞추는 방법 / 균형의 기술 / SW 프로젝트 관리의 비밀 / 빅리그 : 외야 안타에서 홈런까지


3. 거성

SW 혁신 리더십 / 빅리그 : 거물에서 선지자로 / 지금 알고있는 걸 그때도 알았더라면 / 홀로서기 : "SW스타트업" / 보상 / 성공하기

부록

국내 인터뷰




.

가장 큰 공통점 가운데 하나는 모든 리더와 이노베이터가 자신의 일을 사랑한다는 점이었다. 그건 원인이면서 동시에 결과였다. 자신이 하는 일을 사랑하는 것은 성고을 위한 자양분 중 가장 필요한 것이기도 하지만 일단 성공하고 나면 자신이 사랑하는 일에 더 많은 시간을 쏟을 수 있기 때문이다.


성공의 기준

재미있고 흥미로운 일 / 회사와 업계에 끼친 영향력 / 사회의 발전 / 하고싶을 때 하고 싶은 일을 할 자유 / 명성 / 여행

금전적 보상은 그 결과로 따라올 뿐이다.


성공적인 커리어는 얼마나 많이 일했나 보다는 무엇을 했는지에 의해 더 크게 좌우된다.


.

좋은 SW는 결국 시장에서 잘 받아댜르여지는 SW로 정의된다.

우리가 하는 모든 일의 원동력은 바로 시장이다.

지속 수익을 안겨다 주는 것은 바로 기존 고객이기 때문에 기존 고객을 만족하게 해야한다. 그러나 지속 수익은 성장 동력이 아니므로 제품에서 더 큰 장기 수익을 창출하고 싶다면 신규 수익을 낼 수 있는 새 고객을 끌어들여야만 한다.

최고의 SW개발 조직이라면 지속 수익과 신규 수익을 철저히 분리해서 추정한 다음 각각의 목표에 맞게 제품 개발 전략을 수립할 것이라는 점이다.


개발자로서의 첫 5년은 가장 큰 가르침을 얻을 수 있는 시기


SW전문가가 되려면 이런 경험과 스킬을 해당 분야에 뛰어든 후 5년 안에 익힐 수 있어야 한다. 지금까지 그런 스킬을 익힐 기회를 잡지 못했다면, 지금이라도 좋으니 빨리 배우도록 하자.

최소한 네 가지 서로 다른 프로그래밍 언어와 네 가지 서로 다른 데이터 형식(JPEG, XML, 텍스트, MPEG 등)을 배운다.

적어도 천 명이 동시에 사용할 수 있을 정도의 SW를 개발한다.

1테라바이트 규모의 데이터까지도 스케일링할 수 있는 SW를 개발한다.

열명 이상이 참여하는 프로젝트에서 일한다.

지금은 질문에 답해줄 사람이 없는, 만들어진 지 5년 넘게 지난 코드를 확장하는 일을 한다.

남이 만든 코드의 결함을 적어도 40개 이상 수정한다.

UNICODE를 입력받고 두 가지 이상의 언어로 사용자 출력을 하는 다국어 지원코드를 작성한다.

다음과 같은 상황에서의 성능 특성을 연구한다.

CPU 캐시 미스가 있는 상황과 없는 상황에서 메모리로부터 데이터 가져오기

디스크에서 연속된 블록에서 읽어오는 경우와 무작위 입출력 탐색으로 읽어오기

큰 블록의 입출력과 작은 크기의 입출력

세 가지 많이 쓰이는 언어(java, c/c++, php등)


SW분야에서 성공하는 사람들은 그런 것이 자기 주 업무 분야가 아님에도 관련 실무 지식을 배우기 위해 열심히 일한다.(SW판매 방식, 시장의 생리, 영업 및 마케팅이 돌아가는 방식 등)


장기적으로 보면 성공적인 커리어는 특정 분야의 전문가(전문 프로그래머, 관리자, 테스터, 기술 전도사, 데이터메이스, 가상현실, 실시간 통신, CRM시스템, 모바일 기기)가 될 수 있는 능력에 의해 가장 크게 좌우된다.


리더로부터 배워라.


중요한 것은 무엇을 아느냐가 아니라 누구를 아느냐 하는 것이라는 점을 잊지 말자.


중대한 변화를 위해서는 그 수는 적지만 커넥터, 메이븐, 세일즈맨이라는 세 유형의 사람들이 필요하다는 것이다.


멘토를 만들어야 한다.


재미와 성공


한 직원을 규정짓는 역량은 업무 역량과 업무 외 역량, 이렇게 두 가지로 나눈다.

업무 역량 : 요건 계획, SW 설계, 프로그래밍, 디버깅, SW공학, OS 등

업무 외 역량 : 팀워크, 의사소통, 강연 능력, 조직 예절, 협상력, 멘토링, 채용, 관리, 리더십 등


어떤 역량이 필요한 상황이라면 이미 그것을 배우기에는 늦었다고 할 수 있다.

성공의 비결 가운데 하나가 바로 자신에게 주어진 업무 수준을 뛰어넘는 역량을 미리 계발하여 더 나은 성과를 냄으로써 평범한 사람들과는 다른 모습을 보여주는 것이다.


성장 역량.

톱날 갈기.


감성지능. Emotional Intelligence