KODLAMA

Kodalama öğrenebilmek için hangi yazılımdan başlamalı? 

“Yeniysem hangi programlama dilini öğrenmeliyim?”

“İşler için en çok hangi programlama dili rağbet görüyor?”

“En popüler programlama dili nedir?”

En İyi Programlama Dilleri
En iyi programlama dillerinin resmi sıralamasını arıyorsanız, burada bulabilirsiniz: IEEE Spectrum en iyi programlama dilleri

Bu liste, belirli bir programlama dilinin bugün kullanımda olup olmadığını kontrol etmek için harikadır. Ancak, programlama konusunda yeniyseniz, yalnızca listeye dayalı bir dil seçmenizi önermiyorum.

Bir programlama dili nasıl seçilir
Bilgisayar bilimi, tamamen birikimli bir çalışma alanıdır. Bu, birbirini izleyen her konunun önceki konulardan oluştuğu anlamına gelir.

Daha önce okulda programlamayı (veya herhangi bir STEM alanını) öğrenmeye çalıştıysanız, elinizden gelenin en iyisini yapmaya çalıştıysanız ancak başarısız olduysanız - sorun siz değildiniz. Herhangi bir kümülatif konunun iyi bir profesörü, müfredatı dikkatli bir şekilde düzenler. Her öğrencinin ön koşulları yeterince hazırlamış ve yerine getirmiş olması koşuluyla, öğrencilerin ön bilgilerine yönelik beklentiler açık olmalıdır. İyi bir profesör beklentileri anlar ve bu kapsamın ötesinde hiçbir bilgiyi varsaymaz. Beklentilerin dışındaki her şey öğretilmelidir. Müfredattaki her konu, diğer konulara göre sırayla sıralanır.

Bir konu kümülatif olduğunda, bir ders müfredatı veya öğrenme yolu tasarlanırken titiz bir dikkat gösterilmelidir. Bununla birlikte, sıralaması için bir dil seçmeyin; Önceki bilgiler hakkında hiçbir varsayımda bulunmayan eksiksiz bir öğrenme yolunuz olan bir dil seçin.

Birkaç tavsiye sözü
Kodlamayı öğrenmeye başlamadan önce, yukarıda belirttiğim nokta üzerinde düşünmek önemlidir: bilgisayar bilimindeki her şey birikimlidir.

Bunu tekrarlamak istiyorum çünkü hevesli bir programcı olarak yapabileceğiniz en büyük hata, programlamayı öğrenecek kadar zeki olduğunuzu düşünmediğiniz için pes etmenizdir. Kodlama öğrenmenin zekanızla hiçbir ilgisi yoktur. Evet, programlamayı öğrenmek kim olduğunuz için değil, öğrenilecek çok konu olduğu için zordur.

İlk kural, aşağıdaki senaryonun gerçekleşeceğini kabul edin: Size kesinlikle hiçbir anlam ifade etmeyen yeni bir konuyla tanıştınız.

Bu senaryo tekrar tekrar gerçekleşecek. Bu durumla nasıl başa çıktığınız, her seferinde başarınızı belirleyecek tek faktördür.

Öğrendiğiniz mevcut konu size mantıklı gelmiyorsa, olduğunuz yerde kalın. Bir sonraki konuya geçmeyin. Tekrarlamak gerekirse, konular birikimlidir. İlerlemek, çerçevesi, duvarları ve temeli olmayan bir eve çatı takmaya çalışmak gibidir.

Kendimi sürekli bu durumda buluyorum. Öğrendiklerimi kavramak için genellikle bir video eğitiminin aynı dersini birkaç kez tekrar izlemem gerekiyor. Kendinizi benim yerimde bulursanız cesaretiniz kırılmasın.

Kullandığınız öğretici (veya kitap) konuyu yeterince açıklamadıysa, işinize yarayacak başka kaynaklar bulmanız gerekecektir. Öğreticinin bir konuyu kapsaması senin için işe yaramadı diye vazgeçmek için hiçbir mazeret yok. Öğrenmek istediğiniz hemen hemen her şeyi YouTube'da ücretsiz olarak bulabilirsiniz. Neyi arayacağınızı belirleyin (örneğin, [programlama dilinizde] [konu] + diğer yardımcı anahtar kelimeler).

YouTube'da eğitici öğreticiler arıyorsanız, önce istatistikleri kontrol edin. Derecelendirmeye ve/veya görüntüleme sayısına hızlıca bir göz atın. Bir videonun zaman ayırmaya değer olup olmadığından hala emin değilseniz, başkalarının görüşlerini ölçmek için bazı yorumları okuyun.

