코더, 개발자,프로그래머와 소프트웨어 엔지니어의 차이점

호랭이·2022년 6월 9일
0

💬 내생각

목록 보기
1/3

좋은 글을 발견해서 이를 정리해서 글로 남겨놓고자 한다.

프로그래머, 코더, 개발자 그리고 소프트웨어 엔지니어의 차이점은 무엇일까?
What’s the Difference Between a Programmer, Coder, Developer, and Software Engineer?

위 링크에 글에 따르면 코더, 개발자, 프로그래머, 소프트웨어 엔지니어의 차이점은 다음과 같다.

코더

  • 일부 코드를 작성할 수 있는 사람
  • 프로그래머나 개발자보다 알고리즘 지식이 부족한 경우가 많으며, 한가지의 코딩 언어에만 능숙한 초보자인 경우가 많다.
  • 일반적으로 개발자가 위임할 수 있는 날 것의 코드를 작성하는 업무를 수행한다.
  • 일부는 주니어 개발자와 같은 의미로 사용되기도 한다.

개발자 또는 프로그래머

  • 두가지의 단어는 종종 같은 의미로 사용된다.
  • 적어도 두세가지의 언어를 능숙하게 다루고 오류가 없고 깨끗한 코드를 작성한 경험이 많은 코드 작성자이다.
  • 알고리즘 지식을 활용하여 보다 정교한 수준의 코드를 생성할 수 있다.

소프트웨어 엔지니어

  • 주변에서 볼 수 있는 코더 중 가장 높은 수준이다.
  • 세가지 이상의 프로그래밍 언어에 익숙하고 그 기술을 사용하여 프로그램의 아키텍처를 설계 및 구현한다.
  • 결과물을 모듈화하여 깨끗한 인터페이스를 개발하고 또다른 개발자, 또는 코더와 협력하여 설계를 더 세밀하게 구성한다.
  • 엔지니어라는 위치는 대개 특정 학위가 있거나 엔지니어링 지식이 있고 시스템을 설계할 수 있는 개발자임을 의미한다.

🧐💡

나는 현재 코더의 위치에 있다.
그렇지만 양질의 경험을 다양하게 쌓아가다보면 프로그래머, 또는 소프트웨어 엔지니어라고 스스로를 소개할 수 있는 사람이 될 것이라 생각한다.
그러기 위해서는 단순히 코딩의 기술만을 쌓아가기보다는, 시스템의 (나의 경우는 앱의) 전체적인 구성과 인터페이스, 면밀한 설계까지 볼 수 있어야 할 것이다.

이 세 단계의 핵심은 결과물의 기능에 책임을 가지고 개발을 하는가라는 또 다른 글을 읽었다. 기능 구현뿐만 아니라 가용성, 확장성을 넓히는 설계와 적절한 기술을 도입하는 판단력, 오류에 신속히 대응하는 능력 등이 소프트웨어 엔지니어에게 필요한 역량일 것이라는 내용이었다.

나는 아직 소프트웨어 엔지니어까지는 한참 부족하지만 그에 걸맞는 마음가짐을 가지고 필요한 역량을 기억하며 주의깊게 살펴보고 학습하다보면, 전체와 구조를 모두 볼 줄 아는 높은 수준의 소프트웨어 엔지니어에 가까워질 수 있을 거라고 생각한다.

필요한 것

  • 코더로서
    - 코드 작성 실력
    - 지금 사용하는 언어를 능숙하게 다룰 수 있는 것
    - 협업 경험 쌓기
  • 개발자로서
    - 클린 코딩 경험
    - 다른 언어도 공부해보기
    - 코딩을 위한 알고리즘 학습과 적용
  • 소프트웨어 엔지니어로서
    - 사용 가능한 언어들을 이용한 아키텍쳐 설계 및 구현 능력
    - 결과물을 이용한 모듈화와 인터페이스 개발
    - 시스템 설계 능력
profile
삐약

0개의 댓글