Welche Spezialgebiete innerhalb der Programmierung würden Sie einem Anfänger empfehlen [geschlossen]

StackOverflow https://stackoverflow.com/questions/17320

  •  08-06-2019
  •  | 
  •  

Frage

Ich studiere Softwareentwicklung und finde, dass Programmieren im Allgemeinen ein zu weit gefasstes Thema ist, als dass man versuchen könnte, alles zu wissen.Um kompetent zu sein, müssen Sie entscheiden, auf welche Bereiche Sie sich beim Lernen und Verstehen konzentrieren möchten.Bestimmte Fähigkeiten ergänzen sich miteinander, etwa datengesteuerte Webentwicklung und SQL-Erfahrung.Allerdings lässt sich die gesamte Win32-API-Erfahrung der Welt möglicherweise nicht direkt auf die Linux-Entwicklung übertragen.Dies bringt mich zu der Überzeugung, dass ich als angehender Programmierer erst dann entscheiden sollte, worauf ich mich spezialisieren möchte, wenn ich ein allgemeines Verständnis der Grundprinzipien der Softwareentwicklung habe.

Das ist eigentlich eine mehrteilige Frage:

  1. Was sind die gemeinsamen Spezialisierungen in der Computerprogrammierung und Softwareentwicklung?
  2. Welche dieser Spezialisierungen sind langfristig wertvoller, sowohl als Grundlage für andere Spezialisierungen als auch als marktfähige Fähigkeiten?
  3. Welche Kompetenzen ergänzen sich?
  4. Gibt es Spezialgebiete, die Sie daran hindern, andere Spezialgebiete zu entwickeln?
War es hilfreich?

Lösung

Ben, fast alle erfahrenen Programmierer sind noch Programmierstudenten.Als Entwickler hört man nie auf, etwas zu lernen.Aber wenn Sie gerade erst am Anfang Ihrer Karriere stehen, sollten Sie sich über die Spezialisierung am wenigsten Sorgen machen.Alle APIs, Frameworks und Fähigkeiten, von denen Sie erwarten, dass sie Ihnen eine langfristige Existenz in diesem Bereich ermöglichen, werden nicht möglich sein.Die Technologie scheint sich stark zu verändern und Sie sollten vielseitig und flexibel genug sein, um alles zu lernen.Das Wissen, das Sie auf einer Plattform/API/einem Framework erwerben, vergeht nicht.Sie können die Fähigkeiten auf die nächstbeste Plattform/API/Framework anwenden.

Davon abgesehen sollten Sie einfach aufhören, sich um die Zukunft zu sorgen, und sich auf das Wesentliche konzentrieren.Datenstrukturen, Algorithmenanalyse und -design, Compilerdesign und Betriebssystemdesign sind das absolute Minimum, das Sie benötigen.Darüber hinaus sollten Sie jederzeit bereit sein, die Bücher auf diesem Gebiet noch einmal zu lesen.Das ist alles, was erforderlich ist.Viel Glück.

Tut mir leid, wenn ich wie ein großer Berater klang.aber das ist es, was ich denke.:-)

Andere Tipps

Ich möchte Ihre Prämisse nicht direkt ablehnen, aber ich denke tatsächlich, dass es eine gute Position in der Programmierung ist, ein Generalist zu sein.Sie werden sicherlich Fachwissen in bestimmten Bereichen entwickeln, aber dies ist wahrscheinlich entweder ein Ergebnis persönlicher Interessen oder einer beruflichen Notwendigkeit.Im Laufe der Zeit ist das, was Sie in der Lage sind, über Sprachen und Problembereiche hinweg zu übertragen, das Herzstück dessen, was einen guten Programmierer ausmacht.

Ich denke, die wichtigere Frage ist:Welche Spezialgebiete interessieren Sie am meisten?

Sobald Sie es wissen, beginnen Sie mit dem Lernen in diesem Bereich!

