it-swarm-tr.com

C # öğrenimini ilk dil olarak bir hata mı?

Burada okuduğum benzer sorular olduğunu biliyorum, ancak son zamanlarda Joel Spolsky tarafından bu yazıyı okudum:

Programlama deneyimi olmayan parlak bir kişiye nasıl programlanabilirim?

Ve öğrenme şeklim hakkında ve uzun vadede gerçekten zararlı olup olmayacağı hakkında düşünmemi sağladı.

Çeşitli dillerle uğraştım ama C # benim ilk ciddi dilim, "Head First C #" ı okudum ve birkaç proje yarattım. Ama yukarıdaki yazıyı okuduktan sonra, her şeyde yanlış gidebileceğimi biraz cesaret kırıcı buldum, açıkçası Joel'in bana biraz atılmış olan fikrine saygı duyuyorum.

Okuma kodunda tavsiye edildiği gibi "Kod" okumaya başladım ve keyifli olmasına rağmen, oldukça zor oluyor buluyorum. Visual Studio'da "noobish hack'imin" ışıltısını aldığını hissediyorum.

Şimdi hangi yolu seçmem gerektiğinden emin değilim? Geri adım atmalı ve Joel'in tavsiyelerine uymalı ve okumaya başlamalıyım?

Sanırım asıl amacım herkes gibi iyi bir programcı olmaktır, ancak görüşüne saygı duyduğum biri zararlı olduğunu düşündüğünde .NET dilini öğrenerek kötü uygulamalara girmek istemiyorum.

Düşünceler?

26

Çeşitli dillerle uğraştım ama C # benim ilk ciddi dilim, "Head First C #" ı okudum ve birkaç proje yarattım. Ama yukarıdaki yazıyı okuduktan sonra, her şeyde yanlış gidebileceğimi biraz cesaret kırıcı buldum, açıkçası Joel'in bana biraz atılmış olan fikrine saygı duyuyorum.

Joel'in görüşlerine de saygı duyuyorum, ama bunlar sadece: görüşler. C # 'ı başlangıç ​​dili olarak kullanmanın kesinlikle yanlış bir yanı yoktur.