Pek çok konu ilk seferde bir anlam ifade etmeyecektir. Bu nedenle, olumsuz benlik düşüncelerinden kaçının.

Amaç, öğrenirken anlayışınızın bilincinde olmaktır. Öğrenme yolunda ilerlerken, kendini yansıtmanız gerekir. Ele aldığınız her konu için kendinize aşağıdaki gibi sorular sorun:

"Bu konu bana mantıklı geliyor mu?"
“Yeni bir terminoloji var mıydı? Eğer öyleyse, her yeni terim için resmi bir tanım sağlandı mı?”
“Yeni beceriler var mıydı? Her yeni becerinin uygulamada nasıl kullanıldığını anlıyor muyum? Alıştırma problemlerini çözerek bu beceriyi anladığımı gösterebilir miyim?”
"Yarın öğrendiklerimi hatırlayacak mıyım? Ve sonraki gün? Değilse, onu nasıl belleğe işleyeceğim?”
Son bir tavsiye: ezberlemenin gücünü asla hafife almayın. Ezberleme, öğrenmede tamamen kullanılmayan bir yaklaşımdır. Evet, bir konunun anlaşılması nihai hedeftir. Ancak anlaması zaman alabilir. Bir konuyu gerçekten kavramakta zorlanıyorsanız, konuyu parçalayın ve önemli terimleri ezberleyin. Bir şeyin nasıl çalıştığını anlayamıyorsanız, ilk hedefiniz ezberlemek olmalıdır. Ezberlemeyle nasıl başa çıkacağınız konusunda ipuçlarına ihtiyacınız varsa, çalışma kartı tekniğini kullanmayı düşünün. Bu tekniği nasıl kullandığım hakkında daha fazla bilgiyi Mülakat Hazırlık belgemde bulabilirsiniz.

1 — Bilgisayar Biliminin Temelleri
İlk adım, bilgisayar biliminin temellerini öğrenmektir

ls, makalemde ele aldığım: Bilgisayar Bilimi Terminolojisine Giriş. Bu makale özellikle hedef kitlem, yani herkes düşünülerek yazılmıştır. Bunu, bilgisayar geçmişi olmayan herkesin anlaması kolay olsun diye kasıtlı olarak oluşturdum.

Makalede yer alan kavramlar ağırlıklı olarak tanımlayıcıdır. Makaleyi rasgele okuyabilirsiniz ve bu sizin için yeterli. Bu terimleri hafızaya almanızı tavsiye ederim. Her terime okuldaymış gibi yaklaşın ve bir sınav için her terimin tanımını hatırlamanız gerekir. Eğer istemiyorsanız, kendinizi bu kadar kapsamlı bir şekilde taahhüt etmek zorunda değilsiniz. Ancak, bu kavramlardan ne kadar çok belleğe aktarabilirseniz, sonraki konuları anlamak o kadar kolay olacaktır.

2 — Önerme Mantığı (isteğe bağlı)
Hayır, programcı olmak için matematikte güçlü olmanıza gerek yok. Matematik becerileri yardımcı olabilir, ancak gerekli değildir.

Matematik becerileriniz konusunda güvensizseniz, önermeler mantığını öğrenmenizi öneririm. Önerme mantığının kapsadığı ilkeler, programlamanın yapı taşlarıdır.

Önermeler mantığını şu YouTube eğitiminden öğrenebilirsiniz: Önerme Mantığının Temel Kavramları.

3 — Java Programlama
Bilgisayar biliminin temellerini öğrendikten sonra, bir programlama dili öğrenmeye hazır olacaksınız.

Geçmişi ne olursa olsun herkese uygun bir yol tasarlamak için çok düşündüm ve çaba harcadım. Bu öğrenme yolu için Java'yı seçtim çünkü Java en deneyimli olduğum dil.

Java, en çok talep gören programlama dillerinden biridir. Nesne yönelimli bir programlama dili olarak sınıflandırılmıştır (bunun ne anlama geldiğini daha sonra öğreneceksiniz) ve masaüstü, web ve mobil uygulamalar yapmak için kullanılır.

Bir kitaptan öğrenmeyi tercih ediyorsanız, şunu tavsiye ederim: Head First Java.

Bir video eğitimi arıyorsanız, Derek Banas'ın Java YouTube eğitiminde 1–19, 31–33, 88 ve 93 numaralı videoları izlemenizi öneririm: Java Video Eğitimi.

