Können Autodidaktische Programmierer Jobs Bei Großen Unternehmen Bekommen?

Können Autodidaktische Programmierer Jobs Bei Großen Unternehmen Bekommen?

January 28, 2023, by Frank Welker, Arbeit

Ich bin Autodidakt beim Programmieren, basiere auf Zeitschriften, baue Elektronikprojekte, bastle an Motorola 6800, Tektronics 4051 herum, stöbere in IEEE-Journalen und Büchern über Software. Keine formelle Ausbildung in Software. Meine gesamte offizielle Ausbildung umfasst Physik, Elektronik und Fernsehproduktion.

Ich habe an zwei Aufträgen bei Qualcomm gearbeitet, an zwei weiteren bei Intel in Hillsboro, bei verschiedenen Unternehmen für medizinische Geräte und hatte eine Schlüsselrolle bei einer großen NASA-Mission. Ich wurde eingestellt, weil ich mehrere Sprachen in der Tiefe, Bildverarbeitung, fortgeschrittene Mathematik und Denken auf Systemebene kannte, während ich Low-Level-Code optimierte. ich

Weiterlesen

Ich bin Autodidakt beim Programmieren, basiere auf Zeitschriften, baue Elektronikprojekte, bastle an Motorola 6800, Tektronics 4051 herum, stöbere in IEEE-Journalen und Büchern über Software. Keine formelle Ausbildung in Software. Meine gesamte offizielle Ausbildung umfasst Physik, Elektronik und Fernsehproduktion.

Ich habe an zwei Aufträgen bei Qualcomm gearbeitet, an zwei weiteren bei Intel in Hillsboro, bei verschiedenen Unternehmen für medizinische Geräte und hatte eine Schlüsselrolle bei einer großen NASA-Mission. Ich wurde eingestellt, weil ich mehrere Sprachen in der Tiefe, Bildverarbeitung, fortgeschrittene Mathematik und Denken auf Systemebene kannte, während ich Low-Level-Code optimierte. Ich habe eine gute Erfolgsbilanz bei der Untersuchung technischer Probleme und der Aufdeckung von Fehlern in elektrooptisch-mechanischen Softwaresystemen. Ich habe mir diese Fähigkeiten angeeignet, indem ich intensives Interesse hatte, Zugang zu Labors in der High School und am College hatte und die langsamen, groben Computer von vor langer Zeit dazu brachte, das zu tun, was ich wollte, und die Grenzen des Möglichen in Video, Audio und Elektronik zu erweitern.

Mein Mangel an formaler Bildung ist wahrscheinlich der Grund, warum ich für viele Jobs nicht eingestellt werde, nicht weiterarbeite, wenn ein Vertrag endet, und von einigen kündige oder sogar gefeuert werde. Ich habe kein tiefes Verständnis dafür, wie mehrere Geschäftsmaschinen interagieren, wie irgendetwas in einer „Unternehmensumgebung“ funktionieren würde, und ich bin ein bisschen schwach im Netzwerken, wenn es über grundlegende elektronische und Datenpakete hinausgeht. Ich habe einmal ein Interview mit Amazon geführt und sie haben mich gefragt, wie ich ein Ticket-Handling-System für einen Parkplatz (oder etwas Ähnliches) entwerfen würde. Meine Antwort hätte genauso gut sein können: „Duh… na, schönen Tag noch, tschüss!“

Aber wenn das Projekt mehr oder weniger in sich geschlossen ist, typischerweise einen Tabletop-Umfang hat und 2D- oder 3D-Grafiken, schwere Mathematik, Geometrie, Signalverarbeitung, Visuals, Physik und Low-Level-Interaktionen mit Elektronik beinhaltet, dann bin ich der Richtige Kerl, es zu tun. Das sind Dinge, die ich in die Finger bekommen kann. Ich muss mich nicht mit großen Teams, formalen SW-Engineering-Systemen, UML und dergleichen herumschlagen.

Ich glaube nicht, dass dies auf die meisten autodidaktischen Softwareentwickler zutreffen würde, da viele in das Feld einsteigen, indem sie mit Software beginnen, während ich aus der Elektronik und der bildenden Kunst komme. Aber andere autodidaktische Praktiker der Byte-Künste sind wahrscheinlich schrullig und auf andere Weise spezialisiert. Eine formale Ausbildung ist zwar nie vollständig, vermittelt jedoch ein ausgewogeneres Spektrum an Fähigkeiten, einen breiteren, niveauvolleren Überblick über alles, was in Informatik oder Softwaretechnik enthalten ist.

