Programların öğrenme için geliştireceği öneriler [kapalı]


12

Bu çok basit merhaba dünya uygulamalarının yanı sıra, öğrenmek için geliştirmeyi denemem gereken diğer programları da merak ediyorum. Gelecek yıl üniversiteye giriyorum ve bu ortamda ne tür programlar geliştirileceğini merak ediyorum.

bu gerçekten dile özgü bir şey değil, ama şu anda ne kullandığımı bilmek istiyorsanız

  • Windows: C # / WPF - java / vb etc poly'de okudum ama C #, belki de F # gitmek için yol olduğunu düşünüyorum
  • web: PHP / MySQL, Zend Framework / Doktrini, + HTML / CSS / JS (jQuery) elbette. Google uygulama motorunu da python ile denemek istiyor.

şimdilik düşünüyorum

  • yapılacaklar listeleri
  • api ile entegre uygulamalar. kullandığım twitter / tumblr
  • metin editörü - Şu anda markdown kullanan ve görüntülemek için html dosyaları üreten bir blog editörü geliştirmeye çalışıyorum (blog girişine bağlantı). geliştirmeye başladıktan sonra çok pratik değil. çünkü hiçbir biçimlendirme ve HTML formatında düzenleme yaparken, doğrudan düzenleyemiyorum

  • blog yazılımı (web için)

Yanıtlar:


18

Project Euler'e bir göz atın . Temel programlama becerilerinizi keskinleştirmek için bunun gibi bir şey yok.


2
+1. Project Euler'in avantajı, çözümleri herhangi bir dilde uygulayabilmeniz ve sonra karşılaştırabilmeniz / karşılaştırabilmenizdir.
Thomas Owens

1
+1 - Harika cevap! Beynimiz için
Karthik Sreenivasan

6

Şu anda bir regex ayrıştırıcı / eşleştirici yazıyorum ve bana diğer şeylerin yanı sıra ayrıştırma ve sonlu durum makineleri ve düzenli ifadeler hakkında büyük miktarda öğretiyor . Regex ayrıştırıcısının özellikle yararlı olduğunu düşünmemizin nedeni, regex dilinin küçük olması ve yapabilecekleri ile sınırlı olmasıdır.

Yaptığım başka bir şey Ook için bir tercüman yazmaktı ! basit bir görevdir, ama bir kez daha size bir ton öğretir.


+1 SC Kleene hiçbir sebepten ötürü normal ifadenin mucidi değildi.
ixtmixilix

2

CodePlex.com, C # kullanılarak yapılan birçok açık kaynaklı projeyi listeler. Fikir edinmek için siteye göz atabilirsiniz.


2

TopCoder'e de bakabilirsiniz . Bu site öğrenmek için harika algoritmalara sahiptir ve zaman zaman rekabet ederler. Bu sitenin önemli avantajı, belirli bir sorun için başkalarının kaynak kodunu görebilmeniz ve daha fazla bilgi edinebilmenizdir.

Hatta SE sitelerinde bile CodeGolf'a bakmalısınız .


1

(Bu, bir proje listesi yerine çoğunlukla mata cevabıdır.)

Programı neden yazdığınızı düşünün: Kendi başına faydalı olacak mı yoksa yalnızca bir aracın / API / dilin bir yönünü öğrenmek mi?

İkinci durumda, ortaya çıkan programın olabildiğince kısa olması ve daha sonra referans olarak tutulması için bir fayda vardır.

Önceki durumda, öğrenmeyi neden her bakımdan iyi uygulamaya genişletmiyoruz: bunu sürdürmeniz ve genişletmeniz gerekeceğini varsayın. Bu nedenle, tüm bunları en az bir geliştirici için başka bir API bilmek kadar önemli olduğu için kaynak kontrolü, sorun izleme, yeniden düzenleme, birim testi ... kullanın.


Bir feed entegratörü hakkında:

  • RSS / Atom kaynakları
  • API'sını kullanarak twitter işlemek (ve kısaltmayı bağlantı yapmak)
  • Kaynağa bağlı olarak takılabilir post işlemeye izin verin (örn. Podcast özet akışından mp3 indirme)

(Fikir, aynı paradigmanın farklı uygulamalarını entegre etmeye odaklanmaktır: RSS feed'ine karşılık Twitter API'sının zamanlanmış HTTP alması vs. ... hepsi zaman damgası, kaynak ve içerik içeren bir giriş akışının altındadır.


Teşekkürler. Bence bu düşündüğüm, web hizmetleri ile entegre çizgiler boyunca. Ayrıca abt uygulamaları dilin farklı özelliklerini kullanan farklı uygulamalar düşünüyorum. Örneğin. metin editörü ile, wpf şerit entegre etmeye çalıştım
Jiew Meng

1

Bu tür hobi projelerim üzerinde çok şey öğrendim:

  • Basit oyunlar (Yılan klonu, Tic Tac Toe klonu, vb.)
  • Ekran koruyucular

Bahsetmiyorum - bu tür projeler çalışmak inanılmaz eğlenceli :-).


1

Küçük bir oyun programlayın: eğlenceli ve çok şey öğreniyorsunuz.

Bazı fikirler:

  • Mayın tarama gemisi
  • Tetris
  • Bir kart oyunu
  • Yılan

Ve bittiğinde neden yüksek puanlar içeren bir web sitesi uygulamıyorsunuz ...



0

Spyrograph. Çapı boyunca bir dış halkanın, bir iç diskin ve kalem noktasının boyutlarını belirtin. İç disk dış halkanın iç kısmı boyunca yuvarlanırken kalemin yolunu çizin.

Değiştirici. Paraya Giren Maliyet ve Tutar. Veznedarın değişiklik yapması için en uygun olanı hesaplayın. Bunu çözmenin yavaş ve hızlı bir yolu var. Hızlı yolu bulun.

OO-Yaşam Simülasyonu. Yaşam Algoritması konusuna bakın. Sunumdan mantığı ayırmak için OO tasarımını kullanarak, rastgele başlangıç ​​durumu ve çıkış sonraki adımları yapın. Metin çıktısı ve grafik çıktısı verin.

Misyoner / Cannibals Çözücü, bu ünlü bulmacayı arayın. Arama ağaçlarını kullanarak çözmek için bir program yazın. BFS'yi DFS ile karşılaştırın.

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.