새로운 언어를 배우기에는 너무 이르다? [닫은]


11

개인적인 맥락 : 저는 지난 6 개월 동안 대학에서 공식적으로 C ++을 배우고 있습니다. 이 전에 저는 1 년 동안 JavaScript를 다루었습니다. 이제 나는 학교 밖에서 한 달 동안 파이썬을 배우는 것을 고려하고 있습니다.

학습 과정 초기에 초점을 좁혀서 학습 효율성을 떨어 뜨리고 있습니까? C ++로 계속해서 달을 보내야합니까? 아니면 새로운 언어를 배우는 것이 너무 이르지 않은가?


6
일반적으로 프로그래밍을 이해하면 새로운 언어를 배우면 더 나은 프로그래머가 될 수 있습니다. 프로그래밍에 익숙하지 않고 흐름 제어, 데이터 유형, 함수 / 방법 등을 이해하지 못하면 다른 언어를 배우기를 기다릴 것입니다.
머핀 맨

나는 당신이 언급 한 모든 것을 C ++에서 매우 편안합니다.
예상

1
나는 당신의 질문을 관점에 두겠습니다. 대학에 입학한지 6 개월 만에 5 가지 프로그래밍 언어를 이미 소개했습니다. 어셈블리 (정확한 모토 플랫폼을 잊어 버렸습니다), C, C ++, Visual Basic 6 및 Java. 나중에 Basic, C #, Visual Basic .NET, x86 Assembly에 대해 배웠습니다. 대학을 졸업 한 후 처음 2 년 동안 5 개 이상의 추가 프로그래밍 언어를 배웠습니다.
Ramhound

2
멀티 태스킹과 우선 순위를 정하고 학습에 대한 훈련 된 접근 방식을 가지고 있다면 반드시 다른 언어를 배우십시오. 일반적으로 모국어에 집중하고 숙달하는 것이 가장 좋습니다. 그러나 다양한 프로그래밍 패러다임을 배우는 것도 중요합니다. 다음 링크의 프로그래밍 섹션을 읽고 의미를 확인하십시오. 모든 컴퓨터 과학 전공이 알아야 할 사항프로그래머의 역량 매트릭스
Anthony

답변:


8

파이썬에 대한 나의 경험은 hello world보다 약간 더 복잡한 일부 플레이 코드로 제한되므로, 이것은 구체적으로 python에 대한 심층적 인 답변은 아니지만 다음과 같이 말할 수 있습니다.

언어 사이의 차이점은 구문과 같은 세부 사항에 있으며 특정 언어 특정 사항이 다릅니다 (오류 처리 방법, I / O 기능 및 컴파일러가 입력을 실행 파일로 변환하는 방법과 같이).하지만 C ++과 Python은 동일한 기능을 제공합니다 패러다임이므로 문제 해결은 두 언어로 거의 같은 방식으로 수행 할 수 있습니다. C ++과 Python은 모두 명령적이고 객체 지향적이므로 C ++로 얻은 문제 해결 기술을 사용하여 새 구문을 익힌 후에는 C ++에 익숙하다면 파이썬을 매우 빠르게 선택할 수 있습니다. 원한다면 함수형 프로그래밍에도 Python을 사용할 수 있지만 그 부분을 다루지 않았으므로 그것에 대해 많이 말할 수는 없습니다.

너무 이르니? 나는 당신의 이야기에서 정말 그렇 든 아니든 분명하게 말할 수 없습니다. C ++로 전체 (GUI) 애플리케이션을 작성하기에 충분한 확신이 있습니까? (즉, 라이브러리, 제네릭 및 / 또는 템플릿과 같은보다 복잡한 언어 기능 사용) 새로운 언어 패러다임을 배우는 것이 동일한 패러다임 패밀리에서 새로운 언어를 배우는 것보다 훨씬 어렵다고 생각합니다. 새로운 패러다임 영역으로 나아갈 때 해당 패러다임의 문제를 해결하는 방법에 대한 좋은 아이디어를 얻는 데 더 많은 시간을 소비해야합니다. OO 언어 간에는 상속 처리 방법 및 성능에 영향을주는 함수에 매개 변수 / 인수를 전달할 때 메모리에서 데이터가 전달되는 방식에 차이가 있습니다. 그러나 이러한 일을 시작하는 것은 일반적으로 처음에는 사소한 문제입니다.

제 생각에는 C ++로 멋진 세상에서 헬로 월드보다 더 많은 것을 할 수 있다고 확신한다면 시작해도됩니다. 많은 언어를 피상적으로 학습하면 사용되는 언어에 관계없이 코드 샘플을 이해하는 데 도움이되지만 고유 한 코드를 만들려면 언어의 작동 방식과 언어의 차이점을 조금 더 이해해야합니다.

추신 : 새로운 언어를 피상적으로 사용하는 법을 배우고 자 할 때, 나는 일반적으로 언어 구문과 피상적 인 작업에 대한 느낌을 얻기 위해 다음과 같은 것들을 시도 할 것입니다.

  • Hello world (화면의 텍스트)
  • 파일에 쓰여진 Hello world (해당 언어 및 기타 종류의 I / O에 대한 파일 I / O의 기본 사항을 알려줍니다)
  • 정수와 부동 소수점 모두 다른 기준 (10, 16 진수, 8 진수)으로 일부 표준 계산을 수행합니다. (잘림 및 숫자 표기법에 대해 알려줍니다)
  • 멋진 대화 상자에서 hello world를 보여주기 위해 일부 그래픽 라이브러리를 사용해보십시오. (라이브러리 및 외부 코드 사용 방법을 배웁니다)