Ich habe das Kronjuwel-Softwareprodukt um 1990 in einem Startup entwickelt. Aber damals waren die Zeiten anders, als jeder, der eine LED durch Schreiben von Maschinencode zum Blinken bringen konnte, als Genie galt und eingestellt wurde. Damals gab es noch keine „Entwurfsmuster“ oder „Quellcodeverwaltung“ oder „Objektorientierung“, aber das hinderte mich nicht daran, den Quellcode organisiert und (vielleicht) verständlich zu halten. Heutzutage wird viel mehr Wert auf die Einstellung von Fähigkeiten in bestimmten Sprachen, Anwendungsbereichen und Softwareentwicklungstechnologien für größere Projekte und Teams von Spezialisten gelegt, bei denen UI, UX, Front-End-Codierung, Back-End-Codierung, Datenbankdesign usw. alles sind ausgeprägte Spezialitäten. Git, Jira, Unit-Tests, REST usw. sind etablierte Technologien, die Sie heute verstehen müssen. Damals in den 1980er Jahren konnte man sich neue Sachen ausdenken, musste oft, weil alles kleiner und einfacher war,

Die Arbeit an Linux mit viel GNU und anderer freier/offener Software war ein Segen für das Erlernen neuer Tools, Sprachen, Tricks für bestimmte Situationen und das absichtliche Aufwerfen von Problemen, um Lösungen zu finden, z. B. absichtliche Prioritätsumkehrungen oder Thread-Blockaden. Zeit zum Experimentieren und Erforschen sowie Zugang zu Informationen zu haben, war für mich und, wie ich glaube, für alle erfolgreichen Autodidakten von entscheidender Bedeutung.

Es ist möglich.

Ich bin Autodidakt im Bereich Software Engineering und habe als Festangestellter für Siemens und Ericsson gearbeitet. Ich habe im Auftrag von Nokia, Einzelhandelskonzernen, Banken, Bayer und anderen gearbeitet.

Der Haken ist dieser. Ich habe auch einen BEng-Abschluss in Elektronik, der etwas Glaubwürdigkeit erkauft, und hatte in den 1980er Jahren 8-Bit-Spiele veröffentlicht, was beweist, dass ich eine Weile entwickelt habe.

Wenn Sie selbst ein angemessenes Entwicklungsniveau erreichen, können Sie Jobs in kleineren Unternehmen ergattern, mehr Berufserfahrung und Fähigkeiten sammeln und dann in der Lage sein, sich bei größeren Unternehmen zu versuchen, wenn Sie dies wünschen.

Sie

Weiterlesen

Es ist möglich.

Ich bin Autodidakt im Bereich Software Engineering und habe als Festangestellter für Siemens und Ericsson gearbeitet. Ich habe im Auftrag von Nokia, Einzelhandelskonzernen, Banken, Bayer und anderen gearbeitet.

Der Haken ist dieser. Ich habe auch einen BEng-Abschluss in Elektronik, der etwas Glaubwürdigkeit erkauft, und hatte in den 1980er Jahren 8-Bit-Spiele veröffentlicht, was beweist, dass ich eine Weile entwickelt habe.

Wenn Sie selbst ein angemessenes Entwicklungsniveau erreichen, können Sie Jobs in kleineren Unternehmen ergattern, mehr Berufserfahrung und Fähigkeiten sammeln und dann in der Lage sein, sich bei größeren Unternehmen zu versuchen, wenn Sie dies wünschen.

Sie müssen gut genug sein, um ihre Auswahltests zu bestehen, und Sie müssen eine ausreichende Erfolgsbilanz vorweisen und „aufstehen und loslegen“, um an einem Personalvermittler und der Personalabteilung vorbeizukommen.

Sicher! Das ist der Weg, den ich eingeschlagen habe: Ich habe viel formale Bildung, aber keine in Informatik oder Programmieren (außer einem einzigen einführenden Grundkurs, den ich meistens geschmissen habe), und jetzt bin ich Softwareentwickler bei Google. Viele meiner Kollegen haben einen ähnlichen Hintergrund.

Es gibt jedoch einen wichtigen Vorbehalt: Unternehmen werden (im Allgemeinen) ihre Einstellungsschwelle für autodidaktische Programmierer nicht senken. Google (zum Beispiel) ist es egal, wo Sie gelernt haben, wie man die Probleme löst, die wir in Interviews stellen, aber Sie müssen sie trotzdem lösen können. Leute mit CS-Hintergrund haben hier wirklich ein Bein nach oben, denn (1) Interviewprofi

Weiterlesen

