Bevor ich es überhaupt bemerkt habe, neigte sich das Jahr schon dem Ende zu. Ich seufze darüber, wie der Pfeil der Zeit so vorbeifliegt, und mein Leben zählt ein weiteres Jahr herunter. Rückblickend bin ich seit über sieben Jahren ein Code-Affe. Auch wenn ich es nicht weit gebracht habe, habe ich die Zeit auch nicht völlig verschwendet. Eine kurze Zusammenfassung scheint angebracht, um die vergangenen Tage nicht aus den Augen zu verlieren, und sie wird dem weiteren Weg sehr zugutekommen. Wenn dieser Beitrag dir irgendwie helfen kann, freue ich mich sehr.


Eine Karriere ist ein Marathon, der aus unzähligen zusammenhängenden Läufen besteht


In der Grundschule wussten wir genau, dass wir in 5 Jahren unseren Abschluss machen würden (ich durchlief damals das 5-Jahres-System; anscheinend gibt es das an manchen Orten noch). Egal, wie sehr du deine Lehrer, Mitschüler oder die Schule gehasst hast, du wusstest, dass es nach höchstens 5 Jahren vorbei sein würde. Genauso in der Mittel- und Oberschule: in drei oder vier Jahren ist es schnell vorbei, und all die Freude und das Leid verfliegen bald. Beim College ist es sogar noch ausgeprägter – vom Tag, an dem du den Campus betrittst, beginnt der Countdown, und du weißt, dass du eines Tages vier Jahre später gehen wirst. Egal, ob du es schätzt oder verschwendest, die Zeit läuft weiter in eine Richtung, mit ihrer ewigen, unveränderlichen Geschwindigkeit.



Aber der Arbeitsplatz? Nach 5 Jahren arbeitest du immer noch, und du musst weiterarbeiten. Nach 10 Jahren, 20 Jahren, 30 Jahren, sogar 40 Jahren müssen wir immer noch arbeiten. Selbst wenn du kündigst, musst du zu einem anderen Unternehmen gehen, und die neue Stelle unterscheidet sich im Wesentlichen nicht von der letzten. Wenn du einmal verstanden hast, dass eine Karriere ein 40-Jahre-Zyklus ist, erkennst du, dass es ein ultra-langer Marathon ist – kein Mittelschul-Sprint, kein College-Aufnahmeprüfungs-Sprint und schon gar kein "Komm auf eine gute Universität, dann kannst du einfach rumspielen." Es hat keinen Sinn, rücksichtslos loszusprinten; es würde sowieso nichts bringen. Wichtiger ist kontinuierliches Lernen – ja, jahrzehntelanges kontinuierliches Lernen.


Der einzige Weg, ein Meister oder ein großes Tier (da niu) zu werden, ist ständiges Lernen


Träum nicht davon, dass du ein großes Tier wirst, weil du in ein großes Unternehmen kommst, in einem großartigen Team mitarbeitest, neben einem großen Tier sitzt oder mehr Offline-Events besuchst. Das ist alles "too young, too simple". Warum sollte ein großes Unternehmen dich wollen? Warum sollte ein großartiges Team dich wollen? Zuerst brauchst du echte Fähigkeiten. Was Tipps von einem großen Tier angeht – das ist Glück. Vielleicht hast du zu viele TV-Dramen gesehen: Du fällst in ein Tal und triffst einen weißen Affen, der die Neun-Yang-Schrift in seinem Bauch versteckt hat? Oder du rollst eine Klippe hinunter, siehst einen riesigen Adler und lernst die Dugu-Neun-Schwerter? Bei Millionen von Code-Affen im ganzen Land – was glaubst du, wie hoch die Chancen sind, einem Meister zu begegnen? Und wie wahrscheinlich ist es, dass ein Meister bereit ist, mit dir zu reden? Du träumst davon, dass ein Meister dir persönlich etwas beibringt? Es sei denn, du bist sein Fickkumpel.


Natürlich haben manche Leute wirklich genug Glück, von einem Meister angeleitet zu werden. Aber ich glaube, dass die große Mehrheit selbst dann, wenn ein großes Tier direkt neben ihnen sitzt, nicht genug Gelegenheiten bekommt, um von ihm angeleitet zu werden. Unternehmen stellen uns ein, damit wir arbeiten, Werte schaffen und für sie Geld verdienen. Große Tiere haben schwerere Arbeitslasten und mehr Dinge zu erledigen – warum um alles in der Welt sollten sie verpflichtet sein, dich anzuleiten?


Große Unternehmen haben zwar reichlich Ressourcen und Materialien und mehr Weiterbildungsmöglichkeiten, aber man muss trotzdem selbst hingehen, zuhören und lernen. Was die verschiedenen Offline-Events angeht, sind die meisten nur Werbung. Die übrigen Vorträge kratzen meist nur an der Oberfläche – echte Substanz („handfeste Inhalte“) zu bekommen ist unmöglich. Wie viel können sie in ein paar Dutzend Minuten sagen? Und wie viel kannst du aufnehmen? Offline-Events sind also gute Gelegenheiten für Promotion, Horizonterweiterung (man hört viele Konzepte) und Netzwerkaufbau (man trifft tatsächlich viele Leute – wichtige Leute und Gleichgestellte) – aber nicht zum Lernen.


In einem Satz: Wenn du ein Meister werden willst, musst du trotzdem bodenständig lernen – Bücher verschlingen, Code lesen, Code schreiben. Es gibt keinen anderen Weg. Dazu kannst du den Artikel eines Big Shots lesen (Jeden Tag Business-Code schreiben – wie wirst du ein technischer Big Shot?), was ich für sehr sinnvoll halte.


Wähle eine Branche oder eine Technologie und gehe dann in die Tiefe


Obwohl ich nicht befürworte, dass manche Leute Fünfjahrespläne machen – weil sich unsere Branche, Unternehmen, Projekte und Mitarbeiter zu schnell verändern und diese unsicheren Faktoren alle Pläne über den Haufen werfen, besonders langfristige – brauchen wir trotzdem Ziele. Ich glaube, für die meisten Menschen ist das ultimative Ziel nichts anderes als finanzielle Freiheit. Wie erreicht man finanzielle Freiheit? Glück spielt eine Rolle, aber was mehr zählt, ist echte Stärke. Was ist echte Stärke? Sie bedeutet, Probleme lösen zu können, die andere nicht lösen können. Zum Beispiel will der Chef einen bestimmten Geschäftszweig entwickeln, und du kennst die Geschäftsregeln in- und auswendig und kannst ein Team führen, um es umzusetzen. Oder wenn ein technisches Problem auftaucht, kannst du es knacken. Ohne echte Stärke hilft bloßes Glück nicht – selbst wenn du den Aufstieg von Taobao miterlebt hast, könntest du heute immer noch nicht finanziell frei sein.


