Mein Weg zu einem "Fulltime" -Entwickler, der als VBA-Analyst mit Excel, Access und dann mit C # angegeben wurde. Ich ging Teilzeit zum College, als ich entdeckte, dass ich eine Leidenschaft für das Kodieren hatte, nicht für Geschäfte.
Ich mache die meisten meiner Codierungen in C #, aber als ASP.NET-Entwickler schreibe ich auch in HTML, JavaScript, SQL usw.. . die üblichen Verdächtigen.
Ich mag es, mich weiter vorwärts zu bewegen, um die Kante zu finden, die mich zum nächsten Level bringt, zum nächsten Job und natürlich mehr Geld. Am wichtigsten möchte ich nur etwas Neues lernen und mich herausfordern.
Ich habe vor kurzem LINQ gelernt, aber ich fragte mich, was ich als nächstes lernen sollte. Etwas im .NET Framework oder eine neue Sprachtechnologie?
Wenn Sie einer der Besten sein wollen, müssen Sie sich spezialisieren. Wenn Sie in vielen Fähigkeiten sehr gut werden, dann werden Sie vielleicht nie wirklich ausgezeichnet in einem werden. Ich weiß, weil ich diesen Weg selbst genommen habe und es schwierig fand, zeitweise Arbeit zu finden. Wer will schließlich jemanden, der zu vielen Sprachen fähig ist, wenn es jemanden gibt, der sich in der spezifischen Sache auszeichnet, die er braucht. Wenn ein Unternehmen in C # entwickelt wird, wer möchte jemanden, der OK bei C # ist, aber auch gut in C, Visual Basic, Perl und Cobol ist, wenn alles was sie wirklich wollen, der bestmögliche C # Entwickler für das Geld ist, das sie sich leisten können. p>
Schließlich werden Sie immer nur für eines, vielleicht zwei Ihrer Fähigkeiten eingesetzt. Es gibt sehr wenige Jobs für Leute, die in 10 oder 15 Fähigkeiten gut sind.
Wenn du auf eine neue Fähigkeit schaust, dann schau dir vielleicht die Jobbörsen an und finde heraus, welche Fähigkeiten besonders benötigt werden, aber sei dir bewusst, dass der Geschmack des Monats dieses Jahres vielleicht nicht einmal im nächsten Jahr auf der Bildfläche ist. Das macht all diese Anstrengungen, um die Fähigkeit nutzlos und verschwendet zu lernen.
Was ich sagen würde ist:
Eine andere Richtung, in die Sie schauen könnten, ist vielleicht nicht für eine bestimmte Entwicklungsfähigkeit, aber suchen Sie nach etwas anderem, vielleicht weichen Fähigkeiten wie Menschenmanagement, besserem Geschäftsverständnis oder sogar etwas wie literarische Fähigkeiten, um Ihre Kommunikationsfähigkeiten zu verbessern. All dies wird dazu beitragen, dass Sie das tun können, was Sie mehr tun wollen, und die Dinge, die Sie nicht wirklich genießen, reduzieren und damit Ihre Arbeit angenehmer machen.
Entschuldigung für das Waffeln hier. Hoffe du bist noch wach:)
Ja, je mehr ich mich mit Software beschäftige, desto mehr sehe ich, dass ich mich weniger auf die Sprache als auf das Design konzentriere.
Ja, es gibt Framework-Bits, die wir brauchen, um unseren Kopf herumzubekommen, aber die meiste Zeit ( am meisten nicht alle) können Sie nach und nach suchen, wenn Sie sie brauchen.
>Aber ein guter Designkopf? Das braucht Jahre der Erfahrung, damit es richtig funktioniert.
Und dafür zahlen die Unternehmen wirklich. "Bau es und sie werden kommen" und all das ...
Wenn Sie immer mehr Erfahrung mit ASP.Net, C # usw. sammeln, ist es immer gut, sich die Konkurrenz anzusehen und zu sehen, ob sie Ideen hervorbringt, wie Sie Dinge besser machen können. Wenn du etwas wie Rails oder Django ansiehst, könnte sich das ändern, wenn du deine Apps entwirfst oder erstellst.
Wenn Sie jetzt mit den von Ihnen verwendeten Sprachen und Technologien vertraut sind, sollten Sie mehr Zeit auf das Design, die Lösungsarchitektur und die Systemintegration verwenden. Das "große Bild", das dich von deinen Zeitgenossen unterscheidet.
Sehen Sie sich einige Bücher von Martin Fowler an, wie "Patterns of Enterprise Application Architecture" oder Eric Evans "Domain-Driven Design".
Vielleicht lernen Sie mehr über Usability (Best Practices, Tests, etc.), wenn Sie dies noch nicht getan haben.
Steve Krugs "Do not Make Me Think" ist ein gutes Buch für den Anfang. Jakob Nielsen hat immer auch interessante Sachen.
Je mehr Sprachen Sie kennen, desto marktfähiger sind Sie. Schauen Sie und sehen Sie, was die populäreren (Markt für, nicht Fan-Basis) Sprachen sind, dann fügen Sie auf einige innovative Technologie, die noch nicht viel Nutzen ist, durch allgemeine Programmierkenntnisse ergänzt.
Mit Ihren Fähigkeiten würde ich empfehlen (soweit Sprachen):
Sprachunabhängige Fähigkeiten:
Hier wären meine Vorschläge:
1) Design Patterns - Diese sind sehr ordentlich und in einigen Situationen sehr nützlich.
2) AJAX - Angenommen, Sie haben noch nicht alles gemacht, ist es aus meiner Sicht ein interessanter Teil der Webentwicklung.
3) Bestimmen Sie, welche Teile der Kette Ihnen am meisten Spaß machen: Front-End-Arbeit (HTML, CSS, Javascript), Middleware (C # für Business-Logikteile) oder Back-End (MS-SQL mit gespeicherten Prozeduren, Indizes, Trigger und all das Zeug). Wenn es alles ist, dann versuche, dort zu bleiben, wo das Team, das die Web-Entwicklung macht, klein ist, sonst wirst du vielleicht aufgefordert, es auszuwählen.
4) Algorithmus Design und Analyse - Kennen Sie verschiedene Sortieralgorithmen? Kennen Sie verschiedene Techniken, um einen Algorithmus zu erstellen, z. gierig, Rekursion, Teile und herrsche, dynamische Programmierung, mit benutzerdefinierten Datentypen wie Heap in Heapsort usw. Das kann neu und cool sein.
5) Bestimmen Sie, ob Sie einen Teil des Entwicklungsprozesses bevorzugen: Analyst, Designer, Programmierer, Tester, Debugger? Alle können unterschiedliche Grade in der Nähe des Codes haben, IMO.
Warum tauscht man nicht Stacks aus und schaut sich den LAMP Stack an?
Oder wie wäre es mit einer funktionalen Sprache wie Haskell?
Oder schreib ein DSL?
Oder eine App für Ihr Telefon?
@ Michael DSL = Domänenspezifische Sprache
Was Sie lernen sollten, hängt davon ab, woran Sie interessiert sind.
Möchten Sie sich selbst herausfordern, während Sie im selben Medium bleiben (web-zentrische Anwendungen)? Ich würde vorschlagen, etwas über Apache und die LAMP-Architektur (Linux, Apache, MySQL, PHP) zu lernen und sich selbst herauszufordern, eine Webanwendung zu erstellen, die man leicht mit ASP .NET erstellen kann.
Möchten Sie etwas völlig anderes lernen? Probieren Sie Prolog oder LISP und sehen, was Sie mit denen tun können.
Vielleicht möchten Sie sich mit Embedded Software beschäftigen? Lerne C, um zu beginnen.
Sie haben eine Vielzahl von Möglichkeiten, Ihre Fähigkeiten zu verbessern, und jeder hat Karrierewege mit ihnen verbunden. (Nun, vielleicht nicht Prolog, aber es macht Spaß!)