Erhöht die Entwicklung von Software den IQ?

Erhöht die Entwicklung von Software den IQ?

Ja, Programmiersoftware kann steigere teilweise deinen IQ, da es direkt der logisch-mathematischen und kreativen Intelligenz zugute kommt, die in den IQ-Tests bewertet werden.

Gehirn eines Programmierers

Es ist jedoch wichtig zu bedenken, dass die Entwicklung von Software unsere kognitiven Fähigkeiten begünstigt, solange sie in einer Umgebung von . gefördert werden gute Praktiken und kontinuierliches Lernen.

Gute Softwareentwicklungspraktiken, die Ihre Denkweise beeinflussen

Wenn wir bereits Erfahrung in der Entwicklung von Softwareprojekten haben, Wir haben bereits ein mentales Modell erstellt, wie ein ideales Softwareprojekt aussehen könnte. Aber,Wie entwickelt man ein Softwareprojekt richtig?

Es mag nicht sehr kompliziert erscheinen, denn heute finden wir im Internet reichlich Informationen über Methoden für die Entwicklung von Projekten wie SCRUM oder Extreme Programming. Beide liefern uns Richtlinien, die wir während des Entwicklungszyklus eines Projekts befolgen müssen, um Organisation, Beobachtung, Zeitschätzung und / oder Teamarbeit.

Gute Softwareentwicklungspraktiken

Aus unserer Sicht:

Sich zu organisieren (um hochproduktiv zu sein) kann viel schwieriger sein als Programmieren zu lernen (für Einsteiger) oder das Beherrschen einer neuen Technologie, da es wirklich schwierig ist, Projekte strukturiert zu entwickeln, präzise und vor allem leichte Lesbarkeit.

Albert Einstein sagte einmal:

Wenn Sie es nicht einfach erklären können, verstehen Sie es nicht gut genug. Albert Einstein

Dies gilt für jeden Bereich des Lernens, zum Beispiel speziell in der Softwareentwicklung, wenn wir unseren Code nicht vereinfachen und so organisieren können, dass ein Dritter unser Projekt verstehen kann, uns geht es nicht gut.

In diesem Sinne müssen wir durch Übung erreichen prägen unser Denken und Handeln. Berücksichtigen Sie außerdem Richtlinien und Richtlinien, die von verschiedenen Frameworks bereitgestellt werden, Methoden und / oder Empfehlungen von Experten, die auf unsere Projekte angewendet werden. Es ist jedoch weder ratsam noch effizient, solche Richtlinien buchstabengetreu zu befolgen, da wir müssen flexibel und nicht streng sein.

Spongebob- und Patrick-Programmierung

Als nächstes beschreibe ich 2 gute Softwareentwicklungspraktiken das musst du berücksichtigen bei der Umsetzung Ihrer Projekte und ich bin mir sicher, dass Sie am Ende Ihre Denkweise ändern werden.

Einfachheit

Machen Sie Ihren Code so einfach wie möglich!

Es ist keine Neuigkeit, das zu sagen Eines der größten Probleme im Computing ist die Komplexität. Deswegen, Einfachheit ist vielleicht die wichtigste und am meisten geschätzte Qualität in der Welt der Software.

Im Laufe der Zeit sind Computer aus unserem Leben nicht mehr wegzudenken und haben eine sehr wichtige Veränderung in der Gesellschaft bewirkt. Kurz gesagt, Computer sind nützlich, weil sie es uns ermöglichen, mit weniger mehr zu tun, dh viele Aufgaben mit weniger Personal zu erledigen.

Stellen wir uns vor, eine Person möchte alle Operationen ausführen, die ein Computer während eines Jahres ausführt. Wahrscheinlich würde es die Jahre seines Lebens dauern, die ihm noch bleiben, und das ist, dass der wahre Wert eines Computers seine Geschwindigkeit und Genauigkeit ist. Und das ist großartig!

So perfekt konnte es jedoch nicht sein, denn Computer haben einen großen Fehler: Sie haben immer Fehler. Vielleicht war uns noch nicht bewusst, wie oft sie in der Regel einen Softwarefehler haben. Wenn etwas, das häufig verwendet wird, so defekt wäre wie ein Computer, hätten wir es sicher längst losgeworden.

Computerausfälle

Die meisten, wenn nicht alle, die ich kenne, erleiden mindestens 1 Schaden pro Woche, wenn nicht sogar mehr. Ich könnte sagen, dass ich mindestens einmal in der Woche einen Misserfolg erlitten habe oder dass ich herausgefunden habe, dass ein Freund oder Kollege hat das gleiche durchgemacht, das seit ungefähr 10 Jahren.

Wenn wir mitzählen, gibt es allein nach meiner Erfahrung 480 verschiedene Formen von Pannen. Und das ist nicht cool.

Warum stürzen Computer so ständig ab?