Woher kommt echte Stärke? Sie kommt aus der Akkumulation. Was soll man anhäufen, um immer wertvoller zu werden? Nichts anderes als Branche oder Technologie.


Was ist eine Branche? Autos sind eine Branche, Finanzen sind eine Branche, Bekleidung ist eine Branche, Reisen und Transport sind eine Branche, und so weiter. Und was ist Technologie? Sicherheit, Audio, WebKit, Grafik, Deep Learning – das sind alles Technologien. Wenn man in einer Branche tätig ist, muss die Technologie nicht kompliziert sein; sie kann ganz gewöhnlich sein. Aber wenn man eine Branche tiefgehend verstehen kann – ihre Spielregeln, ihre Fallstricke, ihre Richtlinien und Vorschriften, ihre Risiken, wie man maximale Erträge erzielt –, sind das Dinge, die man erst lernt, nachdem man Zeit in der Branche verbracht hat. Technologie ist leichter zu verstehen: Verpackte Technologie zu nutzen ist einfach. Zum Beispiel ist WebView sehr bequem zu verwenden, aber ihre zugrunde liegende technische Implementierung – WebKit – ist extrem komplex, und man kann sie nicht in nur wenigen Jahren durchschauen.


Natürlich ist es nicht einfach, im selben Bereich (ob Branche oder Technologie) immer tiefer zu graben – dazu gehört Glück. Aber verstehe dies: Nur wenn du dich in einer Branche oder einer Technologie tiefgehend engagierst, kannst du deinen Wert maximieren. Wenn du also eine Wahl hast, geh so nah wie möglich an dein Ziel heran.


Verantwortung wiegt schwerer als Technologie


Die Arbeit eines Programmierers, ob in der Internet- oder Unternehmenssoftware, ist Ingenieurwesen – sie ist die Anwendung von Technologie. In den meisten Fällen werden die meisten Menschen bei der Arbeit nicht auf technologisch unlösbare Probleme oder Weltklasse-Herausforderungen stoßen. Mit anderen Worten: Die Probleme, auf die man bei der Arbeit stößt – selbst wenn man nicht weiß, wie man sie lösen soll –, lassen sich schnell lösen, indem man Referenzen, Bücher, das Internet und Kollegen zu Rate zieht. Außerdem erfordern das Schreiben von sauberem Code, gründliches Testen und das Robustmachen von Dingen keine besonders tiefgehende oder hochmoderne Technologie. Solange man sein Herz hineinlegt, kann man es ziemlich gut machen.


Umgekehrt sind diejenigen, die bei der Arbeit schlecht abschneiden, nicht unbedingt technisch schlecht. Die Bewertung dieser Menschen durch andere wird unweigerlich "unverantwortlich" lauten. Wie es heißt, bestimmt die Einstellung alles, und die Frucht der Einstellung ist Verantwortung. Selbst wenn dein technisches Niveau durchschnittlich ist, bist du, wenn deine Einstellung ernsthaft und du verantwortungsbewusst bist, ein ausgezeichneter Mitarbeiter – und für das Unternehmen wertvoller. Was diejenigen betrifft, die technisch stark, aber schlecht eingestellt sind und sich vor Verantwortung drücken, so sind das genau die Sorte von Leuten, die einfach im Essen und Trinken dahinvegetieren und auf den Tod warten – Tumore, die früher oder später herausgeschnitten werden.


Ein professioneller Codeaffe werden


"Professionell" bezieht sich hier eher auf Form und Methode – die Art und Weise, Dinge zu tun. Bevor wir erklären, was "professionell" bedeutet, sehen wir uns einige Beispiele dafür an, was unprofessionell ist:


  • Während eines Telefoninterviews fragst du nicht, ob die andere Seite dich klar hören kann, und fängst einfach an, bla bla bla zu reden. Nach etwa zehn Minuten seufzt die andere Seite und sagt: "Entschuldigung, schlechtes Signal, ich habe das nicht mitbekommen ..."
  • Zum Beispiel sagt der Kandidat während eines Telefoninterviews: "Lass mich zuerst einen passenden Ort finden." Nachdem er einen gefunden hat, ruft er dich an und sagt, dass er einen gefunden hat – und dann beginnt das Telefoninterview ... über den ausgehenden Anruf des Kandidaten ...
  • Zum Beispiel bei Meetings zu spät zu kommen oder während der Meetings Small Talk zu machen ...
  • Voreilige Schlüsse zu ziehen, bevor man das Gesamtbild versteht – besonders für die Hitzköpfe – und sogar anzufangen, Leute zu beschimpfen ...

Ich glaube, solche Beispiele sind zu zahlreich, um sie alle aufzuzählen, und ich bin mir auch absolut sicher, dass wir Codeaffen und Code-Feen im Arbeitsalltag ständig auf solche Dinge stoßen. Unsere übliche Reaktion auf solche Dinge ist "unprofessionell" – ja, genau das ist es.


Das Gegenteil ist professionell:


Vor dem Telefoninterview bestätige zuerst, ob die andere Person dich klar hören kann, und dann blabla; wenn der Kandidat dir sagt: „Ich habe jetzt Zeit, lass uns das Interview machen“ – das ist eine Ankündigung. Du legst auf und rufst dann zurück; habe eine klare Besprechungsagenda, sei nicht zu spät; verstehe die ganze Geschichte, bevor du anfängst zu fluchen ... und so weiter.


„Es gibt eine Ordnung im Lernen, und jedes Handwerk hat seine Spezialisierung.“ Das ist alles.


Wissen ist unendlich. Es wird immer Dinge geben, die du nicht weißt, Dinge, die du nicht kannst. Selbst wenn du jahrzehntelang ein Code-Monkey warst, bekannt als jemand, der alles weiß, und mit dem Spitznamen „Mr. Alleswisser“ bedacht – es ist nicht schwer, dich ratlos zu machen – sogar ein Schulkind hat Wissen, das du nicht hast. Die Softwarebranche ist in viele Bereiche unterteilt. Man sagt, jedes Gewerbe sei eine Welt für sich, aber auch verschiedene Bereiche innerhalb eines Gewerbes haben Unterschiede – zum Beispiel Client-Seite, Backend, Frontend, Treiber, Game-Engines, Grafik und Bildgebung, Sicherheit und so weiter. Deshalb müssen wir uns eine Wissbegierde und eine bescheidene Haltung bewahren. Selbst wenn du eine Frontend-Größe bist, bist du bei einem Treiberproblem ein Noob – du musst demütig lernen und andere um Rat fragen.


