Yazılım konusu, günümüz dünyasının ve geleceğin en önemli konuları arasında. Özellikle yapay zekâ ve robotik tartışmaların gündeme geldiği günümüz dünyasında yazılım yapmak, başta genç arkadaşlarımız olmak üzere bilmeyen herkesin rüyası. Yazılımlarla ilgili internet üzerinden ulaşabileceğiniz birçok videolu eğitim ve kurs mevcut. Bu eğitimler aracılığıyla hayallerinize kavuşabilirsiniz.
Yazımızın ardından yazılım nedir, nasıl yapılır gibi en temel soruların cevaplarını aldıktan sonra izleyeceğiniz eğitimlerle birlikte önce yazılımın algoritma kavramını anlayacaksınız, ardından projelerinizi gerçek hayata entegre edeceksiniz. Geleceğin dünyasının bir parçası olabilecek bir yazılımcı belki de bu yazıyı okuyan değerli Webtekno takipçileri arasından biri olacak.
Yazılım nasıl yapılır?
- Adım #1: Ne yapmak istediğinizi ve yönteminizi belirleyin
- Adım #2: Kişisel çalışma programınızı oluşturun
- Adım #3: İşe koyulun
Bir yazılımcının ilk sahip olması gereken özelliklerden birisi planlı ve programlı hareket etmesidir. Plan ve programın yanına bir de disiplin ekleyince yazılımı işin hakkını vererek öğrenmemenin ihtimali yoktur. Bu işi severek yapmanız da bir diğer etkendir. Severek yapacak kişiler için yazılım yapmak, yukarıda verdiğimiz 3 aşamadan oluşur. Bu aşamalar sırasında yapmanız gereken detayları haberimizin devamında anlattık.
Ne yapmak istediğinizi ve yönteminizi belirleyin:
- İlginizi çeken yazılım geliştirme türünü belirleyin.
- Programlama dili öğrenmeye başlayın.
- O programlama diline ait kaynaklar bulun.
- Uzman olmak için internetin altını üstüne getirin.
- Projeler üretin.
- Sorgulayıcı olun.
- Bol bol Pratik yapın.
Yazılım geliştirmenin iki temel tipi vardır. Bunlar; 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, yüksek prodüksiyonlu video oyunlarına, kurumsal düzey muhasebe yazılımlarına kadar değişebilir.
İlginizi çeken yazılım geliştirme türünü seçtikten sonra o türe ait hangi dilleri öğrenmeniz gerektiğini araştırın. Piyasada öğrenebileceğiniz çok çeşitli programlama dilleri bulunuyor. Bunlardan bazıları; C, C++, Java, C#, Python, PHP, Pascal, Assembly, JavaScript, R, Objecitve-C, Swift, MATLAB gibi dillerdir.
Online eğitim bulabileceğiniz güvenilir kaynaklar:
- CodeAcademy,
- Code.org,
- Bento,
- Udacity,
- Udemy,
- Khan Academy,
- W3Schools.
Sektörde tanınan biri tarafından veya işin uzmanı sıradan birisi tarafından ders almak, hem kendiniz için öğretici olacaktır hem de kariyerinizin ilerleyen bölümünde tecrübelerinizi konuşturmanız açısından faydalı olabilir.
Başlangıç için bir hesap makinesi yapmaktan kaçınmayın. Bu sizi ileriki seviyelerde üst noktalara taşıyan basamağın bir alt basamağıdır. İşler yolunda giderken bile kendinize ve yazdığınız programa daima sorular sorun ve bunları cevaplayın. Diğer yazılımcılarla da etkileşimi asla unutmayın. StackOverflow gibi sitelerden yardım isteyebilirsiniz.
Her gün kodlara ayıracağınız bir zaman belirleyin ve bu kodlar üzerinde çalışın. Bu pratiği her gün yapmanızda yeni teknikler öğrenmek ve kendinizi geliştirmek için büyük fayda olacağını unutmayın.
Program geliştirin:
- Beyin fırtınası yapın.
- Tasarım belgesi hazırlayın.
- Prototip oluşturun.
- Programınızı tekrar test edin.
- Projenize eklemeler yapın veya hataları onarın.
- Projenizi GitHub'a koyun.
- Yazılımınızın dağıtımını yapın.
Bir yazılımcının daima beyin fırtınası yapması gereklidir. Günlük rutinlerinizi kolaylaştıracak programları beyninizin içerisinde yazın, mevcut programları ileri taşıyacak özellikleri geliştirin ve koda dökün. Kısacası, beyin fırtınası yapmak, bir yazılımcı için arabanın motorunu çalıştırmak gibidir.
Tasarım belgesi, projenizin özelliklerini ve proje ile elde etmek istediklerinizi özetleyen bir listedir. Geliştirme sürecinde tasarım belgesine başvurmak, projenizi takip etmenize ve odaklanmanıza yardımcı olacaktır. Belgeyi yazarken ayrıntılar için bu kılavuzunuzdan faydalanın.
Prototip, elde etmeyi amaçladığınız işlevselliği gösteren temel bir program şeklidir. Prototip, hızlı bir programdır ve çalışan bir tasarım bulana kadar tekrarlanmalıdır. Örneğin, bir takvim programı oluşturuyorsanız, prototipiniz temel bir doğru tarihlerden oluşturulmuş bir takvimdir. Prototip oluştururken tasarımsal kaygılar gütmeyin çünkü bu ilerleyen zamanda değişecek bir şey olacak.
Hatalar her yazılımcının sıkıntısıdır. Projeniz üzerinde çalışmaya devam ederken mümkün olduğunca test edin. Bug bulmak için elinizden gelen her şeyi yapın ve sonra bunları engellemeye çalışın. Arkadaşlarınızın ve ailenizin programınızı test etmesini ve sonuçları raporlamasını sağlayın.
Prototip oluşturma ve geliştirme aşaması için kaba bir proje yapmak iyi olsa da başkalarının kullanmasını istiyorsanız, biraz zaman harcamanız gerekecektir. Projenizin kullanım kolaylığından emin olduktan sonra hataları varsa giderin ve projenizi öyle sunum aşamasına hazırlayın.
GitHub, kodunuzu başkalarıyla paylaşmanıza olanak tanıyan açık kaynaklı bir topluluktur. Bu topluluk, kendi kodunuz hakkında fikir sahibi olmanızı ve fikir alışverişi sağlayabileceğiniz bir platformdur. GitHub harika bir öğrenme kaynağı ve portföyünüzü oluşturmanın iyi bir yolu.
İşe koyulun:
- Sözleşmeli işlerde çalışın.
- Kendinize bir network kurun.
- Tam zamanlı bir iş için başvuru yapın.
- Bildiğiniz programlama dillerini çeşitlendirin.
Sağlam sözleşmeler üzerine yapacağınız bir projeyle birlikte hem CV’niz hem de kendiniz için olumlu adımlar atabilirsiniz. İş bulmak için yurtdışı kaynaklı Elance ve ODesk sitelerini kontrol edebilirsiniz. Baştaki işler için ücret size düşük gelebilir ancak asla pes etmeyin.
Mümkün olduğunca alanınızla ilgili etkinliklere ve kongrelere katılın. Orada çekingen olmayın ve yeni insanlarla tanışın. Birikimlerinizi ve fikirlerinizi ne kadar çok kişiyle paylaşırsanız, çevreniz bir o kadar genişler ve işiniz için çok önemli fayda sağlayabileceğiniz referanslar ya da kişilerle tanışabilirsiniz.
Birkaç sözleşmeli iş yaptıktan sonra, tam zamanlı bir iş için başvuru yapma vaktiniz gelmiştir. CV’nizi ve portföyünüzü büyük kuruluşlara göndererek işe başlayabilirsiniz. Ardından bir etkileşim almazsanız bir seviye daha küçülseniz bile moralinizi bozmayın. Bu işin başındasınız.
İyi bir yazılım geliştiricisi genellikle birden fazla dil bilir. Öğrendiğiniz ikinci dili, iş başındayken, bilginizi genişletmek için kurslarla öğrenirsiniz. İkinci bir dilin temellerini öğrenmek için boş zamanınızı kullanın. Bu, yeni projelere geçişi çok daha kolaylaştıracak ve sizi çok daha cazip bir çalışan adayı hâline getirecektir.
Ücret, bir yazılımcının son kaygılarından biri olmalıdır. Çünkü bu işi ne kadar çok yaparsanız ve emek harcarsanız bu emeğinizin karşılığını o ölçüde alırsınız. Başlangıç için yüksek rakamlar kazandırmasa da ilerisi için yazılımcı olmak size iyi rakamlar ve emekliliğinizde güzel bir hayat getirecektir.
A’dan Z’ye yazılım öğretmeyi amaçlayan ücretsiz kurslar:
- Muammer Güler, C# kursu
- Mustafa Murat Coşkun, Java kursu
- Erkan Sağlık, Python kursu
- Murat Kuşçu, Temel PHP eğitim seti
- Sadi Evren Şeker, Python’a giriş eğitim seti
Yazımızın başlarında programlama dillerinden ve bu programlama dillerini öğrenebileceğiniz, ücretsiz eğitimlere ulaşabileceğiniz kaynaklardan bahsetmiştik. Yukarıda saydığımız kaynaklar arasında olan Udemy, YouTube gibi kaynaklardan ulaşabileceğiniz çok sayıdaki kaynaklarla birlikte yazılım nasıl yapılır sorusuna cevap bulabilirsiniz.
Muammer Güler, C# kursu:
Muammer Güler’in YouTube üzerinden verdiği bu eğitim, kodlamaya sıfırdan başlamak ve bunu ileriyi seviyeye taşımak isteyenler için Visual Studio 2019 Console Application ortamında anlatıldı. Programlama temellerinin baştan sona anlatıldığı bu video serisinde; programlamanın temelleri ve uygulama yapımları konuları işlendi.
Mustafa Murat Coşkun, Java kursu:
Java, açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye bir programlama dilidir. Mustafa Murat Coşkun adlı yazılımcı da Java dilindeki eğitimlerinin oluşturduğu videoyu YouTube’dan ücretsiz olarak paylaşmakta. Onun bu videolarından faydalanmak isteyenler, ücretsiz şekilde yararlanabilir ve Java konusunda bilgi edinebilirler.
Erkan Sağlık, Python kursu:
Python, nesne yönelimli, yorumlamalı, modüler ve etkileşimli yüksek seviyeli bir programlama dilidir. 1980’lerin sonunda ABC programlama diline alternatif olarak tasarlandı ve zamanla şu an kullanımdaki hâlini aldı. Erkan Sağlık, Udemy üzerinde eğitim videoları hazırlayan eğitmen. Ücretsiz Python eğitim kursu, Udemy’deki 4.0 puanı ve ücretsiz olmasıyla ve sıfırdan öğretmeye başlamasıyla size önerebileceğimiz eğitimler arasında. Kursa buradan ulaşabilirsiniz.
Murat Kuşçu, temel PHP eğitim seti:
PHP, geniş kullanımlı ve içerisine HTML gömülebilen bir betik ve programlama dilidir. PHP’nin kapsadığı alanlar çok geniş olmakla birlikte çok kullanılan diller arasında yer alır. Murat Kuşçu isimli Udemy eğitmeninin de bu dille ilgili 4,3 puan almış olan bir eğitim seti mevcut. Bu eğitim setine buradan ulaşabilirsiniz.
Sadi Evren Şeker, Python’a giriş eğitim seti:
Python, kolay öğrenilebilecek, kullanılabilir alanlar konusunda geniş bir skalası bulunan yüksek seviyeli bir programlama dilidir. Sadi Evren Şeker’in YouTube üzerinden hazırladığı 9 videoluk eğitim setinin ardından Python’a dair birçok soru işaretini giderebilecek ve gerekli atılımları yapmanıza katkı sağlayabileceksiniz.
Mobil yazılım geliştirme konusundaki ücretsiz kurslar:
- Murat Koç, Android programlama seti
- Sygna Yazılım, Unity C# ile 2D ve 3D oyun tasarlama eğitimi
- Selman Kahya, mobil oyun programlama eğitimi
- Bekir Güngör, Unity’de oyun yapımı başlangıç dersleri
- Elektronik Derslerim, ScratchJr ile çocuklar için oyun tasarlama eğitimi
Bu listemizin asıl amacıysa oyun geliştirme meraklılarına özel. Bu listedeki içerikler ve internetten bulunabilecek yüklü miktardaki kaynakla birlikte kendi oyununuzu tasarlayabilecek ve diğer kullanıcılara ulaştırabileceksiniz. Bunun zevkiyse eminiz ki tüm bu uğraşlarınıza değer.
Murat Koç, Android programlama seti:
Murat Koç’un Udemy üzerinden yayınladığı bu ücretsiz set sayesinde Android tabanlı oyunları uygulamaya dökebileceksiniz. Realm veri tabanını kullanmak gibi birçok şeyin de öğretildiği bu set, 4,3’lük puanıyla birlikte size tavsiye edebileceğimiz mobil oyun yazılımı geliştirme eğitimleri arasında yerini alıyor.
Sygna Yazılım, Unity C# ile 2D ve 3D oyun tasarlama eğitimi:
Unity, üzerinde oyun yazılımları yazılabilen bir türlü oyun motorudur. Mobil uygulamaların da yapıldığı bu platformda 2D ve 3D tipinde oyunlar tasarlayabilirsiniz. Sygna Yazılım da 3,8’lik bir puana sahip ve oyun yazmak konusunda zihin açan ve bunu Google Play Store’da nasıl yayınlayacağınıza dair ipuçlarının yer aldığı bir seti sizlere ücretsiz olarak sunuyor. Buradan sete ulaşabilirsiniz.
Selman Kahya, mobil oyun programlama eğitimi:
YouTube üzerinden binlerce kişiye ulaşan Selman Kahya, kendi kanalı üzerinden takipçilerine oyun programlama öğretiyor. Kanalın diğer oynatma videolarında da oyun yazılımları ve programlama hakkında çeşitli videolar yer alıyor. Bu kanal da sizlere önerebileceğimiz bir kaynak.
Bekir Güngör, Unity’de oyun yapımı başlangıç dersleri:
Unity üzerinden 2D platform oyunları konusunda videolar çeken ve bunu YouTube’a taşıyan isimlerden birisi de Bekir Güngör. Oyun geliştirmek isteyen kullanıcılara özel hazırlanmış videolarla hem başlangıç konusunda kendinizi eğitebilir ve sonraki aşamalar için kendinizi geliştirebilirsiniz.
Elektronik Derslerim, ScratchJr ile çocuklar için oyun tasarlama eğitimi:
ScratchJr, 5-7 yaş arasındaki çocuklara özel hazırlanmış bir görsel programlama dilidir. ScratchJr ile oyun tasarlamak, okuma yazma bilmeyen bir çocuk için bile mümkündür. Bu basit dilde oyun yazmak isteyen takipçilerimiz veya onların çocukları için size Elektronik Derslerim isimli Udemy eğitim kanalının bu ücretsiz eğitimini tavsiye ediyoruz.