Algoritma yapamıyorum

Katılım
30 Temmuz 2019
Mesajlar
3.632
Çözümler
23
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Merhaba arkadaşlar, öncelikte kendimden bahsedeyim biraz, konuyu "konu dışı" bölümüne mi yoksa buraya mı açsam karar veremedim ama "programcılık" hakkında sorularım olduğu için buraya açmak doğru olur diye düşündüm. 22 yaşındayım liseden muhasebe mezunuyum, çeşitli sebepler yüzünden bilişim okumak nasip olmadı lisede. Küçük yaşlardan beri hep bilgisayar üzerine bir mesleğim olmasını hayal etmişimdir fakat eğitim konusunda şartlar hiç elvermedi bilgisayar üzerine bölümler okumak. Meslek lisesi olduğumdan dolayı üniversite bölümü olarak muhasebe bölümüne ek puan alıyordum. 2 sene de hızlıca muhasebe okuyup daha sonrasında pomem ile polislik denemek vardı aklımda. Üniversitede ilk senem bitti ve "uzaktan öğretim bilgisayar programcılığı" bölümüne yatay geçiş denedim, kabul oldu. Yeni bölümümde de çeşitli ailevi özel durumlardan dolayı ve çok yoğun iş ortamımdan dolayı okulu 1.5 sene dondurmak zorunda kaldım. Bu sene başlayabildim okula tam focus şekilde. Çok uzun sürmeden çok hayalini kurduğum mesleğin eğitiminde de içimi bir umutsuzluk kapladı ve bunun sebebi ise algoritma konusunda sıkıntılar yaşamam oldu. Şu şekilde özetleyebilirim size; bir algoritma sorusu var önümde mesela bunu kendim cevaplayıp yazamıyorum algoritmayı ama yazılı olan algoritmanın ne anlatmak istediğini, neyi çalıştırdığını anlayabiliyorum. Yazılı olan algoritmanın akış diyagramını da çizebiliyorum. Daha temel bir konuda gerçi algoritma kodlamanın her düzeyinde var olan bir şey ama temel mantığını bile çözemediğim için içimi bir umutsuzluk kapladı ve geleceğim hakkında kaygı kapladı içimi. Şöyle söyleyeyim, ben her türlü 2 sene sonunda bu diplomayı alacağım fakat benim hayalimde bu işi meslek edinmek vardı ama sadece para kazanayım bir mesleğim olsun kafasında değil de sürekli kendime bir şeyler katayım kendimi geliştireyim kafasındaydım yani dümdüz yapmak istemiyorum bu işi yapacaksam. Yaş olarak biraz geç kaldığımı da düşünüyorum açıkçası. O yüzden aklıma yine kendimi bu işte kariyer yapma düşüncesi ile kasmayıp, diplomamı alıp yine polisliğe veyahut aklımda ki diğer mesleklerden birine yönelmek geliyor. Bu iş ile uğraşan abilerimden, ablalarımdan, kardeşlerimden tavsiyeler bekliyorum. Her türlü eleştiriye, yoruma ve tavsiyeye açığım. Algoritma problemlerini çözebilmek için önerilerinize vs. açığım. Algoritma için rehber videolarına açığım ücretli veya ücretsiz fark etmez(tercihen Türkçe kaynaklar). Üst düzey bir ingilizcem yok ama giriş seviyesi bir İngilizce gerektiren rehber videolarını vs. anlayabiliyorum. Bunun haricinde daha başlarda takıldığım için "farklı alanlara yönel" gibi tavsiyelere de açığım yani anlayacağınız her türlü tavsiyelere, yoruma açığım. Çevremde bu konu hakkında dertleşeceğim, fikirlerini alacağım kimse olmadığı için buraya bir konu açmak istedim. Zamanınızı ayırdığınız, kulak verdiğiniz için şimdiden teşekkür ediyorum.
 
Son düzenleyen: Moderatör:
Tercihen Turkce demenden acil Ingilizce ogrenmen gerektigi ortaya cikiyor.

Algoritma konusunda da zorluk yasaman muhtemelen matematik temelinin yetersizliginden ve pratik eksikliginden kaynaklaniyor.

