Bilmek istediğin her şeye ulaş

Yazılım öğrenmeye nerden başlamak gerek hangi dillerle çalışmak gerekir öneriniz var mı? İyi bir yazılımcı olabilmek için bu konuda ne kadar süre çalışılmalı?

Yazılım diliyle programcılık öğrenmek çok zor ve gereksiz bir iştir. Ben mesela bu hatayı yaptım gerçi beni yönlendiren kimse yoktu, burda ise çok değerli arkadaşlar var o yüzden şanslısın. Şimdi bu işin ilkin mantığını öğreneceksin, mantığını bilip herhangi bir dili öğrenen programcı 3 ay içinde hiç bilmediği bir dili rahatlıkla öğrenebilir çünkü mantık üç aşağı beş yukarı aynıdır. O yüzden sana tavsiyem goo.gl/x61kk7 (Kerem Köseoğlu - Programcılık Mantığı)burdaki kitaptır. Kitaplar ve yazarları konusunda hatırı sayılır miktarda bilgim var ve bu kitap gibisi yoktur başlangıç için. Mantığı anlatırken aynı zamanda kodlarıda görürsün. Dört ayrı dilde yazmış örneklerini
  • Paylaş
5

Büşra, Çok teşekkürler

ömer Geziciler, Link uçmuş, yeniler misiniz?

ömer Geziciler, Teşekkür ederim.

Diğer meslektaşlarıma ek olarak şunu eklemek isterim. Yazılım kendi içerisinde bir derya, bir çok alanı var ve bu alanların her ne kadar mantığı birbirine yakın olsa da farklılıklar göstermektedir. Öncelikle kendinize bir alan seçerek başlamalısınız. Web app mi, masaüstü uygulama mı, mobil mi, database mi, plc mi ne kodlamak istediğinize karar vermelisiniz. Dil seçiminizi ancak bu karar doğrultusunda verebilirsiniz. Robot yapmak istemekle, web uygulaması geliştirmek olaylara farklı açılardan bakmanızı gerektirecektir. Uğur Çakır (@ugurcakir) ve Ceyhun Çakar (@ceyhuncakar)'ın görüşlerine aynen katılıyorum. Yazılım temelinde soru sorarak sorun yaratmak ve bu sorunlara çözüm üretmekten ibarettir. Yazılıma bence doğru soruları sorarak başlamalısın ki buna algoritma deniliyor. Doğru soruları sorabilmek içinde, uzun süreler boyunca yanlış sorulara çözüm üretmek zorunda kalacaksın. Doğru algoritmayı kurabildiğin sürece, yazılım dillerine adaptasyonun çok kısa olacaktır. Masadan bardağı al ve mutfağa götür işinde, masa var mı? Varsa hangi masa? O masanın üzerinde bardak var mı? Varsa alınabilir mi sorularını sorabildiğin zaman iyi bir yazılımcı olma yolunda emin adımlarla gidiyorsun demektir. Bu uzun bir süreçtir ve devamlılığını koruyabildiğin sürece başarısız olman imkansıza yakındır. Şimdiden başarılar dilerim.
  • Paylaş
C# öğrenerek başlamanızı tavsiye ederim. Fakat console düzeyinden değil direkt form uygulamaları geliştirerek başlamanız sizin faydanıza olacaktır. Şimdiye kadar her zaman ilk programlama öğretilen insana consoleden başlanır fakat şahsi görüşümce tamamen zaman kaybından öte birşey değil. İyi bir yazılımcı olmak zaman ve tecrübeye dayalıdır. Önce basit programcıklar geliştirmeyi öğrenmeye çalışın, takıldığınız yerlerde yabancı kaynakları araştırıp sorununuzu çözmeye çalışın.
  • Paylaş
2

Büşra, Teşekkürler

Büşra, Birde gerçekten haklısınız lisede c# dersi vardı fakat hiçbirsey yok kafamda.

Bu konuda meslektaşım Cüneyt'e katılmamamkla beraber fikrine saygı duyarım. Bir dilin temelini öğrenmeden hazır componentlerle yazılım geliştirmek, tarih sınavından önce hocanın verdiği notları ezberlemeye benzer. Ezberlediğiniz için, hazır olan bişeyi kullandığınız için sınavdan sonra onu unutmak gibi olacaktır. Haliyle öğrendiğiniz, kalıcı olmayacaktır.

Ben size direkt şu dili öğrenin demeyeceğim. Çünkü hepsinin yerine göre avantajları var. Bir alan seçtiğinizde ona uygun dili de bulacaksınız. Bunlardan önce kendinizi birazcık teorik anlamda geliştirmenizi öneririrm.

Başlangıç olarak veri yapıları ve algoritmalar hakkında kendinizi geliştirmenizi, yazılım tasarım desenlerine göz atmanızı öneririm. Veri yapıları genel dillerin yapısını tanımanıza programlamanın temelini anlamaya yardımcı olur. Algoritmalar ise bir yazılım geliştirmede size gerekecek çözüm yollarını bulmanızda yardımcı olacaktır. Yazılım tasarım desenleri, bir çok tecrübeli insanın ortak problemlere olan yaklaşımlarını gösterir. Dolayısıyla yazılım geliştirme yollarını anlamanıza, ufkunuzu açmaya fayda sağlacaktır.

Günümüzün popüler yazılım geliştirme mimarisi olan nesneye dayalı programlama kavramlarını öğrenmelisiniz. Nesneye dayalı program geliştirmek, günlük yaşamdaki problemleri yazılım ortamına aktarmanıza yardımcı olur. Bir arabayı düşünmek ve onu yazılımsal olrak modellemek nesneye dayalı programlama ile çok kolaydır.

