Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 06/11/2020 in all areas

  1. 2 points
    Sevgili arkadaşlar bu yazımda sizlere tasarım desenleri (Design Patterns) nedir, neden kullanılır, neden mevcut yazılım geliştirme ortamlarında olmazsa olmazdır ve bu kadar büyük bir önem teşkil etmektedir onu anlatacağım... Temel olarak söylemek gerekirse tasarım desenleri, OOP prensiplerinin bir amaç için çözüm odaklı standartlaşmış kalıplarda kullanılmasıdır. Pek açıklayıcı olmadı değil mi? Bir de şöyle anlatayım... Hangi mekanda olursanız olun,hangi tarz projeyle uğraşırsanız uğraşın,hangi dili kullanırsanız kullanın, bir yazılımcı olarak sizlerin karşılaştığı problemler asla size özgü değildir. Tıpkı sizin gibi başka yazılımcılar da her ne kadar farklı dil kullansalar da,farklı projelerle uğraşsalar da kendi projelerinde sizinkine çok yakın ve özellikle bazı proje sistemlerinde tıpkı sizinkilerle birebir tutan aynı sorunlarla karşılaşmışlardır. Bu sorunlardan bahsederken tabii ki basit syntax(yazım kuralı) hatalarından veya çalışma zamanı (runtime exception)hatalarından bahsetmiyorum.Hatta mantıksal(logical) hatalardan bile bahsetmiyorum. Bahsettiğim sıkıntılar performans düşürücü, öngörülemeyen ihtimaller yüzünden projenin önünü kesici, proje normalde çalışmasına rağmen olur olmadık yerde bug çıkaran,projeye yeni bir şey eklenmek istediği zaman bunu mümkün kılmayan, esnekliği öldüren sorunlardır. İlgili yazılımcı artık klasik 3 kategoride belirlenen hataları çoktan aşmış, bir projeyi sonuna kadar getirmiş ve onu canlıya alıp başarıyla çalıştırmıştır. Ancak asıl olay burada başlar. Her şey bitmiş değildir. Çünkü çalışmakta olan projenin kalitesi ve yaşam süresi onun nasıl çalıştığına bağlıdır. Yazılımcının tek görevi çalışan bir uygulama yazmak değildir. Performanslı çalışan ve esnek -yani yeniliklere açık ve yeni gelecek ekip arkadaşları için geliştirici dostu bir uygulama yazmaktır. Dolayısıyla böyle bir uğraş içerisindeyken biz yazılımcıların karşılaştığı sorunlar ciddi ölçüde yavaşlatıcı ve bezdirici olabilir. Elbette bu tarz sorunlarla karşılaşan yazılımcılar kendi algoritmalarını kurup belirli sistemlerle bu sıkıntılardan kaçınabilirler. Ancak bu genelde standartlaşmış bir çözüm olmaktan ziyade spesifik ve sadece o anı kurtaran bir çözüm olur. Ayrıca kendi senaryosu için iyi olabilen bir çözüm bulmuşken başka senaryolarda çok önemli başka sıkıntılar meydana çıkma ihtimali de büyüktür. Yani bir kalıba uymaz.. İşte tasarım kalıpları bu tarz sorunlara karşı standartlaşmış ve sorunu tamamen çözen,problemi çözerken de başka bir sorun ortaya çıkarmayan,OOP prensiplerini kullanan algoritmalardır. Tasarım patternleri hayatımıza -daha doğrusu yazılım hayatına- Kent Beck ve Ward Cunningham önclüğünden sonra kendilerine Gang of Four diyen 4 yazılım bilimcisi(Erich Gamma,Richard Helm,Ralph Johnson,John Vissides) tarafından getirilerek proje geliştirme esnasında karşılaşılan senaryolara uygun kategorilere ayrılmıştır. Bu yazılım bilimcileri yazdıkları "Design Patterns: Elements of Reusable Object-Oriented Software" isimli kitaplarında Christopher Alexander'in ilk kez ortaya attığı önemli bu kavramı yazılıma entegre edip bir devrim yaratmışlardır. Gang of Four'a göre tasarım patternleri ortak yazılım problemlerine kalıcı çözümler sunar. OOP- yani Nesne Yönelimli Programlamada ise tasarım patternleri büyük ölçekli yazılım mimarileriyle ilgilenmekten ziyade nesnelerin birbirleriyle davranışları ve ilişkileri ile ilgili sorunları çözmekle ilgilenir(zaten bu yüzdendir ki mimari paternler ile tasarım paternleri arasında fark vardır.). Yani bir tasarım paterni kullanıyorsanız sizin projenizin mimarisi zaten bellidir ve sağlamdır. Siz sadece bu mimari içindeki çalışma mantığında güzel ve sorunsuz bir iş akışı için bu paterni kullanırsınız. Onların olmaması projenizin çalışmayacağı anlamına gelmez. Ancak projenizin profesyonel bir yapıdan ziyade sorun çıkarmaya yatkın ve değişime sıcak bakmayan bir yapı olduğunu gösterir. Tasarım desenleri kategorisel olarak üçe ayrılır: Creational (Oluşturucu), Structural(Yapısal), Behavioral (Davranışsal) paternler. Bu kalıpların her birinin özel ilgilendiği senaryolar ve içlerinde barındırdığı paternler var. Sonraki yazılarımda Creational Pattern'i açıklayıp GoF'un belirttiği senaryoları açıklayacağım. Biliyorum belki de size çok fazla tarihsel ve teorik bilgi sundum. Ancak tasarım paternlerinin algoritmasını öğrenmeye başlamadan önce onların ne olduğunun ve neden yazılım hayatına girdiğinin anlaşılması bence önemli. Ben zaten her kategoride her paternle ilgili ayrı yazılarımda bir anlatım ve kod örnekleri yazacağım. Fakat bunlardan önce bence bir yazılımcının kullandığı her şeyin nedenini anlaması en az kullandığı kalıplar kadar önemlidir. Sonraki yazımda görüşmek üzere...Hoşçakalın.
  2. 1 point
    Merhaba Kürşat, Authentication'da hatırlıyorsan Response.Redirect ile kullanıcının yönlendirilecegi sayfayı seçiyorduk. Eğer tam bu esnada bir TempData tutarsan (OnAuthorizeCore metodunun icinde olusturup) veya Session'a bir mesaj eklersen eger kişi buraya düşmüşse ve istediğin şartlara girmişse o program o mesajı oluşturmuş olacak ve ulaşılan sayfadan da mesaj yakalanmaya müsait olacaktır
  3. 1 point
    İnsanoğlu, kendi tarihi boyunca içindeki hayal gücü ve merak dürtüsü ile yaşamlarını kolaylaştıracak bir çok icat gerçekleştirmiştir. Kendi gündelik yaşamlarını daha kolay hale getirebilmek amacıyla sayma ve hesap işlerini ilk alet olarak parmaklarını kullanmıştır. Günümüzde kullandığımız sayı sisteminin 10 tabanına göre düzenlenmiş olmasının nedeni 10 parmağımız olmasıdır. On parmağın yetmediği noktaya gelindiğindeyse, çakıl taşları ve çubuk parçaları devreye girmiştir. M.Ö. 2400 yılında Babilliler tarafından “Abaküs” icat edilmiştir. Daha sonra denizaşırı ticaret yapan ülkeler sayesinde diğer ülkelere yayılmıştır. İlk mekanik hesaplayıcı Blaise Pascal tarafından 1642'de 19 yaşında iken tasarlanmıştır. Bu hesaplayıcı vergi tahsildarı babasının işini kolaylaştırmak amacıyla, dişliler ve tekerleklerden oluşan mekanik bir “hesap makinesi” dir. Bu makinayla yalnızca toplama ve çıkarma yapılabiliyordu. 1671 yılında, Alman matematikçi Leibniz, Pascal'in makinasındaki eksikliği gidererek çarpma işini de yapabilir hale getirdi. Leibniz, yaptığı makinanın, pek kolay olmasa da, bölme işlemlerinde de kullanılabileceğini göstermiştir. 1801 yılında Joseph Marie Jacquard'ın dokumatezgâhındaki işlemi otomatikleştirmek adına ürettiği delikli kartlar ise bilgisayarların gelişme sürecindeki, kısıtlı da olsa, ilk yazılımlanabilme (kurulabilme) izlerinden sayılır. Kullanıcının sağladığı bu kartlar sayesinde, dokuma tezgâhı kart üzerindeki delikler ile tarif edilen çizime işleyişini uyarlayabiliyordu. 1830'lu yıllarda, İngiliz matematikçi Charles Babbage bilgisayar tanımına en yakın otomatik hesaplayıcının tasarımlarını ortaya koymuştur. Ancak parasal nedenler ve üzerindeki çalışmalarının sonlanamaması nedeniyle bu makineyi geliştirememiştir. Tamamen sayılar arasındaki farklardan yararlanarak geliştirilmiş matematiksel yöntemlerle otomatik olarak hesap yapabilecek bu makinaya bu nedenle "Farklar Motoru" (Difference Engine) adı verilmiştir. Daha sonra, Kraliyet ailesinin parasal desteğiyle çalışmalarını sürdüren Babbage, 1871'de ölümüne kadar ilk makinasının çok daha gelişmiş bir modeli olan ANALİTİK MOTOR (Analytic Engine) üzerinde çalıştı. İlk bilgisayar programcısı Charles Babbage'ın çalışmalarını büyük bir dikkatle izleyen amatör matematikçi, Ada Lovelace’dir. Analitik Motor'un bir ölçüde programlama sayılabilecek tasarım aşamalarında Babbage'a çok yardımcı oldu. 1842 yılında yazıdığı notlarında, Analitik Motor'un, sayıları çarpıp bölmenin dışında, programlanabilir olması sayesinde müzik bestelemekte bile kullanılabileceğinden sözetmiştir ve üzerinde çalıştıkları bu makinanın, insanlar tarafından nasıl çözüldüğü bilinen her türlü problem için programlanabileceğini öne sürmüştür. Notları sonradan incelenen Bayan Lovelace'a bu çalışmalarından ötürü dünyanın ilk programcısı ünvanını kazanmış ve adı, modern bilgisayar dilleri arasında önemli bir yer tutan ADA programlama diline verilmiştir. ADA birçok tarihçi tarafından ilk programlama dili olarak kabul edilmektedir. Bunu bir programlama dili olarak kabul etmeyenler olsa da gerçek anlamdaki programlama dillerine öncülük ettiği bir gerçektir. Delikli kartların ilk büyük ölçekli kullanımı ise Herman Hollerith tarafından, 1890 yılında muhasebe işlemlerinde kullanılmak üzere tasarlanan hesap makinesidir. Hollerith'in o dönemde bağlı olduğu işletme ise sonraki yıllarda küresel bilgisayar devine dönüşecek IBM'dir. 1930'lar ve 1940'lar boyunca bilgisayar uygulayımı gelişmeye devam etti, ve sayısal elektronik bilgisayarın ortaya çıkışı ancak elektronik devrelerinin buluşundan (1937) sonra gerçekleşebildi. Bilgisayar ve Programlama dünyasının gelişimine baktığınızda yaklaşık bir asırlık geçmişe sahiptir. Bu süre içerisinde yaşanan değişim bugün bakıldığında inanılmaz boyutlardadır. Programlamanın tarihine bakmak ve gelişimini anlamak için öncelikle bilgisayarın gelişim sürecini incelemek gerekir. Electronic Numeric Integrator and Computer – (Elektronik Sayısal Entegreli Hesaplayıcı) adıyla duyurulmuştur. ENIAC 1941 yılında Amerika’nın II. Dünya savaşına katılmasıyla geliştirilmeye başlanmıştır. ABD’li bilim insanları tarafından geliştirilen projede ENIAC 167m2 bir alan kaplamaktaydı ve 30 ton ağırlığındaydı. ENIAC projesi gizli olarak Pennysylvannia Üniversitesine ait Elektronik bölümüne verildi. Projenin asıl amacı daha isabetli uzun top ve füze atışı hesaplamalarını hızlı ve hatasız bir şekilde yapmaktı. Yaklaşık olarak $500.000 maliyet ile ENIAC’ın denemelerine 1945 yılında başlandı. ENIAC 1947 yılında ise gerçek anlamda çalışabildi. 2 Eylül 1945’de Japonya’nın teslim olmasıyla birlikte savaş sona ermiş ve ENIAC’a gerek kalmamıştır. Savaş sonrası ENIAC hava tahminleri, atom enerji hesapları, rüzgar tüneli hesaplamaları gibi işlerde kullanılmıştır. 1951 yılında Endüstriyel amaçla kullanılmaya başlanmıştır. ENIAC’ın parçaları Amerikan Ulusal Müzesinde sergilenmektedir. ENIAC çok fazla güç tüketmekte ve yüksek ısı yaymaktaydı. 1949 yılında Princeton Üniversitesinde EDVAC (Electronic Discrete Variable Automatic Computer – Elektronik Ayrık Değişkenli Otomatik Hesaplayıcı) yaratıldı. EDVAC’ı ENIAC’dan ayıran en büyük özellik ondalık taban yerine ikilik tabanı kullanıyor olmasıdır. Aşağıda sayı sistemlerini ve açıklamalarını görebilirsiniz. İkilik Sayı Sistemi: İkilik (Binary) sayı sisteminde taban 2’dir. İkilik sayı sisteminde yanlızca 0 ve 1 rakamları kullanılmaktadır. Günümüzdeki bilgisayarlar ve hatta tüm elektrik/elektronik devreler ikilik sayı sistemini kullanmaktadır. Sekizlik Sayı Sistemi: Sekizlik (Oktal) sayı sisteminde sadece 0-7 arası rakamlar kullanılmaktadır. Onluk Sayı Sistemi: Onluk (Decimal) sayı sisteminde 0-9 arası rakamlar kullanılmaktadır. 10 adet sayı bulunduğundan bu sistemin tabanı 10’dur. Gündelik hayatımızda kullandığımız sayı sistemidir. Onaltılı Sayı Sistemi: Onaltılık (Hexadecimal) sayı sisteminde 0-9 arası sayılar ve A-F arası harfler kullanılmaktadır. A=10, B=11, C=12, D=13, E=14, F=15 değerlerini temsil eder. Günümüzde Hexadecimal sayı sistemi makine kodlarını yazmak için kullanılır. EDVAC gerçek anlamda yaratılan ilk bilgisayar ünvanına sahiptir. Çünkü program ve verileri aynı anda bellekte saklayabilme özelliğine sahiptir. Bu özelliği sayesinde işlemleri istenilen sırayla kendisi yapabilmektedir. Bellekte bilgi tutan birim Binary Digit (bit)’dir. Bit ikilik sayı sistemiyle çalışmaktadır ve elektronik sinyal var/yok ifadeleriyle çalışırdı. Bit’ler bir araya gelip, Byte’ları oluşturmaktadır. Bellek dediğimiz birim byte’ların oluşturduğu manyetik durumlardır. Program dediğimiz yapı, bellekde bulunan byte’ların adreslerinin okunup veya yazılması demektir. Günümüzdeki bilgisayarlarda veri ve programlar belleğe bit olarak yazdırılmaktadır. Bu bit dizelerine makine kodu denir. Makine kodlarını kullanarak bilgisayara bir veri yazdırmak çok zor bir iştir. Bu işlem çok zor olduğundan gelen sinyali algılayıp makine koduna çeviren yapılar oluşturulmuştur. Günümüzdeki işletim sistemlerinin atası da bu yapılardır. Bilgisayarın gelişimini inceledikten sonra artık programlamanın tarihine ve gelişimini inceleyebiliriz. 1951 yılında Grace Hopper ilk derleyiciyi tasarlamıştır. Daha sonrasında 1954 yılında FORTRAN (FORmula TRANslator) IBM 705 için tasarlanmıştır. FORTRAN’ın ilk derleyicisi ise 1957 yılında tasarlanmıştır. Fortran’da ki bazı eksiklikleri gidermek için ALGOL (ALGOrithmic Language) tasarlanmıştır ve bu dilin iki farklı uyarlaması bulunmaktadır. Hemen ardından 1959 yılında COBOL dili geliştirilmiş ve 1961 yılında ise ilk derleyicisi oluşturulmuştur. 1960’lara gelindiğinde 1962-1967 yılları arasında Simula isimli bir dil geliştirilmiştir. Geliştirilen Simula ilk nesneye yönelik programlama dilidir. Yine bu zamanlarda John George Kemendy ve Thomas Eugene 1964 yılında Basic (Beginner’s All-purpose Symbolic Instruction Code) dilini geliştirmiştir. Niklaus Wirth tarafından 1968 yılında Pascal dili geliştirilmeye başlanmıştır ve 1970’de pascal ilk versiyonu ile yayınlanmıştır. 1970’li yıllara gelindiğinde günümüz programlama dillerinin tamamını etkileyen C dilinin temelleri atılmaya başlandı. 1972 yılında Dennis Ritchie tarafından Bell Laboratuarlarında C dili geliştirilmiştir. Dennies Ritchie, Ken Thompson ile birlikte Unix işletim sistemi ve B programlama dili üzerindede çalışmıştır. 1979 yılında Bjarne Stroustrup tarafından C++ dili geliştirilmiş ve 1983 yılında C++ dili yayınlanmıştır. C++ dili, C dilini temel alarak geliştirilmiştir ve Nesneye yönelik programlama kavramını kabul etmektedir. 1986 yılında Bertrand Meyer tarafından geliştirilen Eiffel programlama dili C++ gibi nesneye-yönelik bir dildir. Windows tabanlı uygulama geliştirmeyi sağlayan Visual Basic 1.0 Microsoft tarafından 1991 yılında piyasaya sürülmüştür. Sun Microsystem tarafından geliştirilmiş olan Java programlama dili 1995 yılında piyasaya 1.0 sürümüyle yayınlanmıştır. Dinamik web sayfaları oluşturulmasını sağlayan PHP Rasmus Lerdorf tarafından yine 1995 yılında tasarlanmıştır. Gelişmenin son aşamasında ise Web Tabanlı programlama yaygınlaşmıştır ve bu sebeple php, asp, jsp gibi diller sürekli yenilenmekteydi. 2001 yılında microsoft bu gelişmeye ayak uydurarak .Net Framework geliştirme çatısını piyasaya sürmüş ve C#, Vb.Net gibi yenilikler getirmiştir.
  4. 1 point
    Aslında her ne kadar Steve Jobs bir yazılımcı olmasa da gerçek hayatta işlerin nasıl yürüdüğünü bilen bir iş adamıydı. En yakın arkadaşı Steve Wozniak ile büyük bir başarıya imza attığı Apple II'den sonra sanırım yazılımın ne denli güçlü bir teknoloji olduğunu keşfetti... "Cogito ergo sum" latince "Düşünüyorum öyleyse varım" demek. Muhtemelen bu sözü bilmeyeniz yoktur. Genelde üstünkörü söylenen bir sözdür. Oysa o kadar bir derin sözdür ki bu; herşeyin düşünceden ibaret olduğunu söyler... Şimdi biz de biraz düşünelim o halde. 200 bin yıl önce akıllı insan adında bir tür olarak dünyayı değiştirmeye başladık. Son dönemlerde sıklıkla karşılaştığınız bir terim olan homo sapiens, türlerinin arasında en akıllı olanı. Etrafını sorgulayıp, hayatta kalabilmek için planlar yapabilen bir canlı. Aynı zamanda ekipce hareket eden bir canlı. Şimdi içinizden büyük olasılıkla "ee ne alakası var?" diyebilirsiniz ancak herşey burada başlıyor aslında. Hayatta kalabilmek bir dizi algoritmayı yerine getirmektir özünde. Bütün canlılar algoritma kurar. Örneğin bir kediyi izlediğinizde fareyi yakalayabilmek için içgüdüsel olarak yere yapışır ve farenin hareketlerini izler. Farenin en savunmasız anında ise üzerine atlar. İnsanoğlu da geçmişinden bu yana hayatta kalabilmek adına bir çok planlar yapar. Bazen bu planlar içgüdüsel olsa da çoğunlukla bilinçli yapılan planlardır. Bu planları uygulamayabilmek için de az önce bahsi geçen bir dizi algoritma kullanır. Üstelik farkında olmasanız bile her saniyemizde bir algoritma kurarız. Peki bir çoğumuzun adından bile ürktüğü, detayına girilince çok karmaşık sanılan bu algoritma nedir? Algoritma daha açık bir ifade ile aslında bir problemin çözümü için izlenecek bir dizi işlem veya işlemlerdir. Elbette bu bir dizi işlem tek bir işlem de olabilir birden fazla işlem de olabilir. Mesela şu an hayal edin. Tekerlek diye bir şey yok bu yüzden taşıyacağınız her şeyi elinizle veya hayvanlarla taşımanız gerekiyor. Ancak hayvanların da bakıma ihtiyacı olduğu için ve çok dik tepelere yük ile beraber çıkamadıkları için bazı yerlere bi takıp eşyaları taşıyamıyorsunuz. İşte burda bir problem devreye giriyor. O esnada yan yana yatırılmış ağaç gövdeleri üzerine konulan nesnelerin itilerek hareket ettirilmesini keşfediyorsunuz. Bunun üzerinde biraz düşündükten sonra tekerleği buluyorsunuz. Artık bir çok nesneyi bulduğunuz tekerlek üzerinde istediğiniz yere taşımaya başlıyorsunuz. Bu sayede problem ortadan kalkmış oluyor... Elbette sadece tekerliğin icadıyla başlamıyor algoritma ve tekerlekten sonra da bitmiyor. İnsanoğlu devamlı kafasındaki soru işaretlerini çözmek için her saniye algoritma kuruyor. En meşhur olanından bahsedeyim mesela; Hârizmî yani tam adıyla "Ebû Ca'fer Muhammed bin Mûsâ el-Hârizmî". En meşhur kitabı şu an Oxford'daki Bodliana kütüphanesinde olan El- Kitab'ul Muhtasar fi'l Hesab'il Cebri ve'l Mukabele ile tanınıyor kendisi. Matematikteki şöhretinden dolayı 16. yy'da latincede "Alkhorismi" ismi ile anılmaktadır. Bahsei geçen kitapta bulduğu metot ile adı literatüre Algoritma olarak geçmektedir. Artık günümüzde gelişen teknoloji ile birlikte her türlü problemi çözmeye dayalı bir çok algoritma, diğer insanlar tarafından paylaşılmaktadır. bazen insanoğlunun kafasında tutamayacağı durumlarda ise devreye bilgisayarlar girmektedir. Örneğin 3 yıl önce bir pazar sabahı yapmış olduğunuz kahvaltıyı hatırlamayabilirsiniz. Ya da ilkokulda öğrendiğiniz bir kimya formülünü de hatırlamayabilirsiniz. Ancak bilgisayarlar hatırlar. Tabiki onlara sadece bir kez anlattığımız takdirde... Aslında yazılım (programlama) bir dizi algoritmayı bilgisayara anlatmaktır. Aynen ilk kez menemen yapacak olan bir arkadaşınıza yapım aşamasını anlatmanız gibi anlatmanız gerekmektedir; iki tane domates al ama domateslerin kabuğunu soy, üç biber al ve biberleri yıkadıktan sonra ince ince doğra, tavada az yağ gezdir, sonra malzemeleri koy biraz kızarttıktan sonra üzerine iki tane yumurta kır. Belki ertesi gün arkadaşınız size şu sorayı soracaktır: "biberi mi önce kavuracaz yoksa dometesi mi?" ancak bu işlemi bilgisayara bir kez anlattığımızda bilgisayar bize tekrar sormaz. Bizim tarif etmiş olduğumuz algoritmayı eksiksiz ve hatasız, üstelik defalarca yerine getirir. Bizler bilgisayarlara bu işlemleri yani algoritmayı tanımlayabilmek için de yazılımları kullanılırız. Aslında onları programlarız. Fakat programlarken onların (bilgisayarların) anlayacağı dilde konuşmamız gerekmektedir. Bilgisayarlar özünde sadece 0 ve 1'i bilir. 0110100001100101011011000110110001101111 sizce burda ne yazıyor? Burda binary olarak "hello" yazmakta. Muhtemelen binary olarak bir algoritma yazmanın ne denli zor olduğunu anlamışsınızdır. Ancak arada bir çevirici olsa en azından biraz daha anlayaşabileceğimiz bir çevirici sayesinde algoritmalarımızı bilgisayara aktarsak hiç fena olmaz değil mi? İşte bu noktada yazılım dilleri devreye girmektedir. Bizim yazmış olduğumuz bir dizi işlemi yani algoritmayı binary kod'a dönüştürülmesini sağlayan binlerce yazılım dili bulunmaktadır. Aynen dünya üzerinde insanların birbirleriyle iletişimini sağlayan sözlü dillerde olduğu gibi. Peki bu kadar yazılım dili arasından ilk olarak hangisini öğrenerek programlamaya başlamalıyız? Burda şöyle bir örnek düşünebilirsiniz; Neden ingilizce öğreniyoruz? Yani neden Papua Yeni Ginece değil de İngilizce? Çünkü ingilizce global bir dil olduğu için. Eğer ingilizce öğrenirsek dünyanın bir çok alanında konuşabilir, iş yapabilir, makaleler araştırabilir ve kendimizi geliştirebiliriz. O yüzden yazılıma başlamadan önce kendinize sormanız gereken soru; Ne için yazılım öğrenmek istiyorum? İnternet üzerinde araştırma yaptığınızda bir çok programlama dili karşınıza çıkar. C#, Java, Php, C++, Python vs... aynen ingilizce, almanca, fransızca, ispanyolca gibi. Ancak şu an kullanmış olduğunuz bilgisayarın işletim sistemi Windows ise ve masaüstü, web ya da oyun programlamak istiyorsanız C# öğrenmeniz daha avantajlı olabilir, Linux ise Php... Ya da yapay zeka ile uğraşacaksanız Python. Endüstriyel otomasyonlar gerçekleştirecekseniz C++ işlerinizi daha da kolaylaştıracaktır. Bu yüzden yazılım öğrenmeden önce ne için yani hangi amaç için yazılım öğrenmek istediğinizi cevaplamalısınız. Eğer sıfırdan bi takım algoritmalarla beraber C# öğrenmek isterseniz o zaman Buradan başlayabilirsiniz. unutmayın ki fikirler dünyayı değiştirir. paylaşmaktan çekinmeyin.
×
×
  • Create New...