CodeGym /Java блог /Случаен /Избор на език за програмиране
John Squirrels
Ниво
San Francisco

Избор на език за програмиране

Публикувано в групата
За първи път се сблъсках с програмирането в учorще, в уроци по информатика. Те се състоеха от някои досадни обяснения за това How работят n-арните бройни системи. И, разбира се, имаше тест, който изискваше да напишете свой собствен уебсайт. Тогава ми се стори, че не може да има по-скучно занимание. Колко грешах! За съжаление програмата по компютърни науки в гимназията не дава пълна картина на работата в ИТ и не обяснява How да изберете език за програмиране. Преди да попита "Кой език за програмиране да науча?", начинаещият трябва да се запознае с това Howви езици съществуват и How се различават един от друг. Избор на език за програмиране - 1

Входен праг: Висок, нисък, среден

Програмистите често говорят за "входния праг" - концепция, която отразява количеството усorя, необходими на всеки даден "младши разработчик", за да овладее език за програмиране достатъчно добре, за да напише първата си сериозна програма и да си намери работа. „Входният праг“ се състои от знания за:
  • синтактични особености и нюанси на езика
  • библиотеки
  • алгоритми и структури от данни.
Работата в Excel може дори да се нарече вид програмиране. Между другото, тази позната офис програма не е толкова проста, колкото изглежда. За един потребител прагът за влизане може да бъде възможността да създаде table. От друга страна, това може да е познаване на сложни формули и макроси. И в двата случая този праг е малък. Следват квази-езиците, като например 1C програмирането. След това има най-простите езици за изучаване, например PHP . Освен това имаме езици с роден синтаксис (обикновено произлизащ от английски), които не изискват да управлявате паметта, напр. Java и JS . След това има езици, които изискват изключително внимателно боequalsе с памет, структури от данни и алгоритми, например C иC++ . Младите многопарадигмални езици, например Scala , имат може би най-високия праг за влизане, защото тяхното овладяване изисква да се потопите дълбоко в толкова много програмни парадигми. Но преди да изберете език, трябва да решите Howво искате да правите по-нататък: разработка за уеб, корпоративни, настолни or мобилни устройства.

Уеб or не уеб?

Мрежа

Уеб програмистите могат да бъдат разделени на Frontend и Backend разработчици. Трябва да разберете Howво означават тези термини. Frontend разработчиците участват в клиентската страна, т.е. това, което потребителят вижда. „Бекенд“ е за манипулиране и съхраняване на данни – част от услуга, която работи на сървър. За Frontend разработчик, който решава кой език за програмиране да научи, JavaScript и JavaScript рамки (Angular JS, React и други) са от съществено meaning. JS диалектите, като CoffeeScript и TypeScript, не са толкова популярни като родителя си, но също могат да бъдат полезни. Има и Flash AS, а преди имаше JScript и VBScript, но това го помнят само динозаврите =) Освен всичко това, трябва да разбирате HTMLи CSS . Избор на език за програмиране - 2Много начинаещи смятат, че JavaScript и Java са почти едно и също нещо. Не бъркайте тези езици. Преди JS се наричаше "LiveScript" и получи сегашното си име само поради популярността на думата "Java". За уеб бекенд разработчик са подходящи PHP, Python, Ruby, Perl и Java. Тук искам да се съсредоточа върху PHP (ще говорим за другите езици по-късно). PHP е един от най-лесните езици за научаване, с нисък праг за влизане. Според проучване на известни уеб разработчици, Ruby бавно, но сигурно набира популярност - обичан е заради своята сбитост и красота.

Не уеб (корпоративен, десктоп, мобилен)

Умишлено комбинирах следните езици за програмиране в тази категория със странно име. Можете да използвате повечето от тях за писане на корпоративни, десктоп и дори мобилни applications. Python е лесен за разбиране обектно-ориентиран език за програмиране и стана невероятно популярен напоследък поради нарастващото машинно обучение (ML): разработчиците на ML използват широко Python. MLе сравнително нова област в ИТ и въпреки че вече видяхме How дава плодове, не бих прибързал с тази индустрия, когато избирам език за програмиране. Първо, ще ви трябва ОТЛИЧНО разбиране на математиката. Второ, вълната от популярност може да премине по същия начин, Howто при "блокчейн" or "нанотехнологии". Въпреки това може да си спомните, че Python се използва в уеб разработката. C++: класически език, където всичко е изградено върху оператора "плюс-плюс". Този език е прародителят на всички популярни обектно-ориентирани езици за програмиране и начинаещият определено трябва да му обърне внимание. Много популярни applications са написани с него. Но отличният шанс да се "простреляте в крака" и трудният за разбиране синтаксис свеждат до нула вероятността начинаещ да овладее този мастодонт на програмирането. Котлин, което е като Java за хипстъри, е луда комбинация от ООП и функционално програмиране. Напоследък е популярен поради факта, че опитен разработчик, преминавайки от Java към Kotlin, може сериозно да подобри производителността си. Опитен програмист бързо ще се сдобие с този език за програмиране. Между другото, същото важи и за Scala, но Kotlin е популярен в света на Android. Java е лесна за научаване от начинаещи. Особено с помощта на CodeGym =) Синтаксисът на Java е разбираем и въпреки че има риск да се "простреляте в крака", не е критичен.

