두 프로그래밍 언어 사이를 오가는 것이 현명한가? [닫은]


28

나는 거의 2 년 동안 꽤 많은 PHP를 작성해 왔습니다. 이제 .NET (주로 c #) 개발을하고 있습니다. 그러나 때로는 돌아가서 PHP를 사용합니다.

나의 주요 질문은, 내가 이것을 계속하는 것이 현명한 것인가, 아니면 C #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?


30
하나의 트릭 조랑말보다 모든 거래의 잭이되는 것이 좋습니다
scrwtp

27
두 언어로만 자신을 제한하면 확실히 해를 끼칠 것입니다. 툴박스에 더 다양한 툴을 추가하십시오.
SK-logic

4
C #과 PHP 중에서 자유롭게 선택할 수있는 것처럼이 질문을하십시오. 실제입니까?
Doc Brown

10
한 언어의 모든 더러운 세부 사항을 아는 것은 의심 할 여지없이 매우 유용합니다. 그러나 여러 언어로 작업 할 때는 현재 어느 언어를 사용하든 프로그램의 일부를 특정 방식으로 디자인 할 수 있습니다. 이것은 언어가되는 일종의 프로그래머 열반입니다. 보조 응용 프로그램이 중요합니다. 사람들이 새로운 멋진 Z ++ 언어로 작업 할 때 미래에도 프로그래머로서의 잠재력을 가지고 있기 때문에 이는 훌륭한 장소입니다.

2
두 명만? 많은 프로그래머들이 정기적으로 여러 언어로 일합니다. 몇 가지를 아는 것은 더 많은 도구를 제공합니다.
Caleb

답변:


75

두 언어를 동시에 사용하는 것은 아무것도 아닙니다. 프로그래머가 매일 여러 언어를 사용하는 것은 드문 일이 아닙니다. 다른 작업과 다른 기술 에는 다른 언어가 필요 합니다.

그냥 오늘, 나는 이미 네 개 또는 5 개의 서로 다른 언어를 사용했습니다, 그리고 내가 할 haven'd 때문에 그 흥미 있는 지금까지 프로그래밍. 내가 한 것은 프리젠 테이션 작업입니다.

좋은 프로그래머로서 본질적으로있어 필요한 여러 언어로 주위에 당신의 방법을 알고, 합리적인 유창 달성 (다음 보존)의 유일한 방법입니다 사용 하는 언어.


4
나는 적어도 3 개 이상의 언어를 정기적으로 사용하지 않고 어떻게 효과적인 프로그래머가 될 수 있는지 잘 모르겠습니다.
Brian Knoblauch

1
@Brian-이 세 가지 언어가 기본 음성 / 쓰기 언어, 기본 프로그래밍 언어 및 SQL 및 / 또는 HTML입니까?
KeithS

2
@KeithS 클라이언트 쪽에서 매우 평범한 페이지를 만들고 서버 쪽에서 XML 레코드를 건드리지 않는 경우에만 해당됩니다. XPath, XSLT 및 XQuery와 마찬가지로 CSS 및 Javascript는 자체 언어로 계산됩니다.
Tacroy

2
"가장 많은 사람"또는 "대부분의 개발자"가 포함 된 모든 내용에는 인용이 필요합니다. 그렇지 않으면 주관적입니다. 내가 만난 거의 모든 개발자 (나 자신도 포함)는 SQL을 프로그래밍 언어로 간주하며 튜링 완성도는 프로그래밍 언어 (일반적으로 튜링이 완료 되지 않도록 설계된 DSL이라고 생각)에 필요한 요소는 아닙니다 . HTML과 XML은 분명히 프로그래밍 언어가 아님 (XML 기반 도메인 별 언어를 사용할 수 있음). 정규식은 프로그래밍 언어가 아니지만 프로그래밍 가능 / 구성 가능한 자동 기능입니다.
luis.espinal

2
그건 소스가 아닙니다. 토론 (링크 자체가 소스가 아님)에 대한 링크이며 CSS와 HTML에만 중점을 둔 토론입니다. "turing complete"테스트 (DSL의 주제에 대한 Martin Fowler의 연구를 읽도록 제안 함) 또는 SQL이 프로그래밍 언어인지 여부 (실제 소스는 다음과 같습니다) : en.wikipedia.org/ wiki / SQL 또는이 amazon.com/SQL-Programming-Language-Kirk-Scott/dp/0763766747 ). 내 게시물을 완전히 읽지 못하거나 stackexchange에 대한 링크가 소스가 아니라고 생각합니다.
luis.espinal

