Üniversite DOS tarzı C ++ öğretir, onunla nasıl başa çıkılacağını [kapalı]


19

Yıllardır programlama yapıyordum ama kendimi daha istihdam edilebilir hale getirmek için bir diploma istiyordum. Zaten bir keresinde üniversiteyi bitirdim, tam 5 yıllık bir bilgisayar bilimi ana dalını değil, daha kısa, daha pratik odaklı bir yazılım mühendisliği programını seçtim .

Teoriden ziyade somut becerilere daha fazla odaklanabileceğini umuyordum, ancak yine de üniversitelerin ve profesörlerin şeylerin doğru, biçimsel, akademik olmasını istedikleri fikrine sahiptiler. Hala bilim, değil mi? Yanlış - BT kurslarının özensizliğine şaşırdım.

C ++ ile ilgili bir giriş dersinde, 1-2 program yazdıktan sonra "neden globaller kötü" ve "sabitler neden iyidir" gibi klişeler üzerinde test edildi. Uygun bağlam olmadan rastgele fıkralar. Ders notları içeriyordu system(pause/cls), getchve başlıklar gibi conio.hve iodos.h. Görevlerden biri, "ASCII karakterlerini" 32'den 255'e kadar basmaktı.

Soru : Bir üniversite / profesör daha düşük ve / veya eski araçlar ve yöntemler kullanıyor gibi göründüğünde ve öğretilen içerik sınırda yanlış olduğunda, yapıcı ve saygılı bir şekilde nasıl başa çıkıyorsunuz?

Bazı cevaplar, sadece veri yapıları ve algoritmalar gibi konuları öğrenmek için bir araç olduğu için programlamanın ötesine bakmanız gerektiğine işaret ediyor. Bu fikre katılıyorum, ancak bu durumda fakir tarzın arkasında böyle bir plan yoktu. Çoğu ders, çok fazla arka plan teorisi veya herhangi bir "büyük resim" olmadan başka bir "araç" öğretir. Genellikle böyle bir kurs sunmak uğruna hızla bir araya getirildiklerini hissettiler.


Ben onunla takılıp sonunda mezun oldum. Kalite (birkaç büyük istisna dışında) boyunca oldukça düşük kaldı ve diğer bazı öğrenciler bundan şikayetçi oldu. Beklendiği gibi, kişisel projelerden ve yarı zamanlı işlerden okuldan çok daha fazla şey öğrendim, ancak okulu bitirme süreci ve "yazılım öğrencisi" etiketi kendi içinde gizemli bir şekilde yararlı görünüyor!


2
Kendi deneyimlerime dayanarak, kendi başınıza programlamayı ve forumlardan yardım almayı daha iyi, daha hızlı ve daha ucuz öğreneceksiniz. Üniversite müfredatının modası geçmiş olması nadir değildir. Rusya'da Pascal hala bazı üniversitelerde öğretiliyor (dili sevmeme rağmen bunu tamamen kötü bir şey olarak görmüyorum).
WKS

@WKS: Bence Pascal hiç modası geçmeyen ilkeleri (prosedürel programlama) öğrenmek için çok iyi bir öğretim dili. Üniversite dersleri belirli bir programlama dilini öğretmek için zaman kaybetmemeli, paradigmaları (prosedürel, nesne yönelimli, fonksiyonel, mantık vb.) Öğretmelidir.
Giorgio

Evet, elbette @Giorgio, öğretim aracı olarak seçilen programlama dili önemli değil, ancak sunulan programlama uygulamalarının sağlam ve güncel olmasını beklemek gerekir.
glampert

Çoğu üniversite lisansüstü öğrencilerine yüksek lisans derecesi almada başarılı olmalarını sağlamak amacıyla ders vermektedir. Çoğu yüksek lisans programı, yüksek lisans öğrencilerine doktora almada başarılı olmalarını sağlamak amacıyla öğretir. Çoğu doktora programı başarılı bir araştırmacı olmanıza yardımcı olmayı amaçlamaktadır.
Rob P.

@glampert: Pascal tanıtıldıktan sonra yordamsal programlama değişmedi. Daha da iyisi, Pascal bir öğretim dili olarak tasarlandı, bu yüzden pratikte yararlı olabilecek çok fazla kesmek yok, ancak yeni şeyler öğrenirken büyük bir dikkat dağıtıcı. Dolayısıyla Pascal, zorunlu programlama öğretimi konusunda günceldir. Tabii ki, nesne yönelimli, fonksiyonel, mantık gibi diğer paradigmaları öğretmek isteyebilirsiniz: o zaman diğer dilleri aramalısınız, örneğin Python, Java, Haskell, Scheme, Prolog, ...
Giorgio

Yanıtlar:


34