Ich denke, die größte Fähigkeit von allen wäre es, sich an die Zeit anzupassen, denn wenn Ihr Arbeitgeber dieses Potenzial in Ihnen erkennt, wäre es gut beraten, daran festzuhalten.

Dennoch würde ich Ihnen raten, in die Gegend einzutauchen, die IHNEN gefallen würde. Lernen wird durch Begeisterung vorangetrieben.

Da ich derzeit bei einem Internetprovider arbeite, habe ich Netzwerkkenntnisse als besonders hilfreich empfunden.Aber eines Tages würde ich gerne mit 3D-Grafik spielen (nicht unbedingt Spiele).

Gehen Sie so tief wie möglich in eine Umgebung, Win32, .net, Java, Objective C...was auch immer.

Es ist wichtig, ein tiefes Verständnis dafür aufzubauen, wie X funktioniert ...damit Sie dieselben Konzepte bei Bedarf in andere Sprachen oder Plattformen/Umgebungen übersetzen können.

"Gibt es Spezialisierungsbereiche, die Ihre Fähigkeit behindern, andere Spezialbereiche zu entwickeln?" Irgendwie, aber nichts Dauerhaftes, denke ich.

Da ich selbst relativ grün bin (weniger als 4 Jahre alt), habe ich eine wirklich OOP-Denkweise.Ich bin selten aus .NET herausgesprungen, daher fiel es mir bei einem Job schwer, mit eingebettetem Code in Berührung zu kommen.Da eingebettete Programmierer Angst vor der Objekterstellung und dem Leistungsverlust der Vererbung haben.Ich musste die Umgebung, den ernsthaft geringen Speicherbedarf und die langsamen Taktzeiten, kennenlernen, aus denen sie stammten.Das sind Zeiten zum Wachsen, ich hatte eine bessere Zeit darin, weil ich mein Fachgebiet ziemlich gut verstand.

Ich würde sagen, wenn Sie sich aus Gründen der Marktfähigkeit und des Geldes auf etwas spezialisieren, werden Sie wahrscheinlich schnell ausbrennen.Wenn Sie beginnen, sich zu spezialisieren, wählen Sie etwas aus, das Ihnen Spaß macht.Ich liebe GUI-Programmierung und hasse serverseitiges Zeug, mein Kumpel ist das Gegenteil, aber wir lieben beide unsere Jobs.Wenn er meinen Job machen müsste und ich seinen, würden wir beide vor Langeweile verrückt werden.

Als Student würde ich empfehlen, das Programmieren zu vergessen und sich auf den Softwareprozess selbst zu konzentrieren.Verstehen Sie, wie Sie ein Problem analysieren und die richtigen Fragen stellen.Lernen Sie jedes Designmuster, das Sie können, und zwar tatsächlich Wenden Sie sie alle an ein wirkliches Verständnis und Wertschätzung für objektorientiertes Design zu erlangen;Schreiben Sie Tests und programmieren Sie dann nur so viel, wie nötig ist, damit die Tests bestehen.Ich denke, der beste Weg, wirklich zu lernen, besteht darin, einfach so viel wie möglich zu programmieren – die Sprache und die Domäne sind nicht wichtig, stöbern Sie Quellenschmiede Und Frischfleisch für interessant klingende Projekte und engagieren Sie sich.Wichtig ist das Verständnis der Grundlagen des Software-Engineerings.

Und ja, dazu gehört auch C.Oder Assembler.Dies ist der einfachste Weg, ein gutes Verständnis dafür zu erlangen, wie Ihr Computer funktioniert und was Ihr High-Level-Code tatsächlich tut.

Hören Sie schließlich nie auf zu lernen – Serviceorientierte Architektur, Umkehrung der Kontrolle, domänenspezifische Sprachen und Geschäftsprozessmanagement zeigen enorme Vorteile, daher ist es wichtig, sich ihrer bewusst zu sein – aber wenn Sie mit dem Studium fertig sind und in die Arbeitswelt eintreten, wer Weißt du, was das nächste große Ding sein wird?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top