|
via Udemy |
Go to Course: https://www.udemy.com/course/algoritmalar/
Certainly! Here's an English review and recommendation of the Spiralgo course on Coursera based on the provided details: --- **Course Review and Recommendation: Spiralgo Algorithm Training on Coursera** **Overview:** Spiralgo offers a unique online course dedicated to deepening understanding of algorithms and problem-solving skills. Unlike traditional theoretical courses, Spiralgo emphasizes the core concepts behind problem statements, encouraging learners to think critically, communicate effectively, and develop a problem-solving mindset essential for modern software development. **Content & Approach:** The course is designed to focus on the essence of questions, starting with reading and translating problem descriptions from English, and then dissecting the key aspects such as why certain details are emphasized. This method helps learners understand the logic and importance of different problem components, laying a solid foundation for developing effective solutions. One of the strengths of Spiralgo is its realistic acknowledgment that no system is perfect. Continuous improvement and updates are integral to the course, which inspired the modular structure of video content—making updates manageable and the learning process adaptable. **Why You Should Enroll:** - **Skill Development:** The course enhances not only algorithmic problem solving but also critical communication and analytical skills, which are vital in technical interviews and collaborative projects. - **Global Perspective:** It emphasizes the importance of algorithms in shaping big tech companies like Google, Facebook, and Oracle, illustrating how problem-solving skills translate into real-world applications. - **Bilingual Resources:** While the primary language is English, the course offers Turkish translations and explanations, making it more accessible for Turkish speakers aiming to improve their English technical communication. - **Practical Focus:** The course uses curated questions from LeetCode, specifically 170 carefully selected problems, providing learners with a solid set of practice challenges representative of real interview scenarios. - **Community & Collaboration:** Utilizing GitHub for interactive, collaborative learning emphasizes the importance of version control and teamwork in software development. **Additional Benefits:** Some parts of the course are offered via paid modules on platforms like Udemy, allowing learners to access comprehensive, structured content and deepen their understanding through practical exercises. **Who Should Take This Course?** - Beginner to intermediate programmers preparing for technical interviews. - Developers seeking to improve problem-solving skills in a structured environment. - Anyone interested in understanding how algorithms influence major tech companies and future technological developments. - Turkish speakers interested in improving their English technical communication skills. **My Verdict:** Spiralgo’s course is a compelling and thoughtfully crafted program that transcends simple algorithm training. It fosters a problem-solving mindset, emphasizes practical application, and integrates community-driven learning. Its transparent and open approach, combined with continuous updates, makes it a valuable resource for anyone serious about mastering algorithms and problem-solving in software engineering. **Final Recommendation:** If you're looking for a course that emphasizes understanding the *why* behind problems, develops your communication skills, and prepares you for real-world challenges, Spiralgo on Coursera is highly recommended. Its focus on both technical mastery and conceptual clarity makes it a standout choice in the realm of algorithm courses. --- Would you like a shorter summary or specific suggestions on how to get started with Spiralgo?
*** 2022 Ocak ayı güncellemeleri:- Meeting Rooms sorusuna yeni görseller eklendi.- Soruların (description) açıklamaları eklendi. ***Spiralgo'nun TanıtımıSpiralgo nedir?Spiralgo'yu, kendi spiralimizdeki, çevremizdeki dostlarımızla algoritmalar konusunda birbirimize yoldaşlık yapmak için bir GitHub reposu olarak başlatmıştık.Spiralgo adı da bu yüzden spiral ve algoritma sözcüklerinin birleşimindan oluşuyor.Burada herkes aynı anda hem öğretmen hem öğrenci idi, halen öyledir, gelecekte de öyle olacaktır.Spiralgo'nun bize yalnızca programlama yönünde yardımcı olmaktan öte; İngilizce iletişim kâbiliyetimizi, sorunların özünü idrâk etme seviyemizi ve yazılım projelerimizdeki başarılarımızı artırdığını da görünce, bu yolla daha fazla kimseye katkıda bulunabileceğimiz kanaatine vardık.Bu yüzden, Spiralgo üzerine çevrimiçi eğitimleri hazırlama kararı aldık.Neden Algoritmalara çalışmalıyız?Bu yönde ayrı bir ücretsiz eğitim hazırlayacağız, ancak kısaca değinmek, problem çözücüyü motive etmek açısından önemlidir.Bununla birlikte, neden algoritmalara çalışmamız gerektiği konusu ile Spiralgo'ya en başta neden ihtiyaç duyduğumuza dair soru birbirleri ile paraleldir.Algoritmaları öğrenmek için maddî ve manevî olmak üzere birçok sebep vardır. Biz, en pratik sebeplerden başlayarak bunlardan bahsedeceğiz.Biz her ne kadar, algoritmaların iş görüşmelerindeki teknik mülakatlara indirgenmesini doğru bulmasak da, neden Google, Facebook, Oracle, Uber, Twitter gibi büyük şirketler başta olmak üzere yazılım şirketlerinin, algoritmaları bir tür kabul edilmiş işe alım protokolü olarak gördükleri üzerine düşünmek de öğretici olacaktır.Bunun en temel sebebi, algoritmaların; kişinin milliyeti, cinsiyeti, dini, mezun olduğu okul ve bölüm gibi sınıflandırmalardan bağımsız bir şekilde problem çözme kâbiliyetini ölçecek bir zemin sağlamasıdır.Global bir vizyona sahip yazılım şirketlerinin, yukarıda sayılan detaylardan ziyâde problem-çözme zihniyetine sahip bireylere, yani problem çözücülere gereksinim duyduğu ortadadır.Bununla birlikte, algoritma mülakatlarında:Yazılımcının sorunun veya çözümün özünü (the essence, intuition) ne kadar iyi anladığıÇözümü ifâde edecek iletişim kâbiliyetlerine sahip olup olmadığıSoruyu çözmek için görüşmeci ile doğru iletişim kurup geribildirim almayı akıl edip etmediği,Görüşmeciye sorduğu soruların gerçekten soru ile bağlantılı ve işe yarar olup olmadığı gibi konular da, algoritmanın neden aynı zamânda iletişim kâbiliyetini ölçen sosyal bir zemin sağladığını da gösterir.Şirketlerin algoritmalara önem vermesi tabiî ki sâdece iş görüşmeleri için gayet faydalı teknik ve sosyal bir zemin sağlamasından ileri gelmez.Bu şirketler varlıklarını aslında algoritmalara borçludur.Eğer arama algoritmaları olmasa idi Google, tarayıcıdan video izlemeyi kolaylaştıran video sıkıştırma algoritmaları olmasa idi YouTube, Graph teorisine dayanan algoritmalar olmasa idi Facebook, ilişkisel veritabanlarına dair algoritmalar olmasa idi Oracle şu ân bulunduğu konumda olamazdı.Geleceğimizi bu şirketler yönlendirdiğine göre, aslında kendilerini bu şirketler üzerinden gerçekleştiren algoritmaların günden güne her alana yayılacağı aşikardır.Dolayısı ile, algoritmaların iktidârına ne kadar erken hazırlanırsak, kendimiz ve toplumumuz adına o kadar iyi bir geleceği hazırlıyor olacağız.Shannon'ın informasyon teorisinin bize öğrettiği sebeplerle kainatın kendisinin fizik kuralları ile kodlanmış bir tür bilgisayar olma ihtimali gibi daha teorik sebeplere, belki ayrı bir ücretsiz eğitim videosunda değiniriz.Dersin anlatımı nasıl olacak?Dersleri, teorik detaylarda boğulmaktan ziyâde soruların bizden ne beklediği, bize ne öğretmek istediği gibi; meselelerin özüne dair kavramlar üzerine inşâ edeceğiz.Önce soruların İngilizcelerini okuyacağız ve okuduğumuz sırada onları Türkçeye çevireceğiz.Soruda bazı noktaların neden özellikle vurgulandığını belirteceğiz.Mesela bir diziden (array) bahsederken, neden o dizinin özellikle strictly ascending order olduğu vurgulanmış olabilir?Bu çözüme giden yolda bir anahtar olabilir mi?Spiralgo kusursuz mu?Doğrusu, hiçbir sistem kusursuz değildir. Her sistem, varlığını sürdürmek için sürekli olarak problem çözmek zorundadır.Dolayısı ile, açık kaynaklı bir sistem olan Spiralgo'nun kusursuz olduğunu iddia etmek, pek erdemlice bir davranış olmayacaktır.Ancak başta açık kaynaklı sistemler olmak üzere, yazılım geliştirme metodolojileri güçlerini aslında tam olarak bunun bilincinde olmalarından alırlar.Spiralgo sürekli güncellenecek mi?Hiçbir sistem gibi, Spiralgo da kusursuz olmadığına göre, sürekli gelişim (continuous improvement veya kaizen) kavramını kendimize rehber edinmemiz ve hiçbir şeyin birdenbire mükemmele erişmeyeceğini kabullenecek olgunlukta olmamız gerekir.Bu yüzden videoları, yazılımdaki modülerlik (software modularity) kavramından esinlenerek, kolay düzeltilebilir ve güncellenebilir parçalar halinde hazırlayacağız.Spiralgo kodları gibi, eğitim videoları da sürekli güncel tutulacaktır.Sana neden "Problem çözücü" diye hitap ediyoruz?Sen de kendini bir yazılım gibi inşa etmekte olan sosyal bir sistemsin ve bugüne kadar çözdüğün sosyal ve teknik problemler aracılığı ile kendini inşâ ettiğin ve günden güne eski versiyonlarını aştığın için buradasın. Yazılım problemlerine dair reçeteleşmiş çözüm yolları demek olan algoritmalara çalışma gereksinimi duyman, bu yönde bir seviye daha güçlenmek istediğini gösteriyor.Spiralgo'nun gelişiminde problem-çözücü olarak senin katkın neden önemli?Bir sistemin varlığını sürdürmesi ve başarılı olabilmesi için problem çözmesi gerektiği gibi, onu ilk kuranları da aşması gerekir.Bizler hem ömür hem kabiliyet bakımından sonlu sistemleriz. Her işi kendimizin başaramayacağımızın farkındayız.Dolayısı ile, senin katkının, özgün tecrübe ve bakış açılarının Spiralgo'ya ve dolayısı ile diğer problem çözücülere büyük katkısı olacağından oldukça eminiz.GitHub nedir ve neden GitHub üzerinde interaktif bir çalışma şeklini seçtik?Bir yazılım geliştirilirken, farkı geliştiricilerin kodlarının ortak bir depoda senkronize edilmesi, varsa çakışmaların giderilmesi, yazılımdaki değişikliklerin geçmişe dönük olarak takip edilmesi gerekir. Bu ihtiyaç, özellikle uzaktan çalışmanın yaygınlaşması ile daha da artmıştır. Bu fonksiyonları yerine getiren yazılımlara versiyonlama sistemi denir. GitHub, Git versiyonlama sistem üzerine kurulmuştur ve benzerleri arasında en popüler olanıdır. Dolayısı ile en büyük yazılım şirketlerinde dahi kabul görmüş ve hızla gelişmekte olan bir altyapı sunmaktadır. Profesyonel bir yazılım geliştiricisi olmak isteyen herkes, GitHub ve benzeri bir sistemi öğrenmeye mecbur olduğundan, biz algoritma çalışmamızı bu vesile ile kullanabileceğimiz kanaatine vardık. Bu sebeple GitHub üzerine de, gene Spiralgo GitHub reposunu kullanarak ayrı bir ücretsiz kurs hazırlama niyetindeyiz.LeetCode nedir ve neden LeetCode 170 Curated sorularını temel aldık?LeetCode, kullanıcıları aracılığı ile en güncel algoritma sorularını toplayıp yıllardır test edilen sağlam bir altyapı hazırlamıştır. Bu sorular, kullanıcıların Google, Facebook, Linkedin gibi büyük şirketlerle yaptıkları iş görüşmelerinde bizzat sorulmuştur.Bizim bu eğitimde odaklandığımız LeetCode 170 Curated ise binlerce LeetCode sorusu içerisinden damıtılmış ve onların özünü içeren 170 adet sorudur.Her ne kadar bu sorulara internette arama yaparak erişmek mümkün olsa da, LeetCode'un varsayılan çözümleri ve kullanıcıların kendi çözümleri gibi bölümlere erişmek için premium hesap gerekmektedir.Spiralgo'da, biz bazen kendi çözümlerimizi, bazen daha nitelikli bulduğumuz LeetCode varsayılan ve kullanıcı çözümlerini refactor edip geliştirerek ekledik.Dolayısı ile, Spiralgo'daki çözümler de günden güne daha tatmin edici bir hâl almaktadır.Neden İngilizce'ye öncelik verdik ve neden Türkçe çeviri yapıyoruz?İngilizce, o veya bu nedenle artık global olarak kabul görmüş bir iletişim aracıdır.Bu demektir ki, problem-çözücü olarak sen, yurtiçinde veya yurtdışında global şirketlerle veya yabancı yazılım geliştiricilerle çalışırken İngilizce iletişim kurmak zorunda kalacaksın.Dolayısı ile, algoritmalar başta olmak üzere, üretilen makalelerin büyük bir yüzdesi İngilizcedir.Her alanda olduğu gibi, yazılım alanında da Türkçe kaynak sorunu vardır.Biz İngilizce'nin global olarak kabul gördüğünü gerçeği ile yüzleştikleştiğimiz için, soruları ve çözümleri öncelikle İngilizce olarak hazırladık.Ancak, Türkçe'ye çeviri yaparak, Türkçe kaynak sorununa da bir nebze olsun yardım etmeyi diliyoruz.Bununla birlikte, bu eğitimde olduğu gibi, İngilizce olan her şey Türkçe olarak da açıklanacaktır.Problem çözücü olarak senin de eğer İngilizce iletişim yeteneklerini geliştirme amacın varsa, Spiralgo bize yardımcı olduğu gibi, sana da olacaktır kanaatindeyiz.Neden Spiralgo'nun bazı eğitimleri Udemy gibi siteler üzerinde ücretli olarak yayınlanacaktır?Bizim, başka şirketlerde hâlihazırda çalıştığımız projeler vardır.Bu bir yere kadar bize çok şey öğretmiş ve maddi olarak da güçlendirmiştir.Ancak bir şirkette çalışmak o şirkete vaktimizi ve zihnimizi kiralamak demektir.Biz vaktimizi Spiralgo aracılığı ile problem çözmeye adamak istiyoruz.Neden kendi spiralimize problem çözme konusunda katkıda bulunmak varken, özellikle yabancı şirketlere yazılım üretmekle vakit harcayalım?Bu yüzden, bu ücretli eğitimler sâyesinde, vaktimizi başka amaçlar için kiralamaktansa daha yararlı olduğuna inandığımız bu amaç doğrultusunda kullanabileceğiz.Neden Spiralgo ve bu kursla ile ilgili kararlarımızı açıkça anlatıyoruz?Doğrusu biz kendi hayatımızı da etkin bir algoritmanın sahip olması gereken; kesinlik-açıklık (definiteness), doğruluk (correctness) gibi ilkelere göre inşa etmeye çalışıyoruz.Dolayısı ile, Spiralgo'ya dair her şey, işte bu dökümanda olduğu gibi olabildiğince açık ve doğru aktarılmalıdır diye düşünüyoruz.Bu ayrıca, problem çözücüyü yani seni bizimle özdeşlik kurmaya ve değerli fikirlerini bizimle paylaşıp katkıda bulunmaya teşvik edecektir.Doğru ya, her şey açık ve net. Açık kaynaklı bir sistem. Neden sevip sahiplenmeyesin?(Promotion video music:Music from Uppbeat: License code: SMBP7WJM5AW54NYN)