Wenn es um Software geht, gibt es nur einen Grund: schlechte Programmierer.

Vor ungefähr 5 Jahren hatte ich den Verdacht, dass der Grund an schlechten Programmierern lag; allerdings war ich mir nicht ganz sicher. Jetzt, da ich noch einige Jahre Erfahrung im IT-Bereich habe und viele Experten durch ihre Veröffentlichungen konsultiert habe, habe ich keine Zweifel mehr.

Ich kann voll und ganz sagen, dass schlechte Programmierer für unzählige Computerausfälle verantwortlich sind.

Unzählige Computerfehler

Was ist ein schlechter Programmierer?

Es scheint ein bisschen unfair, Softwareprogrammierern die Schuld zu geben, umso mehr, wenn die überwiegende Mehrheit der Leute, die ich kenne, sich der Softwareentwicklung auf hohem Niveau verschrieben hat sind Profis, die logisches Denken gut entwickelt haben.

Wenn die überwiegende Mehrheit der Programmierer ziemlich logische Leute sind, warum gibt es dann Software mit so vielen Fehlern? Der Hauptgrund für Computerfehler ist der KOMPLEXITÄT.

Einen Computer zu bauen ist wahrscheinlich der komplexeste Prozess, den ich kenne, denn für jede Sekunde, die vergeht, Millionen von Aufgaben können ausgeführt werden. Darüber hinaus hat es Tausende von Teilen, die synchron arbeiten müssen. Das Betriebssystem, das ein Computer allein verwendet, besteht aus Dutzenden von Millionen Codezeilen. Nur Windows 10 hat mehr als 4 Millionen Dateien und mehr als eine halbe Million Ordner. Ein Beweis dafür ist die folgende Aufnahme:

Anzahl der Zeilen des Windows 10-Codes

Um Ihnen eine noch umfassendere Vorstellung zu geben, beschreibe ich unten die Anzahl Codezeilen pro Betriebssystem:

Betriebssystem Zeilen von Code
Linux 3.1 Kernel 15 Millionen
Windows XP 40 Millionen
Windows 7 40 Millionen
Windows Vista 50 Millionen
Debian 5.0 (código basis) 67 Millionen
Mac OS X «Lion» 85 Millionen

Ich hinterlasse Ihnen eine zusätzliche Information:

Facebook hat ungefähr 61 Millionen Codezeilen und Google ungefähr 2 Milliarden Codezeilen. Das rechtfertigt natürlich die Vielzahl der von Google angebotenen Dienste.

Anzahl der Codezeilen von Google und Facebook

Die Software, auf der ein Computer arbeitet, ist so komplex, dass wahrscheinlich niemand den Code vollständig verstehen kann.

Daher muss die Programmierung in einer Umgebung existieren, in der versucht wird, Komplexität zu reduzieren und somit Einfachheit zu erreichen. Auf diese Weise stellen wir sicher, dass jeder Programmierer ohne außergewöhnliche Talente die Möglichkeit hat, weiter an einer Anwendung zu arbeiten. Andernfalls könnte der Code eine so hohe Komplexität erreichen, dass es fast unmöglich wäre, daran zu arbeiten.

Kurzum, darum geht es beim Programmieren: "Reduce Complexity to Simplicity."

Wie wird man ein guter Programmierer?

Ein guter Programmierer erstellt Dinge, die leicht zu verstehen, zu warten und leicht zu finden sind. Aber verwechseln Sie Einfachheit nicht mit weniger Codezeilen oder verwenden Sie keine modernen Technologien mehr. Manchmal kann die Vereinfachung Ihres Codes Ihre Codezeilen vergrößern. Stellen Sie nur sicher, dass Sie dies immer dokumentieren.

Im Allgemeinen tendieren fortschrittlichere oder modernere Technologien naturgemäß zur Einfachheit. Sie müssen nur lernen, sie richtig einzusetzen, was oft eine Herausforderung darstellt.

Man Programmiersoftware

Ist es schwieriger, vereinfacht zu programmieren?

Im Allgemeinen denken wir, dass eine vereinfachte Programmierung mehr Zeit in Anspruch nimmt als eine schnelle. Wenn wir zum Beispiel einige Aufgaben unserer Arbeit erfüllen müssen, versuchen wir dies in der Regel schnell zu tun, ohne zu überlegen und zu planen. Wir könnten nicht falscher liegen!

Es ist effizienter, mehr Zeit damit zu verbringen, über das Problem nachzudenken, um maximales Verständnis zu erlangen und auf diese Weise eine vereinfachte Lösung vorschlagen zu können, als schnell mit dem Schreiben einer Lösung zu beginnen und dann aufhören zu erkennen, dass die Implementierung unnötig komplex wurde.

Planung eines Softwareprojekts

Sie müssen sich nur umschauen und erkennen, welches große Problem KOMPLEXITÄT in Softwareprogrammen geworden ist.

