Zaman zaman programlama ile ilgili sorular alıyorum.

Nereden başlayacağım, hangi programlama dili doğru seçim, hangi dilin geleceği parlak gibi önü arkası kesilmeyen hep aynı sorular. Öncelikle hangi alanda ilerlemek istiyorsunuz? Mobil projeler mi, web sitesi mi, masaüstü programcılığı mı, veritabanı programcılığı mı, yoksa elektronik devre programları mı (arduino, rasperryPi) vs.? İlgi duyduğunuz alanı belirledikten sonra bu alanlarda hizmet veren programlama dillerinin algoritma yapısını öğrenmeli ilgili programlama dilinin söz dizimini ve kütüphanesine hakim olduktan sonra da proje geliştirmeye başlayabilirsiniz.

Her programlama dilinde bir yerlerde tıkacanacaksınız, içinden çıkmadığınız problemler olacak, mevcut yazılım forumlarına, facebook gruplarına yöneleceksiniz sorular sorup cevaplarını zor bulacaksanız belki de bulamayacaksınız.. Bunun içinde temel seviyede ingilizce ve daha fazlasına hakim olmanız gerekmektedir. Çünki doğru cevapların pek çoğu yabancı kaynaklarda.

TÜRKÇE KAYNAKLAR

Microsoft Açık Akademi

https://www.acikakademi.com/portal/

Microsoft’un oluşturduğu ücretsiz online uygulama geliştirme okulu. C# uygulaması, HTML & CSS, ve ASP.NET MVC eğitimlerini de burada bulabilirsin.

Turkcell Geleceği Yazanlar

https://gelecegiyazanlar.turkcell.com.tr/

Android, iOS, Windows Phone üzerine mobil eğitimler, uygulama servisleri ve web programlama ile ilgili ücretsiz dersleri alabileceğin bir platform.

Udemy

www.udemy.com

Udemy ağırlıklı olarak İngilizce ve ücretli açık dersler sunsa da Türkçe bazı dersleri bulunmakta. Örneğin Java ve ASP-NET derslerini Türkçe ve ücretsiz olarak alabilirsin.

istihza

http://www.istihza.com/

istihza, Python programlama dili için bir Türkçe kaynak oluşturma projesi.

İNGİLİZCE KAYNAKLAR

Başlangıç seviyesi: Kodlamayla tanışın

Codecademy

https://www.codecademy.com

Codecademy pek çok yazılım dilini hem ücretsiz hem de eğlenceli şekilde öğretiyor. HTML & CSS, Ruby on Rails, Java, JavaScript, Python, PHP gibi farklı programlama dillerini buradan öğrenebilirsin.

Coursera

https://www.coursera.org

Çoğunlukla dünyanın seçkin üniversiteleri tarafından hazırlanan ve pek çok yazılım dilinin öğretildiği kursları bu sitede bulabilirsin. Ücretli kurslar olabildiği gibi içeriklerin bir kısmını ücretsiz de tamamlamak mümkün.

Coursera’nın en çok beğenilen ve bizim de önerdiğimiz ders şöyle:

An Introduction to Interactive Programming in Python

edX

https://www.edx.org/

MIT ve Harvard Üniversiteleri tarafından başlatılan edX, kitlesel açık kaynaklardan bir diğeri. Üniversite seviyesinde pek çok alanda kursları ücretsiz alabilmek mümkün.

edX’in en çok beğenilenlerinden olan ve bizim de önerdiğimiz ders şöyle:

Introduction to Computer Science and Programming Using Python

İleri seviye: Bir alanda uzmanlaş

İş arama sürecinde, belirli bir alanda bir uzmanlığı olanlar genel olarak daha rahat iş buluyor. Aynı şekilde programcı olarak iş bulabilmek için de bir konuda uzmanlaşmış olmak gerekiyor. Günümüz iş çevresinde, bazı teknolojiler yaygınca kullanılıyor ve ihtiyaca göre bazı programlama dillerine talep çok fazla.

Biz aşağıda en fazla talep alan programlama dillerini listeledik. Bir dilde uzmanlaşmak için en az 1-2 ay çalışmaya ihtiyacınız olacak. Bu nedenle bizim önerimiz, bu liste içerisinden en çok ilginizi çeken dili seçip o alana yoğunlaşmanız şeklinde. Farklı seçenekler arasında gidip gelerek zaman kaybetmeyin deriz!

Mobile Developer – IOS

Detaylı açıklama için tıklayın (İngilizce)

How to make an iOS App (Udacity)

https://www.udacity.com/course/how-to-make-an-ios-app–ud607

Udacity’nin iOS uygulama geliştilmesinin anlatan ücretsiz ve ileri seviye kursu. Kursun tamamlanması yaklaşık 3 ay alacaktır.

Learn the Essentials of Swift (Apple)

https://developer.apple.com/

Apple’ın resmi kaynağı kendini Swift ile kodlama konusunda eğitebileceğin en iyi kaynaklardan.