Ornegin algoritmaya giriste surekli yapilan "bir sayinin asal olup olmadigini test etme" ya da "fibonacci dizisinin 15. elemanini yazdirma" gibi basit seyleri kendin yapabiliyor musun?

Algoritmayi anlayabiliyorum ama kendim yazamiyorum demek Ingilizce ogrenen insanlarin "Konusulani anliyorum ama kendim konusamiyorum" demesiyle ayni problem. Cozumu de pratik yapmak.

Sana pratik konusunda web sitesi tavsiyesi de verebilirim ama Ingilizce cok daha acil. Tutup da Turkce kaynaklardan algoritma isimlerini, veri yapilarini Turkce ogrenirsen en iyi ihtimalle orta seker bir programmer olursun.

Saglam egitim alma yasini kacirmissin, bu saatten sonra kendi kendine ogreteceksin her seyi.

Gerekli Ingilizce ve C benzeri syntax bilgisi olduktan sonra su kitap bence giris seviyesi icin en iyisi:


Bundan daha sofistike algoritma tasarlamani gerektirecek Junior seviye is dunyada %0.1 oraninda bulunur.
 
Tavs
Tercihen Turkce demenden acil Ingilizce ogrenmen gerektigi ortaya cikiyor.

Algoritma konusunda da zorluk yasaman muhtemelen matematik temelinin yetersizliginden ve pratik eksikliginden kaynaklaniyor.

Ornegin algoritmaya giriste surekli yapilan "bir sayinin asal olup olmadigini test etme" ya da "fibonacci dizisinin 15. elemanini yazdirma" gibi basit seyleri kendin yapabiliyor musun?

Algoritmayi anlayabiliyorum ama kendim yazamiyorum demek Ingilizce ogrenen insanlarin "Konusulani anliyorum ama kendim konusamiyorum" demesiyle ayni problem. Cozumu de pratik yapmak.

Sana pratik konusunda web sitesi tavsiyesi de verebilirim ama Ingilizce cok daha acil. Tutup da Turkce kaynaklardan algoritma isimlerini, veri yapilarini Turkce ogrenirsen en iyi ihtimalle orta seker bir programmer olursun.

Saglam egitim alma yasini kacirmissin, bu saatten sonra kendi kendine ogreteceksin her seyi.

Gerekli Ingilizce ve C benzeri syntax bilgisi olduktan sonra su kitap bence giris seviyesi icin en iyisi:


Bundan daha sofistike algoritma tasarlamani gerektirecek Junior seviye is dunyada %0.1 oraninda bulunur.
Evet söylediğiniz giriş seviyesinde ki şeyleri yapabiliyorum. Attığınız kaynak için teşekkür ederim. İngilizce öğrenme çabam var fakat söylediğiniz gibi sağlam eğitim alma yaşını kaçırdım. Kafamın bastığı kadarıyla hem programcılığa hem yabancı dile hepsine aynı anda kafa veriyorum. Türkçe kaynaklar o kadar kötüyse İngilizce kaynak olması daha iyi zaten. Hem bu sayede İngilizce öğrenme sürecimi de hızlandırır İngilizce kaynaklardan çalışarak, pratik yaparak. Tercihen Türkçe kaynak istememin sebebi öğrenmek için geç kaldığımı düşündüğümden dolayı ne kadar çabuk o kadar iyi düşüncesi vardı aklımda. En iyisi önümde ki en az 2 seneyi hem programlamaya hem de yabancı dile kafa yorarak gidebildiğim yere kadar gitmek olacak. Tavsiyeleriniz için tekrardan teşekkür ediyorum.
 
Ben uzun süre algoritma üzerinde kalmanın çok da doğru olmadığını düşünüyorum, birkaç gününü algoritma öğrenmeye harcadıktan sonra yazılım dilini öğrenmeye başlamanı biraz ilerledikten sonra basit algoritma sorularını kodlar üzerinde yazmaya çalışmanı, kurcalamanı tavsiye ederim. Bu şekilde çok daha kalıcı bir algoritma öğrenme sürecin olur bence. Bilgisayar programcılığında anlatılan akış diyagramları, algoritma dersleri arkadaşımdan gördüğüm üzere inanılmaz bayağı ve sıkıcı, çok da bir şey katacağına şahsen inanmıyorum. Algoritma öğrenirken koddan uzak öğrenmek bence işi daha da zorlaştırıyor. Pseudocode kod denilen sözde-kod mantığından başlamak bence işleri koda geçince zorlaştırmaktan öte gidemiyor. Çünkü gündelik konuşma dilimiz ile kodda kurduğumuz mantıksal algoritmalar daha farklı ve tam olarak birbirlerini karşılamıyorlar ve bu kafa karıştırıyor. Bilmem demek istediğimi anlatabildim mi. Tamamen şahsi kaanatim belki de yanlıştır.

