Bir programcı gibi düşünmek için yapmanız gerekenler
- Bu neden önemlidir?
- Deseni bul
- 1. onu anlamak
- 2. Planla
- 3. Sorunu küçük alt problemlere ayırın.
- 4. Sıkışmış?
- uygulama
- HackerRank'a göre en popüler 5 programlama dilini seçti
- Gerçekten programcı olmak istiyorsan, ama tecrübe yok
Bir programcı gibi düşünmenin anlamı nedir? Aslında, her şeyi sorunları çözmek için daha verimli bir şekilde. Blogger ve mobil uygulama geliştiricisi Richard Rees, bilgisayarlı bir düşünce tarzının nasıl geliştirileceği konusunda bazı ipuçları verdi.
Bu neden önemlidir?
Problem çözme metanavyktur. Onlarla nasıl başa çıkacağız? Oldukça rastgele. Eğer bir sisteminiz yoksa, problemleri bu şekilde “çözme” olasılığı yüksektir:
Çözümü deneyin.
Başarısız olursa, başka bir tane deneyin.
Şanslı olana kadar ikinci adımı tekrarlayın.
Öyleyse yapma. Bu çok büyük bir zaman kaybı. A) bir kalıp bulmak ve b) pratik yapmak gerekir.
“Neredeyse tüm işverenler öncelikle çalışanların sorunları nasıl çözdüklerine bakıyor. Bu beceri onlar için programlama dilleri, hata ayıklama ve sistem tasarımı bilgisinden daha önemlidir. Hesaplamalı düşünme ve büyük ve karmaşık problemlerle başa çıkma becerisi, çalışmak için gereken temel teknik becerilerle aynı şekilde değerlendirilir ”(HackerRank (Developer Skills Report 2018).
Deseni bul
“Acemi programcılar genellikle problem çözme yerine sözdizimine odaklanır. Ve bu en büyük hata. ” V. Anton Sproul .
Yeni bir problemle karşılaştığınızda ne yapmalısınız?
1. onu anlamak
Senden ne istendiğini bilmen gerekiyor. Görevler karmaşık görünüyor, çünkü siz onları anlamıyorsunuz. Sorunu anlıyor musunuz, bilmiyor musunuz? Basit bir dilde açıklamaya çalışın.
Fotoğraf: Unsplash
Bu oldukça sık olur: Bir göreve tıkılıp kalıyor, açıklamaya başlıyor ve bir anda mantıksal eksiklikleri fark ediyor musunuz? Çoğu programcı bu duyguyu bilir. Sorununuzu kağıda yazın veya birisine anlatın.
2. Planla
Bir problemi plansız çözmeye hemen devam etmeyin. Tam adımları yazmazsanız size hiçbir şey yardımcı olmaz. Sorunu analiz etmek ve bilgiyi işlemek için beyne zaman verin. İyi bir plan yapmak için şu soruyu cevaplayın:
“Girişte bir X olduğunu varsayalım. Çıktıda Y almak için hangi adımlar gereklidir?”
Programcılar bunun için harika bir araç var ... Yorumlar!
3. Sorunu küçük alt problemlere ayırın.
Bu en önemli adımdır. Hemen büyük bir sorunu çözmeye çalışmayın. Bunun yerine, küçük bulmacalara bölün ve yavaş yavaş çözün. En basiti ile başlayın - yani, cevabı zaten bildiğiniz olanı. Tüm bunlarla başa çıkınca noktaları birleştirin. Böylece asıl sorunu çözebilirsiniz.
“Her zaman acemi programcılara sorunu basitleştirmelerini tavsiye ediyorum. On rakamı okuyan ve hangisinin üçüncü büyük olacağını belirleyen bir program yazmanız gerektiğini düşünelim. Yeni başlayanlar için, çözümünün temel sözdizimi hakkında bilgi gerektirmesine rağmen, bu görev çok zor görünebilir. Sıkışırsanız, sorunu basitleştirmeye çalışın. Üçüncü en büyük sayı yerine, yalnızca en büyük sayıyı bulmaya çalışın. Hala zor mu? Verilen en büyük üç sayısını bulun. Ya da iki. Çözmeyi anlayana kadar sorunu basitleştirin. Sonra yavaş yavaş görevi karmaşıklaştırmak ve çözümü yeniden yazmak ”, - V. Anton Sprol.
4. Sıkışmış?
Şimdi muhtemelen şöyle düşünüyorsunuz: “Evet, bu elbette harika, ama eğer sıkışıp kalırsam ve küçük bir sorunu bile çözemezsem?”
Fotoğraf: Unsplash
Endişelenme. Herkese olur. Aradaki fark, programcılar bununla karşılaştığında kızmazlar. Aksine, bir çözüm bulmakla ilgileniyorlar. Bunu yapmanın üç yolu:
Tekrar oyla . Soruna diğer taraftan bak. Daha basit bir şekilde sunulabilecek bir şey var mı?
“Bazen ayrıntılarda kayboluruz ve sorunu daha hızlı çözmenize yardımcı olacak genel prensipleri özleriz. Klasik örnek, ardışık sayıların toplamıdır - 1 + 2 + 3 + ... + n. Karl Friedrich Gauss bunu n (n + 1) / 2 ifadesi şeklinde sundu ve gereksiz hesaplamalar yapmak zorunda değildi. ”
Başka bir seçenek var - kodu tamamen yeniden yazmak. Her şeyi silin ve baştan başlayın.
Keşfedin . Şimdi hangi sorunu çözmeye çalışıyor olursanız olun. Birisi zaten senden önce yaptı. Sadece aramaya ihtiyacın var. Sorunu çözmüş olsanız bile bunu yapın.
uygulama
Bir hafta içinde bu alanda usta olacağınızı düşünmeyin. Sorunları iyi çözmek istiyorsanız, düzenli olarak yapın. Pratik. Satranç, matematik problemleri, sudoku, go, tekel, video oyunları, kriptocotikler - bunların hepsi problem çözme becerilerinizi mükemmelleştirmenize yardımcı olacaktır. Ünlü insanlar da bunu yapıyor. Örneğin, Peter Thiel satranç oynar ve Ilon Musk - video oyunlarında .
"Ilon Musk, Reed Hoffman, Mark Zuckerberg ve diğerleri oyunların başarılarının temelini attığını savunuyorlar" - Mary Meeker .
Bu sadece video oyunları oynaman gerektiği anlamına mı geliyor? Pek değil. Tabii ki, hala öğrenmen gerekiyor. Becerilerinizi uygulayabileceğiniz bir yer bulun.
Konuyla ilgili materyaller:
HackerRank'a göre en popüler 5 programlama dilini seçti
Kötü bir programcının 12 işareti - bir meslekten olmayan kişi tanımlarız
Gerçekten programcı olmak istiyorsan, ama tecrübe yok
Grafik tasarımcı olarak işimi nasıl bıraktım ve beş ay içinde ön uç geliştirici oldum
Bir yazım hatası mı buldun? Metni vurgulayın ve Ctrl + Enter tuşlarına basınBu neden önemlidir?
4. Sıkışmış?
Bu neden önemlidir?
Onlarla nasıl başa çıkacağız?
Yeni bir problemle karşılaştığınızda ne yapmalısınız?
Sorunu anlıyor musunuz, bilmiyor musunuz?
Çıktıda Y almak için hangi adımlar gereklidir?
Hala zor mu?
4. Sıkışmış?
Şimdi muhtemelen şöyle düşünüyorsunuz: “Evet, bu elbette harika, ama eğer sıkışıp kalırsam ve küçük bir sorunu bile çözemezsem?