Darüber hinaus solltest du bei Interviews als Interviewer mit Entscheidungsgewalt über Leben und Tod den Kandidaten Respekt entgegenbringen. Erschwere die Dinge nicht absichtlich oder „spiele den Interviewprozess für deinen Chef durch, obwohl du die Person offensichtlich nicht willst“, aus nichttechnischen Gründen wie dem Hintergrund des Kandidaten (kein Fachstudium oder Associate Degree), seiner Erfahrung (kleine Unternehmen, Outsourcing-Firmen), mangelnder Erfahrung (wenige Jahre, keine herausragenden Projekte) oder fehlender Passung (du brauchst jemanden für die Client-Seite, aber der Großteil seiner Erfahrung liegt im Frontend), und schaue auch nicht aus anderen Gründen auf Kandidaten herab (ich habe einmal jemanden aus einem ausländischen Unternehmen getroffen, der auf Leute aus inländischen Unternehmen herabgesehen hat und sagte, inländische Unternehmen würden ausländische nur kopieren). Wie das alte Sprichwort sagt: „Stelle nie jemanden ein, den du bezweifelst; bezweifle nie jemanden, den du einstellst.“ Als Interviewer kannst du jemanden ablehnen – das ist dein Recht –, aber du musst ihn respektieren, selbst wenn seine Fähigkeiten wirklich mangelhaft sind. Jeder hat Zeiten, in denen er den Kopf beugt. Ist ein ausländisches Unternehmen denn so großartig? Sind ausländische Unternehmen in China nicht einfach die Outsourcing-Arme der Zentrale, die alle möglichen Gelegenheitsarbeiten erledigen? Motorola war damals so großartig – tolle Bezahlung, super wählerisch bei der Einstellung – und jetzt ist der Baum gefallen und die Affen haben sich zerstreut! Wie das alte Sprichwort sagt: Prahle nicht, sonst wirst du früher oder später vom Blitz getroffen!


Wie man die verwirrten Blicke stoppt und das unruhige Herz beruhigt


Immer wenn wir uns verloren fühlen, liegt das daran, dass wir zu viel über die Zukunft nachdenken und in der Gegenwart zu wenig tun; immer wenn wir uns unruhig fühlen, liegt das daran, dass wir zu viel erwarten und zu wenig erreichen. Egal, was du wirst oder wohin du gehst, der Schlüssel ist, von dort zu beginnen, wo du jetzt bist. Du kannst nicht davon träumen, direkt dorthin zu fliegen – es gibt keinen Hubschrauber und keinen Heißluftballon, der dich vom Boden abheben kann. Du kannst nur von der Gegenwart aus beginnen, bodenständig bleiben und Schritt für Schritt vorwärtsgehen.