Matematik ve programlama tamamen farklı şeylerdir. Matematik bilimdir, programlama tekniktir. Akademik dünyada, programlama, bilmeniz gereken bir şeydir, böylece gerçek şeyler, aslında ilginç ve önemli olan algoritmalar ile başa çıkabilirsiniz.

Derleyicinin eski olup olmadığını ve systemçağrıları kullandığını kim umursar ? Windows'unuz değil Linux'unuz varsa kimin umurunda? Profesörler bilmiyor, kesin. Ve gerçekten yapmamalılar. Akademik kurumdaki derslerden profesyonel bir programcı olmayı beklemeyin. Oraya gittiğiniz şey bu değil.

Kullanmanızı beklediği derleyicinin eski olduğu ve işletim sistemi hakkındaki varsayımın anakronist olduğu ve sorunlu olduğu doğrudur. Onu yükseltebilirsiniz ve belki de ele alınacaktır. Ancak kurs endüstri ile uyumsuz olduğu için değil, öğrencilere acil bir güçlük çektiği için. Şimdi eski derleyiciyi bul ve MacBook'unda çalıştır.

Genel olarak, C ++ ve Android öğrenmek için akademik çalışmalar boşa harcanmamalı, orada gerçek Bilgisayar Bilimi şeylerini öğreniyor olmalısınız. Bunun için bir şansın daha olmayacak. Android? Eclipse'yi ADT ile indirin ve benim gibi evde çalışmaya başlayın. Bunun için okula gerek yok.

Üniversitelerden teknik gelişme beklemenin sorun olmadığını düşünüyorum. Özellikle araştırma üniversiteleri değil. Sadece lisans sunan bir yerin daha endüstri hedefli olması gerektiğini, ancak araştırma üniversitelerinin araştırmacı istediği söylenebilir. Profesörler mükemmel programcıları değil, lisansüstü öğrencileri ve doktora adaylarını arıyor. Bu yüzden beklentilerinizi buna göre ayarlamanız gerektiğini düşünüyorum.


3
Yanıtınızla ilgili bir sorunum var: "Genel olarak, C ++ ve Android'i öğrenmek için akademik çalışmalar boşa harcanmamalı, orada gerçek Bilgisayar Bilimi şeylerini öğreniyor olmalısınız." - En azından bir programlama dilini bilmeden, CS şeyler mantıklı değildir ve yanlış bir şekilde uygulamak çok kolaydır.
Izkata

4
@Martin ve izkata - C ++ 'da DOS altında önceki yüzyılın derleyicisini kullanarak programlama yapmak, programlama bilmediğiniz anlamına gelmez. Bu sadece eski araçları kullandığınız anlamına gelir - ancak RB ağaçlarını uygulamanız gerekiyorsa - kimin umurunda? Endüstrinin modası geçmiş, ancak programlar çalışıyor ve yapmaları gerekeni yapıyorlar - bu yeterince iyi.
littleadv

3
@littleadv - OP "okuduğum şeye göre kadim görünüyor" yazdı. bu da bunun eski ve taşınabilir olmadığını öğrenmek için ilgili çalışma kağıtlarından başka bir yere bakması gerektiğini düşündürüyor. Elbette, tüm derleyiciler ekstra standart dışı kütüphanelere sahipse, ancak standart olmayan olduklarını öğretmeden öğretilirseniz, bunun kötü olduğunu düşünüyorum - ve bu eski ve yeni şeyler için ve hatta C için önemlidir. C ++ 03 şimdilik en yaygın ve tam olarak desteklenen standarttır.
Steve314

3
@littleadv - Belki de o zaman katılmamaya karar vermeliyiz. Yine de bir bilgisayar bilimcisinin ayrıntılar hakkında bilgili olması gerektiğini düşünürdüm ve birkaç saniyenin standart olmayan bir şeyin hem bununla tutarlı olduğunu hem de hiçbir şekilde büyük bir zorluğa işaret ettiğini gösteriyor. Bir CS profesörü matematikle karışık kendi ad-hoc notasyonlarını kullandıysa ve bunu belirtmediyse nasıl hissederdiniz? Sonuçta, aynı sorunun başka bir yönü - diğer bilgisayar bilimcilerinin sizi anlayabilmesi. Kod, derleyiciler tarafından olduğu kadar insanlar tarafından da okunur.
Steve314

4
@littleadv - Ben OP conio.h standart söylendi iddia etmedim - Ben standart olmayan söylendi olmayabilir önerdi, ve sonra bile dedi ki "Eğer taşınabilir olmayan hileler olan açık yaparsanız, muhtemelen TAMAM.". Hatta temel bilim öğretildi yolu standart terimleri kullanması, ya da sen eğer gerekir standart dışı terimleri kullanmak, bunların ne anlama tanımlar. Okulumdaki bilim derslerinde, santimetre kullanmak bile kurallara aykırı - SI birimleri değiller. Standart olmayan kütüphaneleri kullanmak benim için farklı değil. Bilgisayar bilimindeki kodun anlamı açık olmalıdır.
Steve314

