나는 거의 2 년 동안 꽤 많은 PHP를 작성해 왔습니다. 이제 .NET (주로 c #) 개발을하고 있습니다. 그러나 때로는 돌아가서 PHP를 사용합니다.
나의 주요 질문은, 내가 이것을 계속하는 것이 현명한 것인가, 아니면 C #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?
나는 거의 2 년 동안 꽤 많은 PHP를 작성해 왔습니다. 이제 .NET (주로 c #) 개발을하고 있습니다. 그러나 때로는 돌아가서 PHP를 사용합니다.
나의 주요 질문은, 내가 이것을 계속하는 것이 현명한 것인가, 아니면 C #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?
답변:
두 언어를 동시에 사용하는 것은 아무것도 아닙니다. 프로그래머가 매일 여러 언어를 사용하는 것은 드문 일이 아닙니다. 다른 작업과 다른 기술 에는 다른 언어가 필요 합니다.
그냥 오늘, 나는 이미 네 개 또는 5 개의 서로 다른 언어를 사용했습니다, 그리고 내가 할 haven'd 때문에 그 흥미 있는 지금까지 프로그래밍. 내가 한 것은 프리젠 테이션 작업입니다.
좋은 프로그래머로서 본질적으로있어 필요한 여러 언어로 주위에 당신의 방법을 알고, 합리적인 유창 달성 (다음 보존)의 유일한 방법입니다 사용 하는 언어.
하는 것이 좋은 습관입니까?
훌륭한 연습입니다. 또한 새로운 언어를 사용하여 정기적으로 언어 목록을 확장하는 것이 좋습니다.
언어와 기술은 몇 년 만에 매우 빠르게 호의를 나타냅니다. 예를 들어, Objective C는 이 업계의 표준에 의해 영원 인 20 년 반 동안 거의 죽은 후 놀라운 힘을 발휘 했습니다!
"모든 거래에서 잭이 될 필요는 없다"는 것은 중요하지 않습니다. 오랫동안 업계에 머무를 계획이라면 기술 스택을 한 번 이상 전환해야한다고 가정하는 것이 매우 안전합니다 당신의 경력 전반에 걸쳐. 이제 여러 언어를 사용하면 합리적으로 짧은 통지를 켤 준비가됩니다.
이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?
두 개 이상의 언어를 아는 것은 결코 해를 끼치 지 않을 것입니다. (내부 작업을 이해하지 않고) 언어를 매우 얕게 알면 해를 입을 수 있습니다.
개인적으로 선호하는 것은 항상 하나의 객체 지향 프로그래밍 언어를 먼저 마스터하는 것이 었습니다 . 이를 통해 모든 프로그래밍 개념을 심층적으로 학습하고 필요한 경우 다음 개념을 쉽게 배울 수 있습니다.
하는 것이 좋은 습관입니까?
확실히 맞아요!
분명히 하나 이상의 응용 프로그램을 구축하여 두 가지 이상 을 배우고 연습하는 것이 좋습니다 . 한편, 웹 개발을 수행하거나 계획중인 경우 일부 스크립팅 언어 (jQuery, KnockoutJ 등) 및 라이브러리를 학습 할 수도 있습니다.
장기적으로 해를 끼치 지 않아야하며 여러 언어에 능숙하면 다재다능한 개발자가 될 수 있습니다. "올바른 작업을 수행 할 수있는 올바른 도구"를 사용하는 것이 궁극적 인 목표이며 다른 언어로 정통하게되면 다른 언어가 무엇인지 알면서 어떤 플랫폼 / 프레임 워크 / 언어를 사용해야하는지에 대한 올바른 결정을 내릴 수 있습니다. 무언가를해라.
당신의 경력의 과정 동안, 당신은 것 가지고 새로운 언어와 새로운 기술을 배우고, 업계는 단순히 그것을 요구합니다. 첫 번째 전문 과제에서 Ada, C 및 Fortran으로 작성된 코드와 일부 SQL 및 셸 스크립트를 제공해야했습니다. 지난 몇 년 동안 C ++에서 Java로 전환했다가 다시 되돌려 야했습니다. csh, bash 및 perl로 쉘 스크립트를 작성했습니다.
다른 언어, 특히 다른 도메인 (OO, 기능, 논리 등)에있는 경우 다른 언어를 배우는 데 시간을 내면 여러 가지 방법으로 도움이됩니다. 그것은 당신의 두뇌를 날카롭게 유지합니다. 개념과 구현을 분리하는 데 도움이됩니다 (예 : 해시 및 맵은 특정 언어의 데이터 유형이 아닙니다). 주어진 문제에 어떤 도구가 적합한 지 더 잘 알 수 있습니다 (예를 들어, C로 웹 사이트를 작성하지 않거나 Haskell에서 장치 드라이버를 작성하지 않음). 구직을 쉽게하도록 도울 수 있습니다 ( "이미 그는 이미 Intercal 1을 알고 있으므로 훈련시킬 필요가 없습니다!"). 언어 디자이너가 직면 한 문제에 대한 아이디어를 제공합니다. 고유 한 프로그래밍 언어를 만들도록 영감을 줄 수 있습니다.
최소한 지루해지지 않을 것입니다.
1. 농담. Intercal을 배우려고하지 마십시오.
이것에 대한 단점과 단점이 있습니다.
여기에 장점이 있습니다 ...
다른 사람들이 언급했듯이, 프로그래밍에서 오랜 경력을 쌓기 위해서는 새로운 언어를 배우고 많은 언어와 프로그래밍 도구로 작업 할 수 있어야합니다. 도구 / 언어는 수년에 걸쳐 변화하고 있습니다. 물론 1980 년대에 사용했던 것과 동일한 메인 프레임 코볼에서 프로그래밍을하는 사람들이 있지만 이것은 비교적 드문 상황입니다. 대부분의 프로그래머는 경력을 쌓는 동안 도구 / 언어를 여러 번 바꾸게됩니다. 오래된 기술이나 회사에서 사용하는 모든 언어를 알고 있기 때문에 고용 될 수도 있습니다.
단점은 ...
일부 고용주는 귀하를 "모든 거래의 잭, 없음 마스터"로보고 기회를주지 않고 신청을 거부합니다. 그들은 단순히 좋은, 잘 다듬어 진 프로그래머가 아닌 특정 분야의 좁은 전문가를 찾고 있습니다. "[X]에 대한 5 년의 지속적인 경험"이 없기 때문에 HR에 의해 단절 될 수 있습니다. 이력서를 업무에 맞게 조정하면이를 피할 수 있지만 기술 면담에는 도움이되지 않을 수 있습니다.
나에게는 업사이드가 훨씬 낫지 만 소수의 조직이 그것을 부정적인 것으로 간주한다는 것을 알아야합니다.
아니요, 여러 언어를 배우고 모든 언어를 상당히 자주 사용하는 데 아무런 문제가 없습니다. 저는 매일 루비, PHP, JavaScript, CoffeeScript, Python 및 때때로 C를 접할 수 있습니다. 나는이 모든 언어를 상당히 잘 알고 있으며, 다른 언어로 갈수록 내 두뇌가 바뀌 었습니다. 물론 다른 언어로 갈 때 일부 언어의 기능이 누락되었지만 그 이상을 극복하게 될 것입니다.
나는 항상 깊이있는 언어를 배우려고 노력하고 또 다른 언어는 "위로 올라오다"라고 말합니다. 이런 식으로 당신은 항상 명확한 교육 목표를 가지고 있으며 그 다음에 수평선에 뭔가가 있습니다. 현재 Ruby는 제 주요 언어이며 Go를 실험하고 있습니다. 아마 Go 개발자로 일을 할 수는 없지만 새로운 언어를 배우는 것이 더 나은 개발자가되었습니다.
개발자와 인터뷰 할 때는 항상 이력서에서 몇 가지 다른 언어를보고 싶습니다. 개발자가 이력서에 "C / C ++"또는 "PHP 및 Javascript"가있는 경우 4 개 또는 5 개 언어를 제대로 이해하고있는 사람보다 훨씬 덜 흥미롭게 보입니다. 당신이 열거 한 어떤 언어라도 편안하게 느끼도록하십시오. 이력서의 모든 것은 면접에서 공정한 게임입니다!
한마디로 : 여러 언어를 정기적으로 사용한다는 것은 기술에 관심이있는 훌륭한 개발자의 신호입니다. 코딩을 유지하십시오!
이력서를 보면 대개 여러 언어를 알고있는 사람을 찾습니다. 또한, 사람의 경험이 증가함에 따라 그들이 사용하는 언어의 수가 증가해야합니다.
우리의 환경에서 우리는 종종 새롭고 흥미로운 문제를 해결해야하며, 새로운 언어를 배울 필요가 있는지 여부에 관계없이 그러한 문제를 기꺼이 뛰어 들고 해결하려는 사람들을 찾고 있습니다. Windows 데스크탑, Windows 서버, Linux 서버 또는 브라우저에서 실행중인 코드에 문제가있을 수 있습니다.
여러 언어를 아는 것은 공예에 대한 좋은 태도를 가진 사람의 표시입니다. 그들은 항상 새로운 것을 배우고 싶어합니다. 많은 언어를 알지 못한다는 것은 사람이 최소한으로 만 배우고 학습에 관심이 없다는 것을 나타냅니다.
사람들이 둘 이상의 언어를 사용하여 프로그램하는 것은 항상 그렇습니다. 사람들이 어셈블리를 사용할 때는 아키텍처를 변경할 때마다 새로운 어셈블리 언어를 배워야합니다.
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 #으로 개발을 계속해야 하는가? 이것이 장기적으로 저에게 해를 끼치겠습니까 (내 주요 목표는 모든 거래에서 잭이되는 것이 아니라고 생각하십니까) 아니면 좋은 습관입니까?
따라서 짧은 대답은 아닙니다. 언어를 사용하거나 언어를 바꾸는 것은 당신에게 멍청한 짓을하지 않습니다. 둘 이상의 언어를 알고 있다고해서 모든 거래의 잭이되는 것은 아니며 개발자가 둘 이상의 언어를 사용할 수 없어서 전문가가 될 수있는 방법은 없습니다.
이 상황에서는 항상 JAVA에서 C #으로 전환하고 다시 돌아가는 것이 아니라 C #과 PHP를 사용하는 것이 좋습니다.
WAMP 스택 (Windows / Apache / MySQL / PHP) 및 C #을 사용하는 웹 기반 작업을 수행하려고한다고 가정합니다. C #을 사용하여 일부 SOAP 기반 서비스를 작성한 다음 PHP를 사용하여 소비합니다.
이것은 나에게 완전히 받아 들일 것 같습니다.
어쨌든 둘 이상의 언어를 아는 것이 좋습니다. 더 많이 알수록 좋습니다. PHP / C # / Java / Python / 자바 스크립트 라이브러리 [예 : JQuery]. 가능한 많은 사람들에게 유용하십시오.