Bilgisayar Mühendisliği yüksekokuluna başlamadan önce bir programlama dili öğrenmeli miyim? [kapalı]


14

C ++ programlamasında ayaklarımı batırdım ama aslında buna girmedim. Bilgisayar Mühendisliği için üniversiteye gitmeden önce gerçekten öğrenmem gerek mi yoksa başka diller mi öğrenmek istiyorum, yoksa yine de okulda öğrenecek miyim?


Kesinlikle ihtiyacınız olmadığını söyleyebilirim ama hiç acıtmaz. CS derslerime başlamadan önce hiç kodlama yapmadım ve C ++ 'nın ne olduğunu ve sınıfın C ++' da olduğunu bilmiyordum.
pllee

3
... Zaten orada öğrenseniz bile, bu kolay bir sınıf demektir. Yani şimdi öğrenmemek için hiçbir neden yok ...
Izkata

Programlama konusundaki yetkinliğiniz ve / veya ilginiz olup olmadığını öğrenmenize yardımcı olabilir.
JeffO

Bu soruyu programmers.stackexchange.com adresinde sordunuz. Gerçekten "evet, üniversiteye gitmeden önce C ++ öğren" dışında bir cevap beklediniz mi?
Martin Thoma

@moose, ardından kopya olarak kapatın.

Yanıtlar:


48

Evet, birkaç nedenden dolayı.

  1. Alanla ne kadar çabuk deneyim kazanmaya başlarsanız, bu alanın olması gereken alan olup olmadığını o kadar çabuk anlayabilirsiniz. Programlamayı sevmiyorsanız, Bilgisayar Mühendisliği büyük olasılıkla ana dal için iyi bir alan değildir. Çoğunlukla CPU tasarlamakla ilgileniyor olsanız bile, LOT programlama yapacaksınız.
  2. Çoğu kişi, kolejde kendilerinden beklenen çalışma düzeyinin ve miktarının, ortaokulda alışkın olduklarını büyük ölçüde aştığını bulmaktadır. Olağanüstü yetenekli değilseniz, kendinizi işin içinde dövülmüş bulacaksınız. Kendinize bir iyilik yapın: ilk yıl dersini öğretmek için hangi dilin kullanıldığını bulun ve şimdi öğrenmeye başlayın. En kötü durumda, sınıfta biraz sıkılırsınız, ancak işi daha hızlı halledebilir ve diğer sınıflarınız için tasarruf ettiğiniz zamanı kullanabilirsiniz.
  3. Birçok sınıf bir eğri üzerinde derecelendirilir. Bunun dezavantajı, sınıf arkadaşlarınızla sınıflar için rekabet edeceğinizdir. Bilgisayar mühendisliği öğrencilerinin çoğu zaten çok fazla programlama yapmış olacak, bu yüzden zaten eğrinin arkasında olabilirsiniz. Yakalamaya başlamak için iyi bir zaman.
  4. Programlamada başarılı olmanın tek yolu çok şey yapmaktır. Önümüzdeki birkaç yıl içinde programlamaya ne kadar fazla zaman harcarsanız, o kadar iyi olursunuz. Ne kadar fazla deneyiminiz varsa, staj ve iş bulma şansınız o kadar artar.

7
+1 Gelecekte
Andy Hunt

Ayrıca, HS'de alınmışlarsa, kolejdeyken iki sınıf (genellikle programlamaya giriş ve veri yapılarına giriş) atlanabilir. Daha az ders almak, muhtemelen daha az para harcanması veya en azından daha fazla tampon süresi anlamına gelir. ÖAM programları çok katı olabilir - örneğin bir dersi atlarsanız, yılda geri kalmanız gerekir. Bir arabellek kullanmak yardımcı olacaktır. Her zaman ekstra grad dersleri alabilir veya bir yandal alabilirsiniz.
İş

