Bu makaledeki ortak yazarlar Gene Linetsky, MS. Gene Linetsky, San Francisco Körfez Bölgesi’nde bir startup kurucusu ve yazılım mühendisidir. 30 yıldan fazla bir süre boyunca teknoloji sektöründe çalışmıştır ve şu anda işletmeler için akıllı Satış Noktası terminalleri kuran bir teknoloji şirketi olan Poynt’de Mühendislik Direktörü’dür.
Bu makale 11.040 defa görüntülenmiştir.
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!
Adımlar
Kısım 1
Kısım 1 / 3:İşi Öğrenmek
-
1Hangi 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] X Kaynağı araştır
-
2Bir 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Öğ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.
-
4Ders 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.
-
5Favori 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.
-
6Sorular 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.
-
7Her 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] X Kaynağı araştır
Reklam
- 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
Kısım 2 / 3:Bir Program Geliştirmek
-
1Fikir 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.
-
2Bir 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.
-
3Bir 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.
-
4Tekrar 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.
-
5Projelerini 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.
-
6Projelerini 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.
-
7Yazı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.
Reklam
- 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
Kısım 3 / 3:İş Bulmak
-
1Sö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!
-
2Olabildiğ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.
-
3Tam 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.
-
4Becerilerini ç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Ö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.Reklam