C # ile başlamak gerektiğini bir nedeni var mı

19 Cevap

Ben web geliştirme öğrenme için bir konsantrasyon dil olarak C # ve. Fileye doğru eğilerek düşünüyorum. Ben iyi bir programlama temellerini öğrenmek istiyorum ve ben hemen hemen herşey baktım. Ben indirdim ettik dört C #, Python, Ruby ve PHP olmuş. Uzak C # uzak kalmak için (ve ben maliyet sorunu gerçekten benim yalnız geliştirici durum için geçerli olacağını sanmıyorum ama tamamen yanlış olabilir) bir nedeni var mı. Herhangi bir düşünce?

I realize that these are all great languages so I'm not trying to ask which is the best overall. However, would Ruby be a viable alternative for a first language or does it have too much "magic under the hood" coupled with Rails, and unorthodox methodologies? I do like what I've seen with the language.

19 Cevap

Web geliştirme için C # ile giderseniz, web teknolojisi ile deneyimine bağlı olarak, yürekten ASP.NET Web Forms önce ASP.NET MVC ile başlayan tavsiye ederim.

ASP.NET Web Forms ASP.NET uygulamaları bina özgün tarzı ve detayları soyut bir sürü çalışır. Bu başlık (post verileri, devlet yönetimi) altında neler oluyor farkında olmadan uygulamaları oluşturmanıza olanak verir. Eğer ({[) (0]} gibi) daha karmaşık senaryolar içine almak benim görüşüme göre, bu soyutlamalar kolay şeyler yapma ilk "kaçak" başlar rağmen.

ASP.NET MVC, diğer taraftan daha kolay hala üretken tutarken bir sürü "metale yakın" olan web siteleri oluşturmak için yapar. Eğer çıkan HTML üzerinde mutlak kontrol istiyorsanız ve çerezleri, form etiketleri, yazı ve sorgu dizesi veri gibi şeyler korkuyor değilseniz, o zaman çok daha fazla ASP.NET MVC zevk olabilir.

Tabii ki her iki bilmek yararlı olacaktır. Ama şimdi başlıyor eğer, muhtemelen MVC ile başlar ve Formlar (o ne kadar kötü olduğunu fark ve :) geri hareket) hareket ediyorum.

Bu flamewar sonuçlanması olasıdır ama ben C # Web Geliştirme ile başlamak için oldukça iyi bir dil olduğunu düşünüyorum.

Bu tam özellikli bir nesne yönelimli bir dil ve statik olarak yazılan ve derlenmiştir. Çok iyi belgelenmiş ve büyük bir geliştirici topluluğuna sahiptir oluyor.

Kesinlikle Linux / Apache üzerinde çalıştırmak zorunda ve Mono kullanmak istemiyorsanız, bu C # kullanmak için bir neden olacaktır. Bunun dışında, özellikle uzak WebForms modelinden hareket sağlar ASP.NET MVC ile değil, zorlayıcı bir neden yoktur sanmıyorum.

Bu WebForms mutlaka kötü olduğunu söylemek ancak diğer web geliştirme platformları doğasında olmayan soyutlamaları tanıttı gibi bazı WebForms itiraz olabilir değildir.

Hayır "her yerinden en iyi dil" vardır. Çeşitli araçlar vardır bunu niçin yapılmış amaç için bir aracı kullanmak, o.

