Nasıl Yazılım Geliştirilir?

Bu Makalede:İşi ÖğrenmekBir Program Geliştirmekİş Bulmak

Yazılımcı olmak kazançlı bir kariyer planıdır. Bu kişiler ciddi pazarlanabilir becerilere sahip insanlardır. Ama tam olarak ne yaparlar? Onları muhtemelen yenemeyeceğinden, onlara katılman gerekecek. İyi bir ürün geliştirecek kadar teknoloji meraklısı ve toplumun nabzını tutan biri misin? Biraz beyin fırtınası ile ve tabii ki, aşağıdaki 1. Adımdan başlayarak öyle olacaksın!

Kısım 1
İşi Öğrenmek

  1. 1
    Hangi temel yazılım geliştirme türüyle ilgilendiğini belirle. Yazılım geliştirmenin iki temel kampı vardır: Uygulama Geliştirme ve Sistem Geliştirme. Uygulama Geliştirme, kullanıcıların ihtiyaçlarını karşılayan programlar oluşturmaya odaklanmıştır. Bunlar, cep telefonu uygulamalarından kaliteli video oyunlarına, kurumsal düzeyde muhasebe yazılımlarına kadar geniş bir yelpazede yer alır. Sistem Geliştirme ise yaşam döngüsü gelişimini kullanarak işletim sistemlerinin oluşturulmasına ve sürdürülmesine odaklanmıştır. Sistem Geliştirme genellikle ağ işletilebilirliği ve veri güvenliğini kapsar.[1]
  2. 2
    Bir programlama dili öğren. Herkes bir fikir bulabilir, ancak bu fikirleri somut bir şeye dönüştürebilecek olan kişi bir geliştiricidir. Yazılımın sadece tasarım yönü üzerinde çalışmak istesen bile, kodlamaya biraz aşina olman ve temel prototipler oluşturabilmen gerekir. Kendi kendine öğrenebileceğin çok çeşitli programlama dilleri var. Daha yararlı ve önemli olanlarından bazıları şunlardır:
    • C - C hâlâ kullanımda olan eski dillerden biridir ve bu listedeki diğer dillerin çoğunun temelidir. C, düşük seviyeli programlar geliştirmek için kullanılır ve bilgisayarın donanımıyla çok yakından çalışır.
    • C++ - Bu, C'nin nesne yönelimli sürümüdür ve dünyadaki en popüler programlama dilidir. Chrome, Firefox, Photoshop ve diğer pek çok program C++ ile yazılmıştır. Ayrıca video oyunları oluşturmak için çok popüler bir dildir. C++ geliştiricileri her zaman çok talep görürler.
    • Java - Java, C++ dilinden evrilmiştir ve kolay taşınabilirliği nedeniyle kullanılır. Hemen hemen her sistem, Java yazılımının çalışmasını sağlayan bir Java Sanal Makinesini çalıştırabilir. Video oyunlarında ve iş yazılımlarında yaygın olarak kullanılmaktadır ve birçok kişi bunu önemli bir dil olarak önermektedir.
    • C# - C#, Microsoft'un .NET çerçevesinin bir parçası olan Windows tabanlı bir dildir. Java ve C++ ile yakından ilişkilidir ve Java'yı öğrenirsen C#'a hızlıca geçiş yapabilirsin. Bu dil özellikle Windows veya Windows Phone yazılımı ile çalışan geliştiriciler için kullanışlıdır.
    • Objective-C - Bu, Apple sistemleri için özel olarak tasarlanmış, C dilinin başka bir kuzenidir. iPhone ve iPad uygulamalarında son derece popülerdir. Bir serbest çalışan (freelancer) için öğrenilecek harika bir dildir.
    • Python - Bu, öğrenmesi inanılmaz derecede kolay bir dildir. Python web geliştirmede özelleşmiştir.
    • PHP - Bu tam olarak yazılım geliştirme olmasa da, web geliştirmeye başlamayla ilgileniyorsan PHP gereklidir. Yazılım geliştirme kadar kazançlı da değildir ancak PHP geliştiricilerine her zaman çok iş vardır.
  3. 3
    Öğrenmene yardımcı olacak kaynaklar bul. Kitapçıların çoğunda yazılım kitaplarına ayrılmış bölümler bulunur ve Kitapyurdu ve diğer kitap sitelerinde yüzlerce kitap vardır. İyi yazılmış bir programlama kitabı muhtemelen sahip olabileceğin en iyi kaynak olacaktır ve projeler üzerinde çalışırken hızlı bir şekilde referans almanı sağlayacaktır.
    • Kitapların haricinde İnternet, rehber ve öğretici deryasıdır. CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools ve daha pek çok sitede tercih ettiğin dilde rehberler bulabilirsin.
  4. 4
    Ders al. Yazılım geliştirme işine girmek için bir yerden mezun olmaya ihtiyacın olmasa da, kurslarda veya meslek edinme kurslarında birkaç derse girmenin zararı olmaz. Bu sana bire bir eğitimin avantajını sunacak ve kendi başına öğreniyor olman durumunda muhtemelen çözemeyeceğin problemleri çözmen noktasında kendini zorlamanı sağlayacaktır.
    • Kursların sana bir maliyeti olacaktır, bu yüzden öğrenmek istediğin şeyi öğrenmene yardımcı olacak kurslara kaydolduğundan emin ol.
    • Pek çok geliştirici, sektöre sadece becerilerine dayanarak girebilse de, dört yıllık bir üniversitenin bilgisayar bilimleri alanında lisans derecenin olması diğerlerinden bir adım önde başlamana yardımcı olacaktır. Diploma sana daha geniş bir bilgi birikimi edinmenin yanında matematik ve mantık gibi derslere de erişim sağlayacaktır.
  5. 5
    Favori projen üzerinde çalış. Yeni programlama becerilerini gerçek dünyadaki işlere uygulamaya başlamadan önce, kendin için bazı projeler üzerinde çalış. Programlama dilini kullanarak problem çözmek için kendini zorla. Bu, becerilerini geliştirmekle kalmayacak, aynı zamanda özgeçmişini oluşturmana da yardımcı olacaktır.
    • Örneğin; bilgisayarın takvim programını kullanmak yerine, kendi programını tasarlamayı dene!
    • Eğer video oyunu geliştirmeyle ilgileniyorsan grafiklere veya karmaşık mekaniklere odaklanmayan basit oyunlar üzerinde çalış. Bunun yerine, onları eğlenceli ve benzersiz hâle getirmeye odaklan. Kendin ürettiğin küçük oyunlardan oluşan bir koleksiyon, portföyünde harika görünecektir.
  6. 6
    Sorular sor. İnternet, diğer geliştiricilerle iletişim kurmak için harika bir platform. Eğer projelerinden birinde takıldıysan StackOverflow gibi siteler üzerinden yardım iste. Sorunu akıllı bir şekilde sorduğundan ve hâlihazırda birkaç olası çözümü denediğini kanıtlayabileceğinden emin ol.
  7. 7
    Her gün pratik yap. Favori projelerin üzerinde sadece bir saat bile olsa her gün çalış. Bu, taze kalmana ve sürekli yeni teknikler öğrenmene yardımcı olacaktır. Çoğu geliştirici, her gün programlama dilleriyle meşgul olarak bir dil öğrenme konusunda başarılı olmuşlardır.[2]
    • Her gün kodlama yapmak için belirli bir süre ayır ya da projen için bir zaman sınır koy. Hafta içi her gün projelerin üzerinde çalışmayı denersen hafta sonunda rahat edebilirsin.

