Birazoku.com sitesinde de kitapların ilk sayfalarından biraz okuyabilir, satın almadan önce fikir sahibi olabilirsiniz. Devamı »

Yazar ya da yayınevi iseniz kitaplarınızı ücretsiz yükleyin!

Sokak Kodcusu
Sokak Kodcusu

Sokak Kodcusu

Sedat Kapanoğlu

Masa başında uykusuz geçirilen saatler, ekip üyelerinin kader arkadaşlığı; üç, beş, yedi, on kupa kahve, revizyonlar ve kodlama… Kodlama dünyasındaki sokaklar birer labirente dönüştüğünde…

Masa başında uykusuz geçirilen saatler, ekip üyelerinin kader arkadaşlığı; üç, beş, yedi, on kupa kahve, revizyonlar ve kodlama… Kodlama dünyasındaki sokaklar birer labirente dönüştüğünde ne yapmalı? Ekşi Sözlük’ün kurucusu Sedat Kapanoğlu, namı diğer SSG, Sokak Kodcusu’nda acemi ya da kıdemli her kodcuyu yazılımcılığın arka sokaklarına götürüyor ve onlara bu labirentte yol göstererek, sokaklarda hayatta kalmanın teknik yollarını, püf noktalarını açıklıyor. Bu kitap, kodlama meraklılarına yoğun derslerin dehlizlerinden ya da teorinin fildişi kulelerinden seslenmiyor. Aksine, Sokak Kodcusu, kodlamanın hem teorisini hem de pratiğini sorgulatan, bir kodcunun dünyasında karşılaşılabilecek hemen her sokağı kurcalayan, ekşi ama lezzetli bir kitap. Sokak Kodcusu, siyah ekran üzerindeki yeşil komutlardan gelişmiş yazılım dillerine uzanan bir maceranın -şimdilik- son versiyonu olarak karşınızda!

Bu Kitap Hakkında

Sokak Kodcusu, yazılım geliştiricinin mesleki deneyimindeki boşlukları dolduruyor. Bunu, bilinen örnekleri tartışarak; sokaklarda, yani profesyonel dünyada yararlı olabilecek, ilk bakışta kötü görünen ya da az bilinen pratikleri ve kalıpların dışını göstererek yapıyor. Kitap, sizi sorgulayan ve işlevsel bir düşünce yapısıyla donatmayı; böylece yazılım yaratmanın Google’da arama yapmak ve kod yazmaktan fazlası olduğunu anlatmayı amaçlıyor. Kitap ayrıca, bazı sıkıcı işlerin, onlara harcadığınız zamandan daha fazlasını kazanmanıza yardımcı olabileceğini de gösteriyor. Genel olarak kitap, bakış açınızı değiştirmeyi hedefliyor.

Bu kitabı kimler okumalı?

Bu kitap, programlamayı geleneksel eğitimden başka yollarla öğrenebilmiş, ancak yine de paradigmalar ve yazılım geliştirmenin en iyi yolları hakkında daha geniş bir bakış açısına ihtiyaç duyan başlangıç ve orta seviye programcılar için yazıldı. Örnekler C# ve .NET şeklinde, dolayısıyla bu dillere aşina olmak okurken size kolaylık sağlayabilir fakat kitap mümkün mertebe dilden ve framework’ten bağımsız.

Bu kitap nasıl düzenlendi: Bir yol haritası

Bölüm 1, sokak kodcusu kavramını mesleki tecrübeyle şekillenmiş yazılım geliştiricisinin ne olduğunu tanıtarak başlıyor ve bunlardan biri olabilmeniz için size yardımcı olabilecek nitelikleri tarif ediyor.
■ Bölüm 2, pratik yazılım geliştirmede teorinin nasıl da önemli olduğunu
ve niçin veri yapıları ve algoritmalarla ilgilenmeniz gerektiğini tartışıyor.
■ Bölüm 3, kalıpların dışında veya kötü bilinen uygulamaların, bazen nasıl
kullanışlı ve hatta tercih edilebilir olduğunu açıklıyor.

Bölüm 4, birim testlerinin gizemli dünyasına dalıyor ve daha çok çalışma
gerektirecek gibi görünseler bile nasıl daha az çalışma ve daha az kodyazmanıza yardımcı olabileceklerini ele alıyor.
■ Bölüm 5, refactoring tekniklerini, bunları nasıl kolay ve güvenli bir şekilde uygulayacağınızı ve ne zaman uygulamamanız gerektiğini tartışıyor.
■ Bölüm 6, bazı temel güvenlik kavramlarını ve tekniklerini tanıtırken, en yaygın saldırılara karşı kullanılabilecek savunmaları gösteriyor.
■ Bölüm 7, bazı zorlu optimizasyon tekniklerini gösteriyor, hiç utanmadan
erken optimizasyon öneriyor ve performans sorunlarını metodik bir yaklaşımla çözmeyi tanımlıyor.
■ Bölüm 8, kodunuzu geliştirilebilir hale getirecek teknikleri açıklarken, paralelleştirme mekaniklerini ve bunların performans ve tepkiselliğe tesirini ele alıyor.
■ Bölüm 9, bug’ların ve hataların üstesinden gelmede kullanılabilecek en iyi yolları gösteriyor. Bilhassa, hatalara dokunmamaya, bunun yerine hataya dirençli kod yazma tekniklerine teşvik ediyor.

Kod örnekleri hakkında 