19

Bilgisayar bilimi, fiziğin marangozluğa ne olduğunu programlamaktır.

Eğer bir marangoz olmak istiyorsanız, fizik okumak bunu yapmaz. İşinize başvurabileceğiniz birçok ilginç şey öğretecek, ancak size iyi bir marangoz olmayı öğretmeyecek. Bunun için marangozluk zanaatını öğrenmek zorunda kalacaksınız.

Benzer şekilde, iyi bir programcı olmak istiyorsanız , programlama zanaatını öğrenmek zorunda kalacaksınız . Ne yazık ki, herhangi bir sertifikanın sertifikalandırılacağı bir kurum bulunmamaktadır. Temel olarak, bu, insanlara bulabileceğiniz her ne yardımcı olursa olsun, kendi başınıza yapmanız gereken bir şeydir. Sizin için bu tekrarlama ve düşünme demektir. Çok fazla kod yazın ve sonra tekrar bakmak için geri gelin. Ayrıca diğer kişilerin kodlarını okumak için zaman ayırın. Açık kaynaklı projelere katılmayı düşünün.

Üniversiteler, programlama için fazla umursamıyor ve önümüzdeki birkaç yıl içinde değişecek ayrıntılar için daha az. Okulunuzda gördüğünüz şey, bazı programlama ortamlarını seçtikleri (kötü bir ortam, ancak bu çok önemli değil) ve şimdi size gösterecekler, böylece size çeşitli programlama tekniklerini öğretebilecekleri bir referans çerçevesi olacaklar. Referans çerçevesinin zayıf olduğu ve dilin bile garip bir seçim olduğu iddia edilebilir. Onların bakış açısından, muhtemelen önemli değil, çünkü oldukça keyfi bir şekilde seçildi.


2
Fizik Mühendisliği ne dersin? Programcılar, mühendislerin binaları, uçakları ve kimyasal süreçleri tasarlamak için fiziği anlamaları gereken şekilde tasarlarken uygulayabilecekleri CS ilkelerini anlamalıdır.
Jay Elston

3
@JayElston: Fizik mühendisliğe, bilgisayar bilimlerinin yazılım mühendisliğine ne olduğunu, analiz, tasarım, planlama, uygulama, KG vb. İçerir. Programlamanın kendisi, materyali daha çok yapmak istediğiniz şeyi yapma sanatıdır, oysa mühendislik aslında ne yapmak istediğinizi bulmaya başlar.
back2dos

Halen profesörlerimin "Mühendislik problemleri çözmek için bilimi uygulama sanatı" sözlerinden birini seviyorum.
Chris O

1
@Chris: Belki de bilim, yeni sorunlar yaratma sanatıdır.
11:19

@JasonTrue: Şey, bilimin daha iyi problemler yaratma sanatı olduğu iddia edilebilir ;)
back2dos

9

'DOS stili' öğrenmenin yanlış bir yanı yok. Eminim buradaki eski zamanlayıcıların birçoğu DOS'ta, hatta daha önceki işletim sistemlerinde, satır tabanlı programlar yazarken başladı ve gayet iyi ayarlandı. Bilgi işlem dünyası o kadar hızlı değişiyor ki hangi kütüphanenin ne için kullanıldığı gibi özelliklere asılmayacağım.

Aslında, bağımlılık enjeksiyonunun ne olduğunu söyleyebilen programcılarla dolu bir dünyaya sahip olmamızın nedeninden şüpheleniyorum , ancak FizzBuzz'a cevap vermek için mücadele etmek , birçok programcının bu çok temel düzeyde fazla zaman harcamamasıdır.

Bu programlamaya bir giriş gibi görünüyor, bu yüzden özünde, endişelenmeyin. Temel bilgileri öğrenin, iyi olacaksınız. Diğer platformlarla ilgileniyorsanız, bunları kendi başınıza keşfedin. Bu programlama hakkında harika bir şey.


5

Bununla nasıl başa çıkabilirsiniz? Programlama e-kitaplarını veya video akışlarını indirin, örnekleri kendiniz deneyin. Profesörlerinize güvenmeyin. Programlama kendi kendine öğrenilir.


1
Programlama piyano çalmak gibidir. Size bir şeylerin nasıl yapılacağını öğretmek için bir ustaya ve bunları iyi yapmak için çok fazla uygulamaya ihtiyacınız var. Dünyaca ünlü piyanistlerin çok az var olduğuna inanıyorum.