1 Ay ve daha fazla süre boyunca sadece algoritma çalışmak, zaman kaybından başka bir şey değil.
 
Son düzenleme:
Algoritma her şeydir. Sadece 1 ay değil programcılık kariyeriniz boyunca her gün algoritma çalışıp kafa yorup yeni yöntemler keşfedeceksiniz. Dil araçtır sana programı yazdıran onu çalıştıran şey algoritmadır.

Düşünüp resim çizmenin bile bir algoritması matematiksel bir karşılığı var.
 
Algoritma her şeydir. Sadece 1 ay değil programcılık kariyeriniz boyunca her gün algoritma çalışıp kafa yorup yeni yöntemler keşfedeceksiniz. Dil araçtır sana programı yazdıran onu çalıştıran şey algoritmadır.

Düşünüp resim çizmenin bile bir algoritması matematiksel bir karşılığı var.
Sanırım yanlış anlaşıldım, algoritma belli bir işin nasıl yapılacağının sıralı yoludur ben de biliyorum. Elbette yazılım geliştirilirken her an algoritmik düşünülüyor, tasarlanıyor. İşin doğası bu, evet onu çalıştıran şey algoritma. Ben zaten algoritmayı boşverin, gereksiz lazım değil vs demedim, sözde kod ve akış diyagramları ile öğrenilen algoritma başlığının yazılımda çok da karşılığı olmadığı gibi kafa karıştırdığını söyledim. 1 Ay çalışmanın gereksizliğinden bahsederken de, yazılımdan uzak ve algoritma adı altında yazılımla alakasız bulduğum çalışma türünden bahsetmiştim.
basit algoritma sorularını kodlar üzerinde yazmaya çalışmanı, kurcalamanı tavsiye ederim. Bu şekilde çok daha kalıcı bir algoritma öğrenme sürecin olur bence
Algoritma öğrenirken koddan uzak öğrenmek bence işi daha da zorlaştırıyor.
Yazılımda algoritmik düşünmek gerçek yaşam örneklerinden çok farklı, çünkü yazılıma şimdi şunu yap diyemiyoruz onu ona kendi dilinde aktarıyoruz. Ben şahsen zamanında bu karışıklığı yaşadığım için hoşlanmıyorum. Algoritmayı yazılım diline uygun bir şekilde kurgulayarak öğrenmek en doğru yol olduğu düşüncesindeyim, bunu da algoritma sorularını herhangi bir yazılım dilinde çözerek geliştirirsin. Gerçek hayattan ocağı aç, çayı koy örnekleri ile değil. Daha sonra proje geliştirirken izlediğin süreçler olsun, gerek takıldığın noktalar olsun bakış açını ve algoritma yeteneklerini geliştirecek zaten. Senin de dediğin gibi, yazılım alanında her an algoritmaya mağruz kalıyorsun, bunu yazılımdan uzakta yapmakta ve ayrırarak öğrenmekte ne fayda var ne kadar verimli?
Algoritma nediri ve basit örnekleri birkaç gün çalışıp temel mantığı kaptıktan sonra bunlardan uzaklaşıp, algoritma öğrenmeye yazılım üzerinden devam edilmeli demek istedim 1 ay boyunca algoritma çalışmayın derken. Algoritma gereksizdir değil.
 
Sözde kod ve akış diyagramları ile öğrenilen algoritma başlığının yazılımda çok da karşılığı olmadığı gibi kafa karıştırdığını söyledim.

