컴퓨터 언어 폴리 글 로트가 가치가 있습니까? [닫은]


14

프로그래머는 자신을 향상시키기 위해 다양한 언어를 배워야한다는 말을 자주들을 수 있습니다. 나는 여전히 학교에 다니며 큰 프로그래밍 경험이 없습니다 (1 년 조금 넘음). 그러나 프로그래밍 기술을 향상시키기위한 고귀한 의도는 일종의 강박 장애로 바뀌 었습니다. 나는 비교적 알려진 모든 프로그래밍 언어를 배울 때까지 진정하지 않을 것이라고 생각합니다 .

(난 정말 말은, "프로그래머는 적어도 모든 패러다임을 알아야한다"그리고 평소 의미하지 않는다 윌되는 프로그래밍 언어가 실제로 도움이 수개 국어 : 그리고 여기에 질문 자체는 모든 언어로 당신이 일반적으로 듣고 약을)? 비슷한 경험이 있습니까? 직업 / 기술 / 경력에 도움이됩니까? 이러한 기술을 얼마나 자주 적용 할 수 있습니까?


3
사람들이 다른 사람들에게 새로운 언어에 대해 배우라고 제안 할 때 언어를 배우는 것이 아니라 새로운 패러다임을 배우는 것에 관한 것이 아니라고 생각합니다. 내 두 가지 주요 언어는 Python과 C ++입니다. Haskell을 배우는 것은 저에게 큰 경험이었습니다.
Vitor Py

4
모든 주요 패러다임을 아는 것은 실제로 많은 도움이됩니다 . 자신의 언어를 디자인 할 때 (그리고 언어 지향 프로그래밍 패러다임에 빠지 자마자, 모든 흥미로운 언어에 적어도 약간 노출되는 것이 다소 도움이 될 수 있습니다.)
SK-logic

4
"프로그래밍에 대해 생각하는 방식에 영향을 미치지 않는 언어는 알 가치가 없습니다." (앨런 펄리스). 아멘.

2
@Job, 10 개의 프로그래밍 언어를 아는 것은 단일 음성 언어의 기본을 배우기 위해 필요한 노력의 일부에 불과합니다.
SK- 로직

2
@ SK-logic은 다릅니다. 나는 6 세의 어린이에게 스페인어를 더 빨리 말하도록 가르치고 나서 그에게 파이썬을 가르 칠 수 있다고 확신합니다.
Raynos

답변:


10

"프로그래머는 적어도 모든 패러다임을 알아야한다"

도움이됩니다

나는 당신이 일반적으로 듣는 모든 언어를 의미합니다

도움이되지 않습니다. 모든 패러다임을 알고 나면 일주일에 언어를 배울 수 있습니다.

해당 언어가 필요할 때 일주일 동안 해당 언어를 배우는 것이 가장 좋습니다 .

좋은 프로그래머는 게으른 프로그래머입니다

참고 사항 :

일반적이고 대중적인 언어를 배우는 것이 "모든 패러다임"을 배우는 것만 큼 도움이되지는 않습니다. 전자는 후자를 다루지 않습니다. 예를 들어, 자체 학습은 프로토 타입 OO를 이해하는 데 매우 유용합니다. 일반적이거나 대중적인 언어는 아니지만 루비를 이미 알고있을 때 파이썬을 배우는 것보다 훨씬 유용합니다.

언어 디자인 :

새로운 언어를 쓰거나 디자인 할 때 대부분의 언어를 아는 것이 유용합니다. 따라서 견고한 유스 케이스가 있지만 꽤 틈새 시장입니다.

대신 내가 추천하는 것 :

코드 3 번 이상 읽기

언어는 "인기있는 것"에 따라 좌우로 움직입니다. 기술 곡선이 어떤지에 따라 기술은 몇 개월 또는 몇 년 후에 더 이상 사용되지 않습니다. (웹은 6 개월마다 기술을 더 이상 사용하지 않습니다).

프로그래밍 기술과 컴퓨터 과학 이론은 항상 동일하게 유지됩니다.


그러나 언어에는 흥미로운 사소한 기능이 많이 있으며 이미 알려진 패러다임에서 새로운 언어를 배우면 마음이 날 수 있습니다 (예 : 스몰 토크)
Anton Barkovsky

