Programlama dilleri listesi. Programlamanın temelleri ve ana programlama dilleri

  • 26.07.2019

Çeşitli programlama dilleri ve uygulama alanları. Yandex'de ders

Bu yılki ilk yazımızı, Small SHAD'da verilen bir ders olan çok temel bir konuya ayırmaya karar verdik. Teknolojiye ilgi duyan lise öğrencileri bununla ilgileniyor, bu nedenle sunumun özgünlüğü - ders özellikle programlamaya yeni başlayanlar ve gelişme yönünü düşünenler için ilginç olacak. Onlar için Yandex'in Stepic.org platformunda alınabilecek bir "Programlamaya Giriş (C ++)" kursu var.

Öğretim Görevlisi Mikhail Gustokashin - Yandex'de Akademik Programlar Küratörü, HSE, Bilgisayar Bilimleri Fakültesi Öğrenci Olimpiyatları Merkezi Direktörü. Mikhail, Tüm Rusya Programlama Olimpiyatlarının düzinelerce kazananını ve ödül kazananını eğitti.

Ders kapsamında programlama dillerinin neler olduğu, nasıl farklı oldukları, nasıl ortaya çıktıkları ve hangilerinin daha iyi ve hangilerinin daha kötü olduğu anlatılır. Başlangıçta, dillerin tarihi hakkında biraz konuşacağız - nasıl ortaya çıktılar, insanlar nasıl programlamaya başladı, her şey nasıl gelişti, şimdi neler oluyor. İkinci bölümde hangi dilin hangi görevlere uygun olduğuna, “en sevdiğiniz dili nasıl seçeceğinize ve hayattan zevk alacağınıza” değinilecektir. Öğretim görevlisi ayrıca, kendi görüşüne göre, tüm bunları nasıl öğreneceği ve ardından bir iş bulacağı hakkında biraz konuşacaktır.

Her zaman olduğu gibi, içeriğin altında gezinebilmeniz için dersin ayrıntılı bir dökümü var.

Programlama dillerinin tarihi

Hadi baştan başlayalım. Başlangıçta bilgisayarların klavyesi bile yoktu! Yani, her şey çok kötüydü - klavyeleri veya ekranları yoktu, delikli kartları vardı (bunlar delikli veya deliksiz şeyler). Buna göre, pimler ya oraya itildi ya da orada ışıkla parladılar. Bir delik varsa (veya tam tersi), sıfır veya bir anlamına geliyordu. Ve o zamanlar programlar makine kodları kullanılarak yazıldı - bilgisayardaki her işlem (toplama, çıkarma, bazı daha karmaşık işlemler) bir tür makine koduna sahipti. İnsanlar kendileri bu kodu plakadan seçtiler, hafızadaki her türlü adres, hepsini elleriyle nakavt ettiler ve okuyucuya ittiler - ve hepsi sayıldı. Tabii ki, bir programcının işi o zamanlar muhtemelen çok ilginç değildi - delikler açmak - ve bilim ve teknolojinin gelişmesiyle elbette, her türlü daha "ilginç" şeyle ortaya çıkmaya başladılar. Örneğin, zaten hayatı biraz daha kolaylaştıran assembler (Assembler).

Peki, hayatı nasıl kolaylaştırdı? Komut için bir tür "sihirli" kod olduğunu hatırlamak yerine, "insan" İngilizcesine benzer her türlü kelime kullanıldı - bazıları ekleme veya taşıma - ve ardından kayıtlar veya bellek alanları listelendi, bunların gerçekleştirileceği değişkenler operasyonlar. Ancak bunun, genel olarak, hangi kayıtta neyin yattığını, hangi değişkenlerin nerede olduğunu ve genel olarak neler olduğunu akılda tutmak için yeterince büyük miktarda zihinsel çaba gerektirdiği açıktır. Bu neden oldu? Çünkü bilgisayarlar "aptal"dı ve bundan daha "akıllı" bir şey anlayamadılar. Aslında, makine kodunu assembler'dan derlemek de zaman alır, hafıza alır (o zamanlar, elbette, yeterli değildi).

Yavaş yavaş, bu kadar büyük karmaşık programlar geliştirmenin çok zor olduğu ortaya çıktı. Programcının bu komutlardaki verimliliği son derece düşüktü - yani, günde birkaç satır yazdı (anlamlı) ve her satır özel bir şey yapmadı - bazı basit aritmetik işlemler. Ve insanlar, program yazmayı daha kolay ve daha uygun hale getirmek için dilleri insan diline, özellikle İngilizce'ye çok daha benzer hale getirmek istediler. Ve gidiyoruz!

Eski ve ölü diller

Fortran ilk dillerden biri oldu. Bu arada, delikli kartlarda da nakavt edildi - Fortran programlarını devre dışı bırakmak için özel delikli kartlar vardı. Ama bu Fortran'ı şimdi alırsanız - bence, 50-60 arasında bir yerde bile. ortaya çıktı - ve üzerine bir şeyler yazmaya çalışın, sizin için çok tatsız olacak, sizi temin ederim! Modern Fortran bugün hala yaşıyor, ancak eskisinden oldukça farklı.

Diğer diller - şimdi muhtemelen duymuş olduğunuz bir şey yazacağım, o zaman sadece programlama tarihini anlattıkları herhangi bir olayda - bu COBOL. İş uygulamaları yazmak için bir dildi. İş uygulamaları nelerdir? Bankalarda herhangi bir işlem, başka bir şey, bunların hepsi Kobol'da yazılmıştı. Tabii ki, bizde çok popüler değil. Moskova'da Kobol'da bir programcı bulmanız zor. Ve Moskova'da olmayan bir yerde - daha da zor. Ancak şaşırtıcı bir şekilde, 10 yıl önce bile, insanlığın yazdığı tüm kodların yarısından fazlası Cobol'da yazılmıştı. Ve şimdiye kadar, tüm bankacılık işlemlerinin önemli bir kısmı, içinde yazılan programlar (COBOL) kullanılarak gerçekleştiriliyor ve hala insanlar üzerine bir şeyler yazıyor.

Ayrıca "komik" bir dil de var, buna Algol (yaratılış yılını karakterize eden 68. versiyon) adı verildi. Algoritmik bir dildir. Genel olarak orada bir şeyler yapabildiler ama şimdi yapabilecekleriyle pek ilgilenmiyoruz. Ve burası, antik çağa ve nispeten kullanılmayan dillere yaptığımız gezinin sona erebileceği ve hala hayatta olana (ve aktif olarak yaşayan) geçebileceği yerdir.

Eski ama yaşayan diller

Algol Avrupa'da icat edildi ve Fortran esas olarak Amerika'da kullanıldı - büyük bir fark yok. Hangi eğilim görülüyor? İlk başta, her şey zordu ve yazmak için neredeyse bir mühendis, elektrik mühendisi olmanız, hangi kontakların nerede kapalı olduğunu ve programlama için başka bir şey anlamanız gerekiyordu. O zaman da yapraklarla oturmak ve hatırayı saymak, ona bakmak gerekiyordu. Ve yavaş yavaş her şey daha basit, daha basit, daha basit ve daha sonra programcı için daha da kolaylaştı - bir insan için mümkün olduğunca az düşünmek, otomatik olarak mümkün olduğunca çok şey yapmak. Bu dönemin yaklaşık sonunda (öğretim görevlisi Algol ve Kobol'u işaret eder), bir anlamda bu güne kadar "hayatta kalan" diller ortaya çıkmaya başlar.

TEMEL. Belki bazı insanlar hala üzerine bir şeyler yazıyor, en azından bazı kurumlarda QBasic'te öğrettiklerini gördüm - "1989" yazan böyle mavi bir pencere. Genel olarak, "güçlü ve ana" yaşıyor! Programcı olmayanlar için bir dil olarak icat edildi. O zamanlar programcı çok özel bir meslekti. Ve burada size diyorlar ki: “Burada harika bir Temel dilimiz var ve makul herhangi bir kişi onun içinde bir program alıp yazacak - kolayca”. Yine, bu BASIC ve modern BASIC, büyük bir farktır. Her 10'da bir numaralandırılmış tüm bu satırlar, her türlü GOTO ve diğer korku - modern BASIC ile hiçbir ilgisi yok ve hatta BASIC 89 ile ilgisi yok.

Bir başka komik hikaye, üniversite çevrelerinde, özellikle Rusya'da ve eski Sovyetler Birliği ülkelerinde yaygın olarak bilinen Pascal dilidir. Şaşırtıcı bir şekilde bir öğretim dili olarak kullanıldı ve kullanılmaya devam ediyor. Dünyanın geri kalanında daha az yaygındır, ancak aynı zamanda canlı ve iyi durumdadır. Böyle bir kişi var Wirth - işte o bir bilim adamı, bir teorisyen. Algol tartışmasına katıldı, olanlardan hoşlanmadı ve kendi dilini buldu - Pascal. Ve sonra Borland firması (ve ondan önce diğer birçok firma - özellikle Apple meşguldü) her şeyi aldı ve mahvetti. Güzel, ince bir teorisi vardı - "her şey yoluna girecek" - ve insanların iş için ihtiyaç duyduğu şeyleri alıp oraya doldurdular. Şey, istediği kadar güzel gitmedi.

Ve sonunda,. Xi, mühendisler tarafından icat edildi. Pascal bir bilim adamı tarafından icat edildiyse, o zaman C, Kernighan ve Ritchie tarafından icat edildi, Bell'de mühendis olarak çalıştılar. Bu nasıl oldu? O zaman, bu dillerde sistemik bir şey yazmak imkansızdı (öğretim görevlisi Fortran, COBOL, Algol'a işaret ediyor). "Sistemik" nedir? Örneğin, bir işletim sistemi, bazı sürücüler, başka bir şey. Bu diller matematik, iş ve tüm bu şeyler içindi. Ve diğer her şey Assembler'da yazılmıştır. Bazı diller vardı, şimdi öldüler yani C dili Assembler'dan hemen değil, bazı ara şeyler aracılığıyla ortaya çıktı.

özü nedir? Kernighan ve Ritchie, Asteroids oyuncağını oynamayı severdi - bir uzay gemisi uçar ve asteroitler vardır, onlara ateş eder ve parçalanırlar. Oynadıkları bir sunucuları vardı ama orada çok insan vardı ve oyuncak yavaşlıyordu. Ve ofislerinde bir yerde, kimsenin kullanmadığı bir tür bilgisayarları olduğunu öğrendiler. Ama bir sorun vardı - farklı bir mimariydi ve oyun Assembler'da yazılmıştı.

