En İyi Yazılım Öğrenme Kaynakları
Yazılım; uygulama ve bilgisayar sistemlerini geliştirme süreçlerinin tamamını kapsayan ve günümüzde çok yaygın taleplerin olduğu popüler bir alan. Cep telefonlarımızdan; akıllı evlere, fabrikalardan, otobüs duraklarına dek, gözlerimizin temas ettiği, hayatımızın kolay sürdürebilmesi için kullandığımız birçok alet/fonksiyona yazılımların hayat verdiğini söyleyebiliriz.
Freelance olarak hizmet veren yazılımcıların kullandıkları yazılım dilleri genellikle değişiklik gösteriyor. Ayrıca freelance yazılım kariyerinde, proje bazlı olarak gruplara dahil olup çalışma fırsatı da yaratılabiliyor.
Yazılım alanında birçok alt başlığı kapsayan hizmetler ve çalışma alanları bulunuyor. Bu yüzden freelance bir yazılımcı için birçok çalışma alanı ve birçok proje fırsatı bulunduğunu söyleyebiliriz. Bu yazımızda freelance yazılımcı olmanın avantajları, hangi alanda çalışabileceklerinden ve en iyi yazılım öğrenmek kaynaklarından bahsedeceğiz.
Freelance Yazılımcı Olarak Çalışmanın Avantajları Nelerdir?
- Çalışma saatlerini kendin belirlersin.
- İstediğin her yerden çalışabilirsin.
- Patron sen olursun.
- İstediğin günü tatil ilan edebilirsin.
- Ofise gitmene gerek kalmaz. Tüm gün trafikte vakit kaybetmezsin.
- Ofisinin evin olacağını düşünürsek daha rahat başka ne olabilir ki?
- Kendini geliştirmen için birçok zamana sahip olursun.
- Bir şirkette çalışmanın aksine belirli bir projede çalışmana gerek kalmadan kendini farklı kişiler/projelerle çalışarak geliştirebilirsin.
Freelance Yazılımcı Hangi Alanlarda Çalışabilir?
Freelance bir yazılımı, herhangi bir zamana ve mekâna bağlı kalmadan çalışabilir ve sürekli olarak kendini geliştirebilme fırsatı vardır. Bu yüzden bir freelancer yazılımcı olarak kendini geliştirdiğin her alanda iş bulma imkanına sahip olduğunu söyleyebiliriz.
Genel olarak şu alanlarda çalışma fırsatı bulabilirsin:
- Web
- Mobil
- Uygulama Yazılım
Web Alanında Yazılım Kariyeri
Web yazılımcıları; hem kullanıcının hem de web sitesi sahibinin hedeflerini karşılamak için uygun içeriğin, grafiklerin ve temel yapıların kullanılabilir olduğundan emin olmak adına kullanıcı ihtiyaçlarını göz önünde bulundururlar.
- Back-end Web Yazılımcısı: Bu alanda çalışan yazılımcılar; hem temel hem de gelişmiş işlevleri destekleyen web sitelerinin ve web uygulamalarının teknik yönlerine odaklanır. Büyük ölçüde veritabanları, web sitesi mimarisi ve uygulama mantığı dahil olmak üzere idari bileşenler üzerinde çalışarak yeni API’ler ve kullanıcı arayüzleri oluştururlar.
- Front-end Web Yazılımcısı: Bu alanda çalışan yazılımcılar, sitelerin ve uygulamaların kullanıcı bakış açısından nasıl göründüğünden ve çalıştığından sorumlulardır. Özellikle sınırlı bilgisayar becerilerine sahip olabilecek kullanıcılar için tüm çevrimiçi içeriğe erişmeyi, göz atmayı ve etkileşim kurmayı kolaylaştırmaktan sorumlu olduklarını söyleyebiliriz. Front-end yazılımcıların, görüntüleme ve işlevsellik hatalarını önlemek için; web sitelerinin çok çeşitli işletim sistemleri, tarayıcılar ve cihazlarla uyumlu olmasını sağlamaları gerekir.
- Full-Stack Web Yazılımcısı: İş unvanından da anlaşılacağı gibi; bu web tasarım uzmanlarının hem ön hem de arka tarafta geliştirme görevlerinde yetkin olduklarını söyleyebiliriz. Tam kapsamlı web geliştiricilerinin çoğu, uygulama tasarımı, kullanıcı deneyimi ve HTML, XML, JavaScript, MySQL ve programlama dillerinde kapsamlı deneyime sahiplerdir. Bu nedenle hem bilgisayar bilimi hem de iş anlayışı gerektiren danışmanlık rollerini ve teknik pozisyonları çok iyi doldurabildiklerini söyleyebiliriz.
Mobil Yazılım Uzmanlığı Nedir?
Tabletler ve akıllı telefonlar gibi cihazların, birçok tüketici için günlük yaşamın vazgeçilmez bir parçası haline geldiğini hepimiz biliyoruz.
Bu cihazların, e-posta alma ve gönderme gibi basit görevlerden dijital eğlence akışına ve hatta çevrimiçi bankacılık veya sağlık yönetimi gibi pratik konularla ilgilenmeye kadar birçok şeyi kolaylaştırdığını söyleyebiliriz.
Bir mobil yazılım uzmanları tam da burada devreye girer. Dijital cihazlar için uygulama yelpazesi ne kadar geniş olursa, bu cihazlar için yazılım programlayabilen yazılımcılar da bir o kadar gereklidir diyebiliriz. Bir mobil yazılımcısı olarak, Google’ın Android’i, Apple’ın iOS’u ve Microsoft’un Windows Phone’u gibi büyük platformlar için uygulamalar geliştirebilirsin.
Başarılı bir freelance mobil yazılımcısı, çeşitli mobil işletim sistemleri ile çok aşina olmalı ve mobil uygulamalar oluşturmak için HTML, CSS ve JavaScript gibi programlama dillerine hâkim olmalıdır.
Eğer iOS için geliştirmeyi seçersen Objective-C veya Swift öğrenmelisin. Android için geliştirme yapmak istiyorsan Java, Kotlin, Flutter veya React Native öğrenmen gerektiğinin altını çizelim.
Freelance bir yazılım kariyerin olmasını istiyorsan; kazanman gereken en önemli becerinin iletişim olduğunu belirtmeliyiz. Sadece müşterilerle iletişim halinde olduğun için değil, bir ekiple verimli çalışabilmek için de bu beceriyi kazanman çok önemli.
Uygulama Yazılımı Geliştiricisi
Uygulama yazılımı geliştiricisi, genel bilgisayar uygulama yazılımını veya özel yardımcı programları geliştirir, oluşturur ve değiştirir. Kullanıcı ihtiyaçlarını analiz ederek bu ihtiyaçlar için yazılım çözümleri üretir. Operasyonel verimliliği optimize etmek amacıyla yazılımı müşteri kullanımı için tasarlar veya yazılımı özelleştirdiğini söyleyebiliriz. Bir uygulama alanındaki veritabanlarını analiz edebilir ve tasarlayabilir, freelance olarak çalışabilir veya bir ekibin parçası olarak proje dahil olabilir.
Uygulama yazılımı, Android, iOS veya Windows gibi belirli bir işletim sistemi (OS) için yazılabilir. Uygulama yazılımı geliştiricileri genellikle mobile uygulamalar, grafik yazılımı, muhasebe yazılımı veya ofis paketleri gibi belirli bir geliştirme alanında çalışma fırsatları bulduğunun da altını çizmiş olalım.
Freelance Yazılımcı Olarak Kendimi Nasıl Geliştirebilirim?
Freelance yazılım kariyerini seçtiğinde çalışma zamanı ve mekânının tamamen sana bağlıdır. Bu sebeple kendini geliştirmek için birçok fırsata sahip olduğunu söyleyebiliriz.
Kendine şu üç soruyu sor:
- Web siteleri ve web uygulamaları oluşturma düşüncesi beni heyecanlandırıyor mu?
- Freelance çalışmak benim için heyecan verici bir kariyer olur mu?
- Bir yazılımcı olmak kendim (ve ailem) için sahip olmak istediğim yaşam tarzına uygun olur mu?
Yukarıdaki sorulara evet cevabı verdiysen, bir yazılımcı olmak için doğru yoldasın!
Neden?
Bu kendine sorman gereken en önemli sorulardan biri. Neden (başarılı) bir yazılımcı olmak istiyorsun?
- Fark yaratmak ve başkalarının hayatlarını değiştirmek için mi?
- Başkaları için projeler inşa etmek için mi?
- Kendi projelerini oluşturmak için mi?
- İyi bir gelir elde etmek için mi?
Bu sorulara verdiğin dürüst cevaplarla, kariyer olarak seçtiğin alanda çok verimli olabileceğini unutma.
Neler İlgini Çekiyor?
Mantık ve problem çözmeyi mi yoksa tasarım ve görseli mi tercih edersin? Mantık ve problem çözmeyi tercih ediyorsan, back-end geliştirme tam sana göre. Tasarım ve görselliği tercih ediyorsan, front-end geliştirmeyi tercih etmen gerekiyor.
Bu sorulara verdiğin yanıtlar doğrultusunda; yazılımcı olmaya ve hangi alanı tercih edeceğine karar verdiysen artık tek ihtiyacın öğrenmek istediğin bilginin nerede olduğunu bulmak. Fakat bu konuda merak etmene gerek yok, senin için birçok tavsiyeyi bir araya topladık.
İngilizce evrensel bir dil ve yazılım dillerinde birçok sorgu da İngilizce olarak yazılıyor. Ancak hiç İngilizce bilgin olmasa bile, yazılım öğrenebilirsin. Başlangıç için alt yapın yoksa bile, daima dokümantasyon okuyup anlayabilecek bir İngilizce seviyenin olması. Bu sayede hem öğrenme sürecini hem de freelance iş fırsatları yakalama şansını artıracağını söyleyebiliriz.
En İyİ Yazılım Öğrenme Programları
Udemy
Udemy üzerinden birçok kursa ücretsiz ulaşabilir veya ücretli kurslar satın alarak kursları tamamladığında; CV’ne ekleyebileceğin sertifikalara da sahip olabilirsin.
PHPNet:
http://php.net/manual/tr/getting-started.php
Eğer PHP diline ilk adımlarını atıyorsan kesinlikle bu sayfayı ziyaret etmelisin. Eğer az da olsa İngilizcen varsa sayfayı İngilizceye çevirmen de fayda var.
Scratch:
8-16 yaş aralığındakiler için hazırlanmış bir program. Bu program ile oyun ve animasyon geliştirmeyi ücretsiz bir şekilde öğrenebilirsin. Türkçe seçeneği de bulunduğu için; yazılım dillerinin temelini oluşturan algoritma yapısını oyun hazırlayarak kolay bir şekilde öğrenebilirsin.
Turkcell Geleceği Yazanlar
https://gelecegiyazanlar.turkcell.com.tr/
Birçok yazılım dili ile ilgili ücretsiz dersleri Türkçe olarak bu adreste bulabilirsin.
Codecademy
Codecademy pek çok yazılım dilini hem ücretsiz hem de profesyonel bir şekilde bu kaynaktan öğrenebilirsin.
Ruby Topluluğu:
http://www.ruby-lang.org/tr/community/
Türkiye’de Ruby topluluğu tarafından Türkçeleştirilerek derlenen ve Ruby hakkında bilgilere erişebileceğin bir kaynak olduğunu belirtelim.
Coursera
Birçok seçkin üniversitenin hazırladığı ücretli ve ücretsiz yazılım kurslarını bu adreste bulabilirsin.
Mobile Developer – Android
https://github.com/LaunchCodeEducation/pathways/tree/master/3_1-android-core-skills
Yukarıdaki linkte bulunan GitHub adresinden Android yazılımcı olmak için ilk adımlarını atabilir ve içerisinde bulunan örnek projeler ile kendini geliştirebilirsin.
Codepath – Android Topluluğu
http://guides.codepath.com/android
Android uygulamalar için gerekli dilleri bu adresten öğrenebilirsin.
Udacity – HTML ve CSS’e Giriş Dersleri
https://www.udacity.com/course/intro-to-html-and-css–ud001
Udacity üzerinden ücretsiz web geliştirme dersine ulaşabilirsin.
Harika bir şey yapmak, fedakârlık gerektirir. Başarılı bir freelance yazılımcı olmak istiyorsan becerilerini her geçen gün geliştirmeni, projeler yapmanı ve bildiklerini uygulamaktan asla çekinmemeni tavsiye ediyoruz.
Comments