Kısım 2
Bir Program Geliştirmek

  1. 1
    Fikir fırtınası yap. İyi bir programın amacı kullanıcıların hayatını kolaylaştırmaktır. Gerçekleştirmek istediğin amaca yönelik şu anda mevcut olan bir yazılım ara ve sürecin daha kolay veya pürüzsüz olmasını mümkün kılacak yolların olup olmadığını belirle. Başarılı bir program, kullanıcılara birçok fayda sağlayan bir programdır.
    • Günlük görevlerini bilgisayarından incele. Bu görevlerin bir bölümünü bir programla otomatikleştirmenin bir yolu var mı?
    • Her fikri yazıya dök. Bir fikir o an aptalca ya da saçma gibi görünse bile, yararlı ya da dâhice bir şeye dönüşebilir.
    • Diğer programları incele. Ne yapıyorlar? Bunu daha iyi nasıl yapabilirler? Eksik yönleri neler? Bu soruları yanıtlamak, kendi fikirlerini üretmene yardımcı olabilir.
  2. 2
    Bir tasarım dökümanı yaz. Bu döküman, özellikleri ve proje ile neyi başarmayı planladığını özetleyecektir. Geliştirme süreci boyunca tasarım dökümanına başvurmak projenin yolunda ilerlemesine yardımcı olacaktır.
  3. 3
    Bir prototip oluştur. Bu, başarmayı amaçladığın işlevselliği gösteren temel bir programdır. Bir prototip hızlı bir programdır ve çalışan bir tasarım bulana kadar yinelenmelidir. Örneğin; bir takvim programı oluşturuyorsan prototipin etkinlik eklenebilen basit bir takvim (tarihleri doğru gösteren!) olacaktır.
    • Prototipin, sorunların üstesinden gelmek veya daha sonra eklemek istediğin bir fikri düşünmek için yeni yollar buldukça geliştirme süreci boyunca sık sık değişecektir.
    • Prototipin güzel olmak zorunda değil. Aslında, sanat ve tasarım, üzerinde odaklandığın son şeylerden biri olmalı. Takvim örneğini tekrar kullanırsak, prototipinin büyük olasılıkla sadece metin olması gerekir.
  4. 4
    Tekrar tekrar test et. Hatalar her geliştiricinin başının belasıdır. Koddaki hatalar ve beklenmedik kullanımlar, tamamlanmış bir üründe her türlü soruna neden olabilir. Projende çalışmaya devam ederken, mümkün olduğunca test yap. Onu bozmak için elinden geleni yap ve sonra da gelecekte bozulmamasına çalış. Arkadaşlarına ve ailene programını test ettir ve geri bildirim al. Herhangi bir şekilde geri bildirim almak gelişim sürecine yardımcı olacaktır.
    • Programın tarihlerle ilgiliyse garip tarihler girmeyi dene. Eski tarihler veya uzak gelecekteki tarihler programın garip tepkiler vermesine neden olabilir.
    • Yanlış türde değişkenler gir. Örneğin; kullanıcının yaşını soran bir formun varsa bunun yerine bir kelime gir ve programın ne yapacağına bak.
    • Programının bir grafik arayüzü varsa her şeye tıkla. Bir önceki ekrana geri döndüğünde veya düğmelere yanlış sırayla tıkladığında neler olacağına bak.
  5. 5
    Projelerini cilala. Prototipleme ve geliştirme aşaması için kaba bir proje yapmak iyi olsa da, bunu başkalarının kullanmasını istiyorsan cilalama üzerinde biraz zaman geçirmen gerekecektir. Menülerin mantıksal olarak aktığından, Kullanıcı Arayüzü'nün (UI) temiz ve kullanımı kolay olduğundan, göze batan bir şey ya da işleyişi engelleyen hataların bulunmadığından ve göze güzel göründüğünden emin olman gerekir.
    • UI tasarımı ve işlevselliği çok zor ve karmaşık olabilir. İnsanlar, tüm kariyerlerini arayüz tasarlama üzerine yapabiliyorlar. Kişisel projenin kullanımı kolay olduğundan ve göze hoş göründüğünden emin ol. Profesyonel bir UI, bütçe ve ekip olmadan mümkün olmayabilir.
    • Bütçen varsa UI tasarlayabilecek birçok serbest grafik tasarımcı bulabilirsin. Büyük potansiyeli olduğuna inandığın sağlam bir projen varsa iyi bir arayüz tasarımcısı bul ve onu ekibine dâhil et.
  6. 6
    Projelerini GitHub'a koy. GitHub, kodunu başkalarıyla paylaşmanı sağlayan açık kaynaklı bir topluluktur. Bu, kendi kodun hakkında içgörü sahibi olmana ve daha önce karşılaşmış olduğun benzer sorunlara çözüm arayan başkalarına fayda sağlamana yardımcı olacaktır. GitHub, portföyünü oluşturmanın iyi bir yolu olmanın yanı sıra, harika bir öğrenme kaynağıdır.
  7. 7
    Yazılımını dağıt. Bitmiş bir ürünün olduğunda, onu dağıtmak isteyip istemediğine karar verebilirsin. Günümüzde, oluşturduğun yazılımın türüne bağlı olarak bunu çeşitli yollardan yapabilirsin.
    • Küçük ekipler veya bağımsız geliştiriciler için yazılımlarını dağıtmanın en yaygın yollarından biri kişisel bir İnternet sitesidir. Tüm özelliklerin iyice belgelenmiş olduğundan emin ol ve bununla birlikte ekran görüntüleri ve öğreticiler ekle. Yazılımını satıyorsan iyi bir dijital ödeme sistemi ve yazılımı dağıtacağın iyi bir sunucu ayarla.
    • Belirli bir cihaz veya işletim sistemi için yazılım geliştiriyorsan kullanabileceğin birden fazla dijital mağaza bulunur. Örneğin; Android cihazlar için yazılım üretiyorsan uygulamanı Google Play Store, Amazon App Store veya kendi kişisel İnternet siten üzerinden satabilirsin.