Sana verebileceğim en büyük tavsiye, ya da herhangi bir programlama (Vanilla C'de başlasalar bile!) Yapan herkes durgun olmamalı ve dini olma =. Başladığınız programlama dilini umursamıyorum ne programlama dili ya da bu dilin ne kadar saf ya da dürüst olduğu - bu gün ve yaşta sadece programlama dünyasında oturamazsınız.

Mesela ben gençken PHP3 ile programlamaya başladım. Bazı küçük web uygulamaları ve birkaç web sitesi oluşturdum; Dahi bir programcı olduğumu ve PHP3 ile her şeyi yapabileceğimi düşündüm ve ASP ya da TEMEL.Çocuk, yanılmışım.

Ufkumu genişletip diğer programlama dillerini ve kavramlarını incelemeye başlayana kadar gerçekten bir geliştirici olarak çiçek açmaya başlamamıştım. Lise sırasında bazı RealBASIC ve daha sonra Visual Basic öğrendim. İşletme okulundan sonra, profesyonel bir geliştirici olduğumda, C # ve Javascript'i gerçekten öğrenmeye başladım.

Şimdi, beni burada yanlış anlamayın - Ben değil Tüm İşlemlerin Jack'i olmaya çalıştığını savunuyorum. Kalbimde ve ticarette hala bir PHP programcı. PHP benim ekmek ve tereyağım ve bunu içte ve dışta biliyorum.) benim PHP becerileri sadece PHP yaptıkları şey haline gelmedi.İşte profesyonelce çalışmasına rağmen PHP'den kavramadığım bazı son derece önemli kavramlar.

  • Javascript: Kapanışlar
  • jQuery (evet, ayrı): DOM ve Ajax
  • Visual Basic: Nesneye yönelik programlama
  • C #: Jenerikler ve kapaklar
  • Ruby (on Rails): MVC tasarımının gücü

Devam edebilirim ve günlerce bu sitede de başkaları da olabilir. Her ne kadar bir PHP programcı olsam da, tüm bu harika kavramları benimle her gün yaptığım işe geri getirebildim.

Ne demek istiyorum? C # öğrenin. C # master/olmak - uzun, başarılı bir kariyer olacak ve muhtemelen bazı şaşırtıcı şeyler başaracaksınız. Ama yapma kendini güvercin deliği. Yolculuk yapın ve diğer dilleri, ortamları ve kavramları tadın.

80
Jarrod Nettles

görüşüne saygı duyduğum biri zararlı olduğunu düşünüyorsa.

Bu bana Richard Feynman'ın yer aldığı bir hikayeyi hatırlatıyor. Caltech'teki bir öğrenci seçkin kozmolog Michael Turner'a "önyargılarının" karanlık maddeyi oluşturmak için bir aday olarak bir tür parçacığı tercih ettiğini sordu ve Feynman yakaladı ve "Neden bilmek istiyorsun onun = önyargı? Kendiniz oluşturun! ... Yetkililere dikkat etmeyin, kendiniz düşünün. "

Programcılar hayatın her kesiminden geliyor. Java bugün birçok lise ve kolejde öğretilmektedir, ancak Joel Spolsky okuldayken bile icat edilmiş olmamıştır. “Tek bir gerçek yol” yoktur. SICP gibi bazı programcıların bir noktada karşılaştıkları bazı klasikler vardır, ancak zor ve hızlı bir standart yoktur.Ana şey bir yerden başlamak ve konseptler oluşturmaktır. bir zamanlar şöyle bir şey söyledi:

Kötü programcılar koda odaklanırlar, iyi programcılar algoritmalara odaklanırlar.

C # ile başlamak için iyi bir dil olduğunu düşünüyorum, ancak sizi Visual Studio'ya karşı dikkatli olmanız konusunda uyarıyorum. Bu muazzam bir IDE'dir, ancak bir DropDownList sürükleyip bir GridViewObjectDataSource' a bağlar ve Button denetimi kullanırsanız, DropDownList tabanlı arama, o zaman işin çoğu IDE tarafından yapılır ve gerçekten programlama değil. IDEs araçlarından yararlanın, ancak her zaman kavramlar oluşturmaya ve bilgi geliştirmeye çalışın.

21
BlackJack

Ben sadece bir gencim, ama sonsuza kadar daha deneyimli olanlara tüm alçakgönüllülük ve saygıyla, bu tutumu da almadığımı itiraf etmeliyim.

Bir programcı Joel'in cevabının altına yorum yaptı: " C # yetenekleri için şiddetle tavsiye edilen" programcılar "üzerine başını masaya vurmak zorunda kalan biri olarak = gibi basit şeyler yapın çok iyi belgelenmiş bir temel sınıf uygulayın, c ve c ++ programlarında bellek sızıntılarını bulun " ...

Ama neden C++ uygulamalarında bellek sızıntıları bulmak hiç talep edilmedi C++ bilen biri için basit olmalı? :) Anlamıyorum. Diş hekimi becerilerinin eksikliği nedeniyle bir psikoloğu eleştirmek gibi. Kesinlikle iyi bir programcı değilim, ama bunun C++ bilmediğim için olmadığını hissediyorum - çünkü ben am kullanarak çerçeve ve dilleri yeterince iyi bilmiyorum.

"çok iyi belgelenmiş bir temel sınıf uygulamak (...) gibi basit şeyler yapamaz ya da kendi başına bir problem çözemez ya da ılımlı bir tempoda bile yeni bir fikir öğrenemez"

Tamam, ama - korelasyon nedensellik anlamına gelmez ve genel programlama becerilerinin eksikliğinden - şüphesiz ki - dil tercihlerinin bir sonuç olduğunu varsaymamıza neden olan şey nedir?

Veya C # bir etkisi onların ilk seçim dili, bu konuda?