YouTube eğitimindeki ilk video, sizi Eclipse adlı bir bilgisayar programını indirmeye yönlendirecektir. Eclipse bir Entegre Geliştirme Ortamıdır (IDE). Bir IDE'yi, programcılar için yapılmış bir kelime düzenleyici için süslü bir terim olarak düşünebilirsiniz. Programlarınızı çalıştırmak için diğer araçlarla birlikte programlama için bir metin düzenleyicisi sağlayan bir bilgisayar uygulamasıdır. İşte Derek Banas'ın Eclipse'in nasıl indirileceğine ilişkin YouTube videosunun bağlantısı: Java için Eclipse yükleyin.

4 — Algoritmalar ve Veri Yapıları
Algoritma, belirli bir görevi gerçekleştirmek için her adımın açıkça tanımlanmış, yürütülebilir ve sonlu (yani, sonsuza kadar devam etmeyen) olması gereken bir dizi talimat (veya adım).

Veri yapısı, verileri bellekte düzenlemenin bir yoludur.

Algoritmalar ve veri yapıları, programlamanın en zorlu konularından ikisidir. Programlamada temel yeterlilik için algoritma öğrenmenize gerek yok. Ancak, saygın bir teknoloji şirketinde yazılım mühendisi olarak çalışmayı hedefliyorsanız, görüşmeler sırasında algoritmaları ve veri yapılarını anlamanız beklenecektir.

Kişisel bir not olarak, aşağıdaki eğitici, algoritma becerilerimi acemiden uzmana taşıyan şeydir: Algoritmalar ve Veri Yapıları üzerine Udemy öğreticisi. Algoritmalar hakkında çok sayıda eğitim satın aldım. Bu şimdiye kadar karşılaştığım en kapsamlı olanıydı. İster algoritmaları ve veri yapılarını öğrenmek ister teknik mülakatlara hazırlanmak isteyin, bu eğitim başarı için en iyi seçeneğinizdir.

Not: Kurs pahalıdır, ancak zorunludur. Eğitmenle iletişime geçebildim ve bana cömertçe maliyeti 50$'dan 10$'a düşüren bir kupon kodu teklif etti. Kupon kodu, linke tıkladığınızda otomatik olarak uygulanacaktır.

Udemy öğreticisinin yanı sıra şu öğreticiyi kullanmanızı öneririm: VisuAlgo. VisuAlgo, bir algoritmaya girilen değerlerin yürütülmesi boyunca nasıl değiştiğini gösteren görselleri gösteren ücretsiz bir kaynaktır.

5— Android geliştirme
Android geliştirme bence Java programlamanın en eğlenceli uygulamalarından biridir. Android uygulamaları ağırlıklı olarak Java'da programlanmıştır, bu nedenle Java'yı bir kez öğrendikten sonra Android'i öğrenmeye hazırsınız demektir.

İşte Android öğrenmeye başlamak için en iyi ücretsiz video eğitimi: Yeni Başlayanlar için Udacity-Android Geliştirme.

Yukarıdaki Udacity kursunu tamamladıktan sonra, oradan nereye gideceğiniz için birkaç seçeneğiniz var. Aynı Google çalışanları grubu tarafından verilen yukarıdaki kursun bir uzantısı olmalıdır. Ek dersler, kursu tamamladığınızda görünür hale gelmelidir (eğer bulamazsanız, Udacity'de arayın). Bu, özellikle ücretsiz olduğu için iyi bir seçenektir.

Ancak, olağanüstü bir kitaba para harcamak istiyorsanız, aşağıdakileri şiddetle tavsiye ederim: Head First Android Development: A Brain-Friendly Guide. Bu kitap, Android'in temel kavramlarını öğrenmenize gerçekten yardımcı olacak ayrıntılı açıklamalar ve yardımcı görseller sunar. Her bölüm size bir sınavda yol gösterir

le uygulama. Her şey, herkesin anlayabileceği kelimeler ve diyagramlar kullanılarak ayrıntılı bir şekilde açıklanmıştır.

Yararlı Kaynaklar
Stack Overflow, programcıların kodlarıyla ilgili ücretsiz yardım alabilecekleri bir web sitesidir. Eğer takılırsanız ve bir soru sormak istiyorsanız, önce onu arayın. Sorunuzu bulamıyorsanız, bir hesap oluşturun ve soruyu kendiniz gönderin!

Programlama eğitimlerini bulabileceğiniz bir sürü eğitim sitesi var. Favorilerimden bazıları Codecademy, Udemy, Udacity, Team Treehouse ve Khan Academy.