Eğer tanıtıcı bir programlama dersi aldığınızda öğretilen programlama dilinde son derece akıcı hale gelirseniz, kurumunuzun bunu test etmek için kullanabileceğiniz bir "Sınavla Kredi" politikası olup olmadığını göz önünde bulundurun. Size biraz zaman kazandırabilir (ancak yalnızca dilde son derece akıcıysanız).
Silico'da

7

Bir CS mezunu olarak (BS, MS, PhD), ayaklarınızı mümkün olan en kısa sürede ıslatmanızı tavsiye ederim. Üniversitenizin ilk yılında yeterince başka şeyler olacak. Özellikle programlama için:

  • Hedef üniversitenizin web sitesini kontrol edin ve tanıtım programlama sınıfları için alt bölüm sınıf kataloğuna veya eğitmen müfredat web sayfasına bakın. Öğretilen programlama dilini arayın ve birinci sınıfta ne tür şeylerin kapsandığını görün. Başlamadan önce bu materyali okumaya çalışın.

  • Yine, sınıf müfredat sayfasına baktığınızda, önceki programlama ödevlerine bakın ve ne tür yazılım programlama araçlarının ve ortamının kullanıldığını görün. Vi ve gcc mi (gerçek erkeklerin kullandığı budur)? Microsoft Visual Studio? Eclipse? Başlamadan önce bu araçları kullanmaya çalışın.

  • Yazılım programlama bir CS müfredatında öğretilen şeylerden sadece biridir. Diğerleri algoritmalar (örn. QuickSort), veri yapıları (ağaçlar, bağlantılı listeler, hash tabloları) ve saf teoridir (NP tamlığı ve set mantığı). Bunların en azından öğrendiğiniz programlama dili kadar önemli olduğunu söyleyebilirim.


Sadece programlama dillerini okumak için +1
Andy Hunt

4

Üniversiteye bağlı. California State Üniversitesi'nde "Bilgisayar Bilimi" dediklerini incelediğimde, (haklı olarak, bence) bunun bilim yönüne odaklandılar ve herkesin (birinci sınıf öğrencilerinin) işletim sistemlerini nasıl kullanacaklarını ve nasıl bazı popüler dilde kod yazın. Ohio Eyalet Üniversitesi'nde dil kurslarına katıldığımda kazandığım bazı kredileri aktarmayı kabul etmediler. (Bu benim için bir serseriydi, ama yine anlıyorum.) Bu da bir tersi oldu: Bir kez bir ödevi tamamladım, kodumu C'ye yazdım; profesör C'yi okuyamadı, bu yüzden benden Pascal'da yeniden yazmamı istedi. Bölüm başkanına bu talebin doğruluğunu sordum ve dil öğretmedikleri için, ayrıca kimsenin belirli bir dilde bir ödevi tamamlamasını bekleyemezler. Bu yüzden profesörüm C ile yazılmış ödevlerimle yaşamak zorunda kaldı. Sonuç olarak, gideceğiniz üniversiteye bakın. Ama tavsiyemi istiyorsan, önceden mümkün olduğu kadar çok şey öğrenmek asla acıtmaz.


2
Ve C ++, bir mühendislik disiplininden herhangi birine gidiyorsanız, bir dil için başlamak için iyi bir seçimdir, çünkü C ++ ile makineye yakın programlamayı öğrenebilir ve aynı zamanda OOP öğrenmeye başlayabilirsiniz.
Mike Nakis

Teşekkürler okulu (Illinois Üniversitesi) aradım ve bana genellikle öğrencilerin dili çok az anlamış olduklarını ve okula başlamadan önce mümkün olduğunca çok şey öğrenmem gerektiğini söylediler. Tavsiyen için teşekkürler.
Matt

Harika. Mümkünse Linux komut satırı ile tanışmaya çalışın; bu tür bilgiler genellikle Üniversite ortamlarında kullanışlıdır. Bilgisayar laboratuvarındaki diğer insanlara işlerin nasıl yapıldığını gösteren kişi olmak, her zaman başkalarına soran adam olmaktan daha iyidir.
Mike Nakis