OOP or POP?

Процедурният подход

Процедурно-ориентираният подход включва писане на програма, състояща се от последователни изрази, които могат да бъдат сглобени в единно цяло за ефективно решаване на специфичен набор от проблеми. Такива езици включват C , PureBasic и Pascal . С други думи, езиците, които носят отчаяние на гимназисти и студенти. Има и сравнително младия GOезик. Въпреки това познаването на proceduresните езици е много полезно за потенциален разработчик. Потапянето ми в proceduresните езици дойде със системата Wolfram Mathematica и университетските изследвания. Правилните алгоритми и простите proceduresи, движещи се линейно от началото на програмата до края, ми позволиха да изчисля стойности, подходящи за съвременната теоретична физика. Този "последователен" език за програмиране е точно нещото, което ще ви помогне да разберете, че понякога е по-лесно да напишете code, който извършва изчисления ръчно. Програмирането, ориентирано към proceduresите за обучение (POP) осигурява добро алгоритмично обучение, което работодателят почти винаги иска да види в кандидат за работа. Абсолютно всичко в ИТ е изградено на базата на proceduresни езици, така че не ги подценявайте. Между другото, начинаещите, които решават кой език за програмиране да научат, често смятат, че само ООП езиците поддържат многопоточност. Това не е вярно. Процедурните езици за програмиране също позволяват паралелни изчисления. Избор на език за програмиране - 3

Обектно-ориентираният подход

Тези, които са започнали с proceduresни езици, обикновено са добре запознати с математика, алгоритми и структури от данни (поради акцента на техническите университети върху тези области). И все пак реалността днес е, че успешните програмисти обикновено са тези, които са усвоor различен подход към програмирането: обектно-ориентираната парадигма. Идеологията на OOP ви позволява да изграждате наистина глобални системи. Характеристика на този подход е неговата прorка с реалния свят:
  • Различните обекти взаимодействат помежду си и съществуват независимо един от друг.
  • Обектите имат йерархия и могат да приемат or променят поведението на своите предци.
  • Можете да използвате абстрактни понятия, но само обекти, които действително съществуват, могат да си взаимодействат.

Пример

Процедурно-ориентираните езици са инструменти за решаване на конкретни проблеми. Ако задачата ви се промени, дори леко, вероятно ще трябва да отделите време и усorя за пренаписване на всички алгоритми.

Представете си програма, която описва автокъща, която продава автомобor и камиони, Howто нови, така и употребявани. На proceduresен език трябва да дефинирате функции, които обработват входа or изхода на данни за всеки обект: нова кола, нов камион, употребяван автомобил и употребяван камион. Какво предлага OOP? С обектно-ориентиран подход просто трябва да дефинираме базов клас превозно средство, който съхранява характеристиките, споделяни от всички типове превозни средства:

  • направи
  • Обем на двигателя
  • Конски сor
  • година
  • Нов or използван
  • Цена

И методи за приемане и изпращане на информация. След това създаваме обекти, които наследяват характеристиките на класа Vehicle: Car и Truck. Те съдържат информация, която се отнася конкретно за тези видове превозни средства, Howто и методи за въвеждане/извеждане.

Изведнъж ръководството на автокъщата решава да разшири гамата, като предлага и мотоциклети. При proceduresния подход ще трябва да пресъздадем цялата логика за нови и употребявани мотоциклети, докато ООП езикът ни позволява просто да създадем нов клас мотоциклет, който наследява всички характеристики на суперкласа превозно средство и съдържа специфични за мотоциклета уточнения.