Learn Objective-C

http://cocoadevcentral.com/d/

Bu kısa ve öz kaynak Objective-C ile ilgili temel bilgileri sağlayacak. İlerlemek için örnek projeyi indirebilirsin.

LearnSwift

http://www.learnswift.tips/

Ücretli ve ücretsiz çeşitli Swift öğrenme kaynaklarını bünyesinde toplayan kaynak.

Stanford – Developing iOS 9 Apps with Swift

Stanford Üniversitesi’nin düzenlediği dersleri video şeklinde izleyebilirsin.

Mobile Developer – Android

Detaylı açıklama için tıklayın (İngilizce)

Build Your First Android App (Google)

https://developer.android.com/training/

Google kendi resmi sitesinde, yazılımcılara Android ile sıfırdan başlayarak ilk uygulamalrını nasıl yaratabilecekleri detaylarıyla anlatılıyor.

Developing Android Apps – Android Fundamentals (Udacity)

https://www.udacity.com/course/

Udacity üzerinden Google’ın kendi oluşturduğu 1 saatlik ücretsiz Android ile geliştirme dersi.

Codepath – Android Topluluğu

http://guides.codepath.com/android

Android ile sıfırdan başlayanlar ve uzman yazılımcıları bir araya getiren, yazımlıcılara geliştirme ve test kaynakları da sağlayan Android topluluğu.

Reddit – Android Yazımlımcıları Topluluğu

https://www.reddit.com/r/androiddev

Android yazılımcılarını bir araya getiren, yazılım geliştirme sırasında karşılaşılan konuların, soruların tartışılabileği Android topluluğu.  

Front-end Developer – HTML/CSS/Javascript

Detaylı açıklama için tıklayın (İngilizce)

HTML ve CSS’e Giriş Dersleri (Udacity)

https://www.udacity.com/course/intro-to-html-and-css–ud304

Udacity üzerinden ücretsiz web geliştirmeye giriş dersi. Yeni başlayanlar için temel bir kaynak.

Web Tasarımı Temelleri (Udacity)

https://www.udacity.com/course/intro-to-html-and-css–ud304

Udacity üzerinden ücretsiz web tasarımı temelleri dersi. HTML ve CSS Giriş dersinin üzerine web tasarımı hakkında detaylı bilgilenmek isteyenler için birebir.

TCP, IP ve Diğer Protokoller (Udacity)

https://www.udacity.com/course/

Udacity üzerinden ücretsiz web teknolojileri ve web protokollerine giriş dersi. Web nasıl çalışır diye merak ediyorsanız, bu kaynağa mutlaka bakmalısınız.

Bootstrap’a Giriş (edX)

https://www.edx.org/course/introduction-bootstrap-tutorial-microsoft-dev203x-0

edX’in web geliştirmecilerine Bootstrap kullanımı ve geliştirme alanları için verdiği ücretsiz ders.

Back-end Developer – PHP

Bu alan hakkında biraz arkaplan ve bu seviyede öğrenmen gerekenler için şuraya tıklayın (ingilizce).

Learn PHP (Codecademy)

https://www.codecademy.com/learn/php

Codecademy’nin bu ücretsiz kursunda PHP ile ilgili tüm gerekenleri öğrenin.

Learn PHP

http://www.learn-php.org/

PHP’ye giriş için güzel ve kullanışlı bir websitesi.

PHP.net Dili Referansları (PHP Resmi Sitesi)

http://php.net/manual/en/langref.php

PHP kullanımına dair gerekli tüm detayları bulabileceğiniz PHP.net’in resmi internet sitesi.  

PHP The Right Way (Orta Seviye)

http://www.phptherightway.com/

PHP hakkında en güncel bilgileri bulabileceğiniz, PHP kullanımına dair deneyimlerin paylaşıldığı referans bir websitesi. Genel olarak orta ve ileri seviye PHP geliştirmecilerine hitap ediyor.

Back-end Developer – Java

Detaylı açıklama için tıklayın.

Intro to Java (Udacity)

https://www.udacity.com/course/intro-to-java-programming–cs046

Udacity’ nin Java Programlama diline giriş dersi. San Jose Üniversitesi tarafından geliştirilmiş olup standart bir bilgisayar programlama ders programını takip eder. Derse erişim ücretsiz olup dersin tamamlanması yaklaşık 4 ay sürecektir.

LaunchCode Java Class

https://github.com/MoMenne/launchcode-java-class

Bu ders Java Programlama diline giriş dersi olmasına rağmen daha cok problem ve alıştırma odaklı olup Java programlama dilini uygulayarak öğrenmek isteyenler için idealdir.

Zero Effort Spring Boot (Video)

https://www.youtube.com/

Java dilini kullanan programcılar için tasarlanmış çok sayıda web modeli mevcut. Spring ise bunlar içersinde en çok kullanılanı. Bu video Spring le tanışmak için çok iyi bir fırsat.

CS50 Finance Java (Spring) Project

