Вибір першої мови програмування

Безумовно, це одне з питань, яке найбільше виникає в моїй поштовій скриньці, коли мова йде про програмування. Якщо ми збираємося розпочати серію статей, які дозволять вам навчитися програмувати та повернути безкоштовні знання у вигляді внесків до вільних програм / спільнот з відкритим кодом по всьому світу, необхідно відповісти на це основне, якщо трохи складно питання. Яку мову програмування слід вивчити?

трохи історії

Для того, щоб почати розуміти та вибирати мову програмування, ми повинні спочатку трохи знати їх історію, їх використання та функції, а також те, як вони вирішують різні потреби з часом.

Машинні мови (низький рівень)

Загальновідомий як збірка, - це мови програмування, які ми могли б визначити як діалекти більш загальної мови ... Це звучить дещо складно, але я збираюся це навести як приклад ... Ми знаємо, що універсальною мовою обчислень є електрику, це означає, що в кінцевому рахунку те, що читає комп’ютер, є 0sy 1так, назвемо це eкомп'ютерна англійська. У цьому прикладі іспанська мова є основним правилом, але, як ми добре знаємо, іспанська мова, якою розмовляють латиноамериканці, не є такою ж, як розмовна мова в Іспанії, і навіть незважаючи на це, іспанська мова Перу не однакова з іспанською Аргентиною. Очевидно, що всі ми маємо майже однакові слова (0sy 1s), але використання та значення можуть відрізнятися залежно від контексту.

Це відбувається на рівні процесора. Коли ми говоримо про обчислювальні архітектури, (amd64, intel, arm, ...) ми маємо на увазі діалект цього комп'ютер іспанська. Це пов’язано з тим, що різні компанії по-своєму розуміють порядок і значення, тому деякі деталі різняться, наприклад, потік струму або порядок, у якому вони збираються зберігатися. 0sy 1s.

Ці мови програмування надзвичайно швидкі, оскільки вони працюють на найнижчому можливому рівні програмування, але вони сильно залежать від архітектури і, звичайно, трохи складніші для вивчення, ніж інші. Для цього часто потрібна ширша база понять, щоб перетворити дані та запустити на них корисні речі. Для любителів відеоігор прикладом можуть бути консолі SEGA, які використовували Асамблею для програмування своїх ігор. Очевидно, що в той час обсяг пам'яті був мінімальним порівняно з сучасним, і потрібно було оволодіти мовою, яка могла бути швидкою і створювати легкі програми.

Мови високого рівня

Ця велика група споглядає ті мови, які з’явилися після збірка. Необхідність отримання портативного коду призвела до появи групи мов складено. Серед них першим скористався С, який з 70-х років переважав у програмуванні на рівні операційної системи.

Складені мови

Давайте побачимо практичний приклад того, що я коментую. Давайте розглянемо дуже просту програму на мові C, яка друкує один рядок коду.

Власний. Крістофер Діас Ріверос

Після його складання ми маємо наступне:

Власний дизайн: Крістофер Діас Ріверос

Але тепер давайте подивимося, що нам довелося б написати, щоб повторити той самий результат у коді збірки:

Власний. Крістофер Діас Ріверос

Це переклад наших 3 рядків коду з simple.c, файл simple.s створюється за допомогою команди gcc -S simple.c і це те, що наш процесор зрозумів би на діалекті збірка. Очевидно, для того, щоб створити виконуваний файл, який складається з 0sy 1s файл потрібно обробити simple.s і підключити його до спільних бібліотек нашої системи. Це робиться за допомогою асемблер (as) і роз'єм (ld).

Складені мови дають велику перевагу перед мовами низького рівня, вони є портативні. Переносимість забезпечує код, який може виконуватися на різних процесорах без необхідності генерувати конкретний код для кожної архітектури. Ще однією очевидною перевагою є простота, яку вона використовує при читанні та написанні коду. Серед основних його недоліків ми маємо високу складність, оскільки порівняно з наступними типами мов, які ми побачимо, свобода, яку пропонує C, може бути шкідливою, якщо ви не знаєте, як керувати, це, безумовно, як здача пістолета , може статися так, що за браком досвіду людина закінчує стріляти власною ногою, намагаючись очистити пістолет.

Інтерпретовані мови