4

İlk etapta bir programlama dili öğrenmeniz gerekip gerekmediğini sorgulamanız gerekiyorsa, kendinize gerçekten ne yapmak istediğinizi sorun. Bilgisayar bilimlerinin ilk yıllarının çoğu, başlamadan önce programlama konusunda oldukça iyi durumdadır, böylece doğal olarak ineklere karşı eğilimli olan türlere karşı yarışacaksınız. Önce kafasına atlayın ya da sevdiğiniz başka bir şey yapın. Çitin üzerinde olma. Yaptığını sevmek. Bunun için bir oylamaya ihtiyacım yok ya da oy istemiyorum, sadece seninle konuşmak istiyorum.


1
Bunu "ilk yıllarında en başarılı bilgisayar bilimi öğrencileri" diyerek değiştireceğim. Kolejdeyken (ve daha sonra grad okulunda) bilgisayar kullanımı hakkında ilk şeyi bilmeyen endişe verici sayıda CS öğrencisi vardı, ama sadece CS'nin tüm paranın olduğu yerde olduğunu duydular. Birçoğu, eğitmenlere ne yazacaklarını söylemedikleri için çok sinirlendikten sonra büyük değişiklikler yaptı.
kabarık

Ben o soylardan biriydim ve çok başarılı oldum. Ancak, hiçbir şeyden başlayarak bu geek sporcularla yapmak için gerçekten çok denemek zorunda kaldı. Eğer çocuğum için para kazanmam gereken bir durumda olmasaydım, kendimi bu kadar zorlamayacaktım. Daha çok anladığım için onu sevmeye başladım.
Jason Sebring

3

Üniversiteye gitmeden önce öğrenmen gerektiğini sanmıyorum . Bununla birlikte, hayattaki çoğu şey gibi inanıyorum, eğer bir etkinliğe vb. Katılmadan önce hazırlıklıysanız, hangi bilgileri absorbe edeceğiniz ve hangi bilgileri atacağınız konusunda daha bilinçli kararlar verebilirsiniz.

Daha spesifik olarak, en azından ayak parmaklarınızı daldırarak, öğretim görevlilerinizin söylediklerini kopyalamak yerine gerçekte geçmeye çalıştıkları kavramları özümsemek yerine söylediklerini dinleyebilirsiniz, bence en önemli şey üniversitenin bir kısmı (bir dilin aslında öğrenme sözdizimi kısmı değil).

Hangi programlama dilinin öğrenileceğine gelince. Muhtemelen önemli değil, ancak ilk yılında ele almanız muhtemel olanları okumaya başlamak yararlı olabilir.

Bununla birlikte, ön öğrenmenin kapak tarafı, ilk birkaç ayınıza geldiğinizde dersleri sıkıcı ve temel bulabileceğinizdir. Bu, derslere katılmamanıza ya da öğretim görevlilerinin karşılaşmaya çalıştığı şeyleri atmamaya yol açabilir, bu nedenle aslında bir şeyi öğrenme şeklinizin doğru bir yol olmadığını anlamak gibi önemli bir bilgi parçasını kaçırmayın, yani üniversiteye gitmeden önce kötü bir alışkanlık öğrendiniz.

Bu tür siteleri zaten inceleyerek, muhtemelen bir adım önde olmanın yolunun bir parçasısınız ve böylece kolej sırasında öğrenmenize yardımcı olursunuz. Her iki durumda da, önceden öğrendikleriniz muhtemelen buzdağının görünen kısmı olacaktır. Sağlayabileceği faydaları sürdürmek istiyorsanız, bu öğrenme eğrisini kolej materyalinin içinde ve dışında sürdürmeniz gerekecektir.


2

Evet, ancak en karmaşık dille başlamayın, daha sonra bunun için bolca zaman olacak.

Ayaklarınızı ıslatmak için basit bir şeyle başlayın. Dilin kendisi tarafından yükümlü olmadığınızda kafanızı programlama kavramlarının etrafına sarmak çok daha kolaydır. Aynı şekilde, bazı diller işleri diğerlerinden daha iyi yapar.