37

하는 것이 좋은 습관입니까?

훌륭한 연습입니다. 또한 새로운 언어를 사용하여 정기적으로 언어 목록을 확장하는 것이 좋습니다.

언어와 기술은 몇 년 만에 매우 빠르게 호의를 나타냅니다. 예를 들어, Objective C는 이 업계의 표준에 의해 영원 인 20 년 반 동안 거의 죽은 후 놀라운 힘을 발휘 했습니다!

"모든 거래에서 잭이 될 필요는 없다"는 것은 중요하지 않습니다. 오랫동안 업계에 머무를 계획이라면 기술 스택을 한 번 이상 전환해야한다고 가정하는 것이 매우 안전합니다 당신의 경력 전반에 걸쳐. 이제 여러 언어를 사용하면 합리적으로 짧은 통지를 켤 준비가됩니다.


14

이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?

두 개 이상의 언어를 아는 것은 결코 해를 끼치 지 않을 것입니다. (내부 작업을 이해하지 않고) 언어를 매우 얕게 알면 해를 입을 수 있습니다.

개인적으로 선호하는 것은 항상 하나의 객체 지향 프로그래밍 언어를 먼저 마스터하는 것이 었습니다 . 이를 통해 모든 프로그래밍 개념을 심층적으로 학습하고 필요한 경우 다음 개념을 쉽게 배울 수 있습니다.

하는 것이 좋은 습관입니까?

확실히 맞아요!

분명히 하나 이상의 응용 프로그램을 구축하여 두 가지 이상 을 배우고 연습하는 것이 좋습니다 . 한편, 웹 개발을 수행하거나 계획중인 경우 일부 스크립팅 언어 (jQuery, KnockoutJ 등) 및 라이브러리를 학습 할 수도 있습니다.


1
OOP를 배우는 것은 함수형 프로그래밍에서 많은 개념을 가르쳐 줄 것이라고 생각하지 않습니다. 하나는 JavaScript 범위 지정 규칙이 C #과 같은 다른 인기있는 OOP 언어와 매우 다릅니다. 기타 많은 개념이 있습니다.
phant0m

나는 매우 동의합니다. 그러나 jQuery와 KnockoutJ는 스크립팅 언어가 아닙니다. 그리고 기본적인 JavaScript 지식이 없으면 "학습 jQuery"를 권장하지 않습니다.
Bruno Schäpper

jQuery는 언어가 아니고 언어로 작성된 라이브러리이기 때문에 프로세스에서 JavaScript를 배우지 않으면 jQuery를 배울 수 없습니다.
ILikeTacos

5

장기적으로 해를 끼치 지 않아야하며 여러 언어에 능숙하면 다재다능한 개발자가 될 수 있습니다. "올바른 작업을 수행 할 수있는 올바른 도구"를 사용하는 것이 궁극적 인 목표이며 다른 언어로 정통하게되면 다른 언어가 무엇인지 알면서 어떤 플랫폼 / 프레임 워크 / 언어를 사용해야하는지에 대한 올바른 결정을 내릴 수 있습니다. 무언가를해라.


답을 주셔서 감사하지만 자주 교대가 학습 과정에 해를 끼치 지 않을지 궁금해하고 있거나 그 능력이 사람의 능력에 달려 있습니까?
Lamin Sanneh

@LaminSanneh 다른 언어를 배운다고해서 처음 언어를 악화시키는 것은 아닙니다. RPG가 아니며 각 언어에 할당 할 수있는 "프로그래밍 기술"포인트가 없습니다. 최악의 경우 다른 언어에 전념하는 데 시간이 걸립니다. 그러나 언어는 아이디어를 표현하는 방법 일 뿐이며, 새로운 언어를 배우면 이미 알고있는 언어에 적용 할 수있는 새롭고 신선한 관점과 아이디어가 제공됩니다. 물론, 당신은 모든 언어의 구문을 알지 못하지만 누가 그것에 관심이 있습니까? 빠른 Google 검색
Jay

5

당신의 경력의 과정 동안, 당신은 것 가지고 새로운 언어와 새로운 기술을 배우고, 업계는 단순히 그것을 요구합니다. 첫 번째 전문 과제에서 Ada, C 및 Fortran으로 작성된 코드와 일부 SQL 및 셸 스크립트를 제공해야했습니다. 지난 몇 년 동안 C ++에서 Java로 전환했다가 다시 되돌려 야했습니다. csh, bash 및 perl로 쉘 스크립트를 작성했습니다.

