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

Със сигурност това е един от въпросите, който ми идва най-много в пощенската кутия, когато говоря за програмиране. Ако ще започнем поредица от статии, които ще ви позволят да се научите да програмирате и да върнете безплатни знания под формата на принос към общности с безплатен софтуер / отворен код по целия свят, е необходимо да отговорите на този основен, ако е малко труден въпрос. Какъв език за програмиране трябва да науча?

Малко история

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

Езици на машината (ниско ниво)

Известно като Монтаж, са езици за програмиране, които бихме могли да определим като диалекти на по-общ език ... Това звучи малко сложно, но ще го дам като пример ... Знаем, че универсалният език на изчисленията е електричество, това означава, че в крайна сметка това, което компютърът чете, са 0sy 1да, нека наречем това eкомпютърен английски. В този пример испанският е основното правило, но както добре знаем, испанският, говорим от латиноамериканците, не е същият като този, който се говори в Испания, и въпреки това испанският от Перу не е същият като испанския от Аржентина. Очевидно всички имаме почти еднакви думи (0sy 1s), но употребата и значението може да варират в зависимост от контекста.

Това се случва на ниво процесор. Когато говорим за изчислителни архитектури, (amd64, intel, arm, ...) ние се позоваваме на диалекта на това компютър испански. Това е така, защото различните компании разбират реда и значението по свой начин, така че някои се различават в детайли, като например потока на тока или реда, в който ще бъдат запазени. 0sy 1s.

Тези езици за програмиране са изключително бързи, тъй като работят на възможно най-ниското ниво на програмиране, но са силно зависими от архитектурата и със сигурност са малко по-сложни за изучаване от останалите. Те често изискват по-широка база от концепции, за да трансформират данните и да могат да изпълняват полезни неща върху тях. За любителите на видеоигри пример могат да бъдат конзолите SEGA, които използват Assembly за програмиране на своите игри. Очевидно по това време количеството памет беше минимално в сравнение с днешното и беше необходимо да се владее език, който може да бъде бърз и да създава леки програми.

Езици на високо ниво

Тази голяма група съзерцава онези езици, които са дошли след това Монтаж. Необходимостта от получаване на преносим код доведе до появата на група езици, наречени съставен. Сред тях първият, който се възползва, беше C, който има превес в програмирането на ниво операционна система от 70-те години насам.

Компилирани езици

Нека да видим практически пример за това, което коментирам. Нека разгледаме една много проста програма на езика C, която отпечатва един ред код.

Собствен. Кристофър Диас Риверос

След съставянето му имаме следното:

Собствен дизайн: Кристофър Диас Риверос

Но сега да видим какво ще трябва да напишем, за да повторим същия резултат в кода на събранието:

Собствен. Кристофър Диас Риверос

Това е преводът на нашите 3 реда код от simple.c, файлът simple.s се създава с помощта на командата gcc -S simple.c и това е, което нашият процесор би разбрал на диалект Монтаж. Очевидно, за да се създаде изпълним файл, който се състои от 0sy 1s файлът трябва да бъде обработен simple.s и го свържете със споделените библиотеки на нашата система. Това се прави с помощта на асемблер (as) и съединител (ld).

Компилираните езици осигуряват голямо предимство пред тези на ниско ниво, те са преносими. Преносимостта предоставя код, който може да бъде изпълнен на различни процесори, без да е необходимо да се генерира специфичен код за всяка архитектура. Друго очевидно предимство е простотата, която използва при четене и писане на код. Сред основните му недостатъци имаме висока сложност, тъй като в сравнение със следните видове езици, които ще видим, свободата, която C предлага, може да бъде вредна, ако не знаете как да контролирате, със сигурност е като предаване на пистолет, може да се случи, че при липса на опит човек да стреля със собствения си крак в опит да почисти пистолета.

Интерпретирани езици

В тази група имаме голямо разнообразие от езици, сред най-важните имаме Python, Ruby, Javascript, PHP и др ... Основната идея на тези езици е да осигурят бърз начин за създаване и стартиране на програми, защото много от трудните процеси се извършват в интерпретатора, а програмирането на логиката е това, което е внедрено в кода. Нека разгледаме същия пример по-горе, но този път написан на Python:

Собствен. Кристофър Диас Риверос

Сред най-забележителните неща можем да видим, че първият ред е отговорен за извикването на интерпретатора (програмата, която ще изпълни нашето приложение), а последващият код е по-"прост" от версията му в C, тъй като цялата тежка работа е изпълнява на преводача.

Собствен. Кристофър Диас Риверос