Es gibt viele Anwendungen, die stagnieren, wenn sie versuchen, dem schrecklichen, riesiges und komplexes Codemonster, zu dem sie geworden sind.

Wenn Sie mehr über die Grundlagen und Möglichkeiten der vereinfachten Programmierung erfahren möchten, empfehle ich die Lektüre des folgenden Buches. Ich liebte es!

Code-Einfachheit Die Grundlagen der Software

Code-Einfachheit: Die Grundlagen der Software , geschrieben von Max Kanat-Alexander.

Chief Technical Officer für Code Health bei Google und ehemaliger Chief Architect des Bugzilla-Projekts. Seit seinem achten Lebensjahr repariert er Computer und schreibt seit seinem vierzehnten Lebensjahr Software.

Tests

Führen Sie immer Tests durch. Sie sind nicht optional!

In Wirklichkeit hätten sie nie eine Option sein dürfen, jedoch entwickeln viele Programmierer immer noch Anwendungen ohne jegliche Art von Softwaretests. da Codefehler vom Endkunden gemeldet werden. Dies ist normalerweise bei einem durchschnittlichen Freiberufler der Fall.

Programmieren ohne Test ist wie Fahren ohne Sicherheitsgurt oder Trapez-Stunts ohne Sicherheitsnetz. Derzeit muss die bewährte Praxis, Software immer zu testen, noch übernommen werden.

Software zu entwickeln ohne zu testen ist wie Stunts ohne Sicherheit zu machen

Sehen wir uns einige Vorgeschichten an, die aufgrund des Fehlens oder der falschen Verwendung von Softwaretests aufgetreten sind die Millionen von Dollar an wirtschaftlichen Verlusten verursacht und in einigen Fällen das Leben von Dutzenden von Menschen gekostet haben.

Computerfehler sind aufgrund fehlender oder falscher Anwendung von Softwaretests aufgetreten

Ich bin sicher, dass die unten genannten Veranstaltungen Sie zum Nachdenken anregen und dem Software-Testen viel mehr Bedeutung beimessen.

Softwaretest
Radarfehler des Raketendetektors.

Es geschah 1983, als das Raketenerkennungssystem der Sowjetunion meldete, dass die Vereinigten Staaten 5 Raketen abgeschossen hatten und diese unterwegs waren.

Glücklicherweise hat die verantwortliche Person aufgrund von Intuition und / oder Kriterien nicht als Reaktion einen sofortigen Angriff angeordnet, da sie den Angriff seltsam fanden, weil er aus dem Zusammenhang gerissen war und auch wegen der Anzahl der Raketen, da sie nicht diejenigen waren, die üblicherweise für einen Überraschungsangriff verwendet wurden.

Stunden später wurde bestätigt, dass alles durch einen Fehler im Raketenradarsystem verursacht wurde. Ein damals etwas schwer zu erkennender Fehler, da das System die Reflexion der Sonne in den Wolken verwechselte in einer bestimmten Position mit Raketen. Für ein wenig und endet damit, dass der Dritte Weltkrieg beginnt. Dies hätte jedoch nach gründlicher Arbeit vermieden werden können:

  • Studium der Umwelt auf dem das Warnsystem eingesetzt werden soll
  • , und
  • die Injektion aller Arten von Eingangsvariablen das könnte das system beeinträchtigen.

Beides sind Praktiken, die Teil des Softwaretests sind.

Startet US-Raketen
Zerstörung der Mariner I

Ereignete sich im Jahr 1962 und verursachte einen Verlust von etwa 18,5 Millionen US-Dollar. Mariner I war die erste Mission im Mariner-Programm, die versuchte, die Venus zu überfliegen, leider ohne Erfolg.

293 Sekunden nach dem Abheben, a Softwarefehler wurde gefunden. Dieser Fehler hat seine Flugbahn umgelenkt. Sekunden später musste ein Befehl gesendet werden, um es zu zerstören und so zu verhindern, dass sein Fall weiteren Schaden anrichtet.

Der Fehler wurde später festgestellt: Eine Formel im Code, die falsch programmiert wurde.

Explosion einer Weltraumrakete
Therac-25, Linearbeschleuniger für Strahlentherapie

Sie werden sich fragen, Was ist ein Linearbeschleuniger für die Strahlentherapie? Linearbeschleuniger sind Maschinen, die aus verschiedenen Winkeln Röntgenstrahlen aussenden, die auf einen Tumor gerichtet sind. Das Tolle ist, dass diese Geräte in der Lage sind, die Röntgenbilder an die Form des Tumors anzupassen, ohne die Umgebung zu beeinträchtigen.

Zwischen Juni 1985 und Januar 1987 wurde der Therac-25 von AECL (Atomic Energy of Canada Limited) hergestellt. war Teilnehmer an mindestens 6 Unfällen und 3 Todesfällen aufgrund einer Strahlenüberdosis.