7
Ne garip bir benzetme, kesinlikle çok yetenekli otodidak programcıları var.
ocodo

@Slomojo Doğru, birkaç tanesiyle tanıştım. Garip bir cins, bildiklerinde mükemmeller. Zor olan karşılaştıkları sorunların genişliği. Bazen, Bilgisayar Bilimi'nin bir köşesini bildiğinizde, bir sorunun çözümü için çok daha kısa bir yolu vardır ve yine de, bu yetenekli insanlar, bildiği tek yol (lar) da çekiçlemeyi sürdürme eğilimindedir, bu da sonunda kaba kuvvet gibi görünür. Bir örnek olarak, kendi kendine öğretilen "çözmesi zor" bir sorun iki gün içinde bir testle (TCL / TK'de önyükleme!) DFA tarafından çözülmüştür. İki hafta sonra, hala açıklama ile anlamadılar.
Edwin Buck

4

Pek çok üniversitede boktan programlama profesörleri var. Ülkemdeki en iyi yüksekokullardan birine gittim ve programlama konusunda hemen hemen öğrenim gördüm. Sanırım çoğu üniversite böyle iyi programcılar daha iyi ücretli işler (öğretim değil) tercih neden. Küçük bir proje almalı ve kendiniz kodlamaya çalışmalısınız. Bunun gibi birçok forumdan ipucu alabilirsiniz. Bu, uzun vadede öğrenmenin daha iyi bir yolu olabilir.


İyi tavsiye, tabii ki, tamamen katılıyorum. Bu sadece diploma ... :)
Toerndev

@gaidal: Evet! grad okuldan aldığım şey bu - marka adı: P (katıldığımda çok daha fazlasını umuyordum)
Jan S

2
Üniversite, programlamayı öğrenmekle değil, programlama dilleri ve daha genel olarak bilgisayar bilimi kavramlarını öğrenmekle ilgilidir. Üniversitede işletim sistemleri için projemi yapmak zorunda kaldığımda bana söylendi: C'de olacak, kitap kütüphanede olacak, git ve kitabı öğren. Programlama uygulama ile ilgilidir ve size bunu öğretmek üniversitenin görevi değildir.
Giorgio

1
Doğru olan daha iyi ücretli işler hakkında. Üniversitede ders veren bir arkadaşım bir zamanlar şikayet etti: "Onlara nasıl programlanacağını öğretiyoruz ve sonra bizden daha fazla kazanıyorlar, tam tersi olmalı!"
Giorgio

3

Üniversite'nin programlama dillerinin, algoritmaların vb. Soyut kavramlarını öğretmesi ve programlamayı öğrendiğiniz yer olmaması gerektiğini düşünüyorum: programlama çok pratik bir faaliyettir ve bunu sadece yaparak öğrenebilirsiniz.

Çalışmam sırasında Pascal'da programlamanın temellerini öğrendim, sonra C'de bir projem vardı (dili kendimiz öğrenmek zorunda kaldık) ve sonra dil kavramlarını (prosedürel, nesne yönelimli, fonksiyonel, mantık) programlama üzerine bir dersim vardı. . MSDOS'ta, UNIX sisteminde bulunmayan conio.h veya uzak işaretçileriniz olduğu folklordu. Bu öğrencilerin bira üzerinde tartışacağı şeylerdi, dersler sırasında tartıştığınız bir şey değildi, çünkü o kadar önemli değildi. Üniversite öğretimi soyut, genel bilgiye odaklanır ve ayrıntılara girmekten kaçınır: örnekler ve detaylar sadece genel şeyleri göstermek için sunulur.

ASCII'ye karşı Unicode ve MSDOS conio.h kütüphanesine verdiğiniz örnek, her programlama ortamının belirli şeyler yapma ve organize etme yoluna sahip olduğu anlamına gelir. Visual Studio'da C ++ 'da program yaparsanız, bazıları Linux'ta bulunmayan diğer kitaplıkları kullanmanız gerekir. Kurs Windows 7 / Visual Studio'da olsaydı, bazı insanlar bunu Linux / GCC'de yapmanın daha iyi olacağından şikayet edebilirler. Ama IMO, mesele bu değil.

Bu yüzden, ayrıntıların dikkatini dağıtmamaya ve kurs tarafından kapsanan genel kavramlara konsantre olmaya çalışmanız gerektiğini düşünüyorum. Örneğin, çoğu programlama dilinde, konsol G / Ç'yi uygulamak için bir kütüphaneye ihtiyaç duyacağınız ve bir programlama ortamı verildiğinde, sorununuzu eldeki araçlarla çözmeniz gerekecektir. Belki bu sizin için oldukça açık görünüyor ve gerçekten bir şey öğrenmediğiniz izlenimine sahipsiniz, çünkü zaten daha önce biraz bilginiz var (bu olabilir) ama kötü bir kursa katıldığınız izlenimini alamadım.


