Programcılara zaman harcamak olabilir mi? S veya Yığın Taşması yeni başlayanlar için iyi programlama kitaplarının yerini alabilir mi? [kapalı]


44

Programcılara zaman harcamak (ve aktif olarak katılmak). SO ve Yığın Taşması, kod tamamlama 2 (okuma listelerimde bir sonraki olur) gibi bir kitabı okumak için harcadığım zamana yakın olmama ne kadar yakın, programlama becerilerimi geliştirmeme yardımcı olabilir.

Tamam, programlama ile başlayan birisinin bu sorunun cevabı olabilir düz bir hayır olabilir, ama bu soruyu şunu eklemek isterim ki, kişi programlama dillerine aşina ancak geliştirmek istediği zaman bağlamda soruyorum. onun programlama becerileri. SO'da bu soruyu okuyordum ve bu kitap başkaları tarafından da önerildi ( Jeff ve Joel dahil ).

Daha açık olmak gerekirse, ben C, Java, Python, vb. Programlama yapsam da eklerdim ama kodlama becerilerimden memnun değilim ve CC2 incelemesini okumaktan hala çok daha fazla geliştirmem gerektiğini fark ettim. .

Bu yüzden, temel olarak programlama becerilerini geliştirmek için benim için en iyi yolun ne olduğunu bilmek istiyorum - burada / SO'da daha fazla zaman harcamak veya CC2'ye devam etmek ve zamanın geldiği zaman ve buraya gelmek olabilir.



1
Yeni başlayan bir programcı için kesinlikle çok zor.
surfasb

Yanıtlar:


102

Hayır, bir alternatif değil , mükemmel bir tamamlayıcıdır . İkisinin bir kombinasyonunun çok fazla güç tuttuğunu hissediyorum.

Neden iyi bir ders size kitap okumaktan daha fazlasını öğretiyor? Etkileşim ve soru sorma yeteneği.

Sadece bir kitap okuyarak, cevap bulamadığınız bazı sorular ortaya çıkabilir. Bu soruları burada arayın veya daha önce görüşülüp konuşmadıklarını sorun.


Mükemmel bir tamamlayıcı için +1. SE ya da SO buralarda olsaydı sadece seksenlerin benim için nasıl olacağını hayal edebiliyorum. onlar harika kaynaklar.
Michael Riley - AKA Gunny 10:11

1
Mükemmel bir tamamlayıcı için mükemmel bir iltifat olarak +1. Sadece "gerçek dünya" sorularını okumak ve cevaplamaya çalışmak (ya da mevcut cevapların çözümlerini çoğaltmak) beceri, bilgi ve sezgiyi artırmak için harika mini katalardır
Dave Newton

Eğer bir sorun varsa, kolayca anlaşılabilir ve erişilebilir bir kanalda problemleri ve çözümleri ifade etme yeteneği, iletişim becerilerinizi geliştirmek üzerine geliştirici olarak yeteneğinizi geliştirir.
surfasb

Mükemmel bir iltifat için +1 (tekrar). Her gün P.SE okurum. Her zaman tüm cevapları okumaz, ancak soruların çoğunu ve en iyi cevapları okurum. Bu, başka türlü karşılaşamayacağınız alandaki şeyler hakkında düşünmek için harika bir yoldur. Bazen Soru-Cevap bölümünde doğrudan yaptığım şeye değil, aslında işe yarayacak bir şey görüyorum.
Andy Hunt,

12

(Şu anda) 1 yıl ve 10 aydır StackOverflow üyesiyim. Bu süre zarfında sanat disiplinli bir öğrencisi oldum: mimarlığın, kalıpların, ayrıştırmanın, birim testin ve listenin farkında olabilirdi ... ama SO rolünü oynadı ???

İlk önce acil sorularıma cevap verdi. Ancak SO'yu keşfetmeye başladığımda, çok kötü bir programcı olduğumu keşfettim. Mesleğimde zanaatkar olmak isteyenlere kitap aldım ... ama C # Unleashed, Learn C # Programlama ya da ihtiyacım olan diğer alt standart acemi metinleri değildi. Eksik bulduğum beceri alanlarını hedef alan doğru türde kitaplar satın aldım . Elbette, SO uzmanlarının önerilerini görmek için zaman ayırdım.

İkincisi, SO bana (itibarla temsil edilen) gerçekte ne yaptıklarını bilenlerden (sözdizimsel ve felsefi) öğrenmeye devam etmek için bir yer verdi. SO, CodeReview ve Programcılar hakkında bir kitaptan alamayacağınız belirli bir içgörü var.

Açıkçası, SO kitapların veya diğer tüm web kaynaklarının yerini alamaz (MSDN ve SO'yu tek bir içerik kaynağında birleştirebilseydim ...); bunun yerine, SO bu diğer kaynakları tamamlar. Bununla birlikte, en iyi öğretmen deneyim olmaya devam etmektedir .


11

Programlama becerilerini geliştirmem için en iyi yol nedir?

Daha fazla programlama. Kitap okumak ve web sayfaları ikincildir.

Yaparak en iyisini öğrenirsiniz.


17
Evet ve hayır. Daha fazlasını yapmadan daha fazlasını yapabilirsiniz. Her yıl belli bir dilde programlayabilir ve yeni bir şey öğrenemem. Okumak ve okul size “konfor bölgesinin” dışında bir şeyler öğretir. Aşağı oy için yeterli değil, ama yine de iyi bir yorum imo.
WernerCD

1
Gerçek şu ki, öğrenmeden çok programlama yapıyordum. Böylece PHP'yi nesneler bilmeden veya bir çerçeve kullanmadan web siteleri yaptım.
Koddan

@ Werner — çok doğru. "Yeni bir şeyler öğrenmek için ideal bir şekilde yeni bir şey öğrenmek için inşa etmek istediğiniz bir şey bulmak ve inşa etmek" anlamında "daha fazla program" demek istedim
Humphrey Bogart

Stajyer olduğum zaman, iş yerindeki "öğretmen" in bazen bize programlama ödevlerini vereceğini ve bunu yaparak en iyisini öğrenmemizi beklediğini hatırlıyorum. Sorun şuydu: Sorun her neyse, henüz henüz o seviyede değildik. Biri ona bir soru sorduğunda, "Ah, bu çok kolay! Bunu çözmen gerek. Bu şekilde en iyisini öğrenmelisin." Birkaç saat geçtikten sonra, belgelere göz atarak, bir şeyler
denedik

... basitçe çözmemiz gereken bilginin bize verilmediği bir şey olurdu . Gerekli bilgiyi bulmak, zamanımız olmadığında ve bazen bilginin bize ya da genel kamuya açık olmadığı durumlarda, bütün hafta veya daha uzun sürebilirdi. Bu yüzden, söylemesi yeterliyse, talimatlar çok önemlidir ve basitçe birine kendi başlarına bir şeyleri anlatmalarını söylemek, ne zaman ve ne zaman hazır olduklarına ve sadece o seviyeye hazır olduklarında iyidir .
Panzercrisis

5

Öğrenme bazı malzemelere ihtiyaç duyar:

  1. Öğrenen (tabii ki sizsiniz)
  2. Zaman (yönetmek ve adamak gerekir)
  3. Kaynaklar (hangi SE sitelerinin sadece küçük bir kısmıdır)

İyi bir öğrenici misin? Öğrenmeye yeterince zaman harcıyor musun? Bu 2 sorunun cevabı evet ise , o zaman neredeyse herhangi bir kaynaktan öğrenebilecek kadar potansiyeliniz var.

Ama sorunuza cevap vermek için, evet, şahsen SE sitelerinden çok şey öğrendim. IMHO, tek öğrenim kaynağınız olmamaları gerektiği gibi faydalıdırlar.


5

SO ve P.SE'nin diğer kitapları okurken ya da kendinize kod yazarken önermediği iki şey: test etme ve öğretme. Sadece kör olarak gibi sorular sorarsanız

Bu neden derlenmiyor

wall
of
code
100
lines
long

Birisi “33 satırında virgülün noktalı virgül olması gerektiğini” söylüyor ve cevabı kabul edip devam ediyor ve sonsuza dek aynı soruları sormaya devam ediyorsun, o zaman düzelmeyebilirsin.

ANCAK, başkalarının sorularını okuyorsanız, cevabı düşünürseniz, hangi cevapların geldiğini görmek için izlerseniz ve bildiklerinizle nasıl karşılaştırdıklarını görürseniz, bu sizi gerçekten geliştirecektir. En sevdiğiniz düzenleyiciye bir kod yazarsanız ve cevabın ne olduğunu görmek için birkaç şey denerseniz, bu sizi gerçekten iyileştirir. Ve kavramları açıklamaya çalışmaya başladığınızda (ve insanlar orada ne söylediğinizi açıklığa kavuşturmak için bekliyorlar) bu sizi de iyileştirir.

Yaklaşık 30 yıl boyunca, hiçbir zaman bir konuyu asla öğrenemediğimi keşfettim, ne zaman bildiğime inanarak, öğretmeye başladım. Bana göre bu * .se sitelerinin geliştirici olarak yeteneklerime katkısı. Artı, sadece basit bir gerçeği bilmek istediğimde, bakmak (veya bazen sormak için) bir numaralı yerim.


3

Programlama becerileriniz web sitelerini veya kitapları okuyarak değil, tekrarlayarak da en iyisidir.

  1. güncel bilgilere dayanarak kod yazabilir
  2. sonucu değerlendir
  3. ne yapılacağını ve ne yapılmayacağını değerlendirmeden öğrenirler.
  4. 1’e git

Pratik yapmak mükemmelleştirir. Bir blogda veya bir kitapta güzel görünen şey, blog yazarı tarafından anlaşılmayan bir nedenden ötürü kullanmanın ya da kitap yazarının kapsamadığı durumlarda kullanışsız olabilir.


2
Kitaplar (ve bloglar ve SO) sizi kendi başınıza çözemeyeceğiniz kavramlara maruz bırakabilir, ancak kod yazarak daha iyi bir programcı olursunuz.
Annika Backstrom

2
Öte yandan, dışsal tavsiyelere hiç dikkat etmezsem, fazla ileri gidemem. Diğer insanlar zor yoldan öğrendiler ve deneyimlerinden ders almamak aptalca olurdu. Elbette, sadece okuma ve duyma güvenine dayanmayın, başkalarından da yardım almadan öğrenmeye çalışmakla hata yapmayın.
Phil

harici okuma 2

Belirli bir teknik veya programlama dili veya kitaplıkları için açık olmayan, benzersiz veya gelişmiş özellikleri keşfetmek için harici okuma gereklidir. Bunlar, herhangi bir görevi yapmak için kesinlikle gerekli olmayan, ancak bunu yapma şeklinizi artırabilecek maddelerdir (örneğin metaprogramlama). Asla kesinlikle gerekli olmadıkları için insanlar nadiren tek başlarına deney yaparak onları aramaya gelirler.
Yalan Ryan

2

Kendine cevap verdiğin gibi, hayır, ama burada vakit geçirmek daha yapılandırılmış öğrenmeye yardımcı olur. Bazı kavramlarda ele alınamayan bazı boşluklar olabileceğinden bağımsız olarak buna dayanmam. Orta seviyedeki çocuklar için kodlamanızı geliştirmek için en iyi bahislerden biri GitHub veya diğer açık kaynaklı depolara zaman ayırarak diğer iyi geliştiricilerin kodlarını okumaktır.


1

Eleştirel Düşünce ve Analiz hala gerekli

Kendi içinde ve hayır. Öğrenmenin kaynağını yapmanın tek yolu (kitap, blog, web sitesi, SO, vb.) Anlama, analiz ve daha sonra tekrar tekrar kullanmaktır. İnsanların bu gibi forumlara yazdıkları şey incil değildir ve oylarının sayısı kaç olursa olsun bu şekilde muamele edilmemelidir. Olup bulunmadığını anlamak için verilen görüş üzerinde kendi analizinizi yapmanız gerekir:

  1. İyi bir fikir
  2. Durumunuza uygun bir fikir

Geliştirmenin En İyi Yolu

Genellikle kişiye özgüdür. Bazı insanlar okuma ve araştırma yoluyla daha iyi hale gelir. Bazı insanlar oyun ve deneme yoluyla daha iyi hale gelir. Diğerleri kendini yansıtma ve analiz yoluyla daha iyi olabilir. Size uygun olanı deneyin ve sizin için daha iyi çalışıp çalışmadığını görün.


0

Stackover akışını öğrendiğimde java öğrenmek çok daha kolay oldu. Soru sormadım ama her gün java sorularını okumaya başladım. Soruların çoğu benim anlayışımın dışındaydı, ama her şimdi ve sonra birisi acemi soruyu sordu. Pek çok insan bir kitaptan okudukları kavramları soruyor ancak anlamadılar ve burada daha fazla anlaşılabilir bir cevap alıyorlar, bu da sorunu daha da açıklamak için genellikle küçük kod örnekleriyle geliyor.

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.