Bilmek istediğin her şeye ulaş

Yazılım geliştirme konusunda yeni olan ve kendini geliştirmek isteyen biri ne yapmalıdır? Hangi kurslar, kitaplar veya eğitimler yeterlidir?

Hangi programlama dilini kullanmak istediğinizi bilemiyorum ama yazılım geliştirme işini öğrenmek istiyorsanız ve bu konuda başlangıç seviyesinde iseniz size tavsiyem merak ettiğiniz her şeyi sıfırdan araştırarak işe başlamanız.

Bu işin kursları veya eğitim merkezleri gibi kaynaklar size yardımcı olabilir ancak bu tarz yerlerde genellikle sizin kısa bir araştırma ve çaba ile öğrenebileceğiniz bir çok bilgiyi saatler süren eğitimlerle veriyorlar ve bunun yanı sıra daha fazla para kazanabilmek için eğitimleri birbirinden ayırmayı tercih ediyorlar. Yani bir eğitim kurumunda bu işi halletmek isterseniz sadece bir tek başlık ya da paket değil birden fazla paket eğitim satın almanız gerekiyor. Örneğin; Nesne Yönelimli Programlamaya Giriş, C#, Web Uygulaması Geliştirme, CSS... vs gibi ayrı ayrı paketler var ve bunların hepsi ayrı para ve zaman.

Ne yapmak istediğinizi biliyor musunuz?
Ben size yazılım geliştirmeye nasıl başladığımdan kısaca bahsetmek istiyorum. Yıllar önce özellikle grafik tasarıma olan merakım nedeni ile Fireworks ve Photoshop öğrenmek istedim. İnternette bir çok araştırma ve deneme yanılma ile bir şeyler ortaya çıkmaya başlamıştı. Üstelik artık arama motorlarına cümlecikler halinde sorgulama yapabiliyorsunuz; "How to create an icon in Fireworks" gibi.

Ardından, bu araştırmalar esnasında (ki sürekli olarak bir pratik tekrarından bahsediyorum) "Yaptığım tasarımları bir web sayfasında nasıl gösterebilirim?" sorusu kafamı kurcalamaya başladı. Bunun üzerine Macromedia DreamViewer ile tanıştım. Macromedia daha sonra Adobe tarafından satın alınmıştır. Bu sorunun en basit yanıtı HTML, CSS ve bir miktar Javascript idi. Bütün bunları araştırarak ve ihtiyaçlara yanıt vermek amacı ile sürekli pratik yaparak öğrenmeye başladım zamanla.

Bu süreçlerin ardından elimde bir miktar grafik tasarım, bu tasarımları bir web sayfasına dönüştürebileceğim bir miktar bilgi ve kullanmayı öğrendiğim araçlar vardı.

Sonunda bir gün yeni bir soru kafamı kurcalamaya başladı; "Alışveriş sitelerinde bir sürü ürün var ve bu ürünler ekrana nasıl basılıyor?". Bu sorunun yanıtı gayet basit ama gerçekleştirilmesi daha zordu; veritabanı ve programlama.

O günden itibaren kendime bir hedef belirledim. Hedefim "Bir veritabanında bulunan ürünü fotoğrafı ve diğer bilgileri ile beraber ekrana basmak" idi. Çok basit bir hedef gibi görünebilir şu an, ama o dönemde benim için çok uğraş verdiğim ve bu basit hedefe ulaşmak için çok fazla araştırma yaptığım bir sürece sebep olmuştu.

Sonunda artık resmen bir web programcısı olmaya başlamıştım. Bundan sonra elimde yeterli düzeyde veritabanı yapıları bilgisi, C#, Javascript, CSS, HTML ve Web Tasarım bilgisi vardı. Bu arada bir not; sadece 1 kişinin tüm bu işlerin hepsini yapmasına gerek yok, hatta yanlış bile olabilir. Çünkü, tasarımcı tasarım, yazılımcı yazılım, veritabanı yöneticisi kendi işini yapmalıdır ve bunlar birbirleri ile iletişim kurabilecek kadar bu işler hakkında bilgi sahibi olmaları yeterlidir. Ancak, biz girişimci olmamız nedeni ile kaynaklarımızı bu yönde geliştirmek ve kullanmak durumunda kaldık. O sebeple bir çok işi kendiniz yapmak durumunda kalabiliyorsunuz bir girişimci olarak.

Tüm bu bilgiler proje geliştirerek, karşılaşılan sorunların çözümlerini araştırarak ve ihtiyaca göre komponentler geliştirerek zaman içinde çok daha iyi seviyeye geldi. Tüm bu eğitim ve öğrenme sürecinin toplam ne kadar zaman aldığını merak ediyorsanız söyleyeyim; amatör seviyeye gelmem en azından 2 yıl, sonrasında profesyonelleşmek ise toplamda 3-4 yıl sürmüştür.

Benim tavsiyem, yapmak istediğiniz en ufak hedefi gerçekleştirene kadar araştırmaktan vazgeçmeyin. Bu araştırmaya eşlik edecek en önemli şey ise pratik olsun. Araştırma ve pratik yaparak edinemeyeceğiniz bilgi yoktur. Ve işin doğrusu, bugün internette çok daha fazla kaynak var ve bu kaynaklar doğru kullanıldığı zaman sizi istediğiniz konuda bilgi sahibi yapmaya yetecektir. Özünde inploid'de bu kaynaklardan bir tanesi aslında, hatta belki bugün bu yanıt ile size internette başka hiç bir yerde bulamayacağınız bir tecrübe ile karşılaşma şansı ortaya çıkmış oluyor :) Umarım faydası olur, başarılar dilerim.
  • Paylaş