Тълкуваните езици осигуряват на разработчика по-висок ниво на сигурност, тъй като те имат по-строг контрол на сигурността (ВНИМАВАЙТЕ, че не са перфектни, тъй като дори и най-добрите могат да правят грешки) и вече не поемаме риска от стрелба с оръжие, без да го осъзнаем, тъй като при първия опит преводачът би извел сигнал и изпълнението ще бъде отменено. Основният недостатък става очевиден при изпълнение на програмата, тъй като тя е по-бавна от двоичния си аналог, именно поради по-голямото количество обработка, за да се гарантира, че кодът работи. Ако програмата не изисква изключително кратки срокове, разликата може да остане незабелязана, но ако говорим за хиляди или милиони данни в секунда, разликата става експоненциално забележима в компилираните езици.

Пишете

Това е характеристика на езиците за програмиране, те могат да бъдат силно слабо въведени. Ще оставя тази тема за друга публикация, тъй като е необходимо и любопитно да разберем как паметта се съхранява в програма, но засега трябва само да направим разграничение: Силно типизираните езици са тези, които изискват познаване на типа данни, които се събират да се работи по променлива или константа, докато слабо типовете могат да извършват преобразувания, така че имплицитен и всичко ще зависи от йерархия на преобразуване, последвана от езика. (ако не се разбере сега, няма проблем, ще го оставим за по-късно)

Парадигми

Както всичко в света на GNU / Linux, езиците за програмиране се базират според парадигмите и около тях се генерират общности. Например имаме Фондация Python o Рубин o PHP o Bash (в този случай това е общността на GNU). Това, до което искам да стигна с това, е, че не мога да изразя големия брой плюсове и минуси, които има всеки един от тях, но мога да ви кажа, че там, където има безплатен език за програмиране, има общност, в която да учат и да участват. Струва си да се спомене, че много, ако не всички преводачи на езици са написани на C или някаква близка производна и тяхното развитие обикновено се извършва от по-малка група от общността, които отговарят за решения, които ще засегнат всички потребители на език. Дори могат да се създават институции, които да осигурят правилното развитие на езика, какъвто е случаят с C.

Кое да избера?

Вече говорихме достатъчно за езиците и все още не отговарям на най-важното 😛. Но се надявам, че след като прегледах тази малка статия, не е необходимо да ви казвам кой език да изберете, тъй като с тази информация вие сте напълно способни да търсите такъв, който поражда любопитство. Очевидно, ако искате да се научите да програмирате на език Монтаж ще отнеме много време, преди да можете да имате нещо функционално, времето ще бъде значително намалено, ако изберете компилиран език, където освен че имате преносимост на * NIX системи, ще можете да научите информация относно работата на същата система, тъй като сте в контактът с C или производни ви кара по един или друг начин да научите как операционната система работи по общ начин. И накрая, ако искате да научите нещо леко и това ви позволява да правите много, без да е необходимо да разбирате много, интерпретираните езици са забавен начин да научите и развиете умения за програмиране.

Научете се с нещо вълнуващо

Това е най-добрият съвет, който мога да ви дам, ако искате да научите нещо, първо трябва да намерите нещо вълнуващо, в противен случай ще бъде доста трудно да се преодолее типичната крива на обучение за всеки език за програмиране. Да предположим, че управлявате системи, в този случай може да се наложи да научите идеален език за скриптове (тълкувано), в тях имаме Perl, Python, Bash и т.н. и т.н. ... Може би вашето нещо са игри, има много проекти на езици като Javascript, Lua, C ++, в зависимост от типа игра, която искате да играете. Може би бихте искали да създадете инструмент на системно ниво, тъй като имаме C, Python, Perl, както ще видите, някои се повтарят и това е така, защото много езици могат да се използват за много задачи, затова дефиницията на многофункционални езици в повечето от тях.

Започнете проект

С това нямам предвид, че създавате следния компилатор или дори следния програмен език, проект може да бъде да поправи малка грешка във вашата любима програма, може би дори да помогне за подобряване на документацията. Защо документацията? защото няма по-добър начин да научите как работи софтуерът, отколкото като четете и помагате да пишете неговата документация, защото след изходния код, това е най-големият източник на информация, който ще намерите за програмата. В друг момент ще видим как да прочетем кода на даден проект и да разберем функциите и ценностите, които придобиват.

Благодаря ви много, че стигнахте тук и както винаги, вашите коментари ми помагат да генерирам по-добро съдържание и да знам къде да се съсредоточа, Поздрави.


