개인적인 맥락 : 저는 지난 6 개월 동안 대학에서 공식적으로 C ++을 배우고 있습니다. 이 전에 저는 1 년 동안 JavaScript를 다루었습니다. 이제 나는 학교 밖에서 한 달 동안 파이썬을 배우는 것을 고려하고 있습니다.
학습 과정 초기에 초점을 좁혀서 학습 효율성을 떨어 뜨리고 있습니까? C ++로 계속해서 달을 보내야합니까? 아니면 새로운 언어를 배우는 것이 너무 이르지 않은가?
개인적인 맥락 : 저는 지난 6 개월 동안 대학에서 공식적으로 C ++을 배우고 있습니다. 이 전에 저는 1 년 동안 JavaScript를 다루었습니다. 이제 나는 학교 밖에서 한 달 동안 파이썬을 배우는 것을 고려하고 있습니다.
학습 과정 초기에 초점을 좁혀서 학습 효율성을 떨어 뜨리고 있습니까? C ++로 계속해서 달을 보내야합니까? 아니면 새로운 언어를 배우는 것이 너무 이르지 않은가?
답변:
파이썬에 대한 나의 경험은 hello world보다 약간 더 복잡한 일부 플레이 코드로 제한되므로, 이것은 구체적으로 python에 대한 심층적 인 답변은 아니지만 다음과 같이 말할 수 있습니다.
언어 사이의 차이점은 구문과 같은 세부 사항에 있으며 특정 언어 특정 사항이 다릅니다 (오류 처리 방법, I / O 기능 및 컴파일러가 입력을 실행 파일로 변환하는 방법과 같이).하지만 C ++과 Python은 동일한 기능을 제공합니다 패러다임이므로 문제 해결은 두 언어로 거의 같은 방식으로 수행 할 수 있습니다. C ++과 Python은 모두 명령적이고 객체 지향적이므로 C ++로 얻은 문제 해결 기술을 사용하여 새 구문을 익힌 후에는 C ++에 익숙하다면 파이썬을 매우 빠르게 선택할 수 있습니다. 원한다면 함수형 프로그래밍에도 Python을 사용할 수 있지만 그 부분을 다루지 않았으므로 그것에 대해 많이 말할 수는 없습니다.
너무 이르니? 나는 당신의 이야기에서 정말 그렇 든 아니든 분명하게 말할 수 없습니다. C ++로 전체 (GUI) 애플리케이션을 작성하기에 충분한 확신이 있습니까? (즉, 라이브러리, 제네릭 및 / 또는 템플릿과 같은보다 복잡한 언어 기능 사용) 새로운 언어 패러다임을 배우는 것이 동일한 패러다임 패밀리에서 새로운 언어를 배우는 것보다 훨씬 어렵다고 생각합니다. 새로운 패러다임 영역으로 나아갈 때 해당 패러다임의 문제를 해결하는 방법에 대한 좋은 아이디어를 얻는 데 더 많은 시간을 소비해야합니다. OO 언어 간에는 상속 처리 방법 및 성능에 영향을주는 함수에 매개 변수 / 인수를 전달할 때 메모리에서 데이터가 전달되는 방식에 차이가 있습니다. 그러나 이러한 일을 시작하는 것은 일반적으로 처음에는 사소한 문제입니다.
제 생각에는 C ++로 멋진 세상에서 헬로 월드보다 더 많은 것을 할 수 있다고 확신한다면 시작해도됩니다. 많은 언어를 피상적으로 학습하면 사용되는 언어에 관계없이 코드 샘플을 이해하는 데 도움이되지만 고유 한 코드를 만들려면 언어의 작동 방식과 언어의 차이점을 조금 더 이해해야합니다.
추신 : 새로운 언어를 피상적으로 사용하는 법을 배우고 자 할 때, 나는 일반적으로 언어 구문과 피상적 인 작업에 대한 느낌을 얻기 위해 다음과 같은 것들을 시도 할 것입니다.
물론입니다.
의심의 여지없이, 새로운 프로그래밍 언어를 배우기에는 너무 이릅니다.
가장 간단한 경우는 엘 스틴 코 (El-stinko) 언어가 나오고 누군가가 자신의 부적합성을 지적하기 전에 그것을 배우면 두뇌가 손상된다는 것입니다. 염두에 두어야 할 몇 가지는 BASIC, FORTH 및 APL입니다.
좀 더 복잡한 경우를 위해, 위대한 컴퓨터 과학자 중 한 명이 아주 간단히 언급 한이 문제에 대해 설명했습니다. 연습은 영구적이며, 언어가 더 근본적인 이해를 왜곡하지 않도록 컴퓨터 언어를 배우기 전에 배워야 할 많은 규칙이 있습니다. . 그의 말로 :
우리가 사용하는 도구는 사고 습관과 사고 능력에 심오하고 악의적 인 영향을 미칩니다.
프로그래밍에 뛰어 들었던 상대의 이름은 Edsger Dijkstra이며 매우 뛰어난 경력을 가지고 있습니다. 그는 다음과 같은 인용문으로 ACM Turing Award를 수상했습니다.
높은 지적 도전으로서 프로그래밍에 대한 근본적인 기여를 위해; 프로그램이 정확성으로 디버깅되는 것이 아니라 올바르게 구성되어야한다는 설득력있는 주장과 실제적인 입증을 위해; 프로그램 설계의 기초에서 문제에 대한 인식을 밝히기 위해.
그가 프로그래밍 언어에 대한 조기 학습을 폭로하는 논문은 다음과 같습니다.
"정말로 가르치는 컴퓨터 과학 학대" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
또한 화 내지 마십시오. 나는 메신저 일뿐입니다.
둘 다 할 수 없습니까? 나는 C ++로 프로젝트를 수행하고 파이썬의 비트를 배웁니다 (매우 훌륭하기 때문에) Python을 사용하여 ProjectEuler.net에서 문제를 해결할 수 있습니다
일반적으로 언어를 배우고 떠나고 새로운 언어를 배우는 것은 나쁜 생각이라고 생각합니다. 초기 단계에서 다양한 패러다임으로 유연하게 작업해야합니다. 그러나 그것은 단지 내가 생각하는 것입니다.
실무 프로그래머에게 나는 새로운 언어를 배우는 것이 결코 나쁜 생각이 아니라고 말하고 싶습니다. 대학생에게는 어떤 수업이 진행되는지에 따라 약간의주의가 필요합니다. 그 이유는 학교 시험에서 실수를 쉽게 지적 할 수있는 컴파일 / 실행 환경의 이점없이 언어 세부 사항을 자주 암송해야하기 때문입니다.
특히 몇 달의 경험 만 있으면 세부 사항을 마음에 쉽게 섞을 수 있습니다. 당신이 당신의 성적에 관심이 있고 그와 같은 시험으로 수업을 듣는 경우, 나는주의 할 것입니다. 실제로는 걱정할 필요가 없습니다.
편집 : 나는 원래 구문을 말했지만 구문 이외의 세부 사항은 교수에게 중요하며 더 많은 내용이 있습니다.
append()
대 push_back()
, 심지어 숙련 된 프로그래머들이 잠시에서 특정 언어의 특정 기능을 사용하지 않은 경우 찾아 볼 필요가 뭔가 목록에 대한. 그 자리에서 구문을 기억할 수 있다는 것은 의심 할 여지없이 도움이되지만, 대부분의 작업에는 필요 하지 않습니다 .