Yeniden yazdılar, tabii ki üzerinde oynamak için bazı özellikleri kestiler. Ancak bu, her seferinde yeni bir mimari için yeniden yazmanın pek akıllıca olmadığını düşünmelerine neden oldu. Ve sistem programlamaya uygun, yani hafızayı yönetmenin mümkün olacağı, bir şeyin nerede olduğunu ve bu hafıza parçalarına nasıl erişileceğini anlamanın mümkün olacağı üst düzey bir dil yazmaya karar verdiler. . Ve böylece daha sonra her şey üzerinde büyük etkisi olan C dili ortaya çıktı. Hepsinin (öğretim görevlisi Algol, Fortran ve diğer belirtilen dilleri işaret eder) büyük bir etkisi oldu, ancak C - evet ...

Buna göre, o zamanlar şimdi olduğundan daha popüler olan bir işletim sistemi olan Unix'in ana diliydi. Ve yaklaşık 80'lerde durum şöyle bir şeydi (öğretim görevlisi Basic, C ve belirtilen diğer dillerde gösteriyor). Diyelim ki bunların hepsi sinsice öldü (öğretim görevlisi Assembler, Fortran ve Algol'a yapılan referansları siler) ... Ve 80'lerde bilgisayarlar küçüldü, daha akıllı, daha ucuz hale geldi ve insanlar sırayla her türlü tuhaflığı istediler. daha da iyi yaşamak, daha da eğlenceli yaşamak.

80'lere özgü diller

İlk tuhaflıklardan biri C++ diliydi. C dilinin çok sayıda eksikliği var (peki, gerçekten çok büyük) - içinde kendinizi bacağınızdan vurmak, bir kurgu ile bacağınızdan kendinizi vurmak, diğer bacağınızda, bir ayağınızla ateş etmek dahil her şeyi yapabilirsiniz. diğer bacakta, genel olarak - yapmak istediğiniz. Ama aynı zamanda, orada bazı mimari şeyler oldukça zor yapılır - yine, Assembler'da olduğu gibi, nerede olduğumuzu, neyi ve hangi hafızayı ayırdığımızı takip etmeliyiz; bu hafıza her zaman bir yerde "akıyor" - yani, seçtik, silmeyi unuttuk, yanlış şeyi sildik, hafızamız doldu, genel olarak - bir sürü problemimiz var.

C ++, başlangıçta, geliştirmeyi kolaylaştıracak C diline bir dizi ekleme olarak oluşturuldu. O zaman, nesne yönelimli programlama moda oldu ve insanlar her şeyin bir hiyerarşi şeklinde tanımlanabileceğine, yani bir topun (soyut) olduğuna, ondan bir futbol topu, bir voleybol, bir başka soyut topun miras alındığına karar verdi. . O zamanlar modaydı, "şimdi her şeyi bir tür hiyerarşi şeklinde yazıyoruz ve her şey yoluna girecek, hayat düzelecek, her şey yoluna girecek ve her şey yoluna girecek." Bir anlamda, C ++ bu nesne yaklaşımını uyguladı - ilk nesne yönelimli programlama dili değildi, ancak oldukça popüler oldu ve her türlü özellik içinde görünmeye başladı. Aynı zamanda, C ++, C dili ile (o sırada) neredeyse tam uyumluluğu korudu, C ile yazılmış bir program, vakaların% 99'unda C ++ olarak başarıyla derlendi ve hatta aynı şekilde çalıştı. Bu, C'den C++'a geçişi kolaylaştırmak için tasarlandı.

Nesne yaklaşımına (C++ dilinde) ek olarak, Standart Şablon Kitaplığı (STL) hızla ortaya çıktı. Sanırım okulda, hala Pascal öğretenler, ilk olarak, orada yerleşik sıralamaya sahip olmadığınızı keşfettiler (eski, mavi Borland Pascal'da, şimdi zaten modern versiyonlarda) - bir örnek var (kaynak) sırala, kopyalayıp yapıştırabilirsiniz. Ama burada tamsayıları sıralamak istiyorsanız, burada gerçek sayılar istiyorsunuz ve burada birbiriyle karşılaştırılabilecek dizeler var, tam olarak aynı şeyi yapan üç farklı tür yazmanız gerekiyordu, sadece farklı veri türleri var. Bu pek iyi değil ve C++'da hemen görünmeyen şablonlar bu sorunu çok daha kolaylaştırdı. Yani, birbiriyle karşılaştırılabilecek bir şeyi başarıyla sıralayan soyut bir programınız vardı.

90'lardan betik dilleri

Ancak zaman durmadı, 80'lerde çok ilginç şeyler oldu. Ancak 80'lerin ve 90'ların başında bilgisayarlar o kadar iyi hale geldi ki, çok garip ve çok etkisiz şeyler yapmak zaten mümkün oldu. Özellikle bunlar, makine koduna derlenmemiş, yorumlanmış betik dilleriydi. BASIC de bir süre yorumlandı, ancak bu betik dilleri esas olarak metin işleme için tasarlandı - örneğin, Perl, Python (o zamanlar çok ünlü değildi), PHP, Ruby - bunlar içinde olan betik dilleri bir veya farklı bir dereceye kadar hala yaşıyorlar (hepsi 2000'den önce, hatta çok daha önce ortaya çıkmayı başardılar).

Bunların üzerinden biraz geçelim çünkü bunlar belirli şeyler ve artık birçok yerde kullanılıyorlar. Fikir nedir? Derleme yapmazsak, çok daha fazlasına izin verilebilir. Örneğin, bir program koduna bakabilir ve bir şekilde onu kullanabilir; içinde neler olduğunu biliyor ve bu sayede birçok ilginç şey yapabilir.

Perl kelime işleme için tasarlandı - o günlerde bilgisayarlarda zaten o kadar çok bellek vardı ki, içine bir metin doldurmak ve bu metinle faydalı bir şeyler yapmak (örneğin, kelimeleri saymak, bir tür aramak) mümkündü. Ama bence biraz aklını kaçırmış insanlar tarafından tasarlandı, çünkü onunla ilgili şöyle bir fıkra var: "Yazılan her karakter dizisi Pearl'de doğru bir programdır." Bence sadece üzerine yazabilirsin, okuyamazsın. Perl'deki koda bakıp bir şey bulmaya çalıştığımda hiçbir şey anlamıyorum. Belki onu daha iyi tanısaydım bir şeyler anlardım ama hala bilenlerden duyduğum kadarıyla yeniden yazmanın daha kolay olduğunu söylüyorlar. Yani, programlar kısadır ve yeniden yazmak, orada ne olduğunu bulmak ve düzeltmekten gerçekten daha kolaydır.

Bu sıralarda, 90'ların ortalarında İnternet ortaya çıktı. İlk başta, postaydı, statik HTML'ye sahip siteler, ancak insanlar her şeyin bizim için dinamik olarak gerçekleşmesi için bir tür dinamik eklemek istediler, bazı formlar doldurulabilir, yapılacak konuk defterleri ve başka bir şey. Buna göre, bu bir tür etkileşim gerektirdi, bir protokol, nasıl etkileşime girdiği ve en önemlisi, isteğine yanıt olarak kullanıcıya "tükürülecek" bu statik (koşullu) sayfaların oluşturulması ile geldiler.

Genel olarak, Pearl'den başka hiçbir şey o zaman uymuyordu. İşleyiciyi saf C veya C++ ile yazmak kötü bir fikirdi. Ve o zamanlar (ve yeterince uzun) daha iyi bir dilin olmaması nedeniyle, Pearl web geliştirme için popüler bir dildi. Tabii ki, ölçek şu anda olanlarla karşılaştırılamaz.

PHP tesadüfen ortaya çıktı. Bir kişi bunu yapmayı çabucak durdurdu - bir tür kendi sayfasını yaptı, bir tür ziyaretçi defteri vardı, başka bir şey, bazı şeyler. Ve Pearl için C'ye benzeyen bir çeşit makro yazdı, çünkü C'nin nasıl kullanılacağını biliyordu, çünkü çok rahattı. Ve buna Kişisel Ana Sayfa adını verdim. Shared ve şöyle dedi: "Millet, bakın ne yazmışım, burada her şey Pearl'dekinden çok daha net ve onu düzenleyebilirsiniz." Ve insanlar bunu beğendi.

Sonra davayı düşürdü. Genel olarak sonuç olarak bu PHP yaşamaya başladı ve zamanla Perl'den çok daha popüler oldu. Ama onun bu "doğum travması" (Fikir Pearl için bir dizi makro gibi) onunla oldukça acımasız bir şaka yaptı. Dil garip geldi. Yani kendi kendine geliştirdi, kimse tasarlamadı, geliştirme sürecini kimse yönetmedi (ne şirket ne de herhangi bir kişi), ama her biri beğendiğini gören birçok grup vardı. Sonuç olarak, oradaki işlevler farklı çağrılıyor, bir stil bile yok, her şey altı çizili, genel olarak, her nasılsa, ayarlar burada ve orada ve tüm bunların nasıl çalışacağı çok açık değil. Ama oturup iki saat içinde PHP'de yazabilirsin, çünkü o öyle tasarlamıştı.

Python ve Ruby: Ruby artık daha az popüler, Python bir şekilde daha iyi "kesilmiş", bunu daha sonra konuşalım. O günlerde bunların (öğretim görevlisi Perl, Python, Ruby, PHP'ye işaret ediyor) son derece özel amaçlar için son derece uzmanlaşmış diller olduğu açıktır. Genel olarak, o zamanlar hiçbir sistem programlaması, hiçbir iş mantığı yazılmamıştı ve şimdi pek bir şey yapmıyor.

90'lardan derlenmiş diller

Aynı zamanda gideceğiz, ama diğer yönde. O zamanlar, web için değil, kelime işlem için değil, basit uygulamalar için, işletim sistemleri için, oyuncaklar için - genel olarak, her şey için yazılması gereken hemen hemen her şey için C ++ kullandık. Ancak C++ aslında ürkütücü bir dildir. Niye ya? Çünkü öncelikle geriye dönük uyumluluk nedeniyle tüm C problemlerini miras almıştır. Orada hala milyonlarca farklı şekilde öldürülebilirdi, C'dekiyle aynı olanlar (elbette, C++'da yeni yollar eklendi). Aynı zamanda, C ++ yazarlarının tasarladığı gibi her şeyi iyi ve doğru yazarsanız, elbette, eski yöntemlerle kendinizi öldürmek imkansızdı ve görünüşe göre bunlardan daha azı vardı. Ancak, kendine özgü çok garip bir nesne modeli vardı. Programın modüllere, bir tür parçalara bölünmesi genellikle C'den geldi (eğer C veya C++'da include yazabiliyorsanız - aslında, kütüphanenin metnini programınıza, sonunda, bir sürü inklüzyon yazdığınızda, her şeye sahipsiniz - en başta olduğu gibi “ilkel” ise - her şey tek bir dosyaya eklenir ve sonra bunların derlenmesi çok uzun zaman alır, çünkü gider birkaç kez. versiyonlar daha da iyi.

Genel olarak, C++ birçok dezavantaja sahiptir. C++ ile yazabilmek için bir programcının niteliklerinin yüksek olması gerekiyordu ve bu tür programcılar pahalıydı (hem eğitim hem de başka bir şey, yani piyasada programcı bulmak zor, çok para ödemeleri gerekiyor, peki, genel olarak, durum böyle değil ...). Ve bilgisayarlarımız gitgide daha hızlı sayılıyor, ucuzluyorlar, insanlar kendilerine yeni bilgisayarlar alıyor ve daha fazla uygulama, telefon için daha fazla oyuncak, genel olarak daha fazla keyif istiyorlar.

Java (Java) bu şekilde ortaya çıktı. Orada da, ismin bu dilde nasıl göründüğüne dair oldukça komik bir hikaye var. Programcılar var, her zaman kahve içerler ve o zamanlar Java adasında yetişen kahve içmek modaydı. Dil, ankastre cihazlar için, özellikle bir kahve makinesi için bir dil olarak tasarlandı. İsim böyle ortaya çıktı...
Onunla ne başladı, onun hakkında ne iyiydi ve neden bu kadar popülerlik kazandı? Önce Sishny'nin mirasından tamamen kurtuldular. İşaret yok, vücudunuzun herhangi bir bölümünü vurup her şeyi kırmanın çok daha az yolu. İkincisi, nesne modeli açısından çok daha yeni fikirler sundular - yani, C ++ Java'dan çok daha önce ortaya çıktı ve daha eski, "vahşi" bir nesne modeli kullandı. Pekala, burada (öğretim görevlisi Java'yı işaret ediyor) o zaman zaten daha fazla düşünülmüştü ve teoride insanlar düşündü ve pratikte uyguladılar ve her şeyi çok daha havalı yaptılar.

Ve son olarak, üçüncü. Java programlarımız makine kodunda değil, sanal bir makine kodunda birleştirildi. Yani, bir JVM sanal makineniz (VM) - Javovsky'niz vardı. Programlarınız bir tür ara sunumda toplandı ve daha sonra bu makinenin yardımıyla zaten yürütüldüler. Ne yaptı? Birincisi, yavaşladı ve ikincisi, hafızayı korkunç bir güçle yedi ve üçüncüsü (teorik olarak) her yere taşınabilirdi - bir kahve makinesine, hatta bir kahve değirmenine, hatta bir bilgisayara, hatta bir cep telefonuna bile. Bir yandan, bu iyi, yani sanal bir makinenin uygulamasını yeni yazdınız, sonra Java programlarınızı her yerde çalıştırıyorsunuz. Ancak öte yandan, aynı telefonun o sırada çok az hafızaya sahip olması kötüydü, düşük performans vardı ve tüm bunlar ek olarak donuklaşmaya ve yavaşlamaya başladı.

Ancak dilin genel olarak icat edilmesinin ana nedeni bu bile değildir. Java dili, programcıların niteliklerinin gereksinimlerini azaltmak için icat edildi. Yani, daha fakir programcılar Java'da iyi programlar yazabilirler, çünkü Java onların kötü programlar yazmalarını engeller - kötü programlar yazmanın hiçbir yolu yoktur. Orada sadece iyi programlar yazabilirsiniz. Peki, dilin yaratıcılarının anlayışında.

Yani, C'de, C++'da, Python'da herhangi bir şeyde, her şeyi karıştırdığımız, saatlerce topladığımız ve orada başka bir şeyin olduğu projemizden bir tür ürkütücü çöpü çözebiliriz. Java'da çöp kutusunu da çözebilirsiniz, ancak bunun için zaten biraz çaba sarf etmeniz gerekiyor. Yani, varsayılan olarak, bir "çöp yığını" olduğu ortaya çıkmaz, orada bir şeyin miras alındığı ve miras alındığı başka sorunlar ortaya çıkar - genel olarak, bir anlamlı satır için, çok anlamlı olmayan on tane elde edilir. Öte yandan, belki böyle orta vasıflı bir programcı oldukça yüksek kaliteli bir kod yazabilir.
Neredeyse sona geldik. Bizde, ortaya çıkan bir sonraki şey .Net (ulaşacak), peki ve özellikle C # ile ilgileniyoruz (neredeyse aynı [öğretim görevlisi Java'yı işaret ediyor], yani ayrıntılarda farklılıklar var, eğer aralarından seçim yapın - nerede daha fazla para ödediğinizi görün).

Ve bir şey daha JavaScript. Aynı yıl ortaya çıkan Java diliyle hiçbir ilgisi yok - kelime modaydı, ticari markayı kullanmak için lisans verdiler.

Dikkat edilmesi gereken ana şey nedir? (Öğretim görevlisi C++'dan Java, .Net, C#, JavaScript ve PHP'ye oklar çizer). Bu dillerden birinde ve diğer birçok dilde basit bir program yazmak için - C++ biliyorsanız, genellikle başka bir şey bilmenize gerek yoktur - C++ ile alıp yazarsınız ve ardından başlangıçta dolar eklersiniz. , başka bir şey küçük şeyleri yapar ve sizin için herhangi bir şey üzerinde çalışmaya başlar (öğretim görevlisi C++ oklarının atandığı dilleri gösterir). Yani, bazı basit şeylerde son derece benzerler. Bazı okul problemlerini, eğitim görevlerini, başka bir şeyi çözerseniz (büyük bir proje tasarlamıyorsunuz - sayıları okuyan, konsolda sayıları görüntüleyen, başka bir şey yapan bir dosyanız var), o zaman bu diller arasında neredeyse hiçbir fark yoktur. JavaScript ve PHP'nin uzmanlaşmış olduğu açıktır, her şeye biraz farklı sahiptirler. Ve burada (öğretim görevlisi Java ve C#'yi işaret ediyor) genel olarak çok az fark var.

O zamandan beri, her türlü başka ilginç şey ortaya çıktı, ancak başarılı bir şekilde yaşayacaklar mı yoksa ölecekler mi belli değil. Şimdi ne kullanıyorlar, hangi görevler için?

Göreve bağlı olarak dil seçimi

Diyelim ki bir ekran kartı için bir sürücü yazma göreviyle karşı karşıyasınız. Bugün hangi dili kullanacaksınız? (İzleyicilerden haykırış: Java!) Neden ... Java harika, ama neden Ruby veya PHP olmasın? (Hoca alaycı bir şekilde konuşur.)

Düşük seviyeli programlama

Düşük seviyeli bir şey yazıyorsanız, o zaman C en iyi seçimdir, ancak aslında C++ bunun için kullanıldığını duydum (ama görmedim). Ancak buna pek inanmıyorum, çünkü C'de açıkça kontrol edebilirsiniz - çünkü çok fazla bayt bellek vermişsiniz, o zaman böyle olacak. Ve C++'da (STL), bir dize nasıl uygulanır? Eh, bir şekilde uygulandı. Ve sonunda orada nasıl ve ne olduğunu bilmiyoruz, belki ekran kartımızın hafızası tükenecek veya başka bir şey olacak. Bu nedenle, C hala yaşıyor ve ölmüyor, bu tür sistem programlama görevleri hala var - bir işletim sistemi yaz, sürücüler yaz, başka bir şey yaz - C bunun için harika. Ek olarak, artık pillerle çalışan her türlü cihaz var (Nesnelerin İnterneti gelmek üzere olduğunu vaat ediyor) (ve doğal olarak milyonlarca olacak, her şey bu Nesnelerin İnterneti ile asılacak), çok ucuz olmalı ve çok az elektrik tüketmelidirler. Buna göre 2 KB bellek, 5 kHz işlemci olacak, peki, yakın gelecekte bir tür sanal makineyi veya betik dilini vidalamak elbette işe yaramayacak, yani bir şeyler yazmanız gerekecek. C. Ve şimdi bile, örneğin, bir video kartındaki hesaplamalar (OpenCL veya başka bir teknoloji) - onlar için program yazmak için yeni bir dil bulamıyorlar - orada C'yi bazı büyük kısıtlamalarla yapıyorlar. İnsanlar nasıl yapılacağını zaten biliyor diye, neden yeni bir şey öğrenelim? Resmi olarak, bu muhtemelen bir anlamda, C'dir.

Web programlama

Diyelim ki yeni bir Facebook (sosyal ağ) yazmak istiyorsunuz. Bunu neye yazacaksınız? (İzleyicilerden HTML ve CSS'den bahsediyorlar.) HTML, CSS tasarımdır ve biz fotoğraf eklemek, arkadaşlar eklemek, yorum bırakmak istiyoruz.

Komut dosyası oluşturma kısmı için - yani, istemci tarafında ne olacak - bu JavaScript'tir. Ve bazen JavaScript başka bir dilde oluşturulur ve gönderilir (böylece komut dosyası oluşturulur ... çünkü bazen mantıktaki bazı değişiklikleri bu şekilde ele almak daha kolaydır).

Şaşırtıcı bir şekilde, PHP'de ve Facebook'ta ve diğer birçok büyük projede yazılmıştır. Tabii ki, hala iyi çalışması için kendi işlerimden bazılarını yazmak zorunda kaldım ve "tyap-blooper" yapıldığı gibi değil, ama yaptılar. Temel olarak, ne yazdığınızın pek bir önemi yok ama Perl'i tavsiye etmiyorum. Burada ve şimdi, elbette, hiç kimse web için sıfırdan bir şey yazmıyor. Herkes bir çeşit çerçeve falan yazıyor. Çevrimiçi alışveriş? Bir çevrimiçi mağaza için bir çerçeve indirdik - işte bu kadar, bir çevrimiçi mağaza yazdık.

İş programlama

Ardından, sıkıcı bir banka uygulaması yazmak istiyorsunuz. Veya örneğin sim kart satan biri var mı? Belki bir telefon ya da başka bir şey satın aldınız ve size "Sistem kilitleniyor, hiçbir şey yapamayız" dediler. Böyle bir uygulamayı neye yazacaksınız? (İzleyicilerden Python hakkında bir çığlık) Python'da böyle bir şey yazamazsınız, nesiniz?! Python'da iş için hiçbir şey yazmaya değmez. Niye ya? Çünkü Python'da bir şey yazdığınızda, yazma sürecinde önemli sayıda bug bulamazsınız. Python, mümkün olan her şekilde dinamik olarak yazılmıştır ve genel olarak orada bir hatayı gizleyebilirsiniz, böylece öyle bir durumda ortaya çıkar ki, bu çarpık kullanıcıların orada ne yaptığını bile anlayamazsınız, her şey sizin için bozulur. Yani, Python'da kendiniz için küçük komut dosyaları yazmak daha iyidir - orada neler olduğunu ve ne yapıldığını anlıyorsunuz. Pekala, ya da atmak üzücü olmayan bir şey: Rakiplerinizden önce bir şey ortaya çıkarmak istiyorsunuz, peki ya her seferinde kırılacaksa. Python'da yazdın ve hepsi bu - piyasayı devraldın. Ve uzun süre bir şey yazarsanız, örneğin bir tür bankacılık uygulaması (böylece kredileri onaylar, başka bir şey) - Java'da yazarsınız. Çünkü ciddi bir mesele, kağıt parçaları, para, belgeler, başka bir şey var, ama o kadar çok karıştıramazsınız ki her şey bozulacak, aksi takdirde insanlar rahatsız olacak - paraları gitti ve hiçbir yere ulaşmadı, dize bir sayıya dönüştüğü an veya tam tersi. Yani, metodik olarak Java'yı alıp yazmanız, yazmanız anlamına gelir ... Peki ya da on.Net, bu tür durumlar prensipte de olur. Elbette orada da sorunlarla karşılaşabilirsiniz, ancak yine de bunun olasılığı biraz daha düşüktür.

Ordu, havacılık için programlama

Şimdi sizi bir roketle aya göndermeye karar verdiklerini hayal edin. Roket motorlarını kontrol eden kodu yazmak için ne kullanmayı tercih edersin? Görelim. Bu, muhtemelen (öğretim görevlisi Perl, Python, PHP, Ruby'de gösterir), buna değmez - yavaşlar, başka bir şey oluyor, genel olarak, böyle bir roketle uçmayı kabul etmem. C++'da mı? Dürüst olmak gerekirse, ben de bana güvenmezdim çünkü C++'da kendinizi öldürmenin çok fazla yolu var. Uzayda bir yerdeyken, pek iyi değil.

Belki Java'da? Görünüşe göre orada her şey oldukça güvenilir ve mimari iyi, vahşi tipler yok, fazla bellek yok. Diyelim ki en kritik an geldi ve Java'mız bizim için çöp toplamaya karar verdi. İnmemiz gerekiyor, yavaşlıyoruz ve o "Hayır, çöp gidiyor" diyor. Genel olarak da çok iyi değil.

Dürüst olmak gerekirse, bu programın Pascal ile yazılmasını tercih ederim. Tabii ki, Pascal'ı gerçekten sevmiyorum, ama bir şekilde bu tür konularda çok havalı olurdu.

Yazılım geliştirme için aynı anda birkaç dil kullanmak

Peki, modern diller hakkında genel olarak söylenmesi gereken şey. Günümüzde birçok proje herhangi bir dilde yaşamıyor, yani bazıları bir dilde, bazıları başka bir dilde, bazıları da üçüncü bir dilde yaşıyor. Örneğin, çılgın miktarda bilgiyi işleyen bir tür web uygulamanız varsa, disklere erişim (veritabanlarına bile değil, o kadar büyüktür ki bir veritabanı bile önceden yazılmış olanı desteklemiyor) muhtemelen bazılarında daha sonra düşük olarak yazılmıştır. -level C, diske çılgınca hızlı yazmak ve tüm bunlar. Doğal olarak, tüm projeyi C ile yazmak buna değmez. Belki Java'da yazılmış ve hızlı aramalar için Cis işlevlerini çağıran bir tür ara mantık vardır. Pekala, ön uç (kullanıcının baktığı şey), elbette, bazı komut dosyalarında, doğrudan tarayıcı (JavaScript) tarafından yürütülen bir şeyde zaten yazılmıştır. Ve tüm bunlar birlikte yaşıyor ve başarılı bir şekilde etkileşime giriyor.

Bazı uygulamaların geliştirilmesinde, hatta büyük olanlar bile, bazen insanlar ne yapar? Python'da bir prototip alır ve yazarlar (her şeyin nasıl çalışacağı), eskiz yapar, bir tür mimari üzerinde düşünürler. Üzerine yazmak gerçekten çok hızlı - bir prototip attılar, denediler ve şöyle dediler: “Vay! Bu çok güzel!" Ve tamamen yeniden yazılmıştır. Görünüşe göre işi iki kez yaptılar, iki kat daha uzun sürdü (peki, bir buçuk). Ama hayır! Genellikle bu yöntemin kötü olmadığı ortaya çıkıyor, çünkü hemen bir şeye, örneğin Java'ya yazarsanız ve sonra karar verirseniz: "Hayır, yeniden düzenleyelim, mimariyi tamamen değiştirelim ve hepsini" - o zaman harcayacaksınız 10 kat daha fazla zaman... Böyle şeyler de var ve yaşıyor.

Herhangi bir programlama dilinin başarısı için koşullar

Şimdi de bazı güzel görünen dillerin neden hayatta kalmadığından veya çok sınırlı bir alanda yaşamadığından bahsedelim. Wirth, kötü şirketlerin Apple, Borland ve Pascal'ı ile yaptıklarını görünce, daha da iyi bir dil buldu - Oberon. Sadece çılgınca minimalistti - yani çok az komut vardı (Dizeler? Neden dizelere ihtiyacımız var? Bir dizi karakter yapacağız!). Şey, bir şey onun için mümkün olduğu ölçüde işe yaramadı.

Bir şey daha. ABD ordusu onlardan da her şeyin çalıştığı ve her şeyin yazılabileceği havalı bir dil geliştirmelerini istedi. Sonuç, Ada adında oldukça canavarca bir dildir, ancak yine de bir şeyler yazıyorlar, ama yine - sadece ordu için.

Sorun nedir? Neden başlangıçta hiçbir şirketin desteklemediği Python gibi bazı diller piyasayı ele geçirdi. Yine kötü tasarlanmış olan PHP de piyasayı (çoğu) kendi başına ele geçirmiş ve ele geçirmiştir. Ve her türlü milyarlarca dolar yatırıldı (öğretim görevlisi Ada'yı işaret ediyor) ve hiçbir yere gitmedi, hiçbir şey olmadı. Bunun nedeni nedir? Bunun nedeni bu dillerin etrafında bir altyapı olmamasıdır. Yani, dil mükemmel olabilir, ancak belge olmadığı sürece, soruları cevaplayabilecek bir topluluk olmadığı sürece (Stack Overflow'ta) ve son olarak, en önemlisi, çok sayıda olmadığı sürece kütüphanelerde, dil ateşlenmez. Yani, örneğin, Oberon'da bir web sitesi yazmak istediniz. Neden olmasın? Ve kafa karışıklığı başlar... Web sunucunuzu hafiften test etmek için Oberon'da yükseltemezsiniz, Oberon'da olmadığı için herhangi bir kitaplık bağlayamazsınız. Ve tüm bunlar bir çeşit koltuk değneği ile yapılır, kuvvetler gider ve genel olarak sitenizi Oberon yerine saf C ile tükürür ve yazarsınız. Ve diğer dillerden kütüphaneleri kullanabilen diller iyi yaşıyor. Yavaşladığı yerlerde aynı Python. Genel olarak, sıralama ve başka bir şey gibi her türlü standart şey C'de yazılmıştır ve o (Python) bunlarla nasıl etkileşime gireceğini bilir.

Java'nın ayrıca bir Java Yerel Arayüzü vardır. Bu aslında C'dir, yani orada (bence, her zaman yasaklamak istiyorlar, ama henüz yasaklamamışlar gibi görünüyor) bu diller mevcut kütüphanelerle (çoğunlukla Sishny olanlar) etkileşime girebilir. Ve bundan dolayı alırlar ve çalışırlar. Size aktarmaya çalıştığım fikir açık, değil mi? C kütüphanesine nasıl bağlanacağını bilmeyen dillerde yazmayınız. Güzel bir şeyin tadını çıkarmak istiyorsan. Eh, ve yavaş yavaş onlar (diller) kendi tür altyapılarıyla büyümüştür. Ve bir şekilde iyi yaşıyorlar.

Programlama dili ve kariyer rehberliği

Şimdi hayatta ne istediğinizi nasıl anlayacağınızdan bahsedelim. Güzel şeyler nelerdir? Bir çeşit sistem programlaması yapabilirsin, değil mi? Orada bu bisikletleri saymak harika, dörtlü helikopterleri, bazı kameraları ve yapacak başka bir şeyi fırlatmak istiyorsunuz. O zaman C muhtemelen sizin seçiminizdir.

Yazmak istiyorsanız, belki de hayattaki en ilginç uygulamalar değil, ama onları tasarlamanız, her şeyi düşünmeniz ve çoğu zaman oturmak ve sıkılmak için çok para kazanmak için harika (eğer bunun için para ödemeniz gerekiyorsa). yüksek kaliteli bayansınız), işte buradalar - Java, .Net. Bir bankada işe gidiyorsun, yazıyorsun, dokuzda beyaz bir gömlekle işe gidiyorsun, iyi bir maaş alıyorsun ve en iyi Java kaynaklarının tavsiyelerine göre yazıyorsun, .Net-koyun ve tüm bunlar ...

Herhangi bir uygulama, bazı tarayıcılar, bazı oyuncaklar, başka bir şey yazmak istiyorsanız, o zaman C ++ harika. Web siteleri yazmak istiyorsanız, işte buradalar, seçtiğiniz diller (öğretmen Perl, Python, PHP, Ruby'de gösteriyor), pek bir fark yok. Tek şey, PHP'nin Python'dan önce öleceğidir, bu yüzden yeni şeyler öğrenmek için tembelseniz Python'u öğrenin. Büyük bir fark görmeyeceksiniz, ancak daha uzun süre dayanacaksınız.

Ruby ile neler olup bittiği de belirsiz. Pekala, zaten öğrendiyseniz PHP'yi de yapabilirsiniz, çünkü o kadar basittirler ki orada yeniden öğrenmeniz çok uzun sürmez.

Ve son olarak, programlama dillerinin başka bir uygulama alanı daha var - bu, programcı olmayanların bunları kullandığı zamandır. Diyelim ki bir matematikçi, fizikçi, kimyager, analist, herhangi birisiniz ve hızlı bir şekilde bir şeyler hesaplamanız, bazı verileri analiz etmeniz gerekiyor (biyologlar için, örneğin, Komutan Adaları'nda kaç Arktik tilki yaşıyor). Tüm bunları Excel'de bir tabloya aktarabilir veya bir şeyle analiz edebilirsiniz. Python da bunun için uygundur, metinle nasıl çalışılacağını bilir ve kütüphaneler her türlü istatistiksel ve tüm bunlarla doludur. Bir tür Makine Öğrenimi yapmak istiyorsanız, bazı verileri işleyin, tahmin edin, o zaman bu da Python'da en hızlı şekilde yapılıyor. Ancak, görevlerin çok farklı olduğunu belirtmek gerekir. Örneğin, fiyatların sürekli değiştiği koşullarda borsada anında işlem yapmak istiyorsanız, Python'da ne kadar havalı Makine Öğrenimi yazarsanız yazın, bir şeye daha hızlı yazmış olan kişilerin her şeyi daha erken satın almak için zamanları olacaktır, Algoritmaları daha kötü olsa bile sayılacaksınız. Bu nedenle, bu makine öğrenimi görevleri bile (bazıları) yüksek performans (ve son derece yüksek) ve buna bağlı olarak başka diller gerektirir.

Ne istediğinizi bilmenin tek yolu her şeyi denemektir. Şimdi her şeyi nasıl deneyebileceğinize dair vizyonlardan biri olarak söyleyeceğim. Nasıl bir programcı ve mutlu biri olunur? Yani. Sıfırdan başlıyoruz. Burada okulda matematik, Rus dili ve diğer zorunlu ve seçmeli derslerinizi okuyorsunuz ve programlama alanındaki bilginiz şu anda tahtaya yansıyor (öğretim görevlisi boş bir tahtayı gösteriyor). Ve mutlu bir insan olmak, sevdiğiniz şeyi yapmak, çok para kazanmak ve kendinizi hiçbir şeyden mahrum etmemek ve mutlu olmak istiyorsunuz.

Bunu yapmanın bir yolu. Elbette, hiç üniversiteye gitmemiş ya da onları terk edip milyarder, şirket sahibi vb. olan insanlarla ilgili her türden ilham verici hikayeler var. Ancak, milyarder olamamış, ancak aynı zamanda iyi yaşayan çoğu insanın hala bir noktada üniversiteden mezun olduğuna dikkat edilmelidir.

Üniversiteye girişle ilgili durumumuz nedir (şu anda okulda okuyorsunuz)? Okuldayken, bir sonraki adımın kayıt olmak ve onunla ilgilenmek olduğunu anlamalısınız. Sınavı geç veya Olimpiyatı kazan. Sınavda Pascal, C ++ (saf C dahil), Python (bunlardan daha fazla bahsetmeyeceğim) kullanabilirsiniz. Olimpiyatta - aynı Pascal, aynı C ++, aynı Python (şimdi onun sorunları hakkında konuşacağız) ve çoğu zaman Java var. Olimpiyata bağlı olarak hala her şey olabilir, ama özü değil.

Dillerin dağılımının grafiği, Bilişimdeki Tüm Rusya Olimpiyatlarında neye benziyor? En havalı Olimpiyat olan Tüm Rusya'ya katılan insanlar, ne yazıyorlar? Şuna benziyor (burada Pascal anlamına geliyor ve burada yaklaşık 2000 ve burada yaklaşık sıfır, burada C ++ ve işte 2015).

2000 yılında neredeyse hiç kimse C++ yazmadı. On beş yıl sonra, Pascal'ın modern olmasına rağmen, neredeyse hiç kimse Pascal'da yazmıyor. Bu, hemen hemen her şeyi aynı şekilde yapabilen bir dildir. Sadece herkes bunu öğrenemeyecek kadar tembelleşti, her yeni trend ve herkes Borland Pascal'da yazmaya devam ediyor, ki bu elbette hiçbir şey yapamıyor. C++'da insanlar bazı sıralama algoritmaları (STL) yazarlar - harika, sort() yazdılar ve hepsi bu. Pascal'da, düzenli olarak, eskide - bu bir problem. Bazı setler yazdılar (gerekli) - harika, C ++ ile yazdılar, Pascal'da yine eziyet sürekli. Yeni Pascal'larda elbette bunu yapabilirsiniz, ancak aslında paraya mal oluyorlar. Fark etmemiş olabilirsin, ama öyle.

Java da var ama Java'da çok fazla harf var. Büyük projeler içindir, ancak küçük tek kullanımlık programlar için oldukça kötü olduğu ortaya çıkıyor, çünkü çok fazla ekstra harf var. Ama bazı insanlar da yazar, üzerine yazmayı öğrenebilirsiniz. Ancak Birleşik Devlet Sınavında, öyle değil ve Birleşik Devlet Sınavı'nın çoğunlukla geçilmesi gerekecek.

Sınav için en iyisi nedir? Sınav için (eğer hiçbir şey bilmiyorsanız ve okulda size hiçbir şey öğretmiyorlarsa) Python öğrenmek en iyisidir. Sınavın bazı görevleri üzerinde mükemmel bir şekilde çözülmüştür. Olimpiyatta genel olarak, Python çok yavaş olduğu için C ++ (kullanıldığı) ortaya çıktı, orada her şey çözülmedi.

Böylece, olimpiyatınızın diplomasını almak ve yüksek öğrenim görmek için üniversiteye gitmek için dilin bazı küçük alt kümelerini ve bazı algoritmaları (muhtemelen) incelediniz ve birçok sorunu çözdünüz.

Şimdi size EYO'da kursu nasıl oluşturduğumuzu, dillerin hangi sırayla olduğunu, Yandex ve benim yaptığımız Uygulamalı Bilimler Fakültesi'nde uygulamalı matematik ve bilgisayar bilimlerinde nasıl çalıştıklarını anlatacağım. İlk yarıyılda - Python (tam değil, okulda nasıl öğrenmeniz gerektiği hakkında) ve C ++ (daha geniş, genellikle okullarda öğretildiğinden çok daha geniş). Hemen söyleyelim ki korkmayasınız, birden girmek isterseniz deyin ki: “Niye, ben bunları zaten biliyorum, niye bir yerde okuyacağım? Başka bir yere gitmeyi tercih ederim." Nasıl programlanacağını zaten bilenler için, doğrudan algoritma çalışmalarına ve oldukça teorik bir eğitime geçme fırsatı var. Şimdi onlara bakmıyoruz, bu (tahtaya işaret ediyor) orta program yapanlar veya hiç programlamayanlar için.

İlk yarıyılda, Python'un temellerini incelerler, böylece insanlar programlamayı öğrenirler ve böylece kimse özellikle rahatsız olmaz. Python okullarda nadiren öğretilir, çoğunlukla insanlar Pascal veya C ++ bilgisi ile gelir. Temelde Pascal bile, eğer bir kitle okuluysa. Eh, kimse gücenmesin diye, herkes yeni bir dil öğreniyor (sanki eşit şartlardaymış gibi). Ve C++, çünkü C++'dan herhangi bir yere gidebilirsiniz.

Ardından "Algoritmalar" dersi ve ayrı bir ders projesi gelir. Uygulamalı klasik algoritmalar. Teoride bir şey aldığımızdan değil, karmaşıklığı hesapladığımızdan. Derste aldık, karmaşıklığı hesapladık, seminerde aldık, algoritmayı uyguladık. Bir proje, öğrencilerin bitmiş bir şey yapmasıyla ilgilidir. Örneğin projelerden biri şöyleydi: saymak ... Diyelim ki Moskova'da bir sürü daireniz var ve anlıyorsunuz: “Ah, bir sürü gereksiz şeyim var, birazını kiralayacağım. Ve bir fiyat belirlediler ve kimse sizden bir daire kiralamak istemiyor - muhtemelen çok pahalı. Ya da bir çeşit fiyat koyarlar, hemen çıkarırlar ve “Aa, herhalde ucuza kaçırmışımdır” dersiniz ve siz de üzülürsünüz. Yani, bir daire kiralamanın ne kadara mal olduğunu hesaplamak gerekli miydi? Verilerde sürüş yaparsınız - sizin için bir tahmin oluşturur. Birkaç şeyden oluşan böyle bir site: öneriler alın, ayrıştırın, bir tür makine öğrenme algoritması uygulayın (muhtemelen) iddiasız ve içinde bir şey seçebileceğiniz, bir şeyler sürebileceğiniz, birkaç metre, herhangi bir sayıda odaya güzel bir web yüzü yapın. , sauna sayısı, dairenizdeki jakuzi sayısı ve kabaca maliyetini tahmin edin. Yani, bir tür bitmiş, çok karmaşık olmayan bir şey. Burada konsol G / Ç ile böyle güçlü bir C ++ (öğretim görevlisi algoritmalar hakkındaki kursu işaret eder) anlamına gelir. Pekala, burada (öğretim görevlisi "proje" yazısına işaret eder) bir akıl hocasının rehberliğinde, muhtemelen veritabanlarıyla, belki metinlerin ayrıştırılmasıyla ve başka bir şeyle ilgili bir şeydir.
Ardından üçüncü dönem gelir - "Bilgisayar Sistemleri" adlı bir ders. Anlamak için oldukça fazla bir derleyici var (çok az) ve daha sonra, saf C'ye ve işletim sistemleriyle etkileşime, özünde sistem programlamaya benzer bir şey var. Ve bir seminer projesi aynı zamanda tüm ağ etkileşimleri konusunda oldukça düşük seviyeli bir şeydir: bazı yardımcı programlar geliştirin, örneğin rsync (senkronizasyon, belki bilirsiniz. Saf C'de aşağı yukarı bir rsync analogu yazın, tüm dosya erişimlerine sahip ağ senkronizasyon klasörlerine sahip olacaksınız, vb.).

Ve son olarak, dördüncü. Buna ne diyeceğimi bile bilmiyorum, bu, örneğin web geliştirme gibi gerçek geliştirme için gerekli teknolojilerin bir salata sosu. Yani bu, veritabanlarının pratik bir uygulamasıdır, yine projede yapılana benzer bir şeydir (öğretim görevlisi 2. yıl projesine işaret eder), ancak daha derinlemesine. Yani, az çok somut şeyler zaten pratik programlamadır. Buna paralel olarak, herhangi bir teori var, işte burada da bilimle uğraşıyorlar.

Ve iki dersten sonra, insanlar ilgi duydukları şeyi yapmak için dağılırlar, çünkü bu şey bu tür programlama temellerini oldukça geniş bir şekilde kapsar ve bu noktada insanlar zaten bilgisayar sistemleriyle uğraşmak istemediklerini zaten anlamışlardır (örneğin, yaptılar). sistem programlama gibi değil), ancak bazı teorik algoritmalar, hesaplama zorluğu, bazı yeni şeyler bulma, dağıtılmış veya başka bir şeyle uğraşmak istiyorlar. Ya da tam tersine, burada çok fazla şey olmadığını düşünüyorlar ( öğretim görevlisi Python ve C ++ ile ilk ders satırına işaret ediyor) o zaman git ( öğretim görevlisi, sistem programlama ile üçüncü bir kurs hattına işaret ediyor) - beğenmediğiniz gibi, baytları sayın ve okuma-yazma, akışlar, iş parçacıkları ve başka şeyler için her türlü kısıtlamayı ayarlayın. Ve buna göre insanlar bir yön seçer ve öğrenirler. Yani, prensipte, "ördek yavrusu sendromu" geliştirmemeniz için - önce Pascal'ınızı gördünüz ve şimdi "Pascal güçtür" diyorsunuz; veya daha ileri düzeyde - C++ gördünüz ve herkes hakkında C++'ın güçlü olduğunu ve diğer her şeyin çok iyi olmadığını söylemeye başladınız.

Burada buna daha geniş bakmamız gerekiyor (öğretim görevlisi karatahtadaki dersler listesine işaret ediyor) - bu, özellikle EYO'da seçilen yöntemlerden biri (son zamanlarda ortaya çıktı, bu yüzden oldukça modern). Birbirinizi tanımanın başka yolları da var. Diğer iyi üniversitelerde ise biraz farklı bir sıra ve diğer aksanlar yer almaktadır. Ama aynı zamanda insanları sahip oldukları her şeyle tanıştırmaya çalışırlar.

Bir programcı nasıl iş arar?

Sen busun ( öğretim görevlisi dersler listesine işaret eder) her şeyi yaptı, üniversitede okudu, iki yıl daha verimli bir şey okudu ve işe gitmen gerekiyor. Çalışmak için bir şeyi nasıl seçersiniz? Önce her şeyi bilmelisin, derinlere indin ve neyi sevdiğini zaten biliyorsun. Doğal olarak neyi sevdiğinizi seçmelisiniz. Çünkü seversen enerji harcarsın, motivasyonun olur ve genel olarak her şey yoluna girer. Çünkü mesele sadece parayla ilgili değil, onu sizin için ilginç ve keyifli kılmakla ilgili. Peki, ve havalı bir şirkete girmek istiyorsan, bir iş bul. Kişisel olarak nasıl bir insan görmek isterim? Örneğin, yüz öğrenci bana geliyor - işe iki veya bir tane almam gerekiyor. Neden geliyorlar, kim olduklarını, ne olduklarını, nasıl olduklarını hiç anlamıyorum? En iyi ihtimalle bana üniversitede aldıkları diplomayı gösterecekler ve ben de “Vay be! Bu harika bir diploma, ama bu o kadar da havalı değil!" Ve bu arada yanılıyor olabilirim. Belki de kişinin çok fazla boş zamanı vardı ve çok daha iyi öğrendi.

Ne harika olurdu? İlk olarak, baştan sona yazdığınız bazı açık kaynaklı projeler. Verilerin hızlı bir şekilde okunabilmesi için bir tür altyapı yapıyorsam veya başka bir şey yapıyorsam, o zaman elbette bana açık kaynak kodlu bir şey yazmakla ilgilenirim. Yapılmış bir web sitesi değil, konuyla ilgili bir şey. Neden bununla ilgileniyorum? Koduna bakabilirim, ne sıklıkta taahhütte bulunduğunu görebilirim, kullanıcılardan gelen hatalara nasıl tepki verdiğini görebilirim, onu kullanan geliştiricilerin hatalarına nasıl tepki verdiğini görebiliyorum - her şey yazılı, her şeye bakıyorum ve düşünüyorum: “Vay, bu hata iki yıldır gelmedi. kapalı burada kullanıcıya kabaca cevap verdin, o zaman başka bir şey almam ”. Yani, bu sizin kişisel projeniz.

Sonra, başka ne harika olurdu? Takım çalışmasını nasıl yaptığınızı görmek isterim. Yani, bir röportaj için bana geliyorsunuz ve şöyle diyorsunuz: “Üniversiteden arkadaşlar ve ben iyi bir başvuru yaptık. Orada bir veritabanı yapıyordum, bir tür mobil uygulama yapıyorlardı ve orada çalışan bir adam vardı, bir kız-tasarımcı, bir erkek teknik destek. Beş kişiydik ve harika bir proje yaptık." Peki, gerçekten projenizin ne olduğunu anlıyorum, diyorum ki: "Seninki nedir?" Koda tekrar bakıyorum ve insanlarla bir ekipte nasıl çalışılacağını bildiğinizi anlıyorum.

Bir programcı, garajda tek başına (indie gibi) ışıklar kapalı bir yerde oturan, kimseyle konuşmayan, sakalı büyümüş ve yazan kişi değildir. Aynı şekilde, insanlarla bir tür etkileşim var. Örneğin, bazen size küfür edebilecek bir patronla (patronlar öyledir, her zaman kibar değildir). İnsanlarla nasıl çalışılacağını bildiğinizi görüyorum ve iyi bir ekibiniz varsa bu beni mutlu ediyor. İyi olmasa bile, olmamasından iyidir.

Kişisel olarak başka ne isterim? Kendinizi büyük projelerde gösterdiyseniz. Örneğin, Linux çekirdeğine bir şey adadık, sistem programlama yapıyorsanız, bazı hataları düzelttik. Yani, başka birinin kodunu okuyabileceğinizi ve üzerinde bazı değişiklikler yapabileceğinizi gösterdiler. Bakıyorum: "Ah, gerçekten, karmaşık bir şey buldun ve bazı hataları düzelttin!" Ve bundan çok mutlu olmaya başlıyorum. Çünkü ben... şey, bilmiyorum... rakiplerim ona daha yüksek maaş teklif ettiği için programcım istifa etti ve acilen birini susturmam gerekiyor - sizi. Sadece sıfırdan yazmışsın gibi görünüyor ama başkasının kodunu nasıl okuyup düzenleyeceğinizi bilmiyorsunuz ve üzülüyorum.

Ve son olarak, belirli pozisyona bağlı olarak, çeşitli başka şeyler de vardır. Eğer bir iş analisti iseniz, Kaggle üzerinde veri analizi görevlerini çözmenizi istiyorum. Algoritmik şeylerde iş bulursanız, spor programcılığında bazı algoritmalar yapmanızı isterim. Ve son olarak, mesleği düşündüyseniz, röportajların nasıl yapıldığını bir okuyun, oradaki bazı kişilerin büyük memnuniyetsizlik ifade ettiğini görmüşsünüzdür: “Geldim ve bana hobimin ne olduğunu soruyorlar. Baykuş gibi oturuyorum ve cevap vermiyorum çünkü hobim yok ”- ve bunu İK'ların yaptığını düşünüyorlar. Aslında, ne kadar arkadaş canlısı ve uygun olduğunuzu anlamaya çalışıyorlar. Düşmanca ve yetersizseniz, ne kadar dahi ve işkolik olursanız olun, büyük bilgi birikimine sahip zorlu bir uzman olursanız olun, ekibin sizinle çalışması zor olacak ve projeyi tek başınıza çekmeyeceksiniz. Ayrıca esneseniz bile şirket için nasıl bir yük olduğunu hayal edebilirsiniz. Ve yarın gelip "Maaşımı 10 kat artır, yoksa seni bırakırım" diyeceğini. Anlaşılacağı gibi, şirketler bu duruma girmek istemiyorlar. Bu nedenle, kendi içinde yeterliliğin ve iyi niyetin yetiştirilmesi, (en azından) bir tür mesleki becerinin geliştirilmesi kadar önemlidir.

Özetlemek gerekirse, ne söyleyebilirsiniz? Hangi diller iyi, hangileri kötü? Peki, bir grup dil ​​içinde, örneğin Ruby, Python ve PHP arasında hangisini seçmeli? Tabii ki, doğru cevap Python'dur, ancak aslında aralarındaki fark izin verilen hata sayısında, başka bir şeyin miktarındadır - %5, peki, belki %10. Yani, zaten PHP ile yazılmış bir projeniz varsa, aklı başında hiç kimse "Her şeyi Python'da yeniden yazalım" demez. Şöyle diyecekler: "Daha fazla PHP geliştiricisi tutalım ve PHP'de yazmaya devam edelim." Harika, bu kötü bir seçim değil. Aniden bir proje yazmaya başlarsanız, şimdi Python'u seçmeniz akıllıca olabilir. Bununla birlikte, aynı zamanda bağlıdır. Belki piyasada bir sürü ucuz PHP geliştiriciniz vardır, ancak python geliştiricileri pahalıdır ve "Evet, teknoloji daha havalı, ancak hazır geliştiricilerden tasarruf edeceğim" diye düşünürsünüz. Ve hepsi bu, harika, zaten gelip orada çalışıyorsun.
Java ve C++ arasında nasıl seçim yapabilirim? Evet, aynı şey olur. Yeni bir büyük projeye hangi dilde başlayacağınıza karar verdiğinizde, profesyonel alanınızda bilgi sahibi olacağınızı ve doğru seçimi yapabileceğinizi düşünüyorum. Şu anda, henüz bu seçimi yapmak zorunda değilsin ve bu yüzden sana istediğini yapmanı tavsiye ediyorum.

Temel bilgiler, daha önce de söylediğim gibi, programlamanın çok, çok temelleri (işlev nedir, if'ler, for'lar, diziler, başka bir şey nedir) herhangi bir dilde az çok öğrenilebilir. Örneğin, C ++ 'da, çünkü birçok şeye benziyor ve içindeki özellikler (bu düzeyde) en az ve harfler gereksiz yazmak için en az. Peki, o zaman, bazı karmaşık mimari şeyler öğrendiğinde, bunun hakkında çok fazla şey öğren ve endişelen. Yani, asıl mesele - deneyin, neyi sevdiğinizi arayın ve zaten sabahın 4'ü olduğunu fark ettiğinizde ve eğlenmek için oturup sevdiğiniz için yazdığınızda - muhtemelen şu andadır. senin bulduğun...

Programlama, bilgisayar programları oluşturmanıza izin veren bütün bir bilimdir. Tek bir programlama dili oluşturan çok sayıda farklı işlem ve algoritma içerir. Peki nedir ve farklı programlama dilleri nelerdir? Makale, yanıtların yanı sıra programlama dillerinin genel bir listesini sağlar.

Program dillerinin ortaya çıkış ve değişim tarihi, bilgisayar teknolojisinin gelişim tarihi ile birlikte incelenmelidir, çünkü bu kavramlar doğrudan ilişkilidir. Programlama dilleri olmadan, bir bilgisayarın çalışması için herhangi bir program oluşturmak imkansız olurdu, bu da bilgisayarların yaratılmasının anlamsız bir alıştırma olacağı anlamına gelir.

İlk makine dili 1941 yılında analitik motorun mucidi Konrad Zuse tarafından icat edildi. Kısa bir süre sonra, 1943'te Howard Aiken, makine kodu düzeyinde talimatları okuyabilen Mark 1 makinesini yarattı.

1950'lerde, yazılım geliştirme için aktif bir talep vardı ve makine dili büyük miktarda kodu kaldıramadı, bu nedenle bilgisayarlarla iletişim kurmanın yeni bir yolu yaratıldı. Assembler, makine talimatlarının yerini alan ilk anımsatıcı dildir. Yıllar geçtikçe, programlama dillerinin listesi sadece büyüyor, çünkü bilgisayar teknolojilerinin uygulama alanı genişliyor.

Programlama dillerinin sınıflandırılması

Şu anda 300'den fazla programlama dili var. Her birinin kendine has özellikleri vardır ve belirli bir görev için uygundur. Tüm programlama dilleri kabaca birkaç gruba ayrılabilir:

  • Görünüm odaklı (ana fikir, yazılım modüllerinin verimliliğini artırmak için işlevselliğin ayrılmasıdır).
  • Yapısal (bireysel program bloklarının hiyerarşik bir yapısını oluşturma fikrine dayanarak).
  • Mantıksal (matematiksel mantık aygıtı teorisine ve çözümleme kurallarına dayanır).
  • Nesne yönelimli (bu tür programlamada algoritmalar değil, belirli bir sınıfa ait nesneler kullanılır).
  • Çoklu paradigma (birkaç paradigmayı birleştirin ve programcı belirli bir durumda hangi dili kullanacağına kendisi karar verir).
  • İşlevsel (ana öğeler, ilk verilerin hesaplama sonuçlarına bağlı olarak değeri değiştiren işlevlerdir).

Yeni başlayanlar için programlama

Birçok kişi şu soruyu soruyor: Programlama nedir? Temel olarak, bir bilgisayarla iletişim kurmanın bir yoludur. Programlama dilleri sayesinde, özel uygulamalar veya programlar oluşturarak çeşitli cihazlar için belirli görevler belirleyebiliriz. İlk aşamada bu bilimi incelerken en önemli şey uygun (sizin için ilginç) programlama dillerini seçmektir. Başlangıç ​​listesi aşağıdadır:

  • Basic 1964 yılında icat edilmiştir, üst düzey diller ailesine aittir ve uygulama programları yazmak için kullanılır.
  • Python ("Python"), basit, okunabilir sözdizimi nedeniyle öğrenmesi oldukça kolaydır, ancak avantajı, hem normal masaüstü programları hem de web uygulamaları oluşturmak için kullanılabilmesidir.
  • Pascal ("Pascal") - öğrencilere öğretmek için oluşturulan en eski dillerden biri (1969). Modern modifikasyonu güçlü bir şekilde yazılmış ve yapılandırılmıştır, ancak Pascal sezgisel bir düzeyde anlaşılabilir olan oldukça mantıklı bir dildir.

Bu, yeni başlayanlar için tam bir programlama dilleri listesi değildir. Anlaşılması gereken ve önümüzdeki yıllarda kesinlikle talep görecek çok sayıda sözdizimi var. Herkesin kendisi için ilginç olacak yönü bağımsız olarak seçme hakkı vardır.

Yeni başlayanlar, özel araçlar sayesinde programlamanın ve temellerinin öğrenilmesini hızlandırma fırsatına sahiptir. Ana asistan, programlar ve uygulamalar için entegre geliştirme ortamıdır Visual Basic ("Visual Basic" aynı zamanda 1970'lerin Temel dilinin stilini miras alan bir programlama dilidir).

Programlama dili seviyeleri

Bilgisayarlarda problem çözmek için programlar ve algoritmalar oluşturmak, tanımlamak için tasarlanmış tüm resmi diller iki ana kategoriye ayrılır: düşük seviyeli programlama dilleri (liste aşağıda verilmiştir) ve üst seviye olanlar. Her biri hakkında ayrı ayrı konuşalım.

Düşük seviyeli diller, işlemciler için makine talimatları oluşturmak üzere tasarlanmıştır. Başlıca avantajları, anımsatıcı notasyon kullanmalarıdır, yani (ikili sayı sisteminden gelen) sıfırlar ve birler dizisi yerine, bilgisayar İngilizce dilinden anlamlı bir kısaltılmış kelimeyi hatırlar. En ünlü düşük seviyeli diller "Assembler" (bu dilin her biri çok ortak noktası olan, ancak yalnızca bir dizi ek yönerge ve makroda farklılık gösteren birkaç alt türü vardır), CIL (.Net'te mevcuttur). platformu) ve JAVA Bytecode.

Üst düzey programlama dilleri: bir liste

Yüksek seviyeli diller, uygulamaların rahatlığı ve verimliliği için tasarlanmıştır; düşük seviyeli dillerin tam tersidir. Ayırt edici özelliği, programların yapılarını ve algoritmalarını kısa ve öz bir şekilde tanımlayan anlamsal yapıların varlığıdır. Düşük seviyeli dillerde, makine kodundaki açıklamaları çok uzun ve anlaşılmaz olurdu. Üst düzey diller platformdan bağımsızdır. Bunun yerine derleyiciler bir çevirmen işlevini yerine getirirler: program metnini temel makine talimatlarına çevirirler.

Aşağıdaki programlama dilleri listesi: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - en çok kullanılan üst düzey sözdizimleri arasındadır. Aşağıdaki özelliklere sahiptir: bu diller karmaşık yapılarla çalışır, bilgi I / O dosyaları ile dize veri türlerini ve işlemleri destekler ve ayrıca okunabilirlik ve net sözdizimi nedeniyle çalışmak çok daha kolay olma avantajına sahiptir.

En çok kullanılan programlama dilleri

Temel olarak, herhangi bir dilde bir program yazabilirsiniz. Soru şu ki, verimli ve sorunsuz çalışacak mı? Bu nedenle çeşitli problemlerin çözümü için en uygun programlama dilleri seçilmelidir. Popülerliğe göre liste aşağıdaki gibi karakterize edilebilir:

  • OOP dilleri: Java, C ++, Python, PHP, VisualBasic ve JavaScript;
  • bir grup yapısal dil: Basic, Fortran ve Pascal;
  • çoklu paradigma: C#, Delphi, Curry ve Scala.

Programların ve uygulamaların kapsamı

Bu veya bu programın yazıldığı dilin seçimi, büyük ölçüde uygulama alanına bağlıdır. Bu nedenle, örneğin, bilgisayarın kendisinin "donanımı" ile çalışmak (sürücüler ve destekleyici programlar yazmak), en iyi seçenek, ana programlama dillerinde bulunan C ("C") veya C ++ olacaktır. (yukarıdaki listeye bakın). Ve oyunlar da dahil olmak üzere mobil uygulamaların geliştirilmesi için Java veya C # ("C-Sharp") seçmelisiniz.

Hangi yönde çalışacağınıza henüz karar vermediyseniz, C veya C++ dillerinden öğrenmeye başlamanızı öneririz. Çok net bir sözdizimine, sınıflara ve işlevlere net bir yapısal bölünmeye sahiptirler. Ayrıca, C veya C ++ bilerek, diğer herhangi bir programlama dilini kolayca öğrenebilirsiniz.

Recoursia kullanıcıları genellikle hangi programlama dilinin öğrenmeye değer olduğunu merak eder. İlk programlama diline kendini kaptıranlar için kısa bir rehber hazırladık. Kapsamlı gibi görünmediğini belirtmek isteriz - bu, geliştiricilerin bugün ne yaptığına ve hangi programlama dilinin ilk olabileceğine ve hangisinin olmadığına dair çok kısa bir bakış.

Diğer şeylerin yanı sıra Belarus işgücü piyasasındaki oldukça popüler Web programlama dillerinden biri, anadili İngilizce olan kişiye her zaman en yüksek maaşlı işi sağlayamıyor. Ruby kursları, ilk programlama dilinde uzmanlaşmak için çalışmaya değmez, çünkü yüksek bir olasılıkla bir işveren arayışı ertelenecektir, çünkü Ruby'deki gençlerin boş pozisyonları oldukça nadir görülür.

Beş ila yedi yıl önce, standart ilk programlama dili Delphi idi - elbette, çünkü Delphi'nin öncülü olan Pascal dili, okul çocuklarına ve öğrencilere programlama öğretmek için icat edildi. Ancak gerçek yaşam için Delphi zaten çok uygun değil, çünkü içinde programlama ortalamanın çok altında ödeniyor ve bu dilde yeni büyük projeler bulamazsınız. Bu nedenle tavsiye

Bilgisayar teknolojisinin gelişimi durmadığından, yöntemler ve programlama dilleri sürekli olarak geliştirilmektedir. Modern bilgisayar alanında hangi dillerin bulunduğunu ve bunların sınıflandırılmasını düşünün.

Genel bilgi

Programlama dillerinin listesi o kadar geniş ve çeşitlidir ki, onu tamamen ortaya koymak neredeyse imkansız bir iştir. Tüm diller arasında üç ana alt grup ayırt edilebilir:

  • makine (düşük seviyeli programlama dilleri);
  • makine odaklı (montajcılar);
  • makineden bağımsız (yüksek seviye);

Modern yazılım geliştiricileri arasında aşağıdaki ana programlama dilleri en popüler olanlardır. Liste, azalan popülerlik sırasına göre gösterilir:

  1. Java.
  2. HTML.
  3. Visual Basic.
  4. Delfi.

Bu programlama dilleri listesi tam olmaktan uzaktır, ancak bunlar bir programcının bir işe başvururken bilmesi gerekebilecek en popüler dillerdir. Hepsi üst düzey programlama dilleridir.

Programlamanın temelleri

Düşük seviyeli programlama dilleri, işlemcinin türü ve yeteneklerinin dikkate alınmasını gerektiren dillerdir. Bu tür programlama dillerinin operatörleri ve çalışma yöntemleri, makine koduna yeterince yakındır, kişisel bir bilgisayarın belleği ve işlemcinin ona nasıl eriştiği hakkında bilgi gerektirir.

Çeşitli düşük seviyeli programlama dillerini adlandırmak zordur. Liste yine de tek bir baskın dile indirgenecek - derleme. Program kodlarını makine koduna yakın gösterimde oluşturmanıza izin verdiği için, birleştirici yalnızca işletim sistemleri, aygıt sürücüleri gibi sistem yazılımlarını yazarken ve mikro devrelerin kontrol kodlarını programlarken kullanılır.

Bu tür programlama dillerinin dezavantajı, içlerindeki programların belirli bir cihazda belirli görevleri yerine getirmek için yazılması ve başka bir işlemciye aktarılırsa yürütülmesinin imkansız olmasıdır.

Uygulama geliştirme

Özel uygulamalar oluşturmak ve ayrıca özel yazılımlar geliştirmek ve uygulamak için programlama dillerinin listesi binlerce pozisyona sahiptir. Tahmin edebileceğiniz gibi, böyle bir çeşitlilik, belirli bir dilin belirli sorunları çözmek için uygun olmasından kaynaklanmaktadır.

Bu programlama dilleri ayrı bir grupta tanımlanmış olmasına rağmen bunların yürütülmesi makine kodunda gerçekleşir. Bitmiş programı satır satır yürütmek ve özel programlara çevirmek için kullanılır - tercümanlar. Program kodunun bir dilden başka bir dile çevrilmesi komutlar çalıştırılmadan yapılıyorsa bu işlem derleyici programlar tarafından yapılır. Genel olarak, yazılı programları bir resmi programlama dilinden diğerine çevirmek için tasarlanmış programlara çevirmen denir.

Üst düzey programlama dillerine daha yakından bakalım. Bir liste yapmayacağız, sadece en popüler olanların her biri hakkında biraz daha ayrıntı yazacağız.

SQL

Özel bir programlama dili, öncelikle veritabanı yönetim sistemleri ve bunların programlanmasıyla çalışmak için tasarlanmıştır. SQL, "uzmanlaşmış" anlamına gelir. Veritabanı pazarı son yıllarda katlanarak büyüdüğü için, bu dilin popülaritesi şaşırtıcı olmamalıdır.

Bu dilin geleceği ile ilgili çeşitli görüşler vardır. İlişkisel veritabanları oluşturma teknolojisinin en iyi durumda olduğuna açık bir şekilde inanılıyor, ancak zamanı azalıyor. Artan işlenen veri hacmiyle bağlantılı olarak geliştirme ihtiyacı, uzmanları, gelecekte insanlığın basitçe ilişkisel teknolojilerden ilişki sonrası teknolojilere geçişe ihtiyaç duyduğu, ancak mevcut veri bankalarıyla uyumluluğun korunmasını hesaba kattığı fikrine yönlendiriyor.

Javascript

Üst düzey programlama dilleri arasında haklı olarak ikinci sırada yer almaktadır. Öğrenmesi kolay, kullanımı kolay. Progenitöre kıyasla programlamaya artan adaptasyon, dünya çapında milyonlarca insanın bu dille çalışmasına yol açar. Özelleştirilmiş ortamlarda büyük bilgi akışlarını idare edebilen ve hazır bir ortamın uygulanması için ortamın özelliklerini dikkate alan programların ve uygulamaların oluşturulmasına uyarlanmış, C ++ tabanlı nesne yönelimli bir dil.

Java teknolojisi, çeşitli kalibrelerdeki sistemleri birbirine bağlayabilen, Wi-fi üzerinden bir telefon ağına bağlanmak ve süper bilgisayarlarla bitmek üzere, işletmelerin ve şirketlerin altyapısında sınırsız bir artışa izin veren temeldir.

XML

HTML'nin soyundan gelen bu teknoloji, genişletilebilir bir biçimlendirme dilidir. Belgelerin yorumlanması için uyarlanmıştır. Belgelerin en karmaşık dönüşümleri ve değişiklikleri üzerinde gerçekleştirilir. XML, İnternet üzerinden çeşitli ilişkisel veritabanlarıyla çalışırken verileri aktarmak ve geçici olarak depolamak için kullanılır.

XML, kurumsal ağlar oluşturmak için temel teknoloji olduğunu iddia edebileceği noktaya çoktan ulaştı.

Rusça programlıyoruz

Popüler programlama dillerinin çoğu İngilizce kelime hazinesi kullanır. Ancak bunların yanında Rusça programlama dilleri de vardır. Rusça liste küçüktür ve kullanıldıkları konu alanı çok özeldir. İşte bazı örnekler.

  • 1C: Kurumsal. Bir organizasyonu tüm faaliyet alanlarında yönetmek için tasarlanmış bütün bir sistem. Çalışan arama reklamlarında oldukça sık "1C Programcısı" bulabilirsiniz.
  • Fiil. İngilizce konuşan Pascal'ın analogu.
  • Robik. Çocuklara programlamanın temellerini öğretmek için tasarlanmış özel bir programlama dili.
  • meç. Prosedür tabanlı bir dil.

Görüldüğü gibi programlama dilleri listesi o kadar geniş ve çeşitlidir ki, herhangi bir sınıflandırma ve liste ile kapsaması mümkün değildir. Programlamaya amatör veya profesyonel düzeyde başlamaya karar verirseniz, programcının yalnızca bilgi değil, aynı zamanda fantezi, hayal gücü, sezgi ve hatta biraz şans gerektiren yaratıcı bir meslek olduğunu unutmayın.

Programcıların dünyanın en yüksek ücretli profesyonellerinden biri olduğu bir sır değil. Rusya bir istisna değildir. İyi programcılar burada da takdir edilmektedir. Ve hızlı büyüyen ve kazançlı bir kariyerle ilgileniyorsanız, öğrenmek ve bilgisayar programcısı olmak isteyebilirsiniz.

Bu seçimde size yardımcı olmak için çeşitli iş arama sitelerinden veriler topladım. Bu tam bir liste olmasa da, en çok talep gören programlama dilleri (işverenler tarafından aranan) hakkında fikir veriyor.

2016'nın en çok talep gören 9 programlama dili

Hemen hemen her yerde ve geniş bir yelpazede kullanıldığı için SQL'in listenin başında olması şaşırtıcı değil. MySQL, PostgreSQL ve Microsoft SQL gibi veritabanı teknolojileri, büyük ve küçük işletmeler, hastaneler, bankalar, üniversiteler vb. sunucularda kullanılmaktadır. Gerçekten de, veritabanı erişimi olan hemen hemen her bilgisayar ve kişi nihayetinde SQL ile ilgilidir. Örneğin, tüm Android telefonlar ve iPhone'ların SQLite adlı bir SQL veritabanına erişimi vardır ve Google, Skype ve Dropbox tarafından geliştirilen birçok mobil uygulama bunu doğrudan kullanır.

  1. Java

Teknoloji topluluğu kısa süre önce Java'nın 20. yıl dönümünü kutladı. Yaklaşık 9 milyon geliştirici tarafından kullanılan ve dünya çapında 7 milyar cihazda çalışan, en yaygın olarak benimsenen programlama dillerinden biridir. Tüm yerel Android uygulamalarını geliştirmek için kullanılan programlama dilidir. Java geliştiricilerinin popülaritesi, dilin eski uygulamaların şimdi ve gelecekte çalışmaya devam etmesini sağlayan uzun vadeli uyumluluğa sahip olmasından kaynaklanmaktadır. Tek zorluk, bu dili öğrenmenin özellikle yeni başlayanlar için oldukça zor olmasıdır.

JavaScript, en popüler ve güçlü programlama dillerinden bir diğeridir ve web sayfalarını hayata geçirerek onları etkileşimli hale getirmek için kullanılır. Örneğin JavaScript, web sayfalarına efektler eklemek, açılır mesajları görüntülemek veya temel işlevlere sahip oyunlar oluşturmak için kullanılabilir. JavaScript'in, Internet Explorer, FireFox ve Safari de dahil olmak üzere varsayılan olarak tüm büyük web tarayıcılarında yerleşik olarak bulunan World Wide Web'in komut dosyası dili olduğunu da belirtmekte fayda var. Hemen hemen her site, JavaScript geliştiricilerine olan talebi artıran bazı JavaScript öğeleri içerir. Son yıllarda JavaScript, diğer şeylerin yanı sıra gerçek zamanlı iletişim sağlayan sunucu tarafı bir teknoloji olan Node.js'nin temeli olarak da kullanılmaya başlandı.

C# (C-Sharp olarak telaffuz edilir), Microsoft tarafından .NET Framework üzerinde çalışan çok çeşitli kurumsal uygulamalar için geliştirilmiş nispeten yeni bir programlama dilidir. C ve C++'ın evrimi, C# basit, modern, güvenli ve nesne yönelimlidir.

C ++ (telaffuz C-plus-plus), "C" diline dayanan genel amaçlı bir nesne yönelimli programlama dilidir. Bjorn Stroustrup tarafından Bell Laboratuarlarında geliştirilen C++ ilk olarak 1983 yılında piyasaya sürüldü. Stroustrup, C ++ uygulamalarının kapsamlı bir listesini tutar. Liste, Adobe ve Microsoft uygulamalarını, MongoDB veritabanlarını, çoğu Mac OS/X'i içerir ve "twitch" oyun geliştirme veya ses/video işleme gibi görev açısından kritik uygulamaların performansını öğrenmek için en iyi dildir.

Python, adını "Monty Python"dan alan genel amaçlı bir programlama dilidir. Python basit ve okunması kolaydır (İngilizce bilenler için). Yeni başlayanlar ve deneyimli profesyoneller için harika bir dildir. Python için birçok programlama kursu vardır, 10 bilgisayar bilimi bölümünden 8'i Python ile kodlamayı öğretir. Python dilinin eğitimde kullanılmasından dolayı matematik, fizik, doğal işleme vb. ile ilgili Python için oluşturulmuş birçok kütüphane bulunmaktadır.

Danimarkalı-Kanadalı programcı Rasmus Lerdorf tarafından 1994 yılında oluşturulan PHP, yeni bir programlama dili olarak tasarlanmamıştı. Bunun yerine, yaratıcısının kişisel web sayfasını (PHP'de) korumasına yardımcı olacak bir dizi araç olarak hizmet etmek üzere oluşturuldu. Bugün PHP, HTML biçiminde yazılmış web sayfaları oluşturmak için kullanılabilen sunucu taraflı bir betik programlama dilidir. PHP, acemi programcılar için kullanımı kolay olduğu için çok popüler bir dildir, ancak aynı zamanda daha deneyimli olanlar için birçok gelişmiş özellik sunar.

Java veya C gibi, Ruby de genel amaçlı bir programlama dilidir. Ruby on Rails, web uygulamaları yazmak için kullanılır ve ayrıca web sunucusu ve veritabanı ile entegrasyon sağlar. Ruby on Rails, hızlı geliştirme ve çok çeşitli kitaplıklar dahil olmak üzere birçok olumlu niteliğe sahiptir. Küçük girişimlerden büyük işletmelere kadar birçok şirket tarafından kullanılmaktadır. Hulu, Twitter, Github ve Living Social, web uygulamalarından en az biri için Ruby on Rails kullanıyor.

2014 yılında Apple kendi programlama dilini icat etmeye karar verdi. Sonuç, geliştiriciler için iOS ve OS X için yeni bir programlama dili olan Swift. Geliştiriciler, Swift'in birçok bölümünün kendilerine C++ ve Objective-C deneyiminden tanıdık geldiğini iddia ediyor. American Airlines, LinkedIn ve Duolingo dahil olmak üzere batıdaki birçok şirket Swift'e geçti ve önümüzdeki yıllarda dilin popülaritesi artmaya devam edecek.

Herhangi bir ustanın, her biri belirli bir görev için uygun olan eksiksiz bir araç seti vardır. Programlamada olduğu gibi, asla tek bir dil olmayacak ve her dil, yeniliklere ayak uydurmak için zaman içinde gelişecek ve gelişecektir.

Bu nedenle, bir geliştirici olmakla ilgileniyorsanız, çok yönlü ve uyarlanabilir olabilmeniz ve kariyeriniz boyunca dil öğrenmeye devam edebilmeniz için çeşitli programlama dillerinde bilgili olmanız önemlidir.