Üniversite CS dersleri için Java veya C ++?


11

Kendimi CS derecesi almak için okula kayıt yaptırmak üzereyim. Baktığım okul aslında tanıtım yazılımı geliştirme kursları (nesne yönelimli programlama, tasarım kalıpları, bu tür şeyler) için hem Java hem de C ++ 'ı sunuyor. Takip edilecek öğrenci tercihi, ancak birini takip etmek için sadece zaman var.

Şimdi ne bildiğinizi bilmek, eğer seçiminiz olsaydı, CS müfredat temelinizi Java veya C ++ 'da bırakır mıydınız?

Mevcut tartışmam şu anda şöyle görünüyor:

İyi bir arkadaş (AI'da doktora sahibi olan), ne yaptığımdan bağımsız olarak Java'yı daha sonra daha fazla iş fırsatı açmak için daha iyi bir seçenek olarak görüyor, ancak tüm çalışmaları Java'da olduğu için önyargılı olabilir (o seviyor). Boston, MA, ABD bölgesinde yaşıyorum ve eşit miktarda Java ve C çalışması görüyorum.

Flip tarafında, henüz bitirdiğim derece ile ne yapmak istediğime karar vermedim, ancak tercihim, sınırlı bir kapasitede de olsa Mac için geliştirdiğim. Bu amaçla, zaten C ++ ile sınırlı bir maruz kalma alıyorum, ancak Java ile hiçbir şeyim yoktu ve projelerime günlük işime baktığımda, yakında "yakında" ölçmek için bir ihtiyaç görmüyorum en az iki yıl.

Muhtemelen 20 yaşından sonra okula geri dönen bir yetişkinin olduğumu belirtmeliyim (şu anda herhangi bir derecem yok ), bu yüzden geçirebileceğim en iyi fırsatı ve zamanı en üst düzeye çıkarmak istiyorum. C ++ 'a yöneliyorum ama hala kararsızım ve dışarıdaki bazı objektif tavsiyeler burada yardımcı olacaktır.

Ya da bu konuda çok fazla düşünüyor olabilirim.

GÜNCELLEME: Dil seçiminin aslında tahmin ettiğim kadar net olmadığı ortaya çıktı. Bazı temel dersler Java'ya odaklanırken, diğer temel derslerin bazıları öncelikle C ve Java'da çalışır, ancak birkaç tanesi iyi ölçüm için atılır. Aslında, benim dönemim kalan Java ve Javascript zaman harcadıktan sonra Objective-C olacak. Son dönem C, Javascript ve PHP, ayrıca ödev olarak atılmış birkaç tane daha vardı. Her şey ortada oldukça bölünmüş olduğundan ve hala buna cevaplar aldığım için, şimdi müfredatımı derecenin tüm gereksinimlerini karşılayacak, ancak makul derecede ele alabildiğim kadar çok dil alabilecek şekilde çalışmaya çalışıyorum. . Şimdiye kadar notlarım bunu yapmaya çalışırken acı çekmedi.


1
Akademik araştırma ortamındaki herkes şu anda java başlıyor. Ayrıca, dilden bağımsız olarak, üniversiteden yeni dilleri nasıl öğreneceğinizi öğrenmeniz gerekir. C ++ java gibi var ama 5 yıl içinde olacakları iddiası yok. Yeni diller / teknoloji her zaman geliyor, bu yüzden onları almaya ve hızlı bir şekilde ustalaşmaya hazırlanmanız gerekiyor.
Chris

1
@Chris: Bu yüzden tavsiyem, şimdi popüler olanlardan ziyade daha fazla öğrenmeyi kolaylaştıran bir şey öğrenmek. C ++ veya Python yerine Java öneriyoruz (açıkçası farklı nedenlerle).
David Thornley

Önemli olan dil değil. Bu soyut kavram. Konsepti doğru yapın, böylece öğrenciler daha sonra hayatında her şeyi kolayca öğrenebilirler.
J-16 SDiZ

1
Benzer bir durumdayım: okuldan 20 yıl sonra CS için okula geri dönüyorum. Okulumda ayrıca bir Java / C ++ bölünmüş izi var. Burada her şeyi okuduktan ve hatta en iyi cevaba +1 verdikten sonra, hala Java ile gideceğim ve işte size yardımcı olması durumunda: Web geliştirme (Javascript, PHP, Python) , bu nedenle Java kitaplıklarının desteği bir artıdır. OOP prensiplerini gerçekten yakalamak için zaman ayırdığımı varsayarsak, C ++ 'a (gerekirse) geçmenin o kadar zor olacağını düşünmüyorum. Java, komut dosyası oluşturma ve derleme arasındaki orta noktadır.
Kasım'da

2
Sanırım her cevaba katılmıyorum. Gerçekten önemli değil . Her iki dilde de benzer kavramları öğreneceksiniz ve seçmediğiniz diğer dili ve diğerlerini de çalışmalarınız ve kariyeriniz yoluyla öğreneceksiniz.
Matsemann

Yanıtlar:


51

Ben şahsen C ++ ile gitmek istiyorum çünkü Java bölümleri başlık altında nasıl çalıştığı hakkında fikir verecektir (örneğin İşaretçiler). C ++ 'dan Java'ya geçmek oldukça önemsizdir, oysa tersi yönde hareket etmek daha zordur.

Java eko-sistemi ile ilgili gerçekten zor olan şey, çok sayıda çerçeve, kütüphane vb.

Günün sonunda hiç önemli gitmiyor o Prensip öğrenmek sürece, seçtiğiniz hangi dili çok.

Benim sürahi C ++ ;-) onaylamak için beni öldürecek