Since your question is "why not learn C#", derim:

  • Diğer işletim sistemi ile çalışacak planlıyorsanız sonra Windows (Mono karşılaştırmak olamaz).
  • Eğer bir env ya da insanlar değil, net aileler (örneğin: banka, bilim adamları) ile çalışır.
  • Eğer env veya başka iyi teknoloji konusunda uzman olan kişilerle çalışıyorsanız (iyi bir ustanın kullanımını hafife asla).
  • Free Software MS ürünü kullanırken buna değmez o kadar önemli düşünüyorsanız.
  • MS Visual Studio gibi değilse (iyi bir IDE olmadan c # çalışan bir ağrı).
  • Sen. Net (örneğin gömülü cihazlar, komut dosyası, gerçek zamanlı, hata toleranslı sistemi, AI, vb) için uygun olmayan bir şey programlamayı planlıyorsanız.
  • Eğer bir web dev vardır ve Windows Server Lisansı göze alamaz. Eğer
  • Basit fonksiyonları ve hızlı ve kirli komut dahil olmak üzere çok temel, ile programlama öğrenmek istiyorum.

Şimdi, PHP, Python, Java ve C # programlama. Python seçim benim dilidir, ama c # gerçekten beni baştan ilk MS programlama aracıdır: temiz ve verimli. Gerçekten, bu din meselesi, size ne yapmak istediğinizi değil.

SİZİN seçim yapmak.

Söylenir, C # berbat ve Python kayalar.

Ben sözdizimi temiz ve genişletilebilir var, C # oldukça tam bir dildir katılıyorum. Orada zaten mevcut web kaynağı büyük miktarda bulunuyor, ancak ve büyük bir ama, bu etkili bir platform olarak windows sizi bağlar. Web için özellikle de önemli bir husustur bu. Masaüstü pencerelerin üzerine kral, ancak web sunucuları pazarı için neredeyse o kadar baskın değil.

Eğer web üzerinde zengin medya bakıyoruz eğer başka bir yan konu, Flash ve / veya Silverlight düşünmek zorundayız. C # giderseniz o zaman farklı bir dili öğrenme olmadan Silverlight kullanarak someway demektir.

C # öğrenme dezavantajı özel bir platform ve yazılım yığını sizi bağlar olduğunu. Şimdi, C # ve. Net çok uygulanması iyi bir iş yok Mono, ancak birincil ve en eksiksiz uygulanması Microsoft'un olmayan ücretsiz hangi.

Ben Ruby veya Python ile ilgili teknik meziyetleri bulunuyor tartışmaya yeterince C # kullanmamışlardır. Ben kullanabilir ve hatta geri özgür yazılım katkıda öğrenme özgür yazılım sağlar (başka uzunluğunda tartışılan), diğer faydaları yanında, oldukça eğitici olabilir ki, diyebilirim.

Maliyeti hakkında endişe etmeyin. Derleyici Fx SDK kalanı ile birlikte, kullanmak için ücretsiz, ve hatta download Visual Studio for free.

c #, çünkü başlamak için iyi bir dildir:

  1. Bu çok iyi ve çok temiz bir dildir
  2. Bu mükemmel bir kütüphane (. NET framework) sahiptir. Bu bir dil seçerken dikkat edilmesi gereken en önemli şeylerden biridir.
  3. Bu çok popüler, her zaman eden arıyoruz cevap bulmak mümkün olacak.
  4. Eğer c # biliyorsanız, hemen hemen VB.NET biliyorum.
  5. c # Java sözdizimsel benzer. Öğrenme c # Java kütüphanelerini öğretmek değil, ancak Java kampa girmek istiyorsanız o ölçüde öğrenme eğrisi azaltacaktır.
  6. c # c + + sözdizimsel benzer. Yine, farklı bir kütüphanesi kullanır ve c aksine + + bellek yönetimi olsun; Eğer c + + ile oynamaya karar verirseniz, ancak öğrenme eğrisi biraz azaltılmalıdır.

Web gelince ...

ASP.NET webforms sizin için sihirli bir sürü yok. (Sadece serbest) ASP.NET MVC sizin için neredeyse hiçbir büyü yapar. Öğrenme için, MVC iyi bir seçimdir.

C # kullanmak için harika bir dildir. Örneğin web ve masaüstü uygulamaları ile değil, bunu kullanıyor beri kodu sunucu ve müşterilerine teslim çıkışında çalıştırılan beri Ve, çoklu-platform olma konusunda endişelenmenize gerek yok. Söyledi ile, (orada tam olarak en güncel yazılımı olmayan) (bazen biraz daha pahalı olabilir) Windows hosting bulmak veya mono kullanmak zorunda olacak. Olumsuzlukları olsa da, ekspres baskısının bir kopyasını kapmak ve gitmek için az!

Ben proje yatay ölçek, denge ve hatta coğrafi olarak dağıtılmış sunucular için yüklemek için daha fazla sunucu eklemek gerekiyor yani eğer, dağıtım maliyeti, farklı bir şey olabileceğini düşünüyorum. Genellikle hosting pencereleri (hatta alev savaşlar nedenleri dikkate alınmadan) linux biraz daha fazla çalışacaktır.

C # web geliştirme yapıyorsun başlangıç ​​için gayet iyi. Ancak, web geliştirme ile programlamaya başlamak öneririz. Web geliştirme hakkı elde etmek zordur. Küçük komut satırı şeyler yol daha zor. Ben komut satırı için bazı iyi bir deneyim programlama almak, ve sonra GUI kadar taşıyın ve sonra web üzerinde taşımanızı öneririz. Web hakkında endişelenmenize gerek şeyler bir sürü vardır. Sen 3 dil (HTML, JS, C # (veya buradan sunucu tarafı dil insert)) bilmek zorunda. Ayrıca tüm tarayıcı tuhaflıklar ve şeyler hakkında endişelenmenize gerek. Ve hatta veritabanlarına girmeden bulunuyor. Genellikle çoğu web uygulamalarında kullanılan, ancak solucanlar bir bütün diğer kutu açılır Hangi.

Kadar tüm cevapları göz önüne alındığında, ben bahsettiğim dört dilde bakmak düşündüm.

Ben PHP gelişme bir çok şey, ve ne yazık ki bunu yapmaya devam ettik, ben (o birkaç büyük unsurları vardı gerçi) PHP büyük bir dil asla olduğunu düşünüyorum ve bu gün onu alıp çok nokta yok. Içine almak son derece kolay kalır ama ben genel olarak, PHP bir "kötü bir alışkanlık" olduğunu düşünüyorum.

Python büyük bir dildir, ama benim için, Ruby Python biraz daha fazladır ve hepsi bu. Şahsen ben Ruby için giderdim.

C # da büyük bir dildir, ama güven ile bir şey söylemek için yeterince C # kullanılan değil iken, ben Ruby daha iyi bir seçim olduğunu hissediyorum.

Uzak C # uzak kalmak için özellikle bir sebep yok. Bu gibi herhangi bir dil. Stackoverflow örneğin kullanır, bu yüzden başarılı bir web sitesi üzerinde çalışıyor, ve bunu işler programlama alabilirsiniz.

Bir hobi olarak ya da kendi sınırlı bütçe dışı programlama eğer özel bir şey, bir göz olurdu, ya da derleyici / dil gelişimine katkıda bulunmak istedim. Ben bu iki durumun da tahmin ediyorum. (Edit: as others have pointed out, open source environments for C# exist.)

Bu bir kaç şey bağlıdır. C # ve. Net doldurmak ve inci araçlar gerçekten ... (Burada söz Java! Java geliştirici complared) çok kolay, ancak Windows Hosting (Ruby, Python ve PHP dahil olan) LAMBASI vs pahalı olmasıdır.

Benim için tüm kullanmak istediğiniz aracı bağlıdır. Vb web hizmetleri için C # kullanmak ama kolay beri basit bir web sitesi PHP olacaktır.

Burada ayrıca Güney Afrika vb alot daha fazla C # iş ve pek PHP olsun ... senin yerin iş piyasasında bağlıdır Off Tabii ki bir serbest iş bulmak için mücadele edecek eğer.

Benim için Ruby yine benim kendi kişi şeyler için iyi ama burada herhangi bir Ruby iş alamadım.

Benim tavsiyem? Kendiniz için farklılıkları öğrenin. Bunlardan ikisi ile Çal etrafında. Aklınızda bir proje varsa, onları bunun için bir prototip yazmak. Sen her zaman başka başka insanların önyargıları insafına olacak.

Raylar üzerinde ASP.net (C #) ve Ruby yüksek profilli sitelerinde kullanılır, bu yüzden bir biriyle çok yanlış gidemem. Ben de sizinle Python programlama denemek düşündürmektedir django? Ben web programlama için tercih etme eğiliminde buydu.

Ben bir C #. Net geliştirici yaşıyorum ve ben harika olduğunu düşünüyorum, ama ben Asp.Net WebForms bir tehlike vurgulamak gerekir. Bu diğer web çerçeveler çoğunluğunun aksine ve kapakları altında sihirli bir LOT yapar. Diğerleri söylediler ASP.Net MVC muhtemelen diğer web çerçeveler (örneğin Rayları) ile daha inline. Web Formlar web geliştirici olmak istiyorsanız bilmeniz gerek bitireceğiz uzak webdev somun ve cıvata bir sürü soyutlar. Yani evet C # harika ama ben MVC ile başlamak ve daha sonra muhtemelen web formları bakmak istiyorum. Ayrıca diğer dillerde ve çerçeveler bakarak çok öğrenmek için bir şeyler her zaman vardır teşvik edilmektedir.

Ticari olarak bir C # geliştirici duyuyorum. Ben C # seviyorum. C # büyük güçlü yazılmış bir dildir. Resharper yüklü ben hızlı bir şekilde kod benim fikir oluşturmak ve benim iradesine esnek olabilir.

Ben her akşam eve gittiğimde Ruby kullanın. Ben hiçbir üstlenmeden desteği (snif.) sahip olsa da ben çok daha verimli Ruby C # daha duyuyorum bulabilirsiniz.

Ben birkaç yıl için büyük bir ASP.Net uygulama yazma çalıştı. Biz model görünümü detangle denemek için MVC uygulanmaktadır. Onunla çalışmak değil, çerçeve savaşıyordu gibi her zaman hissettim. Web uygulaması yapmak için son. Net çerçeveler Raylar dayanmaktadır ... gerisinde yıl sadece bir çift. Ben dili seviyorum. Ben CLR seviyorum. Ben. Net çok düşkün değilim.

Ben yakut topluluğu dost ve canlı olarak bulabilirsiniz. Raylar açık kaynak topluluğu öğreticiler ve kolay hız kalkarken ve birlikte basit uygulama koyarak yapmak eklentileri yükler üretir.

(Kadarıyla öğrenmek için bir dil seçmek gibi) Başka bir şey düşünmek Ruby nesne yönelimli bir dil olmasıdır. Hatta sınıflar nesnelerdir. C # Sınıf Odaklı dil, yani. size ilk kez bir sınıf tanımlamak .. nesneleri oluşturmak için bir yol sağlar. (Tamamen doğru değil .. Eğer CodeDOM bellek kullanarak derlemeler oluşturabilir .. ama bu hiçbir şekilde kolaydır).

Bu ince bir nokta gibi görünebilir, ama bir fark var .. ve yakut gibi bir OO dil deneyimi almak ya smalltalk kadar ne olduğunu belli değil. Eğer zamanı vs de işlevsellik karıştırılarak bina nesnelerin özgürlüğü hissettim sonra tüm 'iş çevresinde size # yok C yapmak zorunda olduğunu bulmak. Arayüzleri güvenlik ağı olan değil ilk başta korkutucu gibi görünüyor yapar.

Tüm, ben yakut öğrenmek istiyorum ..

  • Eğer programlamaya yeni iseniz (tamamen) I http://pine.fm/LearnToProgram/ ile başlamak istiyorum
  • Sonra BDD (RSpec) öğrenecek ve test kısa sürede enfekte olsun.
  • Sonra raylar öğreticiler tüketmek istiyorum ve gözlerimi attı kadar ekran atmalarını

Tek sorun .. Eğer yakut ile başlarsanız daha sonra C #, kendinizi her zaman "Aaaaagh! Bu yakut yapmak için çok kolay olurdu" gidiyor bulacaksınız gidin. Ben biliyorum.

Gerçekten size ulaşmak için çalışıyoruz ne bağlıdır. Ben hem programlayabilir ve programlama bir kariyer yapmak için çalışıyoruz acımasızca dürüst olmak gerekirse, ben. NET programlama için iki katı kadar ödeme yapılır. Ben PHP dev işi müşterilerin türleri (PHP sık sık bazı $ $ $ tasarruf göre seçilir) bir sürü ödemek tip değildir. . NET çok daha yerleşmiş büyük şirketler gibi görünüyor.

Sadece benim gözlem ...

Gerçekten "şeytani Microsoft" karşı kendilerini teşkil eden toplumsal grupları (ve hatta coğrafi bölgelerdeki) istenmeyen olacağını dışında hiçbir dezavantajları.

Dil (daha iyi. NET platformu) oldukça iyidir. Bir önemli şey çok aktif bazı insanlar sorun uydurarak neden geliştirilmektedir olmasıdır. Ama ben daha çok yıl süren durgunluk kıyasla hızlı bir gelişme olurdu.

Bir teknoloji yığını olarak tercih Bölgenizde ne işverenler kontrol düşünebilirsiniz.

Lisans göz önüne alındığında aşağıdaki düşünebilirsiniz maliyeti: küçük bir site ise ücretsiz Visual Studio Express / SQL Server Express'i kullanabilirsiniz ve yeterli olacaktır. Eğer bazı önemli ağır insan ticaretine proje ile geldi ise muhtemelen gelir yapmak ve lisanslama maliyetlerini karşılamak için bir yol bulmak olacaktır.

C # öğrenme 2009 yılında büyük.

Ben profesyonel dünya girdiğinde Way geri gün içinde, dil manzara çok farklı oldu. Ben C ve Modula 3 (Pascal yedek dili) profesyonelce kodlanmış.

Benim açımdan zamanla değiştirmek için teknik manzara için plan ve profesyonel kariyer gelişimi bunun için planı olduğunu ifade etti.

Çoklu platformları Öğrenme Bunu gerçekleştirmek için harika bir yoldur. Örneğin, birincil beceri olarak C # /. NET olabilir, ama aynı zamanda JAVA ile çalışır. Yeni bir platform ortaya çıktığında, sizin geçiş veya yedekleme birikiminiz olarak ekleyebilirsiniz.