Therac-25 Linearbeschleuniger

Nach den Untersuchungen wurde festgestellt, dass die Die Hauptursachen für Therac-25-Unfälle waren wie folgt:

  • Schlechte Softwareentwicklungspraktiken.
  • Schlechte Anforderungsanalyse.
  • Schlechtes Softwaredesign.

Und als ob das noch nicht genug wäre, wurde die Software, auf der das Therac-25 lief, so entwickelt, dass es fast unmöglich war, sie zu identifizieren und Bugs oder Fehler automatisch beheben.

Andere Ursachen gefunden:

  • AECL hat nie eine unabhängige Stelle geschickt, um den Quellcode zu überprüfen.
  • Beim Design wurden keine Funktionen im Zusammenhang mit dem Risikomanagement berücksichtigt.
  • Das System erlaubte es nicht, den korrekten Betrieb der Sensoren zu überprüfen.
  • Es gab Flag-Variablen, die ihren Wert änderten, anstatt konstante Werte zu halten.
  • Variable "class3" Überlauf.
  • Unter anderen.
Variabler Überlauf der Klasse 3
Schiff Yorktown (CG-48) und seine Division durch Null

Ob Sie es glauben oder nicht, das Yorktown-Schiff, ein Kriegsschiff, das unzählige Preise für seine herausragenden Gefechtsleistungen und insbesondere für seine technologische Ausrüstung gewonnen hat. wurde aufgrund eines Softwarefehlers abgeschleppt.

Im September 1997 gab ein Besatzungsmitglied eine Null in ein Datenbankfeld ein, wodurch das System intern eine Division durch Null ausführte, was zu Fehlern führte, die schließlich zu einem Pufferüberlauf und schließlich zu einem Ausfall des Schiffsantriebssystems führten.

Yorktown-Schiff
Intel Pentium-Prozessor mit Split-Fehlern

1993 brachte Intel einen neuen Prozessor mit Fehleinschätzungen auf den Markt. Obwohl sie sehr schwer zu bemerken waren, mussten Sie Operationen ausführen, die ein ziemlich genaues Ergebnis erfordern, um den Fehler sehen zu können.

Trotzdem hatte Intel einen Verlust von rund 350 Millionen Dollar, den kaum zu quantifizierenden Imageschaden eingerechnet.

Intel Pentium-Prozessor

Die 5 Fälle, die ich Ihnen gerade erwähnt habe, sind nur einige der unzähligen Computerfehler, die leider aufgetreten sind Menschenleben kosten und sind ein klarer Beweis für die Notwendigkeit, richtige Software zu schreiben.

Software-Ingenieure sowie Statiker oder Bauingenieure sollen mit einer Methode nachweisen können, die Zuverlässigkeit und Erfüllung der geforderten Funktionalitäten.

Wie Sie vielleicht bemerkt haben, ist das Testen ein grundlegender Bestandteil jedes Projekts. Sie sind nicht optional!

Laut Ilene Burnstein in ihrem Buch: “Praktisches Software-Testen”, Softwaretest hat 3 Hauptprozesse:

  • Testfallentwicklung
  • Durchführung von Testfällen
  • Analyse der Ergebnisse

Wenn Sie sich nicht die Zeit nehmen, Ihre Testfälle zu erstellen, machen Sie es nicht richtig. Es ist wichtig, Testfälle mit verschiedenen Szenarien zu erstellen, die möglichst viele Fälle simulieren. Zu unserem Pech ist es unmöglich, 100 % der Szenarien zu simulieren.

Gut gesagt Edsger Dijkstra:

Der Test kann das Vorhandensein von Fehlern in einem Programm zeigen, aber nicht deren Abwesenheit Edsger Dijkstra (Turing-Preis 1972)
Inszenierung, wie Softwaretests im wirklichen Leben aussehen

Doch so wie es viele Fälle von Computerfehlern durch fehlerhafte Testdurchführung gibt, gibt es auch preiswürdige Erfolgsgeschichten.

Softwarebeispiel näher an der Perfektion

Heute ist es möglich, Software zu entwickeln, die so zuverlässig ist wie jedes andere Produkt, umso mehr mit der zunehmenden Automatisierungskapazität.

Die Linie 14 der Pariser Metro ist vollautomatisch. Die Züge sind fahrerlos und werden per Software betrieben. Diese Bahnlinie wurde 1998 in Betrieb genommen.

Pariser U-Bahnlinie 14

Obwohl es wahr ist, kann seine Perfektion nicht garantiert werden, Dutzende von Jahren sind vergangen und es wurden keine Fehler festgestellt, dank umfangreicher Testarbeiten, die im Testprozess rund 86 Tausend Anweisungen ausgeführt haben.

Im Allgemeinen sind strenge Testprozesse, die eine einwandfreie Software garantieren können, in einigen Ländern nur für Systeme erforderlich, die menschliche Verluste verursachen können.