@AntoBarkowski는 잘못된 진술이므로 SmallTalk를 다른 OO 언어와 비교하지 마십시오. Java / C ++ / C # / etc. 실제 OO 언어 가 아닙니다 . 물론 스몰 토크는 배울 가치가 있지만 같은 패러다임은 아닙니다.)
Raynos

6
사람들은 계속해서 "일주일에 언어를 배울 수 있습니다"라고 말하지만 그것은 사실이 아닙니다. 물론, 그 언어로 구문 적으로 올바른 코드를 작성할 수는 있지만 그보다 더 많은 것이 있습니다. 예를 들어, C #과 Java는 구문 상 매우 유사하며 둘 다 OO 언어입니다. 그러나 C #으로 Java 코드를 작성한다고해서 C # 프로그래머가되는 것은 아닙니다.
R0MANARMY

3
@ R0MANARMY "<좋은 프로그래머>는 일주일에 언어를 배울 수 있습니다". 언어에는 라이브러리, 프레임 워크 및 API가 포함되지 않습니다. 좋은 프로그래머에 대한 나의 정의는 매우 높을 수 있습니다 .
Raynos

1
@ R0MANARMY, 당신이 언급 한 그 작고 중요하지 않은 의미 비트 중 어느 것이 이해하는 데 1 시간 이상이 걸릴 수 있습니까?
SK- 로직

4

여러 언어로 코딩하는 방법을 아는 것이 아니라 패러다임에 관한 것입니다. 더 많은 옵션을 알수록 좋습니다. 여러 언어를 아는 것이 확실히 도움이되지만 같은 유형의 언어를 계속 배우면 막 다른 길에 빠질 것입니다.

핵심은 프로젝트의 일부를 구현하는 데 가장 적합한 언어 / 시스템을 아는 것입니다. 하나의 주요 언어를 결정하더라도 (대부분의 프로젝트에서와 같이) 작성해야하는 모든 종류의 도구, 스크립트, 자동화 및 빌드 지원이 여전히 있습니다. 일반적으로 다양한 다른 언어 나 도구가 기본 언어보다 더 좋습니다.

명확히하기 위해, 실제로 듣는 모든 언어를 배우고 배우는 것은 어리석은 일입니다. 수백 가지가 있으며 종종 다른 언어에서 약간의 변형입니다.


3

IMHO, 그렇지 않습니다. 첫째로 1 년 이내에 언어를 배울 수 없기 때문입니다. 코드를 작성하는 데 2 ​​일이 걸리지 만 주어진 언어에 대해 유창하고 올바른 형식의 코드를 작성하려면 많은 경험이 필요합니다. GC가 작동하는 이유, 메모리 할당 위치, 더 빠른 구문, 문자열을 올바르게 연결하는 방법, 언어의 위험한 모서리 등

많은 Java 개발자가 끔찍한 C ++ 코드를 작성함에 따라 C ++ 개발자 인 끔찍한 Java / .NET 코드를 작성합니다.

다른 언어를 배우는 데있어 가장 좋은 점은 새로운 패러다임을 배우고 구체적인 문제를 해결할 수있는 더 좋은 도구가 있다는 것입니다. 예, 매우 빠른 비공개 GUI 앱이 필요합니다. .NET은 대체 할 수 없습니다.

그러나 .NET에서 구조체를 사용하지 않거나 C ++에서 모든 개체를 유출하지 않도록 언어를 배우는 데 많은 시간이 걸립니다. 디자인 원리, 플랫폼 및 선택한 언어를 배우는 데 더 좋습니다.

그러나 이것은 나의 의견 일뿐입니다.


2
"1 년 이내에 언어를 배울 수 없기 때문에"False. 언어를 배우는 것이 대중적인 프레임 워크를 배우는 것을 혼동하지 마십시오. 또한 끝에 "일반 프로그래밍 기술"을 목록에 추가하십시오.
Raynos

@ Raynos : 나는 이것이 그가 언급 한 것이라고 생각했습니다.
Steven Jeuris

1
새로운 언어를 사용하는 가장 좋아하는 방법은 적절한 하위 세트에 대한 컴파일러를 구현하는 것입니다. 언어를 이해하고 최고의 기능을 식별하고 도용하는 데 총 2-4 시간이 걸립니다. 거의 1 년도 아니고 하루도 아닙니다.
SK-logic

