İçeriğe geç
parazade
Freelance Çalışma

Yazılım Projeleri: Portfolyoya Eklenecek Seviyeye Göre 20 Proje Fikri

Yayın: · Son güncelleme:

· 8 dk okuma

Kısaca

Portfolyo için en iyi yazılım projeleri, seviyenize uygun, bitmiş, yayında ve size ait olan projelerdir. Başlangıçta komut satırı araçları ve küçük oyunlar, orta seviyede veritabanı ve API kullanan web uygulamaları, ileri seviyede ise kullanıcı girişi, test ve yayın süreci olan tam ürünler önerilir.

Yazılım Projeleri: Portfolyoya Eklenecek Seviyeye Göre 20 Proje Fikri
Fotoğraf: Pexels / Pixabay
İçindekiler
  1. Proje seçerken neye bakılır?
  2. Başlangıç seviyesi: 7 proje fikri
  3. Kodlama ile oyun yapma: küçükten başlamak
  4. Orta seviyede hangi projeler yapılır?
  5. Kodlama örnekleri ile proje arasındaki fark
  6. İleri seviye için 6 tam ürün önerisi
  7. Yapay zekâ özellikli proje fikirleri
  8. Bir projeyi nasıl planlarsınız?
  9. Yazılım fikirleri tükendiğinde ne yapılır?
  10. Projeyi bir ekiple yapmak
  11. Bitmiş projeyi işverene nasıl sunarsınız?
  12. Bu hafta hangi projeyle başlamalısınız?

Portfolyo için en iyi yazılım projeleri, seviyenize uygun, bitmiş, yayında ve size ait olan projelerdir. Başlangıç seviyesinde komut satırı araçları ve küçük oyunlar, orta seviyede veritabanı ve dış veri kullanan web uygulamaları, ileri seviyede ise kullanıcı girişi, test ve yayın süreci olan tam ürünler önerilir. Her projenin size hangi beceriyi kazandırdığını bilmek, hangisini seçeceğinize karar vermeyi kolaylaştırır.

Aşağıda üç seviyeye ayrılmış 20 proje fikrini, her birinin öğrettiği beceriyle birlikte bulacaksınız. Ardından bir projeyi nasıl seçeceğinizi, kapsamı nasıl küçük tutacağınızı ve bitmiş bir projeyi işverene nasıl sunacağınızı anlatıyoruz.

Proje seçerken neye bakılır?

İyi bir proje, mevcut seviyenizin biraz üstünde olan ve bitirilebilir büyüklükteki projedir. Çok kolay bir proje yeni bir şey öğretmez; çok büyük bir proje ise yarıda kalır. Yarım kalmış bir proje, portfolyoda hiç olmamasından daha iyi bir sinyal vermez.

Seçim yaparken üç soru sorun.

Bu proje bana hangi yeni beceriyi öğretecek? İki ila dört hafta içinde ilk çalışan sürümü çıkarabilir miyim? Hedeflediğim iş ilanlarında bu beceri isteniyor mu? Üç soruya da evet diyebiliyorsanız proje uygundur.

Kendi kullanacağınız bir araç yapmak motivasyonu artırır. Bir kulübün etkinlik listesi, ailenizin market alışveriş listesi ya da kendi kitap okuma takibiniz, gerçek bir kullanıcısı olan projeye dönüşür. Gerçek kullanıcı, gerçek geri bildirim demektir. Uygulamanızı kullanan tek bir kişinin bile söylediği "şu düğmeyi bulamadım" cümlesi, size bir kursun öğretemeyeceği şeyi öğretir.

Başlangıç seviyesi: 7 proje fikri

Başlangıç seviyesi projeleri, temel kavramları birleştirmeyi öğretir: değişken, koşul, döngü, fonksiyon ve basit veri yapıları. Bu projeler genellikle tek dosyadan oluşur ve komut satırında ya da çok basit bir arayüzde çalışır. Amaç, bir programı baştan sona kendi başınıza yazabildiğinizi görmektir.