마지막 단락의 결론은 우수합니다. 나는 C ++의 전체 응용 프로그램을 다루지는 않지만 나는 단지 피상적이지만 친숙한 범위를 넓히는 것에 대한 귀하의 주장에 감사드립니다.
기대

6

물론입니다.

의심의 여지없이, 새로운 프로그래밍 언어를 배우기에는 너무 이릅니다.

가장 간단한 경우는 엘 스틴 코 (El-stinko) 언어가 나오고 누군가가 자신의 부적합성을 지적하기 전에 그것을 배우면 두뇌가 손상된다는 것입니다. 염두에 두어야 할 몇 가지는 BASIC, FORTH 및 APL입니다.

좀 더 복잡한 경우를 위해, 위대한 컴퓨터 과학자 중 한 명이 아주 간단히 언급 한이 문제에 대해 설명했습니다. 연습은 영구적이며, 언어가 더 근본적인 이해를 왜곡하지 않도록 컴퓨터 언어를 배우기 전에 배워야 할 많은 규칙이 있습니다. . 그의 말로 :

우리가 사용하는 도구는 사고 습관과 사고 능력에 심오하고 악의적 인 영향을 미칩니다.

프로그래밍에 뛰어 들었던 상대의 이름은 Edsger Dijkstra이며 매우 뛰어난 경력을 가지고 있습니다. 그는 다음과 같은 인용문으로 ACM Turing Award를 수상했습니다.

높은 지적 도전으로서 프로그래밍에 대한 근본적인 기여를 위해; 프로그램이 정확성으로 디버깅되는 것이 아니라 올바르게 구성되어야한다는 설득력있는 주장과 실제적인 입증을 위해; 프로그램 설계의 기초에서 문제에 대한 인식을 밝히기 위해.

그가 프로그래밍 언어에 대한 조기 학습을 폭로하는 논문은 다음과 같습니다.

"정말로 가르치는 컴퓨터 과학 학대" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

또한 화 내지 마십시오. 나는 메신저 일뿐입니다.


"나는 베이식으로 시작했고 인생에 상처를 입었습니다."-당신의 요점이 반증되지 않습니까? 초기에 다른 프로그래밍 언어를 소개했다면 BASIC이 그다지 큰 영향을 미치지 않았습니까?
tdammers

이모티콘이 필요한 것 같습니다. 도움이된다면 그 문장을 삭제했습니다.
DeveloperDon

3

새로운 언어를 배우기에는 너무 이르다?

나는 그렇다고 말할 것입니다. 컴퓨터가 실제로 당신이 말하는 것을 할 수 있다는 바로 그 개념으로 머리를 감싸고 있다면, 제 2 언어를 배우는 것은 당신을 혼란스럽게 할 것입니다.

그러나 컴퓨터가 말한 내용을 컴퓨터가 정확히 수행한다는 사실을 깨달았을 때 , 어리석은 일이 있더라도 두 번째 (그리고 세 번째)를 보는 첫 번째 언어를 충분히 이해할 수 있습니다. !) 언어는 당신의 초점을 t 지 않습니다.


2

둘 다 할 수 없습니까? 나는 C ++로 프로젝트를 수행하고 파이썬의 비트를 배웁니다 (매우 훌륭하기 때문에) Python을 사용하여 ProjectEuler.net에서 문제를 해결할 수 있습니다

일반적으로 언어를 배우고 떠나고 새로운 언어를 배우는 것은 나쁜 생각이라고 생각합니다. 초기 단계에서 다양한 패러다임으로 유연하게 작업해야합니다. 그러나 그것은 단지 내가 생각하는 것입니다.


ProjectEuler.net은 멋져 보입니다! 추천 해 주셔서 감사합니다.
예상

2

실무 프로그래머에게 나는 새로운 언어를 배우는 것이 결코 나쁜 생각이 아니라고 말하고 싶습니다. 대학생에게는 어떤 수업이 진행되는지에 따라 약간의주의가 필요합니다. 그 이유는 학교 시험에서 실수를 쉽게 지적 할 수있는 컴파일 / 실행 환경의 이점없이 언어 세부 사항을 자주 암송해야하기 때문입니다.

특히 몇 달의 경험 만 있으면 세부 사항을 마음에 쉽게 섞을 수 있습니다. 당신이 당신의 성적에 관심이 있고 그와 같은 시험으로 수업을 듣는 경우, 나는주의 할 것입니다. 실제로는 걱정할 필요가 없습니다.

편집 : 나는 원래 구문을 말했지만 구문 이외의 세부 사항은 교수에게 중요하며 더 많은 내용이 있습니다.


학생으로서 언어 간 구문의 차이점을 기억할 수 없다면 문제가있는 것입니다. 구문을 검사하는 컴파일러가 항상있는 것은 아니며,이 필드에는 구문을 즉시 불러올 수 있어야하는 매우 실제 상황이 있습니다.
Ramhound

기억하기 란 불가능하다는 말이 아닙니다. 초보자에게는 어려워집니다. 대형 구문의 차이는 매우 쉽지만, 교수 등의 세부 사항에 대한 성가 시게 까다 롭고 될 수있다 append()push_back(), 심지어 숙련 된 프로그래머들이 잠시에서 특정 언어의 특정 기능을 사용하지 않은 경우 찾아 볼 필요가 뭔가 목록에 대한. 그 자리에서 구문을 기억할 수 있다는 것은 의심 할 여지없이 도움이되지만, 대부분의 작업에는 필요 하지 않습니다 .
Karl Bielefeldt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.