Das ist noch etwas vage, etwas Hühnersuppe. Lass mich darüber sprechen, wie man es konkret macht:


  • Zuerst finde heraus, was genau du machst. Richtig, ein Code-Affe, der nur Code schreibt. Code welcher Schicht? Android? Apple? Anwendungen? Frameworks? Treiber? Welche Domäne? Grafik und Bildverarbeitung? WebKit? Netzwerk? Bluetooth? Finanzen? Sicherheit? Was – du schreibst keinen Code, du wartest nur und behebst Fehler (nicht wenige Leute, zum Beispiel die bei schlüsselfertigen Android-Lösungen, warten nur und beheben Fehler)? Dasselbe – finde heraus, welche Schicht, welche Domäne.
  • Dann, wenn du herausgefunden hast, was du machst, ist es einfach: Mach das, was du tun sollst, gut, werde gründlich damit vertraut, bis du nur noch einen halben Tag brauchst, um die Arbeit eines ganzen Tages zu erledigen.
    Code zu schreiben erfordert zu lernen, wie man Code schreibt, der sowohl gut als auch schnell ist – das heißt, vorgegebene Anforderungen schnell und mit wenigen Fehlern umsetzen zu können. Auf einer höheren Ebene geht es außerdem darum, sauberen, verständlichen Code mit vernünftiger Struktur und klarer Namensgebung zu schreiben. Das ist die Pflege grundlegender Fähigkeiten, und sie wurde lange vernachlässigt, weil fast kein Unternehmen in seinen KPIs erfasst, ob Code gut oder schlecht ist; höchstens erfassen sie die Anzahl der Fehler, die Absturzrate, die Leistung und die Stabilität. Das sind Software-Metriken, nicht Codequalität. Der beste Weg, Codequalität zu messen, ist, die Reaktion der Person zu sehen, die deinen Code übernimmt – zu sehen, wie oft sie dich verflucht. Zur Verbesserung der Code-Fähigkeiten kannst du Bücher wie "Code Complete" und "Clean Code" lesen, aber wichtiger ist, exzellenten Open-Source-Code zu lesen.
  • Ein weiterer Punkt ist, sich mit der vorhandenen Codebasis vertraut zu machen und anzustreben, zu wissen, welche Klassen geändert werden müssen und wo neuer Code hinzugefügt werden muss, wann immer eine neue Anforderung hereinkommt. Beim Beheben von Fehlern solltest du denken können und ungefähr wissen, wo der Fehler liegt, welche Klasse oder Methode das Problem verursacht.
  • Machen Sie sich außerdem mit der Geschäftslogik vertraut. Jede Software wird erstellt, um ein Geschäft umzusetzen. Um die Geschäftslogik zu verstehen, verstehen Sie zuerst die Logik des kleinen Moduls, für das Sie verantwortlich sind, und dann die Geschäftslogik der gesamten Software. Dies ist sehr hilfreich für die Bewertung neuer Anforderungen und die Behebung von Bugs, da Sie aus einer ganzheitlichen Perspektive denken werden. Es gibt konkrete Indikatoren, wie das Organisieren von Anforderungsdokumenten, und daraus können Sie verschiedene Testfälle und Szenarien generieren, was Ihnen hilft, die Korrektheit Ihres Codes zu überprüfen.
  • Danach sollten Sie gängige Testumgebungen, Testdaten und Testfälle vorbereiten und sichern. Nach neuen Anforderungen und Bugfixes sollten Sie diese außerdem organisieren und dem Test-Repository für Selbsttests und Regression hinzufügen. Obwohl QA die Softwarequalität sichert, sollte unsere Software zumindest funktionieren und die Anforderungen erfüllen, bevor sie an QA geht. Kurz gesagt, professionelle Programmierer sollten selbst ausreichend testen. Allerdings ist das Testen manchmal nicht so bequem. Zum Beispiel kommt es auf der Client-Seite häufig vor, dass die Backend-Daten nicht bereit sind, sodass Sie Daten mocken müssen; einige Daten treten nur in seltenen Szenarien auf, und Sie müssen sie ebenfalls mocken, um sie zu testen; vor der Freigabe müssen Sie in der Testumgebung mit einem Testserver testen; usw. Das bedeutet: Wenn Sie diese Dinge häufig benötigen – wie Mock-Daten, Proxys usw. –, sollten Sie etwas Aufwand in ihre Organisation und Sicherung investieren und sogar Wege finden – ob durch Schreiben von Code oder die Nutzung von Open-Source-Bibliotheken –, eine bequeme Testumgebung einzurichten. Dies ist sehr hilfreich für die Entwicklung. Vielleicht erinnern Sie sich, dass ein Bug leicht zu beheben, aber schwer zu verifizieren sein kann, wobei Proxys, Mock-Daten, die Simulation spezieller Szenarien, die Anpassung von Netzwerkumgebungen usw. erforderlich sind.
  • Sichern Sie außerdem gängige Umgebungskonfigurationen. Wenn Ihr Code beispielsweise unterschiedliche Anpassungen für verschiedene Szenarien hat, ist es am besten, für jedes Szenario eine Kopie zu erstellen, wobei jede vollständig konfiguriert ist, anstatt verschiedene Branches zu verwenden, auch wenn das ebenfalls möglich ist. Dafür gibt es zwei Gründe:
    Nach ein paar Jahren in der Branche wissen wir genau, dass die Umgebungskonfiguration auch Teil der Entwicklung ist und normalerweise sehr mühsam ist. Sie kann etwas, das wie eine zehnminütige Arbeit aussieht, in zwei Tage Arbeit verwandeln, und es ist möglicherweise immer noch nicht erledigt. Der heutige Code ist sehr komplex, und die Komplexität liegt nicht im Code selbst, sondern in den extrem komplexen Abhängigkeiten. Leute, die oft mit Open-Source-Software herumexperimentieren, sollten wissen, dass eine Bibliothek selbst nicht komplex sein muss, aber um sie zu nutzen, müssen Sie eine ganze Reihe von Abhängigkeiten installieren und konfigurieren. Stellen Sie sich vor, Sie verwenden keinen Paketmanager (wie apt-get, brew, pip, etc.) und versuchen, OpenCV manuell zu installieren oder seinen Quellcode direkt zu kompilieren.
    • Obwohl Code-Branches unterschiedlichen Code unterscheiden können, befinden sich Umgebungsabhängigkeitskonfigurationen oft nicht im Repo. Das bedeutet, dass Sie nach dem Wechseln von Branches immer noch mit der Umgebungskonfiguration und den Abhängigkeiten umgehen müssen.
    • Ein weiterer Grund ist das Problem der Parallelität. Angenommen, Sie entwickeln ein neues Feature auf dem Branch für Version A, und zu diesem Zeitpunkt erfordert Version B (angenommen, A und B sind für verschiedene Kunden und die beiden Branches unterscheiden sich) eine Fehlerbehebung. Was denken Sie, ist es bequemer, Branches zu wechseln oder in einem anderen Verzeichnis zu arbeiten? Ich denke, der Ansatz der physischen Isolierung ist besser.
  • Nachdem Sie alles oben Genannte erreicht haben, bin ich überzeugt, dass die Aufgaben in Ihrem Verantwortungsbereich für Sie kein Problem mehr darstellen werden. An diesem Punkt müssen Sie eingehend studieren und die Dinge verstehen, auf die Sie sich verlassen. Zum Beispiel verwenden Sie Netzwerkbibliotheken wie OkHttp und Retrofit – warum sind sie besser als die nativen? Was sind ihre Hauptprinzipien? Was ist ihre Kapselungsphilosophie? Ähnlich verhält es sich bei Bildladebibliotheken wie UIL und Picasso: Was sind ihre Prinzipien? Die zugrunde liegenden Bibliotheken, auf die sie sich stützen, sind sehr gut gekapselt und einfach zu verwenden. Je mehr solcher Bibliotheken es gibt, wenn Sie nur wissen, wie man sie benutzt, dann sind Sie aufgeschmissen. Denn selbst jemand, der sie noch nie benutzt hat, kann nach ein paar Minuten eines Tutorials herausfinden, wie man sie verwendet. Nur wenn Sie die Implementierungsdetails tiefgehend verstehen und die fortgeschrittene Nutzung erlernen, haben Sie diese hervorragenden Bibliotheken wirklich nicht umsonst benutzt.
  • Darüber hinaus ist Performance-Tuning in jedem Bereich und auf jeder Ebene ein Markenzeichen eines Experten. Performance-Tuning-Arbeiten an einem Projekt werden normalerweise von Experten übernommen. Wenn Sie sich also mit Performance-Tuning beschäftigt und es geübt haben, ist das definitiv ein enormer Schub für Ihre Fähigkeiten und ein großes Plus in Interviews.
  • Sei schließlich engagiert und nimm deine Arbeit ernst. Nimm jede Zeile Code und jeden Bug ernst. Selbst wenn dir dein aktueller Job nicht gefällt, selbst wenn du das Gefühl hast, Zeit und Leben zu verschwenden, und jeden Tag ohne Freude Bugs behebst, musst du ihn trotzdem ernst nehmen und deine Arbeit gut machen. Wie das Sprichwort sagt: „Nimm das Geld und beseitige die Katastrophen für andere.“ Da du ein Gehalt von der Firma bekommst, solltest du deine Arbeit gut machen. Wenn du in Zukunft einen besseren Job bekommst, ist das eine andere Sache, etwas für später. Heute, während du hier bist, musst du tun, was getan werden muss. Wenn du übermäßig ungestüm bist, hohe Ambitionen, aber geringe Fähigkeiten hast und dich immer durchmogelst, glaubst du, dass du einen besseren Job bekommen kannst? Würde der Chef dir wichtigere Aufgaben anvertrauen? Obwohl die Welt ein seltsamer Ort ist und tatsächlich einige Leute höhere Gehälter und bessere Jobs bekommen, nicht wegen ihrer Fähigkeiten, glaube ich, dass es in den meisten Fällen proportional ist. Leute mit besserer Behandlung als du haben berechtigte Gründe. Wenn du das nicht akzeptierst, solltest du noch härter arbeiten. Wenn du in Zukunft einen besseren Job bekommst, beweise anderen: „Ich bin besser als ihr alle!“

Wenn du die wenigen oben vorgeschlagenen Dinge tun und ein wenig durchhalten kannst, wirst du innerhalb von sechs Monaten definitiv eine qualitative Veränderung sehen.


Scheiß auf Karriereplanung und langfristige Pläne.


