Programmeren: de psychologie van computers

We zijn allemaal nauw verwant met programmeren, of het nu als gebruiker, als beheerder, als programmeur zelf is, maar uiteindelijk is het iets dat in de loop van de jaren meer verbonden zal zijn met ons leven.

In dit artikel (het begin van een kleine serie die ik ga maken), Wil ik een paar concepten met jullie delen over wat ik in de loop der jaren heb ontdekt over programmeren. Ik pretendeer niet overdreven technisch te zijn, ik zal later uitleggen waarom. Maar wat ik wel van plan ben, is om ze de wereld met mijn ogen te laten zien, en als ze het leuk vinden hoe het eruit ziet, laat ze er dan een beetje in duiken 🙂

Ik zal eerst het eenvoudigste punt van allemaal aanvallen voordat ik in detail ga.

Waarom ga ik geen technische post doen?

Nou, voor degenen die mijn bericht over hebben gelezen beste linux-opdracht, weet je een beetje over de oorzaak van deze focus. De technologie verandert altijd, en als ik vandaag iets schrijf en de post goed wordt ontvangen, moet ik de informatie altijd bijwerken. In de meest voorkomende talen van vandaag is verandering het enige dat zeker weet. Hiermee bedoel ik (en de programmeurs kunnen bewijzen dat ik gelijk heb) frameworks groeien en veranderen altijd vanuit hun kernen, dit komt omdat er fouten optreden, sommige kunnen als eenvoudig worden beschouwd bugs, terwijl anderen kunnen worden kwetsbaarheden. Dit is de reden waarom het schrijven van een post over een specifieke taal mij vandaag misschien een paar maanden bruikbaarheid zou garanderen, in het beste geval een of twee jaar, maar dat is niet het idee

Elektriciteit is belangrijk

Degenen onder jullie die een beetje onderzoek hebben gedaan naar de lagere programmeertalen van software, zullen weten dat het allemaal teruggaat tot elektriciteit. In het verleden werd programmeren gedaan op hardwareniveau, dit betekent dat die oude klokken, rekenmachines en vele andere apparaten hun bestemming konden vervullen door te programmeren door hardware.

Het probleem

Het wijzigen van hardwareprogrammering is duur en ingewikkeld 🙂 (dat is tenminste wat ze me vertelden 🙂 ). Dit is de reden waarom processors zijn ontstaan, die eigenlijk die hardwarelaag abstraheren om ons een paar commando's te geven om alles te kunnen doen wat mogelijk was via hardware, alleen nu in de hardwarelaag. software.

Processoren

De huidige processors hebben een beperkt aantal functies, genaamd instructies in veel boeken. Hiermee kunt u de meest elementaire functies uitvoeren die hardware kan uitvoeren en informatie mobiliseren via het geheugen van de computer.

registers

Registers zijn een ruimte waarin de processor informatie opslaat om werkzaamheden aan de kernel te kunnen uitvoeren, afhankelijk van de architectuur kunnen ze een andere grootte en volgorde hebben, maar op een eenvoudige manier is het hun functie om gegevens op te slaan die de processor vertellen een van de volgende soorten werk: gegevens verplaatsen, rekenen en logica, en controle over stromen. Alles kan worden samengevat in dit soort functionaliteiten.

binair

Processors werken op binair niveau, dit betekent dat ze alleen begrijpen 0sy 1ja 🙂. Een merkwaardig feit hier 😀onthoud de GNU / Linux-toestemmingen? goed, heb je je ooit afgevraagd hoe de processor die toestemmingen daadwerkelijk herkent?? Eenvoudig 🙂 binair. Op het laagste niveau begrijpt een processor de machtigingen als een opeenvolging van nullen en enen, en dat is de reden waarom het octaal dat we vormen de waarden heeft voor uitvoering, 2 om te lezen en 4 om te schrijven. Voor degenen die binair kunnen lezen, zullen ze begrijpen dat:

111100101111

Ze zetten de lees-, schrijf- en uitvoeringsrechten voor de groep anderen terwijl ze optreden en lezen voor de groep groep en alleen lezen voor de bestandseigenaar. Voor de meest nieuwsgierigen activeren de laatste drie enen de setguid, setuid en sticky bit. Als je niet weet wat dit binaire bestand is, kan ik het in een andere post uitleggen, als je dit niet weet over setuid, setgid en het plakkerige bit, laat ik het aan jou over 😉 maar ik kan het ook elders uitleggen indien nodig.

Als nieuwsgierigheid roept ...

Welnu, als je me hier bent gevolgd, dan zou je nieuwsgierigheid veel dingen moeten beginnen te vragen, de eerste die ik wil beantwoorden (en misschien de enige die dit bericht me toestaat omdat ik al veel schrijf) is: Als de oproepen hetzelfde zijn, waarom zijn de programma's dan zo verschillend?

Psychologie

Programmeren is de kunst om gedachten te leren lezen 🙂 Ik wil deze sectie beginnen met een quote die ik lang geleden heb gelezen, zei Edsger Dijkstra:

Als foutopsporing het proces van foutopsporing is, dan moet programmeren het proces van introductie zijn

En ik kan geen betere manier vinden om dit allemaal uit te leggen 🙂 waarom is programmeren de kunst van het introduceren van fouten? zullen er zich op dit moment meer dan één afvragen. Het antwoord is simpel, omdat onze geest menselijk is en mensen fouten maken - het zit in onze aard, en dat zal zo zijn zolang de mens op de planeet bestaat.