Съдържанието на статията се придържа към нашите принципи на редакторска етика. За да съобщите за грешка, щракнете върху тук.

37 коментара, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван.

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   анонимен каза той

    Както винаги 10 !!!!!! Благодаря за вашите статии. Поздрави и още много !!!!

    1.    ChrisADR каза той

      Благодаря ви много 🙂 ме насърчава да продължа да пиша. Наздраве

  2.   Rubén каза той

    Мисля, че е грешка да зададем въпроса "кой език да изберем?" Аз съм от тези, които смятат, че езикът е най-малкото от него, важното е да научите основите на програмирането и да „мислите изчислително“. Решете синтаксиса, неговото въвеждане, дали поддържа OOP, неговата помощна програма и т.н. Мисля, че това е нещо, което ще дойде естествено в студиото и в края на краищата всеки програмист знае повече от 1, 2 и 3 езика ... и благодарение на програмните концепции (а не синтаксис), които има, той е в състояние да програмира на език, на който все още нямате опит.
    За посветените обаче мисля, че добър език може да бъде Python поради своята простота, но преди всичко отидете малко по-далеч, изучете алгоритмите и знайте как работят нещата „вътре“.

    Поздрави ChrisADR

    1.    ChrisADR каза той

      Здравей Рубен, благодаря за споделянето
      Има нещо, което съм научил с течение на времето в света на програмирането, и това е, че „който покрива много, не стиска“ и под тази добре позната фраза имам предвид, че много пъти и особено най-ентусиазираните решават да опитат всички малко и имат много бързи завои по отношение на научаването на кодиране. Вярвам, и това е моето лично мнение, че добрият разработчик трябва да знае и да владее компилаторен език и език на интерпретатор, освен че има представа за някакъв диалект на Асамблеята.
      Причината е следната, прототипирането винаги трябва да е нещо просто и бързо, лесно за генериране и което обикновено показва резултат, но ако не е достатъчно, трябва да има "план Б", към който да прибегне, когато преводачът пристигне до краен предел.
      Познаването на диалект на събранието не само ви дава увереност, но и ви учи да мислите „изчислително“, но очевидно тази част е най-сложната от всички и със сигурност е нещо, до което не всички програмисти стигат.
      Но да се върнем към темата, защото основната идея, която според мен е, „изберете език и практикувайте МНОГО“, защото наистина единственият начин да се справите добре с програмирането е чрез четене и писане на код и това е нещо, което научих от общността на ядрото Когато запазите един и същ синтаксис за дълго време, спирате да виждате формата и започвате да се тревожите за ПРЕДШЕСТВАТЕЛНИЯ ФОН. Идеята за избор на език или синтаксис от самото начало е, че човек е в състояние да свикне неговото четене и писане по такъв начин, че да може да започне да чете ЗНАЧЕНИЕТО на програмата вместо синтаксиса на програмата.
      Това е основната причина за тази публикация, че всеки избира своя език, така че по-нататък да можем да обясним понятията, може би с това съмненията се изясняват 🙂
      Поздрави и благодарности за споделянето.

  3.   Дейбис Контрерас каза той

    благодаря за публикацията беше добре.

    поздрави

    1.    ChrisADR каза той

      Здравейте Deibis, благодаря ви за споделянето 🙂 Поздрави

  4.   ХорхеФС каза той

    Моят съвет: нещо различно от PHP. Преди двадесет години PHP има определен смисъл в своето съществуване поради високото ниво на сложност, което е програмирането на мрежата на друг език с помощта на CGI. Но днес има голямо разнообразие от рамки, които правят уеб разработката много по-приятна на мощни езици, като Django за Python, Spring за Java или Rails за Ruby. Въпреки че в момента PHP се появява на всички класации за популярност на езика, според мен PHP ще загуби своята значимост с течение на времето.
    Силно съветвам да започнете с C \ C ++, за да разберете реалността на програмирането, въпреки че кривата на обучение е стръмна.
    Поздрави.

    1.    ChrisADR каза той

      Здравей, Хорхе, благодаря за споделянето, само като си спомням Laravel, което е доста солидна рамка mí. Аз лично никога не съм харесвал Spring или Java за уеб разработка, намирам го за доста тромаво, но предполагам, че това е част от времето, през което са били на пазара, по това време те са били пионери и със сигурност днес модерните алтернативи (Js, Python и Ruby) са успели да подобрят начина на представяне на код, който е четим и модифицируем, без много работа.
      Също така съм склонен хората да учат C / C ++ в даден момент от живота си, започнах с Java, но предполагам, че в това е красотата на програмирането, можете да започнете с каквото искате, стига да сте последователни, ще бъде полезно 🙂 Наздраве

    2.    Rubén каза той

      Вече не мога да не се съглася с вас. Започнах преди много години с C и VB, за да се фокусирам по-късно върху PHP и JS (тъй като се фокусирах върху уеб разработката), а по-късно, докато учех, научих основно C / C ++ и Java.
      PHP има редица предимства, които не можах да изброя в това съобщение. PHP7 е бърз (по-бърз от Python ... без да се използва hhvm, различни кешове, рамки като Phalcon или байт код в случая на Python), той има огромен брой библиотеки и рамки, има огромен брой директно внедрени функции, за да ги използва по всяко време, неговият синтаксис, подобен на C, улеснява мигрирането към други езици.
      30% от уебсайтовете в целия свят са направени с WordPress (PHP) и това изглежда не се променя, Уикипедия го използва, Facebook (с hhvm) и голям брой сайтове, общо 80%.

      Припомням ви, че Ruby on Rails като Django са на 12 години! Каква квота са постигнали за това време? И разбира се, говорим за 2 рамки, които на практика имат монопол и няма тип фрагментация. Какви други сериозни алтернативи имам? Казаното, че PHP ще загуби актуалност, няма много смисъл.

      Сега, когато Python е на мода, тъй като има бърза крива на обучение, това е прост език и те ви го продават като «станете програмист за 20 часа с Python и работете върху него», с подкрепата на компании като Google и че сега има Модата да се търсят нови езици (Go, Dart….), За да се разграничите в автобиография (или като ежедневното раждане на 50 рамки за Javascript!), Не означава, че нещата се променят.

      Ruby е много интересен език, но се откъсва толкова от установените модели, че ми е трудно да повярвам, че е станал по-популярен от PHP. Разбира се, според мен Ruby е най-лошият език за започване на програмиране от всички.
      Разбирам, че ми казвате, че Python може да бъде забавен за програмиране, дори Ruby със своята безкрайност на особеностите ... но Spring с Java? Наистина ли? Java може да бъде много неща ... но по-приятна от Python и PHP?

      Всичко е много добре да започнете с Python, но тъй като се придържате само към Python, рискувате много компании да повярват, че нивото ви на програмиране не е „дълбоко“ (дори ако сте много добри в Python). Това е така, защото се конкурирате с други „многофункционални“ езици като C ++ или Java. Можете да програмирате в Python, без да знаете разликата какво, по дяволите, е показалец, битови операции, как работи събирачът на боклук и дълги и други.
      Python е може би най-малко подобен на „класическото програмиране“, което съществува и може да се разглежда като „детски език“ (разберете метафората), а това от своя страна е предимство и недостатък.

      1.    ХорхеФС каза той

        „Python е може би най-малко подобен на„ класическото програмиране “, което съществува и може да се разглежда като„ език за деца “(разберете метафората), а това от своя страна е предимство и недостатък.“ LOL, това е едно от най-забавните неща, които видях, казано за Python. Наистина ли сте научили Python?
        От колко време е по света извън PHP?
        Приятелят PHP се роди мъртъв. PHP (\ d +) има голяма тежест поради много лош първоначален дизайн и за да поддържа потребителската общност, той продължава да влачи всички тези първоначални грешки в дизайна много внимателно. PHP е роден без модулност, с много функционалности в стил C (което между другото не знам откъде го взехте, тъй като синтаксисът му е подобен на C, може лесно да бъде пренесен на други езици). Езикът на високо ниво, какъвто трябва да се държи PHP, има такива грозни неща като тази пътека от функции, изброени на официалния му сайт http://php.net/manual/en/indexes.functions.phpТова е така, защото е роден без модулност, така че всичко е мръсно, смесено и без пространства с имена.
        Това е част от PHP кода:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        в даден момент може ли да се определи откъде са внесени всички тези „поточни“ функционалности? НЕ, тогава можете да кажете, че те са функции за изграждане, но тогава цялата екосистема е функции за изграждане?. И така, в PHP кода има много боклуци, че ако не сте в състояние да разберете сложността и безполезността на такъв лош дизайн, простете ми, но все още има много свят за гледане.
        Wordpress е отлично софтуерно решение, но това не означава, че има добра технологична база. Можете да чукате с камък и да избивате пирони със зъби и пак можете да вършите отлична дърводелска работа, но разбира се, с много повече работа от друг дърводелец, който използва добър чук.

        От друга страна: „станете програмист за 20 часа с Python и работете в него“, никога не съм виждал такава глупост. Можете да създадете уебсайт в PHP за 20 часа и без да знаете как функционира уеб програмирането или самото програмиране. Всъщност това е причината, поради която PHP е толкова популярен, защото начинаещите при влизането си в този свят виждат PHP като точка на бързо развитие (поради което толкова много PHP код изсмуква толкова силно).
        По отношение на недостатъците на Python, единственият, при който той беше успешен, беше работата с указатели, но при всички случаи Python е език на високо ниво (както е Java) и не ги използва на ниво синтаксис; но битови операции, сериозно?, имате предвид това x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Сериозно разбрах нещо, което събира боклука, много по-малко: https://docs.python.org/3/library/gc.html.
        PHP пропуски:
        -PHP има много лош дизайн на обектно-ориентирано програмиране (OOP).
        -Още не можете да претоварвате операторите.
        -Изненада, function overloading в PHP не е това, което естествено очаквате от тази концепция.
        ... .. и току-що ми омръзна хехе.
        Поздрави.

        1.    Rubén каза той

          Слагам в скоби „разбирам метафората“ (чрез сравняване на Python със C ++ / Java в същата работна среда), става ясно, че не сте го разбрали. Бих могъл да ви кажа, че програмист на C ++ може да научи Python много по-бързо, отколкото програмист на Python научи C ++, точно както не е изненадващо, че средната заплата на програмист на C / C ++ е по-висока от тази на Python.
          Бих могъл да ви го обясня с други примери, дори с рисунка! но изглежда, че се фокусирате само върху деконтекстуализирането и осмиването на това, което съм сложил.

          В нито един момент не съм казвал, че PHP е най-добрият език в света или че има примерен дизайн, не знам откъде го вземете. Мисля, че преди да прецените знанията на другите, трябва да подобрите разбирането си за четене. Истинското (и казах в съобщението си) е, че разработването с него е много пъргаво, в допълнение към цялата екосистема от рамки, библиотеки и помощни програми, които можете да намерите.
          Също така, какъв вид сравнение правим? Python като многофункционален език или за мрежата? В такъв случай защо го сравняваме с PHP? PHP има специфично поле и в това поле Python (с дял от 0.2%, който не се е променил през цялата година) бледнее до PHP.
          Сега ще видим тенденциите в PHP; от 82,4% през януари 2017 г. до 83.1% през януари 2018 г .: https://w3techs.com/technologies/history_overview/programming_language

          Python ще свали ли PHP от трона? През коя година? след пет години? десетилетие?
          Python ще може да бъде използван в много други задачи и дори ще стане по-широко използван от PHP, но Python като език за уеб разработка е на светлинни години от това да бъде дори релевантен, 0.2% стагнация срещу 83.1% (с ръст тази година).

          Вие също приемате нещата за даденост, като казвате, че не обикалям извън PHP, намеквайки, че познавам PHP само когато точно не съм програмирал в PHP дълго време хаха. В момента по служебни причини програмирам най-вече на Java.
          Нито съм казал, че като програмирате в Python, вие нямате знания за битови, събирач на боклук или указател. По-скоро можете да програмирате в Python, без дори да знаете какво е това. Силно се съмнявам обаче, че това би било така за програмист на C ++. И очевидно правя сравнението, когато Python влиза в това поле на "многофункционален език", а не за уеб програмиране.

          Станете програмист за 20 часа е просто шега, преувеличено. Бих могъл обаче да ви поставя тук различни връзки за онлайн образователни платформи и курсове, които обещават подобни неща. Не ме обвинявайте, обвинявайте го на пазара на труда, който смята, че да станеш „експерт програмист“ е въпрос на 20-часов курс. А Python е един от модерните езици и също така, с най-бързата крива на обучение ... бял и в бутилка.

          Настоявам, вие основавате съобщението си, като казвате колко лош е PHP (което в определена част съм съгласен). Изглежда ми правилно, с изключение на това, че моето съобщение не е за това, а защо PHP ще продължи да се използва и няма да изчезне утре, както си мислите.

          поздравления

  5.   никой каза той

    C -> Go -> (Lisp | Haskell | Java | каквото и да е)

    1.    ChrisADR каза той

      Наскоро читател ми изпрати на моя имейл препоръка за книга Go, със сигурност език, който да се вземе предвид в бъдеще и за който може би ще има публикация тук 🙂 Много графики за споделяне

  6.   mvr1981 каза той

    Е ... и какво да програмирам? Защо да учим език за програмиране днес с толкова добри и опитни програмисти, които вече съществуват? Какви проблеми мога да реша, които другите вече не са решили по много по-ефективен начин? ... Накратко: Колко оригинално е да си програмист днес? Как мога да си сътруднича с другите, без да ме ритат или изключват поради липсата на знания и опит?

    1.    ChrisADR каза той

      Здравейте mvr1981, наистина интересни въпроси 🙂 ние ще ги навием от последния към първия.

      Как мога да си сътруднича с другите, без да ме ритат или изключват поради липсата на знания и опит?

      Ако не искате да ви ритат, първата стъпка е да научите процеса, не можете да си представите броя на хората, които идват в проекти, които искат да правят нещата изключително по своя начин, искат общността да се адаптира към техните желания. Със сигурност е като да дойда у вас и да направя бъркотия и да не уважа семейството ви (така се чувства много пъти). Ако искате да предотвратите това, обърнете голямо внимание на насоките за принос, на средствата, чрез които да го направите, и не изпращайте нещо непълно, ако имате нужда от помощ, винаги има средства за комуникация, но лошо свършената работа вероятно ще създаде лоши първи впечатления. Ако не искате да се изключите, това зависи от вас, можете да го видите като безполезен програмист, който не знае какво прави или този, който е на път да стане отличен програмист, и това се случва само с практика и със сигурност с грешки по пътя. Грешал съм много пъти, преди да получа статуса си на разработчик в Gentoo и това не ми попречи да опитам въпреки „лошото време“ 🙂.

      Колко оригинално е да си програмист днес?

      -Не става въпрос за оригиналност, днес е необходимост, просто помислете за следното, преди 20 или 30 години, машинописът е бил необходимост, много работни места излизаха, че сте знаели или поне бихте могли да го направите. Днес познаването на Office е необходимост, практически няма работа, която да не ви поставя пред документите на Office. Утре, много скоро, програмирането ще бъде необходимост. И това важи и от лична гледна точка, знаейки какво се случва в програмите, на които поверявате важни неща, като вашите пари, здраве, семейство, е нещо логично за мен, защото можете да знаете техните ограничения само ако знаете как работят и за за да го знаете, трябва да знаете как да програмирате.

      Какви проблеми мога да реша, които другите вече не са решили по много по-ефективен начин?

      -Ще се изненадате от размера на Характеристика които се изискват днес и честно казано, няма значение, че в общността има най-добрите програмисти в света, работата винаги ще бъде по-голяма от работоспособността на разработчиците, мога да проверя това в Gentoo, има хора, които разработват ядро, хора, работещи за Google, Sony и т.н. и т.н. ... единственото общо между всички ни е, че никой няма толкова време, колкото би искал, за да може да свърши цялата предстояща работа.

      Защо да учим език за програмиране днес с толкова добри и опитни програмисти, които вече съществуват?

      -Този отговор е на втория въпрос 😉 Но сега мога да добавя, че поколенията трябва да могат да подкрепят работата, която вече е разработена, като имам предвид, че тези "опитни" разработчици постепенно ще изчезнат и ще е необходимо за "по-младите »Разработчиците поемат отговорност и спомагат за поддържането на цикъла жив, общността, в която няма млади и неопитни хора, е склонна да изчезва с времето, именно защото няма да има възможност за предаване на знания.

      И какво да планирам?

      -Това е може би най-трудно да се отговори, но ще се опитам да ви дам пример 🙂 Наскоро започнах да страдам от проблеми с GNOME 24 и връзката му с Wayland, които пречат на програми като Shutter да правят снимки на екрани. Това е проблем за мен, защото когато пиша статиите си, трябва да ви покажа какво казвам, търсейки малко, стигнах до приложението GNOME Screenshot, малко "минималистично", най-малкото. Сред функциите му има една заснемане на екранната област, но какво се случва, ако не направя снимката добре? Е, трябва да напусна и да вляза отново в програмата, нещо досадно със сигурност, бутон, който казва „Retake“ или нещо подобно ми позволява да направя ново заснемане, без да се налага да излизам и да влизам отново, ще ми помогне. Това е малък проект за програмиране, никога не съм програмирал нищо в рамката на GNOME, така че очевидно имам много да науча, преди да изпратя своя "кръпка" с новия бутон, но по пътя се уча да програмирам и с малко късмет е особеност ще бъде от полза на повече от един, когато е достъпен за всички.

      Това е пример, това е нещо просто и със сигурност всеки друг "експертен" програмист би могъл да го направи вече, но поради очевидната липса на време не е било така, сега аз съм този, който има възможност да го направи, без всъщност да е супер програмист.

      Сега зависи само от вас да намерите нещо, което би улеснило живота ви в този софтуер, който използвате толкова често, красотата на това е, че ако следваме съветите, които ще ви дам в следващите статии, езикът няма значение, защото Ще знаете основите, за да започнете да разбирате кода, който сте прочели, и да го модифицирате, за да правите това, което искате, това е много специално усещане 🙂

      Поздрави и отново благодаря

      1.    никой каза той

        Мисля, че само след като отворя програмата за заснемане на gnome, най-лесното е да отидете на клавишните комбинации и да зададете три комбинации print, за да заснемете всички alt-print, за да заснемете активния прозорец и super-print, за да направите избор от регион за улавяне, наличните преки пътища вече са налични, просто е въпрос на тяхното присвояване

        1.    ChrisADR каза той

          Ето защо ви даваме пример 🙂 тъй като малки неща като този бутон се програмират, те могат да помогнат на някои, тъй като могат да останат незабелязани от други, но със сигурност изпълняват основната цел, помагат да се научат да програмират и да дадат път на нови функции, След този бутон могат да се стартират много неща, като управление на сесия или екран за предварителен преглед на всички направени снимки, или накратко, много неща, които могат да се направят. Идеята е да намерите нещо, което ви кара да прескочите любопитството си, всеки софтуер, който работи на вашата система, може да се нуждае от подобрения или нови функции, които поради липса на време или персонал все още не са внедрени 🙂

      2.    mvr1981 каза той

        Благодарение на теб. са много добри отговори.

    2.    Гилермо каза той

      Е, за някой, който няма да бъде професионалист в тази област, би било необходимо да види в коя среда работят, както за административни задачи, така и за директиви може да бъде интересно да се знае, например, Python / Basic и да знае как да програмира макроси в офис пакети като LibreOffice или MS Office. Има моменти, когато това може да спести много часове работа за вас или други работници, които ви заобикалят и да ги помолите да изпълняват всякакви повтарящи се задачи, можете да създадете табло за бързо изчисляване на основните съотношения на компанията след свързване с базата данни от него и изпълнете някаква SQL заявка.
      Както всичко, ако знаете инструментите на една ръка разстояние, можете да помислите как да извлечете максимума от него. Не всичко е измислено.

  7.   Марсело каза той

    Гилермо, напълно съм съгласен с теб, "Не всичко е измислено" и това, което е измислено, може да се модифицира. Трябва да извлечете максимума от инструментите и да използвате този, който най-добре отговаря на вашите нужди.

  8.   Рикардо каза той

    За програмиране първият език, който се учи, е английският, след това този, който ги привлича най-много и изглежда най-красив

    1.    ChrisADR каза той

      Не го бях написал, но вярно 🙂 познаването на английски помага много, тъй като повечето езици са написани на него, но и защото по-голямото количество информация от първа ръка също Благодаря ви много за споделянето

  9.   Рубен Салгадо каза той

    Отлична статия, освен че мотивира.

    1.    ChrisADR каза той

      Много любезно, много благодаря 🙂 Поздрави

  10.   Гонсало Мартинес каза той

    Програмирането е да знаете как да разсъждавате и да превеждате тези разсъждения в инструкции.

    Две разяснения относно статията:

    1) Въз основа на моя опит като учител по програмиране от почти 10 години, няма значение с какъв език учиш, а как учиш и колко сложен е.

    Мисля, че език, който може да се научи по структуриран начин и след това да се премине към други по-сложни неща, е по-лесен, отколкото да се започне с език като Java от самото начало.

    По-лесно е да научите нещо като Hello World в C или Pascal като основа, отколкото с няколко реда (PROGRAM в случая на Pascal, или #include В случая на C) можете да започнете да разработвате алгоритъма и директно да кодирате програмата с нейната логика, както в Java, която сама по себе си се нуждае от клас, метод и някои други неща, които за начинаещи са претоварване с информация ненужни и това може да се игнорира и да се премине към други неща, но това са понятия, които съществуват и според мен пренебрегването на нещата не е добър начин за учене, особено ако езикът ви принуждава да ги използвате. Това е като да започнете тренировка за цел за първи път с М-16 и да стреляте с месеци в полуавтоматичен режим, като държите дръжката с две ръце като пистолет.

    2) Дали даден език се интерпретира или компилира, зависи от неговото изпълнение, а не от самия език. Например, ако се използва Python, за уеб приложение, което използва wsgi (или mod_wsgi в apache, или uwsgi за Nginx), кодът на python се компилира при стартиране на съответния модул, генерирайки .pyc файлове

    Съществуват и двоични файлови генератори за java (които генерират естествени двоични файлове вместо байт код) или компилатори на php скриптове в чисти двоични файлове.

    По отношение на това, което казват за PHP, това е просто език, създаден в друга епоха, имайки предвид други неща и без да се вземат предвид аспекти, които не са съществували по това време. Ясно е, че фактът, че е най-използван, не го прави най-добрия за нищо на света, но има реалност: това е езикът, с който има най-голям шанс да си намериш работа във всички програми. Знаейки, че не боли, дори да не ви харесва.

    Дори аз работя като системен администратор от няколко години и оставих работата на разработчика, на всеки толкова често ми се налага да влагам PHP код в нещо.

    1.    ChrisADR каза той

      Здравей, Гонсало, благодаря за споделянето,

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

      Тъй като пространството е ограничено, основната цел на публикацията е да покаже на читателите, които искат да програмират, че съществуват два велики езикови свята, че "традиционно" тълкуваните са по-"прости", че "традиционно" съставените са малко по-сложен, но си струва това ниво на сложност да има по-солидно разбиране и че всеки човек трябва да избере езика, тъй като в зависимост от подхода на програмиране, той ще може да избира своите любими проекти и в същото време ще може да разбира какво четат и / или пишат 🙂

      Отново много благодаря, поздрави.

      1.    Гонсало Мартинес каза той

        Това е грешка, няма компилирани или интерпретирани езици, има интерпретатори и компилатори за всеки език, както за различните случаи.

        Не е претоварване с информация, ако го споменем сега, грешка е да направим такова изявление. Според мен би било по-продуктивно да игнорирате преводачите, ако не искате да претоварвате с информация.

        1.    ChrisADR каза той

          Благодаря за разяснението, ще го взема предвид, когато се върна към темата. Наздраве

  11.   Ares каза той

    Какъв език препоръчвате за сървърната страна, като се има предвид, че PHP не е в полза?
    Същото за базите данни, не знам дали ще има нещо по-добро и по-модерно от mySQL.

    1.    ChrisADR каза той

      PHP не е изпаднал в немилост ... Всеки език има своя жизнен цикъл и със сигурност php вече е език, който влиза в мащаба на „зрял“, което го прави полезен на бизнес ниво, където стабилността е преди всичко ... Като някои банки, където тя все още е разработена в java, която е по-„зряла“ от php и със сигурност има своите последователи и недоброжелатели ... И да не говорим за COBOL ...

      Ако това, което търсите, е еднаквост и модерност, javascript се превръща в един от любимите на така наречените „пълни разработчици на стекове“, въпреки че рубиновата парадигма или „простотата“ на python също са добри препратки ... Дори perl може да бъде опцията в зависимост от нуждите 🙂

      В днешно време ORM (обектните релационни карти) поема много сила по отношение на управлението на релационни данни. Той преминава от SQL синтаксис към клас и обработка на атрибути ... Почти всички езици (ако не всички) обработват някаква ORM.

      . Mongo DB е алтернатива на релационните бази данни, която стана доста важна; обаче, необходимо е да се знаят нейните плюсове и минуси и да се провери дали това би било най-доброто решение в зависимост от конкретната нужда.

      Надявам се да ви помогне, поздрави 🙂

      1.    Ares каза той

        Благодаря, ще проверя това.

      2.    Ares каза той

        Забравих.

        Какво ми препоръчвате да работя с JAVA в Linux?
        Ако можете да правите разлика между безплатно и затворено по-добре.

        1.    ChrisADR каза той

          Eclipse и NetBeans са с отворен код, не съм сигурен дали има такъв, който да е чисто безплатен софтуер, имам навика да използвам vim, защото понякога количеството код прави използването на цяла IDE бавно и склонно към грешки при изпълнение. Поздрави 🙂

        2.    ПолЗета каза той

          За да работя с java в Linux, използвам IntelliJ, препоръчвам ви.

          1.    ChrisADR каза той

            PS, IntelliJ е патентован софтуер 🙂

  12.   je каза той

    Момчета също помнят, че ... Работя в банка и ви казвам, че езиците за програмиране са на заден план, за да оставят SQL и съхранените процедури първо.

    1.    Гонсало Мартинес каза той

      Трябва да ги вземете предвид съхранените процедури, но като не използвате преносим език между двигателите, поне според моя опит, винаги става въпрос за избягването им, освен ако няма друга опция.