Diğer cevaplardan biraz farklı olarak öncelikle programlama temellerine odaklanmanı öneririm. Değişik programlama yaklaşımlarında kendini geliştir. Örnek olarak nesneye yönelik programlama, fonksiyonel programlama, prosedürel programlama gibi. Şuanda piyasada en çok kullanılan nesneye yönelik programlama onunla başlayabilirsin. Öğrendiğin kavramları herhangi bir platform kullanarak örneklerle pekiştir (Java, .NET vb..). Bilgisayarın temellerini öğren okul ne kadar gereksiz dense de, okulda öğrendiğin şeyler eğer hatırlarsan ileride problem çözmende sana oldukça yararlı olaraktır.

Bilgisayar nasıl çalışır, memory, compiler, algoritmalar, işletim sistemleri gibi kavramları temel de olsa ne olduğunu bil.

Kod yazmak işi iyi yaptığın anlamına gelmez nasıl iyi kod yazabileceğini öğren. Bunun için aşağıdaki kitapları okuyabilirsin:
  • Paylaş
Ben de bir dile odaklanılması görüşündeyim.Tabi ki bir yazılım geliştirirken farklı platformları da kullanmak gerekebilir. Ama öncesinde birinde iyi olmak lazım. Bence yazılım işinin başı algoritmadan geçer. 10 tane sayının nasıl sıralanması gerektiğini oluşturduktan sonra for'u if'i öğrenmek kolay.
  • Paylaş
Öncelikle merhabalar, eğer geliştirdiğim uygulamalar diğerlerinden farklı olsun istiyorsan öncelikle "Yazılım Mimarileri"ni ve "Metotlarını" öğrenmeli ve geliştirdiğin uygulamaya en uygununu seçmelisin. Bilmen gereken en önemli şey "yazılım" kavramının yalnızca kodlardan ibaret olmadığıdır. Yazılım Geliştirme sürecinin bir parçası olarak düşünüldüğünde kodlama bir çok evreden oluşan ve iç içe geçmiş yapılardan meydana gelen yazılımın sadece bir bölümünü oluşturur. Kısacası öncelikle Yazılım Mimarileri ve Metotlarını öğrenmelisin. Daha sonra Sistem Analiz ve Dizayn ile ilgili kaynakları araştırabilirsin internetten. Ayrıca "Information Theory and Coding", "Algorithm Design and Analysis", "Software Architecture and Design" gibi alt başlıkları da inceleyebilirsin. Son olarak dil seçmen gerekecek bu konuda sana yardımcı olacak insanlar ve kurumlar olacaktır. Fakat sektörün gidişatına göre araştırma yapabilir uzun vadede sana daha çok şey katacak dili seçebilir ve kendini gerek internetten bulacağın kaynaklar gerekse kurslar ve sertifikalar ile geliştirebilirsin.
  • Paylaş
Öncelikle hangi dil öğrenilecek? Hangi platformda yazılım geliştirilecek? Bunlar belirlenmeli ve ilk olarak platform mimarisi hakkında yeterli bilgiye ulaşılmalıdır. Bir "işi" yapan kodu herkes yazabilir önemli olan o "işi" yapan kodu en optimal biçimde yazmaktır. Bunlar dışında, hatta bunlar için bile yazılımcının işini en çok kolaylaştıran tool "Google"dır. her şeye yeter, yeter ki ne aradığınızı bilin.
  • Paylaş
Ben de sektörde işe başladıktan sonra üniversite okumanın çok gereksiz olduğu kanaatine vardım. Kendisi ilgi duyan ve bir şeyler yapmak isteyen insan zaten google'dan arayarak mevlasını bile buluyor. Üniversiteye gitmek yerine 4 yıl boyunca sektörde kullanılan teknolojileri öğrenmeye vakit ayırırsan, 4 yıl sonra senior developer olursun. Kanaatimce böyle.
  • Paylaş
1

mustafacanege, dediklerinizin bir çoğu doğru fakat iş kurumsallığa doğru kaymaya başladıkça diplomanın önemini anlıyorsunuz.

Kitaptan çok Lynda nın veya başka firmaların şahısların eğitim dvd leri izleyerek ve bol bol basitte olsa pratik yaparak olabilir. Kurs olarak İzmir de Faruk Çubukcu nun kursları yeterli olduğuna inanıyorum. Fiyat olarak epeyce pahalıdır. Kurs sonunda ise sertifika mevcuttur . Fakat kendi başına öğrenilmiyecek birşey değildir . Biraz zaman ve inançla olur diye tahmin ediyorum .
  • Paylaş
İlk olarak algoritma üzerine yoğunlaşmanızı tavsiye ederim. Öğrendiklerinizi örnek çözerek geliştirebilirsiniz. İnternette istediğiniz dil üzerine birçok kaynak bulabilirsiniz kurslara gerek duyacağınızı sanmıyorum.
  • Paylaş
Kitap zaten tavsiye edilir cevaplarda diye düşünerek ben asıl söylemem gerekeni söyleyeyim cevabımda. Öncelikle öğrenmek istediğinizi gerçekten hissetmelisiniz gelip geçici bir heves ise çabuk sıkılırsınız ve kalır. Öğrenmek istediğinize inandığınızda da gerçekten vakit ayırmalı, düzenli bir şekilde gitmeli, zorlandığınızda bırakmadan üzerine gitmeli, dağılmamalı, çalışmalı çalışmalı ve çalışmalısınız.
  • Paylaş
Yazılım işi zor ve zahmetli bir iştir. Öğrenmesi zordur. Adam gibi kod yazmak için seneler gerekir. Bir insan tek başına öğrenmek istiyorsa gereken en büyük şey merak ve istektir. İnsan bu ikisine sahipse bence gerisi çok önemli değil.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

3655 Görüntülenme21 Takipçi10 Yanıt