Karriereplanung ist so eine methodische Angelegenheit, sogar weniger zuverlässig als verdammte Design Patterns. Langfristige Pläne sind sogar noch schädlicher. Pläne, die über ein Jahr oder auch nur sechs Monate hinausgehen, sind Bullshit. Frag mal diese hohen Tiere – nur wenige von ihnen haben verdammt noch mal klare Karrierepläne und langfristige Pläne. Ihre gemeinsamen Merkmale sind: Sie sind gut darin, tief zu graben, können Bücher durchkauen, können Code lesen, haben aktives Denken, klare Logik, und wenn sie Probleme lösen, ist ihr Ansatz eleganter als deiner.


Warum ist das Zeug nutzlos? Weil sich im echten Leben die Dinge sehr schnell ändern. Projekte werden vielleicht nach ein paar Monaten eingestellt. Und bei den Menschen: Zhang San kündigt heute, und Li Si wechselt morgen auf eine andere Stelle. Bevor du fertig bist, ändern sich die Anforderungen, oder diese Aktionskampagne wird abgesagt, weil der Chef das Budget nicht genehmigt ...


Ich gebe ein konkretes Beispiel aus meinem Umfeld: Letztes Jahr kam ein neuer Praktikant ins Team. Er wurde als Android-Client-Entwickler eingestellt. Nach seiner Ankunft wurden ihm in der ersten Woche Android-Aufgaben zugewiesen. In der zweiten Woche kam eine neue große Anforderung auf, für die H5 (Mobile HTML5) benötigt wurde, also musste der Junge H5 machen (er musste JavaScript von Grund auf lernen). Nach etwa drei Monaten änderte sich die Unternehmenspolitik, und sie konnten nicht so viele Praktikanten einsetzen, also musste der Junge zurück zur Schule. Wenn du dieser Junge wärst, könntest du nicht einmal einen einmonatigen Lernplan erfüllen, weil du nicht weißt, was nächste Woche oder sogar morgen passieren wird.


Um eine bessere Umgebung für Wachstum und Lernen zu bekommen, musst du zu einem großen Unternehmen gehen.


Ob man zu einem großen oder einem kleinen Unternehmen gehen sollte, kann als ewiges Thema auf einer Stufe mit der Debatte C vs. C++, der Debatte GNOME vs. KDE und der Debatte Vim vs. Emacs aufgeführt werden. Ich glaube, dass in einer frühen Phase deiner Karriere, etwa direkt nach dem Abschluss oder innerhalb von zwei oder drei Jahren nach dem Abschluss, ein großes Unternehmen zweifellos eine sehr gute Wahl ist. Hier umfasst „großes Unternehmen“ führende inländische Unternehmen wie BAT, NetEase und andere bekannte große inländische Unternehmen sowie große ausländische Unternehmen wie Intel, Microsoft, Facebook, Google und so weiter.


Als Nächstes möchte ich über die Gründe sprechen. Unternehmen stellen uns ein, damit Arbeit erledigt wird, Werte geschaffen werden und das Unternehmen Geld verdient. Sie stellen dich nicht ein, um zu lernen, deinen Horizont zu erweitern, großen Namen näherzukommen oder Probleme zu diskutieren. Ein großes Unternehmen hat, weil es groß ist, eine stabile Einnahmequelle und Rentabilität, deshalb ist sein Tempo regelmäßig und relativ entspannt. Seine Projekte sind entweder ausgereift und stabil oder werden nicht um kurzfristigen Gewinns willen durchgeführt. Deshalb geht es bei der Talententwicklung wohlüberlegt vor. Mit anderen Worten: Es kann tolerieren, dass du lernst oder sogar deine Arbeitsaufgaben etwas langsamer erledigst (ich meine leicht langsamer), weil das Unternehmen auch erwartet, dass du lernst und deine Fähigkeiten und Fertigkeiten verbesserst. Das Unternehmen wird den Raum haben, ein besseres Du aufzunehmen. Offen gesagt: Es gibt genug Raum für dich, dich zu verbessern und aufzusteigen, und es gibt Zeit und Geduld, dich diesen Prozess abschließen zu lassen. Kann ein kleines Unternehmen solchen Raum haben? Kann es zulassen, dass du sagst: „Ich lerne erst einmal ein paar Monate“? Vielleicht ist das Unternehmen ein paar Monate später, wenn du vom Lernen zurückkommst, pleitegegangen.


Darüber hinaus haben große Unternehmen viele Menschen – mehr gute Leute, mehr Experten, aber auch einige schlechte Menschen und nicht wenige Inkompetente. Du kannst mehr Menschen kennenlernen, erfahren, wie ein großes Unternehmen funktioniert, was es so groß werden ließ und wie es weiterläuft, ohne Niedergang. In einem großen Unternehmen kannst du Zeit und Raum haben, um zu lernen, deinen Horizont zu erweitern und dein Netzwerk auszubauen. Das sind Dinge, die ein kleines Unternehmen nicht bieten kann.


Mit einem Wort: Wenn Sie sich in der Phase des schnellen Lernens Ihrer Karriere befinden, ist ein großes Unternehmen die beste Wahl. Wenn Sie das Gefühl haben, genug gelernt zu haben oder an einen neuen Engpass gestoßen zu sein, dann ist ein kleines Unternehmen ein großartiger Ort, um Ihre Fähigkeiten voll einzusetzen. Sie sehen also, Menschen, die aus BAT hervorgehen, ob sie nun ein eigenes Unternehmen gründen oder zu einem Startup stoßen, erzielen sehr gute Ergebnisse. Das ist eine Win-win-Situation. Für uns bietet ein kleines Unternehmen mehr Raum, weniger Leute, aber mehr zu tun, und ist eine große Bühne, auf der Sie Ihre Fähigkeiten zeigen können. Und kleine Unternehmen brauchen genau solche vielseitigen Leute, die die Arbeit von zehn erledigen können, sowohl CTO als auch Code-Affe, sowohl Entwickler als auch Operations.


Kommunikation und Wartbarkeit von Code hängen davon ab, ob der Autor andere berücksichtigt.


Wenn eine Person bereit ist, andere zu berücksichtigen und sich in andere hineinzuversetzen, glaube ich, dass ihre Kommunikationsfähigkeiten nicht schlecht sein werden und die Lesbarkeit des Codes, den sie schreibt, ebenfalls nicht allzu schlecht sein wird. Wenn Sie sich nicht um andere kümmern, nur in Ihrem eigenen Interesse reden und es vergessen, sobald Sie Ihren Teil gesagt haben, dann funktioniert es nicht, egal wie Sie kommunizieren. Wenn Sie nicht berücksichtigen, dass andere Ihren Code warten müssen, und nicht einmal bedenken, dass Sie selbst den Code lesen müssen, den Sie jetzt schreiben (sehen Sie, Sie berücksichtigen nicht einmal sich selbst), dann, wenn solcher Code wartbar ist, dann habe ich umsonst gelebt.