No Proje Öğrettiği beceri
1 Sayı tahmin oyunu Döngü, koşul, kullanıcı girdisi
2 Not ortalaması hesaplayıcı Liste, fonksiyon, hesaplama
3 Yapılacaklar listesi (komut satırı) Listeye ekleme ve silme, dosyaya kaydetme
4 Basit harcama takipçisi Dosya okuma-yazma, kategoriye göre toplama
5 Adam asmaca Metin işleme, oyun döngüsü
6 Birim dönüştürücü Fonksiyonlar, girdi doğrulama
7 Kişisel tanıtım sayfası HTML, CSS, sayfa yapısı, yayına alma

Bu listede yapılacaklar listesi ve harcama takipçisi en öğretici olanlardır, çünkü veriyi bir dosyada kalıcı olarak saklamayı gerektirir. Program kapandığında verinin kaybolmaması, ileride veritabanı kavramını anlamanın ilk adımıdır.

Kodlama ile oyun yapma: küçükten başlamak

Kodlama ile oyun yapma, temel kavramları eğlenceli biçimde çalıştırmanın iyi bir yoludur. Sayı tahmin oyunu ve adam asmaca, metin tabanlı oldukları için grafik bilgisi gerektirmez. Bir sonraki adım olarak yılan oyunu ya da tuğla kırma gibi basit iki boyutlu oyunlar, döngüler ve koordinatlarla çalışmayı öğretir.

Daha büyük oyunlar için bir oyun motoru öğrenmek gerekir. Oyun motoru, fizik, çizim ve ses gibi işleri hazır olarak sunar ve sizin oyun mantığına odaklanmanızı sağlar. Yapay zekâ araçlarının oyun geliştirmeye nasıl yardım edebileceğini yapay zekâ ile oyun yapmak yazısında ele aldık.

Kâğıt üzerinde uygulama ekran taslağı çizen geliştirici
Kod yazmadan önce ekranları kâğıda çizmek, projenin kapsamını küçük tutmaya yardım eder. Fotoğraf: Firmbee / Pixabay

Orta seviyede hangi projeler yapılır?

Orta seviye projeler, birden çok parçanın birlikte çalışmasını öğretir: bir arayüz, bir veritabanı ve dış bir veri kaynağı. Bu projelerle ilk kez gerçek bir uygulamanın yapısını görürsünüz. Çoğu web tabanlıdır ve yayına alınabilir.

No Proje Öğrettiği beceri
8 Hava durumu uygulaması Dış bir API ile veri çekme, JSON işleme
9 Kitap ya da film takip uygulaması CRUD işlemleri, veritabanı tasarımı
10 Bağlantı kısaltıcı Sunucu tarafı yönlendirme, benzersiz kod üretme
11 Blog sistemi Kullanıcı girişi, metin kaydetme, sayfalama
12 Döviz ya da birim çevirici web uygulaması API kullanımı, form işleme, hata yönetimi
13 Kulüp etkinlik kayıt sistemi Form, veritabanı, e-posta bildirimi
14 Basit anket uygulaması Veri toplama, sonuçları grafikle gösterme

Bu seviyede en sık yapılan hata, her şeyi aynı anda eklemeye çalışmaktır. Bir blog sisteminin ilk sürümünde yalnız yazı ekleme ve listeleme yeterlidir. Yorum, etiket ve arama özellikleri sonraki sürümlere bırakılabilir. Önce çalışan en küçük sürümü bitirmek, yani bir MVP çıkarmak, projenin yarıda kalmasını önler.

Kodlama örnekleri ile proje arasındaki fark

Kodlama örnekleri, tek bir kavramı göstermek için yazılmış kısa kod parçalarıdır: bir listeyi sıralamak, bir dosyayı okumak, bir API'ye istek atmak. Proje ise bu parçaları bir araya getirip gerçek bir ihtiyacı karşılayan, baştan sona çalışan bir bütündür. Kurslarda yazdığınız örnekler öğrenme için gereklidir, ama portfolyoda tek başına pek bir şey anlatmaz.

Örnekleri projeye dönüştürmenin yolu, onlara bir kullanıcı ve bir amaç eklemektir. Dosya okuma örneğini, bankadan indirdiğiniz harcama dosyasını kategorilere ayıran bir araca çevirmek; API örneğini, bulunduğunuz şehrin hava durumunu gösteren bir sayfaya dönüştürmek gibi. Bu küçük adım, bir alıştırmayı anlatılabilir bir projeye çevirir.

İleri seviye için 6 tam ürün önerisi