Teşekkür ederim, o zaman bunun kötü bir yol olduğunu söylemenin yeterli olduğunu düşünmediğinizi aklınızda tutacağım. Bir yan not olarak, Linux'ta olması gerektiği anlamına gelmiyordum, sadece öğrencileri farklılıklar hakkında bilgilendirmek için bir çaba gösterebileceği ve bir standart olduğu anlamına gelmiyordu.
Toerndev

Diğer sistemler hakkında bilgi vermenin iyi bir fikir olacağını kabul ediyorum. Bu aynı zamanda öğretmenin deneyimine de bağlıdır: aşina olmadıkları bir ortam hakkında konuşmaktan rahatsız olabilirler. Örneğin, Windows ve Linux ile evdeyim, ancak MacOS'tan kaçınırdım, çünkü çok güzel bir işletim sistemi olsa bile, hiç kullanmadım. Belki de farklı C ++ ortamları arasında kısa bir karşılaştırma yapıp yapamayacaklarını sorabilirsiniz: neyin farklı olabileceği ve neyin aynı kaldığı hakkında bir fikir edinmek için sadece birkaç örnek. MSDOS ve Linux'ta sizeof ile oynayabilirsiniz.
Giorgio

2

Üniversiteler vakıfları veriyor. Güçlü olduktan sonra, üzerine gökdelenler inşa edebilirsiniz. Üniversite günlerim boyunca BASIC, C ve C ++ öğrendim. Daha sonra Visual C ++ 'da proje yaptığımda tamamen farklı bir dünya olduğuna inanıyordum. Daha sonra Çerçeve ve Diller arasındaki farkı fark ettim.

İstediğiniz bilgi işlem alanının odaklanmış gelişimini sağlayan doğru bir üniversite seçin. Hangi daha sonra kariyerinizde size yardımcı olabilir.


2

Çıktılarla dolu system("");aslında oldukça iyi bir şey! İnsanların bugünlerde bu işlevler hakkında hiçbir şey bilmemeleri beni şaşırttı.

system("pause")ve tüm getX işlevlerinden kurtulursunuz. system("cls")ve yeni bir kod sayfası kaydettiniz. system("mkdir foo")ve 2 sayfa arabellek ayırma, yol bölme, _makepath_ss, 256 yol sınırı, ton hata çıkışı vb. kaydettiniz.

Üstelik kod o kadar basit ki bir maymun bunu anlayacaktır.

 if(!system("mkdir foo"))
     //booo and exit`

Polimorfik sapkınlıklar okulu yasa ile yasaklanması gereken şeydir.

PS: Ayrıca, tüm saygıyla, insanlara istisnalar ve sanal her şeyi İYİ BİR ŞEY olarak öğrettiğini kabul etmekte zorlanıyorum, çünkü hayal edebileceğinizden daha fazla gotchas ve kara mayınları var ve hatta Bjarne Stroustrup bile istisnaları evangelize ediyor gerçekte nükleer bir kara mayını iken, kolay ve güvenli bir şey.

Misra-C ++ ve JSF-C ++ ile ilgili analize bakın. Ve http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Bugün kalan tüm makaleleri bulmak için çok tembelim.

Tüm bu söylenen ile ben c ++ geliştirici ve ben bir sürü özellik ve dil bir bütün olarak tadını çıkarın.


1
Emin değilim deneyimsiz geliştiricileri
gotchas

@deworde: Bir konsolda yazdığınız şeyle aynı, daha az hataya eğilimli ve güvenli hale getirebileceğinizi sanmıyorum.
Kodlayıcı

Evet, ancak bir konsolda yazdığınızda, (örneğin) nerede olduğunuzu, kimi çalıştırdığınızı, ne tür bir makineyle karşılaştığınızı ve en önemlisi NEDEN YAPIYORSUNUZ. Program bunların hiçbirinin farkında olmayabilir ve çalıştırılabilir dosyayı çalıştıran biri çalıştırmadan önce bunları kontrol etmeleri gerektiğini bilemez.
deworde

@deworde: Tam olarak değil, EraseFile komutu hala işlem izinlerini devralır, bu nedenle her iki komutla da karıştırmak aynı derecede kolaydır.
Kodlayıcı

1

Benim önerim gelebilir, ama beni dinle ... Bölüm değiştir.