Die überwiegende Mehrheit der Softwareunternehmen weigert sich aufgrund der hohen Kosten, solch strenge Testprozesse zu implementieren dass dies impliziert und auch weil es schwierig ist, Fachleute mit ausreichender Ausbildung und Erfahrung für eine solche Aufgabe zu finden, die sich dem Testen widmen, da die Implementierung der Softwaretestprozesse genauso viel oder mehr kosten kann als die Entwicklung der Software selbst.

Natürlich "Du lernst erst, wenn du an der Reihe bist", wie es bei INTEL der Fall ist, die aufgrund eines Rechenfehlers in ihrer Prozessorsoftware rund 350 Millionen Dollar verlieren musste. Ein Fehler, der dazu führte, dass es zu einem der IT-Unternehmen mit dem höchsten Budget für Softwaretestforschung wurde.

Kosten für Softwaretests

Wie sieht die aktuelle Landschaft des Softwaretests aus?

Der Weg zur Entwicklung eines Softwareprojekts besteht aus 3 klar definierten Phasen:

  • Spezifikationen
  • Design und Codierung
  • Validierungen

In der Validierungsphase stellen die verantwortlichen Ingenieure sicher, dass die Software den Vorgaben des Lastenheftes entspricht, die Art und Weise, wie sie es tun, ist durch "Testen".

Nach der Validierung der Software wird davon ausgegangen, dass sie alle Spezifikationen erfüllt und der Validierungszyklus wird ein letztes Mal wiederholt um die korrekte Validierung zu überprüfen.

Bedeutung von Softwaretests

Das oben Beschriebene hat ein großes Problem der Inkonsistenz, ich erkläre es Ihnen im Folgenden:

Fehler und Inkonsistenzen beim Softwaretest heute

Das wichtigste Problem bei der aktuellen Validierungsmethode "Testen" besteht darin, dass sie nicht sicherstellt, dass die Software den Anforderungen entspricht in den Spezifikationen angegeben. Denn die Abfassung der Spezifikationen erfolgt in natürlicher Sprache, mit Begriffen, die immer zur individuellen Auslegung neigen, was Unklarheiten erzeugt, die am Ende des Projekts sicherlich auffallen werden.

Ein zweites Problem ist das Du kannst nie jeden möglichen Fall testen. Angenommen, wir haben eine kleine Software, die:

  • erhält eine beliebige Zahl als Eingabe,
  • füge 10 hinzu und
  • gibt als Ergebnis den Wert der Summe zurück.

Es wäre unmöglich, alle möglichen Fälle zu testen, da die Eingabedaten unendlich sind. Aus diesem Grund werden die Softwaretests nur an einer Stichprobe ausgewählter Fälle durchgeführt, bei denen es sich manchmal um sehr kleine Stichproben handelt. Der Grund für diese schlechten Praktiken ist durch finanzielle und zeitliche Zwänge gerechtfertigt. Zusammenfassend lässt sich sagen, dass eine Software nach Abschluss der Testphase nicht korrekt ist, da für eine solche Behauptung keine ausreichenden Beweise vorliegen.

Wenn wir versuchen, logisch zu sein (wie wir es sein sollten, wenn wir uns dem Bereich der Informatik widmen), indem wir bestätigen, dass eine Software korrekt ist Nachdem wir die Testphase abgeschlossen haben und keinen Fehler gefunden haben, erleiden wir Folgendes: “Aufruf zum Irrtum der Ignoranz”.

In der Logik wird ein Argument ad ignorantiam oder argumentum ad ignorantiam, auch als Aufruf zur Unwissenheit bezeichnet, ist ein Trugschluss, der darin besteht, die Wahrheit (oder Falschheit) einer Aussage zu behaupten, die behauptet, dass es keinen gegenteiligen Beweis gibt, oder sonst die Unfähigkeit oder Weigerung eines Gegners geltend zu machen, überzeugende Gegenbeweise vorzulegen. Diese Ungeduld mit Ambiguität wird oft mit dem Satz kritisiert: "das Fehlen von Beweisen ist kein Beweis für die Abwesenheit", das heißt, dieser Trugschluss ist begangen wenn die Wahrheit oder Unwahrheit einer Aussage aus der bestehenden Unkenntnis darüber abgeleitet wird. Call to ignorance fallacy

Wie Sie vielleicht bemerkt haben, machen wir viele Fehler, wenn wir Softwaretests auf konventionelle Weise und oft anwenden die dadurch entstehenden Kosten sind uns nicht bekannt.

