Yazılım konusu, günümüz dünyasının ve geleceğin en manâlı konuları arasında. Bilhassa suni zekâ ve robotik tartışmaların gündeme geldiği günümüz dünyasında yazılım gerçekleştirmek, ilk önce 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 gerisinde yazılım nedir, nasıl yapılır gibi en temel soruların cevaplarını aldıktan sonradan izleyeceğiniz eğitimlerle birlikte önce yazılımın algoritma kavramını anlayacaksınız, arkasında 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: Bireysel çalışma programınızı oluşturun Adım #3: İşe koyulun
Bir yazılımcının birincil sahip olması gereken özelliklerden birisi planlı ve programlı hareket etmesidir. Plan ve programın yanında bundan başka 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 gerçekleştirmek, yukarıda verdiğimiz 3 aşamadan oluşur. Bu aşamalar esnası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. Bilirkişi edinmek için internetin altını üstüne getirin. Projeler üretin. Sorgulayıcı olun. Bol bol Pratik yapın.
Yazılım geliştirmenin iki esas tipi vardır. Bunlar; başvuru formu geliştirme ve sistem geliştirme. Başvuru geliştirme, kullanıcıların ihtiyaçlarını tedarik eden 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şken.
İlginizi çeken yazılım geliştirme türünü seçtikten sonradan o türe ait hangi dilleri öğrenmeniz gerektiğini araştırın. Piyasada öğrenebileceğiniz çok farklı alanlara yönlendirilmiş 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 göre ya da işin uzmanı basmakalıp birisi göre ders elde etmek, keza kendiniz için eğitici olacaktır hem de kariyerinizin ilerleyen bölümünde tecrübelerinizi konuşturmanız açısından yardımsever olabilir.
Açılış için bir hesap makinesi yapmaktan kaçınmayın. Bu sizi ileriki seviyelerde üst noktalara içeren basamağın bir daha aşağı basamağıdır. İşler yolunda bu vesileyle bile kendinize ve yazdığınız programa daima sorular sorun ve bunları cevaplayın. Öteki yazılımcılarla da etkileşimi katiyen unutmayın. StackOverflow gibi sitelerden yardım isteyebilirsiniz.
Her gün kodlara ayıracağınız bir zaman belirleyin ve bu kodlar üstünde çalışın. Bu pratiği her gün yapmanızda yeni teknikler öğrenmek ve kendinizi için büyük üstünlük 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ı bitmiş deneme 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 defalarca 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 edinmek 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 teferruatlar için bu kılavuzunuzdan faydalanın.
Prototip, elde etmeyi amaçladığınız işlevselliği belirten temel bir program şeklidir. Prototip, hızlı bir programdır ve çalışan bir tasarım bulana değin tekrarlanmalıdır. Mesela, bir yıllık programı oluşturuyorsanız, prototipiniz temel bir içten 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 sonradan bunları engellemeye çalışın. Arkadaşlarınızın ve ailenizin programınızı deneme etmesini ve sonuçları raporlamasını sağlayın.
Prototip oluşturma ve geliştirme aşaması için kaba bir proje yerine getirmek iyi olsa da başkalarının kullanmasını istiyorsanız, azıcık vakit harcamanız gerekecektir. Projenizin tatbik kolaylığından belirlenmiş olduktan sonradan hataları varsa giderin ve projenizi o kadar sunum aşamasına hazırlayın.
GitHub, kodunuzu başkalarıyla paylaşmanıza olanak tanıyan açık kaynaklı bir topluluktur. Bu kalabalık, kendi kodunuz hakkında us sahibi olmanızı ve hafıza 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 uygulama yapın. Bildiğiniz programlama dillerini çeşitlendirin.
Sağlam sözleşmeler üstüne yapacağınız bir projeyle birlikte keza CV ’niz ayrıca de kendiniz için olumlu adımlar atabilirsiniz. İş bulmak için yurtdışı kaynaklı Elance ve ODesk sitelerini denetleme edebilirsiniz. Baştaki işler için ücret size düşük gelebilir oysa asla pes etmeyin.
Muhtemel olduğunca alanınızla ilgili etkinliklere ve kongrelere katılın. Orada utangaç olmayın ve yeni insanlarla tanışın. Birikimlerinizi ve fikirlerinizi ne dek çok kişiyle paylaşırsanız, çevreniz bir öyle genişler ve işiniz için fazla manâlı avantaj sağlayabileceğiniz referanslar ya da kişilerle tanışabilirsiniz.
Birkaç sözleşmeli meslek yaptıktan sonradan, bütün zamanlı bir meslek için dilekçe yapma vaktiniz gelmiştir. CV ’nizi ve portföyünüzü büyük kuruluşlara göndererek işe başlayabilirsiniz. Peşinde 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 ansızın artı dil bilir. Öğrendiğiniz ikinci dili, iş başındayken, bilginizi genişletmek için kurslarla öğrenirsiniz. İkinci bir dilin temellerini öğrenmek için abes zamanınızı kullanın. Bu, yeni projelere geçişi çok daha kolaylaştıracak ve sizi fazla daha çekici 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 değin fazla 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 hoş bir yaşam 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 Afiyet, Python kursu Murat Kuşçu, Temel PHP eğitim seti Sadi Âlem Şeker, Python ’a antre eğitim seti
Yazımızın başlarında programlama dillerinden ve bu programlama dillerini öğrenebileceğiniz, bedava eğitimlere ulaşabileceğiniz kaynaklardan bahsetmiştik. Yukarıda saydığımız kaynaklar aralarında olan Udemy, YouTube gibi kaynaklardan ulaşabileceğiniz çok sayıdaki kaynaklarla birlikte yazılım nasıl yapılır sorusuna yanıt bulabilirsiniz.
Muammer Güler, C# kursu:
Muammer Güler ’in YouTube üzerinden verdiği bu eğitim, kodlamaya sıfırdan açılmak ve bunu ileriyi seviyeye taşımak isteyenler için Visual Studio 2019 Console Application ortamında anlatıldı. Programlama temellerinin doğruca anlatıldığı bu video serisinde; programlamanın temelleri ve başvuru formu 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, fazla işlevli, yüksek düzey 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 yararlanmak isteyenler, bedava şekilde yararlanabilir ve Java konusunda data 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 lahza kullanımdaki hâlini aldı. Erkan Afiyet, Udemy üzerinde eğitim videoları hazırlayan eğitmen. Bedava 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 araları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 fazla 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 Âlem Şeker, Python ’a giriş eğitim seti:
Python, kolay öğrenilebilecek, kullanılabilir alanlar konusunda geniş bir skalası yer alan yüksek seviyeli bir programlama dilidir. Sadi Evren Şeker ’in YouTube üzerinden hazırladığı 9 videoluk eğitim setinin arkasında Python ’a dair çoğu soru işaretini giderebilecek ve zorunlu atılımları yapmanıza katkı sağlayabileceksiniz.
Mobil yazılım geliştirme konusundaki bedava kurslar:
Murat Koç, Android programlama seti Sygna Yazılım, Unity C# ile 2D ve 3D oyun planlama 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 planlama eğitimi
Bu listemizin ana 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 öteki kullanıcılara ulaştırabileceksiniz. Bunun zevkiyse eminiz fakat bütün bu uğraşlarınıza değerinde.
Murat Koç, Android programlama seti:
Murat Koç ’un Udemy üzerinden yayınladığı bu bedava set doğruca Android tabanlı oyunları uygulamaya dökebileceksiniz. Realm data tabanını kullanmak gibi çoğu ş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 araları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 kâğıda dökmek konusunda akıl 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 öteki oynatma videolarında da oyun yazılımları ve programlama hakkında farklı alanlara yönlendirilmiş 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 içeren isimlerden birisi de Bekir Güngör. Oyun ilerletmek isteyen kullanıcılara özel hazır videolarla keza açılış konusunda kendinizi eğitebilir ve sonraki aşamalar için kendinizi geliştirebilirsiniz.
Elektronik Derslerim, ScratchJr ile çocuklar için oyun planlama 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 kâğıda dökmek isteyen takipçilerimiz ya da onların çocukları için size Elektronik Derslerim isimli Udemy eğitim kanalının bu ücretsiz eğitimini tavsiye ediyoruz.