https://github.com/launchcode-rebootu/cs50-finance-java

CS50 dersinde kullanılan bir problemi Java dilinde Spring kullanarak yapmanız isteniyor. Öğrendiklerinizi uygulamak için güzel bir fırsat.

Mezuniyet Projesi: Uzmanlığını göster

Evet, tüm eğitimleri tamamladınız, gerekli tüm aşamaları geçtiniz ve bir programlama dilinde uzmanlaştınız. Şimdi de bu uzmanlık alanını bir mezuniyet projesi ile göstermeye ne dersiniz?

Öğrendiğiniz yeni bilgileri kullanarak kendi başınıza yapabileceğiniz bir proje ile uzmanlık alanınızı iş verenlere gösterebilir ve kendinizi kanıtlayabilirsiniz. Geliştirmeyi yaparken projenizi mutlaka Github üzerinde paylaşın ki, nasıl kodlama yaptığınızı iş verene gösterebilesiniz.

Asağıda kendi alanınızda proje yaparken dikkat etmeniz gereken noktaları sizler için derledik. Bu listede proje yapımı için gerekli ilk adımları ve projenizin değerini daha da arttıracak etkileyici örnekler bulabilirsiniz.  

Proje temelleri

Bu noktaya kadar uzmanlaşman için gerekli olan tüm bilgileri öğrendin. Şimdi öğrendiklerini uygulama zamanı! Fakat seni heyecanlandıran bir projeye başlamadan önce öğrenmen gereken son birkaç araç kaldı.

Github Kullanımı

Git ve Github kullanımı üzerine aşağıdaki kaynakları kullanabilirsin.

Try Git

https://try.github.io/levels/1/challenges/1

Git versiyon kontrol sistemine giriş dersi (Oldukça basit seviye). Bu dersi tamaladıktan sonra bir ileri seviye dersi daha tamamlamak gerekir.

Git – The Simple Guide

http://rogerdudler.github.io/git-guide/

Başlangıç seviyesinde kullanım kılavuzu olarak kullanılabilecek bir kaynak.

How to Use Git and Github (Udacity)

https://www.udacity.com/course/how-to-use-git-and-github–ud775

Birden fazla yazılımcının birlikte çalıştığı projelerde yazılım sürecinin takibini verimli bir şekilde yapmayı sağlayan versiyon kontrolü sistemi Git ve sistemin uygulandığı platform olan Github a giriş niteliğinde bir ders. Ders içeriğine erişim ücretsiz olup dersin tamamlanması yaklaşık 3 hafta sürecektir.

Getting Your Project on Github

https://guides.github.com/introduction/

Projenizi Github üzerinden nasıl paylaşabileceğinizi adım adım anlatan bir kaynak.

Command-line Kullanımı

Command-line kullanımı üzerine aşağıdaki kaynakları kullanabilirsin.

Learn the Command Line (Codecademy)

https://www.codecademy.com/learn/learn-the-command-line

Basit komutları öğrenebileceğin giriş niteliğinde ücretsiz bir ders.

Command Line Crash Course

https://learncodethehardway.org/unix/

Command Line üzerine daha detaylı bilgi edinebileceğiniz ücretsiz bir ders.

Linux Command Line Basics (Udacity)

https://www.udacity.com/course/linux-command-line-basics–ud595

Command line kullamını üzerine ücretsiz bir ders. Yaklaşık 1 haftada tamamlayabilirsiniz.

Kendi alanında bir proje

Alanında uzmanlaştın, gurur duyarak anlatacağın projeni paylasacağın Github platformunu kullanmayı öğrendin. Artık tek yapman gereken projene odaklanmak. Daha önce bir projede çalışmadıysan hiç sorun değil. Aşağıdaki linklerden gerekli bilgileri temin edebilirsin.

Mobil Proje

Bugüne kadar mobil dilleri hakkında öğrendiklerinizi bir mobil projesi yaparak gösterebilirsin!

https://github.com/LaunchCodeEducation/

Mobil dillerden birini kullanarak yeni bir uygulama yaratmaya ne dersin? İster bu linkte bulunan örneklerden birini, ister de kendi yaratıcılığınızı kullanarak yeni bir uygulama yaratabilirsin. Birkaç tane de değişik özellik ekleyin tamam!

Front-end Proje

Bugüne kadar front end dilleri hakkında öğrendiklerinizi bir front end projesi yaparak gösterebilirsiniz!

https://github.com/LaunchCodeEducation/

Bu projeler için sadece front end bilgileri bilmen yeterli, diğer back end dillerini bilmesen de olur. Uygulamanın veri depolaması gerekiyorsa, HTML5 Web Storage kullanarak bir çözüm bulabilirsin. Önemli olan front end kullanarak web geliştirme yapmak!

Back-end proje

Bugüne kadar back end dilleri hakkında öğrendiklerini bir back end projesi yaparak gösterebilirsin!

https://github.com/LaunchCodeEducation/

Kaynak Listesi: İrfan Barutçu