Nasıl daha fazla programlama deneyimi edinebilirim?


9

Üçüncü sınıf bir bilgisayar bilimi öğrencisi olacağım ve önce Head Java, Head First C'yi okudum ve şu anda en çok sevdiğim dil olan C ++ okuyorum, çünkü deneyimi olan insanlar için iyi bir öğretim stili var. QT ile yazılım yapmayı, objektif-C'yi (iphone için) öğrenmeyi veya Effective C ++ okumayı planlıyorum.

Programcı olarak nasıl deneyim kazanabilirim? Açık kaynaklı bir projeye katılma becerim var mı yoksa php, mySQL veya başka bir dil öğrenmem gerekiyor mu? Bazı dersler son derece zor olsa da (teorik bilgisayar bilimi) genel olarak programlama ve bilgisayar bilimini seviyorum. Ayrıca c ++ 'da bir guru olmayı planlıyorum ama bu yakın zamanda olmayacak.


1
Başkalarının kullandığı programlar yazdınız mı? Değilse, sevilen bir aile üyesinin ihtiyacı olan birini yazın ve onun için yararlı hale getirin (birkaç tekrarlama gerektirebilir). Son bölüm gerçek dersin olduğu yerdir.

Carnegie Hall'a nasıl gidilir?
jfrankcarr

1
Bir saniye için bir pislik gibi geleceğim ama ... deneyim - Etkinliklere veya etkinliklere aktif katılım, bilgi veya beceri birikimine yol açar. Programlamaya aktif olarak katılmaya başlayın.
Steven Evers

1
BTW, StackOverflow ve Programcılar arasındaki fark nedir? Kapanış sorularının şekli, Programcıları yalnızca başka bir StackOverflow yapmak mıdır? O zaman amaç nedir - sadece ikisini birleştir. StackOverflow'da yapamadığımız Programcılar hakkında ezoterik sorular sorabiliyorduk.
שגנתינתיא אבישגנת

Yanıtlar:


11

ABC - HER ZAMAN KODLAMA YAPILIR. Gerçekten bu kadar basit. Bir dili tanımanın en sevdiğim yollarından biri, dilin kendisinin bir dilinin alt kümesi için bir oyuncak tercümanı yazmak ya da bu sizin için bir şey değilse, belki bir ışın izleyici ya da önemsiz olmayacak kadar büyük bir şey yazmaktır. ama o kadar büyük değil ki bir ay içinde bitirilemez. Mesele, sizi standart kütüphaneye ve dilin sunduğu veri soyutlama olanaklarına bakmaya zorlayacak bir şey üzerinde çalışmaktır. Bazen proje bazen başarılı olur, ancak sonunda bir dilin güçlü ve zayıf yönlerinin ne olduğunu ve daha fazla öğrenmeye devam etmek isteyip istemediğimi bilmesi için yeterli biliyorum. Dili sevdiğim ortaya çıkarsa, o zaman ilginç bir makale veya blog yazısı okuduğumda, makalede veya blog gönderisinde sunulan bazı fikirleri uyguladığım bir projeye başlamaya çalışıyorum. Bu şekilde her zaman pratik yapıyorum ve yeni fikirler öğreniyorum, böylece bu erdemli bir döngü haline geliyor.

Geçmişte benim için gerçekten iyi çalışan bazı projeler: bir dilin bir alt kümesi için tercüman, ışın izleyici, PEG ayrıştırıcı jeneratör, HTTP başlık ayrıştırıcı, basit yankı istemci / sunucu, otomatik olarak bir kuyruktan tweet göndermek için twitter bot, amazon ürünü fırsatlar aramak için kazıyıcı.


+1 Gerçekten ilginç projelerden bahsettiniz, teşekkürler.
Anthony

8

Kendini On Yılda Programlama bölümünde açıklandığı gibi , sonraki adımları izlemelisiniz:

  • Programlamaya ilgi duyun ve eğlenceli olduğu için biraz yapın. On yıl / 10.000 saatinizi koymaya istekli olmanız için yeterince eğlenceli olduğundan emin olun.

  • Programı . En iyi öğrenme, yaparak öğrenmektir. Daha teknik olarak ifade etmek gerekirse, "belirli bir alandaki bireyler için maksimum performans düzeyine, genişletilmiş deneyimin bir fonksiyonu olarak otomatik olarak ulaşılmaz, ancak iyileştirme konusundaki bilinçli çabaların bir sonucu olarak, son derece deneyimli kişiler tarafından bile performans düzeyi artırılabilir. ." (s. 366) ve "en etkili öğrenme, belirli bireysel, bilgilendirici geri bildirim ve hataların tekrarlanması ve düzeltilmesi için uygun zorluk seviyesine sahip iyi tanımlanmış bir görev gerektirir." (s. 20-21) Pratikte Biliş: Günlük Yaşamda Zihin, Matematik ve Kültür kitabı bu bakış açısı için ilginç bir referanstır.

  • Diğer programcılarla konuşun; diğer programları okuyun . Bu, herhangi bir kitap veya eğitim kursundan daha önemlidir.

  • İsterseniz, bir üniversiteye (veya bir lisansüstü okuluna) dört yıl daha koyun. Bu, kimlik bilgileri gerektiren bazı işlere erişmenizi sağlar ve size alan hakkında daha derin bir anlayış sağlar, ancak okuldan hoşlanmıyorsanız, (bazı özveriyle) kendi başınıza veya işinizde benzer deneyim yaşayabilirsiniz . Her durumda, kitap öğrenme tek başına yeterli olmayacaktır. "Bilgisayar bilimi eğitimi kimseyi uzman bir programcı yapamaz, fırça ve pigment çalışmaktan daha fazla birini uzman ressam yapabilir" diyor The New Hacker's Dictionary'in yazarı Eric Raymond. İşe aldığım en iyi programcılardan birinin sadece lise derecesi vardı; Çok sayıda harika yazılım üretti, kendi haber grubuna sahip ve kendi gece kulübünü satın almak için stok seçeneklerinde yeterince şey yaptı.

  • Diğer programcılar ile projeler üzerinde çalışın . Bazı projelerde en iyi programcı olun; bazılarının en kötüsü ol. En iyi olduğunuzda, bir projeye liderlik etme ve başkalarına vizyonunuzla ilham verme yeteneklerinizi test edersiniz. En kötü olduğunuzda, ustaların ne yaptığını ve ne yapmak istemediklerini öğrenirsiniz (çünkü sizi onlar için yapmanıza neden olurlar).

  • Diğer programcılardan sonra projeler üzerinde çalışın . Başkasının yazdığı bir programı anlayın. Orijinal programcılar ortalıkta olmadığında bunu anlamak ve düzeltmek için gerekenleri görün. Sizden sonra bunları sürdürecekleri kolaylaştırmak için programlarınızı nasıl tasarlayacağınızı düşünün.

  • En az yarım düzine programlama dili öğrenin. Sınıf soyutlamalarını (Java veya C ++ gibi) destekleyen bir dil, işlevsel soyutlamayı destekleyen bir dil (Lisp veya ML gibi), sözdizimsel soyutlamayı (Lisp gibi) destekleyen bir dil (Prolog veya C ++ şablonları gibi) içerir. koroutinleri (Icon veya Scheme gibi) ve paralelliği destekleyen (Sisal gibi) destekler.

  • "Bilgisayar bilimi" nde bir "bilgisayar" olduğunu unutmayın. Bilgisayarınızın bir komutu yürütmesinin, bir kelimeyi bellekten almasını (önbellek kaçırma ile veya önbellek olmadan), ardışık kelimeleri diskten okuma ve diskte yeni bir konum arama işleminin ne kadar sürdüğünü bilin. (Yanıtlar burada.)

  • Bir dil standardizasyon çabasına katılın. ANSI C ++ komitesi olabilir veya yerel kodlama stilinizin 2 veya 4 boşluk girintisi seviyesine sahip olup olmayacağına karar verebilir. Her iki durumda da, bir dilde diğer insanların neyi sevdiğini, ne kadar derin hissettiklerini ve belki de neden böyle hissettiklerini biraz öğrenirsiniz.

  • Dil standartlaştırma çabasını olabildiğince çabuk çıkarmak iyi bir fikirdir.


3

Fonksiyonel programlar yazarak kendinizi eğitmenizi öneririm. Temel bilgilere sahip olduğunuzu düşündüğünüzde daha büyük bir proje alın. Yazılım geliştirme için qt çerçevesini öğrenin ve uygulamaya devam edin. Programlamayı öğrenmenin en iyi yolu aslında kod yazmaktır.

Okumanın da önemli bir rol oynadığını söyleyebilirim, açık kaynak kodlu bir projeye ev sahipliği yapan geliştiricilerden oluşan bir ekip arayabilirsin (github'da veya diğer benzer sitelerde bir tane arayın) çünkü size değerli ekip geliştirme deneyimi sunabilirler.


2

Bazen sourceforge gibi yerler ilk başta biraz göz korkutucu olabilir. Yapacak bir şey bulmak için gerçekten güzel bir yol, projelerin sorun izleyicileri ile trol ve sabitleme sesi gibi bir hata / sorun bulmak.

Bazı küçük ölçekli github projelerinde bu çok daha erişilebilir hale gelir. Körü körüne dolaşmak yerine, kodu kodlamak için etkili bir yönünüz ve amacınız var.


1

Kitaplardaki örnekler veya üniversitedeki ödevler, programlamanın nasıl çalıştığını anlamak için iyi bir başlangıç ​​noktasıdır ve gelecekteki projeleriniz için olasılıkları gösterirler.

Gerçek projeler üzerinde çalışın

Ancak gerçek bir proje deneyimi olmadan, öğrendiklerinizi unutma eğilimindesiniz.

Sorunlar, neler yapabileceğinizi göstermek için fırsatlardır

Ek olarak, gereksinimlerin ne kadar karmaşık olabileceği gerçek bir projedir ve problemleri vurmak zor. Bu Sorunlar, neler yapabileceğinizi göstermek için fırsatlardır. Geliştirmeniz gereken zayıf yönlerinizi görebilirsiniz.


-1

php, mySQL veya başka bir dil öğrenmem gerekiyor mu?

Evet efendim, lütfen dünya çapında web dillerini düşünün. HTML5, CSS3 ve JavaScript.

İşte nedeni:

  1. Öğrenmesi hızlıdır ve uygulanması gittikçe daha zengindir.

  2. Artık sadece web yazmakla kalmıyorlar, işletim sistemi, sunucu ve veritabanı da yazıyorlar.

  3. En önemlisi *

    Şimdi jQuery'nin yaratıcısı John Resig tarafından Computer Science 101'i yeniden tanımlamak için kullanılıyorlar .

Haberciyi vurmayın, sadece han okul akademisine bu bağlantıyı kontrol edin .

c / c ++ / c # tasarım desenleri orada JS'ye aktarılır.

Umarım yardımcı olur.


+1 - Öyle yanlış ki, bu aşağıya indirildi. Bilgi geçerlidir. Bağlantı güvenilir. Kaynak jQuery Genius John Resig - JavaScript ile programlama 101 dersi başlatmak ve işe yarayacak. Khan Academy'ye göz atın. Eğitimi ilerletme potansiyeli için oy verin; en az miktarda. Teşekkür.
Jack Stone
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.