Pagrindinis / Blogas / Nuo kokios programavimo kalbos pradėti mokytis?

Nuo kokios programavimo kalbos pradėti mokytis?

2020.01.18
#programavimas #programavimo #nuokopradėti #kalbos

Apie tai jau kalbėjau šiame Facebook poste , tačiau jo turinį mato tik saujalė žmonių sekantys puslapį, o ir ten jis gan greit nugrims į užmarštį. Tam, kad žmonės sugebėtų šį tekstą rasti bet kada, pakartosiu turinį čia.

Taigi...

Nuo kokios programavimo kalbos pradėti mokytis?

Trumpas atsakymas

Nesvarbu

Ilgas atsakymas

Reikia atsiminti, kad pirminis tikslas yra išmokti programuoti, o ne iškart šokti į darbo rinką. Panašiai kaip su skaitymu ir rašymu, esmė pats procesas, o ne konkreti kalba. Nelabai svarbu ar išmokote skaityti naudojant lietuvišką, anglišką ar prancūzišką tekstą - svarbus pats faktas, kad išmokote skaityti. Panašiai yra ir čia. Išmokus programuoti viena kalba, pereit prie kitos dažniausiai yra gan lengvas procesas.

Tačiau šiokias tokias charakteristikas naudingas naujokams vistik galima išskirti (Žiūrėti į lentelę žemiau)

Kalba Lygis Tipų sistema Paradigma Specializacija
C Žemas Statinė Procedūrinė
C++ Žemas Statinė Objektinė
Rust Žemas Statinė Funkcinė
Java Aukštas Statinė Objektinė
C# Aukštas Statinė Objektinė Orientuota į Microsoft Windows (Dalinai veikia ir su Linux)
Python Aukštas Dinaminė Objektinė arba Procedūrinė
Ruby Aukštas Dinaminė Objektinė
PHP Aukštas Dinaminė Objektinė arba Procedūrinė Orientuota į Web kūrimą
Matlab Aukštas Dinaminė Procedūrinė Orientuota į matematiką
JavaScript Aukštas Dinaminė Procedūrinė (gali būti dalinai Objektinė) Orientuota į vartotojo sąsają Web puslapiuose
Go Aukštas Statinė Procedūrinė
Clojure Aukštas Dinaminė Funkcinė
R Aukštas Dinaminė Procedūrinė Orientuota į duomenų analizę, statistiką ir matematiką
  • Lygis. Žemas reiškia, kad kalba yra arti geležies, mes laimime greičio, turime daugiau laisvės ir eikvojame mažiau resursų, tačiau apsikrauname papildomu sudėtingumu. Aukštas priešingai, dalį sudėtingumo ant savęs apsiima pati kalba. Reikia turėti omeny, kad kai mes kalbame apie greitį, didžiąja dalimi atvejų, skirtumas bus niekinis.

  • Tipų sistema. Statinė reiškia, jog kiekvienam kintamajam mes turėsime nurodyti tipą (sveikasis skaičius, trupmeninis skaičius, raidė, tekstas ir t.t...), Dinaminė reiškia, jog tą už mus nudirbs pati kalba. Žinoti kaip veikia tipai yra naudinga informacija, tačiau įmanoma jos išvengti, bent jau pačioje pradžioje

  • Paradigma. Čia kiek sudėtingiau apibūdinti. Trumpai tariant, visas funkcines kalbas derėtų atmesti pradedantiesiams. Skirtumas tarp procedūrinės ir objektinės iš esmės slypi filosofijoje. Problemos spręndžiamos kardinaliai kitaip. Trumpai tariant, procedūrinės kalbos pačios savaime yra paprastesnės, sudėtingumas gula ant paties programuotojo pečių - kaip gerai bus aprašytas algoritmas, taip programa ir veiks. Dažniausiai geriau sekasi turintiems gerą matematinį mąstymą. Objektinės kalbos savo sudėtingumą išsklaido. Turime daug daugiau sintaksės elementų, yra vadinamieji programming patterns (gal būt derėtų versti kaip programavimo šablonus), kuriuos išmokus mintinai ir žinant atvejus kuriais jie taikomi, galima išspręsti norimas problemas. Vertėtų paminėti, jog darbo rinkoje kur kas populiaresnis yra Objektinis programavimas

  • Specializacija. Turėkit omeny, kad kone su visom kalbom yra įmanomos visos užduotys, tačiau, specializacija dažniausiai reiškia, jog ta specifinė užduotis yra lengvai atliekama, o atlikti kažką kito gali būti neįtikėtinai sunku.

Žvelgiant labai pragmatiškai, tinkamiausios kalbos (pagal aukščiau išvardintus kriterijus) būtų:

  • Web vartotojo sąsajai programuoti: JavaScript (TypeScript, CoffeeScript ir t.t... variacijas klasifikuoju kartu)

  • Webui programuoti: PHP, Python, Ruby (dažniausiai turint omeny RubyOnRails)

  • Matematikai: Matlab, R

  • Bandant greitai įšokti į darbo rinką: Java, C#, PHP

  • Apskritai tiesiog mokytis programuoti: Python

  • Mokytis Funkcinio programavimo: Clojure

Autorius

Šarūnas Navickas
Šarūnas Navickas
Projekto iniciatorius, video autorius, puslapio programuotojas

Šiuo metu Duomenų Inžinierius Ovoko

Komentarai
Šis puslapis naudoja sausainėlius Kam naudojami sausainėliai?