본문 바로가기

사람과 기술

타이핑이 느린 프로그래머 대부분의 프로그래머의 타이핑 실력은 정말 뛰어납니다. 심야에 정말 빠른 타이핑 실력을 가지고 있는 프로그래머가 타이핑을 하고 있는 소리를 들어보면 음악과도 같습니다. "딱딱딱"이 아니고 "좌르르~"소리나 납니다. 이런 개발자들을 많이 봐왔죠. 그런데, 가끔 타이핑이 느린 프로그래머를 접하게 됩니다. 심지어는 자판을 보지 않고는 영어를 입력하지 못하는 프로그래머도 본적이 있습니다. 타이핑이 개발 실력과는 크게 연관이 없는 것처럼 보일 수도 있지만, 프로그래머의 무기는 키보드인데, 타이핑이 느리다는 것은 대단한 손해가 아닐 수 없습니다. 프로그래머의 일생의 수십%는 타이핑을 하면서 보냅니다. 그 시간의 10~20%는 절약하는 것은 인생의 대단한 시간 절약이 아닐 수 없습니다. 그 반대의 경우는 대단한 낭비죠.. 더보기
개발자 5적 소프트웨어 회사의 가장 중요한 자산은 개발자입니다. 개발자는 회사를 흥하게도 하지만 망하게도 합니다. 안타깝게도 우리 주변에는 좋은 개발자보다 나쁜 개발자가 더 많습니다. 초년병 때는 대부분은 좋은 개발자이거나 좋은 개발자가 되려고 합니다. 하지만 시간이 흐를수록 주변의 환경 때문이던 본인 때문이던 나쁜 개발자가 더 많아집니다. 내가 생각하는 가장 나쁜 개발자는 다음과 같습니다. 자신의 지식을 남에게 공유하지 않는 개발자 다른 개발자를 도와주지 않는 개발자 개발보다 정치에 관심이 많은 개발자 자기 개발을 위해서 노력하지 않는 개발자 경영자, 관리자, 동료와 자신을 속이는 개발자 안타깝게도 이러한 개발자는 쉽게 구분하기 어렵거나 회사가 이러한 개발자에 완전히 종속되어서 어쩔 수 없는 경우가 대부분입니다. .. 더보기
개발자 채용 시 코딩테스트를 하시나요? 연기자나 가수를 뽑을 때 오디션을 보듯이 개발자를 채용할 때는 코딩테스트가 꼭 필요합니다. 하지만 코딩테스트를 하지 않고 채용하는 경우가 매우 흔합니다. 이력서를 통해서 그 개발자가 과거에 참여했던 프로젝트가 무엇인지 보고 인터뷰에서 이거 저거 물어보는 것만 가지고는 개발자의 실력을 평가하기는 아주 부족합니다. 코딩 테스트는 다음과 같이 3가지 타입으로 진행할 수 있습니다. 첫째, 인터뷰를 하기 전에 E-mail을 통해서 코딩테스트 과제를 전달할 수 있습니다. 이때는 시간이 반나절이나 하루 정도 걸리는 과제를 줄 수 있고 꽤 많은 내용을 점검할 수 있습니다. 단순히 로직 뿐만 아니라 코딩 습관, 최적화 시도, 소스트리, 빌드 스크립트 등 다양한 실력을 엿볼 수 있습니다. 1차에 끝나는 경우도 있고, 시험.. 더보기
소프트웨어 아키텍처는 어디에서 오는 것일까? 오늘은 아키텍처와 비즈니스의 관계에 대해서 적어볼까 합니다. 아키텍처… 비즈니스… 둘간의 무슨 관계가 있을까요? 별 관계도 없어 보이고… 혹시 제품의 아키텍처를 구성하고 설계를 하시고 계시나요? 그렇다면 비즈니스에는 얼마나 관심을 가지고 계십니까? 기술은 기술, 비즈니스는 비즈니스, 별 관계없다고 생각하실 수도 있습니다. 결론은 말씀 드리면 "소프트웨어 아키텍처는 비즈니스에서 나온다."입니다. 이 글을 쓰게 된 주된 이유는 많은 선임, 고참 개발자들이 기술에만 관심을 가지고 비즈니스에 별 관심이 없는 경우를 많이 봐왔기 때문입니다. 개발자는 상위 개발자가 될 수록 비즈니스를 알아야 합니다. 아키텍처에 대한 대부분의 결정은 단순히 기술적인 결정이 아닙니다. 비즈니스를 제외하고 기술적인 결정만 있는 경우는 .. 더보기
신입 개발자가 들어오면?  신입 개발자가 들어오면 어떻게 하시나요? 회사에서 소프트웨어를 개발하기 위해서는 많은 것을 알아야 함에도 불구하고 딱히 가르칠게 별로 없는 경우를 많이 보았습니다. 체계적인 교육 방법로 마땅치 않고요. 어떻게 신인 개발자를 가르치고 있는지 제가 아는대로 한번 나열을 해보죠. 멘토(사수)를 지정해서 맨투맨으로 이거 저거 생각나는 대로 알려준다. 회사에 문서는 정말로 많다. 책꽂이로 한 벽 가득이다. 그 중에서 뭘 보라고해야 할지 잘 모르겠다. 제품에 관한 변변한 문서가 하나도 없다. 있다 하더라도 부실하거나 옛날 버전이다. 그래서 말로 아는대로 설명해준다. 개발하는 제품의 메뉴얼을 보여주고 제품의 기능을 익히게 한다. 일단 일을 시키고 본다. 물어보는 것이 있으면 그때 그때 알려준다. 소스코드를 보게 .. 더보기