여러 프로그래밍 언어를 알아야 할 필요성을 어떻게 처리합니까? [닫은]


25

저는 비교적 젊은 프로그래머입니다. 저는 23 살이고 약 5 년 동안 전문적으로 프로그래밍을 해왔습니다.

대부분의 프로그래머가 C로 시작하면서 재미를 위해 x86 어셈블리를 배운 다음 프로그래밍 세계에서 가장 큰 열정으로 밝혀진 C ++을 발견했습니다. C 및 C ++를 사용한 프로그래밍을 통해 플랫폼 별 API, 라이브러리 및 프레임 워크를 모두 학습해야하며, 모두 지속적인 연구와 실험이 필요합니다. 얼마 후 지역에 대한 수요가 기본적으로 이러한 언어에 대한 것이기 때문에 Java 및 C #으로 넘어갔습니다. 이 언어를 사용하여 웹 개발의 세계에 들어간 다음 자바 스크립트를 배워야했습니다. .NET Framework에 대한 개발은 처음에는 흥미로 웠지만 Microsoft에 묶여있을 때 끊임없이 느꼈습니다 (물론 .NET Framework는 나를 Linux에서 멀어지게했습니다). 데스크톱 개발의 경우 Qt와 함께 C ++을 사용하여 .NET으로 수행 한 거의 모든 작업을 수행 할 수 있었지만 웹 개발의 경우 대안을 찾아야했습니다. 빨리 Django를 찾은 다음 Django를 사용할 수 있도록 Python을 배우기 시작했습니다. 요즘 Objective-C로 iOS 개발을 배우고 있습니다.

지금 까지이 모든 언어를 배우는 것이 훨씬 쉬웠지만 (C ++이 잘 훈련되었습니다) 언젠가는 모든 언어를 추적 할 수 없을지 걱정됩니다. 다시 한번 확인하기 위해. 내가 배운 유일한 언어는 C #과 Java였습니다. 프로그래밍을하고 새로운 것을 배우는 것을 좋아하기 때문에 다른 사람들이 재미있게 배웠습니다. 또한 데스크톱, 웹 및 모바일 개발에 대한 기술을 연마하고 싶습니다.

내 질문은 : 여러 프로그래밍 언어를 어떻게 추적합니까? (즉, 이러한 언어의 변경 사항을 추적하고 기술을 예리하게 유지하십시오) 및 : 프로그래밍 언어가 충분합니까?


20
더 많은 언어를 배우지 않는 것에 대해 어떻게 감히 생각 합니까 !?
Mateen Ulhaq

9
"새로운 것을 배울 때마다 두뇌에서 오래된 것들을 밀어냅니다. 그 때처럼 홈 와인 제조 과정을 밟아 운전하는 법을 잊었습니다."
Dean Harding

1
프로그래밍은 언어 X의 구문을 마스터하는 것이 아니라 프로그래밍하는 방법을 배우는 것입니다. 올바른 직업에 적합한 언어를 고르는 방법을 배우고 일단 해당 언어를 선택하면 API와 구문을 배우고 다른 언어로하는 일을 수행하십시오 ... 프로그램!
Chris

6
결코 잊지 못할 언어들; 다른 사람들은 당신이 잊고 싶어
Steven A. Lowe

3
당신은 대부분 OOP에 있습니다. 기능 언어 Haskell과 같은 다른 패러다임 언어를 탐색 한 다음 계속 추적해야합니다.
Vigneshwaran

답변:


27

개인적으로 언어의 "추적"은 ​​시간 낭비라고 생각합니다. 새로운 인기있는 언어를 선택하는 것이 항상 좋지만 C ++, Python 등과 같이 인기 있고 잘 설정된 언어가 벨트에 있으면 걱정할 필요가 없습니다. 훌륭한 프로그래머라면 언어는 키워드 일뿐입니다.

거기에는 많은 패러다임이 있습니다. 어쩌면 오래된 개는 새로운 트릭을 배울 수 없지만 실제로 많은 새로운 트릭은 없습니다. 기능적 / 객체 지향적 / 이벤트 중심적 / 언어가 지속되지 않을까 걱정이된다면 다른 패러다임을 배우십시오. 그러나 정확한 언어 선택에 대해 너무 걱정하지 마십시오.