Dinamik programlama, basit nesne yönelimli programlama teknikleri ve doğru girinti için Python'u öğrenin. Kapaklar hakkında bilgi edinmek için javascript + JQuery veya Lua'yı öğrenin. Statik yazmayı öğrenmek için Java veya C # öğrenin. Dize ayrıştırma için normal ifadeleri öğrenin. Ve her programcı bir noktada bir veritabanına dokunmak zorunda olduğu için biraz SQL öğrenin. Sonra spagetti kodunu tanımlamak için PHP öğrenin.

Bu liste değişebilir, ancak temel olarak birkaç eğlenceli dil seçin ve kavramları öğrenmek için bunları kullanın . Daha sonra, hayatınızın geri kalanı boyunca tek bir dilde durgunlaşmak ve öfkeyle internette her zaman savunmaya çalışmak yerine uyarlanabilir olmayı öğreneceksiniz.


1

Başladığınız zaman hangi dili bildiğinizin çok fazla önemli olacağını düşünmeyeceğimi söyleyeceğim, ancak muhtemelen ilk programlama ödevinizi aldığınızda, kod açısından düşünme sorunuyla mücadele etmek için - orada zaten bir deneyiminiz olacak. Üstesinden gelmek için daha az öğrenme eğrisi iyi bir şeydir. İlk yılında öğrettikleri dili öğrenirseniz, ancak gerekli değilse bonus.


1

En azından programlamanın ne kadar zor veya kolay olduğunu ve ne kadar iyi olduğunuzu öğrenene kadar Bilgisayar Mühendisliğinin sizin için gerçekten uygun bir derece programı olup olmadığını bilemezsiniz. Gerçekten bilmenin tek yolu en az bir programlama dili öğrenmek ve öğrenmek ve çok sayıda kodlama yapmaktır, ASAP.


1

Üniversiteye gitmeden önce öğrenmek isteyebileceğiniz bazı şeyler (aralarından seçim yapın):

  1. Biraz daha matematik (daha spesifik olamıyorum, çünkü Fransızım ve sahip olmanız beklenen matematik becerileri hakkında hiçbir fikrim yok).
  2. Ocaml, Scheme, Haskell, Lua gibi başka programlama dilleri ... Aklınızı yeni düşünme yollarına açacaklar.
  3. Bazı algoritmalar kitabı
  4. Daha iyi İngilizce ve yazılı beceriler (ve bir yabancı dil asla kötü değildir)
  5. GNU / Linux ve genel olarak özgür yazılım altında kullanma ve kodlama. Özgür yazılım üzerinde çalışabilme (ve ona katkıda bulunma) size çok şey öğrenecektir.
  6. Otonomi çalışın, kendinize bir çalışma planı tanımlayın ve ona sadık kalın
  7. SICP

C ++ dar bir şekilde odaklanma tavsiye etmeyeceğim; diğer diller, kitaplar, beceriler size çok daha fazlasını getirecek. Tüm çabalarınızı C ++ ile harcamayın.

Öğrenmenin tadını çıkarın.


1

Dürüst olmak gerekirse, bunun için zamanınız varsa. Öğretmen öğretirken BT daha anlamlı olacaktır. Daha önce hiç program yapmayan öğrencilerden en iyi şekilde yararlanabilirsiniz.


1

Kesinlikle! Daha önce programlanmadıysanız, C ++ veya C veya Java veya C # öğrenmek size hemen başlayacaktır. Tüm bu diller Algol tabanlıdır (kabaca) - bunlardan birini öğrendikten sonra Lisp veya Haskell öğrenin. İki aile arasındaki müthiş paradigma değişimi, kurslarınız ne olursa olsun size yardımcı olacaktır.


0