Algoritma kodu yazarken tasarlanmaz yazmadan önce tasarlanmalı ki performanslı düzgün okunabilir kod yazılabilsin. Önceden tasarlanmış algoritmayı bir şemaya oturtman kayıt altına alman gerekir ki bunu da gereksiz kafa karıştırıcı bulduğun psödo kod akış diyagramlarıyla yaparsın. Eğer karmaşıklaştırıyorsa da algoritmayı doğru kuramamış karmaşıklaştırmışsındır.

Merhaba arkadaşlar, öncelikte kendimden bahsedeyim biraz, konuyu "konu dışı" bölümüne mi yoksa buraya mı açsam karar veremedim ama "programcılık" hakkında sorularım olduğu için buraya açmak doğru olur diye düşündüm. 22 yaşındayım liseden muhasebe mezunuyum, çeşitli sebepler yüzünden bilişim okumak nasip olmadı lisede. Küçük yaşlardan beri hep bilgisayar üzerine bir mesleğim olmasını hayal etmişimdir fakat eğitim konusunda şartlar hiç elvermedi bilgisayar üzerine bölümler okumak. Meslek lisesi olduğumdan dolayı üniversite bölümü olarak muhasebe bölümüne ek puan alıyordum. 2 sene de hızlıca muhasebe okuyup daha sonrasında pomem ile polislik denemek vardı aklımda. Üniversitede ilk senem bitti ve "uzaktan öğretim bilgisayar programcılığı" bölümüne yatay geçiş denedim, kabul oldu. Yeni bölümümde de çeşitli ailevi özel durumlardan dolayı ve çok yoğun iş ortamımdan dolayı okulu 1.5 sene dondurmak zorunda kaldım. Bu sene başlayabildim okula tam focus şekilde. Çok uzun sürmeden çok hayalini kurduğum mesleğin eğitiminde de içimi bir umutsuzluk kapladı ve bunun sebebi ise algoritma konusunda sıkıntılar yaşamam oldu. Şu şekilde özetleyebilirim size; bir algoritma sorusu var önümde mesela bunu kendim cevaplayıp yazamıyorum algoritmayı ama yazılı olan algoritmanın ne anlatmak istediğini, neyi çalıştırdığını anlayabiliyorum. Yazılı olan algoritmanın akış diyagramını da çizebiliyorum. Daha temel bir konuda gerçi algoritma kodlamanın her düzeyinde var olan bir şey ama temel mantığını bile çözemediğim için içimi bir umutsuzluk kapladı ve geleceğim hakkında kaygı kapladı içimi. Şöyle söyleyeyim, ben her türlü 2 sene sonunda bu diplomayı alacağım fakat benim hayalimde bu işi meslek edinmek vardı ama sadece para kazanayım bir mesleğim olsun kafasında değil de sürekli kendime bir şeyler katayım kendimi geliştireyim kafasındaydım yani dümdüz yapmak istemiyorum bu işi yapacaksam. Yaş olarak biraz geç kaldığımı da düşünüyorum açıkçası. O yüzden aklıma yine kendimi bu işte kariyer yapma düşüncesi ile kasmayıp, diplomamı alıp yine polisliğe veyahut aklımda ki diğer mesleklerden birine yönelmek geliyor. Bu iş ile uğraşan abilerimden, ablalarımdan, kardeşlerimden tavsiyeler bekliyorum. Her türlü eleştiriye, yoruma ve tavsiyeye açığım. Algoritma problemlerini çözebilmek için önerilerinize vs. açığım. Algoritma için rehber videolarına açığım ücretli veya ücretsiz fark etmez(tercihen Türkçe kaynaklar). Üst düzey bir ingilizcem yok ama giriş seviyesi bir İngilizce gerektiren rehber videolarını vs. anlayabiliyorum. Bunun haricinde daha başlarda takıldığım için "farklı alanlara yönel" gibi tavsiyelere de açığım yani anlayacağınız her türlü tavsiyelere, yoruma açığım. Çevremde bu konu hakkında dertleşeceğim, fikirlerini alacağım kimse olmadığı için buraya bir konu açmak istedim. Zamanınızı ayırdığınız, kulak verdiğiniz için şimdiden teşekkür ediyorum.

