Yazılımcılar İçin Yan Proje Oluşturma Rehberi

İster hobi amaçlı olsun ister maddi amaçlı her yazılımcının bir yan projesi olmalıdır. Peki yan proje oluştururken nelere dikkat edilmelidir, nasıl bir yan projemiz olmalıdır?

Organize olalım beyler
Yan proje (side project) için öncelikle bir fikir bulmak gerekli. Bu projenin amacı ne olacak? Hangi ihtiyacı çözecek? Yeni bir fikir mi olacak yoksa mevcut bir fikrin daha iyi uygulanmış bir hali mi olacak? Sadece yeni bir teknolojiyi öğrenmek için mi? Deneysel mi olacak ya da eğlenceli mi? Yoksa maddi bir getirisi olacak mı? Bu proje ürün olursa kimler kullanacak? Ürünü kullanacak kişilere erişip geri bildirim alabilecek miyim? . . . Bu soruların doğru bir cevabı yok, cevaplar size bağlı. Ama proje bir amaca hizmet edip bir ihtiyacı çözecekse, hele birde maddi getirisi olacaksa motivasyonunuz yükselecektir. Bunun yanında sadece eğlence amaçlı olan deneysel bir proje yapmak stressiz bir öğrenme ortamı sağlayacaktır. Gün içinde proje için aklınıza gelen her şeyi not alın. Not almazsanız unutursunuz. Neyi unuttuğunuz hatırlamaya çalışırken neye odaklanmanız gerektiğini kaçırırsınız.

Yan projeyi yeni bir teknoloji ile mi yapacaksınız yoksa alışkın olduğunuz teknolojileri mi kullanacaksanız? Alışkın olduğunuz teknolojilerin biraz dışına çıkın. Örneğin yeni bir veri tabanı teknolojisi ya da arayüz için yeni bir javascript kütüphanesi kullanabilirsiniz. Yeni şeyler denerken birden fazla alan için (veri tabanı, web arayüzü, mobil platform, API servisleri, kuyruk sistemleri gibi) yenilikten kaçının. Önce sadece bir alan için, örneğin veri tabanı için, yeni bir şeyler deneyin ve projenin biraz olgunlaşmasını bekleyin, daha sonra diğer alanlarda da yeni teknolojiler deneyebilirsiniz.. Bilmediğiniz bir teknolojiyi kullanmak projeyi sizin için daha heyecanlı yapacaktır.

Hazır çözümler için kod yazmaktan kaçının. Bir blog için içerik yöneticisine (CMS) ihtiyacınız varsa WordPress, bir e-ticaret sistemine ihtiyacınız varsa OpenCart kullanabilirsiniz. Başkalarının daha önce karşılaştığı ortak ihtiyaçlar için (login, loglama, toplu e-posta gönderme vb.) enerjinizi boşa harcamayın. Projenin fark yaratacak kısmına odaklanın. Mükemmelliştirmeye çaba sarf etmeyin. Tabii ki spagetti kod olmasın, tasarım kalıplarına uyun, ama önce proje çalışsın, sonra kodları ideal formuna sokarsınız.

Az para harcayın, hatta hiç harcamayın. İhtiyacınız olan birçok aracın ücretsiz sürümü büyük ihtimalle yan projeniz için yeterli olacaktır. Yan projeniz, yalın ürün (Minimum Viable Product) olmadan alan adı, hosting, logo tasarımı gibi masraflara girmeyin. Microsoft Azure, Amazon AWS, Google Cloud gibi bir çok hizmetin ücretsiz ürünleri bulunmaktadır. GitLab, Jira, Redis ... gibi ihtiyaç duyacağınız bir çok aracın, kendinizin host edebileceği ücretsiz bir sürümü vardır.

Düzenli olarak kod yazın, araştırın. Yan projeniz için bir teslim tarihi (deadline) koymak yerine kendinize proje için her hafta 5 saat süre ayırmak gibi bir hedef koyun. Bu süre araştırma için de geçerli olabilir. Projeyi küçük lokmalara ayırın. Parça parça işler planlayın ve yapın. Önceliklendirme yapın. Takıldığınız yer olduğunda bundan bağımsız başka bir parçayı yaparak devam edin ve takıldığınız yer hakkında eş zamanlı olarak araştırma yapın. Haftada bir gününüzü ayırmak yerine her gün küçük zaman dilimlerinde projeye bakmak , nerede kaldığınızı hatırlamanızda kolaylık sağlar. Eğer haftada bir gün bakmayı planlarsanız bir hafta aksarsa aralık iki haftaya çıkar. Projeye sık sık bakmak aklınızın köşesinde sürekli projeye ait detaylar ve sorunlar hakkında düşünmenizi sağlar.

Kodlarınızı GitHub gibi görülebilecek bir yerde paylaşın. Kimsenin aklına gelmeyen bir çözüm bulduysanız o başka. Kodlarınızı başkalarının görmesi düşüncesi kaliteyi artırır, sizi tasarım şablonlarına uygun kod yazmaya zorlar. Ayrıca GitHub hesabınızı öz geçmişinizde göstermek sizi bir adım öne çıkarır.

Proje takibi için araçlar kullanın. Organize olun, not alın, kod versiyonlama sistemleri kullanın. Tek kişi bile olsanız bunları yapın.

Kodlama dışında da yan projeleriniz olabilir. Robotik kodlama, IOT projesi, endüstriyel programlama script dilleri öğrenimi gibi konularla elektroniğe yakınlaşabilirsiniz. Siber güvenlik, yapay zeka, veri analizi gibi konularda araştırma yapabilirsiniz. Blog yazma, medium'da yazı yazma, eğitici videolar çekme, sosyal medya içeriği oluşturma, LinkedIn profili oluşturma,  etkinlikler düzenleme gibi farklı şeyler yapabilirsiniz. Açık kaynak kodlu projelere pull request oluşturabilirsiniz. Açık kaynak kodlu projelerde Türkçe'ye çeviri katkısı sağlayabilirsiniz. Yöneticilerinizle konuşup şirket içi kullanılabilecek bir proje geliştirebilirsiniz. İngilizce konuşma kursuna (birçok iş ilanında standard hale gelmeye başladı) gidebilirsiniz. İsterseniz eş dost akrabanın bilgisayarına format atabilirsiniz.

Yan projenizi başkasına anlatırken hangi ihtiyacı çözmek için yola çıktığınızı anlatın. Sanki bir yatırımcıdan yatırım almak istiyormuşçasına, ürünü satmaya çalışıyormuşçasına sunum hazırlayın ve arkadaşlarınıza sunun. Bu sizin projeyi daha iyi anlamanıza olanak sağlar ve sunum yeteneğinizi geliştirir.

Boş zamanlarınızda kendinizi geliştirmeyi alışkanlık haline getirin.

Başarısız olmaktan korkmayın, denemezseniz başarısız da olamazsınız.

Yorumlar

Bu blogdaki popüler yayınlar

Yeteneğini Kaybeden Yazılımcı

KPSS Çalışan Yazılımcı

On-Prem Çilesi