소프트웨어 개발자라는 직업
우선 소프트웨어 개발이 생각보다 쉽고, 생각보다 어렵다는 사실을 알았으면 한다. 이 책은 ‘소프트웨어 개발에 대해 알아야 할 것’이라는 주제에 3부 전체를 할애하고 있다. 여기에서 그 내용을 간략하게 소개해보겠다.
소프트웨어 개발은 단순한 프로그래밍이 아니다. 프로그래밍이 많은 몫을 차지하긴 하지만, 코딩을 할 줄 아는 것만으로는 부족하다. 특히 이 직종을 천직이라고 느끼고, 이 분야에서 경력을 쌓아가겠다는 포부가 있다면 그 외에도 알아야 할 게 많다.
대다수 소프트웨어 개발 프로젝트는 수동 프로세스를 자동화하거나 수동으로 하기 너무 어려운 무언가를 자동화할 새로운 방법을 만들어내는 것이 목표다.
내가 쓰는 워드 프로세싱 소프트웨어를 예로 들어보자. 나는 지금 이 장을 구글 문서에서 작성하고 있다. 하지만 워드 프로세싱 프로그램이 없다면 손이나 타자기로 써야 할 것이다. 그리고 책으로 인쇄하려면 수작업으로 활자를 조판해가며 편집해야 할 것이다. 오타 수정을 위해 수정액 한 통(아마 위스키 한 병과 함께)도 대기시켜 둘 것이다. 하지만 요즘은 손이나 타자기로 책을 쓸 때 하던 수작업을 자동화하는 하드웨어, 소프트웨어가 구글 문서 외에도 많다. 이 정도면 내가 무슨 얘기를 하는지 이해했으리라 생각한다. 코드 장인이 되려면 다음 핵심 개념을 이해해야 한다는 뜻이다.
무언가를 자동화하기 전에 그 작업을 수동으로 하는 방법부터 깨우쳐야 한다.