İleri seviye projeler, bir ürünü baştan sona yayına almayı ve sürdürmeyi öğretir. Kullanıcı yönetimi, güvenlik, test, yayın süreci ve hata izleme bu seviyede devreye girer. Bu projelerden biri, junior başvuruda portfolyonun merkezi olabilir.

No Proje Öğrettiği beceri
15 Randevu yönetim sistemi Rol bazlı yetki, takvim mantığı, çakışma kontrolü
16 Küçük işletme stok takibi İlişkisel veritabanı, raporlama, dışa aktarma
17 Gerçek zamanlı sohbet uygulaması Anlık iletişim, oturum yönetimi
18 Kişisel finans paneli Veri görselleştirme, kategori analizi, güvenli veri saklama
19 İş ilanı toplayıcı Veri çekme, zamanlanmış görevler, filtreleme
20 Mobil alışkanlık takip uygulaması Mobil geliştirme, yerel bildirimler

Bu seviyede projeye birim testi eklemek önemli bir fark yaratır. Junior adaylar arasında test yazan az kişi vardır ve birkaç anlamlı test, kod kalitesine önem verdiğinizi gösterir. Yayın sürecini de otomatikleştirebilirseniz, ekip ortamına hazır olduğunuza dair güçlü bir sinyal verirsiniz.

Yapay zekâ özellikli proje fikirleri

Son dönemde birçok aday, projelerine bir yapay zekâ modeliyle çalışan bir özellik eklemeyi tercih ediyor. Örneğin kişisel finans panelinde harcama açıklamalarını otomatik kategorilere ayıran bir özellik ya da blog sisteminde yazı özetini çıkaran bir buton. Bu tür özellikler genellikle bir modelin API'si üzerinden eklenir.

Burada dikkat edilecek iki nokta var. Birincisi, API anahtarınızı kodun içine yazıp herkese açık bir depoya yüklememek; anahtarı ortam değişkeninde tutun. İkincisi, yapay zekâ özelliğinin projenin tek değeri olmaması; asıl uygulama mantığını sizin yazmış olmanız beklenir. Bu yaklaşımın ayrıntıları için yapay zekâ ile uygulama yapmak yazısına bakabilirsiniz.

Bir projeyi nasıl planlarsınız?

Bir projeyi planlamak, onu küçük ve bitirilebilir parçalara bölmekle başlar. Kod yazmaya geçmeden önce kâğıda üç şey yazın: proje ne yapacak, kim kullanacak ve ilk sürümde hangi özellikler olacak. Bu üç cümle, projenin dağılmasını önler.

Örnek olarak randevu yönetim sistemini ele alalım. Hedef kullanıcının küçük bir kuaför olduğunu varsayalım. İlk sürüm için üç özellik seçilir: müşteri randevu oluşturabilir, kuaför günlük randevuları listeler, aynı saate iki randevu verilemez. Hafta hafta plan şöyle olabilir:

  1. Birinci hafta: Veritabanı tablolarını tasarlayın, randevu ekleme ve listeleme işlevini yazın.
  2. İkinci hafta: Çakışma kontrolünü ekleyin ve bunun için testler yazın.
  3. Üçüncü hafta: Basit bir arayüz hazırlayın ve kuaför için giriş ekranı ekleyin.
  4. Dördüncü hafta: Uygulamayı yayına alın, README dosyasını yazın, ekran görüntüleri ekleyin.

Dört haftanın sonunda çalışan bir ürün çıkar. Hatırlatma mesajı, ödeme ya da çoklu şube desteği gibi özellikler sonraki sürümler için not edilir. Bu yöntem, büyük bir fikri yönetilebilir bir projeye çevirir.

Yazılım fikirleri tükendiğinde ne yapılır?

Yazılım fikirleri tükendiğinde mevcut bir uygulamanın küçük bir parçasını yeniden yapmak iyi bir alıştırmadır. Kullandığınız bir uygulamanın tek bir özelliğini, örneğin bir alışveriş uygulamasının sepet mantığını, kendi yönteminizle yeniden yazmayı deneyin. Amaç kopyalamak değil, o özelliğin arkasındaki mantığı anlamaktır.

Projeyi bir ekiple yapmak

