Part 1
소프트웨어 개발자로 입문하기
꿈을 위해 공부하고 계획하고 준비하느라 평생을 보낼 수도 있다. 하지만 일단은 시작해야 한다.
- 드루 하우스턴*
소프트웨어 개발과 관련해 지금껏 가장 많이 받은 질문은 ‘어떻게 입문하느냐’ 하는 것이다.
무언가를 해보려 할 때 혹은 꿈을 실현하고자 할 때 가장 큰 장애물처럼 보이는 게 바로 시작하는 부분이다. 처음 접하는 운동 요법이나 마라톤 훈련을 해보려고 할 때, 새로운 사업이나 책 집필에 돌입하려고 할 때, 그 어느 경우라도 이 시작 부분이 가장 어렵다. 프로그래밍을 할 때도 마찬가지다. 무엇을 해야 할지 고민하느라 한없이 시간만 흘려 보내기 일쑤다. 뭐든 실제로 하는 것보다 그것에 대해 읽고 공부하는 게 훨씬 쉽기 때문이다. 어떻게 첫걸음을 내디딜지 고민하고, 방향을 어디로 설정해야 할지 논쟁하는 게 실제로 그 일을 하는 것보다 훨씬 쉽다.
한 번에 한 걸음만 내딛는 게 비결이라면 비결이다. 자신이 발휘할 수 있는 용기와 결단력을 끌어 모아서 이렇게 말하라. “고민이나 아는 척은 그만하면 충분히 했어. 계획도 세웠어. 최고의 계획은 아닐지 모르지만 어쨌든 그냥 해보는 거야.” 그러면 여정이 시작된다. 그리고 어느새 산등성이를 지나 정상에 도달하여 지금까지 걸어온 수천 걸음을 되돌아보는 순간도 온다.
하지만 그전에 일단 계획을 세워야 한다. 개발자 지망생 중에는 아무 정보도 계획도 없이 성급하게 행동이 앞서서 어느 방향으로 갈지, 어디를 목적지로 삼을지도 모르고 무작정 움직이기 시작하는 이들도 첫걸음 내딛기를 주저하는 이들만큼이나 많다.
1부에서는 소프트웨어 개발자로 입문하는 데 필요한 기본적인 사항을 살펴볼 생각이다. 소프트웨어 개발자가 되기 위한 계획을 제대로 세울 방법을 설명하고, 코드의 세계에 도달하기 위해 익혀야 할 기술은 무엇이고 기술을 발전시키는 방법은 무엇인지 알려주겠다. 또 어떤 프로그래밍 언어로 시작하는 게 좋을지, 그 프로그래밍 언어를 배우기 위해 독학을 하는 게 좋을지 코딩 부트 캠프나 대학교에 가는 게 좋을지도 살펴보겠다. 1부를 마칠 즈음에는 소프트웨어 개발자로 입문하기에 충분한 지식을 갖추고, 이를 실행할 시기와 방법을 담아 실질적인 계획을 세울 수 있게 하는 것이 내 목표다.
1부의 내용은 이미 소프트웨어 개발자로 일하고 있는 사람에게도 유용하다. 남아 있는 지식의 빈틈을 채우거나 경력 발전을 위한 청사진을 그리는 데, 소프트웨어 개발 관련 학습 계획을 세우는 데 도움이 될 것이다.
이 책의 독자에게 무료로 제공하는 소프트웨어 개발자 기술 평가서toolkit를 다운로드해서 보라. 이 툴킷을 활용해 지식의 빈틈을 빠르게 찾아낸다면 개발자로서 더욱 자신감을 얻게 될 것이다.
소프트웨어 개발과 관련해 앞으로 어떤 경로를 택해야 할지 세상의 온갖 조언과 정보를 늘어놓는다 한들 스스로를 믿고 첫걸음을 떼지 않는 한 아무 일도 일어나지 않는다. 평소에 내가 잘하는 말이 있다. ‘과정을 믿기’ 바란다.
자, 이제 본격적인 이야기를 시작해보자.
* 파일 공유 서비스인 드롭박스를 설립한 MIT 출신의 기업가