Yurt Dışına Hazırlık: Algoritmalar ve Programlamaya Giriş

所在平台: Udemy

课程主页: https://www.udemy.com/course/algoritmalar/

课程评论:没有评论

第一个写评论        关注课程

课程简介

## 准备赴海外:算法与编程入门 本课程旨在为学习者提供扎实的算法基础和编程能力,为海外留学或工作做好准备。课程通过 Spiralgo 项目,构建了一个鼓励互助学习的社区,让每个人既是老师也是学生。 **核心内容与亮点:** * **为什么要学习算法?** * 算法是解决问题的关键,能够独立思考并找到最优解。 * **职业发展:** 许多全球顶尖科技公司(如 Google, Facebook, Uber)将算法能力作为招聘的重要标准,因为它能客观地衡量一个人的问题解决能力,不受背景限制。 * **沟通与协作:** 算法面试不仅考察技术能力,也考察沟通能力、理解能力以及与面试官有效协作的能力。 * **Spiralgo 项目介绍:** * 一个基于 GitHub 的开源项目,旨在共同学习算法,并互助成长。 * 项目名称 "Spiralgo" 结合了 "spiral" (螺旋) 和 "algorithm" (算法),寓意着不断进步和探索。 * **持续更新:** 像所有开源系统一样,Spiralgo 致力于持续改进,模块化的视频设计便于更新和维护。 * **社区贡献:** 鼓励学习者贡献自己的经验和视角,共同推动项目发展。 * **GitHub 的重要性:** * 学习并使用 Git 版本控制系统,这是软件开发中的必备技能。 * GitHub 是一个广泛应用的平台,便于代码同步、协作和历史追踪。 * **LeetCode 170 精选题目:** * 课程以 LeetCode 上经过筛选的 **170 道精选算法题**为核心。 * 这些题目是许多科技公司面试的真实题源,能够帮助学习者掌握面试中的核心算法知识。 * Spiralgo 团队将对 LeetCode 的官方和用户解决方案进行优化和提升。 * **语言能力培养:** * **英语优先:** 英语是全球通用的沟通语言,在技术领域尤其重要。课程内容以英语为主,同时提供中文翻译和解释。 * **提升英语沟通能力:** 学习算法的同时,也会促进学习者在技术领域的英语沟通能力。 * **学习方式:** * **注重本质:** 课程侧重于理解问题的核心和学习目标,而非纠结于理论细节。 * **逐题解析:** 学习者将阅读英文题目,进行中文翻译,并分析题目细节的强调点,理解其为何成为解题的关键。 * **课程的商业模式:** * 部分课程将在 Udemy 等平台收费发布,旨在为 Spiralgo 项目的持续发展提供资金支持,让团队能够专注于解决问题,而不是为其他公司工作。 * **透明的决策过程:** * Spiralgo 致力于以清晰、准确的原则来构建项目,并公开分享相关决策,鼓励学习者参与和贡献。 **课程核心理念:** **“问题解决者 (Problem Solver)”** 是 Spiralgo 对学习者的称呼,寓意学习者通过不断解决问题来塑造自己,实现自我超越。通过本课程,您将不仅掌握算法和编程技能,更能提升解决问题的能力、沟通能力和国际视野,为未来的发展打下坚实基础。

课程评论(0条)

课程详情

*** 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)

课程标签

0人关注该课程

主题相关的课程