Tek başına yapılan projelerin eksik bıraktığı bir beceri vardır: başkasıyla aynı kod üzerinde çalışmak. İki üç kişilik küçük bir ekip kurup bir proje yapmak, iş hayatındaki günlük akışa çok yakın bir deneyim sunar. Görevleri bölüşmek, birbirinizin kodunu incelemek ve aynı dosyada çakışan değişiklikleri birleştirmek bu sırada öğrenilir.

Ekip projesinde rolleri baştan netleştirin: biri arayüzü, biri sunucu tarafını, biri test ve yayın sürecini üstlenebilir. Her değişikliği ayrı bir dalda yapıp birleştirme isteğiyle ana koda eklemek, profesyonel ekiplerin çalışma biçimini taklit eder. Hackathonlar ve okul kulüpleri, böyle bir ekip kurmak için uygun ortamlardır. CV'de ekip projesini anlatırken kendi katkınızı açıkça belirtin.

Bitmiş projeyi işverene nasıl sunarsınız?

Bitmiş bir projeyi sunmanın ilk adımı, iyi yazılmış bir README dosyasıdır. Bu dosyada projenin ne yaptığı, hangi teknolojilerle yazıldığı, nasıl çalıştırılacağı, ekran görüntüleri ve canlı bağlantı yer alır. İşveren çoğu zaman kodu satır satır okumaz; önce README'yi ve çalışan sürümü inceler.

İkinci adım, projeyi GitHub profili sayfanızda sabitlemektir. Profilinizde en iyi iki üç projenin üstte görünmesi, ziyaretçinin onları ilk bakışta bulmasını sağlar. Commit mesajlarınızın açıklayıcı olması da düzenli çalıştığınızı gösterir.

Üçüncü adım, projeyi anlatmaya hazırlanmaktır. Mülakatta "neden bu teknolojiyi seçtiniz", "en zor kısım neydi", "bugün olsa neyi farklı yapardınız" gibi sorular gelir. Bu sorulara verilecek dürüst ve somut cevaplar, projenin kendisi kadar değerlidir. Portfolyo hazırlığının başvuru sürecindeki yerini junior yazılımcı olarak ilk iş yazısında ayrıntılı anlattık.

Bu hafta hangi projeyle başlamalısınız?

Bu hafta yapılacak en somut iş, bulunduğunuz seviyeye uygun tablodan tek bir proje seçmek ve ilk sürümün özelliklerini üç maddeyle yazmaktır. Seviyenizden emin değilseniz başlangıç tablosundan seçin; kolay gelirse hızla bitirip bir üst seviyeye geçersiniz.

Projeyi seçtikten sonra bir GitHub deposu açın ve ilk commit'i bugün yapın, boş bir README dosyası bile olsa. Projeyi hangi dille yazacağınıza karar vermediyseniz yazılım dilleri yazısındaki karar tablosuna, genel çalışma planı için yazılım nasıl öğrenilir yazısına bakabilirsiniz. Dört hafta sonra hedef, yayında ve çalışan bir ilk sürümdür.

Sıkça Sorulan Sorular

Yazılım projesi fikri nasıl bulunur?

En iyi fikirler günlük hayatta tekrar eden küçük sorunlardan çıkar: bir harcama listesi, bir kulübün etkinlik kaydı, bir aile işletmesinin randevu defteri. Kendi kullanacağınız bir araç yapmak, projeyi bitirme motivasyonunu artırır. Listelerden fikir alıp ona kendi kullanım senaryonuzu eklemek de işe yarar.

Kodlama örnekleri portfolyoya eklenir mi?

Kurs sırasında yazdığınız küçük kodlama örnekleri öğrenme için faydalıdır, ama portfolyoda öne çıkarılmaları önerilmez. İşveren herkesin aynı kursta yaptığı alıştırmaları ayırt edemez. Portfolyoda kendi fikrinizle, baştan sona yaptığınız projeleri öne çıkarın.

Kodlama ile oyun yapma nereden başlar?

İlk adım olarak metin tabanlı ya da tek ekranlı basit oyunlar iyi bir başlangıçtır: sayı tahmin oyunu, adam asmaca ya da yılan oyunu. Bu oyunlar döngü, koşul ve kullanıcı girdisi gibi temel kavramları eğlenceli biçimde çalıştırır. Daha büyük oyunlar için Unity ya da Godot gibi bir oyun motoru öğrenmek gerekir.

Portfolyoda kaç proje olmalı?