Akademideki tecrübelerime göre, Bilgisayar Bilimi bölümü bilgisayarları neyin işaretlediğine çok düşük seviyeli bir bakıştı. Bir programın ne olduğunu ve programın arkasındaki bellek ve hesaplamanın temellerini bildiğinizden emin olmak için C ++ 'da temel bir astar ile başladınız ve daha sonra montaj, işletim sistemi kavramları, elektrik mühendisliği, dijital tasarım vb. bu derece ve NVidia veya AMD veya Lockheed ile iş aramak; yeni donanım ürettikleri bir yerde, bu da bu donanımı sürücüleri yazmak ve yazılımı kontrol etmek için yeterince düşük bir seviyede anlayabilen birine ihtiyaç duyuyor.

Üniversitemde Bilgi Sistemlerinin Yönetimi olarak adlandırılan bir çalışma dersi gibi görünüyor. Takip ettiğim kurs bu; Java, VB.NET, C # ve yol boyunca bazı PHP ve diğer web komut dosyalarında programlama öğretti. Ayrıca hesap (CS ile aynı derecede değil), muhasebe, finans, istatistikler, iş iletişimi, OO A&D, veritabanı tasarımı ve sistem analizi gerektiriyordu. BS yerine BBA aldım ve Windows veya Web yazılım geliştiricisi olarak çalışmaya başlamak için temel araçlara sahiptim.

"Bilgisayar Bilimi" bölümünün sizi hazırladığı şey, hangi üniversitenin sunduğuna bağlıdır. Görünüşe göre, eğitiminizden sonra olduğunuz gibi görünmeyen bilgisayarlara çok anakronistik, düşük seviyeli bir bakış elde etmek için erken bir yoldasınız. Sizi üniversiteye bakmaya ve okuldan sonra girmek isteyeceğiniz bilgisayar çalışmalarının türüne daha fazla odaklanan bir ders bulmanızı tavsiye ediyorum.

Ne olursa olsun, eğitim programınız çok basit, "konsol düzeyinde" program yazımında başlayacak. Dilin önemi yok; size öğrettikleri temel prosedürel programlama; bilgisayarın sizi adım adım takip edebileceği yeterince küçük adımlarla nasıl düşünüleceği (çünkü bilgisayar hiçbir şey kabul edilmez ve bir insanın mantıktaki sıçramalarının çoğunu takip edemez). Oradan, nesne yönelimli programlamaya ilerleyeceksiniz (her şeyi yapan uzun bir işleve sahip olmak yerine, gerçek dünyadaki nesnelerin durumunu ve mantığını temsil eden birkaç daha küçük kod "nesnesine" sahip olmak çok daha sürdürülebilir), sonra olay güdümlü programlama ("Bizi arama, seni arayacağız"; programınız temel olarak başlar, işletim sistemine ilk grafik arayüzünüzü kurmasını söyler,


Teşekkür ederim, evet bunu düşüneceğim. Daha sonra değiştirebileceğim yanlış yöne gittiğini düşünüyorsanız, temel dersler evrenler arasında uyumlu olmalıdır.
Toerndev

Bu varsayımlara dikkat edin; Bölümleri CS'den MIS'ye değiştirdim ve daha önce aldığım matematikten hiçbiri transfer edilmedi çünkü işletme okulunun tamamen ayrı bir matematik yolu vardı. İngilizce, bilimler, beşeri bilimler, evet bu aktarıldı.
KeithS

1

Bilgisayar Bilimi dersleri size programlama öğretmez. Bu, CS kursumda yaptığım bazı programlara kıyasla parkta bir yürüyüş.

Bu temel problem, benim deneyim, orada hemen hemen hiçbir yerde olduğunu olmasıdır edecek hiçbir seçim olursa olsun sahip öyleyse, eşdeğer düzeyde programlama öğretmek.


0

Sanırım neyi ve neden çalıştığınız konusunda biraz karışıklık olabilir.

Bir bilgisayar bilimi bilimi programı okuyormuşsunuz gibi görünüyor. Bu, bilgisayarların düşük seviyede nasıl çalıştığına ilişkin temel bilgileri öğrenen minimal deneyime sahip kişilere yöneliktir.

Ayrıca, yarı ciddi veya profesyonel bir programcı olduğunuz da görülmektedir. 10 yıldır program yapıyorsunuz ve 3 dilde rahatınız. En azından bir ekibin parçası olarak çalışacak kadar ne yaptığınızı biliyorsunuz. Bu kursta kendinizi yerinde hissetmiyor musunuz? Diğer öğrenciler de sizin gibi deneyim veya beceri seviyesine sahip mi?

Bu kurstan ne çıkarmak istiyorsun?

Şu 'kağıt parçasından' sonra mısın? Eğer durum buysa, okurken iş bulmaya çalışmayın. İş başvurusu yapın, onlara yetkili bir programcı olduğunuzu ve çalıştığınızı söyleyin, çünkü iş bulmak için kağıda ihtiyacınız vardır. Eğer işe alırsanız o zaman bırakmayı düşünün - profesyonel bir işe sahip olduğunuzda, artık o kağıda ihtiyacınız kalmaz. Normalden daha düşük bir ücreti kabul edin, çünkü öğrenmek için (işte) okulda öğrenmek için ödeme yapmaktan daha iyi ücret alırsınız - ve daha hızlı öğrenirsiniz. Bir veya iki yıl sonra çoğunlukla hız kazanacaksınız ve daha sonra iyi bir ücret artışı isteyebilir veya kendinize başka bir iş bulabilirsiniz, çünkü deneyime sahip olacaksınız.

Yoksa bir şeyler öğrenmeye mi çalışıyorsun? Sonra profesörünüzü yargılamayı bırakın. Unutulmaz bir lise öğretmeni eskiden 'SIT DOWN VE SHUT UP' derdi. Profesörün sizden çok daha fazla deneyime ve bilgiye sahip olması neredeyse garantidir ve ondan çok şey öğrenebilirsiniz. Eğer sizin için çok yavaş gidiyorsa, o zaman önceki öğrenme ve deneyiminize dayanarak bu tanıtım kursları için kredi almaya çalışın.

Ama doğru yolda mısın? Edebiyat profesöründen veya bir tarih profesöründen çok şey öğrenebilirsiniz ... özellikle ilgili değil. Belki 'bilgisayar bilimi' istemezsiniz, bunun yerine daha pratik, 'gerçek dünya' becerileri istersiniz. 'Yazılım mühendisliğini' deneyin. Daha odaklanmış bir kurs için diğer kurumlara bakın.

Tıpkı yeni bir işe başladığınızda olduğu gibi, bir sınıf ya da eğitim kursunu dışarıdan incelemek çok zor olabilir. Sana ne beklediğini vermeyen bir derste gibisin. Seçeneklerinizi yeniden düşünün.


Teşekkür ederim, bunu düşündüm ve bu iki seçenek konusunda çok haklı olduğunu düşünüyorum. İlki benim için daha doğru ve kursların daha ilginç olup olmadığını görmek için beklerken iş arayacağım. O ise Er hızı yakalayabilir ve çalışma yoluyla öğrenmek isteyen beri bilgisayar bilimi üzerine seçti, aslında bir yazılım mühendisliği eğitimi. Belki de bu neden biraz daha 'gerçek dünya becerileri' beklediğimi açıklıyor. :)
Toerndev

