대학 CS 과정을위한 Java 또는 C ++?


11

CS 학위를 받기 위해 학교에 등록하게 된 것입니다. 내가보고있는 학교는 실제로 초급 소프트웨어 개발 과정 (개체 지향 프로그래밍, 디자인 패턴, 그런 종류)을위한 Java 및 C ++ 기반을 모두 제공합니다. 따라야 할 트랙은 학생의 선택이지만, 따라갈 시간은 없습니다.

선택 사항이 있다면 지금 알고있는 것을 아는 경우 CS 커리큘럼 기초를 Java 또는 C ++로 작성 하시겠습니까?

현재 진행중인 토론은 다음과 같습니다.

좋은 친구 (AI에 박사 학위를 가지고있는)는 나중에 더 많은 직업 기회를 열 수만 있다면 그의 일이 모두 자바로되어 있기 때문에 편향 될 수 있지만, 내가하는 일에 관계없이 더 나은 선택으로 자바를 선전하고있다. 그것을 좋아한다). 저는 미국 메사추세츠 보스턴에 살고 있으며 같은 양의 Java 및 C 작업을 봅니다.

반면에, 내가 완료했을 때 학위로 무엇을하고 싶은지 아직 완전히 결정하지는 않았지만, Mac을 위해 개발하는 것이 선호됩니다. 이를 위해 이미 C ++에 대한 노출이 제한적이지만 Java를 전혀 사용하지 않았으며 하루 종일 직장에서 프로젝트를 볼 때 곧 사용할 필요가 없습니다. "곧"측정 2 년 이상

아마 20 년 후에 학교에 다니는 성인 (현재는 어떤 종류의 학위도 없음 )이므로 가능한 한 최선을 다한 기회와 시간을 극대화하려고합니다. 나는 C ++에 기울고 싶지만 여전히 모호하며 외부의 객관적인 조언이 여기에 도움이 될 것입니다.

아니면 그것에 대해 너무 열심히 생각할 수도 있습니다.

업데이트 : 언어 선택이 원래 추측했던 것처럼 명확하지 않은 것으로 나타났습니다. 몇 가지 핵심 과정은 Java에 중점을 두었지만 다른 핵심 과정 중 일부는 주로 C 및 Java에서 작동하지만 일부 다른 과정은 좋은 측정을 위해 던져졌습니다. 사실, 내 학기의 나머지 부분은 Java 및 Javascript에서 시간을 보낸 후 Objective-C에 있습니다. 지난 학기에는 C, Javascript 및 PHP와 함께 과제가 필요한대로 몇 가지가있었습니다. 상황이 전반적으로 중간으로 나뉘어져 있고 여전히 이에 대한 답을 얻고 있기 때문에 이제 학위에 대한 모든 요구 사항을 충족하지만 합리적으로 처리 할 수있는 많은 언어를 흡수하도록 커리큘럼을 작동하려고합니다. . 지금까지, 나의 성적은 이것을 시도하는 데 어려움을 겪지 않았습니다.


1
학술 연구 환경의 모든 사람들이 지금 자바를 선전하고 있습니다. 또한 언어에 관계없이 대학에서 새로운 언어를 배우는 방법을 배워야합니다. C ++은 Java와 마찬가지로 주변에 있지만 5 년 안에있을 것이라는 주장은 없습니다. 새로운 언어 / 기술은 항상 다가오고 있으므로 언어를 신속하게 익힐 준비가되어 있어야합니다.
Chris

1
@Chris : 그렇기 때문에 제가 추천하는 것이 현재 인기있는 것이 아니라 더 많은 학습을 용이하게하는 것을 배우는 것입니다. Java보다는 C ++ 또는 Python을 권장합니다 (분명히 다른 이유로).
David Thornley

중요한 언어는 아닙니다. 추상적 인 개념입니다. 개념을 올바르게 설정하면 학생들은 나중에 자신의 인생에서 무엇이든 쉽게 배울 수 있습니다.
J-16 SDiZ

