diff --git a/dotnet_deneme/readme.md b/dotnet_deneme/readme.md new file mode 100644 index 000000000..00efaa441 --- /dev/null +++ b/dotnet_deneme/readme.md @@ -0,0 +1,588 @@ + + +# .NET Development Path + +.NET yada .NET Framework, Microsoft tarafından geliştirilen, açık internet protokolleri ve standartları üzerine kurulmuş bir yazılım geliştirme platformudur. Sağladığı çoklu dil desteğiyle, tek dile bağlı kalmadan çeşitli uygulamalar geliştirmemize olanak sağlar. + +[.NET](https://dotnet.microsoft.com/learn) ile neler yapabilir ? + + - Konsol/Terminal de çalışabilecek text tabanlı uygulama, + - Windows, Linux, MacOs yada Docker da web uygulaması, + - iOS, Android yada Windows mobil cihazlarda çalışabilen uygulamalar, + - Windows işletim sistemleri için masaüstü uygulamaları, + - Unity kullanarak 3D oyunlar, + - Makine öğrenmesi modelleri, + - IoT uygulamaları. + + +Bu patikada C#, SQL Server, ASP.NET MVC, Web API, Entity Framework Code, Bootstrap ve HTML5 gibi birçok teknoloji, yazılım dili ve frameworkler ile yakın arkadaşlıklar kuracağız. Liste sizi korkutmasın yapbozun parçaları birleştikçe ortaya çıkan resim etkileyici olacak.:rocket: + +## 1. .NET Fundamentals: Core Concepts +Bu bölüm daha önce hiç tecrübeniz olmasa bile .NET temellerini anlamanız için doğru adres. Bu bölümde C# ECMA-335’ in standart özelliklerini, .NET tabanlı uygulamalarda kullanılacak .NET mimarisin temel bileşenlerini öğreneceğiz. + + +### Neler Öğreneceğiz: + +* History of .NET Platform +* .NET Framework vs. .NET Core vs. Mono +* .NET Standard Library +* .NET 5: One .NET Vision +* .NET 4.x vs. .NET Core/.NET 5 Architecture +* .NET Architecture Components: CLI, BCL, CLR, CTS, CLS +* .NET Compilation: IL/MSIL, JIT/RyuJIT +* Assembly and Garbage Collector + +## 2. Introduction to C# +C#, developerların .NET Framework üzerinde çalışan çeşitli güvenli ve sağlam uygulamalar oluşturmalarına olanak tanıyan nesne yönelimli yazılım dilidir. Windows uygulamaları, Web hizmetleri, mobil uygulamalar, istemci-sunucu uygulamaları, veritabanı uygulamaları ve çok daha fazlasını oluşturmak için C# kullanabilirsiniz. + +### Neler Öğreneceğiz: + + * Introduction to C# + * History of C# Version + * C# Code Execution + * Installing and Configuring Visual Studio + * Variable + * Data Type + * Safe Type Casting with IS and AS Operator + + +## 3. C# Conditional Statements and Loops +Bu bölümde C# koşullu ifadelerin ve döngülerin kullanımını öğreneceğiz. Python, Java, C vb. yazılım dillerini kullananlar için oldukça tanıdık ifadeler bunlar. Yeni başlayan arkadaşlarımın hiç endişe etmesine gerek yok onlar olmadan hiç bir yere gitmiyoruz. + +Bu kurs, karar verme ifadeleri, döngüler ve koşullu ifadeleri öğrenmemizi sağlayacaktır. Bunun yanı sıra C#’da temel programlama kavramları konusunda sizi rahat ettirecektir. + +### Neler Öğreneceğiz: + +* Operators +* Operators precedence +* Conditional Statements: if, if..else if, switch +* Loops: do..while, while, for, foreach +* Jump Statements + +## 4. Object-Oriented Programming in C# +C #, .NET Framework ve teknolojilerinden yararlanmak için yaygın olarak kullanılan bir dildir. Ve en önemli noktalardan biri ise Nesne Tabanlı bir programlama dili olmasıdır. Nesne Tabanlı yazılım dillerinin sağladığı konforu bu kursta deneyimleme şansı yakalayacağız. Bu kurs sonrasında projelerinizde sınıflar, yöntemler, nesneler, miras, yapı, numaralandırma ve dizin oluşturucu ile nasıl çalıştığınızı öğrenmiş olacaksınız. + +### Neler Öğreneceğiz: + +* Object-Oriented Programming Concepts +* Access Modifiers +* Constructor +* Inheritance +* Methods +* Structure + +## 5. C# Concepts: Abstract Class, Interface and Partial Class +Önceki kurslarda C# dilinin temel kavramlarını öğrendik. Bu kursta arayüz, soyut sınıf, kısmi yöntemler ve benzeri C# kavramları hakkında bilgi edineceksiniz. Soyut sınıf ve arayüz, soyut yöntemler yardımıyla soyutlama elde etmek için kullanılır. + +### Neler Öğreneceğiz: + +* Abstract Class +* Interface +* Interface vs. Abstract Class +* Static Class +* Extension Methods +* Partial Class +* Partial Methods + +## 6. Introduction to SQL Server +Bu kursta yazılım dünyasının vazgeçilmez kahramanlarından olan ilişkisel veri tabanlarını öğrenmeye başlayacağız. SQL dünyasında veri türleri, verilen düzenlenmesi, sorgu taktikleri gibi oldukça eğlenceli konular bizleri bekliyor. Bu kursta C# developerlar için veritabanları üzerindeki uygulamaları öğreneceğiz. + +### Neler Öğreneceğiz: + +* Introduction to Database +* Introduction to SQL Server +* Installing SQL Server and Components +* SQL Server Database and Tables +* SQL Keys +* SQL Commands +* SQL Constraints +* Types of Database + +## 7. T-SQL Fundamentals with SQL Server +Veri tabanlarının temellerini öğrendikten sonra SQL Server ile etkileşim kurmak ve T-SQL temel kavramlarını öğrenmek için çok heyecanlı olduğunuzu biliyorum. Ortak veri işleme görevlerini gerçekleştirmek için T-SQL konusunda profesyonel olma zamanı. + +Bu kursta, verileri sorgulama yeteneklerinizi geliştirmiş olacaksınız. Ayrıca filtreler uygulamanıza, verileri özetlemek için tabloları birleştirmenize ve SQL Server'daki istisnaları ele almamıza olanak tanıyan becerileri öğreneceksiniz. + +### Neler Öğreneceğiz: + +* Data Types, Variables and Operators +* SQL Server Control Of Flow +* SQL Query and Sub Query +* SQL Clauses +* SQL Predicates +* SQL Joins +* SQL Exceptions +* Try..Catch + +## 8. Introduction to HTML +Web geliştirme söz konusu olduğunda HTML5 oldukça sık duyacağınız yazılım dilidir. Ancak, HTML5’ ın geldiği noktayı anlamak için HTML'yi bilmek ve öğrenmek çok mantıklı olacaktır. HTML bir web sayfasının temel yapısını ve içeriğini tanımlar. Bir web sitesi oluşturmak için HTML patikasından geçmemiz gerekecektir. Hadi gelin başlayalım. + +### Neler Öğreneceğiz: + +* What is HTML? +* History of HTML +* HTML Development IDE +* HTML Page Structure +* Introduction to HTML5 +* HTML5 Document +* Browsers Support and Advantages + + +## 9. HTML5 Basics: Tags, Elements and Attributes +Bir önceki kursta HTML temellerini öğrenmiştik. Bu bölümde HTML becerilerimizi bir üst seviyeye taşımaya başlıyoruz. HTML etiketlerinin web sayfaları oluşturmanıza nasıl yardımcı olacağını anlamak için bu kursta güzel uygulamalar yapacağız. Bu kursu bitirdiğinizde, web uygulaması geliştirmek ve ilerlememize yardımcı olacak yeterli HTML bilgisine sahip olacağız. + +### Neler Öğreneceğiz: + +* HTML Tags +* HTML Elements and Attributes +* HTML Formatting and Styles +* HTML Layouts +* HTML Blocks and Inline Elements +* Empty Elements And Nested Elements +* HTML Quotation and Citation Elements + + + +## 10. Introduction to CSS +Bir önceki kursta Web dünyasının önemli aktörlerinden HTML öğrenmiştik ve bu patikada HTML’ in diğer yoldaşı olan CSS (Cascading Style Sheets) ile tanışma zamanı. CSS ve HTML el ele çalışan iki ortak olarak düşünebiliriz. HTML sayfa yapımızın düzenlenmesini sağlarken, CSS de HTML yapılarının nasıl görüntüleneceğini belirlememizi sağlıyor. + +### Neler Öğreneceğiz: + +* What is CSS? +* History of CSS +* Working with Text +* Properties +* Positioning and Layout +* Introduction to CSS3 +* Gradients & Backgrounds +* Transitions & Transforms + +## 11. Introduction to JavaScript +JavaScripti gerçekten öğrenmemiz gerekiyor mu sorularını soran arkadaşlarım için gezegenin en popüler programlama dillerinden biri olan JavaScript dünyasına hoşgeldiniz diyorum. Eminim bir çoğunuz kaliteli sitelere girdiğinde “işte web sitesi böyle olur” diyorsunuzdur. Bundan sonra şunu söyleyeceğinize eminim arka planda süper bir JavaScript geliştirici var! JavaScripti sadece web sitelerinde mi aklımıza getirmemiz gerekiyor sorusuna tabiki hayır cevabını veriyoruz. Javascipt makine öğrenmesi, derin öğrenme, mobil&masaüstü uygulamaları ve hatta oyun dünyasında bile yerini çoktan almış durumda. + +### Neler Öğreneceğiz: + +* Overview JS +* Basic Concepts +* Conditionals and Loops +* Functions +* Objects +* Core Objects +* DOM & Events +* ECMAScript 6 + +## 12. Introduction to jQuery +jQuery, hızlı, küçük ve zengin özelliklere sahip bir JavaScript kitaplığıdır. HTML belge geçişi ve manipülasyonu, olay işleme ve animasyon gibi eğlenceli uygulamaları çok daha basit hale getirir. + +JQuery'i tüm gücü ile etkili kullanmak JavaScript aracılığıyla mümkün. Bu nedenle kodunuzu anlamak, yapılandırmak ve hatalarını ayıklamak için güçlü bir JavaScript kavrayışına sahip olmak çok önemlidir. Zaten siz de bir önceki kursta JavaScript gurusu olduğunuz ispatlamıştınız. + +### Neler Öğreneceğiz: + +* Overview to jQuery +* Attributes and Content +* Manipulating CSS +* Manipulate DOM +* Events +* Effects + +## 13. Introduction to Bootstrap 4 + +Bootstrap, daha hızlı ve daha kolay web tasarımı için ücretsiz bir frameworktür. Bu kursta Bootstrap düzenlerini, grid sistemini, yardımcı programları anlamayı ve HTML kullanarak web sayfaları oluşturmayı öğreneceğiz. + +### Neler Öğreneceğiz: + +* Introduction to Bootstrap +* Bootstrap Installation Options +* Introduction to Bootstrap 4 +* Layouts and Grid System +* Alignments and Offsets + + +## 14. Bootstrap 4 CSS Components +Bir önceki kursta öğrenmiş olduğumuz Bootstap yeteneklerimizi bir ileri seviyeye taşıma zamanı geldi. Bootstrap, mobil öncelikli ve duyarlı web siteleri tasarlamak için ücretsiz ve açık kaynaklı bir CSS framework olduğunu artık biliyoruz. Her Bootstrap bileşeni bir HTML yapısı, CSS bildirimleri ve bazı durumlarda JavaScript kodundan oluşur. Bu kurs, güzel web sayfaları tasarlamak için Bootstrap CSS bileşenlerini birlikte kullanmamızı sağlayacaktır. + +### Neler Öğreneceğiz: + +* Images and Lists +* Bootstrap Tables +* Buttons, Badges +* Cards, Media Objects + +## 15. Introduction to ASP.NET MVC +Bu kurs, güçlü uygulamalar geliştirmek için ASP.NET MVC'yi anlamanıza yardımcı olacaktır. MVC, uygulama geliştirmede (özellikle web uygulaması geliştirmede) önemli yere sahip mimari desenlerinden biridir. Günümüzde MVC denince akla Microsoft’un geliştirdiği ASP.NET MVC Framework gelmektedir, oysa 1979 yılından beri (Microsoft 1975 yılında kurulmuştur) yazılım dünyasında yer almaktadır. + +MVC, Model , View , Controller kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir katmanını ifade eder. + +ASP.NET, web uygulamaları geliştirmek için MVC tasarım modelini kullanır. MVC'nin her katmanı bağımsız olarak test edilebilir ve geliştirilebilir ve güçlü bir uygulama oluşturmak için birleştirilebilir. + +### Neler Öğreneceğiz: + +* Introduction to ASP.NET MVC +* ASP.NET MVC vs. ASP.NET Web Forms +* Advantages of ASP.NET MVC +* Creating ASP.NET MVC5 Project +* Understanding ASP.NET MVC Folder Structure +* Layout, Sections and View Start +* MVC Pattern +* MVC vs. Tier +* Action Methods and Result Types + +## 16. ASP.NET MVC Fundamentals +Bu kursta, web uygulamaları geliştirmek için ASP.NET MVC'nin temellerini öğreneceğiz. Şimdi hedefte MVC framework ün birbirinden önemli özelliklerini kavramak ve uygulamak var. .NET development yolculuğumuzda önemli bir noktaya varıyoruz. Eminim yapbozun parçaları birleştikçe her şey daha anlamlı hale geliyordur. + + +### Neler Öğreneceğiz: + +* Razor View Engine +* Razor View Engine vs. WebForms Engine +* Razor Syntax +* Creating Custom View Engine +* Routing : Routes and Constraints +* HTML Helpers +* Validation Summary +* AJAX Helpers +* Data Passing Techniques: ViewData, ViewBag, TempData, Session, QueryString +* Partial Views + + +## 17. ASP.NET MVC Forms and Validation +ASP.NET MVC iki tür formu destekler: zaman uyumlu ve zaman uyumsuz formlar. Bu formlar DataAnnotations öznitelikleri ve jQuery doğrulama kütüphaneleri kullanılarak doğrulanabilir. Bu kursta, form oluşturmanın farklı yollarını, özel model bağlayıcılarla birlikte model bağlamayı, sunucu tarafında ve istemci tarafında doğrulamaların yanı sıra özel doğrulama özniteliklerini öğreneceğiz. + +### Neler Öğreneceğiz: + +* ASP.NET MVC Forms +* Model Binding +* Custom Model Binding +* Synchronous Forms +* Asynchronous Forms +* Forms Validations : Server Side and Client Side +* Custom Validation + +## 18. LINQ Fundamentals +LINQ, sorgu yetenekleri sağlamak için .NET dilleriyle entegre edilmiş bir teknolojidir. LINQ, SQL veritabanları, XML belgeleri, ADO.NET Veri Kümeleri, Web hizmetleri ve nesneler gibi farklı veri kaynakları sorgulamak için ortak sorgu sözdizimi sunar. LINQ sorgularını C# ve linqpad kullanarak yazmayı, çalıştırmayı ve test etmeyi öğreneceğiz. + +### Neler Öğreneceğiz: + +* What is LINQ? +* LINQ Architecture +* LINQ Flavors +* Advantages and Disadvantages of LINQ +* LINQ Pad +* LINQ Query Syntax and Query Execution +* LINQ Query Operators +* Var type vs. Generics +* Collection Interfaces + +## 19. LINQ with Entity Framework and EF Core +Bir önceki kursta LINQ temellerini öğrenmiştik. LINQ, Entity Framework ve EF Core kullanarak SQL ve NoSQL veritabanını sorgulamak için birleşik bir API sunar. Burada, LINQ-to-Entities sorguları yazmayı ve sonucu Entity Framework 6.x ve Entity Framework Core'da nasıl alacağınızı öğreneceğiz. + +### Neler öğreneceğiz: + +* LINQ with Entity Framework +* LINQ Query Providers +* LINQ Pad to Test and run LINQ Query +* Querying Entity Framework 6.x DAL +* Entity Data Loading: Lazy Loading and Eager Loading +* Querying Entity Core DAL +* SQL Joins with LINQ + + + +## 20. Introduction to Entity Framework +ADO.NET Entity Framework, geliştiricilerin ilişkisel veritabanlarıyla nesne yönelimli bir şekilde çalışmasını sağlayan bir Nesne / İlişkisel Eşleme (Object Relational Mapping) çerçevesidir. Bu ders ORM araçları, Entity Framework mimarisi(EF) ve EF veri modelleme yaklaşımlarını öğreneceğiz. Ayrıca, Entity çerçevesini kullanarak SQL veritabanı sorgulamak için EF yaklaşımını öğreneceğiz. + +### Neler öğreneceğiz: + +* Introduction to Entity Framework +* Introduction to ORM Tools +* Introduction to Entity Framework +* Entity Framework Architecture +* Data Modeling Approaches +* Getting Started With EF + +## 21. Entity Framework Code First Approach +Entity Framework Code First yaklaşımı, C# veya VB.NET sınıflarının yardımıyla veritabanı şeması tanımlamanıza olanak tanır. Bu, eşleşen şema üzerinde tam kontrol sağlar ve geliştiricilerin nesne yönelimli bir şekilde çalışmasına izin verir. + +### Neler Öğreneceğiz: + +* EF Code First Modeling +* EF Conventions +* Database Annotation +* EF Fluent API +* CRUD Operations Using ASP.NET MVC +* Calling Stored Procedure and Functions +* Handling Input and Output Parameters +* Handling Multiple Result sets + +## 22. Working with Data Using Entity Framework +Entity Framework, ASP.NET MVC uygulamasında veritabanını sorgulamanın yaygın olarak kullanılan bir yoludur. Bu kursta, CRUD işlemlerini gerçekleştirmek için Entity Framework'ü, ASP.NET MVC ile nasıl kullanacağımızı ve SQL Server veritabanı nesnelerini çağırmayı öğreneceğiz. Ayrıca ASP.NET MVC ile birlikte sayfalama, sıralama ve listeleme için WebGrid'i nasıl kullanacağınızı öğreneceğiz. + +### Neler Öğreneceğiz: + +* Introduction to Entity Framework +* Creating Database Using Code First +* Database CRUD Operations +* Working with jQuery AJAX +* Calling Stored Procedure and Functions +* Listing, Paging, Sorting using WebGrid +* AJAX WebGrid + +## 23. EF Code First Migrations and Relationships +Kalıtım, veri veya diğer veritabanı nesnelerini kaybetmeden veritabanı şemasını güncellememize olanak tanır. Bu kurs, ilk olarak Entity Framework kodu yaklaşımını kullanarak EF geçişleri, komut dosyası geçişleri, tersine mühendislik ve veritabanı ilişkilerini tanımlama konusunda uygulamalı deneyim kazanmamıza yardımcı olacaktır. Ayrıca, EF'de kalıtımı uygulamayı öğreneceğiz. Nesne Tabanlı programlamayı boşuna öğrenmedik, hadi öğrendiklerimizi uygulamalar ile canlandıralım. + +### Neler Öğreneceğiz: + +* Code First Migrations +* Script Migrations +* Migrations with Existing Database +* Reverse Engineering +* Database Initializers +* Database Relationships - one-to-one, one-to-many, many-to-many +* EF Inheritance + +## 24. Entity Framework Advanced Concepts +Entity Framework, SQL veritabanını sorgulamak ve yönetmek için harika bir ORM framework tür. Bu kurs bize performansı iyileştirmek ve daha iyi bir sonuç elde etmek için EF6 gelişmiş özelliklerini uygulamalarımızda nasıl kullanacağımızı öğretecektir. + +### Neler Öğreneceğiz: + +* Queries +* Entity and States +* Data Loading +* Transactions and Async Query +* Working with Entity States +* Eager Loading vs Explicit Loading +* Handling Concurrency Conflicts +* Working with Transactions in EF + +## 25. ASP.NET MVC Unit Testing +Unity testi, bir bileşenin kullanıma uygun olup olmadığını bulmak için yapılan bir yazılım test sürecidir. Birim test senaryoları geliştiriciler tarafından yazılır, bu nedenle geliştirici olarak ASP.NET MVC uygulamamız için nasıl test senaryoları yazacağımızı bilmemiz gerekir. Bu kursta, ASP.NET MVC uygulamanızı test etmek için .NET Birim test frameworkleri, test çalıştırıcıları, görsel stüdyo canlı birim testi ve mocking framework hakkında bilgi edineceğiz. + +### Neler Öğreneceğiz: + +* Introduction to Unit Testing +* Test Driven Development (TDD) +* .NET Unit Testing Frameworks +* Visual Studio Live Unit Testing +* Creating Test cases using MS Test +* Creating Test cases using xUnit +* Using Mocking Frameworks + +## 26. ASP.NET MVC Pipeline and Security +ASP.NET MVC, ihtiyaca göre özelleştirilebilen açık kaynaklı bir çerçevedir. Artık ASP.NET MVC hakkında oldukça kendimizi geliştirdik. Özelleştirme için, filtreleri ile birlikte ASP.NET MVC Pipeline bilmek zorundayız. Bu kursta, ASP.NET MVC pipeline yanı sıra filtrelerin yapılandırılması ve kullanımları hakkında bilgi edineceğiz. Burada, kimlik doğrulama ve yetkilendirme için, form kimlik doğrulamasını kullanarak özel kimlik doğrulama ve yetkilendirme filtrelerinin kullanımını öğreneceğiz. + +### Neler Öğreneceğiz: + +* ASP.NET MVC Pipeline +* ASP.NET MVC Filters +* Filters Configurations and Execution +* Creating Custom ASP.NET MVC Filters +* Security : Forms Authentication +* Creating User Login Flow +* Accessing Logged In User Details +* Creating Base Controller + +## 27. Introduction to Web API: Getting Started +Tarayıcılar, mobil cihazlar ve tabletler dahil olmak üzere çok çeşitli istemciler tarafından kullanılabilen Restful hizmetleri oluşturmaya yönelik bir çerçeve olan ASP.NET Web API ı öğrenmenin zamanı geldi. Bu kursta, ASP.NET Web API'sine giriş ve WCF ile Web API arasında seçim yapma da dahil olmak üzere SOA, REST ve REST Prensiplerinin ne olduğunu öğreneceğiz. Ayrıca, ASP.NET Web API'si oluşturmayı ve Postman uygulamasını kullanarak test etmeyi öğrenelim. Hadi başlıyoruz:) + + +### Neler Öğreneceğiz: + +* Introduction to SOA +* Introduction to REST +* Introduction to ASP.NET Web API +* WCF vs. Web API +* Building Web API +* Testing API Using Postman + +## 28. ASP.NET Web API Fundamentals +Bir önceki kursta ASP.NET Web API nedir, ne işe yarar güzelce öğrenmiş olduk. Artık yeteneklerimizi bir üst seviyeye taşıma zamanı geldi. ASP.NET Web API, yönlendirme, denetleyiciler, eylem, model bağlayıcılar ve filtre gibi ASP.NET MVC özelliklerini destekler. Yönlendirme, Eylem Sonuçları, HttpResponseMessage ve IHttpActionResult, İçerik Anlaşması, Medya Türü Biçimlendiriciler, Model veya Parametre Bağlama, Model Doğrulama ve Doğrulama Hatalarını İşleme dahil olmak üzere ASP.NET Web API2 temellerinden yararlanmayı öğreneceğiz. + +### Neler Öğreneceğiz: + +* Routing - Convention and Attribute Routing +* Route Constraints +* Action Result +* Content Negotiation +* Media Type Formatters +* Model Binding +* Model Validation +* Handling Validation Errors + +## 29. Building RESTful Services with ASP.NET Web API +ASP.NET WebAPI, ASP.NET MVC özellik desteğiyle birlikte WCF REST'in bir uzantısıdır. Bu kursta, ASP.NET Web API ve Postman kullanarak REST API'yi nasıl oluşturacağımızı, test edeceğimizi ve hata ayıklayacağımızı öğreneceğiz. Yazılım dünyasının en eğlenceli kısmı olan hata ayıklamayı asla boş geçmeyiniz:)) + +## Neler Öğreneceğiz: + +Introduction to ASP.NET Web API +Building ASP.NET Web API +ASP.NET Web API CRUD Operations +Testing Web API Using Postman +Consuming Web API in ASP.NET MVC +Performing CRUD Operations using ASP.NET MVC + +## 30. ASP.NET Web API Advanced Concepts +ASP.NET Web API yetkinliğimiz çok iyi noktalara geldi dediğinizi duyar gibiyim. İleri konseptler ile artık full-stack olma yolunda yeni bir hedefi başarmanın mutluluğunu yaşayacağız. + +REST API JSON, XML ve diğer formatlarda veri paylaşmak için oldukça yaygın olarak kullanılıyor. ASP.NET Web API, geliştiricilerin modern uygulamalar için REST API'leri oluşturmasını kolaylaştırır. Bu kursta, Web API detaylı pilepile, filtreler, özel filtreler oluşturma, istisna işleme, sürüm stratejileri, bağımlılık ekleme ve ASP.NET Web API hosting gibi gelişmiş ASP.NET Web API kavramlarını öğreneceğiz. + +### Neler Öğreneceğiz: + +* ASP.NET Web API Pipeline +* Web API Filters +* Creating Custom Filters +* Exception Handling +* Dependency Injection +* Web API Versioning +* Web API Hosting + +## 31. TypeScript: Conditional Statements and Loops +Daha önceki kurslarda JavaScript’i zaten öğrenmiştik. TypeScript, JavaScript ile daha hızlı ve anlaşılır kod geliştirmemizi sağlayan bir ortamdır. Herhangi bir tarayıcıda, herhangi bir JavaScript motorunda çalışan temiz, basit JavaScript kodu derler. Programlamanın temel yapı taşları olan TypeScript te koşullu ifadeler, döngüler, atlama, string ve daha fazlasını bu kursta beraber öğreneceğiz. + +### Neler Öğreneceğiz: + +* Conditional Statements +* if, if..else, switch statements +* Loops +* while loop +* for loop +* for..in, for..of loops +* Strings + +## 32. Object-Oriented Programming in TypeScript +Yazılım dünyasında vazgeçilmez nesne tabanlı programlama mantığını zaten önceki kurslara çözmüştük ama yine tekrar etmekten zarar gelmez diyerek yeni kursumuza başlıyoruz. + +TypeScript, bilinen nesne tabanlı programlama kavramlarını JavaScript ile kullanmamızı sağlar. Nesne yönelimli programlamanın dört ana ayağı vardır: Kapsülleme, Kalıtım, Soyutlama ve Çok Biçimlilik. TypeScript, Java, C# ve diğer programlama dilleri gibi dördünü de daha küçük ve daha temiz sözdizimi ile uygulamanıza yardımcı olabilir. Hadi gelin nesne tabanlı programlama konseptini şimdi de TypeScript ile uygulayalım. + +### Neler Öğreneceğiz: + +* Object-Oriented Programming Concepts +* Access Modifiers +* Members and Accessors +* Inheritance +* Polymorphism +* Abstract Class and Interface +* Methods Overloading +* Constructors + +## 33. Introduction to Angular +Web geliştirme için etkili bir dil olan TypeScript'i zaten öğrenmiştik. Şimdi sırada Angular ile büyük ölçekli JavaScript uygulamaları oluşturmak için nasıl birleştiğini keşfetme zamanı. + +Bu kursta, Angular History hakkında bilgi edinecek, Angular2'yi, AngularJS ile karşılaştıracak ve Angular geliştirme için bir ortam kuracağız. Ayrıca, Angular Uygulamasını çalıştırmak için Angular CLI ile nasıl çalıştığını beraber keşfedeceğiz. + +### Neler Öğreneceğiz: + +* Introduction to Angular +* Angular History +* Angular1.x vs. Angular2+ +* Development Tools +* Angular CLI +* Creating Project for Angular v5, v6, v9 +* Angular App structure +* Angular with Visual Studio +* Angular Building Blocks + +## 34. Angular Fundamentals +Angular, dünya çapında en popüler web geliştirme framewoklerinden biridir. Angular ve Angular CLI kullanarak uygulama oluşturmanın temellerini öğrenmeye umarım hazırsınızdır. Bu kursta, veri bağlama, zengin şablonlar, yönergeler, pipeline, kapsamlı yönlendirme, iç içe geçmiş yollar ve geç yükleme gibi Angular güçlü özellikleri hakkında bilgi edineceğiz. + +### Neler Öğreneceğiz: + +* Data Binding +* Directives +* Custom Directives +* Pipes +* Custom Pipes +* Routing +* Router Links and Route Parameters +* Nested Routes and Lazy Loading + +## 35. Angular Components +Angular, modern, hafif ve güçlü web uygulamaları oluşturmak için kullanılır. Bu kursta Angular bileşenlerini ayrıntılı şekilde inceleyeceğiz. Verimli ve iyi organize edilmiş uygulamalar oluşturmak için bileşen tabanlı mimariden yararlanmayı öğreneceğiz. Bu kurs, bileşen mirası, bileşen yaşam döngüsü kancaları, iç içe yerleştirilmiş bileşenler, yuvalanmış bileşenler arasında veri paylaşımı, içerik projeksiyonu, görünüm kapsülleme ve shadow DOM dahil olmak üzere tamamen Angular'daki bileşenleri öğrenmemiz için doğru adres. + + +### Neler Öğreneceğiz: + +* Angular Components +* Components Inheritance +* Nested Components +* Component Lifecycle Hooks +* Content Projection +* Shadow DOM +* View Encapsulation + +## 36. Angular Forms and Validation +Angular profesyoneli olma yolunda yepyeni bir noktaya geldik. Şimdi kullanıcıdan gelen girdileri işleme zamanı. Bir web uygulamasında, kullanıcı girdisini form yardımıyla ele almak yaygın olarak kullanılan bir yoldur. Angular, kullanıcı girdilerini işlemek ve doğrulamak için iki yol sağlar: şablonla çalışan ve reaktif formlar. Bu kursta, Angular form yapı taşları, form oluşturma yolları, form doğrulama ve özel doğrulamalar oluşturma hakkında birbirinden faydalı konular öğreneceğiz. + + +### Neler Öğreneceğiz: + +* Introduction to Angular Forms +* Forms and Form Controls State +* Template Driven Form +* Model Driven (Reactive) Form +* Angular Form Validations +* Template Driven vs React Form +* Custom Form Validations + +## 37. Building Single Page App Using Angular and Web API +Angular ve Web API kombinasyonu, .NET geliştiricileri tarafından web uygulamaları oluşturmak için yaygın olarak kullanılmaktadır. Bu kombinasyonda, Angular ın front-end, Web API ve back-end oluşturmak için nasıl birlikte çalıştığını öğreneceğiz. Angular ve Web API ile modern, karmaşık, reaktif ve ölçeklenebilir web uygulamaları oluşturmayı öğrenmeye hazırsanız hadi başlayalım. + +### Neler Öğreneceğiz: + +* Introduction to ASP.NET Web API +* Building ASP.NET Web API +* Testing Web API Using Postman +* Introduction to Single Page App (SPA) +* Integrating Angular with Web API or ASP.NET MVC +* Consuming ASP.NET Web API in Angular +* Http vs. HttpClient + +## 38. Angular Advanced Concepts +Angular ve RxJS kullanarak durum yönetimi ile gerçek dünya uygulamaları oluşturmada uzman olma düşüncesi aklınızdan geçiyor ise evet doğru kursa geldiniz. Bu kursta, RxJS temelleri, RxJS ile durum yönetimi, veri paylaşımı, bağımlılık ekleme, değişiklik algılama teknikleri ve açısal animasyonlar dahil olmak üzere Angular'ın en gelişmiş özelliklerini öğreneceğiz ve Angular öğrenme sürecinde ne kadar güçlü hale geldiğiniz neler yapabildiklerinizi gördükçe kendinizi alkışlamak isteyeceksiniz. + +### Neler Öğreneceğiz: + +* Introduction to ReactiveX +* Understanding Angular2 Services +* Introduction to Zone.js +* Observable and Observer +* Observable Operators +* Observable vs. Promises +* Dependency Injection +* Change Detection Strategies + +## 39. Angular Unit Testing +Unit testi, hataları, herhangi bir boşluğu veya eksik gereksinimi belirlemenize yardımcı olur, böylece bunları düzeltebilir ve kaliteli bir ürün geliştirebiliriz. Unit test senaryoları developerlar tarafından yazılır, bu nedenle bir developer olarak Angular uygulamanız için nasıl test senaryoları yazacağımızı bilmeliyiz. Bu kursta, açısal bileşenlerinizi, hizmetlerinizi, direktiflerinizi ve pipe test etmek için Angular Unit test framework-jasmine, test runner-Karma ve mocking framework öğreneceğiz. + +### Neler Öğreneceğiz: + +* Tools and Technologies +* Writing First Test Case +* Isolated Testing +* Integration Testing +* Code Coverage +* Debugging + +## 40. Websites Project using MVC5 and Angular +Uçtan uca bir web sitesi projesi geliştirerek öğrendiklerimizi pratiğe dökme zamanı. Angular'ı ASP.NET MVC5 ile bütünleştirmeye hazırız. Artık öğrendiklerimizi ayağa kaldırmayı ve sonuçlarını görmeyi çoktan hak ettik. + +### Neler Öğreneceğiz: + +* Project Architecture +* Database Design and Creation +* Design Patterns +* User Login and Forms Authentication +* Secuirty and Dependency Injection +* CRUD Operations +* Service Layer Development +* Integrating Angular with MVC5 +* Error Logging And Securing Web API +* Deployment + + +## Kaynaklar: +1.https://www.itjobswatch.co.uk/jobs/uk/.net.do
+2.https://visualstudio.microsoft.com/tr/vs/features/net-development/
+3.https://docs.microsoft.com/en-us/learn/dotnet/
+4.https://www.sololearn.com/
+5.https://www.coursera.org/learn/introduction-programming-unity
+6.https://www.dotnettricks.com/
diff --git a/odev/images/image_1.jpeg b/odev/images/image_1.jpeg new file mode 100644 index 000000000..d6f8f45ff Binary files /dev/null and b/odev/images/image_1.jpeg differ diff --git a/odev/images/image_2.png b/odev/images/image_2.png new file mode 100644 index 000000000..852c80ff5 Binary files /dev/null and b/odev/images/image_2.png differ diff --git a/odev/images/image_3.jpeg b/odev/images/image_3.jpeg new file mode 100644 index 000000000..71b118067 Binary files /dev/null and b/odev/images/image_3.jpeg differ diff --git a/odev/images/image_4.png b/odev/images/image_4.png new file mode 100644 index 000000000..9d82e8c79 Binary files /dev/null and b/odev/images/image_4.png differ diff --git a/odev/images/image_5.gif b/odev/images/image_5.gif new file mode 100644 index 000000000..2dbfaa4f7 Binary files /dev/null and b/odev/images/image_5.gif differ diff --git a/odev/images/image_6.png b/odev/images/image_6.png new file mode 100644 index 000000000..a6afddc76 Binary files /dev/null and b/odev/images/image_6.png differ diff --git a/odev/images/image_7.png b/odev/images/image_7.png new file mode 100644 index 000000000..de33db49a Binary files /dev/null and b/odev/images/image_7.png differ diff --git a/odev/readme.md b/odev/readme.md new file mode 100644 index 000000000..f7d5d836f --- /dev/null +++ b/odev/readme.md @@ -0,0 +1,131 @@ +# Programlamayı Yeni Öğrenenlerin Öğrenmesi Gereken İlk 8 Terim + +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_1.jpeg) + +Bilgisayar bilimiyle ilgisi olmayan birçok tanıdığım ve aile üyelerinden farklı farklı konseptler ve terminolojiyle ilgili sorular aldığım için, bu yazıda bazı bilgisayar bilimi konseptlerini olabilecek en basit şekilde açıklamaya çalıştım.
+Bu kısa giriş yazısının sonunda, aşağıdaki terimler/konseptler ne anlama geliyor ve neden önemliler, hepsini öğrenmiş olacaksınız. + +* Backend Development +* Frontend Development +* Programlama dilleri +* Algoritmalar +* API +* Bug +* Open Source +* Crowdsource
+ +Yazının sonunda, bilgisini genişletmek isteyenler için bulduğum kaynakları da paylaşacağım. + +## Backend Development +Backend Development kavramının her yerde, özellikle LinkedIn gibi platformlarda sıkça kullanıldığını görmüşsünüzdür. + +“Backend” yani “arkauç” yazılım iskeletinin bir tabakasına verilen addır. Bu arkauç genelde dataları tutmak için bir veritabanı bulunan herhangi bir web servisini yazmayı veya sürdürmeyi gerektirir. + +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_2.png) + +Backend development sık sık Java, Scala, Python, DynamoDB, MongoDB, nodeJS, MySQL, MapReduce gibi teknolojilerle birlikte anılır. + +Frontend development ise tam tersine, kullanıcı arayüzü yani müşterilerin kullandığı yazılım katmanıyla ilişkilidir. + +### Neden Önemli +Frontend ve backend development arasındaki farkları anlamak bir uygulama (app) tasarlamadan önce hangi bileşenlerden yararlanacağınızı bilmeniz açısından önemlidir. + + +## Frontend Development +Frontend development genelde kullanıcıyı ilgilendiren arayüz özelliklerinde çalışmayı gerektirir. İnternet siteleri, iOS veya Android’le uyumlu uygulamalar bunlara örnektir. + +Bu kategoride HTML, CSS, JavaScript, jQuery, React, Angular, Swift gibi birbirinden farklı teknolojiler işin içine girer. +Bu teknolojiler uygulamayı programlarken bir temel oluşturmanızı sağlar ve sizi yönlendirirler ancak programlama dilleri değillerdir. Bu yüzden onları teknolojiler olarak adlandırıyorum. React ve Angular bunlara verebileceğimiz örnekler. + +Programlama dili basitçe insanların bilgisayarlarla iletişim kurmasında köprü olurlar. Bazıları HTML’i programlama dili sayarken kanımca bu ayrıma girmek için bugün biraz erken.👍 + +### Neden önemli? +Frontend development öncesinde sadece HTML, CSS ve JavaScript’dan meydana geliyordu. Bugünse kendi yazılım iskeletine ve kurulum araçlarına sahip olan devasa bir yapı. Frontend teknolojisi ışık hızıyla ilerliyor. Bugünkü yazılım dünyasını anlamak için Frontend araçlarını öğrenmenizi şiddetle tavsiye ederim. + +## Programlama dilleri +Bilgisayarlar verilen emirleri uygulamada çok yeteneklidir. Biz insanların bir bilgisayarla iletişim kurabilmesi için iki tarafın da anladığı ortak bir dil setine, yani bir yönergeler dizisine, ihtiyaç vardır. + +Biz insanlar olarak, iletişim için İngilizce, Mandarin, İspanyolca gibi diller kullanırız. Bilgisayarlarla iletişim kurmamız gerektiğinde ise programlama dili kullanırız. Programlama dili insanlar ve bilgisayarların iletişim kurmasını sağlar. Örnek olarak Java, C++, Python ve daha birçokları gibi programlama dillerini sayabiliriz. + +### Neden önemli? +Bir programlama dilini öğrenmek İnternette gördüğünüz bir şeyin arkaplanda nasıl meydana geldiğini görmenizi sağlar. Arabanızın nasıl bir mekanizmayla ve ne amaçla çalıştığını bilmek gibidir. Biraz gayretle Twitter, Candy Crush uygulamaları gibi siz de kendi uygulamanızı programlayabilir hale gelebilirsiniz. + +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_3.jpeg) +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_4.png) + +## Algoritmalar +>“Bilgisayarların gerçekleştirdiği hesaplama ve diğer problem çözme operasyonlarında takip edilecek kurallar seti veya süreç.” Google :) + +Bilgisayarlar komutları gerçekleştirmede müthişlerdir. Yazılım mühendisleri olarak bizler de zaten bilgisayarların gerçekleştireceği komutları yazarız. Algoritma spesifik bir problemi çözmek için bilgisayar tarafından veya bilgisayarsız takip edilecek komut ve adımların listesidir. + +Bilgisayar bilimi öğrencileri olarak öğrendiğimiz ilk problemlerden biri sınıflandırma problemidir. Bu problemin en önemli adımı item koleksiyonu veya setini en verimli şekilde oluşturmaktır. + +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_5.gif) + +Sınıflandırmanın çok fazla çeşiti vardır. Karşılaştırmalı sınıflandırma olarak da bilinen [Bubble Sort](https://en.wikipedia.org/wiki/Bubble_sort) en ünlülerindendir. İki itemdan büyük olanı seçmeyi, genel bir karşılaştırmayı ve bunu bütün öğeler için yapmayı gerektirir. [Insertion Sort](https://en.wikipedia.org/wiki/Insertion_sort), [Merge Sort](https://en.wikipedia.org/wiki/Merge_sort) ve daha birçok başka çeşit de vardır. + +Bunlar hakkında bilgi edinmenizi kesinlikle öneririm. Sınıflandırma algoritmaları algoritmaları öğrenmek için harika bir başlangıçtır. Sınıflandırma algoritmalarını çalışabileceğiniz bir Youtube videosunu aşağı bırakıyorum. + +[![](http://img.youtube.com/vi/pkkFqlG0Hds/0.jpg)](http://www.youtube.com/watch?v=pkkFqlG0Hds "") + +### Neden önemli? +Algoritmalar Bilgisayar Bilimi’nin özünü oluşturur. Algoritmaların ne olduğunu ve nasıl işlediklerini anlamak sizi daha iyi bir yazılım mühendisi yapar, nokta. + +# Uygulama Programlama Arayüzü (UPA / API) +API, veya Türkçesiyle UPA, veya uygulama programlama arayüzü, basit tabirle bir bilgi kaynağı. Daha somut açıklarsak, düşünün ki evde bir limonata kuyunuz var. Komşularınız bundan bir yudum almak istiyor ama siz kuyunun kirlenmesini istemiyorsunuz. Böyle bir durumda ne yapmalısınız? + +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_6.png) + +Evinizin dışındaki küçük bir hortuma bağlanan bir hortum yaptırmaya karar verdiniz. Sizin müthiş limonatanızdan tatmak isteyen bütün komşularınız bu hortum vasıtasıyla, kuyuya dokunmadan limonataya ulaşabilirler. Limonatayı ne zaman pompalayacağınıza veya kuyunun kuruması durumunda limonatayı boşaltmaya da siz karar veriyorsunuz. Dilerseniz çok fazla limonata içenlerden ücret alabilirsiniz. + +Günümüzde birçok şirketin çalışma şekli de budur. Bu şirketler değerli bir veri kuyusu inşa ederler ve onu bir UPA vasıtasıyla veri edinmek isteyen kişilere satarlar. + +### Bu neden önemli? +Bugünkü internet ağı, farklı web servisleri arasındaki uçsuz bucaksız iletişime dayalıdır. Bu şekilde birbirleriyle etkileşimde olan araç ve websiteleri kurabiliyoruz. UPA bütün bu iletişime imkan tanıyan temel zemindir. Bu yüzden internette iletişimi sağlayan araçları ve onların çalışma koşullarını öğrenmek önemlidir + +# Bug 🐛 +Aşağıdaki meme’i sosyal medyada görmüş ve ne anlama geldiğini anlamamış olabilirsiniz. +![](https://github.com/samilozkan/taskforce/blob/task/odev/images/image_7.png) + +Bug bir bilgisayar programının alışılmış işleyişi bozan hatanın adıdır. Mesela bulunduğunuz yerin hava sıcaklığını Fahrenheit cinsinden gösteren bir iOS uygulaması indirdiğinizi farzedelim. Uygulamanın hava sıcaklığını, beklendiği gibi Fahrenheit değil Celsius cinsinden gösterdiğini fark ederseniz, bu program beklendiği gibi çalışmıyor demektir ve o zaman programda bir ‘bug’ yani hata var diyebiliriz. + +Bu yazılım camiasında çok sık yaşanır, bu yüzden bu konuda yukarıdaki gibi komik meme’ler yapılmıştır. (It’s not a bug, it’s a feature = O bir hata değil, programın kendi özelliği). + +## Neden Önemli? +Buglar her zaman oluşabilir. Bu bilgi bir şeyler ters gittiğinde fark etmenizi ve internet’i doğru yönetmenizi sağlar. Bir dahakine bir ‘bug’ gördüğünüzde ‘şuraya tıklayınca çıkmayan şey’ yerine doğru bir biçimde ‘bug’ demeyi öğrenmiş olacaksınız. + +# Açık Kaynak Yazılımlar +Açık Kaynak yazılımları kendi bulduğum bir benzetmeyle açıklamaya çalışacağım :) + +Bir limonata standınız olduğunu ve şehrin en iyi limonatasını yapmak için elinizde özel bir tarif olduğunu düşünün. Bu tarifi müşterilerinizi kaptıracağınız korkusuyla kimseyle paylaşmıyorsunuz. Bu durumda gizli tarifiniz “Kapalı Kaynak” gibidir. Çünkü bu kaynağa siz dışında kimse erişemiyor. + +Veya tam tersi bir şekilde, limonata tarifinizi ücretsiz olarak internet üzerinden herkesle paylaştığınızı ve bu şekilde internetin gücünü kullanarak limonatanızı herkesin beğeneceği bir hale yükseltmeye çalıştığınızı farz edelim. Bu durumda ise limonata tarifiniz “Açık Kaynak”tır çünkü ücretsiz olarak herkes erişebilir, kullanabilir dahası katkıda bulunup, üzerinde değişiklikler de yapabilir. + +Bu terim Facebook ve diğer teknoloji şirketlerinin yükselişiyle çok fazla popüler hale gelmiştir. Facebook gibi şirketler yeni ve heyecan verici teknolojilerin geliştirilmesini İnternet kullanıcılarının da katılabileceği bir süreç haline getirdi. + +### Neden Önemli? +İnternet son yıllarda bu kadar hızla gelişebilmesini Açık Kaynaklara borçlu. Bu bir devrim ve herkes ücretsiz bir şeyler yaratmanın ve bunu tüm dünyaya açık hale getirmenin neden bu kadar önemli olduğunu kavramalı. + +# Crowdsourcing +*Crowdsourcing — Geniş bir topluluğun belli bir proje için aktardıkları bilgilerini veya katkılarını genellikle internet üzerinden bir araya getirmek.* + +Crowdsource temelde büyük bir grubun ortak bir amaç için katkıda bulunması fikridir. + +Yine aynı limonata standından örnek verelim. Farz edelim ki müşterileriniz yeni bir limonata aromasını talep ediyor. Sizin de aklınıza İnternetin gücünden ve bir grup insanın beyin fırtınası yapmasından yararlanarak en mükemmel limonata tarifini elde etmek geliyor. + +Bunun için tek yapmanız gereken şey bir Twitter hesabı açıp dünyanın farklı yerlerinden insanları en iyi limonata tariflerini paylaşmaya ikna etmek. Buna Crowdsourcing deniyor ki anlamı ortak bir amaç için insanları katkıda bulunmaya ikna etmek. Örneğimizde bu amaç limonata yapmak. + +### Neden Önemli? +İnternet milyonlarca insanı bir araya getirmeyi ve en iyi fikirlerini bazı zorlu projeler için kullanmaya ikna etmeyi başarabildi. Crowdsourcing ise bunu İnternet üzerinden sorunsuz bir biçimde yapabilmemize olanak tanıyor. Bence bu insanlık için büyük bir ilerleme. + + +# Kaynak Önerileri :books: +* [Stanford’s Online CS 101](https://online.stanford.edu/courses/soe-ycscs101-sp-computer-science-101) — bu online kurs size Bilgisayar Bilimi’nin başlıca kavramlarını tanıtıp internet mekanizmasının nasıl işlediğini gösteriyor. Dijital görüntüler nasıl oluşturulur ve süreç nasıl işler, hepsini bu kursta öğrenebilirsiniz. En güzeli de ücretsiz olması. +* [Python Crash Course](https://amzn.to/2pPBtkL) — Python programlamasına başlamak için en iyi kaynaklardan biri. Programlama için kollarınızı sıvamayı düşünüyorsanız, Python ve birazdan bahsedeceğim kitapla başlamanızı tavsiye ederim. +* [Python, Practical Guide](https://amzn.to/2yaiUfB) — Bu Python Crash Course’u bitirdikten sonra edinebileceğiniz bir kitap. Bahsedilen kurstaki örneklerin birçoğunu bu kitaba başvurmadan da yapabileceğinizi düşünüyorum ancak kitap detaylı bir şekilde adım adım neler yapmanız gerektiğini anlatıyor. Örnek görerek daha iyi öğrenen insanlar için müthiş bir kaynak. +* [Introduction to Algorithms](https://amzn.to/2pMTAaG) — Bilgisayar biliminin temel prensibi olan algoritmalar hakkında bilgi edinmek isterseniz bu kitabın çok yararını göreceksiniz. Kitap ayrıca farklı farklı bilgisayar bilimi kurslarında ders kitabı olarak kullanılıyor. +* [Acing the Coding Interview](https://docs.google.com/document/d/1ppHix7p9knzaal-Edn3GHQMcx1MM_USY6zPcsbBpR3U/edit?usp=sharing) — Bu benim koçluk kursum. Bu kursta iş görüşmeleri için nasıl hazırlandığımı, görüşmelerde karşı tarafı etkilemenin yolları ve daha birçok şeyi bulabileceksiniz. + +[Zhia Hwa Chong](https://www.freecodecamp.org/news/author/zhia/) *tarafından* [medium.freecodecamp.org’ta](https://www.freecodecamp.org/news/these-are-the-top-computer-science-terms-you-should-know-if-youre-new-to-programming-fc8592242622/) yayınlanan bu yazı Gizem Yılmazer tarafından çevirilmiştir. + +Görseller: [medium.freecodecamp.org](https://medium.freecodecamp.org/these-are-the-top-computer-science-terms-you-should-know-if-youre-new-to-programming-fc8592242622)