Bir konuda uzmanlaşmak emek ve sabır ister. Yazılım konusunda sabır ise çok önemlidir. Eğer bir hata ile karşılaştığınızda hemen pes ediyorsanız, yol yakınken dönmekte fayda var. Bir hata ile karşılaştığınızda elinizde müthiş bir araç var. İnternet.

Genel olarak söyleceklerim bu kadar. Ekstra olarak aşağıdaki yazıyı okumanızı tavsiye ederim.
aliemre.co/yanlis-soru-kod-ogrenmek-isti... .
  • Paylaş
Öncelikle yazılımın doğası itibari ile sonu olmayan bir süreç olduğunu belirtmem gerekir. Yani nereden başlarsanız başlayın öğrenmenin sonu yoktur. X, Y, Z dillerinden ziyade bu dillerin temelini oluşturan algoritma kavramı ve veri yapılarını öğrenmenizde fayda var. Çünkü diller değişse de temelde ki düşünce değişmez. Yazılım kavramını oluşturan temel felsefeyi algoritmik ve matematiksel düşünceyi veri yapılarını ve bu tip temel konuları öğrenmeniz daha faydalı olacaktır. Öte yandan iyi bir yazılımcı olabilecek bir ömür alabilir. Çünkü öğrenmenin sürekli olduğu bir sektörden bahsediyoruz ve unutulmamalıdır ki bugün dennis ritchie bile google forumlarında paylaşılan yazılardan ve makalelerden bir şeyler öğrendiğini söyleyebilmektedir.Umarım faydalı olur.
  • Paylaş
Öncelikle hangi kulvarda yazılımcı olmak istediğinize karar vermeniz gerekiyor.Size bir çok yazılım dili önerebilirim; c#, python, eclipse, java... Fakat bunun size bir yararı olmaz. Herşeyden önce yapılar ve algoritmaları özümsemeniz gerekiyor. Bunların altyapısını kurduktan sonra yazılım dili arayışına çıkmanız gerekir.
  • Paylaş
Yazılım uçsuz bucaksız bir denizdir ve öğrenilecek şeyler hiçbir zaman bitmez. Bu yüzden iyi bir yazılımcı olmak için 3 yıl 5 yıl çalışılması gerekir demek çok yanlış olur. Öğrenilmesi gereken yazılım dili diye bir şey yoktur. Geliştireceğin uygulama için hangi dil en uygunu ise onu kullanman gerekecektir gerçek hayatta. Uygulama geliştirme mantığını bir kere öğrendikten sonra hangi dilde olursa olsun, adını ilk defa duydukların dahil, dilin syntax'ını öğrenip uygulama geliştirmeye başlamak bir haftadan fazla zamanını almaz diye düşünüyorum. Tabi o dilde uzmanlaşmak ve ileri seviye uygulamalar geliştirmek için çok daha uzun bir süre gerekecektir. Yazılım öğrenmeye ilk defa başlayan birisi için C veya konuşma diline yakınlığı nedeniyle Pascal en uygunu olacaktır diye düşünüyorum. Algoritma geliştirmeyi öğrendikten sonra günümüzdeki popüler dillere, C#, Java vs... , başlanabilir.
  • Paylaş
1

Büşra, Pascalı lisede kullandım ama üzerinde pek fazla durmadı hocalarımız o yüzden temel pek oturmadı diyebilirim önerinizi dikkate alıcam çok teşekkür ederim.

Ben genellikle hızlı öğrenilebildikleri için üst düzey yorumlama programlama dillerini öneririm. Özellikle pedagojik nedenlerle böyle düşünüyorum. C++'da bazı kavramlarla uzun süre uğraşıp çalışan tek satır kod yazmadan anlamaya çalışmak bıktırıcı olabilir.

Bence doğru olan, Python, Ruby, PHP gibi bir dilden başlamak. Sonra orta seviye Java C# gibi bir dil. Eğer yapmak istediğiniz gömülü (robot gibi) veya yüksek performanslı bir kodsa C/C++ a geçmek. Eğer web programlama yapacaksanız C/C++ öğrenmek size bir şey sağlamaz.

Türk programcılarda genelde buradakinin aksi bir eğilim var. Python, Ruby hatta C#'ı küçümseme. "C/C++ bilmeyen programcı değildir" gibi sözleri çok okudum ve duydum. Üst düzey bir dille yazmanız gereken bir programı C ile yazmak kötü programcılıktır. Ayrıca her C/C++ bilen bir üst düzey programı iyi bilmek zorundadır (tersi doğru değil)

Not: Yüksek performans'tan bahsederken sistemin bilgisayarınızı gerçekten sınırlarında kullanması gerektirmesinden bahsediyorum. İmaj işleme gibi. Programcılığın Türkiye'de az bilinen temel kurallarından biri "Gerekmedikçe (yani test sırasında programın zorlandığını gözlemlemedikçe) optimizasyon (kodu hızlandırma veya daha az RAM'la çalıştırmak için yapılan çalışmaların genel adı) yapma.
  • Paylaş
1

Büşra, Yorumunun için teşekür ederim fikir edinmem için yardımcı oldunuz.

Mesela: Açık akademi diye bir program var. Buradan temel programlamadan başlayarak uygulama geliştirmeye kadar çeşitli platformlar ile ilgili eğitim alabilirsin.
Açık akademi ile ilgili bilgiler: sadikderekoy.com/2013/11/acik-akademi. H...
  • Paylaş
1

Büşra, Teşekkürler

Önce hangi platform için yazılım yapacağına karar vermeli, ona göre ilerlemelisin.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

814 Görüntülenme14 Takipçi10 Yanıt