Dostum @bitwise in da dediği gibi İngilizce olmadan olmaz yazılım. Sektörde hiç kimse Türkçe yazmayacak yorum satırları bile İngilizce göreceksin. Ama öğrenmenin yaşı olmaz geç kalınmış değil elbetteki genç yaşlarda öğrenmek daha kolay. Ama yazılım sektörü sabit kalmayı kabul etmez. Her gün yazılım dilleri gelişiyor/değişiyor bu değişime ayak uydurabilmek için yaşın ne olursa olsun aktif bir öğrenme süreci içerisinde olman gerekiyor.
 
Algoritma kodu yazarken tasarlanmaz yazmadan önce tasarlanmalı ki performanslı düzgün okunabilir kod yazılabilsin. Önceden tasarlanmış algoritmayı bir şemaya oturtman kayıt altına alman gerekir ki bunu da gereksiz kafa karıştırıcı bulduğun psödo kod akış diyagramlarıyla yaparsın. Eğer karmaşıklaştırıyorsa da algoritmayı doğru kuramamış karmaşıklaştırmışsındır.
Bakın yanlış bakıyorsunuz, burada bilen bir geliştiricinin ihtiyacını planlamasından bahsetmiyoruz. Algoritma mantığı nasıl çalışılmalı, nasıl öğrenilmeli onu tartışıyoruz. Elbette zaten algoritmik mantığını oturmuş bir geliştirici planlama aşamasında istediğini yapar. İster sözde kod olarak önce tasarlar ister uml diyagramlarını çizer. Ancak bunun tersi yeni öğrenen biri için faydalı olmadığı düşüncesindeyim daha karışık.
Bakın Sadi hoca da benzer bir şey diyor, ister soruyu baştan dinleyin ister attığım saniyeyi:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Bakın yanlış bakıyorsunuz, burada bilen bir geliştiricinin ihtiyacını planlamasından bahsetmiyoruz. Algoritma mantığı nasıl çalışılmalı, nasıl öğrenilmeli onu tartışıyoruz. Elbette zaten algoritmik mantığını oturmuş bir geliştirici planlama aşamasında istediğini yapar. İster sözde kod olarak önce tasarlar ister uml diyagramlarını çizer. Ancak bunun tersi yeni öğrenen biri için faydalı olmadığı düşüncesindeyim daha karışık.
Bakın sadi hoca da benzer bir şey diyor, ister soruyu baştan dinleyin ister attığım saniyeyi:
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.


Şimde demek istediğinizi daha net anladım fakat açıklamanız eksik açıklamanızdan benim anladığım algoritmaya çok çalışmayın kod yazın kod yazerken öğrenirsiniz. Fakat kod yazarken öğrenilmez. Sadece kod yazmayı öğrenir. Algoritmayi önceden kurgulayıp bunu pratikte koda dökmeli. Algoritmayı da 'kek nasıl yapılır' gibi gündelik hayatın içinden değil de gerçek bir programlama mentalitesine uygun şekilde örneğin 'bir sayı listesindeki elemanları küçükten büyüğe nasıl sıralarız' gibi bir problemin algoritmasını psödo kod diyagram veya hayali nasıl kurgulamak istiyorsa ona göre kurgulayıp koda dökmesi gerekir.

Şimde demek istediğinizi daha net anladım fakat açıklamanız eksik açıklamanızdan benim anladığım algoritmaya çok çalışmayın kod yazın kod yazerken öğrenirsiniz. Fakat kod yazarken öğrenilmez. Sadece kod yazmayı öğrenir. Algoritmayi önceden kurgulayıp bunu pratikte koda dökmeli. Algoritmayı da 'kek nasıl yapılır' gibi gündelik hayatın içinden değil de gerçek bir programlama mentalitesine uygun şekilde örneğin 'bir sayı listesindeki elemanları küçükten büyüğe nasıl sıralarız' gibi bir problemin algoritmasını psödo kod diyagram veya hayali nasıl kurgulamak istiyorsa ona göre kurgulayıp koda dökmesi gerekir.

Algoritmayı kervan yolda düzülür şeklinde oluşturursa ne algoritmayı oturtur ne de kodlamayı, kafasını daha çok karıştırır. Önceden bir algoritma oluşturup kodlarken eksiklerini gidermeli algoritmada. Asıl bu şekilde daha iyi öğrenebileceğini düşünüyorum.
 

Technopat Haberler

Geri
Yukarı