그리고 언어를 잠시 벗어난 후에 키워드를 잊어 버리면 어떨까요? 그래서 Google에 있습니다.


2
당신의 상사를 보지 마십시오. :) 또는 프로그래머가 아닌 사람. 그들은 프로그래밍이 매우 쉽다고 생각하며 프로그래머가 왜 그렇게 쉬운 일을하는지 지불하게 될 것입니다.
Mateen Ulhaq

4
특정 패러다임에 머무르면 이것이 사실이라고 생각합니다. 예 : OO / 제국. 명령 적이 지 않은 언어를 보면 고장입니다.
Richard

@ 리차드 : 내가 아는 당신은 반드시 그 OO을 제안 할 뜻이 아니라, 바로 절대적 의미?
Frank Shearar

@Frank : 그렇습니다. 둘 다 공통적으로 사용되는 언어 그룹 (Java, C #, C ++)보다는.
Richard

1
"(a) 언어는 키워드 집합 일뿐입니다."-동의하지 않습니다. 모든 플랫폼에는 작업을 수행하는 지역적이고 관용적 인 방법이 있습니다. 플랫폼 X에서 훌륭한 프로그래머가 되려면 구문 이상의 것이 필요합니다. 예를 들어 .NET OO 사고 방식이 필요한 것으로 가정하면 훌륭한 JavaScript 코드가 발생하지 않습니다.
Bevan

54

언젠가는 그들 모두를 추적 할 수 없을까 걱정입니다.

30 년이 지난 후에이 말을하겠습니다.

그렇습니다.

그래서?

그래서 그들은 참조 매뉴얼을 작성합니다.


14

여러 언어를 배우면 얻을 수있는 진정한 이점은 서로 다른 패러다임모델 , 그리고 그들이 생각하는 사고 방식입니다 .

Java 및 단일 상속에 대한 지식은 C ++ 및 다중 상속에 대한 관점을 형성해야합니다. Java 및 GC에 대한 지식은 C ++ 및 사용자 관리 메모리에 대한 관점을 형성해야합니다. C ++ 및 해당 템플리트에 대한 지식은 Java 및 해당 제네릭에 대한 관점을 형성해야합니다. 이 모든 관계는 물론 두 가지 방식으로 작동합니다.

기능적 언어로 작성된 적이 없다면 C ++의 <algorithm>라이브러리가 수행하려고하는 일과 일급 시민 기능을 갖지 않아 누락 된 것에 감사하지 않을 것입니다 (적어도 C ++ 11 이전). 동적 형식 언어로 작성된 적이 없다면 정적 입력이 할 수있는 것과 할 수없는 것의 경계를 깨닫지 못할 것입니다. 변경 가능한 상태가없는 언어로 작성된 적이 없다면 변경 가능한 상태가 자신에게주는 처벌을 이해하지 못합니다.

다른 언어를 배우면 기존 언어를 더 잘 이해할 수 있기 때문에 좋습니다. 이와 관련하여 언어의 개념이 빠르게 또는 전혀 바뀌지 않기 때문에 최신 상태를 유지하는 것에 대해 걱정할 필요가 없습니다.


8
+1 여러 언어를 배우는 것만이 아닙니다 (언어를 배우는 것은 쉬운 부분입니다). 다른 패러다임을 배우는 것이 중요합니다. 저는 개인적으로 대학 수준의 학생들이 이러한 다양한 패러다임에 노출되어야한다고 생각합니다. 요즘 너무 많은 "McJava (tm)"대학이있을 때 슬픈 일입니다. 전체 내용을 읽으십시오.). :(
Darknight

8

내 질문은 : 여러 프로그래밍 언어를 어떻게 추적합니까? (이 언어에 대한 변경 사항을 추적하고 기술을 선명하게 유지하십시오.)

코드를 작성하십시오. 언어 업데이트를 유지하려면 코드 작성을 계속하십시오.

충분한 프로그래밍 언어와 같은 것이 있습니까?

둘 이상의 언어를 배우면 다른 언어를 구사할 수 있습니다. 많은 언어를 배우면 일반적으로 계산에 대한 광범위한 전반적인 관점을 제공합니다.

그러나 모든 언어를 배우는 것은 불가능하며 모든 언어가 당신이나 당신의 일에 가치를 갖는 것은 아닙니다. 난해한 언어는 실질적으로 실용적이지 않기 때문에 고유 한 지적 가치를 제외하고는 배울 가치가 없습니다.

아니, "충분한 것"은 없습니다. 그러나 "문제의 가치가 없다"는 것이 확실합니다.


4

사용할 언어 나 현재 사용중인 언어를 따라 잡는 것에 대해 걱정하십시오. 새로운 언어를 배우는 것이 도움이되지만, 다시 사용하지 않으면 언어의 작은 변화에 대해 배울 이유가 없습니다.


4

배우는 것을 멈추지 마십시오. 그러나 당신이 모든 것에 대해 모든 것을 알지 못한다는 것을 깨달으십시오. 항상 더 유창한 환경이 있습니다. 걱정하지 말고 계속 즐기십시오.


사실, 배우는 것을 멈추지 말고 초점을 맞추십시오. 모든 것을 배우는 것은 마치 머리없는 닭처럼 달리는 것과 같으며 결국에는 전혀 아무것도 아닙니다.
Slawek

@Slawek : "결국 당신은 정확히 아무것도 아닙니다". 거의. 더 나은 버전은 다음과 같습니다. 결국, 당신이 잘했던 것들은 당신이 전혀 모르는 새로운 기술로 대체되었습니다.
S.Lott

3

끝났을 때 충분한 프로그래밍 언어가 있습니다. 여러 언어를 아는 것이 좋지만 직장에서 2를 사용할 때 12를 아는 것이 상황에 맞는 이점보다 많은지 잘 모르겠습니다. 더 많은 언어를 아는 데는 아무런 문제가 없지만, 나머지 시간에는 가장 많이 사용해야하는 언어와 분야의 지식을 향상시키는 것이 좋습니다. 구어와 마찬가지로 인생에서 가치를 제공하는 언어에 능숙 해지기를 원합니다.

여러 언어를 알고 있지만 각기 동일한 방식으로 코드를 작성했다고 생각하는 프로그래머 몇 명을 기억할 수 있습니다. 반드시 좋은 것은 아닙니다.

또한 나이가 들어감에 따라 시간이 당신의 마음을 사로 잡는 데 도움이 될 것입니다. (결혼하기 전보다 아이들이 공부하고, 프리랜서 작가가되었고, 경력 문제를 다루기 시작한 것보다 공부 시간이 훨씬 적습니다. 나의 기억은 남쪽으로 가기 시작했다.


3

지난 25 년 이상 많은 언어를 배웠습니다. 잠시 후 일부는 덜 유용 해지고 잊혀져 버립니다 (Perl). 6502 어셈블리, Apple BASIC, Lisp, Prolog, Pascal, SPAN, FORTRAN ...에 대해서도 이야기 할 수 없습니다.

다른 언어는 사라졌고, 10 년 후에 (파이썬)을 다시 배워야했습니다. 파이썬을 따라 잡는 데 아무런 소용이 없었습니다. 속도를내는 데 시간이 오래 걸리지 않습니다. Google / SO는 친구입니다.

결국 언어는 도구 일뿐입니다. 현재 작업에 사용합니다. 기술은 언제 무엇을 사용해야하는지 알고 있습니다. 솔직히 C ++ 사용을 시작한 후에는 C 코딩을 다시하고 싶지 않았습니다. C #을 배웠을 때 C ++을 다시하고 싶지 않았습니다.


3
펄의 죽음에 대한보고는 크게 과장되었다.
Philip Potter

Perl에 대한 개인적인 것은 아닙니다. 나는 유닉스에서 일 했었기 때문에 펄은 내가 선택한 무기였다. 나는 그것을 사용하여 꽤 큰 기술 응용 프로그램을 만들었습니다. 그런 다음 Windows로 옮겼습니다. 이제 다시 돌아 왔지만 개발중인 앱은 Python으로되어 있으므로 Perl과 Python을 사용하는 것이 거의 없습니다.
dave

1

내 생각에 프로그래밍은 사용중인 언어에 관한 것이 아닙니다. 프로그래밍은 사고 방식입니다. 좋은 소프트웨어를 작성하려면 훌륭한 분석가 여야합니다. 프로그래밍 언어는 소프트웨어 구축에만 도움이됩니다. 물론 각 언어마다 단점이나 장점이 있지만 좋은 소프트웨어를 만들려면 개발자로 생각해야합니다. 개발자처럼 생각하지 않는 사람들은 언어를 얼마나 잘 사용하든 훌륭한 소프트웨어를 만들지 않을 것입니다.

나는 항상 집을 짓고있는 사람과 비교를합니다. 집을 지을 수있는 사람이 있다면 망치는 신경 쓰지 않습니다. 그는 망치 (예 : 무게)에 익숙해 져야하지만 도구에 익숙해지면 환상적인 집을 지을 수 있습니다. 도구의 대부분의 "버전"은 상당히 유사하기 때문에 도구에 익숙해지는 것은 그리 어렵지 않습니다 (이것은 망치와 개발 언어에도 적용됩니다).

공부하는 동안 우리는 Java를 사용했지만 (ASP와 VB5를 사용하기 전에) 약 5 ~ 6 년 전에 졸업 한 후에 C # (및 Javascript)을 사용하여 배웠습니다. 다음 작업에서는 .NET 언어 (내가 사용한)와 Java를 다시 사용할 수 있도록 "허용"할 수있었습니다 (일부 레거시 도구에 대해). 요즘에는 X ++ (Microsoft Dynamics AX의 언어)로 작업하고 있지만 여전히 .NET에서 일부 개발 중입니다. 이것들은 내가 일상적인 일에서 사용하는 언어 일 뿐이며, F #, Ruby 등과 같은 새로운 언어를 조사하는 것도 좋아합니다.이 새로운 언어를 배우는 데 며칠이 걸렸습니다 (구문을 이해하기 위해). 언어를 가지고 놀면서 점차 배우게됩니다.

너무 많은 언어가 있지만 F #과 같이 실제로 다른 언어에만 집중하는 경향이 있습니다 . 나는 새로운 언어를 흥미롭고 재미있게 배우는 것을 보았습니다. 지금은 새로운 언어를 배우는 것이 아주 쉽습니다. 그리고 나는 너무 걱정하지 않습니다.


1

5 년 전 vb6에서 경력을 시작하여 php로 이동 한 다음 java로 이동 한 다음 .net으로 이동했습니다. 현재 작년에 asp.net mvc2에서 작업하고 있으며 mvc3에서도 손을 뻗고 있습니다.

비밀은 구식되어서는 안됩니다 . 세상의 모든 것을 다 습득 할 수는 없으므로 걱정할 필요는 없습니다.


1

나는 이것이 직업 문제라고 생각합니다. 따라서 특정 도구 세트를 알고있는 경우에만 귀하를 고용하는 사람들을 고려해야합니다. 어쩌면 이것은 직업을 실격시킬 수도 있지만 아닐 수도 있습니다. 따라서 새로운 것을 표면적으로 배웁니다. 그러나 어려운 것들 (수학, 새로운 프로그래밍 패러다임)을 계속 깊이 배우십시오.

새로운 도구를 사용하는 것은 트레이드 오프입니다. IT 산업은 과대 광고로 가득 차 있으므로이를 방어해야합니다. 이것은 진술로 시작합니다 : 아니오 나는 이전 편집기 (emacs?)를 계속 사용합니다. 그러나 때때로 새로운 것을 배워야합니다. 그들은 실제로 수년에 걸쳐 더 좋아집니다 (3-4). 실제 프로젝트를 통해 직장에서 새로운 것을 배울 기회가 있다면 주저하지 마십시오. 재미있을 것입니다! 실제 혁신에서 과대 광고를 식별하는 가장 좋은 방법은 그것을 사용하는 사람들을 보는 것입니다. 기술보다 사람들을 판단하는 것이 더 낫습니다. :)


1

기능적, OO 및 논리적과 같은 다른 패러다임을 가진 언어를 배우는 것이 좋습니다.

그러나 필자는 3 가지 기능 언어 또는 3 개의 OO- 언어를 배울 것을 권장하지는 않습니다.

낭송에 능숙하다면 어쩌면 그러나 비슷한 내용을 반복해서 배우는 것이 어렵다는 것을 알았습니다. 거의 동일하지만 정확하게는 아니지만 특히 그림, 데이터베이스 호출, 컬렉션 라이브러리와 같은 라이브러리 항목은 다른 이름과 규칙을 기억해야하지만 거의 똑같이 행동합니다. paintRect (xstart, ystart, xend, yend) 또는 (xstart, ystart, width, height)입니까? 여기에 '끝'을 포함하여 거기에 포함시키지 않습니까?

그러나 어떤 사람들은 이런 것들을 배우기가 힘들지 않습니다.

따라서 일부 언어를 배우는 것이 좋지만, 소수의 언어 만 배우면 언어 만 사용하는 언어보다 더 많은 것을 배울 수 있습니다. 어쩌면 연간 2 개 언어가 아니라 2 년마다 1 개 언어 일 수 있습니다.


0

저는 스펙트럼의 반대편에 있습니다. 나는 당신이 간단한 것을 배우고 이런 식으로 더 깊은 문제에 결코 익숙하지 않기 때문에 여러 언어를 배우는 것을 싫어합니다. 동시에 다른 언어로부터 나쁜 관행을 배웁니다.

C ++에서 하드 코어 Java 개발자 코딩을 본 적이 있지만 폭발하기를 기다리는 엉망입니다 ...

문제는 모든 언어에 추상화가 누출되기 시작하거나 당신을 대항하기 시작하는 문제가 있다는 것입니다. 하루에 구문을 배울 수 있지만, 효율적으로 코딩하고 버그가없는 방법을 아는 데 5 년이 걸립니다. at () 또는 []를 사용합니까? malloc이 왜 장기 실행 프로세스에 메모리가 부족하게합니까?

그리고 패러다임을 배우는 것도 흥미로운 제안입니다. C에서 Java 지침을 사용하거나 C #에서 Perl 지침을 사용하는 것은 난독 처리 된 코드를 작성하는 방법에 대한 훌륭한 데모가 될 수 있습니다.

몇 가지 새로운 언어를 배우면 시야를 넓히는 데 도움이 될 수 있지만, 더 똑똑하게 느끼지 말고 새로 배운 모든 언어로 인해 어리석게 느껴질 것입니다.


0

다른 사람은 어딘가에 "모두가 3 개 언어를 알아야한다"고 제안했습니다.

나는 동의하는 경향이있다. 컴파일 된 언어 (C / C ++, C # 등), 해석 된 언어 (Python, Ruby 등) 및 텍스트 처리 언어 (Perl, Awk 등)를 알아야합니다. 또한 쉘 스크립팅 언어 (Bash, 요즘 또는 Windows power shell)를 알아야한다고 생각합니다. 툴킷 및 API에도 동일한 조언이 적용됩니다.

언어가 발전함에 따라 따라갈 수있는 유일한 방법은 언어를 사용하는 것입니다. 정규 언어의 툴킷을 몇 개로 제한하면 문제를 해결하기 위해 정기적으로 모든 도구를 사용하는 것이 더 쉬워 지므로 각 언어의 개발을 따라갈 수 있습니다.

따라서 매일 사용하는 기술을 신속하게 파악하고 유지하십시오. 시간이있을 때 다른 관심 분야에 손을 대는 것은 아무 문제가 없습니다. 충분한 동기와 주어진 시간에 방해가되는 새로운 기술을 배우는 데는 보통 숙련 된 프로그래머가 오래 걸리지 않습니다.

모든 단일 기술을 따라 잡을 필요는 없습니다. 필요한 경우 가장 자주 사용하는 기술을 집중적으로 유지하면서 필요에 따라 기술을 위아래로 돌릴 수 있습니다.


-5

여러분, 정말-슬프습니다. 전문화는 없습니다. "모든 것을 배우겠습니다". 이 방법으로 죄송합니다, 당신은 모든 것을 알고있을 것입니다, 그러나 당신의 기술은 너무 낮아서 아무도 당신을 지불하지 않습니다.

어떤 것이 든 (프로그래밍, 기타 연주, 춤 등) "좋은"훈련을하려면 10 년의 훈련이 필요하다는 연구가있었습니다. 그리고 사실, 5-10 년 동안 C ++ / python / etc를 작성해야합니다. 상업적이고 양질의 코드를 개발하는 데 필요한 기술을 습득합니다.

그리고 언어 참조에 대한 그 헛소리? 그리고 모든 프로그래밍 언어마다 다른 좋은 프로그래밍 습관이 어디에 있습니까? C 또는 서버 측 보안 실무에 대한 훌륭한 메모리 관리 실무 및 데이터 구조를 어느 참조에서 찾습니까?

데스크톱, 모바일, 서버 (!!!)-완전히 다른 환경입니다. 당신은 당신이 모든 인생을 "놀이"할 것인지 결정하거나 한 가지에 집중하고 알맞은 직업을 얻습니다. 아마 사람들은 당신이 엉뚱한 직업을 개선하기 위해 동일하게 노력하고 있기 때문에 지구상의 모든 언어를 알아야한다고 헛소리 할 것입니다. 그러나 자바 "참조"를 읽은 후에도 그들이 할 수 없을 것이므로 어떻게 할 수 없을까요? 정확히 아무것도 아닙니다.

예-그래픽 디자인, 시나리오 쓰기 및 플래시도 배우십시오. 필요합니다! :) 나는 무엇이 잘못되었는지 정확히 알지 못하지만 한 번에 클라이언트, 서버 및 모바일을하고 있다면-일을 끝내고 내일까지 기다리지 말고 지금해야합니다!

내 질문은 : 여러 프로그래밍 언어를 어떻게 추적합니까?

당신의 질문은 그들을 추적하지 않는 방법이어야합니다. 나의 충고, 포켓몬을 그만두고 당신이 좋아하는 것을 좋아하십시오.


1
내가 옳다는 걸 알아-누가 더 벌어 요? IBM의 수석 Java 엔지니어 또는 일부 웹 사이트 개발 회사의 "programmer-o-graphican-o-computerfixer-o"? 글쎄, 난 단지 그래픽 만하고 "멍청한"배너 프로젝트를 위해 $ 10,000를 청구하는 훌륭한 그래픽 전문가를 알고있다. 그 동안 컴퓨터 등이 너무 많기 때문에 그들이 할 수있는 일은 워드 프레스 테마를 설치하거나 msoffice가 작동하지 않는 이유를 확인하는 것입니다.
Slawek

-1 답변보다 더 화를 내며 개인적인 경험을 세상과 혼동하는 데 대해 -1. 당신이 말하는 "연구"가 무엇인지보고 싶습니다. 요즘 대중적인 생각은 현장에서 전문 지식을 개발하는 데 10,000 시간의 연습이 필요하다는 것입니다. 이것은 Malcom Gladwell의 저술에 의해 대중화되었습니다. 경험상 일반적으로 나쁘지는 않지만 물리 법칙은 아닙니다. 10,000 시간은 40 시간의 5 년이며, 물론 많은 사람들이 경력의 초기 단계에 훨씬 더 많은 시간을 투자했습니다.
찰스 E. 그랜트

그들은 전문화되어 있지 않습니다. 그들의 전문 분야는 프로그래밍입니다. 프로그래밍 언어는 단순히 필요할 때 선택하고 필요하지 않을 때는 버리는 도구입니다. Malcolm Gladwell의 책은 10,000 시간 동안 대중화되었습니다. 그러나 그가 무슨 말을했는지 이해 했습니까? 그는 음악적 천재라고 말하면서 예를 들어 10,000 시간이 걸렸다. 그는 피아노를 잘 치기 위해 10,000 시간이 걸렸다 고 말하지 않았습니다.
Antonio2011a

아무도 하나 이상의 언어를 배우지 않았다면 우리 모두는 어셈블러로 프로그래밍하고있을 것입니다. 오늘 저는 Groovy, Java, Javascript, SQL, Ant 및 Selenium을 사용하고 있습니다. 팀에 7 명이 필요하지 않습니다. 새로운 기술을 집어 들고 일을 할 수있는 사람들이 필요합니다.
케빈 클라인
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.