Şahsen ben tavsiye ederim. Bu, tüm okullar için geçerli olmayacak, ancak çok iyi bir mühendislik okulu olarak kabul edilen programa gittim ve tanıtım programlama sınıfları korkunçtu. Temel bilgileri bilmek, size öğretilebilecek kötü uygulamaların / yanlış bilgilerin çoğundan kaçınmanıza yardımcı olacaktır. Ve başka bir cevaptan bahsedildiği gibi, diğerleri mücadele ederken bu kolay programlama-giriş derslerine gireceksiniz. Ve benim gibiyseniz, bu, kendisiyle mücadele eden arkadaşlarınıza yardım etmek için size daha fazla fırsat verir.


0

Bence yapmalısın. Burada başkalarının verdiği nedenlerin yanı sıra, birçok üniversite profesörünün öğretimde çok iyi olmadığını ve bu nedenle çok iyi öğrendiklerinizi öğretmek için onlara güvenemeyeceğinizi ekleyeceğim. Temel bilgileri zaten biliyorsanız, çok daha iyi söylediklerini anlayacaksınız.

Ayrıca, ders materyallerinin sınıf zamanına oranı üniversitelerde genellikle çok yüksektir, bu yüzden profesör iyi bir öğretmen olsa bile, size mevcut sınıf zamanında etkili bir şekilde öğretemez. Böylece önceden edindiğiniz herhangi bir bilgi, sınıfın hızlı temposuna ayak uydurmanıza yardımcı olacaktır.

IMO C ++ yeni başlayanlar için en kötü dillerden biridir. Çok zor bulamazsanız devam edin ve C ++ ile çalışın, ancak C #, VB, Ruby veya Python gibi diğer diller biraz daha kolaydır.


0

Üniversiteye girmeden önce bazı dilleri bilmek çok akıllıca bir hareket olurdu. Bilgisayar Bilimlerinde kolej eğitimi, eğitimsiz veya İngilizce konuşmayan TA'lar tarafından verilen genellikle olumsuz bir niteliktedir. Giriş dersleri bir öncelik değildir ve zayıf öğretim kuraldır. Üniversiteler hibe yükünden para kazanıyor; Hibe almak, lisans öğrencilerine değil, çoğu üniversite fakültesinin önceliğidir. Bu, birkaç istisna dışında üzücü bir kuraldır.

Ancak, liselerdeki programların kalitesi de düşük olabilir. Birçok okul idaresi Micosoft Word kullanma eğitiminin bilgisayar bilimi olduğunu düşünmektedir. Ah, ed okullardan ayrılan saçmalık!

Keşke daha iyimser olabilseydim. Lisenizde iyi bir compsci programınız varsa, programa sürün. Sınırların ötesine geçin ve öğrenme konusunda agresif olun. Oldukça girişimci iseniz, kendinize Python'u öğretmek ve biraz beceri kazanmak zor değildir. Bir kez öğrendikten sonra, diğer dilleri öğrenmek zor değildir. Python'un basit dilbilgisi öğrenmeyi nispeten kolaylaştırır.


0

Evet.

Hangisini öğrenmeniz gerektiği "Bilgisayar Mühendisliği" nin ne anlama geldiğine bağlıdır. Oldukça standart olmayan bir terim. Çalıştığım yerde elektronik ve bilgisayar biliminin bir kombinasyonuydu.

Öncelikle bilgisayar donanımı ile çalışmayı düşünüyorsanız, C ve Forth öğrenmenizi öneririm. Öncelikle "bilgisayar bilimi" diye düşündüğüm şeyi yapacaksanız, "gerçek iş" denemek için Python veya Smalltalk gibi bir şey öğrenmenizi ve seçtiğiniz işlevsel bir programlama dilini öneririm. Lisp veya şema, ancak en kolay ve havalı olanı seçin).


0

Kendi deneyimimi paylaşacağım.