Um äußere Aggression abzuwehren, muss man zuerst das Innere stabilisieren.


Der Ausspruch des Generalissimus ist recht tiefgründig und bedeutungsvoll und hat auch wegweisende Bedeutung. Mein Verständnis dieses Ausspruchs ist, dass man von Einzelpersonen, Teams und Abteilungen bis hin zu Unternehmen und Ländern nicht zwei oder mehr wichtige Dinge gleichzeitig durchführen kann. Erst nachdem man eines abgeschlossen hat, kann man mit anderen weitermachen. Es ist ein wenig schwer zu verstehen; lassen Sie es mich langsam erklären.


Wie das Sprichwort sagt: "Wenn man satt und warm ist, kommen lüsterne Gedanken." Wenn du nicht einmal deine nächste Mahlzeit hast, wie kannst du daran denken, Mädels aufzureißen? Wenn du nicht einmal eine einzige Fähigkeit, eine Programmiersprache oder eine Plattform gründlich gelernt hast, warum denkst du dann über plattformübergreifende Entwicklung oder die Breite der Technologie nach? Das ist alles Bullshit. Wenn du überall Brunnen gräbst, wird keiner tief, und am Ende wirst du in deinem Leben nie Wasser finden. Es ist, als würde man sagen, zehn 10% sind nicht dasselbe wie einmal 100%.


Ein weiteres Beispiel ist das Team – jedes Release wird zum Chaos. Wie kannst du unter diesen Umständen über XP oder technische Innovation sprechen? Mach die Arbeit, dich mit den Technologien vertraut zu machen, die dein Unternehmen tatsächlich braucht, und beherrsche sie gründlich. Mach zuerst deine eigene Arbeit gut und mit Leichtigkeit. Wenn du jedes Release mühelos bewältigen kannst oder sogar wenn die Arbeit von 10 Leuten von 5 erledigt werden kann, dann – und nur dann – ist es an der Zeit, technische Innovation, Unit-Testing, XP, eine technologiegetriebene Kultur oder eine ingenieurzentrierte Kultur anzustreben.


Auf Unternehmensebene, wenn man sich nicht einmal einen stabilen Marktanteil in seinem aktuellen Bereich gesichert hat, kopiert man die großen Strategien anderer: Sie steigen in Finanzen ein, also tust du es auch; sie steigen in Autos ein, also tust du es auch; sie steigen in Film ein, also tust du es auch. Das wird dich früher oder später umbringen. Nehmen wir Herrn Jia (Jia Yueting) heute – von LeEcos TV-, Telefon- und Sportsparten: Welche hat einen stabilen Marktanteil? Welche kann die Verantwortung tragen, die Familie zu ernähren? Doch er spielt lieber Strategiespiele und baut Autos? Das nennt man „No zuo, no die.“ Herr Ma (Jack Ma) ist gut in strategischer Planung, aber er tat es nur, als er in einem Bereich ein Monopol hatte: Als er Taobao startete, geschah das, weil B2B festen Fuß gefasst hatte und die Familie ernähren konnte. Mit anderen Worten, B2B war bereits gut etabliert, hielt den Großteil des Marktanteils und war profitabel, sodass es keine große Sache war, selbst wenn Taobao scheiterte und Geld verlor. Später startete er Alibaba Cloud, und jetzt die Filmsparte, Cainiao, Double H – all diese erfordern kontinuierliche Geldzufuhr. Warum? Weil Taobao und Tmall das gesamte Alibaba tragen können, und selbst wenn alle davon Geld verlieren, kann er sich die Verluste leisten.


Dasselbe gilt auf nationaler Ebene: Wenn die Menschen immer noch nicht genug zu essen oder anzuziehen haben, wie kann man da über geistige Zivilisation oder technologische Innovation sprechen? Zum Beispiel China in den 1970er und 1980er Jahren oder Südostasien vor etwa einem Jahrzehnt (die schwächeren Länder, nicht die Four Tigers), und Umweltschutz – wenn die Menschheit zwischen ihrem eigenen Überleben und Umweltschutz wählen muss, kann sie nur Ersteres wählen. Wenn ein weniger entwickeltes Land also in Richtung eines mäßig entwickelten Landes voranschreitet, kommt die wirtschaftliche Entwicklung immer zuerst. Der menschliche Entwicklungsprozess ist überall gleich: erst verschmutzen, Entwicklung anstreben, dann aufräumen.


An diesem Punkt glaube ich, verstehen Sie, was ich meine.


Wettbewerbsfähigkeit verbessern, um Mehrwert zu schaffen.


Was ist Wettbewerbsfähigkeit? Ich denke, sie bedeutet, die Fähigkeit zu kultivieren, Probleme zu lösen, die sich nicht durch bloßes Googeln lösen lassen. Einfach gesagt, es ist ein Wissenssystem. Ein Problem, das Google lösen kann, ist notwendigerweise ein einzelner Punkt. Ob StackOverflow oder ein Blogbeitrag – sie behandeln immer ein Punktproblem; es kann nicht zu groß sein, denn wie könnte ein einzelner Artikel es sonst klar erklären? Mehrere Punkte, über die Zeit verbunden, bilden ein System. Das entsteht durch wiederholtes Googeln über einen langen Zeitraum sowie durch Nachdenken und Zusammenfassen. Das ist Wettbewerbsfähigkeit. Das ist auch der Wert eines erfahrenen Veteranen.


Viele Leute diskutieren: Sollte man nach 30 weiter Code schreiben? Was macht man nach 40? Es stimmt, dass mit zunehmendem Alter Körper und Energie nachlassen und man nicht mehr wie in der Jugend die ganze Nacht durcharbeiten kann. Daher ist die Lage für Frontline-Mitarbeiter in ihren 30ern ziemlich schwierig. Die ersten Jahre nach dem Abschluss sind eine Phase schnellen Wachstums – solange man bereit ist, fleißig zu lernen, steigen Fähigkeiten und Einkommen linear. Aber für Frontline-Coder kurz vor 30 wird es ziemlich schwierig, bei Fähigkeitsniveau und Einkommen lineare Steigerungen zu erzielen. Familie, Leben und körperlicher Zustand lassen einem weniger Zeit zum Lernen. Zu diesem Zeitpunkt sind die Dinge, die man tun kann, Dinge, die Leute ein oder zwei Jahre nach der Schule auch tun können – und sie haben mehr Energie und bessere Gesundheit. Also wechseln viele entweder ins Management oder ändern komplett die Karriere, und diejenigen, die bleiben, grübeln ständig darüber, wann sie wechseln sollen.


