개발 플랫폼과 관련 기술
적어도 개발 플랫폼 하나와 그와 함께 사용하는 관련 기술이나 프레임워크를 익숙하게 쓸 수 있어야 한다.
여기서 말한 플랫폼이란 무엇일까? 일반적으로 운영 체제operating system, OS를 가리킨다. 하지만 이는 운영 체제와 비슷하게 작동하는 다른 개념에도 적용할 수 있다. 맥 운영 체제에 집중하는 맥 개발자, 윈도우 운영 체제에 집중하는 윈도우 개발자가 있듯이 특정 웹 플랫폼에 집중하는 웹 개발자도 있다.
플랫폼의 정의에 대해서는 사람마다 의견이 다르기 때문에 여기서 플랫폼이 정확히 무엇인지 다투느라 시간을 낭비하고 싶지는 않다. 하지만 이야기를 진행하기 위해 플랫폼을 개발 환경이라고 정의하고자 한다. 각 환경은 나름의 생태계와 특수성을 지닐 것이다. 다시 한번 말하지만 여기에서도 어떤 플랫폼을 선택할지는 그리 중요하지 않다. 그보다 무엇이든 선택한다는 사실이 중요하다.
회사가 개발자를 고용하는 기준은 보통 플랫폼이나 기술이다. iOS 개발자로 입사하려면 그 플랫폼과 관련된 전문 지식을 갖추고 있는 게 훨씬 유리하다. 이 말은 단순히 해당 플랫폼에 익숙한 것을 넘어서 프로그래머들이 그 플랫폼에서 개발할 때 쓰는 개발 도구, 관용 표현, 프레임워크에도 익숙해야 한다는 뜻이다.
어떤 프로그래밍 언어를 선택하느냐에 따라 플랫폼도 결정될 거라고 생각할지 모르지만 사실 그런 일은 거의 없다. C#을 예로 든다면 C# 개발자는 윈도우, 맥, iOS, 안드로이드, 리눅스뿐 아니라 임베디드 시스템용 코드도 쓸 수 있다. 그러니 언어만 고르지 말고 플랫폼도 정하라.