Computers zijn niet verkeerd

Wij zijn degenen die fouten maken, de teams zullen zich altijd beperken tot het reproduceren van wat we hen vertellen, ze nemen niets aan, ze interpreteren niets, ze hebben nergens bezwaar tegen, ze lezen en handelen gewoon. Daarom heb ik in een ander C-boek ooit zoiets gelezen:

C is grof taalgebruik, je kunt er veel mee, maar het zal je er nooit van weerhouden om jezelf in de voet te schieten als je dat wilt, tenminste, zo vertel je het.

Dit is een nogal merkwaardige waarheid 🙂 Aangezien het bij het werken op een zo laag niveau mogelijk is dat veel uitgevoerde bewerkingen destructief kunnen zijn, iets wat niet gebeurt met talen van iets hoger niveau, aangezien de foutenpreventie-lagen ze ouder zijn.

Alles is psychologie

Elke taal, framework, programmeur respecteert en volgt een soort filosofie, en als dat niet het geval is, heeft het geen veelbelovende toekomst. Degenen onder ons die aan UNIX en afgeleiden werken, kennen waarschijnlijk de oude zin:

Doe één ding, en doe het heel goed.

Deze filosofie wordt gevolgd door sommige projecten zoals de kernel, vrij kleine functies die maar één ding doen, maar het zo goed mogelijk doen.

Als we naar andere talen gaan, zal elke taal een functie en doel hebben, sommige meer tolerant en andere beperkter, maar ze volgen allemaal hun eigen manier van denken.

Leer gedachten te lezen

Er is een vrij algemeen gezegde onder programmeurs dat er honderden manieren zijn om hetzelfde probleem op te lossen. Dit is waar, maar er is iets veel diepers aan dit aspect. Door de broncode te lezen, kun je gedachten lezen - niet zomaar elke geest, maar de geest van de programmeur (of programmeurs) die het hebben geschreven. Het is een soort virtueel en diep dagboek - het stelt je in staat om de geest van de ontwikkelaar diepgaand te kennen, en in het geval van uitgebreide projecten, kun je zien hoe hun logisch en kritisch denken in de loop van de tijd is gegroeid. Iets buitengewoons en dat voedt de geest van de jongste enorm, omdat je de beste paden kunt kennen van mensen die ze moesten ontdekken 🙂

Om consistent te zijn

Veel programmeurs en specialisten zeggen dat we uit ons moeten komen comfort zone, en hoewel het waar is, is het ook meer dan nodig om bepaalde processen en formaten te behouden. Dit is eenvoudig uit te leggen, onze geest is repetitief en respecteert structuren, als je elke dag op dezelfde manier code schrijft, zul je in korte tijd niet meer aan de vorm denken en kun je je erop concentreren. Fondo. Hierdoor kunt u de logica van het programma in plaats van de taal syntaxis. En dit is de reden waarom ik van mening ben dat het leren van de concepten zal altijd belangrijker zijn dan leren de vormen. Dit is een persoonlijke mening, maar ik hoop dat je na het lezen van dit alles begrijpt waarom ik het zo beschouw 🙂 ook verteld door iemand die heeft moeten programmeren in C, Java, Javascript, Python, Ruby, PHP en anderen 🙂 weet de concepten maken het gemakkelijk om code te schrijven.

Samengevat

Welnu, dit is de eerste stap in een serie waarvan ik hoop dat het je zal helpen anders na te denken over de kunst van het programmeren, en je zelfs uitnodigt om je te verdiepen in de concepten waarmee je de code die je hebt geschreven misschien honderden keren kunt uitvoeren, maar ze ben niet gestopt om na te denken over wat het werkelijk doet. En voor degenen die nog niet zijn begonnen met programmeren, maar wel een beetje prioriteit willen geven aan wat echt belangrijk is om te weten 🙂 Groeten


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Javier G. Delgado zei

    Een zeer gewetensvol artikel dat (in dit geval) spreekt over programmeren, misschien in een nieuwe taal die dieper programmeert, mijn steun gaat naar het volgende.

    1.    Chris ADR zei

      Hallo Javier, heel erg bedankt 🙂 Ik denk dat dit erg belangrijk is omdat ze me altijd wilden leren om alleen code te reproduceren, de beroemde Ctrl + C ... Ctrl + V 🙂 maar ik heb me hier nooit door laten slepen, zelfs niet als het is het eenvoudigste probleem ter wereld. Ik schrijf het liever dan het van iemand anders te kopiëren, het geeft me het gevoel dat het mijn creatie is.
      groeten

  2.   vlot zei

    Al aan het wachten op het volgende hoofdstuk, ben ik lang geleden gestopt met programmeren, en ik denk dat ik in een later hoofdstuk een reden voor mijn beslissing kan vinden, echt waar, sinds dit hoofdstuk neem ik mijn hoed af.

  3.   Chris ADR zei

    Hallo Balua 🙂
    Wel, ik zal iets bedenken voor de volgende. Het is een beetje ingewikkeld om alles zo te ordenen dat de thread vanuit elk bericht kan worden gevolgd, maar ik zal proberen dit (en enkele anderen die mij hebben gevraagd) zeer binnenkort te hebben. Bedankt voor je reactie. Proost

  4.   Anders zei

    Een juweel van een artikel!, Ik hoop dat de volgende ...