Sicher! Das ist der Weg, den ich eingeschlagen habe: Ich habe viel formale Bildung, aber keine in Informatik oder Programmieren (außer einem einzigen einführenden Grundkurs, den ich meistens geschmissen habe), und jetzt bin ich Softwareentwickler bei Google. Viele meiner Kollegen haben einen ähnlichen Hintergrund.

Es gibt jedoch einen wichtigen Vorbehalt: Unternehmen werden (im Allgemeinen) ihre Einstellungsschwelle für autodidaktische Programmierer nicht senken. Google (zum Beispiel) ist es egal, wo Sie gelernt haben, wie man die Probleme löst, die wir in Interviews stellen, aber Sie müssen sie trotzdem lösen können. Leute mit Informatik-Hintergrund haben hier wirklich einen Vorteil, denn (1) Vorstellungsgesprächsprobleme sehen in der Regel sehr nach fortgeschrittenen Informatik-Hausaufgaben und Testproblemen aus, und (2) Informatik-Programme bereiten Studenten bewusst auf Karrieren in der Softwareentwicklung vor. Wenn Sie alleine lernen, müssen Sie immer noch die gleichen Dinge lernen, was viel Zeit und Arbeit kostet – aber es ist machbar!

Natürlich tun sie das.

Niemand wird nach einem Zertifikat fragen, wenn Sie Wissen haben.

Ihre Zertifikate funktionieren nicht für sie, sondern für Sie.

Ich erzähle Ihnen das alles, weil ich ein autodidaktischer Programmierer bin.

Viel Glück.

Jawohl. Was eine Person kann und welche Fähigkeiten sie hat, ist viel wichtiger als wie sie es gelernt hat. Die Möglichkeit, formale Bildung und Ausbildung in Ihrem Lebenslauf aufzuführen, bringt Sie möglicherweise auf dem Weg zu einem Vorstellungsgespräch weiter, aber sobald Sie das Vorstellungsgespräch erhalten, sollten Sie besser nachweisen können, dass Sie der Aufgabe gewachsen sind.

Bitte halten Sie sich fest.

Deine Chancen stehen ziemlich schlecht. Bitte verschwende dein Leben nicht auf diese Weise. In Indien ist es schwierig. Obwohl Sie anfängliche Erfolge erzielen können, werden Sie sich bald an einer Wand wiederfinden. Bitte fragen Sie sich: Wenn Sie ein professionelles Unternehmen leiten würden, würden Sie dann jemanden ohne IT-Abschluss einstellen? Wenn Sie die Frage wahrheitsgemäß beantworten könnten, ohne sich selbst voreingenommen zu sein, dann denke ich, dass Sie anfangen werden, richtig zu denken.

Wenn das Programmieren jedoch Ihre Leidenschaft ist, können Sie genauso gut einen Abschluss machen und dann in diesen Beruf einsteigen.

Danke fürs Lesen.

Wenn Sie gut in Mathe sind, können Sie es vielleicht auch ohne CS-Abschluss schaffen.

Außerdem hat CS viele verschiedene Sprachen. Vielleicht sind Sie in einigen gut, damit Sie Unternehmen auswählen können, die diese Felder oder Bereiche der Programmierung benötigen.

Ja, so ist es. Wir leben im Informationszeitalter, auch Internetzeitalter genannt. Es ist einfacher als je zuvor, neue Dinge auf eigene Faust zu lernen, einschließlich der Spieleprogrammierung.

An welcher Art von Spieleprogrammierung interessierst du dich?

  • Webspiele, die HTML5, Canvas und WebGL verwenden?
  • 2D-Desktopspiele wie Limbo und Sunless Sea?
  • 3D-Spiele wie Battlefield und Forza?

Denken Sie daran, dass an Triple-AAA-Titeln wie Battlefield normalerweise Teams aus Designern und Entwicklern arbeiten. Andererseits gibt es viele komplexe Spiele, die von nur einer Person erstellt wurden!

Versuchen Sie zunächst, Unity zu lernen. Das nutzt entweder C# oder Javascript (Unityscript) als

Weiterlesen

Ja, so ist es. Wir leben im Informationszeitalter, auch Internetzeitalter genannt. Es ist einfacher als je zuvor, neue Dinge auf eigene Faust zu lernen, einschließlich der Spieleprogrammierung.

An welcher Art von Spieleprogrammierung interessierst du dich?

  • Webspiele, die HTML5, Canvas und WebGL verwenden?
  • 2D-Desktopspiele wie Limbo und Sunless Sea?
  • 3D-Spiele wie Battlefield und Forza?

Denken Sie daran, dass an Triple-AAA-Titeln wie Battlefield normalerweise Teams aus Designern und Entwicklern arbeiten. Andererseits gibt es viele komplexe Spiele, die von nur einer Person erstellt wurden!