Nur um Ihnen eine Idee zu geben:

  • Das herkömmliche Verfahren zum Softwaretesten beinhaltet das Erkennen von Fehlern in der Software.
  • Anschließend beginnt die Debugging-Phase, d. h. die Überprüfung des Codes, um die Ursachen der Fehler zu verstehen und schließlich die Behebung der Softwarefehler.
  • Auf diese Weise verbringen Programmierer im Durchschnitt 49,9 % ihrer Zeit damit, ihre eigenen Fehler zu beheben.
  • Dies impliziert weltweite Ausgaben von 156 Milliarden Dollar pro Jahr.
Kosten in der Struktur der Softwareentwicklung
Formale Entwicklung als Lösungsvorschlag für inkonsistente Softwaretests

Wie wir bereits gesehen haben, ist eines der Hauptprobleme die Mehrdeutigkeit der Spezifikationen, die, wenn sie in natürlicher Sprache ausgedrückt werden, Mangel an Genauigkeit und logischem mathematischen Sinn. Eine Lösung besteht darin, eine formale Sprache zu verwenden, bei der es keinen Raum für Mehrdeutigkeiten gibt.

Durch die Verwendung einer formalen Methode für die Entwicklung unserer Softwareprojekte, die Gewissheit von Eigenschaften und/oder Funktionalitäten der Software wird durch Deduktion, also durch Mathematik (p -> q) gewährleistet.

Diese formale Methode erfordert viel mehr Zeit und Budget für ihre Erstellung, da viel mehr Präzision bei der Ausarbeitung von Spezifikationen erforderlich ist, die wiederum von Mehrdeutigkeiten bereinigt werden müssen, damit er bei der Erstellung von Code seine Zuverlässigkeit anhand seiner Spezifikationen nachweisen kann.

Es scheint ziemlich weit von der Realität entfernt zu sein, diese Anforderungsgrenze zu erreichen, um qualitativ hochwertige Software zu erstellen. Derzeit gibt es jedoch Unternehmen, die ihre Systeme auf formaler Entwicklung aufbauen, normalerweise mit Unternehmen, die sich kritischen Bereichen widmen, in denen ein kleiner Fehler sofort den Verlust von Menschenleben bedeuten kann.

Im kleinen Maßstab ist eine solche Nachfrage jedoch nicht rentabel; mindestens müssen wir konventionelle Tests einhalten.

Im Folgenden teile ich eine Reihe von Veröffentlichungen mit bewährten Verfahren, die Sie nicht verpassen sollten, wenn Sie hochwertige Projekte entwickeln möchten.

Programación y más

Veröffentlichungen guter Praxis

Wie profitiert unser Gehirn von kontinuierlichem Lernen?

Lernen ist wie Treibstoff für unser Gehirn.

Im College oder an der Universität haben wir das kontinuierliche Lernen geopfert und nichts davon war genug, denn jede Minute, in der neue Informationen weitergegeben werden, kommt unabhängig davon, welchen Beruf Sie studiert haben.

Es wird immer etwas Neues zu lernen geben.

Denken Sie daran, dass unser Gehirn beim Lernen durch Veränderungen in den neuronalen Strukturen beeinflusst wird.

Die moderne Forschung hat gezeigt, dass das Gehirn hat die Fähigkeit, sich dauerhaft zu verändern und zu verformen (Plastizität), und das nicht nur bei Kindern, sondern auch bei Erwachsenen.

Diese Veränderungen im Gehirn können verursacht werden durch gute Praktiken des kontinuierlichen Lernens, synaptische Verbindungen umstrukturieren und manchmal neue schaffen.

Früher glaubte man, je größer oder schwerer das Gehirn eines Menschen sei, desto intelligenter sei es. Neuere Studien haben jedoch festgestellt, dass Menschen mit einem höheren IQ ein weniger dichtes neuronales Netzwerk haben, aber gleichzeitig viel organisierter sind.

Für diese Forschung wurde der IQ anhand der folgenden Faktoren berechnet:

  • Analysekapazität
  • Reflexionsvermögen
  • Problemlösung
Hie kontinuierliches Lernen kommt unserem Gehirn zugute

Hier noch ein paar Informationen zu der fraglichen Forschung:

Intelligenz basiert auf neuronaler Effizienz - Erhan Genç

Das Team unter der Leitung von Erhan Genç analysierte die Gehirne von 259 Männern und Frauen im Alter zwischen 18 und 40 Jahren bei guter Gesundheit. um Dendriten in der Großhirnrinde zu messen, d. h. Erweiterungen von Nervenzellen, die Zellen verwendet haben, um bei der Leistung von Intelligenz miteinander zu kommunizieren.

Vor der Studie wurden alle Teilnehmer einem IQ-Test unterzogen. Nach dem Studium der Dendriten, Es wurde festgestellt, dass je höher der IQ, desto weniger Dendriten in der Großhirnrinde vorhanden sind.

Neuronale Effizienz

Mit anderen Worten, es wurde der Schluss gezogen, dass intelligentere Menschen nicht nur mehr Neuronen haben, sondern auch weniger dendritische Verbindungen zwischen Neuronen haben zum Zeitpunkt der Erkenntnis. Das bedeutet, dass sie ein weniger dichtes neuronales Netzwerk haben.