И Howво ще стане, ако добавим различни превозни средства? Процедурното внедряване би изисквало повече работа от ООП. Нещо повече, колкото по-голяма е гамата, толкова по-малко операции, включващи обекти, ще са необходими.

И така, OOP е стил на програмиране, който ви позволява да комбинирате данни и методи в едно цяло и да работите с тях като с единен обект. Обектите могат да бъдат подредени в йерархия и да си взаимодействат помежду си, без да се задълбочават в детайлите на вътрешното им изпълнение. Ще посоча три причини, поради които ООП е по-прогресивният подход за мен:
  1. OOP включва самостоятелно разработване на отделни модули, което позволява на програмист or екип да избере метода и границите на контакт и обмен на информация.
  2. Кодът, разделен на малки модули, е много по-лесен за четене от монолитните proceduresи. В резултат на това външен човек може бързо да разбере вашия code и по същия начин можете да се присъедините към нов проект, ако е необходимо.
  3. Един клас може да бъде променен, без да се засяга взаимодействието с друг, но такава промяна може да повлияе на йерархията на дъщерните обекти. След като овладеете този подход, разширяването и модифицирането на програма става тривиално.
Не забравяйте, че единият подход не е в конфликт с другия, но ООП все още е по-високо в йерархията. И така, защо препоръчвам Java? Бих изтъкнал следните причини:
  1. Кросплатформен.

    Java работи навсякъде благодарение на виртуалната машина на Java (JVM). Едно от основните предимства на този език е неговата междуплатформена природа: няма нужда да мислите коя библиотека да добавите or архитектурата на конкретен процесор. „Напиши веднъж, бягай навсякъде.“

  2. Документация.

    Има огромна база от documentи: официална documentация на Oracle, портали за обучение и постоянно развиваща се общност. Отговорите на повечето въпроси, които възникват по време на разработката, могат да бъдат намерени за няколко minutesи. Основното нещо е да разберете Howво да въведете в търсачката =)

  3. Популярност.

    Java е най-популярният език за програмиране в света: в допълнение към гореспоменатите Android и уеб разработчици, почти всеки корпоративен разработчик пише на Java. Enterprise се отнася до вътрешното корпоративно развитие, необходимо за нуждите на големите корпорации.

    Всяка година хейтърите предсказват "смъртта на Java". Те казват: „ Oracle ще спре да го поддържа. Напълно си губите времето. “ Това не е вярно! Те обещават да пускат нови версии на Java на всеки шест месеца.

    За мен ламбда изразите в Java 8 бяха революционни и откровение, да не говорим за новите версии! В момента работя по "legacy" проект, така че не се задълбочавам в последните нововъведения, но е факт, че Java е жива.

    Избор на език за програмиране - 4
  4. Android.

    През последните 4 години Android постоянно държи повече от 80% от пазара на мобилни телефони . Телевизорите, медийните плейъри и дори автомобилните информационно-развлекателни системи работят на тази операционна система. И разработването на applications за тази операционна система се случва главно в Java. Само си представете перспективите, които се отварят. Когато си намерих работа като разработчик на Android, се чудех колко струва продуктът, който разработвам? Както се оказа, цената беше около $5 на година. Това повдига въпроса „тогава откъде идват парите за този офис, заплатите, закусвалнята, масата за пинг-понг, роботите и други предимства? Отговорът се крие в обема: нашето приложение има 20 мorона потребители.

  5. Заплати.

    И сега черешката на тортата: заплатата на Java разработчик е сред най-високите в индустрията. В крайна сметка планирате да изучавате програмиране с конкретна цел: да си намерите добра работа.

Популярността на езика за програмиране

Има официални източници на информация, така че нека се обърнем към тях. Според TIOBE Java е на първо място към октомври 2019 г. В класацията на PYPL Java се нарежда на второ място, далеч пред JS и съперничейки на модерния Python.

Заключение

Тъй като начинаещ обмисля избора на език за програмиране, това е, на което той or тя трябва да обърне внимание:
  • Популярност (Java постоянно заема водеща позиция)
  • Праг за влизане (за Java той е среден: работодателите изискват доста широк набор от умения)
  • Налични материали (добре дошли в CodeGym =))
  • Области на приложение: в колкото повече области се използва даден език за програмиране, толкова повече специалисти са необходими на пазара. Вече споменах How Java поддържа разработка на различни платформи, но никога не се уморявам да го повтарям.
Разбира се, навсякъде има клопки, но който направи крачка, върви напред: само вие можете да решите кой език за програмиране да изберете. Успех в ученето!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION