Yazar arşivleri: Özcan Acar

Özcan Acar hakkında

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor. KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.

Böyle Girişimcilik Olmaz!

Bu yazıyı okuyunca daha önce yazdığım Melek Programcılar ve Şeytan Yatırımcılar başlıklı yazımı anımsadım. Orada genç girişimcilerin nasıl şeytan yatırımcılar tarafından üç kağıda getirilip, sömürüldüklerinden bahsetmiştim. Durumun başka bir boyutunu da paylaştığım yazı gösteriyor.

Okumaya devam et

Göz Boyamaca

Size herhangi bir şey satmak için kapınıza gelen bir satış temsilcisine ne gözle bakarsınız? Ben bu durumla karşılaşınca, beynimde otomatik olarak şahsı başımdan savma rutinleri devreye giriyor. Birilerinin benim üstüme bu şekilde gelerek bana bir şey satması imkansız. Bu inisiyatifin benden kaynaklanması lazım.

Okumaya devam et

Acı Çekmeden Üstad Olunmaz

Her sektörün kendi guru, üstad, pir olarak görülen zatları var. Yazılım sektöründe de durum farklı değil. Şöyle başımızı kaldırıp devleşmiş bir üstada baktığımızda, bu adam nasıl bu kadar yetenek, kabiliyet, bilgi ve beceri sahibi olabildi diye bir soru aklımıza gelir. Aynı zamanda kendimizin bu devin yanında ne kadar küçük kaldığımızı görür, saklanacak bir yer aramamıza bile gerek kalmadan onun yanında kaybolup gideriz. Örnek mi ver diyorsunuz: Robert C. Martin, Kent Beck, Peter Norvig. Ne milletten oldukları önemli değil. Bu listede birgün mutlaka Türk yazılımcılarının da ismi yer alacak. Önemli olan nasıl üstadlaşabildikleri.

Okumaya devam et

Detayları Görebilmek Ya Da Görememek

Robert Martin Transformation Priority Premise – Transformasyon Öncelik Teorisi başlıklı yazısında yeniden yapılandırmaya (refactoring) karşı yöntem olan kod transformasyonuna değiniyor. Refactoring uygulamanın dışa gösterdiği davranış biçimini değiştirmeden kodun yeniden yapılandırılması anlamına gelirken, kod transformasyonu uygulamanın davranış biçimini yeniden şekillendirmek için kullanılan bir yöntemdir.

Okumaya devam et

Gezen Defterin Hikayesini Biliyor musunuz?

2009 yılında Enrique Comba‘nın aklına bir not defteri alıp, yazılım zanaatı akımında (Software Craftsmanship Movement) yer alan programcılara posta yoluyla gönderme fikri gelir. Her programcı deftere bu konudaki kendi düşünce ve tecrübelerini ekledikten sonra, defteri listede yer alan bir sonraki programcıya posta yoluyla gönderir. Bugün SocRaTes 2012 konferansında tanıştığım bir programcı 2010 senesinde bu defterin kendisine ulaştığını, defteri belli bir zaman sonra listede yer alan bir sonraki programcıya gönderdiğini, ama defterin 2011 senesinden beri kayıp olduğunu söyledi. Herhalde birisi defteri kitaplığına koyup, unuttu :)

Okumaya devam et

Kataların Eşli Programlanması

Yaptığım kataları KodKata.com‘da sizinle paylaştım. Her gün düzenli olarak kod katalarımı yapıyorum. Her gün değişik bir kata yapmaya gayret ediyorum. Kataları tekrarladıkça katanın öngürdüğü birçok işlem benim için rutinleşiyor. Zaman zaman katanın öngördüğü yoldan saparak, başka şeyler deniyorum. Bu yeni bir tasarım kararı olabiliyor ya da yeni bir refactoring metotunun kullanımı. Okumaya devam et

Kişisel Gelişim

Bir programcının tipik bir haftasının kırk saati patronu için çalışmakla geçer. Daha önceki bir yazımda bir programcının mesai saatlerinde kendisini geliştirmesinin mümkün olmadığını, ama mesai haricinde pratik yaparak programcılık yeteneğini geliştirmesi gerektiğinden bahsetmiştim. Gel gelelim günde sekiz saat çalıştıktan sonra eve gelip, pratik yapmak ya da kitap okumak kolay bir şey olmayabilir. Yemek yedikten ve biraz televizyon seyrettikten sonra kişisel gelişim için gerekli motivasyon tabana vurabilir. Bu çok doğal bir şey. Bu sebepten dolayı kimse kendisine kızmamalıdır. Daha ziyade insan kendisine bu kısır döngüyü nasıl kırabilirim sorusunu sormalıdır.

Okumaya devam et

Bilgisayar Mühendisi mi, Yazılım Mühendisi mi?