다른 언어, 특히 다른 도메인 (OO, 기능, 논리 등)에있는 경우 다른 언어를 배우는 데 시간을 내면 여러 가지 방법으로 도움이됩니다. 그것은 당신의 두뇌를 날카롭게 유지합니다. 개념과 구현을 분리하는 데 도움이됩니다 (예 : 해시 및 맵은 특정 언어의 데이터 유형이 아닙니다). 주어진 문제에 어떤 도구가 적합한 지 더 잘 알 수 있습니다 (예를 들어, C로 웹 사이트를 작성하지 않거나 Haskell에서 장치 드라이버를 작성하지 않음). 구직을 쉽게하도록 도울 수 있습니다 ( "이미 그는 이미 Intercal 1을 알고 있으므로 훈련시킬 필요가 없습니다!"). 언어 디자이너가 직면 한 문제에 대한 아이디어를 제공합니다. 고유 한 프로그래밍 언어를 만들도록 영감을 줄 수 있습니다.

최소한 지루해지지 않을 것입니다.


1. 농담. Intercal을 배우려고하지 마십시오.


4

올해 은퇴 한 사람들 은 C 가 만들어 지기 전에 경력을 시작했습니다 . 커리어에서 프로그래밍 언어를 한두 번 바꿀 수 있다고 말하는 것이 안전합니다. 당신은 그것을 이해하지 못하는 고용주를 위해 일하고 싶지 않습니다.

처음 사용하는 경우 두 언어 간의 컨텍스트 전환이 훨씬 어려우므로 전환하기 전에 한 언어로 4-8 시간 이상 작업하면 생산성이 높아집니다. 나중에 생산성 손실없이 즉시 전환 할 수 있습니다. 즉, 두 언어를 사용하면 결국 속도를 늦추는 대신 강점이 될 것입니다.


2

이것에 대한 단점과 단점이 있습니다.

여기에 장점이 있습니다 ...

다른 사람들이 언급했듯이, 프로그래밍에서 오랜 경력을 쌓기 위해서는 새로운 언어를 배우고 많은 언어와 프로그래밍 도구로 작업 할 수 있어야합니다. 도구 / 언어는 수년에 걸쳐 변화하고 있습니다. 물론 1980 년대에 사용했던 것과 동일한 메인 프레임 코볼에서 프로그래밍을하는 사람들이 있지만 이것은 비교적 드문 상황입니다. 대부분의 프로그래머는 경력을 쌓는 동안 도구 / 언어를 여러 번 바꾸게됩니다. 오래된 기술이나 회사에서 사용하는 모든 언어를 알고 있기 때문에 고용 될 수도 있습니다.

단점은 ...

일부 고용주는 귀하를 "모든 거래의 잭, 없음 마스터"로보고 기회를주지 않고 신청을 거부합니다. 그들은 단순히 좋은, 잘 다듬어 진 프로그래머가 아닌 특정 분야의 좁은 전문가를 찾고 있습니다. "[X]에 대한 5 년의 지속적인 경험"이 없기 때문에 HR에 의해 단절 될 수 있습니다. 이력서를 업무에 맞게 조정하면이를 피할 수 있지만 기술 면담에는 도움이되지 않을 수 있습니다.

나에게는 업사이드가 훨씬 낫지 만 소수의 조직이 그것을 부정적인 것으로 간주한다는 것을 알아야합니다.


+1, 게다가,이 소수의 조직과 나쁜 프로그래밍과 비 효율성 사이에는 상관 관계가 있습니다.
K.Steff

2
그러나 그 반대는 정확히 반대 생각하는 고용주에 의해 취소됩니다. 나는 내가 일하는 곳에서 결정을 내릴 수 있다고 말하고, 자신의 벨트 아래에 하나의 프로그래밍 언어를 가진 사람을 고용하는 것이 괜찮다는 것을 확신하기가 매우 어려울 것이다. 어쩌면 주니어 위치에 대한,하지만 확실히 수석 개발자.
존 한나

@JonHanna-주요 문제는 개발 팀이 HR, 때로는 자동화 된 프로그램을 통해 선별되기 때문에 잠재적 인 개발자와 인터뷰를 할 수 없다는 것입니다. 물론 이것은 대규모 조직에서 더 일반적인 문제입니다. HR 직원이 임의의 기준에 따라 최상의 후보를 선별하지 않도록하는 것이 중요합니다.
jfrankcarr

단점 을 지적 +1 . 내가 왔을 때 "모든 거래의 잭, 없음의 주인"이라는 견해를 유지하는 회사의 수는 그렇게 작지 않습니다.
lsoliveira

예, 그러나 우리는 그것을 좋은 품질로 바꿀 수 있습니다. HR에는 품질이 좋지 않다고 생각하는 바보가 항상있을 수 있습니다. 궁극적으로, 조직의 HR이 바보라면, 그들은 나쁜 고용을하게 될 것이고 고용 될 때 실업 라인보다 더 좋을 수도 있지만, 즉시 새로운 일자리를 찾고 다른 곳에서 일자리를 찾을 것입니다 .
존 한나

2

PHP 개발을 할 때 자바 스크립트 또는 SQL을 작성 했습니까? C # 개발에서는 여전히 두 가지를 모두 사용할 수 있습니다. 하나의 프로그래밍 언어를 사용하는 것만 큼 잘리지 않고 건조하지 않습니다.

당신이 그것을 행복하게해도 걱정하지 마십시오. 두 가지 모두를하고 싶지 않다면 문제가있는 것입니다.


2

새로운 프로그래밍 언어를 배우면 이미 알고있는 언어에 적용 할 수있는 프로그래밍에 대해 배울 수 있습니다. 전문 언어를 사용하지 않더라도 최소한 다른 언어를 사용하는 것이 좋습니다.

이상적으로는 이미 알고있는 사람들과 매우 다른 접근 방식입니다.


2

아니요, 여러 언어를 배우고 모든 언어를 상당히 자주 사용하는 데 아무런 문제가 없습니다. 저는 매일 루비, PHP, JavaScript, CoffeeScript, Python 및 때때로 C를 접할 수 있습니다. 나는이 모든 언어를 상당히 잘 알고 있으며, 다른 언어로 갈수록 내 두뇌가 바뀌 었습니다. 물론 다른 언어로 갈 때 일부 언어의 기능이 누락되었지만 그 이상을 극복하게 될 것입니다.

나는 항상 깊이있는 언어를 배우려고 노력하고 또 다른 언어는 "위로 올라오다"라고 말합니다. 이런 식으로 당신은 항상 명확한 교육 목표를 가지고 있으며 그 다음에 수평선에 뭔가가 있습니다. 현재 Ruby는 제 주요 언어이며 Go를 실험하고 있습니다. 아마 Go 개발자로 일을 할 수는 없지만 새로운 언어를 배우는 것이 더 나은 개발자가되었습니다.

개발자와 인터뷰 할 때는 항상 이력서에서 몇 가지 다른 언어를보고 싶습니다. 개발자가 이력서에 "C / C ++"또는 "PHP 및 Javascript"가있는 경우 4 개 또는 5 개 언어를 제대로 이해하고있는 사람보다 훨씬 덜 흥미롭게 보입니다. 당신이 열거 한 어떤 언어라도 편안하게 느끼도록하십시오. 이력서의 모든 것은 면접에서 공정한 게임입니다!

한마디로 : 여러 언어를 정기적으로 사용한다는 것은 기술에 관심이있는 훌륭한 개발자의 신호입니다. 코딩을 유지하십시오!


개발자가 이력서에서 "C / C ++"라고 말하면 이것이 유일한 언어가되고 싶습니다. 그러나 다른 언어를 사용하는 언어가 많을수록 좋습니다.
Coder

2

이력서를 보면 대개 여러 언어를 알고있는 사람을 찾습니다. 또한, 사람의 경험이 증가함에 따라 그들이 사용하는 언어의 수가 증가해야합니다.

우리의 환경에서 우리는 종종 새롭고 흥미로운 문제를 해결해야하며, 새로운 언어를 배울 필요가 있는지 여부에 관계없이 그러한 문제를 기꺼이 뛰어 들고 해결하려는 사람들을 찾고 있습니다. Windows 데스크탑, Windows 서버, Linux 서버 또는 브라우저에서 실행중인 코드에 문제가있을 수 있습니다.

여러 언어를 아는 것은 공예에 대한 좋은 태도를 가진 사람의 표시입니다. 그들은 항상 새로운 것을 배우고 싶어합니다. 많은 언어를 알지 못한다는 것은 사람이 최소한으로 만 배우고 학습에 관심이 없다는 것을 나타냅니다.


2

사람들이 둘 이상의 언어를 사용하여 프로그램하는 것은 항상 그렇습니다. 사람들이 어셈블리를 사용할 때는 아키텍처를 변경할 때마다 새로운 어셈블리 언어를 배워야합니다.

COBOL 또는 Fortran을 수행하는 사람들은 일반적으로 RPG 및 / 또는 JCL도 수행했습니다.

유닉스에서 사람들은 C, sed, awk, shell script 및 Unix 부엌 싱크대의 거의 모든 것들과 함께 일할 것입니다 (Unix의 거의 모든 명령 줄 도구는 매우 특수한 DSL입니다).

DOS에서 사람들은 배치 스크립트 외에도 Turbo Pascal 또는 C로 프로그래밍하고 있습니다. 나중에 Windows가 왔을 때 VB 또는 PowerBuilder와 같은 것이 SQL 및 배치 설치 스크립트와 결합되었습니다.

요즘 사람들이 하루에 두 개 이상의 언어로 작업 하는 것은 사실상 일입니다. 이란 실제 일상적인 코딩을하거나 일하는 지식을 가지고 있음을 의미합니다). Java 또는 C # 또는 VB는 최소한 JavaScript 및 SQL과 혼합되었습니다. 그런 다음 배치 / 작업 스크립팅 등을 위해 다른 언어가 사용됩니다. 그런 다음 각 언어에 대해 자체 언어로 된 미니 언어 인 내부 DSL을 구현하는 프레임 워크가 있습니다.

따라서 둘 이상의 언어로 작업하는 것이 유리할뿐만 아니라 필요합니다. 단일 언어로 현대적이고 복잡한 시스템을 구축 할 수있는 방법은 없습니다 ( "빌드"에 의해 컴파일되는 일부 크랩을 코딩하는 것이 아니라 적절한 디자인으로 무언가를 구축하는 것을 의미합니다.)

나는 사지에서 나가서이 직업에 대해 진지하게 생각한다면 대학에있는 아이들이 두 개 이상의 언어에 능숙 할 것이라고 기대할 것이다 .

따라서 귀하의 질문에 관해서 :

나의 주요 질문은, 내가 이것을 계속하는 것이 현명한 것인가, 아니면 C #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?

따라서 짧은 대답은 아닙니다. 언어를 사용하거나 언어를 바꾸는 것은 당신에게 멍청한 짓을하지 않습니다. 둘 이상의 언어를 알고 있다고해서 모든 거래의 잭이되는 것은 아니며 개발자가 둘 이상의 언어를 사용할 수 없어서 전문가가 될 수있는 방법은 없습니다.


1

기본 언어와 비교할 때 특정 언어에서 특히 강점 또는 약점으로 만드는 디자인 상충 관계를 더 잘 이해하고 그에 대한 이점 / 보상을 얻을 수 있습니다. 적어도 하나를 마스터하되 많은 다른 사람들의 잭이되는 것에 대해 걱정하지 마십시오. 좋아 보인다.

"고급"개발자가 제시 한 언어 중 하나만 사용하여 이력서를 찾는 방법이 더 좋습니다. 그 질문에 대한 답은 "그들이 생계를 위해하는 일에 크게 관심이 없다"입니다.


0

두 가지 언어가 도움이 될 수도 있고 그렇지 않을 수도 있습니다. 그것은 당신에게 해를 끼치 지 않을 것입니다. 많은 개발자들은 '주 언어'이외의 다른 것을 사용하는 것이 순수한 시간 낭비라고 생각하지만 나는 크게 동의하지 않습니다. 다른 언어를 배우고 사용하는 것은 순수한 이점입니다. 문제를 해결하는 방법에 대한 다른 관점을 제공합니다. 항상 특정 작업에 언어 중 하나를 사용하기 시작할 수 있습니다 (Python을 배우고 사용할 수있는 기회가 생겼기 때문에 나에게 발생했습니다).


0

이 상황에서는 항상 JAVA에서 C #으로 전환하고 다시 돌아가는 것이 아니라 C #과 PHP를 사용하는 것이 좋습니다.

WAMP 스택 (Windows / Apache / MySQL / PHP) 및 C #을 사용하는 웹 기반 작업을 수행하려고한다고 가정합니다. C #을 사용하여 일부 SOAP 기반 서비스를 작성한 다음 PHP를 사용하여 소비합니다.

이것은 나에게 완전히 받아 들일 것 같습니다.

어쨌든 둘 이상의 언어를 아는 것이 좋습니다. 더 많이 알수록 좋습니다. PHP / C # / Java / Python / 자바 스크립트 라이브러리 [예 : JQuery]. 가능한 많은 사람들에게 유용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.