Kitaptaki kodların büyük kısmına bahsi geçen kavramları desteklemek için yer verildi ve esas konudan uzaklaşmamak adına uygulama detayları eksik bırakılmış olabilir. Birçok projeyi tamamen çalıştıran kod GitHub veri deposunda (https:// github.com/ssg/streetcoder) ve Manning’in web sitesinde (https://www.manning.com/books/street-coder) bulunuyor, bu sayede onları çalıştırabilir ve üzerlerinde deney yapabilirsiniz. Projelerden biri .NET Framework’ten bir geçiş senaryosuna odaklanıyor, bu nedenle de Windows olmayan bilgisayarlara kurulamaz. O platformlarda sorun yaşamamak için, alternatif çözüm dosyasını yine yukarıda bahsi geçen veri deposunda bulabilirsiniz. Bu kitap, hem numaralandırılmış listelerle hem de normal metin içinde birçok kaynak kod örneği içermektedir. Her iki durumda da kaynak kodu, metinden ayırmak için bunun gibi sabit genişlikli bir yazı tipi belirlenmiştir. Bazen, önceden yazılmış bir kodda yapılan yeni değişiklikleri vurgulamak için de kod kalın harflerle yazılabilir. Çoğu durumda orijinal kaynak kod yeniden biçimlendirildi; bazen kitaptaki sayfa alanını en iyi şekilde kullanabilmek için satırları kesmemiz ya da yeniden uyarlamamız gerekti. Nadiren de bunlar yeterli olmadı ve kod örneklerine “satır devam ediyor” simgeleri (➥) ekledik. İlaveten, metinde, kodun anlatıldığı yerlerdeki kaynak kodun yorumlarını çoğu zaman kaldırdık. Örneklerin birçoğunda kod açıklamaları önemli kavramları vurgulamak adına koda eşlik ediyor.

Sokaklara Dair

Bu bölümün içeriği
■ Sokaklardaki Gerçek
■ Sokak Kodcusu Kimdir?
■ Modern Yazılım Geliştirmenin Sorunları
■ Problemlerinizi Sokak İrfanıyla Nasıl Çözersiniz?

Ben şanslıyım. İlk programımı 1980’lerde yazdım. Bunun için yalnızca bilgisayarı açmam (ki bir saniyeden kısa sürüyordu), iki satır kod ve sonuna RUN yazmam yeterliydi. Ta taaam, ekran bir anda ismimle kaplanmıştı bile! Olasılıklar beni dehşete düşürmüştü. Eğer iki satır kodla bunu yapabiliyorsam, 6 satırla, hatta 20 satırla neler yapardım! Dokuz yaşındaki beynim o kadar fazla dopamine maruz kalmıştı ki o andan itibaren bir programlama bağımlısıydım. Bugün, yazılım geliştirme süreci çok daha karmaşık. 1980’lerde kullanıcı etkileşiminin “press any key to continue” basitliğinde olduğu o yalınlığın yanından dahi geçemeyecek kadar gerçi o zamanlar da klavyede “any” tuşunu bulamayan kullanıcılar oluyordu. Pencereler yoktu, fare yoktu, web siteleri yoktu, UI (User Interface, kullanıcı arabirimi) elemanları yoktu. Framework’ler, runtime’lar, mobil cihazlar da. Elinizdeki tek şey bir dizi komut ve sabit bir donanım konfigürasyonuydu.

Şu an sahip olduğumuz her soyutlama seviyesi için bir sebep var, yani bu karmaşıklığı mazoşist olduğumuzdan yaratmıyoruz, Haskell1 programcıları hariç. Bu soyutlamalar var, çünkü onlar güncel yazılım standartlarını yakalamanın tek yolu. Programlama, ekranı kendi isminizle kaplamaktan ibaret değil artık. İsminiz doğru yazı tipine sahip olmalı, ayrıca bir pencerenin içinde olmalı ki onu sağa sola sürükleyip yeniden boyutlandırabilesiniz. Programınız iyi görünmeli. Kopyala yapıştır özelliğini desteklemeli. Ayarlanabilir olmalı, farklı isimler girmeyi de desteklemeli. Belki de bu girilen isimleri veritabanında, hatta bulutta saklamalı. Ekranı kendi isminizle kaplamak artık o kadar da eğlenceli değil. Neyse ki, bu karmaşayla baş etmemize yarayacak kaynaklarımız var: Üniversiteler, hackathon’lar, boot camp’ler, çevrimiçi dersler ve plastik ördekler.

İPUCU: Plastik ördek, programlamaya ilişkin sorunları çözmek adına
üretilmiş, anlatma yoluyla hata ayıklayan ezoterik bir yöntemdir. Kısaca bir plastik ördeğe dert anlatmak şeklinde özetlenebilir. Hata
ayıklamakla ilgili bölümde bu yöntemle ilgili detaylara gireceğim.

Aslında sahip olduğumuz tüm bu kaynaklarla epey donanımlı sayılırız. Ancak inşa ettiğimiz bu yapı, yüksek rekabet içeren talepkâr bir yazılım geliştirme kariyerinde, yani sokaklarda, her zaman yeterli olmayabilir.

1.1 Sokaklarda Asıl Önemli Olan Şey

Profesyonel yazılım geliştirme dünyası oldukça gizemlidir. Bazı müşteriler, aylarca, her aramanızda size birkaç gün içinde ödeme yapacaklarına dair yemin eder. Bazı işverenlerse maaş bile ödemeyip, “para kazandıkları zaman” size de kazandıracaklarını söyler durur. Kimin pencereli ofisi alacağına evrenin karmaşık başıboşluğu karar verir. Bazı bug’lar siz debugger kullanmaya başladığınız anda kaybolur. Bazı takımlar hiç kaynak kontrol sistemi kullanmaz bile. Evet, korkutucu. Ama gerçeklerle yüzleşmeniz gerekir. Sokaklarda net olan tek şey, iş çıkarma yeteneğinizin her şeyden önce gelmesidir. Şık tasarımınızı, algoritma bilginizi ya da yazdığınız kodun kalitesini kimse umursamaz. Tek ilgilendikleri şey, belirli zamanda ne kadar iş teslim edebildiğinizdir. Bununla birlikte, iyi tasarım, algoritmaların iyi kullanımı ve kaliteli kod, veriminizi hatırı sayılır şekilde artırabilir. Birçok programcı bunu es geçer. Bu konular programcının son teslim tarihini tutturmasını engelleyen gereksiz detaylar olarak düşünülür genelde. Bu fikir sizi ayağından prangalanmış bir zombiye dönüştürebilir. İşin aslı, yazdığınız kodun kalitesini önemseyen birileri de var: İş arkadaşlarınız. Sürekli kodunuzu düzeltmekle uğraşmak istemezler. Kodunuzun çalışır, kolay anlaşılır ve düzenlenebilir olmasını isterler. Bunu onlara borçlusunuz, çünkü kodunuzu yolladığınız andan itibaren o artık herkesin olur. Bir takımda, takımın verimi, üyelerin bireysel veriminden daha önemlidir. Eğer kötü kod yazıyorsanız takım arkadaşlarınızı yavaşlatıyorsunuz demektir. Kodunuzun kalitesi düşükse bu takıma zarar verir ve yavaşlayan takım da ürüne zarar verir. Sonuçta yayımlanmamış ürün kariyerinize zarar verir.

Eklendi: Yayım tarihi

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  • Kategori(ler) Teknoloji
  • Kitap AdıSokak Kodcusu
  • Sayfa Sayısı336
  • YazarSedat Kapanoğlu
  • ISBN9789750763410
  • Boyutlar, Kapak14x21 cm, Karton Kapak
  • YayıneviMundi / 2024

Yazarın Diğer Kitapları

Men-e-men Birazoku

Aynı Kategoriden

Haftanın Yayınevi
Yazarlardan Seçmeler
Editörün Seçimi
Kategorilerden Seçmeler

Yeni girilen kitapları kaçırmayın

Şimdi e-bültenimize abone olun.

    Oynat Durdur
    Vimeo Fragman Vimeo Durdur