İsmini açıklamadan bir üniversite ögrencisinin bana göndermiş olduğu e-posta iletisini sizinle paylaşmak istiyorum.

Bana gelen e-postanın içeriği şöyle:

Özcan Bey Merhabalar
Ben XXX Üni. Teknoloji Fak. Yazılım Müh. okuyorum.Yatay geçişle YYY Üni.Müh Fak. Bilg. Müh. geçmek istiyorum ama kararsızım. Sizce hangisini seçmeliyim? Gelecekte hangisinde işsiz kalma ihtimalim daha az? YYY Üni. eğitimi daha iyi olur diye düşünüyorum ama bilg. müh. geleceğin meslekleri arasında yer alamıyor artık. Yazılım müh. adı geçiyor. Sizce ne yapmalıyım? Hangisini tercih ederek kariyerime devam etmeliyim? Şimdiden sağolun …
Not: Acil cevaplayabilirseniz sevinirim.

Okumaya devam et

Kod A.Ş. – Kod Anonim Şirketi

Programcılar tarafından yazılan metotların ve kullanılan değişken isimlerinin çoğu anonim, yani adı sanı belirsiz. Kullanılan isimler ilk bakışta kod bünyesinde olup bitenleri ifade gücünden aciz. Bu kodun okunabilirliğini düşüren bir faktör. Zamanımızın büyük bir kısmını kod okuyarak geçirdiğimizi düşündüğümüzde, seçilen isimlerin ne kadar önemli olduğunu ortaya çıkmakta.

Okumaya devam et

Java’da Bilinmeyenler

Bu yazımda Java programclarının bilmediği, doğru olarak kabul edip kullandığı ya da yanlış bildiği konulardan bahsetmek istiyorum.

Hafıza Alanı Ayarları
Genelde JVM için hazıfa alanı -Xmx -Xms parametreleri ile oluşturulur. -X ile başlayan parametreler standart JVM parametreleri değildirler, yani bu parametreleri JVM implemente etmek zorunda değildir. Durum böyle olunca -Xmx1024m şeklindeki bir parametre, eğer JVM -Xmx parametresini implemente etmedi ise JVM için kullanılan hafıza alanının 1GB olarak ayarlanmasını sağlayamayacaktır. -Xmx ve -Xms yerine standart olan -mx ve -ms parametreleri kullanılmalıdır.

Okumaya devam et

Kataların Anası

Java ve diğer dillerde kullanılan switch komutu OCP tasarım şablonuna ters düşmekle beraber, kodun bakımı ve geliştirilmesini zorlaştırmaktadır. Martin Fowler Refactoring isimli kitabında yer alan Video Store örneğinde “Replace Conditional with Polymorphism” refactoring metodu ile switch komutunun nasıl yok edilebileceğini göstermektedir. Robert C. Martin’in CleanCoders.com sayfasında Video Store örneğini daha geniş çaplı yeniden yapılandıran bir ekran gösterimi (screencast) mevcuttur. Bu iki örnekten esinlenerek, sizler için aşağıdaki ekran gösterimini oluşturdum. Bana soracak olursanız bu tüm kataların anasıdır, çünkü içinde günlük iş hayatında bir programcının kullanalabileceği bilumum yeniden yapılandırma metotları kullanılmaktadır. Bu kata benim şahsen her gün ya da gün aşırı yaptığım favori katalardandır.

Okumaya devam et

Ultra Lüks

Biliyorsunuz yazılim sektörü sadece biz yazılımcılardan oluşmuyor. Bu sektörün proje yöneticisi, satış elemanı, testcisi gibi emekçileri de var. Bu meslek gurupları içinde teknik anlamda yazılımın nasıl yapılması gerektiğini bilen ya da bilmesi gereken biz yazılımcılarız. Bu sektördeki diğer meslek guruplarından bu konuda bir ümit beklemeyin.

Okumaya devam et

Melek Programcılar ve Şeytan Yatırımcılar

Melek yatırımcıları (business angels) bilirsiniz; hani şu yeni kurulmuş firmalara (startup) yatırım yapan şahıslar. Melek programcıları bilir misiniz? Bunlara gelmeden önce şeytan yatırımcıları açıklamam gerekiyor. Melek yatırımcıların yanında bir de şeytan yatırımcılar (business devils) vardır. Bunlar da melek yatırımcılar gibi yatırım yaparlar, ama niyetleri iyi değildir. Maksatları bellidir; kısa zamanda firmayı satıp (exit), para yapmak. Bu uğurda yapmayacakları yoktur. Genelde dünyadan ve ticaretten haberi olmayan, belki üniversiteyi yeni bitirmiş, İnternet üzerinden uygulanabilecek iyi bir ticari fikre sahip bir veya birden fazla programcının kurduğu firmalardır kendilerine seçtikleri kurbanlar. Ben bu programcılara melek programcılar diyorum. Okumaya devam et