1
Java eko sisteminin boyutu ve geçiş açıklaması hakkında mükemmel bir nokta için +1.
Jas

1
Bir üniversitede büyük bir eko-sistem öğrenmenin sorunu, bunun profesyonel kariyeriniz boyunca faydalı olmayacağıdır. Daha az kütüphane ve kavram öğrenme ya da gerçek dil özelliklerini tanıma konusunda daha iyi olursunuz.
David Thornley

2
C ++ için bir başka atlama, daha sonra .NET Framework üzerinde C ++ yönetebilmeniz ve bu çalışma zamanında C #, F # ve diğer dilleri öğrenmenize yol açmasıdır. Java'nın JVM'ye ve Scala gibi dillere büyük bir girişi var, ancak bildiğim JVM C ++ yok.
CodexArcanum

C ++ (ve Java) konusunda oldukça iyi olduğunu düşünen biri olarak, herhangi bir modern tanıtım programlama kursunun C ++ 'da olması gerektiğini düşünmüyorum . Çok zor. Üniversite C ++ 'a hiç öğretmezse, devam edin, elbette, ama bir tanıtım için Java gibi daha basit ve daha güzel bir şeyle giderdim. Belki hepsinin kötü olduğunu düşünmezsem, dinamik olarak yazılmış bir dil bile önerebilirdim.
13'te Dukeling

Java'dan önceki bazı günlerimizde bu seçeneğimiz yoktu ve hepimiz C ++ öğrendik, bu yüzden hala ilk önce C ++ öğrenen insanlarla ilgili herhangi bir sorun görmüyorum. Java'daki intro'nun Turbo Pascal'daki introdan daha iyi olduğunu düşünüyorum.
Bratch

18

Çoğu insanın burada Java'yı savunduğuna katılmıyorum. Bilgisayar ve mikroişlemci mimarisi okumamış olsanız bile C ++ öğrenmek, bilgisayar programlarının çalışma ve çalışma şekli hakkında çok değerli bilgiler sağlar.

Not, ben Java öğrenmemelisiniz (henüz daha iyi, C #) savunmuyorum çünkü bunlar modern, hızlı uygulama geliştirme şeritleri ve etraflarında birçok "ücretsiz" işlevselliğe erişmenizi sağlayan devasa çerçeveler oluşturulmuştur. soyutlanmış dosya erişimi ve benzeri, ancak gerçek bir yazılım mühendisi en azından bazı C ++, C veya en azından montajcı bilmelidir, çünkü sizi script-kiddie türlerinden ayıran şey budur.

Bellek yönetimi ve STL'den emin olarak C ++ ile makul derecede yetkin olduğunuzda, Java / C # almak bir esinti olmalıdır.


Kabul ediyorum, zaten C ++ ile yetkin iseniz Java öğrenmenin, Java konusunda yetkin iseniz C ++ öğrenmekten çok, çok daha kolay olacağına inanıyorum.
Carson63000

"C ++ ile oldukça yetkin olmak" sorunu yıllarca sürecek ve hala sadece küçük bir OOP alt kümesi öğreneceksiniz.
Henry

Java hızlı bir uygulama geliştirme dili değildir. C ++ 'dan biraz daha yüksek olabilir, ancak Python, Ruby, Perl veya Visual Basic'in soyutlama seviyesine yakın değildir.
Evan Kroske

@Evan - Evet, geniş kütüphaneleri için başka bir şey yoksa Java "hızlı" bir geliştirme dilidir (Genellikle herhangi bir Java dev'in çalışırken Java API belgelerine sahip olduğu söylenir) ve manuel bellek yönetimi yapmak zorunda değildir. Ve Java'yı tasarlayan adam, C ++ kullanarak hiçbir yere ulaşamadığı için tasarladı. Ayrıca, gün içinde konuşlandırılan Java uygulamalarının sayısı (düşük giriş engeli) "hızlılığı" için başka bir argüman.
Jas

9

Java'yı ilk seçenek olarak savunan okullar ve akademisyenler, başlarını inceleyecek (ya da sadece gerçek bir iş bulacaktır.) Bunu, son 12 yıldır Java'da hem uygulama hem de sistem geliştirme yapan bir kişi olarak söylüyorum. Java, öğretmek için iğrenç bir dildir.

Sebebi şudur: Üstün zekalıları kısıtlamak, çoğu öğrenci modüler programlamayı anlamadan nesne yönelimini kavrayabilir (ve büyük olasılıkla asla yapmayacaktır). Ve önce modüler bir dilde yapısal programlamayı anlamadan modüler programlamayı anlayamazlar. Sade ve basit. Bunun kanıtı (diğer şeylerin yanı sıra) 3-4 yıldır OO'yu bildiğimiz halde, insanların hala pratikte hiper-spagetti yazmasıdır.

Ayrıca, yalnızca gc tabanlı bir dile (Java veya .NET olsun) güvenen bir kişi, donanıma asla gerçekten yaklaşamaz. Tüm tutkunuz dinamik web sayfaları yapmak değilse, tahmin edin ne oldu? Dile yaklaşırken rahat olmanız gerekir.

Çok yönlü bir bilgisayar bilimcisi ve programcısı olmak için bir CS okuluna gidersiniz (umarım birçok programlama dilinde birkaç kredi saatlik uygulamalı programlama uygulaması ile.) Eğer bildiğiniz tek şey Java (veya .NET veya C veya Python) her neyse, "Java programcısı" (Java üzerinde çalışabilen bir programcı değil, "Java programcısı" )sınız. Ve bu bir "çekiç marangoz" veya "Phillip tornavida tamircisi" olduğunuzu söylemek kadar mantıklı, değil mi?

İyi bir okul sizi C'ye (veya Pascal veya Ada gibi başka bir prosedür diline), sonra C ++ ve bir meclise maruz bırakacaktır, böylece küçük / üst sınıfınızdaki proje capstone kurslarına devam ederken Java'yı kendi başınıza öğrenebilirsiniz. Ayrıca, hesaplama dillerinin bağımsız değişkenler, yan etkisiz hesaplamalar, konum şeffaflığı ve benzerleri (web üzerinde bile gerçek pratik uygulamalara sahip) olarak geçme kavramını anlamanız için size işlevsel dillere maruz kalmanızı sağlamalıdır.

Bir segfaultun ne olduğunu bilmeniz gerekir. Disk belleği, sanal bellek ve tüm bu saçmalıkların ne anlama geldiğini bilmeniz gerekir. Modüllerde problemlerin nasıl çözüleceğini bilmeniz gerekir (bunlar prosedürel ve OO tabanlı olsun). OO sistemlerinin gerçekten nasıl davlumbaz altında uygulandığını bilmelisiniz (böylece maliyeti biliyorsunuz.) OO soyutlamasının nerede kırıldığını bilmelisiniz (ve dünya ve karmaşık problemlerin nesne yönelimli olması gerekmediğinden).

Hem kurumsal hem de çok düşük düzeyde, hem büyük ölçekli hem de küçük ölçekli ticari veya kamu sektörü için sistem düzeyinde işleri uygulayabilen çok yönlü bir bilgisayar bilimcisi olabilmeniz için tüm bunları bilmeniz gerekir. ölçeği.

Java'yı hepsine hükmetmek için tek bir dil olarak zorlayan akademisyenler, endüstrinin gerçekten neye ihtiyacı olduğuna dair tamamen clueless. Bilgisiz. Affedilemez clueless. Sektöre uzaktan bakan fildişi kulelerde çalıştıklarında bu olur.

Bilgisayar Bilimi bölümlerini tek programlama-dil hileleriyle çalkalayan pahalı 4 yıllık meslek okullarına dönüştürdüler. Ve eğer en azından öğrencilere temel iş / işletme / organizasyon becerileri (yani CS cephesini terk edip bir MIS müfredatı benimsemeleri) öğretebilirlerse bu affedilebilir olabilir. endüstri, ekonomi ve nihayetinde öğrencilere.

"Java Okulları" nda Joel Spolsky'nin kitabını okumanızı tavsiye ederim.

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

Özet olarak, size prosedürel bir programlama dili öğretmezlerse (C veya Ada gibi endüstriyel bir dil veya Pascal gibi öğretmek için yeterince iyi bir dil olsun) ve C ++ (eğer şanslıysanız) veya Java / C # (eğer şanssızsan) başka bir okul ararım. Sade ve basit, Java'yı gerçek dünyada yaşamak için bir süredir kullanan bir adamdan.


Java, C ve C ++ 'ı çok iyi bilen ve çok uzun zaman önce mezun olmayan birinden, katılmıyorum. C (veya C ++) VS Java - Java 'kolay' bir yöntemdir. Belki C ++ ile başlasaydım (ki bence oldukça harika (ama kolay değil) btw) ((Delphi (eww) +) Java yerine) (belki de sadece kötü bir C ++ öğretmenimiz vardı). Ama evet, Java'nın içini anlamak için C ++ öğrenmek kesinlikle paha biçilemezdi. Ve tahmin ediyorum ki bugünlerde programcıların yaklaşık% 95'i "donanıma gerçekten yaklaşmıyor".
27'de Dukeling

" C (veya C ++) VS Java - Java 'kolay' bir yol -", bu iyi bilinen bir verilen. Bunun yazı ile ne ilgisi olduğundan emin değilim (?????)
luis.espinal

Anlaması daha kolay, öğretimi daha kolay, öğrenmesi daha kolay, bu yüzden "Java'nın öğretmek için iğrenç bir dildir" olduğunu ve önce C'yi öğrenmeniz gerektiğini düşünebilirim (belki daha kolay bir prosedür dili iyidir). Ayrıca C veya C ++ 'ın bilmek iyi olduğunu, ancak başlamak için iyi olmadığını söylüyorum, çünkü bu durumda en hardcore programcılar hariç hepsini korkutabilirsiniz, çünkü eminim ki bir girişte hayatta kalacaktır C ++ ile programlama. Hardcore programcıların dünyasına aldırdığım için değil, ama diğer insanlar da olabilir. Evet, vardır çok yönlü olması söyleyerek, ancak Java veya benzer olan kurşun söylüyorlar.
Dukeling

Daha kolay anlaşılması ve öğretilmesi, pedagojik amaçlar için yeterli bir dil olması anlamına gelmez. Java ile 12 yıl çalıştıktan sonra buna ikna oldum. C veya C ++ 'dan daha kolay pedagojik bir dil, örneğin ... veya her yöntemi bir sınıfta olmaya zorlamayan herhangi bir dil, yani gerçekten çok paradigma olan bir dil olacaktır. Her şeyin "sözde" bir nesne olduğu Java, sınıfların ve paketlerin ötesinde kapsam oluşturma için iyi alternatiflerin olmadığı vb. Uygun modellemeyi öğretme yeteneğini sınırlar.
luis.espinal

Java, sizi isim odaklı, nesne olarak her şey modunda öğrenmeye zorlayarak, gerçek dünya modellemesi için daha uygun olan diğer paradigmalar için zayıf modelleme metaforları sağlar. Siperlerdeki profesyonel bir geliştirici bu sınırlamayı aşabilir. Öğrenciler beni affetmiyor ve affediyor, ancak çok az üniversite profesörü ayrımı bilmek için siperlerden deneyim sahibi. C / C ++ çok sert ise Java üzerinden Python veya Ruby (veya aslında Lisp veya BASIC) seçerdim.
luis.espinal

4

Bence çok fazla kişiliğinize bağlı. En azından benim açımdan, Java ve C ++ büyük ölçüde farklı insanlara hitap eden radikal olarak farklı yönelimlere sahip.

Aşağı indiğinizde, Java gerçekten büyük bir sınıf kütüphanesidir ve nesneleri kütüphaneye yerleştirmek ve bu kütüphaneden yöntemleri çağırmak için yeterli dil içerir. "Java Öğrenme", büyük ölçüde kütüphanede neler olduğunu ve nasıl düzenlendiğini ezberlemekten (veya en azından farkında olmaktan) oluşur, böylece istediğiniz şeyleri istediğiniz zaman bulabilirsiniz.

C ++ önceden yazılmış kod sağlamaya daha az önem verir. Bir kütüphane (STL 1 ) içermesine rağmen , bu kütüphane içerilen kod hakkında bir stil ve ilkeler kümesinden daha azdır. Önceden yazılmış kodun çok az veya hiç kullanılmamasına rağmen "STL" kodu olarak açıkça ve kolayca tanınabilen bir kod yazmak tamamen mümkündür.

Dillerin kullanımında da oldukça önemli bir fark var. Java, dili basit tutmaya büyük önem vermektedir. Bu, Java kodunu çeşitli şekillerde (örn. Yeniden düzenleme için) işleyen araçlar oluşturmayı kolaylaştırır. Ayrıca , yeniden düzenleme genellikle büyük miktarlarda kodlarda oldukça önemli değişiklikler içerdiğinden, bunu yapabilen araçlara ihtiyacınız olduğu anlamına gelir .

C ++ çok daha karmaşık bir dildir, yani (diğer şeylerin yanı sıra) C ++ kaynak kodunu değiştirmek için araçlar oluşturmak Java'dan çok daha zordur. Bunun dengesi, çok daha az gerekli olmasıdır - Java'da düzinelerce dosyada yüzlerce değişiklik içerebilen yeniden düzenleme işi (örneğin) C ++ 'da tek bir şablon parametresi değiştirilerek gerçekleştirilebilir.

Java, öğrenmesi kolay olmasına çok daha fazla önem verir. C ++, kullanımı kolay olmaya çok daha fazla önem verir - ancak (ne yazık ki) sadece ne yaptığınızı gerçekten biliyorsanız.

Birini ya da diğerini savunmayacağım. Diller hakkındaki düşüncelerim, her birinden ne bekleyebileceğiniz hakkında bir fikriniz olması ve hangisinin size daha uygun olacağını anlamak için kendinize dürüst bir bakış atmaktan çok daha az alakalı.

1 Evet, bunun gerçekten doğru olmadığını biliyorum, ama bunun bir kitaba dönüşmesini engellemeye çalışıyorum ...


3

İnsanların C ++ 'ı ilk dil olarak savunduğuna inanamıyorum! Zamanınızın çoğunu kazan plakası yazarak ve gerçekte nasıl programlanacağını öğrenmekten ziyade dildeki sınırlamaları ve balık kancalarını aşmaya çalışacaksınız.

Java çok daha basit bir dildir ve öğrenmenize engel olmaz.

C ++ öğrenmeniz gerekiyorsa, Java ile kavramları öğrenin ve Mac yazılımı yazmak istiyorsanız C ++ veya daha iyisi OBJ-C'ye gidin. Java ve OBJ-C çok farklı değil.

FYI Ticari C ++ geliştiricisi olarak 10 yıl geçirdim.


Bu benim ilk dilim olmayacak. Şimdi bir derece almak için okula geri dönen bir programcıyım. C ++ ve Java ile olan deneyimim sınırlıdır, ancak C ve Objective-C ile deneyimim var. Ama cevap vermek için zaman ayırdığınız için teşekkürler.
Philip Regan

3
Java olacak senin öğrenme şekilde olsun. Size dilden bağımsız kavramlar hakkında tam olmayan gerçekleri öğretecektir.
DeadMG

2

C ++ öneriyoruz. Java'da bazı dersler, üniversitede C ++ dersleri aldım ve C ++ 'dan öğrendiğim dile özgü beceriler daha sonra ek dil öğrenirken bana daha fazla yardımcı oldu. Buna ek olarak, C ++ iş açılışlarından çok daha fazla Java görsem de, çoğu gibi tam bir Java yığını arıyor:

  • EJB 1.x / 2.0, JNDI, JMS, JTA / JTS, RMI, JDBC, Sunucu Uygulamaları, JSP, SAX / DOM, Web Hizmetleri, SOAP, WSDL, UDDI, JAXB, JavaMail, WAP, WML, HTML
  • Tomcat, Apache Xalan, Apache Xerces, Jserv, JRun, JBuilder, TogetherJ, Web Mantığı 5.x / 6.x, Websphere 3.5 / 4

Ve bir Java tabanlı müfredat, böyle bir listeye karşı sizi bir C ++ tabanlı olandan daha iyi hazırlamayacaktır.


1
(En azından benim bölgemde) C ++ işleri de Java işleri (objektif) biraz daha iyi ödemek ve genellikle daha ilginç (öznel) olduğunu eklemek istiyorum.
Cercerilla

2

Bu zor çünkü Java'nın inkar edilemez şekilde öğrenmesi daha kolay. Java ile daha erken yapacaksınız.

C ++ ile çalışmak çok daha zor bir dildir. İşaretçiler ve bellek yönetimi, kavramsal olarak ve pratik olarak çalışmak zordur. C ++ size güvenlik ağları sunmaz.

Uzun vadede C ++ 'nın size öğrettiği her şeyi anlamak faydalı olacaktır. Ayrıca C ++ 'dan Java' ya geçiş diğer yönden çok daha kolaydır.

Ancak, C ++ 'da çalışan bir şey elde etmek için yapmanız gereken ekstra ek yük ve hata ayıklamanın projelerinizi daha zor, son teslim tarihlerinizi karşılamak daha zor ve hayatınızı daha sinir bozucu hale getirip getirmeyeceğini merak ediyorum. . C ++ ve Java'da aynı şeyi başarmak için hemen hemen her durumda işi Java'da daha hızlı halledeceğinizi ve daha az sinir bozucu sorunla karşılaşacağınızı söyleyebilirim. Bir dönem sonunda olduğunuzda ve aynı gün ders sonu projesine ihtiyaç duyan beş dersiniz olduğunda bu gerçekten büyük bir anlaşma olabilir.

Bunun diğer tarafı, eğer bu denemeler havluyu tamamen atmanıza neden olmazsa, C ++ konusunda uzmanlaştıysanız sizi daha iyi bir programcı yapacaklardır. Ve kariyeriniz C # veya Java veya python ile ise ve hayatınızdaki başka bir işaretçiye dokunmanız gerekmiyorsa, çok daha fazla takdir edeceksiniz ...


2

C ++ daha esnektir ve daha derin bir anlayış sunar. Şüphesiz, C ++ 'tan Java'dan daha fazla kazanacaksınız. C ++ da daha zordur, çünkü daha karmaşıktır.

Bununla birlikte, C ++ işleri Java işleri kadar yaygın değildir.

Java ve onun torunu C #, kurumsal / kurumsal büyük demir kodlama alanı için standart çözümlerdir. İkinci yılınızdaki ikisinden birini öğrenmenizi ve derecenizi bitirdiğinizde bu konuda çok rahat olmanızı şiddetle tavsiye ederim. İşleri daha kolay hale getirmenizi sağlayacaktır . Bu, bu işlerin ortalama olarak önemli bir entelektüel menfaati olduğunu düşünüyorum demek değil. Geçenlerde Rocky Dağları'nda craigslist yazılım işleri geçmek ve işlerin çoğu C # / Java ve " CRUD " yazılım olarak adlandırılan ile ilgili ; IMO çok sıkıcı.


1

Üniversite düzeyinde C ++ ve Java hem öğretilen olması, şiddetle tavsiye ediyorum Java .

Java, öğrenme sürecine yardımcı olur ve iyi programlama davranışlarını teşvik eder. Java için yerleşik kitaplıklar yararlıdır ve her kurulumda kolayca kullanılabilir. Her Java kurulumunda bulunan ve öğrencilerin bir Google aramasında bulduğu tüm öğreticilere uyan yerleşik kitaplıkları kullanarak bir cümlede bir GUI uygulaması oluşturabilmek, öğrencilerin dilin ötesine geçmelerine ve programlama kavramlarını anlamaya başlamalarına yardımcı olmak için çok önemlidir. .

Java için IDE'ler hem yeni başlayanlara hem de devam eden öğrencilere destek sağlar. Güçlü yeniden düzenleme araçlarını sohbete erken dahil etmek (örneğin OOP tartışılırken) öğrencilerin sürdürülebilir kod yazmayı öğrenmelerine yardımcı olacaktır.

C ++ bilmek yararlı bir dil olmakla birlikte, C ++ 'da öğrenilen ek kavramlar, bir bütün olarak dilin ekstra çabalarına değmez. Etrafında öğretilmesi gereken daha sonraki bir zamanda eklenmesi gereken büyük bir "gotchas" seti vardır (bellek yönetimi sorunları ve bir çifti adlandırmak için arabellek taşmaları). Öğrencilerin algoritmik karmaşıklık ve kalıtım gibi kavramlara geçmeden önce bunları anlamalarını zorunlu kılmak, sürücünün sürüşten önce lastik basıncını anlamasını gerektirme Sürücünün Ed'i yavaşlatır. Tabii, bilmen gerek. Ancak bunu sadece bir gün yanlış yapacağınız bir şey olarak bilmeniz gerekir, daha büyük bir kavramın yapıtaşı olarak değil.


2
Arabellek taşmaları ve bellek yönetimi ile ilgili ciddi sorunlarla karşılaşırsanız, C ++ 'a yanlış öğretiyorsunuz. Standart kaplardan hangisi tampon gibi taşabilir?
David Thornley

Diziler? Aslında, C ++ 'a yanlış öğretiyor olabilirim; Bu on yıldan uzun bir süre önceydi.
Alex Feinman

0

Kendinize sormanız gereken en büyük soru, iyi bir programcı olmak mı yoksa bilgisayar bilimine odaklanmak mı istediğinizdir. CS hedefinizse ve bir doktora rotasında olmak istiyorsanız, belki de Java yoludur. Java, önceden hazırlanmış veri yapıları ve algoritmaları olan Java koleksiyon sınıflarını sağlar. Bunun avantajı iki yönlüdür: Birincisi, nasıl yapılandırıldıklarından endişe etmeden önce ne yaptıklarını görmek için veri yapıları ve algoritmalarla oynamanızdır. İkincisi, bu, profesörlere, nitrit cesurluktan endişe etmeden veri yapılarını kullanan CS ilkelerini öğretmek için daha fazla fırsat sağlar. Daha sonra geri dönüp öğrencilerinin yapıları sıfırdan yaratmalarını sağlayabilirler.

C ++ ise daha düşük seviyeli bir dildir. Sizi işaretçileri ve çöp toplamayı düşünmeye zorlar. Öğrenme eğrisi biraz daha dik ama sonunda dış çerçevelerle yol programlamayı bulduğunuzda, gizli büyüye güveniyormuş gibi hissedeceksiniz. Ayrıca, birçok büyük şirket hala C ++ kullanıyor. Java'dan C ++ 'a gitmek C ++' dan Java 'ya daha zordur.


Şu anda amacım sadece yazılım geliştirmeye girmek, bu yüzden daha iyi bir programcı olmak. Bu noktada geniş kapsamlı akademik arayışlara pek ilgi duymuyorum.
Philip Regan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.