Versuchen Sie zunächst, Unity zu lernen. Das verwendet entweder C# oder Javascript (Unityscript) als Programmiersprache. Es wird viel einfacher sein, als etwas wie C++ zu lernen. Letztendlich werden Sie auch C++ lernen wollen, weil es die De-facto-Sprache in der heutigen Spieleentwicklungsbranche ist.

Möglicherweise möchten Sie jedoch nicht die Entwicklung von Desktop-Spielen lernen. Wenn Sie daran interessiert sind, browserbasierte Spiele zu erstellen, schauen Sie sich HTML5 Canvas, WebGL und Three.js an.

Sehen Sie sich Unreal Engine und CryEngine an, wenn Sie mit Spiel-Engines spielen möchten, die sich eher so anfühlen, wie Sie es von AAA-Titeln erwarten. Dies sind die Motoren hinter Spielen wie XCOM und Crysis. Sie sind schwieriger als Unity, aber nicht so schwierig, wie Sie sich vorstellen können.

Sie sollten wissen, dass es bei der Spieleentwicklung nicht nur ums Programmieren geht. Denken Sie darüber nach, auch das Erstellen von Grafiken zu lernen. Dies könnte Illustrator/Photoshop für 2D-Spiele oder so etwas wie Blender für 3D-Modellierung sein. Es besteht immer die Möglichkeit, sich mit jemandem zusammenzutun, der auch weiß, wie man sie erstellt.

Meine abschließenden Gedanken sind, dass Sie Programmieren lernen sollten, bevor Sie sich in die Spieleentwicklung stürzen. Wenn Sie versuchen, Spieleentwicklung zu lernen, während Sie gerade erst anfangen, Programmieren zu lernen, werden Sie dagegen ankämpfen. Jede Programmiersprache sollte in Ordnung sein, aber ich würde Python empfehlen, wenn Sie keine Programmiererfahrung haben.

Dein Abschluss ist wirklich nicht das Problem. Es ist der „autodidaktische“ Teil, der mich beunruhigt.

Wir bekommen fast ein paar hundert Bewerbungen pro Monat von „autodidaktischen“ Entwicklern ohne Erfahrung. Einige können den Unterschied zwischen HTML und einer tatsächlichen Programmiersprache kaum ausmachen. Andere haben das Erscheinungsbild von Websites angepasst und behaupten, dass sie über mehrere Jahre Erfahrung in der Backend-Entwicklung verfügen.

Unnötig zu erwähnen, dass der Mangel an praktischer Erfahrung (und oft an dem, was Ihnen die Informatik im Unterricht beibringt) zum Dunning-Kruger-Effekt führt - Wikipedia - zu glauben, dass Sie mit der Branche sehr vertraut sind

Weiterlesen

Dein Abschluss ist wirklich nicht das Problem. Es ist der „autodidaktische“ Teil, der mich beunruhigt.

Wir bekommen fast ein paar hundert Bewerbungen pro Monat von „autodidaktischen“ Entwicklern ohne Erfahrung. Einige können den Unterschied zwischen HTML und einer tatsächlichen Programmiersprache kaum ausmachen. Andere haben das Erscheinungsbild von Websites angepasst und behaupten, dass sie über mehrere Jahre Erfahrung in der Backend-Entwicklung verfügen.

Unnötig zu erwähnen, dass der Mangel an praktischer Erfahrung (und oft an dem, was Ihnen die Informatik im Unterricht beibringt) zum Dunning-Kruger-Effekt führt - Wikipedia - zu glauben, dass Sie mit der Branche sehr vertraut und in der Lage sind, Probleme zu lösen (was alles andere als wahr ist ).

Das ist keine Faustregel. Sie können vollkommen in Ordnung, fähig, gebildet und erfahren sein, ein qualifizierter Kandidat für eine Stelle. Aber Sie würden sich keine Sorgen machen, wenn Sie 5–7 Jahre als Vollzeitentwickler in ein paar Unternehmen gearbeitet hätten, oder?

Als Neuling (oder sogar als erfahrener Freiberufler) müssen Sie sich vor allem auf Ihr Portfolio konzentrieren. Bereiten Sie so viele Projekte wie möglich vor ODER ein oder zwei wirklich große, komplexe und umfassende Projekte, die Ihre Fähigkeiten unter Beweis stellen.

Sie betrachten sowohl die Tiefe als auch die Breite. Aber die Tiefe steht an erster Stelle, da das Unternehmen wissen muss, wie komplex ein Problem ist, das Sie lösen können, und wie viel Anleitung Sie benötigen würden, um die Grundlagen zu verstehen.

Während „Codezeilen“ im Allgemeinen eine nutzlose Metrik ist, würde ich zu mindestens 8–10.000 Zeilen Programmiercode (ohne Markup, Vorlagen, Skins, Styling) raten, die verschiedene Punkte einer Anwendung berühren.

Beispiele für die Verwendung von Industriewerkzeugen oder Bibliotheken helfen, dh objektrelationale Abbildung für die Datenbankverwendung, Reflektion zum Debuggen, Entwurfsmuster für bestimmte Anwendungen, angemessene Verwendung der Versionskontrolle (mit angemessenen Commit-Nachrichten und anständiger Formatierung) unter anderem.

Je professioneller Ihr gesamtes Projekt erscheint, desto höher die Chancen.

Bonuspunkte für Teamarbeit und/oder Beiträge zu Open-Source-Software. Dies zeigt andere wichtige Fähigkeiten, die von Nutzen sein könnten.

Es ist nicht so schwierig, wie man vielleicht denkt … Ich habe zwar Elektrotechnik an der Virginia Tech studiert, aber mein eigentlicher Beruf war die Webentwicklung. Ich sollte darauf hinweisen, dass viel von dem, was mir wirklich geholfen hat, das zu erreichen, was ich getan habe, viel Zeit in Anspruch genommen hat, die ich dem Lesen und Erstellen von Dingen im Internet gewidmet habe.

Ich sollte auch klarstellen, dass ich zwar nicht für Programmieren zur Schule gegangen bin, aber letztendlich doch zur Schule gegangen bin! Das bedeutet, dass ich Kurse in Bereichen wie Mehrvariablenrechnung, Differentialgleichungen, lineare Algebra, Vektorgeometrie, technische Statistik und sogar C-Programme belegt (und bestanden: P) habe

Weiterlesen

Es ist nicht so schwierig, wie man vielleicht denkt … Ich habe zwar Elektrotechnik an der Virginia Tech studiert, aber mein eigentlicher Beruf war die Webentwicklung. Ich sollte darauf hinweisen, dass viel von dem, was mir wirklich geholfen hat, das zu erreichen, was ich getan habe, viel Zeit in Anspruch genommen hat, die ich dem Lesen und Erstellen von Dingen im Internet gewidmet habe.

Ich sollte auch klarstellen, dass ich zwar nicht für Programmieren zur Schule gegangen bin, aber letztendlich doch zur Schule gegangen bin! Das bedeutet, dass ich Kurse in Bereichen wie Kalkül mit mehreren Variablen, Differentialgleichungen, lineare Algebra, Vektorgeometrie, technische Statistik und sogar C-Programmierung besucht (und bestanden: P) habe, um nur einige zu nennen ... Mein Punkt ist, dass es so war eine Kombination aus Erfahrungen und Bemühungen, die es mir ermöglichten, erfolgreich zu sein.

Vor kurzem habe ich angefangen, die gesamte Front- und Back-End-Wartung und -Entwicklung für ein ziemlich bekanntes E-Commerce-Unternehmen zu übernehmen (und mir irgendwie den Titel „SEO-Spezialist“ durch meinen starken Hintergrund in der Arbeit mit Datensätzen erarbeitet).

Wie habe ich meinen Fuß in die Tür bekommen? Ich habe nicht einmal meinen Lebenslauf angeboten, sondern mich bei mehreren Unternehmen beworben, um einfache Aufgaben wie die Dateneingabe (manuelles Hinzufügen von Produkten zu Websites usw.) zu erledigen.

Von den wenigen, die mein Angebot annahmen, entschied ich mich für das Unternehmen, das die größten Wachstums- und Erfolgschancen aufwies ... aber noch wichtiger, das Unternehmen, bei dem ich das Gefühl hatte, dass es dringend gute Entwicklertalente braucht, es aber nicht wusste es jetzt.

Also habe ich 2 Wochen lang Daten eingegeben und schließlich angefangen, meine Dienste anzubieten, um kleine Ausbesserungen auf ihren Websites vorzunehmen ... Sie wissen schon, Dinge wie die Beschleunigung der Seitenladezeiten, das Hinzufügen von Funktionen, die durch sperrige Plugins schlecht implementiert wurden oder Anwendungen.