Junior başvuru için iki üç iyi hazırlanmış proje çoğu zaman yeterlidir. Proje sayısından çok her birinin bitmiş, yayında ve iyi açıklanmış olması önemlidir. On yarım projeden oluşan bir profil, üç tamamlanmış projeden daha zayıf bir izlenim bırakabilir.

Yapay zekâ ile yazılmış proje portfolyoya konur mu?

Yapay zekâ araçlarından yardım almak yaygın bir uygulamadır, ama projenin her satırını açıklayabilmeniz gerekir. Mülakatta projeniz hakkında ayrıntılı sorular gelir ve anlaşılmadan kopyalanmış kod hemen fark edilir. Aracı kullandıysanız bunu README'de belirtmek dürüst bir yaklaşımdır.

İlgili terimler

Veritabanı(Database)Veritabanı, verilerin düzenli, aranabilir ve güncellenebilir biçimde saklandığı elektronik kayıt sistemidir. Müşteri listeleri, siparişler ve ürün bilgileri gibi veriler veritabanlarında tutulur.API(Application Programming Interface)API (Application Programming Interface, uygulama programlama arayüzü), farklı yazılımların önceden tanımlanmış kurallarla birbirine istek gönderip cevap almasını sağlayan arayüzdür. Yapay zekâ modelleri de çoğu zaman API üzerinden kullanılır.JSONJSON (JavaScript Object Notation), verileri anahtar-değer çiftleri ve listeler hâlinde, hem insanların hem makinelerin kolayca okuyabileceği metin biçiminde saklayan ve taşıyan veri formatıdır.CRUDCRUD, veri üzerinde yapılan dört temel işlemin baş harflerinden oluşan kısaltmadır: Create (oluşturma), Read (okuma), Update (güncelleme) ve Delete (silme). Çoğu yazılımın veri yönetimi bu dört işleme dayanır.MVP(Minimum Viable Product)MVP (Minimum Viable Product, minimum uygulanabilir ürün), bir ürün fikrini gerçek kullanıcılarla test etmek için yalnızca temel işlevleri içeren ilk sürümdür. Amaç en az emekle en fazla öğrenmeyi sağlamaktır.Birim Testi(Unit Testing)Birim testi (unit test), bir yazılımın en küçük test edilebilir parçasının, genelde tek bir fonksiyon ya da metodun, diğer bileşenlerden bağımsız olarak doğru çalışıp çalışmadığını kontrol eden otomatik testtir.READMEREADME, bir yazılım projesinin kök klasöründe bulunan ve projenin ne işe yaradığını, nasıl kurulup çalıştırılacağını ve nasıl katkı verileceğini anlatan, genellikle Markdown biçiminde yazılmış tanıtım dosyasıdır.GitHub Profili(GitHub Profile)GitHub profili, bir geliştiricinin GitHub'daki herkese açık sayfasıdır. Kod depolarını, katkı geçmişini, sabitlenmiş projeleri ve kısa bir tanıtımı gösterir; birçok işveren bu sayfayı adayın çalışmalarını görmek için inceler.

İlgili yazılar

Yapay Zeka ile Kazanç

Yapay Zekâ ile Oyun Yapmak: Basit Bir Oyunu Baştan Sona Üretme

Yapay zekâ ile oyun yapmak, oyunun kurallarını tarif edip kodu ChatGPT gibi bir asistana yazdırmak, görsel ve sesleri yapay zekâ araçlarıyla ya da lisanslı kaynaklardan üretmek ve sonucu deneyerek düzeltmekle olur. Tarayıcıda çalışan basit bir oyun birkaç akşamda çıkabilir; mobil mağaza ve ticari kullanım için lisans, test ve emek gerekir.

· 8 dk okuma
Freelance Çalışma

Junior Yazılımcı Olarak İlk İş: Portfolyo, Başvuru ve Mülakat Hazırlığı

Junior yazılım mühendisi iş ilanlarına başvurmadan önce iki üç bitmiş ve yayında olan proje, düzenli bir GitHub profili ve tek sayfalık bir CV hazırlamak gerekir. Başvurular ilana göre kişiselleştirilmeli; mülakatlar için temel veri yapıları, kendi projelerinizi anlatma ve davranışsal sorulara hazırlık yapılmalıdır. Süreç çoğu zaman aylar sürer ve çok sayıda ret içerir.

· 8 dk okuma