Die Studien wurden mit einer Stichprobe von 500 Personen validiert und es wurden die gleichen Schlussfolgerungen gezogen.

Erhan Genç, Erstautor der Studie, schloss:

Intelligente Gehirne zeichnen sich durch ein dünnes, aber hocheffizientes neuronales Netz aus. Dies hilft, ein hohes Denkniveau zu erreichen und gleichzeitig die neuronale Aktivität zu minimieren. Erhan Genç

Wie beeinflusst Programmierung unsere geistigen Fähigkeiten?

Wie ich bereits in den vorherigen Absätzen erwähnt habe, Programmierung beeinflusst die Denkweise derer, die sie praktizieren, in diesem Sinne beeinflusst es direkt unsere geistige Fähigkeiten.

Aber auf welche Weise tut es das? Mal sehen.

Ein Programmierer denkt ganz anders als andere, weil sie im Allgemeinen logischer und rationaler sind als der Durchschnitt, wenn auch nicht unbedingt.

Da wir uns entschieden haben, Programmieren zu lernen, müssen wir uns entscheiden, mit welcher Sprache wir beginnen möchten. Obwohl eine solche Wahl nicht ganz richtig ist, da im Allgemeinen die überwiegende Mehrheit von denen, die sich der Welt der Softwareentwicklung widmen, wählen unsere Muttersprache ohne jegliche Erfahrung oder wurden gezwungen und praktisch gezwungen, mit einer aufgezwungenen Programmiersprache zu beginnen. von einem Lehrer, entweder an der Hochschule und / oder an der Universität.

Solche Einschränkungen kommen jedoch aufgrund der Fülle an Informationen, die wir im Internet finden, immer seltener vor und der hohe Anreiz und die Förderung des autodidaktischen Lernens.

Jim Carrey programmiert schnell

Die Paradigmen der Programmiersprachen haben schon viele Köpfe geprägt, in einigen Fällen mit mehr Einschränkungen als in anderen, abhängig von der Sprache, mit der es gestartet wurde. Damit meine ich nicht, dass Ihre Muttersprache Ihren Erfolg oder Misserfolg definiert, aber ich meine die Paradigmen, mit denen man in die Welt der Programmierung einfügt Muster in unser Denken einfügen.

Wenn Sie lernen, mit COBOL, FORTRAN oder PASCAL zu programmieren, bedeutet dies nicht, dass Sie zum Scheitern verurteilt sind. Die Inkompatibilität mit modernen Technologien und das Fehlen von Bibliotheken oder Funktionen schränken Sie jedoch beim Lernen und Erweitern ein.

Ich will damit auch nicht sagen, dass Programmiersprachen, die älter als 50 Jahre sind, schlecht sind.

Viele Systeme, die für den Betrieb und die Transaktionen von Banken, Pensionsfondsmanagern und Versicherern entwickelt wurden, verwenden weiterhin COBOL. Und es sieht so aus, als ob sie es noch viele Jahre verwenden werden.

Hallo Welt mit COBOL

Ich erwähne einige Tatsachen, die, so unglaublich sie auch erscheinen mögen, alle wahr sind.

75 % der Geschäftsdaten werden in COBOL verarbeitet (Quelle: Gartner).

Weltweit sind 180 bis 200 Milliarden COBOL-Leitungen im Einsatz (Gartner).

15% der neuen Anwendungen werden in COBOL (Gartner) geschrieben.

Gartner-Gruppe

Und wie teuer wäre es dann, von COBOL auf moderne Technologiesysteme zu migrieren?

Die Ersatzkosten für COBOL-Systeme werden auf 25 US-Dollar pro Leitung geschätzt und belaufen sich auf Hunderte von Milliarden US-Dollar Taktische Strategiegruppe

Gut gesagt Bill Curtis:

Banken sollten bei den alten COBOL-Anwendungen bleiben, da sie nicht die Sicherheits- und Entwicklungsprobleme haben, die bei neuen Sprachen wie Java auftreten. Bill Curtis, CAST COO

Ich erwähne dich unten 3 Möglichkeiten, wie sich die Programmierung auf Ihr Gehirn auswirkt:

1. Die Tools, mit denen wir programmieren, beeinflussen unsere mentalen Modelle

Die Programmiersprache, mit der wir begonnen haben, ist nichts anderes als ein Werkzeug, das von Paradigmen und Redewendungen begleitet wird, die Ihre Denkweise direkt beeinflussen. Nicht umsonst, Edsger

Dijkstra, einer der Pioniere bei der Etablierung der verteilten Programmierung, sagte:

Die Werkzeuge, die wir verwenden, haben einen tiefgreifenden (und hinterhältigen) Einfluss auf unsere Denkgewohnheiten und, daher in unserem Denkvermögen. Edsger Dijkstra

