Daha İyi Bir Programcı Olun: Büyümek için 7 Alışkanlık
Bir sonraki seviyeye gitmek isteyen yeni başlayan bir programcı mısınız? İşte benimsediğim en iyi alışkanlıklardan bazıları ve beni nasıl sadece daha iyi bir programcı değil, aynı zamanda daha iyi bir profesyonel haline getirdikleri.
7. Güçlü bir temelle başlayın
Programlamaya ilk başladığımda, temelleri acele etme ve doğrudan çerçeveler ve gelişmiş araçlar gibi daha sulu şeylere atlama tuzağına düştüm. Hemen havalı uygulamalar ve parlak web siteleri oluşturmak istedim. Bu yüzden sıkıcı şeyleri olabildiğince atlamaya çalıştım.
Ancak, bir noktada bir şey fark ettim. Kopyala kodu kopyalayabilir ve çalıştırabilirim. Ama hepsi spagetti kodu idi, bir araya geldi, optimizasyon olmadan zar zor çalışıyordu. Kendi başıma herhangi bir problemi çözemedim. Nihayetinde, temelleri tekrar tekrar tekrar ziyaret etmek zorunda kaldım.
Bu temeli oluşturmanın bir yolu, daha büyük projelere dalmadan önce kendinize basit sorunlarla meydan okumaktır. Hackerrank ve CSES gibi platformlar bunun için mükemmeldir. Bir temel oluşturmanın bir diğer önemli kısmı, dallanmadan önce bir programlama dili derinlemesine öğrenmektir.
6. Kod yazmaktan daha fazlasını yapın
Bir şey oluşturmak istediğinizde, muhtemelen kod düzenleyicisini açar ve kod yazmaya başlarsınız. Bunu hızlı bir şekilde somut bir sonuç görebilmemiz için yapıyoruz. Ancak, deneyimlerime göre, bunun genellikle dağınık, eksik veya bazen tamamen yanlış çözümlere yol açtığını gördüm.
Çok karşılaştığım bir sorun, yarısında olduğum zamandı, çözümü kodlarken bir veya başka bir davayı dikkate almadığımı fark ettim. Baştan başlamak zorunda kaldım. Kodu yazmadan önce genel bir üst düzey çözümüm olsaydı, bu olmazdı.
Programlama sadece kod yazmakla ilgili değildir. Bu, genellikle bazı kısıtlamalar altında bir soruna çözüm hazırlamakla ilgilidir. Herhangi bir karmaşık sorun gibi, en iyi çözüm açık, kasıtlı düşünmeden gelir. Bu benim en sevdiğim kitaplardan biri olan pragmatik programcı:
Pragmatik bir programcı olmak için, bunu yaparken ne yaptığınızı düşünmenize meydan okuyoruz ... asla otomatik pilotta koşmayın. Sürekli düşünmek, işinizi gerçek zamanlı olarak eleştirmek.
Beni daha iyi bir problem çözücü yapan bir şey, gerçek kodu yazmadan önce sahte kod yazmak. Örneğin, karmaşık bir algoritma tasarlarken, düz İngilizce'de kaba bir mantıksal plan çizeceğim.
5. Resmi belgelerden öğrenin
Programlamaya ilk başladığımda veba gibi resmi belgelerden kaçındım. Ezici, jargon dolu ve dürüst olmak gerekirse biraz sıkıcı görünüyordu. Öğreticilere ve YouTube videolarına yapışmayı tercih ettim. Ancak gerçek dünya projeleri üzerinde çalışmaya başladığımda, öğreticilerin sadece yüzeyi çizdiğini fark ettim. Bir dili, çerçeveyi veya aracı tam olarak anlamak istersem, resmi belgeler benim en iyi kaynağımdı.
Resmi belgeler, öğrendiğiniz dili veya aracı oluşturan kişiler tarafından yazılan bir kullanıcı kılavuzudur. Öğreticiler belirli kullanım durumlarına odaklanma eğilimindedir, ancak belgeler, var olduğunu bilmediğiniz özellikler de dahil olmak üzere bir teknolojinin tüm yeteneklerini gösterir.
Örneğin, Python'u ilk öğrendiğimde, temelleri anlamak için öğreticilere büyük ölçüde güvendim. Ama pandalar gibi kütüphaneleri kullanmaya başladığımda, kendimi sadece örneklerden daha fazlasına ihtiyaç duyduğunu gördüm. Pandas belgeleri benim yaşam çizgim oldu.
4. Temiz Kod Yaz
Programlama topluluğunda çalışan bir şaka var. Programınız çalışıyorsa, dokunmayın. Yine de sadece bir şaka.
Programlamaya başladığımda rekabetçi programlamayı denedim. Zevk alsam da, ondan birçok kötü alışkanlık benimsedim. Çoğu durumda, programın çalışması önemli olan tek şeydi. Kod hatasız koşarsa, değişkenlerin ve sihirli sayıların karışık bir karmaşası olsa bile, bunu başarılı olarak gördüm. Ancak daha fazla gerçek dünya projeleri üzerinde çalışmaya başladığımda, temiz kodun ne kadar önemli olduğunu fark ettim.
Temiz Kod, programlarınızı okumayı, hata ayıklamayı ve korumayı kolaylaştırır. Buna giren birçok en iyi uygulama, prensip ve sözleşme vardır. Örneğin, değişkenler ve işlevler için tanımlayıcı isimler, iyi belgeler, tutarlı kodlama stili ve daha fazlası. Çirkin kod örneğine bakalım.
def pro(s, x):
i = 0
for k in range(len(s)):
i += s[k] * x[k]
return i
İşe yarıyor. Ama bundan bir şey yapabilir misin? Muhtemelen hayır. Şimdi daha temiz versiyona bir göz atın:
def calculate_dot_product(vector_a, vector_b):
dot_product = 0
for index in range(len(vector_a)):
dot_product += vector_a[index] * vector_b[index]
return dot_product
Bu sürüm çok daha anlamlı. Temiz kod yazmak projelerinizi tam olarak dönüştürebilir.
3. Güçlü hata ayıklama becerileri geliştirin
Bir programcı olarak ne kadar deneyim kazanırsanız kazanın, hata ayıklama sürecin kaçınılmaz bir parçasıdır. Sözde saklanıyor gibi görünen sinsi böcekleri izlemek için sayısız saat geçirdim. İlk başta, hata ayıklama sinir bozucu hissetti. Zamanla stratejik olarak yaklaşmayı öğrendim.
Hata ayıklamanın ilk adımı yavaşlamak ve gözlemlemektir. Koduma koşardım, körü körüne değiştiriyordum, bir şeyin işe yarayacağını umuyordum. Nadiren yaptı. Bunun yerine, sorular sorarak başlayın. Programın ne yapması gerekiyor? Ne yapıyor? Davranış nerede ayrılır?
Hata ayıklamayı daha az göz korkutucu hale getiren birkaç araç ve teknik vardır. print()
ifadesi genellikle ilk savunma satırıdır. Başka bir yararlı teknik, kodunuzu adım adım açıkladığınız, cansız bir nesneye veya bir kişiye açıkladığınız lastik ördek hata ayıklamasıdır. Genellikle, sorunu yüksek sesle ifade etmek çözümü ortaya çıkarır. Hataları sadece kendime açıklayarak çözdüm.
2. Diğer programcılarla ağ
Programlamaya ilk başladığımda bunu solo bir yolculuk olarak düşündüm. Programlama genellikle yalnız odaklanmayı içerirken, en çok büyüdüğüm anlar diğer programcılarla bağlantı kurmaktan geldi.
Birçok programlama Facebook grubuna, uyumsuzluk sunucularına ve alt bölümlere katıldım (R/LearnProgramming'e göz atın.) Sorunlarla karşılaştığımda yardım için ulaşabilirim. Boş zamanlarımda, yeni başlayanların eskisi gibi yardım alabilmeleri için topluluğa da katkıda bulunmaya çalışıyorum.
Bir zamanlar sadece ağ ile bir programlama konseri aldım. Üzerinde çalıştığım en büyük projelerden biriydi ve bu süreçte çok şey öğrendim. Ayrıca hackathonlara katılarak harika programcılarla tanıştım ve onlardan yeni şeyler ve stratejiler öğrendim.
1. Gerçek yaşam problemini çözen bir şey oluşturun
Programlamanın en ödüllendirici yönlerinden biri, fikirleri hayatı kolaylaştıran araçlara dönüştürme yeteneğidir. Öğreticileri izleyebilir veya kitapları sonsuza dek okuyabilirsiniz, ancak gerçek dünya problemiyle başa çıktığınızda hiçbir şey kazandığınız öğrenme ile karşılaştırılamaz. İşte o zaman teoriler, sözdizimi ve algoritmalar gerçekten canlanıyor.
Gerçek hayat projelerini birçok yönden bulabilirsiniz. Hangi sorunlarla karşılaşıyorsun? Bir uygulama oluşturarak bunları çözebilir misiniz? Arkadaşlarınıza ve akrabalarınıza sorunlarını sorun. Ayrıca GitHub'a gidebilir ve açık kaynaklı projeler bulabilirsiniz.
Spring Boot'u kullanarak Java arka uçunu öğrenmeye başladığımda, birçok görevi otomatikleştirmek için bir tarım sistemi yapmaya karar verdim. Öğreticilerden alamayacağım birçok şeyi öğrendim.
Programlamada yeni olduğunuzda, tuzaklara düşmek ve hata yapmak kolaydır. Büyük alışkanlıklar benimseyerek ve deneyimlerden öğrenerek bir başlangıç geçirebilirsiniz. Bu sizi daha iyi bir programcı yapacak.