Програмування: Психологія комп’ютерів

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

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

Спочатку я нападу на найпростіший момент, перш ніж вдаватися до деталей.

Чому я не збираюся займатися технічним постом?

Ну для тих, хто прочитав мій пост про найкраща команда Linux, ви трохи знатимете про причину цього фокусу. Технологія завжди змінюється, і якщо я напишу щось сьогодні, якщо публікація буде прийнята добре, то мені завжди доведеться оновлювати інформацію. У найпоширеніших мовах сьогодні єдине впевнене - це зміни. Під цим я маю на увазі (і програмісти можуть довести, що я правий) фреймворки завжди ростуть і змінюються на основі своїх ядер, це тому, що виникають помилки, деякі з них можна вважати простими помилки, тоді як інші можуть стати вразливості. Це причина, чому написання допису про конкретну мову сьогодні гарантує мені, можливо, кілька місяців корисності, в кращому випадку один-два роки, але це не ідея 🙂

Електроенергія важлива

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

Проблема

Зміна апаратного програмування дорога і складна 🙂 (принаймні так мені сказали 🙂 ). Ось чому з’явилися процесори, які насправді абстрагують цей апаратний рівень, щоб дати нам кілька команд, щоб ми могли робити все, що було можливо за допомогою апаратного забезпечення, лише зараз на апаратному рівні. програмне забезпечення.

Процесори

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

Реєстри

Регістри - це простір, в якому процесор зберігає інформацію, щоб мати змогу виконувати роботу над ядром, залежно від архітектури, вони можуть мати різний розмір і порядок, але простою функцією є збереження даних, що повідомляють процесору один із наступних видів робіт: переміщення даних, арифметики та логіки та управління потік. Все можна узагальнити за цими типами функціональних можливостей.

Бінаріо

Процесори працюють на бінарному рівні, це означає, що вони лише розуміють 0sy 1так 🙂. Дивний факт тут 😀пам’ятаєте дозволи GNU / Linux? Ну, Ви ніколи не замислювались, як процесор насправді розпізнає ці дозволи? Простий 🙂 двійковий. На найнижчому рівні процесор буде розуміти дозволи як послідовність 0s та 1s, і це є причиною того, чому вісімка, яку ми формуємо, має значення для виконання, 2 для читання та 4 для письма. Тим, хто вміє читати двійкові файли, вони зрозуміють, що:

111100101111

Вони ставлять дозволи на читання, запис і виконання для групи інші ставлячи виконання та читання для групи група і читати лише для власника файлу. Для найдопитливіших останні три 1 активують setguid, setuid у-ель- sticky bit. Якщо ви не знаєте, що це за двійковий файл, я можу пояснити це в іншому дописі, якщо ви не знаєте про setuid, setgid та липкий біт, то я залишу це вам 😉, але я можу пояснити це в іншому місці якщо необхідно.

Коли цікавість дзвонить ...

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

Психологія

Програмування - це мистецтво вчитися читати думки 🙂 Я хочу розпочати цей розділ цитатою, яку я прочитав давно, Едсгер Дейкстра сказав:

Якщо налагодження - це процес налагодження, то програмування має бути процесом їх введення

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

Комп’ютери не помиляються

Ми помиляємось, команди завжди обмежуватимуться відтворенням того, що ми їм говоримо, вони нічого не передбачають, нічого не інтерпретують, нічого не заперечують, вони просто читають і діють. Ось чому в іншій книзі C я коли-небудь читав щось подібне:

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

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

Все - це психологія

Кожна мова, фреймворк, програміст поважає та дотримується якоїсь філософії, а якщо ні, то у неї не надто перспективне майбутнє. Ті з нас, хто працює над UNIX та похідними, напевно, знатимуть стару фразу:

Робіть одне, і робіть це дуже добре.

Цій філософії слідують деякі проекти, такі як ядро, досить маленькі функції, які роблять лише одне, але роблять все можливе.

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

Навчіться читати думки

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

Щоб бути послідовним

Багато програмістів та спеціалістів кажуть, що нам потрібно вийти зі свого зона комфорту, і хоча це правда, для підтримання певних процесів і форматів також є більш ніж необхідним. Це просто пояснити, наш розум повторюється і поважає структури, якщо ви пишете код однаково щодня, за короткий час ви перестанете думати про форму і зможете сконцентруватися на ній. фон. Це дозволяє побачити логіка програми замість синтаксис мови. І це причина, чому я вважаю, що вивчення поняття завжди буде важливішим за навчання форми. Це особиста думка, але я сподіваюсь, що прочитавши все це, ви зможете зрозуміти, чому я вважаю це таким чином 🙂 також хтось, кому доводилося програмувати на C, Java, Javascript, Python, Ruby, PHP та ін. концепції полегшують написання коду.

У підсумку

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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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

  1.   Хав'єр Г. Дельгадо - сказав він

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

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

      Привіт Хав'єр, дякую тобі 🙂 Я думаю, це дуже важливо, тому що вони завжди хотіли навчити мене лише відтворювати код, знаменитий Ctrl + C ... Ctrl + V 🙂, але я ніколи не дозволяв себе тягнути цим, навіть якщо це найпростіша проблема у світі, я волів би написати її, аніж скопіювати її від когось іншого, це викликає у мене відчуття, ніби це моє творіння.
      привіт

  2.   Балуа - сказав він

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

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

    Привіт Балуа 🙂
    Ну, я придумаю щось для наступного. Дещо складно впорядкувати все таким чином, щоб можна було переглядати нитку з будь-якого допису, але я спробую, щоб цей (і кілька інших, які мене просили) дуже скоро. Дякуємо за ваш коментар. На ура

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

    Перлина статті! Сподіваюся, наступного ...