21 Günde Değil 10 Yılda Programlama Öğrenin

0
FZ
Herhangi bir kitapçıya gittiğinizde Teach Yourself Java in 7 Days (7 Günde Java Öğrenin) benzeri, size birkaç günde veya birkaç saatte Visual Basic, Windows, Internet (vs.) öğretmeyi vadeden kitaplarla karşılaşırsınız...

... Birkaç günde, Beethoven, kuantum fiziği ya da köpek eğitimi öğreten kitaplar yok. Bu sonuçlara bakılırsa, ya insanlar bilgisayar hakkında yeni şeyler öğrenmek için çok hevesli ve aceleci ya da bu iş bir şekilde inanılmaz derecede kolay.

... Araştırmacıların da (Hayes, Bloom) ortaya koyduğu üzere, satranç oynamaktan beste yapmaya, resimden piyanoya, yüzmeden tenise ya da nöropiskoloji ve topoloji alanlarında araştırma yapmaya kadar bir çok alanda uzman olmak, on yıl civarında bir zaman alıyor ve bunun bir kısayolu var gibi gözükmüyor.

Peter Norvig'in "Teach Yourself Programming in Ten Years" başlıklı makalesinin çevirisini On Yılda Programlama Öğrenin adresinde okuyabilirsiniz.

Görüşler

0
FZ
Şık bir Türkiye bayrağı kullanarak çeviriye link veren Peter Norvig'e teşekkürler! (Not: Bir yanlış anlama olmuş sanırım, yazının çevirmeni olarak ben görünüyorum, bu yanlış anlamayı düzeltmek namına çeviriyi gerçekleştiren genç bilgisayar bilimleri öğrencisi arkadaşın ismini de yolladım, en kısa sürede düzeltileceğini umuyorum).
0
FZ
Hiç yorum gelmedi çünkü:

a- Zaten FM'yi takip eden herkes bu yazıyı daha önce orjinalinden okumuştu.

b- FM'yi takip eden herkes zaten yazar ile benzer düşünceleri paylaşıyorlar.

c- FM'yi takip eden herkes zaten bu durumun aşikar olduğunu düşünüyor ve hiç şaşırmadı, dolayısı ile yorum yazmaya tenezzül etmedi.

d- FM'yi takip eden hiçkimse yazıyı okumadı, okusa da anlamadı.

e- Hiçbiri.

f- Hepbiri
0
ttk
Merhaba

Ben de program yazmaya çalışıyorum kendi iş alanımızla ilgili ama gerçek anlamda programcılık eğitimi almadığım için bu konuya yorum yazmak istemedim.
Yazı gerçekten faydalı ve de açıklayıcı. Bilmem kaç günde, saatte, haftada ... programcılık öğrenme kitaplarını görüp de bir türlü bunlardan pek bir şey anlayamadığım için kendimi aptal hissediyordum :)

Yazıda sene cinsinden verilen rakamın yuvarlak olmadığına gerçekçi olduğuna inandım. Delphi ile olan bu kadar seneye yakın uğraşım sonucunda (her ne kadar şu kadarı bana yeter diyen tembellerden olsam da) denildiği kadar sene sonunda insan aptal değil ise kullandığı dilin inceliklerine hakim olmaya başlıyor kanaatimce, benim de tecrübeye dayalı görüşüm bu yönde.

Ayrıca en önemlisi, yazıdaki demet haline getirilip verilmiş tavsiyeler çok kıymetli ve de isabetli.
Güzel ve seneler boyunca ancak elde edilebilecek tecrübelerle "haa yahu şu da şöyleymiş, bunca sene sonra ancak farkedebilldim" deme zahmetinden bu tavsiyelerin kıymetini bilebilenleri kurtarabilecek, hayatta zaman kazandırıcı bir makale.
Yazan da, buraya ulaştıranlar da oldukça faydalı bir iş yapmışlar diyorum (birileri çıkıp da yağcı demez umarım, çünkü samimiyim.)

Teşekkürler ilgililere.
0
FZ
Ben yağcı demem! :)

Şaka bir yana yorum için teşekkürler, programlamanın gerçek doğasına dair insanları ne kadar bilgilendirebilirsek o kadar iyi olur diye düşünüyorum.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Yazılım Mühendisliğinde Çıkmaz Sokak Tarifleri: Anti-Patterns

FZ

Bilgisayar yazılımları geliştirmekle yıllardır uğraşılmakta. Son yarım yüzyılda ortaya çıkan bu alanda çeşitli paradigmalar (prosedürel, nesne tabanlı, fonksiyonel, vs) ve çeşitli modeller (code reuse, unit testing, component model, extreme programming, design patterns) ortaya atıldı. Daha çok "Özgür Yazılım'' ile birlikte dağıtık geliştirme yöntemleri gündeme geldi. Tasarım, uygulama ve test aşamalarını kapsayan geniş bir açıdan baktığımızda bize önerilen çeşitli "doğru'' geliştirme yöntemleri var.

Diğer her alanda olduğu gibi dengeli ve sağlıklı bir kavrayışa sahip olmak için doğruların yanında "yanlış'' yöntemler hakkında da bilgi sahibi olmak gereklidir. Bu konuda yaşanmış çok tecrübe olmakla birlikte, yazılı olarak birkaç kaynak dışında ciddi bir eksiklik bulunmaktaydı. Bu makale, ağırlıklı olarak yazılım mühendisliği ile ilgili birkaç Internet sitesinden derlenmiş, daha çok özgür yazılım alanını ilgilendiren bu tür çıkmaz yolları tanıtmaktadır. Ortak noktaları:

* Çoğu bir problemi çözmek isterken ortaya çıkar
* İlk bakışta harika bir fikir gibi gözükebilirler
* En çok tasarım aşamasında görülürler
* Sizden çok daha üretken ve başarılı grupları batırmışlardır!

Gürer Özen'in Anti-Patterns çevirisinin devamını burada okuyabilirsiniz.

Yeni nesil versiyonlama sistemleri - Subversion

anonim

Büyük olsun küçük olsun tüm şirketlerde, şirket içerisindeki dökümanların akışının ve arşivlenmesinin kontrolü için kullanılan bir sistem vardır. Subversion bu sistemlerden biridir.

Bu amaçla kullanılan bilgisayar programlarına en çok yazılım şirketlerinde rastalanmaktadır. Çünkü yazılımcılar gün içinde sürekli kodlarda ufak değişiklikler yapmaktadırlar. Gerektiğinde dosyaları eski tarihteki versiyonlarına geri döndürmektedirler. Bunları yaparken diğer yazılımcıların etkilenmemesi gerekmektedir. İşte bu anda devreye giren bu programlar bir dosya üzerinde farklı kullanıcılar tarafından aynı anda yapılan değişikliklerin birbirini yok etmesini engeller.

Makalenin tamanını http://www.riskturk.com/obje7/yayin_subversion_1.php adresinden okuyabilirsiniz.

Port Tarayıcıların Tehlikeleri, Yöntemleri, Karşı Savunma Stratejileri

FZ

Bilindiği gibi internet üzerindeki cihazların birbirleriyle konuşmasını sağlayan protokol ailesi TCP/IP'dir. Bu protokol grubunu düşündüğünüzde, asla herkese açık bir ağ üzerinden gizli bilgiyi gönderilmek amacıyla tasarlanmadığını görülür. Tasarlandığı dönemde, her zaman iletişimin özel ve güvenli hatlar üzerinde olacağı düşünüldüğünden bu yönden her hangi bir geliştirme düşünülmemiştir.

Serbülent ``Nightwalker´´ Ünsal´ın bu çalışmasında, bu gerçeği en ustaca kullanan araçlardan biri, port tarayıcılar incelenmiştir. Ancak burada şunu belirtmek gerekir ki; konun çok geniş bir kapsamı olması sebebiyle makalede büyük ağların ve ana bilgisayarların değil, genel olarak son kullanıcıların ve kişisel sistemler ile küçük ağların bu tehdit karşısındaki durumları incelenmiştir.

Linux Açılış Disketi NASIL

yalcink01

Hep hayalini kurduğum şey, kendi başıma imal ettiğim bir işletim sistemi idi. Baktım ki bu iş oldukça uzun bir zamana mal olacak, ben de hayalimi güncelledim ve kendi birleştirdiğim bir işletim sistemi yapmaya karar verdim. Hani legolar var ya onun gibi bir şey işte. Eh, Linux çekirdeği artı GNU araçları ve bilumum özgür yazılım etrafta cirit atıyor:) Al parçaları birleştirmeye başla dedim ama işte orada tıkandım kaldım. Parçaları bulmak kolay ama bir GNU/Linux İşletim Sistemi nasıl çalışır, temel parçalar nelerdir, kim kimi tetikliyor, kimin eli kimin cebinde konuları biraz karışık. Demokraside çare tükenmez deyip kendi yol planımı yaptım ve işe başladım: Öncelikle "bu sistem nasıl açılır, temel parçalar ve ana hatlar nelerdir?" sorununun yanıtını bulabilmek amacı ile The Linux Bootdisk HOWTO kılavuzunu hatim eyledik. Sırada Çekirdek Çitleme Kılavuzu (tldp tarafından şu an güncelleniyor) ve The Pocket Linux kılavuzu var.

Linux Açılış Disketi NASIL kılavuzu; bir açılış disketi yapımını anlatmakla birlikte -ki bu işin çok daha kolay bir yöntemi de mevcuttur:mkbootdisk- sistemin ilk ateşlemesini ve bu sistemin çalışması için gereken temel araçları açıklaması yönünden bence oldukça önemli bir başlangıç noktasını oluşturmakta. İyi bir başlangıç olmakla birlikte, sistem temellerini anlayabilmek için tek başına yeterli olmasını beklemeyin. Zaten kılavuzun ana hedefi de bu değil. Adı üstünde: açılış disketi nasıl yapılır, onu anlatıyor :)

Her halükarda okunması gereken ve Linux öğrenmeye çalışan benim gibiler için, uygulanması gereken bir kılavuz. Init'in ne olduğunu anlamadan önce, init'in herşeyin atası olduğunu anlamak gerekir, öyle değil mi?

http://www.geocities.com/yalcink01/bootdisk-howto/index.html adresinden belgeye ulaşabilirsiniz. Her zaman olduğu gibi: her türlü geribeslemeye kapımız açıktır

Yapay Zeka Yazıları

malkocoglu

Akıllı tahmin yapabilmek (heuristic), zekanın kullandığı önemli bir özellik. Bilgisayarla aynı özelliği aktarabilmek için, 8'li Bulmaca ortamında arama algoritmalarını sitemizde işliyoruz. Kullanılan dil, Common LISP olacak. Çözüm kodları da sitede paylaşılıyor. Bu kodlar, üniversitede alınan Yapay Zeka dersi için geliştirildi.
Yapay Zeka ile Problem Çözümü
Akıllı Tahmin Yapabilmek (Heuristic) ve Yapay Zeka