Jetzt, da Sie wissen, wie wichtig die Programmiersprache ist, mit der wir beginnen, und im Allgemeinen alle Werkzeuge, die wir beim Programmieren verwenden, rate ich Ihnen, dass Sie bei der Auswahl Ihrer ersten Programmiersprache zunächst auf Ihren Komfort achten.

Wenn Sie gerade erst anfangen, lassen Sie sich nicht vom Geld mitreißen. Es ist wahr, dass es Programmiersprachen gibt, die besser bezahlt werden als andere, aber Geld sollte nicht Ihr Ziel sein. Wenn ja, könnte ich Ihnen raten, mit COBOL, PASCAL, FORTRAN zu programmieren, Sprachen, die sehr wenig dokumentiert sind und die es derzeit nur sehr wenige praktizieren, weshalb sie dort, wo sie benötigt werden, sehr gut bezahlt werden.

In Wirklichkeit bringt es nicht nur Ihren Denkgewohnheiten und kognitiven Fähigkeiten Vorteile, sich der Softwareentwicklung zu widmen, sondern kann auch eine mehr als stabile wirtschaftliche Zukunft sichern, da es sich um eine sehr gut bezahlte Branche handelt, die derzeit wächst.

Gut bezahlter Software-Ingenieur

Heute ist die beste Zeit, um anzufangen. Mal sehen warum:

Warum ist der IT-Sektor 2021 einer der am meisten empfohlenen?

Laut der Wirtschaftskommission für Lateinamerika und die Karibik (ECLAC) werden die lateinamerikanischen Länder nach der wirtschaftlichen Rezession im Jahr 2020 mit dem Wachstum beginnen.

Für 2021 wird ein Wachstum von 3,7% geschätzt, wobei die Hauptakteure werden diejenigen sein, die sich der digitalen Welt verschrieben haben.

2. Es ist gesund für das Gehirn

Wie bereits erwähnt, hat Lernen positive Auswirkungen auf das Gehirn. In diesem Sinne zählt Programmieren als mentale Übung, die das Gehirn direkt begünstigt.

Sehen wir uns einige Hintergrundinformationen an, die die Vorteile der Programmierung für die Gesundheit des Gehirns bestätigen:

Im Jahr 1991 untersuchte eine Untersuchung die Auswirkungen der Computerprogrammierung auf kognitive Ergebnisse und stellte fest, dass Schüler in programmbezogenen Bereichen erzielen bei IQ-Tests 16 Perzentilpunkte über dem Durchschnitt.

Eine weitere größere Studie aus dem Jahr 1999 bestätigte schließlich, dass intellektuell ansprechende Aktivitäten dazu dienen, Einzelpersonen gegen kognitiven Verfall zu puffern.

Später im Jahr 2009 fand eine Studie heraus, dass Menschen, die in späteren Jahren gehirnstimulierende Aktivitäten ausüben, ihr Risiko senken und sogar den Ausbruch von Alzheimer und anderen Arten von Demenz verzögern können.

3. Beim Programmieren stimulieren Sie bis zu 5 Bereiche Ihres Gehirns

Im Jahr 2014 wurde eine Studie mit dem Titel „Verstehen des Quellcode-Verständnisses mit funktioneller Magnetresonanz-Bildgebung“ verwendeten funktionelle Magnetresonanztomographie-Scans, um die Gehirnaktivität zu beobachten, während die Programmierer versuchten, zu arbeiten und Code-Bits zu verstehen.

Es wurde festgestellt, dass 5 Bereiche des Gehirns beteiligt waren:

  • BA 6: Gyrus mittelfrontal (Aufmerksamkeit, Sprache, Arbeitsgedächtnis)
  • BA 21: Mittlerer temporaler Gyrus (semantischer Gedächtnisabruf)
  • BA 40: Unterer Parietallappen (Arbeitsgedächtnis)
  • BA 44: Gyrus frontalis inferior (Arbeitsgedächtnis)
  • BA 47: Gyrus frontalis inferior (Sprache, Arbeitsgedächtnis)

Wir müssen bedenken, dass die Teilnehmer einen 20-zeiligen Code-Schnipsel begutachten mussten, was keine große Herausforderung darstellt. Und deshalb wurde in Bereichen des Gehirns, die mit mathematischen Berechnungen zusammenhängen, keine Aktivität festgestellt.

Auffällig war der hohe Eingriff von Teilen des Gehirns, die normalerweise mit Sprachverarbeitung, Gedächtnis und Aufmerksamkeit verbunden sind.

Programmieren kommt Superkräften am nächsten. Drew Houston, CEO von Dropbox
Programmieren kommt Superkräften am nächsten
Pfeil nach oben
führen Test Bewerten Sie Ihren IQ in einem Augenblick! Internationaler IQ-Test.

© 2020 - Alle Rechte vorbehalten