У цій групі у нас велика різноманітність мов, серед найважливіших - Python, Ruby, Javascript, PHP тощо ... Основна ідея цих мов полягає у забезпеченні швидкого способу створення та запуску програм , це тому, що багато складних процесів виконуються в інтерпретаторі, а програмування логіки - це те, що реалізовано в коді. Давайте розглянемо той самий приклад вище, але цього разу написаний на Python:

Власний. Крістофер Діас Ріверос

Серед найвидатніших речей ми бачимо, що перший рядок відповідає за виклик інтерпретатора (програми, яка буде виконувати нашу програму), а наступний код є більш "простим", ніж його версія на С, оскільки виконується вся важка робота на перекладача.

Власний. Крістофер Діас Ріверос

Інтерпретовані мови забезпечують розробнику більший рівень безпеки, оскільки вони мають більш суворий контроль безпеки (ОСТОРОЖНО, щоб вони не були досконалими, оскільки навіть найкращі можуть робити помилки), і ми більше не зазнаємо ризику стріляти зі зброї, не усвідомлюючи це, оскільки з першої спроби перекладач підніме попередження, і виконання буде скасовано. Основний недолік стає очевидним під час виконання програми, оскільки вона працює повільніше, ніж її двійковий аналог, саме завдяки більшій кількості обробки, щоб забезпечити роботу коду. Якщо програма не вимагає надзвичайно коротких термінів, різниця може залишитися непоміченою, але якщо мова йде про тисячі або мільйони даних в секунду, різниця стає помітно помітною в компільованих мовах.

Набір тексту

Це характеристика мов програмування, це може бути сильно слабко набрали. Я збираюся залишити цю тему для іншого допису, оскільки необхідно і цікаво зрозуміти, як пам'ять зберігається в програмі, але наразі нам потрібно лише розрізнити: сильно набрані мови - це ті, що вимагають знання тип даних, який буде працювати над змінною або константою, тоді як слабко типи можуть виконувати перетворення так неявний і все буде залежати від ієрархії перетворень, за якою слідує мова. (якщо це зараз не зрозуміло, не біда, ми залишимо це на потім)

Парадигми

Як і все у світі GNU / Linux, мови програмування базуються на парадигмах, а навколо них створюються спільноти. Наприклад, ми маємо Фонд Пітона o рубін o PHP o Баш (у цьому випадку це спільнота 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.   Рубен - сказав він

    Думаю, помилково ставити запитання "яку мову вибрати?" Я один з тих, хто вважає, що мова - це найменше, головне - вивчити основи програмування та "мислити обчислювально". Визначтесь із синтаксисом, його введенням, чи підтримує він ООП, його корисність тощо. Я думаю, це те, що природно з’явиться в студії, і зрештою, кожен програміст знає більше 1, 2 та 3 мов ... і завдяки концепціям програмування (а не синтаксису), які він має, він здатний програмувати мовою, на якій у вас ще немає досвіду.
    Однак для ініційованих я думаю, що гарною мовою може бути Python за простоту, але перш за все, піти трохи далі, вивчити алгоритми і знати, як все працює "всередині".

    Привіт ChrisADR

    1.    ChrisADR - сказав він

      Привіт Рубен, дякую за поділ
      Щось, чого я навчився з часом у світі програмування, це те, що "той, хто багато охоплює, той не стискає", і під цією відомою фразою я маю на увазі, що багато разів, і особливо найбільш захоплений, вирішують спробуйте все трохи і отримайте дуже швидкі повороти з точки зору навчання кодуванню. Я вважаю, і це моя особиста думка, що хороший розробник повинен знати та володіти мовою компілятора та мовою інтерпретатора, крім того, що він має поняття про якийсь діалект Асамблеї.
      Причина полягає в наступному, прототипування завжди має бути чимось простим і швидким, простим для генерації, і це, як правило, показує результат, але якщо цього недостатньо, повинен бути "план B", до якого слід вдатися, коли перекладач прибуде до його межа.
      Знання діалекту Асамблеї не лише додає вам впевненості, але й вчить думати "обчислювально", але, очевидно, ця частина є найскладнішою з усіх, і це, безумовно, те, до чого приходять не всі програмісти.
      Але повернемось до теми, оскільки головна ідея, на мою думку, полягає в тому, "вибрати мову і ВЧАТИ БАГАТО", бо насправді єдиним способом досягти успіху в програмуванні є читання та написання коду, і це те, що я навчився у ядерне співтовариство Коли ви зберігаєте однаковий синтаксис протягом тривалого часу, ви перестаєте бачити форму і починаєте турбуватися про ПОВІДОМЛЕННЯ. Ідея вибору мови або синтаксису з самого початку полягає в тому, що людина може звикнути до її читання та письма таким чином, що можна починати читати ЗНАЧЕННЯ програми замість синтаксису програми.
      Це основна причина цього допису, що кожен обирає свою мову, щоб далі ми могли пояснити поняття, можливо, з цим прояснюються сумніви 🙂
      Вітаю та дякую за поділ.

  3.   deibis contreras - сказав він

    дякую за допис це було добре.

    привіт

    1.    ChrisADR - сказав він

      Привіт Deibis, дякую за поділ sharing Вітаю

  4.   ХорхеФС - сказав він

    Моя порада: будь-що, крім PHP. 20 років тому PHP мав певний сенс у своєму існуванні через високий рівень складності програмування Інтернету іншою мовою за допомогою CGI. Але сьогодні існує велика різноманітність фреймворків, які роблять веб-розробку набагато приємнішою на потужних мовах, таких як Django для Python, Spring для Java або Rails для Ruby. Незважаючи на те, що на даний момент PHP є на всіх діаграмах популярності мов, на мій погляд, PHP з часом втратить свою актуальність.
    Я настійно рекомендую починати з C \ C ++, щоб зрозуміти реальність програмування, хоча крива навчання крута.
    Привіт.

    1.    ChrisADR - сказав він

      Привіт, Хорхе! ринку, на той час вони були піонерами, і, звичайно, сьогодні сучасні альтернативи (Js, Python та Ruby) змогли вдосконалити спосіб представлення коду, який можна читати та модифікувати без особливої ​​праці.
      Я також схильний до того, що люди в якийсь момент свого життя вивчають C / C ++, я почав з Java, але, гадаю, саме в цьому полягає краса програмування, можна починати з чого завгодно, доки ви будете послідовними, це буде будь корисним 🙂 На здоров’я

    2.    Рубен - сказав він

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

      Я нагадую вам, що Рубі на рейках, як Джанго, 12 років! Якої квоти вони досягли за цей час? І звичайно, ми говоримо про 2 фреймворки, які практично мають монополію і не існує типу фрагментації. Які ще серйозні альтернативи я маю? Казати, що PHP втратить актуальність, дуже мало сенсу.

      Тепер, коли Python в моді, оскільки він має швидкий кривий навчання, це проста мова, і вони продають його вам, оскільки «станьте програмістом за 20 годин з Python і працюйте над ним», за підтримки таких компаній, як Google і те, що зараз існує мода шукати нові мови (Go, Dart….), щоб виділити себе в резюме (або як щоденне народження 50 фреймворків для Javascript!), не означає, що все змінюється.

      Рубі - дуже цікава мова, але вона настільки розривається з усталеними шаблонами, що мені важко повірити, що вона стала більш популярною, ніж PHP. Звичайно, Рубі, на мою думку, є найгіршою мовою для початку програмування з усіх.
      Я розумію, що ви говорите мені, що Python може бути приємним у програмуванні, навіть Ruby з його багатьма особливостями ... але Spring з Java? Справді? Java може бути багатьма речами ... але приємнішими, ніж Python та PHP?

      Все дуже добре починати з Python, але оскільки ви дотримуєтесь лише Python, ви ризикуєте, що багато компаній повірять, що ваш рівень програмування не є "глибоким" (навіть якщо ви дуже добре володієте Python). Це тому, що ви конкуруєте з іншими "багатоцільовими" мовами, такими як C ++ або Java. Ви можете програмувати на Python, не знаючи різниці, який біс є покажчиком, побітовими операціями, як працює збирач сміття та довгими etcetera.
      Python, мабуть, найменш схожий на "класичне програмування", яке існує і може розглядатися як "дитяча мова" (зрозумійте метафору), а це, в свою чергу, є перевагою та недоліком.

      1.    ХорхеФС - сказав він

        "Python, мабуть, найменш схожий на" класичне програмування ", яке існує і може розглядатися як" мова для дітей "(зрозумійте метафору), а це, в свою чергу, є перевагою та недоліком". LOL, це одна з найсмішніших речей, які я бачив, сказані про Python. Ви коли-небудь насправді вивчали Python?
        Як довго це було у світі поза PHP?
        Друг PHP народився мертвим. PHP (\ d +) несе велику навантаження через дуже поганий початковий дизайн, і для підтримання спільноти користувачів він продовжує дуже ретельно перетягувати всі ці початкові помилки проекту. PHP народився без модульності, з великою кількістю функціональних можливостей у стилі С (що, до речі, я не знаю, звідки ви його взяли, оскільки його синтаксис схожий на С, його можна легко перенести на інші мови). Мова високого рівня, якою повинен поводитися 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 має дуже поганий дизайн об'єктно-орієнтованого програмування (ООП).
        - Ви ще не можете перевантажити операторів.
        -Сюрприз, function overloading у PHP це не те, що ви, природно, очікуєте від цієї концепції.
        ... .. і мені просто набридло хе-хе.
        Привіт.

        1.    Рубен - сказав він

          Я вклав у дужки "зрозуміти метафору" (порівнявши 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 -> Перейти -> (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, дещо «мінімалістської», м’яко кажучи. Серед його функцій є одна зйомка області екрану, але що трапиться, якщо я погано сфотографую? Що ж, мені потрібно вийти і знову увійти в програму, щось втомливе, звичайно, допоможе мені кнопка із написом «Перезавантажити» або щось подібне, що дозволяє мені зробити новий знімок, не виходячи і знову ввійти. Це невелика проекту програмування, я ніколи нічого не програмував у рамках GNOME, тому, очевидно, мені потрібно багато чому навчитися, перш ніж надсилати свій "патч" за допомогою нової кнопки, але попутно я вчуся програмувати і, сподіваюся, це особливість це допоможе не одному, коли стане доступним для всіх.

      Це приклад, це щось просте, і, безумовно, будь-який інший "експерт" -програміст міг би це вже зробити, але через очевидну нестачу часу це не було так, зараз я маю можливість робити це, насправді не супер програміст.

      Тепер від вас залежить лише знайти щось, що спростило б ваше життя в тому програмному забезпеченні, яким ви так часто користуєтесь, і краса в тому, що якщо ми будемо слідувати порадам, які я дам вам у наступних статтях, мова не матиме значення, тому що Ви будете знати основи, щоб почати розуміти код, який Ви читаєте, і модифікувати його, щоб робити те, що Ви хочете, це дуже особливе відчуття 🙂

      Вітаю і ще раз дякую

      1.    ніхто - сказав він

        Я думаю, що лише після того, як я відкрив програму gnome captures, найпростіше перейти до комбінацій клавіш і призначити три комбінації 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) Виходячи з мого майже десятирічного досвіду викладача програмування, не важливо, з якою мовою ви вивчаєте, а як ви вивчаєте і наскільки це складно.

    Я думаю, що мову, яку можна вивчити структуровано, а потім переходити до інших більш складних речей, простіше, ніж починати з такої мови, як Java, з самого початку.

    Легше вивчити щось на кшталт Hello World на мові C або Паскаль як основу, ніж з кількома рядками (ПРОГРАМА у випадку Паскаля, або #include У випадку C) ви можете почати розробляти алгоритм і кодувати програму з її логікою безпосередньо, як у Java, яка сама по собі потребує класу, методу та деяких інших речей, які для початківця є непотрібним перевантаженням інформації, і це цілком можна ігнорувати і переходити до інших речей, але це поняття, які існують, і, на мою думку, нехтування речами - це не найкращий спосіб дізнатися, особливо якщо мова змушує вас ними користуватися. Це все одно, що вперше почати цільову практику з М-16 і стріляти місяцями в напівавтоматичному режимі, тримаючи ручку двома руками, як пістолет.

    2) Інтерпретація чи компіляція мови залежить від її реалізації, а не від самої мови. Наприклад, якщо використовується Python, для веб-програми, яка використовує wsgi (або mod_wsgi в apache, або uwsgi для Nginx), код python компілюється під час запуску відповідного модуля, генеруючи файли .pyc

    Існують також генератори двійкових файлів для Java (які генерують власні двійкові файли замість байт-коду) або компілятори php-скриптів у чистих двійкових файлах.

    Щодо того, що вони говорять про PHP, це просто мова, розроблена в іншу епоху, з урахуванням інших речей, без урахування аспектів, які на той час не існували. Очевидно, що той факт, що він найчастіше використовується, не робить його найкращим для будь-чого у світі, але є реальність: це мова, з якою існує найбільший шанс отримати роботу в усіх програмуваннях. Знаючи, що це не зашкодить, навіть якщо вам це не подобається.

    Навіть я працюю системним адміністратором кілька років і залишив роботу розробника, раз на раз мені доводиться вкладати PHP-код у щось.

    1.    ChrisADR - сказав він

      Привіт Гонсало, дякую за поділ,

      Безумовно, якщо говорити про непотрібні інформаційні перевантаження, знання того, що одну й ту саму мову можна інтерпретувати або скомпілювати - це те, що не потрібно на цьому етапі. Звичайно, реалізація важлива, але якщо ми говоримо, що на цьому рівні, ми не створюємо більше, ніж плутанина. Так само не розглядаються питання об’єктно-орієнтованого програмування або інші концепції, які потрібно дозувати поступово, щоб у людей не запаморочилося.

      Оскільки простір обмежений, основною метою публікації є показати читачам, які хочуть програмувати, що існують два великі світи мов, що "традиційно" інтерпретується більш "просто", що "традиційно" складене трохи більше "складний", але варто того рівня складності, щоб мати більш тверде розуміння і що кожна людина сама обирає мову, оскільки залежно від підходу до програмування, вона зможе обирати свої улюблені проекти і одночасно час вони зможуть зрозуміти, що вони читають та / або пишуть 🙂

      Ще раз спасибі, вітаю.

      1.    Гонсало Мартинес - сказав він

        Це помилка, немає скомпільованих чи інтерпретованих мов, є інтерпретатори та компілятори для кожної мови, як для різних випадків.

        Згадувати це зараз не є інформаційним перенапруженням, якщо робити таку заяву є помилкою. На мою думку, було б продуктивніше ігнорувати перекладачів, якби ви не хотіли перевантажувати інформацію.

        1.    ChrisADR - сказав він

          Дякую за роз'яснення, я прийму це до уваги, коли повернусь до теми. Ура

  11.   Арес - сказав він

    Яку мову ви рекомендуєте для серверної сторони, враховуючи те, що PHP впав у немилість?
    Те саме для баз даних, я не знаю, чи буде щось краще і сучасніше, ніж mySQL.

    1.    ChrisADR - сказав він

      PHP не впав у немилість ... Кожна мова має свій життєвий цикл, і php, безумовно, вже є мовою, яка входить у шкалу "зрілих", що робить її корисною на бізнес-рівні, де стабільність передусім ... Як і деякі банки, де він все ще розробляється в Java, яка є більш "зрілою", ніж php і, безумовно, має своїх послідовників і недоброзичливців ... І не кажучи вже про COBOL ...

      Якщо те, що ви шукаєте, - це одноманітність та сучасність, javascript стає одним із фаворитів так званих «розробників повного стеку», хоча парадигма рубіну або «простота» python теж є хорошими посиланнями…. Навіть perl може бути варіантом залежно від потреб 🙂

      В даний час ORM (об'єктні реляційні картографічні програми) набирає багато сили з точки зору управління реляційними даними. Він переходить від синтаксису SQL до обробки класів та атрибутів ... Майже всі мови (якщо не всі) обробляють певну ORM.

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

      Сподіваюся, це допоможе вам, вітаю 🙂

      1.    Арес - сказав він

        Дякую, я це перевірю.

      2.    Арес - сказав він

        Я забув.

        Що ви рекомендуєте мені для роботи з JAVA в Linux?
        Якщо ви можете краще розрізнити безкоштовне та закрите.

        1.    ChrisADR - сказав він

          Eclipse та NetBeans є відкритими, я не впевнений, чи є щось, що є суто безкоштовним програмним забезпеченням, я маю звичку використовувати vim, тому що іноді кількість коду робить використання цілої IDE повільним і схильним до помилок виконання. Вітаю 🙂

        2.    Павло Зета - сказав він

          Для роботи з java в Linux я використовую IntelliJ, рекомендую вам.

          1.    ChrisADR - сказав він

            PS, IntelliJ є запатентованим програмним забезпеченням 🙂

  12.   je - сказав він

    Хлопці також пам’ятають, що ... Я працюю в банку і кажу вам, що мови програмування відходять на другий план, щоб першими йти процедури SQL та Stored.

    1.    Гонсало Мартинес - сказав він

      Ви повинні брати їх до уваги збережені процедури, але, не використовуючи переносну мову між движками, принаймні на мій досвід, мова завжди йде про їх уникнення, якщо немає іншого варіанту.