Üniversite geçmişimden sadece birkaç açıklama: Programda "programlama 101" in bulunduğu bir ders çalıştım, bu bölüm benim için can sıkıcı bir şekilde sıkıcıydı. Ancak diğer dersler ilginçti (fizik, mekanik, ...), bu yüzden tüm program için geçerli olmayan bir ders sıkıcı olsa ve diğer bölümler için acı çekmeye değer olabilir. Ama bıraktım. Bu arada , kağıdın işimde daha iyi olacağım anlamına gelmese bile bazen kağıdın faydalı olacağını öğrendim (iyi bir işim, iyi bir maaşım var, ... bu yüzden kötü değil ;-))
johannes

0

Bu sorunun yanıtlarının çoğunun hayal kırıklığı yarattığını düşündüm. CS vs Programlama vb. İle ilgili yorgun eski argümana geri döndüler. Öyle olabilir, ama OP'nin olduğu ders de öğretmiyor gibi geliyor bana.

Üniversitede CS yarı zamanlı çalışmadan önce zaten bir programcı olarak çalıştım ve kendim biraz çalıştım. Dikkatlice dolaştım, ama genellikle müfredatı zaman kaybı olarak buldum. Ayrıca onlar zaten alanda mesleki deneyim olmasına rağmen dersleri atlamak izin vermedi.

Deneyimlerime göre profesörlerin önemli bir kısmı oldukça tembel ve eski bir müfredat kullanıyor. Dürüst olmak gerekirse, zamanınızı boşa harcıyormuşsunuz gibi geliyor. Diplomayı tamamlamanın bir iş bulmanıza yardımcı olup olmayacağını soruyorum.

Kursunuzla ilgili bir şeyleri değiştirmek için çok şey yapabileceğinizden şüpheliyim. Ya kendiniz çalışarak tamamlayabilirsiniz. Ya da her şeyi unutun ve bağımsız olarak CS çalışın ve bazı endüstri sertifikaları da yapın.

Ülkenizin iş pazarındaki diplomanın değeri hakkında hiçbir fikrim olmadığını da eklemeliyim. İçeriğe rağmen diplomanın kendisi değerli ise, o zaman biraz eksik olan bir müfredata katlanmak zorunda kalabilirsiniz.