1
나는 (열악한) 비슷한 상황에 처해 있습니다. 20 년 동안 학교를 떠난 후 CS를 위해 학교로 돌아갑니다. 우리 학교에도 Java / C ++ 스플릿 트랙이 있습니다. 여기에있는 모든 것을 읽은 후에도 최고의 답변에 +1을 제공 한 후에도 여전히 Java를 사용할 것입니다. 여기 도움이되는 경우가 있습니다. 웹 개발 (Javascript, PHP, Python)에서 왔습니다. 따라서 Java 라이브러리 지원은 플러스입니다. OOP 원칙을 실제로 포착하는 데 시간이 걸린다고 가정하면 (필요한 경우) C ++로 전환하는 것이 그렇게 어려울 것이라고 생각하지 않습니다. Java는 스크립팅과 컴파일 사이의 중간입니다.
HOLLENBECK 수

2
나는 모든 대답에 동의하지 않는다고 생각합니다. 정말 중요하지 않습니다 . 두 가지 언어로 비슷한 개념을 배우고 공부와 경력을 통해 선택하지 않은 다른 언어와 다른 언어도 배우게됩니다.
Matsemann

답변:


51

개인적으로 C ++을 사용하여 Java의 일부가 어떻게 작동하는지에 대한 통찰력을 제공합니다 (예 : 포인터). C ++에서 Java로 옮기는 것은 사소한 반면 다른 방법으로 옮기는 것은 더 어렵습니다.

Java 에코 시스템에서 정말로 어려운 점은 방대한 수의 프레임 워크, 라이브러리 등입니다. 대학의 모든 것을 다루지는 못할 것입니다.

하루의 끝에서 그건 문제가 없을거야 당신이 원리를 배울만큼, 당신이 선택한 언어와 많이.

내 JUG가 C ++ 승인을 위해 나를 죽일 것입니다. ;-)


1
Java 에코 시스템의 크기 및 전환 설명에 대한 우수한 점을 알려면 +1입니다.
Jas

1
대학에서 큰 생태계를 배우는 데 따르는 문제는 전문 직업에있어 유용하지 않다는 것입니다. 적은 수의 라이브러리와 학습 개념을 배우거나 실제 언어 기능에 익숙해지는 것이 좋습니다.
David Thornley

2
C ++의 또 다른 점은 .NET Framework에서 관리되는 C ++을 수행하여 해당 런타임에서 C #, F # 및 기타 언어를 학습 할 수 있다는 점입니다. Java는 또한 JVM과 Scala와 같은 언어에 큰 도움이되지만 내가 아는 JVM C ++은 없습니다.
CodexArcanum

C ++ (및 Java)에서 꽤 괜찮다고 생각하는 사람은 현대적인 초급 프로그래밍 과정이 C ++이어야 한다고 생각하지 않습니다 . 너무 어려워요. 만약 대학이 C ++을 전혀 가르치지 않는다면, 계속 나아가십시오. 그러나 소개를 위해 저는 자바처럼 더 단순하고 더 예쁘게 갈 것입니다. 어쩌면 그들이 모두 악하다고 생각하지 않는다면, 동적으로 유형이 지정된 언어를 추천했을 수도 있습니다.
Dukeling

Java 이전의 일부 시대에 우리는이 선택을하지 않았으며 모두 C ++을 배웠으므로 여전히 C ++을 배우는 사람들에게는 아무런 문제가 없습니다. Java의 소개가 Turbo Pascal의 소개보다 낫습니다.
Bratch

18

Java를 옹호하는 대부분의 사람들과 동의하지 않습니다. C ++ 학습은 컴퓨터 및 마이크로 프로세서 아키텍처를 연구하지 않더라도 컴퓨터 프로그램 작동 및 작동 방식에 대한 귀중한 정보를 제공합니다.