Dieses spezielle Unternehmen erkannte sofort, dass ich ein potenziell großer Gewinn war. Ich war bereit, im Austausch für Erfahrung und eine Website, auf der ich meine „Entwicklerflagge“ für zukünftige Bewerbungen verwenden konnte, für weniger zu arbeiten. Ich konnte auch enorme Verbesserungen in Bereichen demonstrieren, die der weniger technisch Versierte leicht erkennen würde. Wie bereits erwähnt, würde dies kürzere Ladezeiten, mehr Verkehr und sogar die Bereitstellung detaillierter Website-Analysen und vorgeschlagener Verbesserungsmethoden beinhalten (mit freundlicher Genehmigung der College-Kurse in Mathematik und Ingenieurstatistik, an denen ich teilgenommen hatte). Ich würde sogar so weit gehen zu spekulieren, dass die Mitglieder des oberen Managements den Wert dieser Art von Person leicht erkennen würden. Indem wir durch die Erstellung verschiedener statistischer Analysen, gepaart mit empfohlenen Aktionsplänen, darüber hinausgehen,

Ironischerweise hatte ich drei Wochen Beschäftigung nicht überschritten, bevor ihre Website durch einen bösen Malware-Eindringling kompromittiert wurde (zu diesem Zeitpunkt verbrachte ich immer noch die meiste Zeit damit, neue Produkte und Variationen hinzuzufügen). Dies war die Art von Vorfall, bei dem Google erkannte, dass schlechte Spam-Links auf der gesamten Website hinzugefügt wurden. Sobald Google herausgefunden hat, dass Sie „gehackt“ wurden, wird die gesamte Website mit einer präventiven, beängstigenden „Diese Website ist nicht sicher“-Warnung an alle Besucher geschlagen.

...Sie wissen, wovon ich spreche: diese riesige rote Zielseite, auf die Sie manchmal umgeleitet werden:

Ich kann gar nicht genug ausdrücken, wie sehr dies für kleine und mittelständische Unternehmen ein Todeswunsch sein kann. Vor allem, wenn der hauptsächlich auf eCommerce für Einnahmen angewiesen ist! Eine Warnung für nur einen einzigen Tag kann normale Verkehrswege (und wahrscheinlich auch Verkäufe) zerstören. Ich meine es ernst, wenn ich sage, dass dies ein Todesurteil sein kann.

Also zurück zur Geschichte. Der frühere Entwickler, der die erste Version der Website erstellte, hatte sich offensichtlich entweder nicht um Sicherheit gekümmert oder war sich dessen nicht bewusst (was den E-Commerce betrifft) sowie andere triviale Dinge, mit denen die meisten Entwickler wahrscheinlich vertraut sind. Ich erspare Ihnen auch die Details über all die unklugen Dinge, die das Management getan hat (es ist jedoch nicht ihre Schuld, niemand hat irgendjemanden in Bezug auf bewährte Verfahren und Techniken zur Risikoprävention belehrt).

Ich lernte die wenigen ursprünglichen Mitarbeiter des Unternehmens immer noch kennen, daher war ich nicht wirklich zuversichtlich, ihnen Dinge zu sagen wie: „Hey, hör auf, dich über FTP bei Filezilla anzumelden und es Tag und Nacht verbunden zu lassen!“ Aber all dies sollte sich ändern, nachdem ich eines frühen Morgens eine prompte SMS vom Verkaufsleiter erhalten hatte. So würde unser Gespräch ablaufen (Wort für Wort von meinem Telefon mit geänderten Namen und Positionstiteln):

Vertriebsmitarbeiter: Jane (Kundenbetreuerin) sagte, dass das Zeichen für bösartige Malware auftaucht.
Vertriebsmitarbeiter: Oh, und wenn Sie sich Wordfence ansehen, heißt es, dass es viele Änderungen an unseren PHP-Dateien gibt.
Ich: Hm, interessant. Wordfence kann oft falsch positive Ergebnisse im Zusammenhang mit Plugin-Updates generieren.
Ich: …aber ich bin neugierig, die Dinge zu überprüfen.
Vertriebsmitarbeiter: Nein, die Website leitet die Leute auf eine schlechte Website weiter...

Mein Chef, der sich bereits meines technischen Hochschulhintergrunds bewusst war, forderte mich gelegentlich auf, Dinge zu tun, die von der Beschreibung der Dateneingabe abwichen (z. B. die Entwicklung benutzerdefinierter E-Mail-Vorlagen für Kundenbestellungen). Er wusste, dass ich schlau war, wusste aber nicht, wie viel Glück er gehabt hatte, mich um sich zu haben, als diese Situation eintrat. Als er das Büro betrat (außer Atem und nachdem er mehrere Kollisionen beim Fahren nur knapp vermieden hatte), rannte er besorgt zu mir und fragte, ob ich wüsste, wie ich die Google-Malware-Warnung so schnell wie möglich loswerden könnte.