Diğer akla yatkın açıklamaları görebiliyorum (belki C # sadece moda ve bu yüzden çok acemi çekiyor ... C # ilk dil olan çoğu insan çok uzun programlama yapmıyor hiç ve bu başka bir dilde programlama yapmaktan çok kendi başına bir handikaptır ... vb.).

7
Konrad Morawski

Bana göre, bu diğer makaledeki şeyler elitist güçlülük gibi bir şey kokuyordu. Evet, sık sık SICP gerçekten daha iyi olmak isteyen ciddi geliştiricilere, ancak yalnızca "norm" un ötesine geçmek ve derin öğrenmek isteyenler için büyü. Gerçekten de, yıllarca SICP standarttı MIT birinci sınıf programlama metni; ama, pek çok sağlam programcı hiç bu güzel ama pahalı ve son derece seçici kuruma katılma fırsatı.

Sorunuza cevap olarak ne öneririm ? Sahip olduklarınızla başlayın ve sadece belirli bir dil öğrenmek yerine bir programcı gibi düşünmeyi öğrenin.

Bir C # uygulaması varsa, benim gibi çalışan bir sertlik için mükemmel bir dil olduğunu söyleyebilirim - Java, JavaScript, Python, Ruby, Scala, Scheme ve sahip olduğum birçok dil gibi yıllar içinde öğrendim. Sonunda, eldeki belirli bir iş için doğru dilleri ve araçları seçmeye çalışıyorum ve bu, şapka gibi dilleri değiştirmek anlamına geliyor.

Ruby - Why's Poignant Guide ve Shoes (gibi önerdiğim gibi - başka bir son gönderi ) - Başını Küçük Schemer ve The Seasoned Schemer karşısına vurmak gibi gizemli ve mistik yollar var - SICP . Birçok modern düşünür, daha eski akademik ve "girişimci" şeyleri atlamanızı ve doğrudan JavaScript, JQuery ve HTML5'e dalmanızı sağlar. başlamak için çok fazla zaman kaybetmeyin, sadece birini seçin ve kod alın!

Gerçekçi olarak, bu günlerde çalışan birkaç profesyonelin önce Assembler veya C/C++ öğrenmek için sizi geri göndereceğine inanıyorum. Açıkçası, eğer yaptılarsa, size çok fazla hizmet yapacaklarına inanmıyorum.

Yani, "sahip olduklarınızla başlayın" üzerine biraz süslemek için üç tavsiyem daha var:

  • Size iyi gelen bir programlama dili ve mantıklı görünen ve onlara her şeyi veren bir öğrenme yaklaşımı seçin. Seçtiğiniz dilde okuryazar olun; yönetebildiğiniz kadar iyi kodu okuyun!
  • Ellerinizi hemen klavyenize alın ve öğrendikçe kodlamaya başlayın. Programlama kitaplarınızdaki tüm temel alıştırmaları kendiniz yapın ve parmaklarınızı bulabildiğiniz tüm öğreticileri, gerçekten çalışmasını sağlamak için mutlu bir şekilde tıklatarak uygulayın. Demoların çalışma kodu olması gereken ancak düzeltilmeyen hataları düzeltirken ne kadar beceri kazanacağınıza şaşıracaksınız!
  • Çabalarınızın çoğunu, iyi programcıların sorunlardan nasıl geçtiğini öğrenmek için harcayın. Karmaşık problemleri ve sistemleri nasıl analiz edeceğinizi ve çözeceğinizi, gerçekten anlayana kadar parçalara ayırmayı öğrenin. Daha sonra otomatik çözümleri sentezlemeyi ve tasarlamayı öğrenin, böylece bu gezegende bazı insanlar için bazı görevleri kolaylaştırırlar.

FORTRAN IV ve QBASIC ile başladım ve eğer bunlar beni mahvetmediyse, C # da sana zarar vermez! İyi şanslar ve öğrenirken eğlendiğinizden emin olun!

5
John Tobler

Sorunuzun odağı ve cevapların çoğu C # üzerindedir. Wikipedia adresinden:

C # dili basit, modern, genel amaçlı, nesne yönelimli bir programlama dili olarak tasarlanmıştır.

Sadece buna dayanarak, beyninize uzun vadeli bir zarar vermeden C # 'ı ilk dil olarak öğrenebileceğinizi söylemek güvenli görünüyor. Yine de, yazdı : Joel tüm dili kınadığını sanmıyorum:

Bir kısayol alıp doğrudan öğrenmek istediğiniz şeyi (C # ve ASP.NET ile başlamak gibi) doğrudan öğrenmeye gitmeye çalışır.

Sorun dil değil, kısayollar alıyor. Çoğu zaman, insanlar adım adım eğiticileri izleyerek veya "24 saat içinde her şeyi öğrenir" kitaplarını kullanarak hedeflerine hızlı bir yol izlemeye çalışırlar. Şu satırlarda çok fazla soru olduğunu fark etmeye başlamadan önce Stack Overflow için çok fazla zaman harcamanıza gerek yok: "Hayatımda asla bir kod satırı yazmadım, ancak iPhone'a giriyorum Birisi bana tam olarak ne yapmak istediğimi yapmak için adım adım talimatlar verebilir mi? Teşekkürler! " Ben bu yaklaşımı benimsediğinizi söylemiyorum, ama buna karşı korunmanız gereken bir şey.

Eğer sağlam programlama becerileri geliştirmek istiyorsanız, temel becerileri öğrenerek başlamalısınız. Eğer doğrudan OOP ve GUI uygulamaları vb.) Atlamaya çalışırsanız, muhtemelen bu temelleri kaçırırsınız. Joel'in işaret ettiği kitaplar gerçekten çok iyi. C # Sarı Kitap (PDF), ancak muhtemelen mağazalarda gördüğüm C # kitaplarının çoğundan daha iyi bir giriş olduğu anlaşılıyor.

5
Caleb

Ben bir dil öğrenmek ve onunla sopa ile hangi dilde başlamak gerekir karar daha bir hata olduğunu söyleyebilirim. Elbette daha kolay öğrenebileceğiniz bazı diller vardır, ancak çok kullanacağınız bir dil öğrenmeye başlamak daha iyidir (bir okul ortamında dil seçimi zaten okul tarafından yapılır). Bir dili doğru bir şekilde öğrendikten ve birkaç ay sonra aktif olarak kullandıktan sonra, başka bir programlama diliyle uğraşmalı ve karşılaştırmalısınız.

Visual Basic ve C # arasında geçiş yapabileceğiniz için .NET'te iki ( sort-of) ile farklı programlama dilleri kullanmanız kolaydır. Böylece Visual Basic öğrenebilir ve farkların neler olduğunu görebilirsiniz. Bu seviyede, üç temel programlama yapısı ile temel prosedürel kodlama konusunda yetkin olmalısınız, eğer hepsiyle yaratıcı olabilirseniz (ve değişkenleri nasıl kullanacağınızı biliyorsanız), harika bir programcı olma yolundasınız:

  • Sıra - Kod, birbirini izlediğiniz şekilde izleyen adımların sırasına göre yazılır (bir "atlama", adım adım ve gotos tanımlar)
  • Koşullu - Kodda karar noktaları olabilir (if-ifadelerini, anahtar-durum ifadelerini tanımlar)
  • Döngü/Tekrar - Kod, bazı kararlar verildiğinde tekrarlanabilir (bu, her ikisinin de bir uzantısıdır, for-while-while-loop'ları tanımlar)

İkincil programlama dilinizin en aktif olup olmayacağı önemli değil, sadece programlama dillerinin (özellikle aynı paradigmayı izliyorlarsa) birbirine çok benzediğini ve küçük nüansların aslında uzun bir yol kat ettiğini bilmek yazılım programlamanın nasıl çalıştığını anlamanız için.

Bundan en az yılda bir kez, yeni bir programlama dili öğrenmeye çalışın diğerini takip eder programlama paradigması . Yeni dili tamamen takip etmenize gerek yok, ancak diğer paradigmaları bilmenin bazı faydaları var. Birkaç paradigma vardır ve bazı programlama dilleri birçoğu arasında karışır (C # 'ın aslında aşağıdaki üç alt kümeye sahip olduğuna dikkat edin):

Birçok programlama dilinin kendi deyimlerini ve temel bir API'yi izlediğini öğrenmeniz gereken en önemli şey. Yeni bir dil öğrendiğinizde, bu deyimleri ve API'leri iyi öğrenmeye çalışın ve bir şeyler oluştururken iyi olacaksınız. Bunun iyi bir nedeni programlama problemlerini tasarlama ve çözmede daha iyi olmanızdır. Bir dilde bazı deyimler, ana probleminizdeki bir problemin nasıl çözüleceği hakkında size fikir verebilir.

Ayrıca, en çok kullanacağınız ana dil dışında, diğer programlama dillerini öğrenmeniz için çok iyi bir neden daha olduğunu bilin: İstihdam şansınız çok daha fazla.

5
Spoike

Sanırım, "Hangi dili öğrenmeliyim?" basitçe: iyi bir programcı her dilde çalışabilir.

Eminim bu ifadeye karşı argümanlar var, ama asıl nokta: önce bir dil uzmanı yerine iyi bir programcı olmayı öğrenmek. İnşaatçılar, tam olarak bir arsa üzerine inşa etmek konusunda uzmanlaşmazlar, ticaretlerinin becerilerini öğrenir ve ihtiyaç duydukları arsalara uygularlar.

4
Andy Hunt

Bazen seçim dillerinin kişiliklerimizle çok daha fazla ilgisi olduğundan şüpheleniyorum ve bunlar kablolu olduğumuz şekilde ve pratik veya akademik konularla itiraf etmek istediğimizden çok daha az.

Bununla birlikte, yeni şeyler öğrenmek asla zararlı değildir. Her şeyin bir el kitabı olduğunu fark etmeye başladığınızda, evrimleşmiş veya belki de kırılmış bir beyne (sanırım tüm perspektif meselesi) eşiği geçtiğiniz günü bileceksiniz. Eğer bir yeteneğiniz varsa ve aslında bir programcı olmaktan ziyade yapmakla ilgileniyorsanız, sonuçta gerçekten istediğiniz her şeyi yapabilirsiniz.

En azından Python ve JavaScript ile uğraşın. Gerçekten kod yazabilmek ve IDLE veya sanal alan gibi bir dosya G/Ç erişilebilir konsol ortamında hemen yürütülmesini izlemek kesin bir öğrenme avantajıdır. C # ve Java) hakkında sevmediğim şey, etrafınızda anlamsız sarmalayıcılarla basit bir işlev yazıyor olsanız bile, her şeyin sınıflarla sınırlı olmasını istiyorlar. akranları ya da aşırı kısıtlayıcı bir derleyici mutlu.JS ve Python hakkında sevdiğim bir diğer şey, gerçekten kendi paradigmanızı ayarlamanıza izin vermesidir. m hala temel operatörleri aşırı yükleme bilgeliği hakkında ne düşüneceğinden emin değilim ama eminim ben Python seçeneği izin için seviyorum.

Ayrıca, en çok iş listelemeli birincil dili seçmenin acımasız yalanına düşmeyin. Orta sularda sevdiğiniz şeyi yapan büyük bir balık olmak, her iş aramasını eşleşen bir işlemden daha çok bir piyangoya dönüştüren çoğunlukla berbat bir balık grubundan daha iyidir.

3
Erik Reppen

C # Java gibi önemli bir esneme kadar kötü değil.) Fonksiyonel programlama, genel programlama, deterministik yıkım ve değer türleri, operatör aşırı yüklenmesi gibi birçok kavram için daha iyi desteği var. özellikler elbette çok fazla iş kullanabilir, ancak C++ olmasa bile Java'dan çok daha iyi.

İkinci olarak, Joel'in söylediklerini yanlış okuduğunuzu düşünüyorum. can işaretçiler ve özyineleme konusunda ustalaşırsanız, şu anda hangi dili kullandığınız önemli değildir. En önemli şey, küçük bir unsafe kodu kullanmak, unsafe quicksort veya başka bir şey ve sonra normal C # geri kalanına geri dönün.

Oh, okumaya başlayın :)

3
DeadMG

Benim için üretken olan ilk dil C # idi. Gerçi okul zamanında Foxpro ve biraz da üniversitede C ile uğraşmıştım. C # herkes için oldukça iyi ve çok güzel bir başlangıç ​​noktasıdır. Güçlü yazım, kapsülleme, kalıtım vb.Gibi programlamanın, ister kullansın ya da kullanmasın, daima öğrenmesi gerektiğine inandığım genel temel ilkeleri takip eder. Daha sonra, Python gibi temel programlamanın standardizasyonunu takip etmeyen diğer dillere geçebilirsiniz.

İnsanların C #'ın öğrenme yönüne gerçekten eklemediği diğer ekleme faktörü en iyi IDE gördüğüm herhangi bir dil için kullanılabilirliktir. Eclipse IDE Visual Studio kullandıktan sonra Microsoft'a teşekkür edeceksiniz.

C #, C üzerinde geliştirildiğinden, diğer dilleri önceden öğrenmenize gerek yoktur. On yıl boyunca tüm diller C'nin, hatta Java'nın doğasından evrimleşmiştir.

Yani, karar şudur: C #, gelecekte diğer dilleri hızlı bir şekilde öğrenmenizi sağlayan harika bir başlangıç ​​noktasıdır

2
Pankaj Upadhyay

İlk dil olarak C # öğrenmek, er ya da geç devam edip ikinci bir dil öğrenmeye başladığınız sürece hata değildir. Bu çok daha önemli. İkinci dil C # 'dan biraz farklıysa (javascript veya Ruby bu açıdan Java'dan daha iyi olurdu)) Her dilin artıları ve eksileri vardır ve sizi farklılaştıracak farklılıklar vardır. uzun vadede daha iyi bir programcı.

2
henrik

Önce C # öğrenmek için bu konuda endişelenmeyin. İlk adımınızın sol ayağınızla veya sağ ayağınızla atıldığından endişe etmek benzer. Öncelikle yönetilen bir dili öğrenmek arasındaki tek fark, işaretçileri ve ayrıntılı bellek yönetimini öğrenmek zorunda kaldığınızda gecikmenizdir. Bu aslında sizin lehinize çalışabilir, çünkü C'yi öğrenme zamanı geldiğinde endişeleneceğiniz tek şey bellek yönetimi - kontrol yapılarını, işlev kavramlarını vb. Öğrenmeye çalışırken hokkabazlık yapmayacaksınız ve İşaretçilere ve bellek yönetimine tamamen konsantre olabilme.

Stereotip, o ikinci bölümü hiç yapmayan ve C ve C++ öğrenen ve daha sonra C ve C++ işlerine uygulanan yönetilen dil programcıları olduğu için var.

Bu bir müzik aleti öğrenmek gibidir - birincisi zordur çünkü yazılı müziği okuma mekaniğini ve istediğinizi yapmak için bir enstrüman eklemenin fiziksel mekaniğini öğrenmeye çalışıyorsunuz. Öğrendiğiniz ikinci ve sonraki enstrümanlar için yalnızca bu enstrümanı zaten bildiğinizden farklı kılan şeylere konsantre olabilirsiniz.

1
anon

Hiç şüphesiz acemi için zor. Birkaç isim vermek için vb, javascript, PL/SQL, T-SQL, Uniface ve biraz C # yaptım.

Birisi daha önce Visual Basic'ten nesne yönelimli programlama hakkında bilgi edindikleri ve dürüst olmak gerekirse VB.NET, şimdiye kadar gördüğüm herhangi bir dilin sözdizimini anlamak için en kolay söze sahipti. En iyi özellik, anahtar kelimelerin yakından tarif edilen kavramlarla eşleşmesidir.

örneğin. MyHandler () işlevi myButton.click'i işler

veya Sınıf İnsan memeliler intelligentLifeform uygular

Cidden, acemi olduğunuzda okunabilirlik için söz diziminin başka neye benzemesini istersiniz?

Özellikler ve yöntemler (ve subs ve fonksiyonlar arasında rahatsız edici) ararken VB'de okumak çok daha kolaydır.

Benzer şekilde değişkenleri bildirirken

Dim myString As string - hangi tür ve hangi örnek açıktır

C # büyük/küçük harf duyarlılığı benim için neyin ciddi bir alışkanlık olduğunu teşvik ediyor - sınıf ve örnek için aynı ada sahip biri büyük harf ve diğeri küçük.

örneğin.

İnsan insan

  • volcabulary'de mevcut olanları büyük harfle yeniden kullanmak zorunda olduğunuz kadar az kelime var mı?

human.think'i çağırırsanız, bir sınıfın örneğini karıştırmak ve bir bakışta statik bir yöntem çağırdığınızı düşünmek kolay olurdu. Ve bakışlar genellikle kodu nasıl algıladığımızdır, editör bize neler olduğunu anlatmak için her bir öğenin üzerine fare ile zaman ayıramaz.

C # bazı avantajlara sahip olabilir, ancak başlamak çok daha zordur - yazmayı kurtarsa ​​bile. Bu yüzden her iki dil için de kesinlikle bir yer olmalı.

1
Andy R

Pek çok dil öğrenmenizi tavsiye ettiğim kadar (diğerlerinin önerdiği gibi), öğrendiğiniz (birkaç) dil (ler) bildiğinizden emin olun çok iyi.

Pek çok dil bilmenin riski, bir sorunu çözmek istediğinizde asla hayal kırıklığına neden olan bir dili asla öğrenemeyeceğinizdir.

Döngü yapısını bilmek birçok dilde bilmek eğlencelidir, ancak herhangi birindeki hataların nasıl ele alınacağını bilmiyorsanız işe yaramaz.

1
Erno

Görebildiğim en büyük dezavantaj, Visual Studio ve ilgili araçların çok, çok Güzel olması - intellisense ve kod tamamlama gibi şeyler kolayca koltuk değneği haline gelebilir. Genelde ortamın o kadar güzel ve destekleyici olabileceğini, hack Ruby koduna gitmeniz gerektiğinde biraz kaybolma eğiliminde olduğunuzu iddia ederim.) genellikle linq gibi şeyleri de kaçırırsınız.

0
Wyatt Barnett

C # programlamaya başlamak için gayet iyi.

Ben başka bir şey (Java Merhaba Dünya dışında, bazı temel LOGO şeyler ve Scratch bazı şeyler, ama "Ciddi" hiçbir şey) dabble şansı olmadan başlamak için söylendi budur.

Genel olarak, zor olabilir - sezgisel görünmeyen bir çok şey var ve bunun sınırlamaları var, ancak bence iyi kodlamayı teşvik ediyor ve asıldıktan sonra harika. Yani, size daha fazla güç veriyor ve Python (genellikle önerilen) 'den biraz daha profesyonel ve bu bir dünya yaratacak - C #' dan sonra C++ denemek çok acı verici değildi, ama eğer Python ile başlamış olsaydı, o zaman sadece sözdizimi düzeyinde bile çok büyük bir engel olurdu.

Ayrıca, Mono şeklinde iyi bir çapraz platform desteğine sahiptir (Mono'nun büyük bir anlaşma olmadığını düşünenler için - Unity Game Engine, bir versiyonunda kod yazmanıza izin verir). Oyun komut dosyası veya web tasarımı veya Windows Uygulamaları gibi çoğu şey için oldukça yararlıdır. Tabii ki, bazı diller belirli çizgiler için daha iyi olacaktır, bu yüzden hangi genel yöne gitmeyi planladığınıza bağlı olacaktır - örneğin, web yönünde gidiyorsanız, C # (ASP.NET) kesinlikle bir İyi bir fikir. Oyunlara girmeyi planlıyorsanız, bunun yerine C++ düşünmelisiniz.

Sonunda, Python sadeliği veya Java 'nin arkaik doğası lehine kullanmasanız bile, öğrenmeye değer. Java için çevrim GERÇEKTEN yavaştır) - yeni başlayanların öğrenmesi için çok karmaşık olmasa da, iyi kodlama uygulamaları öğrenirsiniz.

0
Sbspider