Kısım 3
İş Bulmak

  1. 1
    Sözleşmeli işler yap. Her ne kadar alacağın ücret ve güvenilirlik açısından tam zamanlı bir iş kadar olmasa da, sözleşmeli işler yaparak portföyünü önemli ölçüde arttırabilirsin. İş bulmak için Elance ve ODesk (şimdi "Upwork" olarak da biliniyor) gibi sitelere bak. İlk başlarda bir işe uygun bulunmak zor olsa da, ilk işini aldıktan sonra bu süreç çok daha kolaylaşır.
    • Hacker News, sözleşme ve serbest işler için mükemmel bir kaynaktır. "Ask" bölümünü kontrol et.
    • Sözleşmeli bir işi sağlamak için düşük teklif vermek cazip gelse de, hizmetlerini ucuza satma. Hak ettiğinden daha azı için daha fazla çalışmakla kalmayıp aynı zamanda, aynı alanda çalıştığın kişileri kızdırarak çevre edinme konusunda sıkıntı yaşarsın.
    • Bazen sözleşmeli bir işte iyi iş çıkarmak tam zamanlı bir iş almanı sağlayabilir. Her zaman elinden gelenin en iyisini yap!
  2. 2
    Olabildiğince çok insanla çevre edin. Mümkün olduğu kadar çok sayıda toplantıya ve Hackathon'a katıl. Bu sayede, daha çok koda ve çözülmesi gereken sorunlara maruz kalmanın yanında, sektördeki diğer insanlarla tanışabileceksindir. Belki programcıların bodrum katında tek başlarına çalıştığını düşünüyorsundur, ancak tam zamanlı geliştiricilerin büyük çoğunluğu bir takımın parçasıdır ve çevre edinmek en az diğer alanlardaki kadar önemlidir.
  3. 3
    Tam zamanlı pozisyonlara başvur. Deneyimlerinin arasına birkaç sözleşmeli işi ekledikten sonra, özgeçmişini ve portföyünü tam zamanlı çalışmak için daha büyük kuruluşlara göndermeye başlayabilirsin. Monster ve Indeed’in haricinde, GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite ve Hacker News dâhil olmak üzere bakman gereken, geliştiricilere özel çeşitli iş siteleri vardır.
  4. 4
    Becerilerini çeşitlendir. İyi bir yazılımcı genellikle birden fazla dilde yetkindir. Öğreneceğin şeylerin çoğunu iş üzerinde öğrenecek olsan da, bilgini artırmak ve başka bir ya da birkaç dilin temellerini öğrenmek için zaman ayır. Bu yeni projelere geçişi çok daha kolaylaştıracak ve seni daha çok arzu edilen bir aday hâline getirecektir.
  5. 5
    Ödeme konusunda endişelenme. Her giriş seviyesi yazılım geliştirme işi altı rakamlı ödemeler yapacak değil. Aslında, hiçbiri yapmaz. Ancak, yazılım geliştirme ile ilgili iyi olan şey, iş piyasasının inanılmaz derecede güçlü olmasıdır. Bulunduğun konumda yeterince kazanmadığını düşünüyorsan yeni bir şirkette yeni bir pozisyona geçmek (eğer becerilerin varsa) nispeten kolaydır. İlk birkaç işinde emekliliği garanti etmek yerine, elde etmen gereken deneyime odaklan.

Makale Bilgisi

Kategoriler: Bilgisayar ve Elektronik Cihazlar

Diğer dillerde:

English: Develop Software, Español: desarrollar un software, Русский: разрабатывать программное обеспечение, Italiano: Sviluppare un Software, Português: Desenvolver Software, Français: développer un logiciel, Deutsch: Software entwickeln, Nederlands: Software ontwikkelen, 한국어: 소프트웨어 개발하는 법, العربية: تطوير البرمجيات, 日本語: ソフトウェアを開発する, Tiếng Việt: Phát triển phần mềm, हिन्दी: सॉफ्टवेयर बनाएँ (Develop Software), 中文: 开发软件

Bu sayfaya 18 defa erişilmiş.
Bu makale işine yaradı mı?