Meiner Ansicht nach ist der wichtigste Grund für diese unangenehme Lage das Versäumnis, weiter zu lernen, und das Versäumnis, genügend Wettbewerbsfähigkeit aufzubauen. Selbst wenn man kein Manager oder Top-Experte wird (im echten Leben ist es unmöglich, dass jeder über 30 Manager oder Meister wird), wenn man weiter lernt und seine Wettbewerbsfähigkeit kontinuierlich verbessert, wird man immer wertvoller – selbst wenn das Unternehmen einem nur die üblichen jährlichen Gehaltserhöhungen gibt.


Was das Gehalt betrifft, sollten wir es auf Basis pro Zeiteinheit berechnen. Angenommen, Ihr Monatsgehalt beträgt 2,150 yuan; dies ergibt sich aus 21.5 × 100. Wenn Sie einen Tag frei nehmen, werden 100 yuan abgezogen. Weiter umgerechnet: 8 × 12.5 = 100, das heißt, Ihr Stundenlohn beträgt 12.5 yuan. Sagen wir, zwei Personen haben beide ein Monatsgehalt von 2,150, aber eine Person hat ein höheres Qualifikationsniveau: Die Arbeit eines Tages wird in 2 Stunden erledigt und die Arbeit eines Monats in einer Woche. Die andere Person muss jeden Tag Überstunden machen, nur um fertig zu werden. Wessen Gehalt ist höher? Natürlich ist dies ein vereinfachtes Szenario; das wirkliche Leben ist komplexer. Obwohl jeder eine Phase schnellen Wachstums hat und Unternehmen auch Phasen schneller Expansion haben, erreicht schließlich alles einen stabilen Zustand. Stabilität bedeutet, an einen Engpass zu stoßen. Nehmen wir die meisten Menschen in großen Unternehmen wie BAT, zum Beispiel Alibaba: Die überwiegende Mehrheit der Menschen bleibt nach Erreichen von P7 stehen. Ohne Manager zu sein, zu P8 befördert zu werden, ist sehr schwierig, und es wird nur noch schwieriger. Also können diese Menschen nur die üblichen jährlichen Gehaltserhöhungen bekommen. Um ihr Einkommensniveau zu erhöhen, können sie nur ihren Wert steigern, indem sie ihre eigene Arbeitseffizienz verbessern.


Manche mögen sagen, das sei nicht realistisch – Arbeit sei nicht unbedingt gleichmäßig verteilt, und Veteranen bekommen möglicherweise mehr Aufgaben zugewiesen. Tatsächlich liegt diese Entscheidung bei Ihnen selbst. Wenn Sie bereits ein Veteran ohne Aussicht auf Beförderung sind, warum sollten Sie dann mehr tun? Dies ist eine Ära, in der der Hintere den Kopf bestimmt – das heißt, eine Ära, in der das Gehalt die Verantwortung bestimmt. Wie viel Mühe Mitarbeiter investieren, hängt davon ab, wie viel sie bezahlt werden. Um es deutlich zu sagen: Sie zahlen das Gehalt eines Berufsanfängers, erwarten aber, dass Sie die Arbeit eines Architekten machen und die Verantwortung eines CTO tragen. Menschen tun das nur in der frühen Karrierephase, wenn sie lernen und schnell wachsen – und sobald sie das Gefühl haben, genug gelernt zu haben, wechseln sie sofort zu einer besseren Position.


Kurz gesagt: Nur wenn du kontinuierlich lernst und zusammenfasst und mehr Wettbewerbsfähigkeit entwickelst, wirst du mit zunehmendem Alter wertvoller.


Wichtige Angelegenheiten müssen nicht unbedingt zuerst erledigt werden.


Wenn mehrere große Aufgaben anstehen – zum Beispiel ein neues Feature, mehrere Bugs in der bereits veröffentlichten Version und ein technischer Vorschlag für die operative Kampagne des nächsten Monats – und alle drei auf dem Tisch liegen, kannst du nur die wichtigste zuerst erledigen. Dabei muss man tatsächlich das Prinzip anwenden, wichtige Dinge zuerst zu tun.


Aber angenommen, es gibt auch noch einige andere kleine Aufgaben zu erledigen: zum Beispiel das Handy-Guthaben aufladen; etwas online kaufen; eine Software aktualisieren. Diese kleinen Aufgaben, die innerhalb von 10 Minuten erledigt werden können, erledigt man besser zuerst. So ist dein Kopf frei und du denkst nicht ständig: „Denk daran, dein Handy-Guthaben aufzuladen.“ Diese kleinen Dinge vergisst man natürlich leicht, deshalb erinnert dich dein Gehirn unterbewusst daran. Das stört das normale Arbeitsdenken und beeinträchtigt die geistige Konzentration, wodurch die Effizienz bei wichtigen Angelegenheiten sinkt. Außerdem kann es beim Befolgen von „wichtige Dinge zuerst“ passieren, dass diese kleinen Aufgaben bis zum Abend nicht erledigt und auf den nächsten Tag verschoben werden.


Das entscheidende Prinzip ist folgendes: Wenn eine kleine Aufgabe innerhalb von 10 Minuten erledigt werden kann, dann erledige sie sofort. Verstehe: Je kürzer deine To-do-Liste, desto besser. Was die Aufgaben betrifft, die einen halben Tag oder einen ganzen Tag dauern, sollten sie natürlich weiterhin nach dem Prinzip „wichtige Dinge zuerst“ behandelt werden.


Schufte nicht in Überstunden an beruflichen Aufgaben; mache stattdessen Überstunden zum Lernen.


Überstunden sind in der Softwarebranche unvermeidlich, besonders in der Internetbranche. Im heutigen Zeitalter des mobilen Internets ist 996 ein häufiges Phänomen. Du magst dich erfüllt fühlen, du magst ein Erfolgsgefühl haben oder du magst müde sein. Aber jeden Tag wie ein Ochse Geschäftsaufgaben in Überstunden zu erledigen, ist zumindest das Verhängnisvollste für die persönliche Weiterentwicklung. Da es nun Jahresende ist, schau zurück und überlege: Was hast du dieses Jahr getan? Wie hast du dich weiterentwickelt? Du wirst feststellen, dass du viele Dinge getan hast, dich aber nur sehr wenig weiterentwickelt hast. Wenn dir etwas unbekannt ist, suchst du online danach, kopierst es, und das war's. Du hast so viel Geschäftsarbeit geleistet – hast du ein Erfolgsgefühl? Das Erfolgsgefühl eines Programmierers kommt eher aus persönlicher Weiterentwicklung, daraus, Dinge tun zu können, die zuvor unmöglich waren, nicht daraus, jeden Tag Ziegelsteine zu schleppen.


