이 세 단어는 일부 역할이 겹치는 만큼, 확실히 헷갈릴 수 있겠네요! 먼저, 소프트웨어 산업에서 코더(coder)와 프로그래머(programmer) 그리고 엔지니어(engineer)는 코드를 다루는 직종이라는 점에서 공통점이 있답니다. 하지만 구체적인 역할은 조금씩 다른데요, 먼저 코더는 하나의 코드 언어를 사용하는 만큼 아무래도 초심자로 분류되고는 한답니다. 이 때문에 이들은 종종 junior programmers/developers라고도 불리죠. 한편, 프로그래머와 개발자(developer) 역시 코드를 다루고는 있지만, 코더보다도 숙련도가 높으며 전체 프로젝트를 총괄하는 것이 특징이랍니다. 마지막으로 엔지니어는 숙련도가 정점에 달한 전문가들을 가리키는데요, 애플리케이션이나 프로젝트 전체의 설계와 마무리 그리고 조정을 담당하죠. 즉 기본적으로 이들 셋 모두 코드를 다루지만, 그 숙련도에서 차이가 있다는 것을 알 수 있죠. 그러므로 숙련의 전도에 따라서 코더, 프로그래머/개발자 그리고 소프트웨어 엔지니어 순으로 커리어가 발달한다고 볼 수 있죠.
예: I have a friend who works as a software engineer in Silicon Valley. She usually works on optimizing applications for end-users. (실리콘 밸리에서 소프트웨어 엔지니어로서 일하고 있는 친구가 있는데, 그녀는 보통은 최종 수요자들을 대상으로 한 애플리케이션의 최적화 작업을 담당하고 있다.)
예: I just started my career as a coder. I can be considered a newbie. (나는 코더로서의 커리어를 막 시작했다. 어떻게 보면 초보라고도 볼 수 있겠지.)