프로그래머, 개발자, 코더, 해커 및 엔지니어의 차이점은 무엇입니까?


대답 1:

프로그래머는 컴퓨터 코드를 조작하여 문제를 해결할 수있는 사람입니다. 기본 스크립팅으로 "ok"부터 모든 언어로 절대적인 마법사까지 다양한 기술 수준을 보유 할 수 있습니다. 해커는 물건을 만드는 사람입니다. 이러한 맥락에서 컴퓨터를 프로그래밍하여 물건을 만드는 사람입니다. 이것은 용어의 원래의 가장 순수한 정의입니다. 즉, 아이디어가 있고 함께 작동하도록 무언가를 "해킹"한다는 것입니다. 또한 기능을 크게 변경하기 위해 사물을 수정하는 사람들에게도 적용되지만 그다지 덜 개발자입니다. 문제를 해결하거나 물건을 만드는 것이 아니라 일련의 설계 및 구현 원칙에 따라 그렇게합니다. 여기에는 성능, 유지 관리 성, 확장 성, 견고성 및 (이상적으로) 보안과 같은 것들이 포함됩니다. 간단히 말해서 세 가지 모두 코드를 사용하여 문제를 해결합니다. 프로그래머는 문제 해결사를 의미하는 포괄적 인 용어이고, 해커는 제작자 / 통화 전문가이며, 개발자는 문제를 해결하는 것이 아니라 공식 교육의 일부로 배울 수있는 체계적이고 훈련 된 방식으로 공식적으로 훈련 된 프로그래머입니다. 모든 해커와 개발자는 프로그래머입니다. 많은 프로그래머와 개발자조차도 해커로 간주 될만큼 창의적이지 않습니다. 많은 프로그래머와 해커조차 개발자로 간주 될만큼 교육을 받거나 경험이 부족합니다.


대답 2:

나는이 제목들 사이의 차이점에 대한 "공식적인"정의가 있다고 믿지 않습니다. 일반적으로“프로그래머”와“코더”라는 용어는 동의어입니다 (거의 동일합니다). 저에게 해커라는 용어는 호스팅 시스템에 들어가는 코드를 "중단"하거나 예기치 않은 (및 준비되지 않은) 방법을 찾는 사람을 의미합니다. 이것은 사회 공학 또는 수많은 다른 방법을 통해 이루어질 수 있습니다. 해커는 코드의 결함을 강조하는 데 긍정적 인 이점을 제공 할 수 있습니다. 그들은 또한 매우 파괴적 일 수 있습니다. 이전에 근무한 회사 (We Energies 아님)에는 "MUG"그룹이있었습니다. aka : 제공된 코드를 "강화"하는 데 사용 된 악성 사용자 그룹입니다.

내 생각에 개발자는 단일 응용 프로그램과 작성 방법에 관심을 갖는 경향이 있습니다. 운영 환경에 미치는 잠재적 영향을 명심하십시오. 여기에는 네트워크, 방화벽, 머신 영향, 물리적 / 가상 환경에서 호스팅되는 다른 애플리케이션에 대한 영향과 같은 무수한 요소가 포함될 수 있습니다. 핵심은 개발자가 다른 요소보다 응용 프로그램에 더 집중한다는 것입니다. 그 / 그녀는 다른 부분들과 부분들을 알고 있지만 그것들에 대한 주요 초점은 아닙니다. 그들은 가능한 한 정확하게 신청서를 받아야합니다.

엔지니어는 일반적인 용어이지만 (개발자와 마찬가지로) 소프트웨어와 관련하여 전체 환경과 응용 프로그램에 중점을 두는 경향이 있습니다. 그러나 이것은 어렵고 빠른 규칙이 아닙니다.

엔지니어가 소프트웨어 개념에 대한 정식 교육을 받았거나“즉석에서”익히는 것이 중요합니다. 엔지니어가 시작한 많은 정교한 스프레드 시트가 있습니다. 그들은 알고리즘을 가지고 있었지만 왜 특정 일들이 특정한 방식으로 (속도 또는 확장 성을 위해) 수행되어야 하는지를 이해하지 못했습니다. 그것들은 훌륭 할 수 있지만 응용 프로그램을 유지 관리하는 것은 매우 어려웠습니다.

우선 유지 관리 및 확장 성을위한 응용 프로그램을 구축하고 필요한 경우 속도를 높이는 것이 좋습니다. 유지 관리 성을 최우선으로하여 응용 프로그램에 소요되는 시간을 줄였고 다음 확장 성으로 인해 쉽게 개선 할 수있었습니다. 오래된 말이 있습니다 : 당신은 항상 더 큰 상자를 살 수 있습니다…


대답 3:

나는이 제목들 사이의 차이점에 대한 "공식적인"정의가 있다고 믿지 않습니다. 일반적으로“프로그래머”와“코더”라는 용어는 동의어입니다 (거의 동일합니다). 저에게 해커라는 용어는 호스팅 시스템에 들어가는 코드를 "중단"하거나 예기치 않은 (및 준비되지 않은) 방법을 찾는 사람을 의미합니다. 이것은 사회 공학 또는 수많은 다른 방법을 통해 이루어질 수 있습니다. 해커는 코드의 결함을 강조하는 데 긍정적 인 이점을 제공 할 수 있습니다. 그들은 또한 매우 파괴적 일 수 있습니다. 이전에 근무한 회사 (We Energies 아님)에는 "MUG"그룹이있었습니다. aka : 제공된 코드를 "강화"하는 데 사용 된 악성 사용자 그룹입니다.

내 생각에 개발자는 단일 응용 프로그램과 작성 방법에 관심을 갖는 경향이 있습니다. 운영 환경에 미치는 잠재적 영향을 명심하십시오. 여기에는 네트워크, 방화벽, 머신 영향, 물리적 / 가상 환경에서 호스팅되는 다른 애플리케이션에 대한 영향과 같은 무수한 요소가 포함될 수 있습니다. 핵심은 개발자가 다른 요소보다 응용 프로그램에 더 집중한다는 것입니다. 그 / 그녀는 다른 부분들과 부분들을 알고 있지만 그것들에 대한 주요 초점은 아닙니다. 그들은 가능한 한 정확하게 신청서를 받아야합니다.

엔지니어는 일반적인 용어이지만 (개발자와 마찬가지로) 소프트웨어와 관련하여 전체 환경과 응용 프로그램에 중점을 두는 경향이 있습니다. 그러나 이것은 어렵고 빠른 규칙이 아닙니다.

엔지니어가 소프트웨어 개념에 대한 정식 교육을 받았거나“즉석에서”익히는 것이 중요합니다. 엔지니어가 시작한 많은 정교한 스프레드 시트가 있습니다. 그들은 알고리즘을 가지고 있었지만 왜 특정 일들이 특정한 방식으로 (속도 또는 확장 성을 위해) 수행되어야 하는지를 이해하지 못했습니다. 그것들은 훌륭 할 수 있지만 응용 프로그램을 유지 관리하는 것은 매우 어려웠습니다.

우선 유지 관리 및 확장 성을위한 응용 프로그램을 구축하고 필요한 경우 속도를 높이는 것이 좋습니다. 유지 관리 성을 최우선으로하여 응용 프로그램에 소요되는 시간을 줄였고 다음 확장 성으로 인해 쉽게 개선 할 수있었습니다. 오래된 말이 있습니다 : 당신은 항상 더 큰 상자를 살 수 있습니다…