Nachdem ich ziemlich viel Zeit damit verbracht hatte, die Besonderheiten dieses speziellen CMS zu lernen, verstand ich seine strukturelle Hierarchie. Ich war auch mit den Wegen vertraut, auf denen diese Art von Vorfällen auftritt. Ich weiß, wo ich suchen muss und was mich erwartet.

Ich habe Administratorzugriff auf die Website und die Remote-Login-Informationen angefordert. Ich bat ihn auch, dafür zu sorgen, dass ich zumindest in den nächsten 24 Stunden nicht mit irgendwelchen niederen Aufgaben belästigt werde, während ich daran arbeite.

Ich würde in den nächsten zwei Stunden damit fortfahren, den bösartigen Code zu bereinigen (sicher genug, es war eine faule Skriptinjektion innerhalb des Medienverzeichnisses). Da ich in relativ kurzer Zeit in der Lage war, Google zu lokalisieren, zu entfernen und zu bereinigen, dauerte der Vorgang, Google „von unserem Fall zu befreien“, nur einen zusätzlichen Tag (was nicht schlecht ist, wenn man bedenkt, wie viele Fälle Wochen oder sogar Monate dauern können!). .

Ich wollte Ihnen diese Geschichte erzählen, um zu demonstrieren, wie es mir möglich war, überall und überall präsent zu sein. Wenn ich mir nicht sicher war, ob ich in der Lage war, etwas zu tun, recherchierte ich gründlich, nutzte eine meiner persönlichen Websites für ein wenig Test und tauchte dann direkt ein.

Mir ist auch aufgefallen, dass ein besonderes Merkmal der „Großen“ ihre Fähigkeit ist, Aufgaben zu erledigen, bei denen sie wenig Erfahrung haben, indem sie die verschiedenen verfügbaren Ressourcen (Bücher/eBooks, Entwicklerforen, Videos, Dokumentation und Handbücher usw.) sorgfältig analysiert haben. Sie können sich unterwegs anpassen und lernen. Weitaus vorteilhafter als ein Abschluss in einer codebezogenen Disziplin ist die Fähigkeit, Dinge spontan zu lernen.

Verbringen Sie Zeit damit, herauszufinden, wie Sie die guten Informationen heraussuchen, während Sie sich von den „schlechten Dingen“ fernhalten. Erfahren Sie, wie Sie in der Referenzdokumentation navigieren und wie Sie sie richtig verwenden. Schreiben Sie auf, was Sie lernen, während Sie Fortschritte machen, damit die wichtigen Konzepte haften bleiben (z. B. Blog, Quora, andere Entwicklerforen).

Nach nur einem Jahr hatte ich so viele neue Erfahrungen und nachfolgende Errungenschaften, die sich in einer hochwertigen Website widerspiegelten. Es war definitiv eine enorme Verbesserung gegenüber dem Lebenslauf. Ich konnte einen klaren Weg angeben, der mich direkt mit statistischen Beweisen verband, die nicht nur eine Verdoppelung des organischen Verkehrs, sondern auch des Umsatzes zeigten.

Organische Sitzungen in den ersten 3 Monaten bei meinem ersten Job (die Grafik ist aus Gründen der Anonymität leer, also müssen Sie mir einfach vertrauen, dass ich weiß, wie man sie richtig erstellt).

Letztendlich würde ich aufgrund dieser Erfahrungen und der Art und Weise, wie sie mich geprägt haben, einen „offiziellen“ Job als Webentwickler (mit einem gnädigeren Gehalt) bekommen.

Ich habe mit autodidaktischen Programmierern ohne formale Ausbildung in Informatik gearbeitet. Wenige Kernkompetenzen sind ohne formale Bildung schwer zu verstehen (- trifft auch auf viele Informatik-Absolventen zu).

  1. Algorithmen und Datenstrukturen - Algorithmische Komplexität verstehen Big O Notation zu grundlegenden Datenstrukturen - Stack, Queues, Graphs, Trees - das grundlegende Konstrukt der Programmierung, das hilft, robuste, skalierbare und effiziente Programme zu schreiben. Viele Informatik-Majors haben auch große Schwierigkeiten, diese Konzepte zu verstehen.
  2. Betriebssystemprogrammierung - Es ist möglicherweise nicht trivial für den Eintrag
Weiterlesen