Zum Beispiel weißt du, wie man Häuser baut. Aber wenn du das ganze Jahr über Häuser mit ungefähr gleichen Spezifikationen gebaut hast, wie viel Fortschritt hast du gemacht? Wenn dann ein Projekt zum Bau eines schönen Schlosses daherkommt, kannst du es bewältigen? Das Unternehmen bezahlt uns dafür, Wert zu schaffen. Für das Unternehmen sind Häuser der Wert. Solange du mehr Häuser produzieren kannst, bist du das Gehalt wert, das sie dir zahlen. An dem Tag, an dem du alt oder krank wirst und keine Häuser mehr bauen kannst, werden sie sofort eine jüngere, stärkere Person finden, die dich ersetzt. Aber wie du dich selbst zu jemandem weiterentwickelst, der Schlösser baut – das interessiert das Unternehmen überhaupt nicht.


Wenn du also das Gefühl hast, dass du jeden Tag Ziegelsteine schleppst – mehrere Monate oder sogar ein halbes Jahr lang, ohne Fortschritt, ohne neues Wissen zu erwerben und ohne die Probleme, auf die du gestoßen bist, wirklich zu verstehen – dann ist es Zeit, aufzupassen. Verlangsame das Tempo beim Ziegelsteinschleppen. Auch wenn es bedeutet, deine KPI zu opfern, halte inne und lerne, fasse zusammen und denke darüber nach, wie du es besser machen kannst. Zum Beispiel: Kannst du bei repetitiver Arbeit Skripte für Dinge wie Packaging und Releasing einsetzen? Kannst du die Anforderungen, die von Produkt und Operations kommen, vernünftig ablehnen? Kannst du für repetitive operative Kampagnen Konfigurationsvorlagen erstellen und so weiter?


Jeden Tag bei geschäftlichen Aufgaben Überstunden zu machen, führt nicht zu Fortschritt. Um voranzukommen, kannst du nur lernen.


Lerne, klug zu arbeiten.


Was ist die beste Methode, wenn man eine Prüfung ablegt? Nicht blind zu raten, nicht selbst zu lösen, sondern die richtige Antwort abzuschreiben. Was ist der beste Weg, wenn eine Aufgabe zugewiesen wird? Sie nicht selbst zu erledigen – selbst wenn du schon gründlich darin erfahren bist – sondern jemand anderen sie in deinem Namen erledigen zu lassen. Die aufwandsärmste und einfachste Art, Dinge zu erledigen, ist, sie von jemand anderem erledigen zu lassen. Es gibt viele Wege, etwas zu erreichen; wir sollten den Ansatz mit den geringsten Kosten wählen.


Hier geht es nicht darum, alle dazu zu ermutigen, opportunistisch zu sein und deine eigenen Aufgaben anderen aufzudrängen – natürlich ist es auch in Ordnung, wenn du die Fähigkeit hast, Aufgaben abzuwälzen, und die andere Person bereit ist, sie zu übernehmen. Vielmehr geht es darum, klug zu arbeiten und deine Energie nicht für Dinge aufzubrauchen, die eigentlich in die Verantwortung von jemand anderem fallen sollten. Zum Beispiel sind Software-Abhängigkeiten heutzutage recht komplex, und Probleme treten normalerweise an der oberen Ebene zutage. Wenn du entdeckst, dass das Problem durch die darunterliegende Ebene verursacht wird, dann grabe nicht weiter danach (es sei denn, du hast reichlich Zeit zum Lernen und Recherchieren) – lass stattdessen die verantwortliche Person es untersuchen. Die verantwortliche Person kennt sich besser damit aus. Was dich vielleicht einen ganzen Tag kosten würde, herauszufinden, kann sie mit einem Blick lösen.


Darüber hinaus solltest du für lästige manuelle Vorgänge und sich wiederholende Aufgaben Skripte schreiben, um sie zu erledigen. Der größte Vorteil des Computers ist seine Fähigkeit, Aufgaben wiederholt und fehlerfrei zu erledigen. Seine größte Stärke liegt in der Wiederholung – Menschen sind bei Wiederholungen nicht so gut wie Computer und machen Fehler wie Tippfehler. Viele Dinge wie Packaging, Releasing und so weiter lassen sich alle mit Skripten erledigen.


Lerne, die Vorteile des Programmiererdaseins zu nutzen.


Software ist nicht länger dieses geheimnisvolle, schwer zu begreifende Ding aus Universitätslabors. Sie ist in das Leben der Menschen integriert – sogar Senioren, die auf dem Platz tanzen, nutzen Smartphones, WeChat und Taobao. Ich glaube, immer weniger Menschen werden Softwareentwickler bitten, ihre Computer zu reparieren. Das bedeutet, dass wir jeden Tag mit Software zu tun haben und ohne sie nicht leben können. Als Menschen, die wissen, wie man Software schreibt, sollten wir unsere Vorteile gut nutzen. Ich möchte das an einigen Beispielen veranschaulichen:


  • Sei in der Lage, alle Arten von Phishing-SMS und betrügerischen Anrufen/Nachrichten zu erkennen. Wenn ein Programmierer durch Telekommunikationsbetrug hereinfällt, muss man sagen, dass dieser Programmierer ein kompletter Versager ist.
  • Bei verschiedener Software solltest du erkennen können, welche echt ist, welche ein Nachbau ist, welche gefälscht ist, welche einen Virus enthalten könnte und welche einen Trojaner haben könnte. Noch wichtiger: Habe ein Sicherheitsbewusstsein. Das Durchsickern personenbezogener Daten in mobilen Apps und auf Websites ist heutzutage ein sehr ernstes Problem, darum achte besonders auf die Verwaltung von App-Berechtigungen und registriere dich auf so wenigen Websites wie möglich. Achte nicht nur auf deine eigene Informationssicherheit, sondern erinnere auch die Menschen in deiner Umgebung.
  • Ein weiteres Beispiel: Normale Menschen bekommen Informationen, indem sie Websites besuchen und Suchmaschinen benutzen, aber sollten Programmierer (猿媛) nicht Crawler einsetzen?
  • Ein weiteres Beispiel ist das Ergattern roter Umschläge, das Ergattern von Tickets, Flash-Sales (Jagt nicht auf Mondkuchen, haha), das Pushen von Stimmen, das Pushen von Kommentaren und so weiter. Normale Leute verlassen sich auf manuellen Aufwand, manuelle Arbeit und das Posten in ihren Moments. Als Programmierer müssen wir uns definitiv auf Technologie verlassen – ein Skript schreiben, ein Stück Code schreiben, das uns bei diesen Dingen hilft. Das ist auch ein Vorteil, der mit unserem Beruf einhergeht.

Von: Wanderers Sternenhimmel
Autor: alexhilton
Link: http://blog.csdn.net/hitlion2008/article/details/54089376