Yaklaşık 10-11 ay önce programlamaya başladım. İlk gerçek pozlama PHP ile oldu, ama daha sonra kendimi yerel topluluk kolejimde bir giriş kursunda (CS 140) C # öğrenirken buldum. Temel bilgileri öğrendikten sonra, hemen hemen uçtum ve o zamandan beri durmadım. C # 'dan sonra bilgisayarların nasıl çalıştığının alt düzey mekaniğini öğrenmeye karar verdim. Çok platformlu olması gereken bir uygulama üzerinde çalışıyorum ve video oyun motorlarının birbirleriyle etkileşime girmesine yardımcı olması gerekiyor (SDL'ye benzer, ancak muhtemelen bundan daha düşük bir seviyede, GUI'ye odaklanarak matematik ve diğer yardımcı işlevler).

Temel olarak, eğer o sınıf için olmasaydı, çok sonraya kadar sevdiğimi bulamazdım. Arkasındaki kavramları gerçekten anlayana kadar programlamayı sevdiğinizi gerçekten bilmiyorsunuz. Öğrenmek istiyorsanız, programlama kitabına bir giriş almanızı ve C / C ++ ile başlamanızı öneririm, çünkü elinizi Java veya C # gibi tutacak bir dil kullanmak yerine ne yaptığınızı anlamanız gerekir. sadece bazı kodlama dilleri - bakalım, bunların yerleri var ve kullanmak için iyi araçlardır, ancak başlangıçta alt düzey kavramları anlamanız çok zorunludur. Bu başlangıçta yaptığım bir hataydı.

Bundan sonra hoşunuza giderse programlamaya devam edin. Değilse, başka bir şey öğrenin. Ne yapmaya karar verirseniz verin, onu öğrenmek için 2-4 yıllık bir üniversiteye gitmeden önce üzerinde olabildiğince fazla zaman harcamalısınız, çünkü sizi gerçekten oyunun önünde tutacaktır. Ayrıca potansiyel olarak sizi işe alabilecek herhangi bir işverene motivasyon gösterecektir.

Size bilgisayar bilimi / elektrik mühendisliği disiplinlerinin evrim oranları açısından en hızlı olduğunu söyleyebilirim (bu da her geçen yıl artmaya devam ediyor) ve bununla başa çıkmak için yeni teknolojiler öğrenmeye devam etmeniz gerekecek. en son ve en iyisi (en azından biraz ilginç bulmalısınız, ancak hangi uzmanlık alanında uzmanlaştığınıza bağlı. Örneğin, web programlamasından nefret ediyorum ve mevcut teknolojilerle hiç ilgilenmiyorum. bunun için, ancak bazı insanlar gerçekten zevk alıyor ve ilgileniyorlar). Buna rağmen, C / C ++, diğer birçok dilde (örneğin C #, Java) "hayatı kolaylaştırmak" için kendi önceden oluşturulmuş API'larına sahipken, gerçekte neler olduğu hakkında lanet bir şey öğrenmeyeceğiniz için öğrenmek için harika dillerdir. "

Temel olarak 10-11 aydır program yapıyorum ve hiçbir üniversiteye bir kez gitmedim. Bir topluluk kolejinde (bana temelleri öğreten ilk programlama sınıfım) bir C # dersi aldım ve geri kalanların en az% 95'ini kendi başıma öğrendim. Çünkü o dersi aldıktan sonra programcı olmak istediğimi biliyordum. Anlamaya gelince bunu bileceksin. Seçtiğiniz yollardan biri, eğer gerçekten başarılı olmak istiyorsanız, bağımsız olarak çalışmalısınız, çünkü motivasyon ve bağlılık yeteneğinizi artırır. Bir programcı vardırbaşarılı olmak için motive olmak. Onlar sadece "kod yazma" dan çok, çok uğraşmak. Bir uygulamanın sürekli test edilmesi, hata ayıklanması ve sıfırdan anlaşılması gerekir. Genellikle, ister küçük ister büyük olsun, üstlendiğiniz her proje için neredeyse yeni bir şeyler öğreneceksiniz. Bu iyi bir şey, çünkü o beyni aktif tutmanız gerekiyor.

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.