베네 NOTA, 난 옹호하지 이러한 신속한 애플리케이션 개발 랭 가문은 거대한 프레임 워크는 그들 주위 현대 내장되어 있기 때문에 당신이 좋아 당신이 "무료"기능의 많은에 대한 액세스를 제공합니다 (더 나은 아직, C #을) 자바를 배울해야 추상화 된 파일 액세스 및 유사하지만, 진정한 소프트웨어 엔지니어는 적어도 일부 C ++, C 또는 적어도 어셈블러를 알아야합니다. 왜냐하면 이것이 스크립트 키디 유형과 귀하를 구분하기 때문입니다.

C ++에 능숙하고 메모리 관리 및 STL에 확신이 있으면 Java / C #을 쉽게 선택할 수 있습니다.


동의합니다. 이미 C ++에 능숙하다면 Java를 배우는 것이 이미 Java에 능숙하다면 C ++를 배우는 것보다 훨씬 쉽다는 것이 긍정적입니다.
Carson63000

"C ++에 상당히 능숙하다"는 문제는 몇 년이 걸리고 여전히 OOP의 작은 부분 집합 만 배우게된다는 것입니다.
Henry

Java는 빠른 응용 프로그램 개발 언어가 아닙니다. C ++보다 약간 높은 수준이지만 Python, Ruby, Perl 또는 Visual Basic의 추상화 수준에 가깝습니다.
Evan Kroske

@Evan-예, Java는 방대한 라이브러리 (일반적으로 Java 개발자가 작업 중에 Java API 문서가 열려 있다고 말함)와 수동 메모리 관리를 수행 할 필요가없는 경우 "빠른"개발 언어입니다. 그리고 Java를 디자인 한 사람은 C ++을 사용하여 아무데도 가지 않기 때문에 그것을 디자인했습니다. 또한 오늘날까지 배포 된 Java 앱의 수 (낮은 진입 장벽)는 "급 속성"의 또 다른 논거입니다.
Jas

9

Java를 최우선으로 옹호하는 학교와 학자들은 그들의 머리를 조사해야합니다 (또는 단순히 실제 직업을 구해야합니다). 저는 지난 12 년 동안 Java로 응용 프로그램과 시스템 개발을 모두해온 사람이라고 말합니다. 자바는 가르치기위한 끔찍한 언어입니다.

그 이유는 다음과 같습니다. 영재를 배제하고 대부분의 학생들은 모듈 식 프로그래밍을 이해하지 않고도 객체의 방향을 파악할 수 있습니다. 또한 절차 적 언어로 구조화 된 프로그래밍을 먼저 이해하지 않으면 모듈 식 프로그래밍을 이해할 수 없습니다. 평범하고 단순합니다. 이것에 대한 증거는 (다른 것들 중에서도) 비록 우리가 지금 30-4 년 동안 OO를 알고 있었지만 사람들은 여전히 ​​실제로 하이퍼 스파게티를 씁니다.

또한 gc 기반 언어 (Java 또는 .NET)에만 의존하는 사람은 절대로 하드웨어에 가까워 질 수 없습니다. 전체적인 야심이 동적 인 웹 페이지를 만드는 것이 아니라면 무엇을 추측해야합니까? 언어에 친숙해 져야합니다.

CS 학교에 다니면서 다재다능한 컴퓨터 과학자이자 프로그래머가 되십시오 (다수의 프로그래밍 언어로 몇 시간의 실제 프로그래밍 실습이 가능합니다). Java 또는 .NET 또는 C 또는 파이썬이라면 무엇이든 당신은 "자바 프로그래머"(자바에서 작동 할 수있는 프로그래머가 아니라 "자바 프로그래머")입니다. 그리고 그것은 당신이 "해머 카펜터"또는 "필립 스크류 드라이버 정비공"이라고 말하는 것만 큼 의미가 있습니다.

좋은 학교에서는 C (또는 Pascal 또는 Ada와 같은 다른 절차 언어), C ++ 및 어셈블리에 노출되어 중학교 / 학년에 프로젝트 주춧돌 코스를 추구하면서 스스로 Java를 배울 수 있습니다. 또한 함수형 언어에 대한 노출을 제공하여 계산 블록을 인수, 부작용이없는 계산, 위치 투명성 등으로 전달하는 개념을 이해해야합니다 (웹에서도 실제 적용이 가능함).

segfault가 무엇인지 알아야합니다. 페이징, 가상 메모리 및 모든 쓰레기가 무엇을 의미하는지 알아야합니다. 모듈에서 문제를 분해하는 방법 (절차 적 및 OO 기반)을 알아야합니다. OO 시스템이 실제로 어떻게 구현되는지 알아야합니다 (따라서 비용을 알 수 있어야합니다).

기업이나 공공 또는 공공 부문에서 대규모 또는 소규모의 시스템 수준의 구현을 수행 할 수있는 다재다능한 컴퓨터 과학자가 되려면 모든 것을 알아야합니다. 규모.

Java를 모두를 지배하기 위해 유일하고 유일한 언어로 Java를 추진해온 학계는 업계에서 실제로 필요한 것에 대해 전혀 단서가 없습니다. 우 둔. 용서할 수없는 단서. 그것이 멀리서 산업을 바라 보는 상아탑에서 일할 때 일어나는 일입니다.

그들은 컴퓨터 과학 부서를 하나의 프로그래밍 언어 트릭 조랑말을 휘두르는 비싼 4 년제 직업 학교로 바 꾸었습니다. 그리고 학생들에게 최소한 기본적인 비즈니스 / 기업 / 조직 기술을 가르 칠 수 있다면 (즉, CS 파사드를 버리고 MIS 커리큘럼을 채택 할 수 있다면) 용서할 수 있습니다. 그러나 그들은 그렇게하지도 않습니다. 업계, 경제 및 궁극적으로 학생들에게.

"Java Schools"에 관한 Joel Spolsky의 글을 읽어 보시기 바랍니다.

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

요약하면, 절차 적 프로그래밍 언어 (C 또는 Ada와 같은 산업 언어 또는 파스칼과 같은 교육에 충분한 언어)를 가르치지 않으면 C ++ (운이 좋으면) 또는 Java / C # (행운이 없다면) 다른 학교를 찾겠습니다. 현실 세계에서 꽤 오랫동안 자바를 사용해온 사람의 평범하고 단순합니다.


꽤 잘 ++ 자바, C 및 C를 알고 졸업하지 않은 사람에서 너무 오래 전, 나는 동의 할거야. C (또는 C ++) VS Java-Java는 더 쉬운 방법입니다. 어쩌면 내가 (Delphi (eww) +) Java 대신 C ++로 시작했다면 (아주 ​​훌륭하지만 (쉽지 않다) btw) (전혀 프로그래머가되지는 않았을 것입니다) (아마도 우리에게는 나쁜 C ++ 교사가 있었을 수도 있습니다). 그러나 그렇습니다. Java의 내부를 이해하기 위해 C ++을 배우는 것은 절대적으로 귀중했습니다. 그리고 요즘 프로그래머의 약 95 %가 "정말 하드웨어에 가까워지지는 않는다"고 생각합니다.
Dukeling 12

" C (또는 C ++) VS Java-Java는 훨씬 더 쉬운 방법입니다. "-잘 알려져 있습니다. 그래도 내 게시물과 어떤 관련이 있는지 잘 모르겠습니다 (?????)
luis.espinal

이해하기 쉽고, 배우기 쉽고, 배우기 쉬워서, "자바는 가르치기위한 끔찍한 언어"이고 C를 먼저 배워야한다는 데 동의하지 않습니다 (쉬운 절차 적 언어가 좋을 수도 있습니다). 또한 C 또는 C ++은 알기에 좋지만 시작하지 말아야한다고 말하고 있습니다.이 경우 가장 하드 코어 프로그래머를 제외한 모든 사람을 놀라게 할 것입니다. C ++를 통한 프로그래밍. 나는 하드 코어 프로그래머의 세계를 생각하지는 않지만 다른 사람들은 그렇게 생각할 수있다. 예, 당신 다재다능하다고 말하지만 Java 또는 이와 유사한 것으로 리드한다고 말합니다.
Dukeling

이해하고 가르치기가 더 쉬워 반드시 교육학 목적에 적합한 언어로 해석되는 것은 아닙니다. Java에서 12 년간 일한 후, 나는 이것을 확신합니다. C 나 C ++보다 훨씬 더 나은 교육 학적 언어는 예를 들어, 모든 방법을 강의하지 않는 언어, 즉 진정한 다중 패러다임 언어 인 파이썬이 될 수 있습니다. 모든 것이 객체로 "추정 적으로"있는 Java, 클래스 및 패키지 등을 넘어서 범위를 정할 수있는 좋은 대안이없는 Java. 적절한 모델링을 가르치는 능력을 제한합니다.
luis.espinal

Java는 명사 중심의 객체로 모든 모드에서 프로그래밍을 배우도록 강요함으로써 실제 세계 모델링에 더 적합한 다른 패러다임에 대한 모델링 은유를 제공합니다. 트렌치의 전문 개발자는 이러한 한계를 극복 할 수 있습니다. 학생들은 저를 용서하지 않고 용서하지만, 소수의 대학 교수들은 그 차이를 아는 실습 경험이 있습니다. C / C ++가 너무 하드 코어 인 경우 Java보다 Python 또는 Ruby (또는 실제로 Lisp 또는 BASIC)를 선택합니다.
luis.espinal

4

나는 당신의 성격에 많이 달려 있다고 생각합니다. 적어도 내 관점에서 Java와 C ++은 실질적으로 다른 종류의 사람들에게 호소하는 근본적으로 다른 방향을 가지고 있습니다.

자바는 실제로 큰 클래스 라이브러리이며 객체를 인스턴스화하고 해당 라이브러리에서 메소드를 호출 할 수있는 충분한 언어가 있습니다. "자바 학습"은 라이브러리의 내용과 구성 방법을 암기 (또는 적어도 인식)하는 과정으로 구성되어 원하는 때에 원하는 것을 찾을 수 있습니다.

C ++은 미리 작성된 코드를 제공하는 데 중점을두고 있습니다. 라이브러리 (STL 1 ) 가 포함되어 있지만 해당 라이브러리는 스타일 및 원칙 세트보다 포함 된 코드에 대한 것이 아닙니다. 미리 작성된 코드를 전혀 사용하지 않거나 전혀 사용하지 않더라도 "STL"코드로 명확하고 쉽게 인식 할 수있는 코드를 작성할 수 있습니다.

언어 사용 방식에는 상당한 차이가 있습니다. Java는 언어를 단순하게 유지하는 데 중점을 두었습니다. 따라서 다양한 방식으로 (예 : 리팩토링) Java 코드를 조작하는 도구를 쉽게 빌드 할 수 있습니다. 또한 리팩토링에는 많은 양의 코드가 상당히 많이 변경되기 때문에 그렇게 할 수있는 도구가 필요한 경향 이 있습니다.

C ++은이다 훨씬 입니다 도구를 구축하는 C ++ 소스 코드를 조작하는 것을 (다른 것들 사이) 수단보다 복잡한 언어, 대단히 자바보다 더 어렵습니다. 그에 대한 균형은 훨씬 덜 필요하다는 것입니다 .Java에서 수십 개의 파일을 수백 번 변경하는 리팩토링 작업은 (예를 들어) C ++에서 단일 템플릿 매개 변수를 변경하여 수행 할 수 있습니다.

자바는 배우기 쉽다는 점을 강조합니다. C ++은 사용하기 쉽다는 점을 강조하지만 불행히도 실제로하는 일을 알고있는 경우에만 가능합니다.

나는 하나 또는 다른 것을 옹호하지 않을 것입니다. 언어에 대한 나의 의견은 각 언어에서 무엇을 기대해야하는지에 대한 생각을 가지고 있고 자신에게 더 잘 맞는 것을 알아 내기 위해 자신을 정직하게 살펴 보는 것보다 훨씬 덜 관련이 있습니다.

1 그렇습니다. 정확하지 않다는 것을 알고 있지만 책으로 변하지 않도록 노력하고 있습니다 ...


3

사람들이 C ++을 모국어로 옹호한다고 믿을 수 없습니다! 보일러 플레이트를 작성하고 실제로 프로그래밍 방법을 배우는 것보다 언어의 한계와 물고기 고리를 극복하려고 대부분의 시간을 할애합니다.

Java는 훨씬 간단한 언어이며 학습에 방해가되지 않습니다.

C ++을 배워야한다면 Java로 개념을 배우고 Mac 소프트웨어를 작성하려면 C ++ 또는 OBJ-C로 이동하십시오. Java와 OBJ-C는 그다지 다르지 않습니다.

참고로 상용 C ++ 개발자로 10 년을 보냈습니다.


이것은 제 첫 언어가 아닙니다. 저는 실제로 학위를 받기 위해 학교로 돌아가는 프로그래머입니다. C ++ 및 Java에 대한 경험은 제한적이지만 C 및 Objective-C에 대한 경험이 있습니다. 하지만 시간을내어 답변 해 주셔서 감사합니다.
Philip Regan

3
자바 학습에 방해 가 될 것이다 . 언어 독립적 개념에 대한 진실이 아닌 사실을 가르쳐 줄 것입니다.
DeadMG

2

C ++을 추천합니다. Java 클래스와 대학의 C ++ 클래스도 있고 C ++에서 배운 언어 별 기술 덕분에 나중에 추가 언어를 배울 때 도움이되었습니다. 또한 C ++ 채용보다 많은 Java를 볼 수 있지만 대부분 다음과 같은 완전한 Java 스택을 찾고 있습니다.

  • EJB 1.x / 2.0, JNDI, JMS, JTA / JTS, RMI, JDBC, 서블릿, JSP, SAX / DOM, 웹 서비스, SOAP, WSDL, UDDI, JAXB, JavaMail, WAP, WML, HTML
  • Tomcat, Apache Xalan, Apache Xerces, Jserv, JRun, JBuilder, TogetherJ, Web Logic 5.x / 6.x, Websphere 3.5 / 4

그리고 Java 기반 커리큘럼이 C ++ 기반의 커리큘럼이 그러한 목록에 비해 훨씬 나은 준비를하지 못할 가능성이 있습니다.


1
나는 (적어도 내 영역에서) C ++ 작업은 Java 작업 (객관적)보다 상당히 낫고 일반적으로 더 흥미 롭습니다 (주관적).
Cercerilla

2

Java는 배우기 쉽지 않기 때문에 어렵습니다. Java를 더 빨리 사용하게 될 것입니다.

C ++은 다루기가 훨씬 어려운 언어입니다. 포인터와 메모리 관리는 개념적으로나 실제로 까다 롭습니다. C ++은 안전망을 제공하지 않습니다.

장기적으로 C ++이 가르치는 모든 것을 이해하는 것이 유용 할 것입니다. 또한 C ++에서 Java 로의 전환은 다른 방향보다 훨씬 쉽습니다.

그러나 프로젝트를 시작할 때와 많은 정도의 프로젝트 중에 C ++에서 작업하는 것을 얻기 위해 추가 오버 헤드와 디버깅이 실제로 프로젝트를 어렵게 만들고 마감 시간을 맞추기가 어려워지고 인생이 훨씬 좌절되는지 궁금합니다. . C ++과 Java에서 동일한 것을 달성하기 위해 거의 모든 경우에 Java에서 작업을 더 빠르게 수행하고 성가신 문제를 줄일 수 있다고 말합니다. 한 학기 말에 같은 날에 수업 종료 프로젝트가 필요한 5 개의 코스가있을 때는 정말 큰 문제가 될 수 있습니다.

그것의 다른 측면은 이러한 시험으로 인해 수건을 던지지 않으면 C ++을 마스터하면 더 나은 프로그래머가 될 것입니다. 그리고 당신의 경력이 C # 또는 Java 또는 python을 가지고 있고 인생에서 다른 포인터를 만질 필요가 없다면, 훨씬 더 감사하겠습니다.


2

C ++는 더 유연하고 더 깊은 이해를 제공합니다. 의심 할 여지없이 Java보다 C ++에서 더 많은 것을 얻을 수 있습니다. C ++은 더 복잡하기 때문에 더 어렵다.

즉, C ++ 작업은 Java 작업만큼 일반적이지 않습니다.

Java 및 그 자손 인 C #은 엔터프라이즈 / 기업 대철 코딩 공간을위한 표준 솔루션입니다. 나는 두 번째 해에 두 가지 중 하나를 배우고 학위를 마칠 때까지 그 중 하나에 익숙해지는 것이 좋습니다. 작업을 훨씬 쉽게 할 수 있습니다 . 그렇다고 그 일자리가 평균적으로 상당한 지적 이익을 가지고 있다고 생각하지는 않습니다. 최근 Rocky Mountains에서 craigslist 소프트웨어 작업을 통과했으며 대부분의 작업은 C # / Java이며 " CRUD "소프트웨어 와 관련이 있습니다. 지루한 IMO.


1

대학 수준에서 C ++과 Java를 모두 가르쳤으므로 Java를 강력히 권장 합니다 .

Java는 학습 과정을 돕고 좋은 프로그래밍 행동을 장려합니다. Java 용 내장 라이브러리는 모든 설치에서 유용하고 쉽게 사용할 수 있습니다. 모든 Java 설치에 사용 가능한 내장 라이브러리를 사용하고 한 학생이 Google 검색에서 찾은 모든 자습서와 일치하는 GUI 응용 프로그램을 한 문장으로 작성하는 것은 학생들이 언어를 넘어 프로그래밍 개념을 이해하는 데 도움이됩니다. .

Java 용 IDE는 초급 및 재학생 모두를 지원합니다. 강력한 리팩토링 도구를 대화에 일찍 가져 오면 (예 : OOP를 논의하는 동안) 유지 관리 가능한 코드 작성을 배우는 데 도움이됩니다.

C ++은 알아두면 유용한 언어이지만 C ++에서 배운 추가 개념은 실제로 언어 전체의 추가 노력에 대한 가치가 없습니다. 나중에 소개 할 수있는 많은 추가 "gotchas"세트가 있습니다 (메모리 관리 문제 및 버퍼 오버 플로우로 커플 이름 지정). 알고리즘 복잡성 및 상속과 같은 개념으로 넘어 가기 전에 학생들이이를 이해하도록 요구하면 운전 속도가 느려지므로 운전자가 운전하기 전에 타이어 압력을 이해해야하기 때문에 운전자의 교육 속도가 느려질 수 있습니다. 물론 알아야합니다. 그러나 더 큰 개념의 빌딩 블록이 아니라 언젠가 잘못 될 수있는 것으로 만 알면됩니다 .


2
버퍼 오버 플로우 및 메모리 관리에 심각한 문제가 발생하면 C ++을 잘못 가르치고있는 것입니다. 어떤 표준 컨테이너가 버퍼처럼 오버플로 될 수 있습니까?
David Thornley

배열? 사실, 저는 C ++을 잘못 가르치고 있었을 것입니다. 이것은 10여 년 전이었습니다.
Alex Feinman

0

더 큰 질문은 당신이 좋은 프로그래머가되고 싶거나 컴퓨터 과학에 집중하고 싶습니까? CS가 목표이고 PHD 경로에 있기를 원한다면 아마도 Java가 갈 길입니다. Java는 많은 사전 작성된 데이터 구조 및 알고리즘이있는 Java 콜렉션 클래스를 제공합니다. 이것의 장점은 두 가지입니다. 첫째, 데이터 구조와 알고리즘을 사용하여 구성 방식을 걱정하기 전에 데이터 구조와 알고리즘을 사용하여 작업을 수행한다는 점입니다. 둘째, 이것은 교수들이 중요한 구조에 대해 걱정할 필요없이 데이터 구조를 사용하는 CS 원칙을 가르 칠 수있는 더 많은 기회를 제공합니다. 나중에 다시 돌아가서 학생들이 처음부터 구조를 만들도록 할 수 있습니다.

반면에 C ++은 저급 언어입니다. 포인터와 가비지 수집을 고려해야합니다. 학습 곡선은 조금 더 가파르지만 결국 외부 프레임 워크를 사용하여로드 프로그래밍을하면 숨겨진 마법에 의존하는 것처럼 느끼지 못할 것입니다. 또한 많은 대기업에서 여전히 C ++을 사용하고 있습니다. C ++에서 Java보다 Java에서 C ++로 이동하기가 더 어렵습니다.


지금 저의 목표는 소프트웨어 개발에 들어가서 더 나은 프로그래머가되는 것입니다. 나는이 시점에서 광범위한 학문 추구에 관심이 거의 없다.
Philip Regan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.