Son yıllarda yazılım sektörü, dijital dönüşümün hız kazanmasıyla birlikte önemli bir yükseliş gösteriyor. Günümüzde neredeyse her sektör, iş süreçlerini daha verimli hale getirmek ve rekabet avantajı elde etmek için yazılım çözümlerine ihtiyaç duyuyor.
Bu nedenle, yazılım geliştirme becerileri giderek daha fazla talep görüyor. Bizler de bu içeriğimizde yazılıma başlamak isteyen kişiler için “yazılım nedir?”, “yazılıma nasıl başlanır?” ve “yazılıma başlarken hangi dili tercih etmeliyim?” sorularını cevaplandıracağız. O halde öncelikle yazılımın ne olduğunu öğrenelim.
Yazılım nedir?
Yazılım, bilgisayarlarla iletişim kurmak, talimatlar vermek ve istenen görevleri gerçekleştirmek için kullanılan bir dizi kod bütünüdür. Bu kodlar, bilgisayar sistemlerinde verilerin işlenmesini, görevlerin gerçekleştirilmesini, uygulamaların çalıştırılmasını ve birçok farklı işlevin yerine getirilmesini sağlar.
Yazılımın temel amacı, bir bilgisayarın donanımını yönetmek ve bilgisayarın anladığı dilde talimatlar vermek için kullanılmasıdır. Bu talimatlar, belirli bir programlama dili kullanılarak yazılır. Programlama dilleri ise insanların anlayabileceği bir dilde yazılan kodları, bilgisayarın anlayacağı bir dile çevirir. O halde yazılıma başlamak isteyenler için “Yazılıma nasıl başlanır?” sorusunun cevabına geçelim.
Yazılıma nasıl başlanır?
Yazılım sektöründe çalışmak isteyen pek çok kişi, nasıl başlayacağını bilmediği için bir adım atamıyor. Bu da bazı kararsızlıklara neden oluyor. O halde “yazılıma nasıl başlanır?” sorusunu adım adım cevaplandıralım.
1) Temel bilgisayar kavramlarını öğrenin
Yazılım öğrenmeye geçmeden önce temel bilgisayar kavramları hakkında bilgi sahibi olmanız, yazılımın mantığını anlamanız konusunda yardımcı olacaktır. Örneğin işlemci, RAM ve ekran kartı gibi donanımların nasıl çalıştığını anlayın. Bu, yazılım öğrendiğiniz sırada mantığı daha kolay kavramanızı sağlayacaktır.
2) Yazılıma başlamak için alan belirleyin
Kodlanabilen her şey birer yazılım olduğu için bu sektörde pek çok alan bulunuyor. Bunlar arasında son yıllarda en popülerleri web sitesi geliştirme, mobil uygulama geliştirme ve oyun geliştirme. Tabii yapay zeka ve DevOps gibi alanlar da var ancak bunlar yeni başlayan birisi için zor gelecektir.
Öncelikle kendinize yazılım ile ne yapmak istediğinizi sorun. Mesela bir web sitesi mi geliştirmek istiyorsunuz, yoksa mobil uygulama mı? Yani her şeyden önce, bu sektörde hangi alanda varlık göstereceğinizi belirlemelisiniz.
3) Back-end mi, Front-end mi yoksa Full-stack mi?
Alanı seçtikten sonra da yazılımın arka tarafında mı, ön tarafında mı yoksa her iki tarafta da mı çalışacağınızı belirlemelisiniz. Zira buna göre programlama dili öğreneceksiniz.
Peki bu üç taraf arasındaki fark ne?
Back-end
Bir yazılım projesinin arka planında gerçekleşen işlemlere denir. Bir örnek vermek gerekirse, bir web sitesinde iletişim formunu doldurduktan sonra “Gönder” düğmesine bastığınızda, formdaki bilgilerin web sitesinin veritabanına kaydedilmesi işlemi, back-end tarafında gerçekleşir. Bu alanda çalışan yazılımcıya ise Back-end geliştirici denir.
Front-end
Bir yazılım projesinin kullanıcı ile etkileşimde bulunduğu arayüze denir. Kullanıcının web sitesini veya uygulamayı görüntülediği kısım olarak düşünebilirsiniz. Örneğin, bir web sitesinin tasarımı, düğmeleri, menüler veya bir önceki maddedeki formun tasarımına front-end denir. Bu alanda çalışan yazılımcılara ise Front-end geliştirici denir.
Full-stack
Hem Front-end hem de Back-end tarafında çalışabilen ve her iki bölümde de becerilere sahip olan bir yazılım geliştiricisine denir. Bu kişiler, bir yazılım projesinin hem kullanıcı arayüzünü oluşturan front-end kısmında hem de arka planda gerçekleşen işlemleri kodlayan back-end kısmında çalışabilir.
Full-stack geliştiriciler, projenin tamamını anlayabilen ve geliştirebilen yeteneklere sahiptir. Bu, kullanıcı arayüzünün tasarımından başlayarak veri tabanı yönetimi ve sunucu tarafı programlamaya kadar geniş bir yelpazede çalışabilmeleri anlamına gelir.
İş
Full-stack geliştiriciler, iş bulma ve para kazanma konusunda kimi zaman daha öne çıkarlar. Çünkü her iki tarafta da çalışabilmeleri, işverenler için bir avantajdır. Zira iki taraf için iki yazılımcı ile çalışmak yerine tek bir yazılımcıyı tercih edebilirler.
Öte yandan Full-stack yazılımcılar, bir Front-end veya Back-end geliştiriciye ihtiyaç duymadıkları için, bir projeyi kendi başlarına inşaa edebilirler. Bu nedenle kendileri için de avantajlı olurlar. Tabii bu söylediklerimiz, Front-end veya Back-end yazılımcıların, Full-stack geliştiricilere karşı geride kaldığı anlamına gelmesin. Diğer iki taraftan yazılımcılara da ihtiyaç duyuluyor.
“Yazılıma hangi dil ile başlamalıyım?” sorusunun cevabına geçelim.
4) Yazılıma başlamak için dil seçimi
Yazılıma başlarken hangi programlama dilini tercih etmeniz gerektiği, seçtiğiniz alana ve hedeflerinize bağlıdır. Zira zaten bu nedenle dil seçimine geçmeden önce bunları belirledik. Ancak bunu bir kenara bırakarak, yazılıma, nesne yönelimli bir programlama dili olan C# ile başlamanızı tavsiye ederiz.
Bu dil ile yazılımın algoritma ve mantığını kavrayabilirsiniz. Nesne yönelimli olmayan bir programlama dili ile başladığınızda mantığı anlamayabilir, haliyle sıkılabilirsiniz. C#‘ı öğrendikten sonra ise alanınıza uygun bir dil ile devam edebilirsiniz.
İşte alanlara göre popüler ve tavsiye ettiğimiz diller:
Web Tasarım & Geliştirme:
- Front-end: HTML, CSS, JavaScript
- Back-end: C# (ASP.NET Core MVC), PHP, JavaScript (Node.js), Python (Django)
Web geliştirme alanında front-end tarafında çalışırken, HTML ve CSS dillerini mutlaka bilmelisiniz. HTML (HyperText Markup Language), web sayfalarının yapısını ve içeriğini tanımlamak için kullanılan bir işaret dilidir. Sayfaların başlık, başlık, paragraf, resim, bağlantı gibi unsurlarını oluşturmak için HTML kullanılır.
CSS (Cascading Style Sheets) ise web sayfalarının görünümünü ve düzenini kontrol etmek için kullanılan bir stil dilidir. CSS sayesinde HTML elemanlarına renk, boyut, hizalama, kenarlık gibi özellikler vererek sayfaları görsel olarak tasarlayabilirsiniz.
HTML ve CSS, bir web sayfasının temel taşıdır. Bu dilleri öğrenerek, kullanıcı arayüzlerini oluşturabilir ve web sayfalarını istediğiniz şekilde tasarlayabilirsiniz. Ayrıca, JavaScript’i de Front-end geliştirme sürecinde kullanarak etkileşimli özellikler de ekleyebilirsiniz.
Mobil Uygulama Geliştirme:
- Android: Flutter (Dart), React Native (JavaScript), Kotlin
- iOS: Flutter (Dart), React Native (JavaScript), Swift
- Cross-platform SDK’lar: Flutter (Dart), React Native (JavaScript)
Flutter ve React Native, birer cross-platform yazılım geliştirme kitidir. Flutter, Dart programlama dilini kullanıyorken, React Native ise JavaScript. Her iki SDK’nın arkasında, sırasıyla Google ve Meta var. Yani destek büyük.
Cross-platform Flutter ya da React Native SDK’sı ile bir mobil uygulama geliştirdiğinizde, bunu hem Android hem de iOS’ta çalıştırabilirsiniz. Yani iki ayrı platform için farklı bir kod yazmanıza gerek kalmaz. Bu sebepten ötürü yazılım şirketleri, son yıllarda Flutter ya da React Native geliştiriciler de aramaya başladı. Tabii Android ve iOS için ayrı yazılımcı arayan şirketlerin de sayısı bir hayli fazla.
Oyun Geliştirme:
- Unity oyun motoru: C#
- Unreal Engine oyun motoru: C++
5) Yazılıma başlamak için öğrenme kaynakları!
Yazılım öğrenmek için öncelikle bir kaynağa ihtiyacınız var. Öğrenme sürecinde, internet büyük bir kaynak sağlayıcısıdır. Seçtiğiniz dilin temellerini öğrenmek için binlerce ücretsiz içerik bulunmaktadır. Bu kaynaklardan bazıları şunlar;
Yazılı kaynaklar:
- C#
- Web Tasarım (Front-end): W3Schools, web.dev, MDN Web Docs
- Web Geliştirme (Back-end):
- Mobil Uygulama Geliştirme:
- Oyun Geliştirme:
- Diğer: Programiz, W3Schools, Tutorialspoint
Videolu kaynaklar (YouTube):
- C#
- Web Tasarım (Front-end):
- Web Geliştirme (Back-end):
- Mobil Uygulama Geliştirme:
- Oyun Geliştirme:
“Yazılıma nasıl başlanır?” sorusunu cevaplandırdık. O halde bu süreçte mutlaka bilmeniz ve dikkat etmeniz gerekenlere geçelim.
Mutlaka aklınızda bulundurmanız gerekenler
Telefondan yazılım öğrenebilir miyim?
Telefondan bir yazılım dilinin temellerini öğrenebilirsiniz. Bunun için eğitim veren pek çok mobil uygulama var. Kod çalıştırabileceğiniz uygulamalar da yok değil. Ancak ne yazık ki yazılım alanında ilerlemek istiyorsanız, mutlaka bir bilgisayara ihtiyaç duyacaksınız.
Geç kaldım mı?
Yazılıma başlamak isteyen kişiler kimi zaman “geç kaldım” diyerek bundan vazgeçiyor. Bunun için şunu diyebiliriz ki; Bu iş için geç kalmak gibi bir unsur yok. Tabii ki 80 yaşındaki bir insan bunda zorluk yaşayabilir.
Ancak yine de, teknik olarak öğrenemez diyemeyiz. Sektörde yaş bakımından çok fazla çeşitlilik var. 12 yaştan 40 yaşa kadar yazılıma yeni başlayan pek çok kişiyle karşılaşabilirsiniz. Sorunun cevabına gelecek olursak, geç kalmadınız.
İngilizce
Yazılım dünyasında İngilizce’nin önemi büyüktür. İnternetteki kaynakların çoğu veya yazılım terimlerinin çoğunlu İngilizce olduğu için temel seviyede bilinmesi önemlidir. Bu dili öğrenerek, daha fazla kaynağa erişebilir, gelişmiş dökümantasyonları anlayabilir ve küresel yazılım topluluğuyla daha etkili bir şekilde iletişim kurabilirsiniz.
Bu sebepten ötürü belki de yazılıma başlamadan önce İngilizce’yi temel seviyede öğrenmeyi düşünebilirsiniz. Tabii bunun bir gereksinim olmadığını da belirtelim. Yazılım öğrendiğiniz süreçte internet üzerinden pek çok kaynak araştırması yapmanız gerekeceği için, zaten isteseniz de istemeseniz de temel seviyede İngilizce öğreneceksiniz.
Pes etmemek
Yazılım öğrenirken hatalarla karşılaşmanız kaçınılmazdır. Bu normaldir ve sizin gelişiminizin bir parçasıdır. Pes etmek yerine, hataları bir fırsat olarak görün. Çözüm odaklı düşünün, hataları analiz edin ve çözmek için internet üzerinden araştırma yapın. Yazılım geliştirme sürecinde sabırlı olmak ve azimle çalışmak önemlidir.
İnternette araştırma yeteneği
Yazılım öğrenirken veya proje geliştirirken karşılaşacağınız sorunları çözmek için internette araştırma yapmak büyük bir beceridir. Hata mesajlarını veya sorunları internette aramak bile basit bir araştırmadır.
Stack Overflow, GitHub gibi platformlar ve çeşitli forumlar, yazılım geliştirme topluluğunun büyük bir kaynağıdır. İnternet araştırma becerilerinizi geliştirerek sorunlarınıza daha hızlı ve etkili çözümler bulabilirsiniz.
Aynısını geliştirmeye çalışın
Yazılım öğrendiğiniz sırada kendinizi geliştirmek ve bilginizi pekiştirmek için bir proje bulup, onun aynısını geliştirmeye çalışabilirsiniz. Örneğin bir web sitesinin veya mobil uygulamanın aynısını kodlamayı deneyebilirsiniz. Buna, yazılım sektöründe proje clone’u geliştirmek deniyor.
Projeler geliştirin
Sadece bir dilin temeli öğrenildiği zaman ne yazık ki hemen yazılımcı olunmaz. Projeler geliştirerek daha çok tecrübe edinmeli ve bilgi sahibi olmalısınız. Çünkü ileride yazılım ile ilgili bilmiş olduğunuz bilgilerin büyük çoğunluğunu, proje geliştirdiğiniz sırada öğreneceksiniz. Bu nedenle öğrenme aşamasında bunun için gerekli önemi gösterin.
Projelerinizi paylaşın
Öğrenme sürecinde geliştirdiğiniz bütün projerlnizi Github gibi yazılımcıların sosyal medyası olarak görülen platformda mutlaka paylaşın. Yazdığınız kodlar her ne kadar sizi acemi gibi gösterecek olsa da, ilerleyen zamanlarda yayınladığınız projeler, sizin gelişiminizi kanıtlar nitelikte olacak.
Aynı kodu yazmayın
Öğrenme aşamasında sizinle bilgi paylaşan bir eğitmen veya kişinin yazdığı kodu kullanmayın. Kendi kodunuzu yazmaya çalışın. Hata yapabilecek olsanız bile bundan çekinmeyin. Örneğin eğitmen, konsol üzerinde bir yapılacaklar listesi uygulaması geliştiriyse, siz de not defteri geliştirmeye çalışın.
Hedefiniz para kazanmak olmasın
Yazılıma başlamak isterken hedefiniz para kazanmak değil, iyi bir iş çıkarabilmek için kendinizi geliştirmek olmalı. Eğer para kazanma odaklı olursanız, başarılı olma ihtimaliniz düşük. Çünkü para, kendinizi geliştirmenin önüne geçecektir.
Yazılımı ne kadar sürede öğrenebilirim?
Yazılım öğrenmek asla bitmez. Sizler bir programlama dilinde profesyonel seviyede olsanız bile, her geçen gün yeni şeyler öğrenirsiniz. Haliyle bu da sizin aslında yazılımı halen tamamen öğrenmemiş olduğunuzu gösterir.
Yazılım için matematik gerekli mi?
Bu soruya internet üzerinde pek çok kez denk gelmiş olabilirsiniz. Öncelikle yazılım için matematiğin gerekli olup olmadığına cevap verebilmek için alana bakmalıyız. Eğer sadece bir mobil uygulama veya web site geliştiricisi olacaksanız, dört işlem matematik bilgisi yeterli olacaktır.
Ancak yapay zeka tarafına geldiğimizde aynı şeyi söyleyemeyiz. Çünkü yapay zeka, verilerden öğrenme ve kararlar alma yeteneğine sahiptir. Bu sistemlerin temelini oluşturan algoritmalar, matematiksel kavramlar ve işlemler üzerine kurulur.
Öte yandan Lineer cebir, yapay zekanın temelini oluşturan bir matematik dalıdır. Vektörler, matrisler ve doğrusal denklemler gibi kavramlar, yapay zekanın modelleme ve hesaplama süreçlerinde sıkça kullanılır. Bu sebeplerden ötürü yapay zeka alanında gelişmek için matematikte iyi olmanız gerekir.
Bir mobil uygulama geliştiricisi veya web geliştiricisi olacaksanız, bu süreçte dört işlemin ötesine çok nadir geçeceksiniz. Eğer ki matematik seviyeniz düşükse ve ileri seviye bir bilgiye ihtiyacınız olursa, internet üzerinden yapabileceğiniz basit bir araştırma ile istediğinize ulaşabilirsiniz.
Ne kadar sürede yazılımcı olurum?
Aslına bakacak olursak yazılımcı olmak için yazılım ile ilgilenilmesi gereken bir süre veya test formu yok. Eğer ki yazılım bilginiz ile ortaya bir ürün çıkarabiliyor ve bu üründen bir maddi kazanç sağlayabiliyorsanız, sizler bir yazılımcısınızdır.
Yazılımdan nasıl para kazanabilirim?
Bu soru için mantıktan yola çıkalım. Kendinizi web sitesine ihtiyacı olan ancak hiçbir şekilde kod bilgisi olmayan bir kişi olarak düşünün. Bu bağlamda, bir yazılımcıya ihtiyacınız var. Tam bu noktada karşınızda iki aday var; Birinci kişi size istediğiniz web sitesini geliştirecek ve taleplerinizi gerçekleştirecek.
İkinci kişi ise istediğiniz web sitesini geliştiremeyebilir. Çünkü bilgisi yetersizdir. Haliyle taleplerinizi de karşılayamaz. Burada mantığa göre cevap verecek olursanız, tabii ki birinci kişiyi seçerdiniz çünkü size yardımcı olabilecek tek kişi o.
Yani eğer ki bir kişiye istediği web sitesini, mobil uygulamayı veya alanınız her neyse sizden istenen sistemi geliştirebilecek bir seviyedeyseniz, müşteri bulduğunuz takdirde para kazanabilirsiniz. Fakat demin verdiğimiz örnekteki ikinci kişi gibi olursanız, kimse sizi tercih etmeyeceği için para kazanabilmeniz da neredeyse imkansızdır.
Müşteri bulmak içinse çeşitli freelancer web sitelerinde ilan listeleyebilir ve sosyal medya medya platformlarında aktif olarak paylaşımlar yaparak, insanların dikkatini çekmeye çalışabilirsiniz. Bu noktada çevrenizin ve geçmiş iş tecrübelerinin de önemli olduğunu belirtelim.
Zira bir kişiye yazılım geliştirdiğinizde, o kişi bu işten memnun kaldıysa, yüzde 85 ihtimalle sizi her fırsat bulduğunda tavsiye edecektir. Tavsiye ettiği kişi de sizin kapınızı çaldığında, sadık bir müşteri kitlesi oluşturacaksınız. Bu nedenle her işinizi kaliteli yapmaya çalışmalısınız. Mutlu bir müşteri bırakmak için çabalamak oldukça önemli.
Bu içeriğimizde yazılıma başlamak isteyenler için “yazılıma nasıl başlanır?” ve “yazılıma başlarken hangi dili tercih etmeliyim?” sorularına cevap verdik. Görüşlerinizi aşağıdaki Yorumlar kısmından bizlerle paylaşabilirsiniz.
{{user}} {{datetime}}
{{text}}