1
글쎄, 당신이 큰 C ++ 프로젝트에 참여하고 있는데 "10 년 동안 자바로 프로그래밍을 해왔지만 지난 6 개월 동안 C ++을 썼기 때문에 언어를 알고있다"는 말로 인터뷰를했다면. 나는 당신이 그 일에 대해 높은 임금을받는 선임 개발자 위치를 얻지 못할 것입니다. 그래서, 나는 아직도 당신이 한 달 정도 언어를 배울 수 없다고 생각합니다.
Coder

2
@Coder, 대규모 C ++ 프로젝트에 참여하고 "C ++을 포함하여 10 년 동안 20 개 언어로 프로그래밍했습니다"와 같은 단어가 포함 된 인터뷰를 받으면 일자리를 얻게 될 것입니다.
SK- 로직

2

그것은하는 것은 실용적이지의 을하지만 알고 매우 유용 할 수 있습니다 에 대한 그들. 제가 의미하는 바는 새로운 문제가 생겼을 때 "[다른 언어]가 이와 같은 문제를 해결하는 데 탁월한 방법이 있다는 것을 모호하게 기억합니다. 저도 찾아봐야합니다."


SE Radio와 같은 팟 캐스트가 적합하다는 것을 알았습니다. 출퇴근길을 잘 듣고 다닐 때가 많으며, 그런 식으로 많은 것을 배울 수 있습니다. 그러나 그 이유는 <X> 흥미 롭다.
Zachary K

1

도메인 지식을 구축 한 다음 많은 프로그래밍 언어를 학습함으로써 경력을 더 도울 수 있습니다. 말할 것도없이, 언어로 프로파일 러를 사용하는 방법, 디버거와 동일한 GUI, 최상의 GUI 프레임 워크 및 빠르게 프로그래밍하는 방법, 트레이드 오프와 함께 사용되는 일반적인 타사 라이브러리와 같은 추가 도구를 배워야합니다. 언어 별 관용구.

같은 일을하는 여러 가지 방법보다는 더 많은 일을하는 법을 배우는 것이 더 현명합니다.


1

구성 요소가 여러 언어로 작성된 여러 시스템에서 작업했습니다 (가장 나쁜 범죄자는 Ada 83, C, Fortran 77, SQL 및 DCL로 작성된 코드를 제공해야했지만 마지막 작업은 C ++ 및 Java 코드를 제공해야했습니다) ). ! 그래, 좋아, 당신이 (그들의 생산 생산 = 능숙만큼 충분히 여러 언어를 알 필요가 실제 경우가 있습니다, 당신은 깊은 C 전문가 ++ 않을거야 그리고 자바 당신이하지 않는 ... 괴물이다).

그 외에도 여러 언어를 배우는 데 시간이 걸리는 것은 개념구현을 분리하는 데 도움이 되는 입니다. 나에게있어 OOP는 여러 OOPL로 작업하기 전까지는 의미가 없었습니다. 또한, 당신의 경력에 어떤 시점에서, 당신은 것입니다 신속하게 기어를 전환하고 완전히 새롭고 익숙하지 않은 뭔가 작업을 시작해야한다; 당신이 무엇을 넘어 스트레칭 지금 약간의 시간을내어 필요한 의지 도움말 메이크업을 알고 그것이 일어날 않을 때 전환 쉽게 그.


1

가능한 한 모든 언어를 배울 필요가 있기 전에 몇 가지 다른 언어를 배우고 적어도 하나의 깊이있는 언어를 배우는 것이 더 나을 것이라고 생각합니다. 폭이 최소가되면 개발자로서의 발전에 깊이가 중요해집니다. 나는 하나 또는 두 개의 언어로 깊이있는 사람과 모든 것을 욕하는 사람보다 다른 사람의 욕망을 보았을 것입니다. 깊이를 얻는 것은 다른 패러다임을 배우는 것과 같습니다. 프로그래밍에 대한 생각이 바뀌고 정말 복잡한 흥미 진진한 프로젝트의 문이 열립니다.


0

많은 언어를 말하는 법을 배우는 것과 같습니다. 유용한 점까지 모두 배우는 것은 거의 불가능합니다. 사용하기 쉬운 것을 고수하면 더 나아질 것입니다. C ++, C # 및 Java를 매우 잘 배울 수는 있지만 Perl, Python, VB (VB.NET이 아님), Ruby 및 JavaScript에서 동시에 전문가 수준으로 짜내려고하는 것은 바보입니다. 하루에 모든 기술을 한 번에 유지할 수있는 시간이 충분하지 않습니다.

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