Bunu daha önce görmedim. Birisinin bazı cevaplar hakkında ne hissettiğimi söylediğini gördüğüme sevindim (ilk paragrafınız)! Evet, öğretim oldukça işe yaramaz, artık derslere katılmıyorum, sadece yazmam gereken programları açıyorum. Kendi yolumla yapıyorum (genellikle oldukça kötü, CL'den C ++ 'a geliyor), müfredatta olmayan birçok şeyle karşılaşıyorum ve profesörden ziyade programcı arkadaşlarına danışın. Bu şekilde aslında eğlenceli. Yine de mezun olmadan önce bir iş bulabileceğimi umuyorum.
Toerndev

0

Öğrencilere hitap etmek zorundalar. Çoğu öğrenci program yapamaz. Yani oraya teknik gitmek için zorlanmıyorlar.

Kendi özel araştırma alanları da var, ama bunu öğretmiyorlar. Her neyse, birçok araştırmacı zaten iyi öğretmen değiller, bu yüzden zaten bildiğiniz şeyleri öğretiyorlarsa kendinizi şanslı hissedebilirsiniz!

Her neyse, bilgisayar biliminin ne olduğunu bilmiyorsunuz. Endüstri için neyin pratik olduğu ile ilgili değil.


-6

Standart c ++ 'da ödevlerinizi iade etmenizi (ve daha sonra ısrar etmenizi) isterim. Aksi takdirde ödevleri tamamlayamadığınız için bu tamamen mantıklıdır.

Kötü stil gelince; kaçınılmaz olarak bununla başlayacak. Standart io kütüphanesini düzgün kullanmayı öğrenmek, özellikle şablonlar ve yineleyiciler olmak üzere birkaç gelişmiş c ++ özelliği gerektirir. Bir öğretim üyesinin neden başlamak için çok basit io fonksiyonlarını kullanacağını görebiliyorum. Bununla ilgili sormaktan korkmam, gözlerinde coşku ve biraz ışık gösterir. Okutmanınız, sorunuzu (umarım) erken egzersizlerinizi doğru bir şekilde koyduğunuz gelecekteki bir derste çözebilmelidir.

Yine de bıraktım. C ++ platformdan bağımsız bir dil olsa da, sık sık değildir. Bazı Windows sistem işlevlerini öğrenmek kötü bir şey değildir, özellikle de standart tarafından bunu yapmak için kendinizi eğitirseniz. conio.hDiğer insanların kodlarına bakarken bir noktada karşılaşacaksınız - ve ne yaptığını bilmek güzel.


10
hayır, işi yapmanız için size araç verilir ve bu araçları kullanmak sizin görevinizdir. CP / M çalıştıran 15 yaşındaki bir XT olan bir işiniz varsa, 64 bit Windows 7 kodunuzun da işe yaramayacağını kabul etmelerini talep ediyorsanız, buna en iyi şekilde alışın.
jwenting

2
@Ramhound Bir üniversite pahalı ekipman satın almak zorunda kalmadan (Windows İşletim sistemi gibi) kursu tamamlamayı mümkün kılmalıdır. Önyargılı.
Tom

3
@Tom, Eğer Photoshop öğretiyor olsaydım, Photoshop'u (çok pahalı) almanızı beklerdim ve pahalı olan ders kitapları almanızı beklerdim, bunun nerede farklı olduğunu görmüyorum. Ve bahse girerim, kampüste Windows satın almadan görev için kullanabileceği birçok bilgisayar var (ki CS okuyan herkes muhtemelen her ikisine de sahip olmalı, nereye gideceğinizi asla bilemezsiniz, Microsoft yığınında programlayan insanlar) ürünlerde Linux kullanma eğilimi yoktur.)
HLGEM

3
@Ramhound Profesör neden basitleştirilmiş dos tabanlı IO rutinlerini kullandığını açıkça söylememiş olsa bile, muhtemelen doğru bir tahmin yapabiliriz. Tom'un da belirttiği gibi C ++ 'ın rutinleri nispeten karmaşıktır, bu yüzden detayların gizlenmesi bir giriş seviyesinde mantıksız değildir. * Nix tabanlı bir kitap yerine windows tabanlı bir platforma özgü kütüphane kullanma kararı, çoğu öğrencinin * nix değil windows kullandığını ve daha fazla windows kullanıcısının * nix ile başlamak için mücadele edeceğini varsayar.
Dan Neely

5
@gaidal - kurallar bir nedenle var. Bir yerde çalışmaya başlarsanız ve tescilli kütüphane yerine standart kullanacağınıza karar verirseniz, "standartlar bir nedenden dolayı vardır" - kendinizi çok hızlı bir şekilde işsiz bulacaksınız. Bu kursu bir kodlama standartlarına uyum alıştırması olarak alın. Bunları her zaman sevmeyeceksin.
littleadv
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.