Ich habe mit autodidaktischen Programmierern ohne formale Ausbildung in Informatik gearbeitet. Wenige Kernkompetenzen sind ohne formale Bildung schwer zu verstehen (- trifft auch auf viele Informatik-Absolventen zu).

  1. Algorithmen und Datenstrukturen - Algorithmische Komplexität verstehen Big O Notation zu grundlegenden Datenstrukturen - Stack, Queues, Graphs, Trees - das grundlegende Konstrukt der Programmierung, das hilft, robuste, skalierbare und effiziente Programme zu schreiben. Viele Informatik-Majors haben auch große Schwierigkeiten, diese Konzepte zu verstehen.
  2. Betriebssystemprogrammierung - Für Programmierer der Einstiegsebene ist dies möglicherweise nicht trivial, aber funktionierende Anwendungen erfordern häufig die Abstimmung der Kernelparameter im Betriebssystem - Kernelspeicherplatz und Benutzerspeicherplatz, Bibliotheksaufrufe und Systemaufrufe, CPU-Last, IO - Semaphore und Mutex.
  3. Systemprogrammierung und Compiler-Design - Obwohl nur sehr wenige mit dem Entwerfen von Compilern oder Interpretern enden. Warum schreibt man einen Code in C, nicht in Java oder umgekehrt?
  4. Computernetzwerke - Obwohl das TCP/IP-Protokoll von der konzeptionellen Ebene aus leicht verständlich erscheint, erfordert das Verständnis von TCP/IP-Stacks aus Betriebssystem- und Netzwerkperspektive, die Optimierung von Kernelparametern für den TCP-Fluss und IP-Pakete ein Verständnis aller Ebenen des TCP/IP-Protokolls. Wie sind TCP und symmetrische und asymmetrische Verschlüsselung für TLS erforderlich?
  5. Programmiersprachenkonzepte - Hilft, das Konzept von Assembler, Interpreter, Compiler, Bytecodes usw. zu verstehen, warum ein Compiler anstelle von Interpreter oder Assembler erforderlich ist. Wie entwirft man eine neue Programmiersprache?
  6. Objektorientierte Programmierung - wie man Polymorphismus, Abstraktion, Vererbung in der Klasse verwendet. Wie erstellt man UML-Diagramme? Was ist der Vorteil von OOAD gegenüber strukturierter Programmierung und umgekehrt?
  7. Software Engineering – Von der Anforderungsanalyse bis hin zu Wasserfallmodellen ist die Agilität der Softwareentwicklungsprozesse wichtig.
  8. Datenbankdesign und -anwendungen – DML, DDL, Indexoptimierung usw. spielen eine entscheidende Rolle für die Leistung jeder Anwendung. Was ist SÄURE?
  9. Diskrete Mathematik - wie Tupel und kartesische Produkte das Konzept von DML in RDBMS formalisieren, Funktionen, Graphentheorie, Vertex, Venn-Diagramme - die Grundlagen der Informatik. Mathematik, die CS von solider Ingenieurskunst unterscheidet.
  10. Distributed Computing – Bei der Arbeit in den Anwendungsskalen werden die Tools und Konzepte benötigt, die für Massively Parallel Programming Computing erforderlich sind – Multiprocessing und Multithreading. Der Kompromiss zwischen Multithreading und Multiprocessing, MPI- oder Java-Threads und Parallelitätssteuerung. Warum brauchen Sie MPI-Programmierung? Prozessparallelisierung versus Threadparallelisierung. Wie werden HPC-Cluster entworfen?
  11. Systemarchitektur - Als Programmierer arbeiten viele an einem sehr kleinen Teil der Produkte. Es ist jedoch sehr wichtig, die End-to-End-Architektur des Systems zu verstehen, was Kenntnisse in (Hardware, Anwendung, Betriebssystem, Netzwerk und Virtualisierung) End-to-End-Engineering erfordert.
  12. Digitale Logik und Computerarchitektur: Konzept von Binär, Hexadezimal, Oktett, Logikgatter, Subnetze, Flip-Flops, Kerne, Multicore, Hyperthreading, Bus usw., wie man Subnetze und das Konzept der MAC-Adresse berechnet. Die Beschränkung von IPV4-Adressen.
  13. Dokumentation - Aufgrund des Mangels an konzeptionellem Jargon ist es schwierig, Dokumentation zu schreiben oder UML-Falldiagramme für OOAD zu entwerfen. Leider mangelt es vielen Informatik-Studenten an technischem Schreiben und Kommunikationsfähigkeiten.

Kurz gesagt, eine Person, die hoch motiviert und begeistert ist, neue Technologien zu lernen, wird in den ersten drei Jahren ihrer Karriere in der Lage sein, Qualifikationslücken zu schließen. Ich hatte auch große Mühe, viele dieser Konzepte zu verstehen.

Es ist Erfahrung, die viel zählt, und das Programmieren ist eine Kunst neben der Wissenschaft. Dies wurde im Informatik-Lehrplan weniger betont.

Diese Antwort gilt gleichermaßen für Systemingenieure, Netzwerkingenieure und System- und Softwarearchitekten.

Related Post: