Bill Gates'den bu alıntıyı tökezledim: "Her şeyi okuyabiliyorsanız kesinlikle bana bir özgeçmiş göndermelisiniz." Programlama Sanatı'ndan bahsediyordu. Bu yüzden oldukça meraklıydım ve hepsini okumak istiyorum ama dürüstçe, hiç anlamıyorum .. I'm really not that highly
intellectual being
.. Bu yüzden anlayamamamın nedeni bu olmalı. , ama öğrenmeye istekliyim .. Şu anda temel algo hakkında 1. cildi okuyorum .. Peki, benim gibi acemi / yavaş insanlarla dost olan herhangi bir kitap var mı? Böylece kendimi kurabilirim ve gelecekte umarım Knuth'un kitabını rahatlıkla okuyabilirim.
Kendinizi olarak tanımlarsanız, kendinizi not a highly intellectual being
düşük beklentilere ayarlıyorsunuzdur. Belada değecek bir şey yapmak istersen bu zihniyeti kırmalısın. Aklınızda bir şeyi başarabileceğiniz konusunda hiçbir şüphe olmamalıdır. Ayrıca, bunu başarmak, onu kolayca başaracağınız anlamına gelmez.
İzlenmeye değer şeyler zor olanlardır ... ve bu bir klişe değil. Yazılımda, mühendislikte, genel olarak yaşamda, bir şey elde etmek istiyorsanız, zor olan şeylere, insanların kaçındığı şeylere gitmeniz ve en düşük ortak paydalara razı olmamanız gerekir.
İlk olarak, CS arka planınızın ne olduğu açık değildir. Knuth'un kitabı bir miktar olgunluk gerektiriyor. CS derecesine sahip birkaç kişi kolaylıkla geçebilir. Algoritmalardaki ilk dersini henüz bitirmiş bir CS öğrencisinin Knuth'un kitabından bir tanesini bile geçmesini beklemem. Bunu elde etmek için gereken vade sadece orada değil ve bunun öğrencinin zihinsel kapasitesiyle ilgisi yok.
Temel algoritmalarınızı soğuk ve temiz bir şekilde ele almanız ve kemerinizin altında makul miktarda bir programlamanın (iş ve / veya skolastik) olması gerekir - derim ki, en azından programlama konusunda 40 kredi. Ayrıca CS matematiğinizi sağlam bir zeminde tutmanız gerekir.
Ayrık matematiği (ve muhtemelen hesaplama teorisini) iyi bir şekilde kavramadan ileriye gidemezsiniz.
Knuth'un problemleri üzerinde çalışmak için bu bilgiye ihtiyaç duymayacaksınız, ancak bu tür bir materyalin içinden geçebilmek için olgunluğa ihtiyacınız var.
İlk önce bir kitap ve bir kitap seçin (daha önce önerildiği gibi CLRS kitabı) ve baştan sona çalışın. Mümkün olduğunda algoritmaları uygulayan programlar yapın. Java veya C # kullanmayın, C ++ kullanmayın. Çıplak kemikler C'ye gidin ve çıplak kemikli metal artıklarından şeyler inşa etme hissini alın.
Ayrık matematik ve hesaplama teorisi derslerini almadıysanız, Knuth'un "Beton Matematiği" kitabını da alın. O kitabı da okuman iyi olur.
Ardından Knuth'un ansiklopedisine, her seferinde bir bölüm olmak üzere bir araya geldi. Birincisini iyi anlamadan başka bir bölüme geçmeyin.
Önce cilt I (temel algoritmalar), sonra cilt III (arama ve sıralama) işlemlerini öneririm. Bunlar senin acil hedeflerin olmalı. Sonra, daha sonra (çok sonra), cilt IV (Kombinatoryal Algoritmalar) ve sonra Cilt II (Yarı Sayısal Algoritmalar) ile mücadele edin.
İlk başta alamazsan, kendini kötü hissetme. Yıllar boyunca I ve III ciltlerini geçmeye çalışıyorum (şimdi 10 yıl).
Ve buna da fazla ağırlık vermemelisin. Birine veya kendinize bir şey kanıtlamak için yapmayın. Yap, çünkü bunu entelektüel olarak merak ediyorsun . CLRS'nin kitabını (ya da oradaki iyi dereceli kitaplardan herhangi birini kullanarak) algoritmalar konusunda uzmanlaşabilirsiniz.
Pragmatik olun ve kendinize bir mola verin. Knuth'un kitabından geçerken, CS'nin önemli olduğunun bir kanıtı olarak değil, uzun vadeli kişisel bir hırs olarak kabul edin;)
Kendinizi öldürmek için (kariyer açısından) daha önemli başka şeyler var;)