Vom Nicht-Programmierer zum „professionellen“ freiberuflichen Programmierer [geschlossen]

8

Ich bin ein 15-jähriger Student, der sein erstes Auto kaufen möchte und dachte, ich könnte etwas mehr Geld verdienen, indem ich Programmieren lerne, da ich gerne die ganze Zeit mit dem Computer herumspiele.

Ich habe viele Beiträge hier gelesen und eine Liste von Büchern erstellt, von denen ich denke, dass sie für mich von Vorteil sind. Ich weiß jedoch nicht, welche Informationen zuerst am wichtigsten sind oder ob ich alles habe, was ich brauche. Folgendes habe ich mir gedacht:

1: Lernen Sie eine Programmiersprache gründlich. Ich bin mit dem Schritt-für-Schritt-Buch ungefähr zur Hälfte fertig. 2. Erfahren Sie mehr über objektorientiertes Design und Entwurfsmuster. 3. Erfahren Sie mehr über Softwaretests. 4. Üben Sie diese Fähigkeiten auf Websites wie Projecteuler, Topcoder und versuchen Sie es einfach Projekte auf freiberuflichen Websites wie Rent-a-Coder.

Gibt es noch etwas, von dem du denkst, dass ich es brauche oder untersuchen sollte?

Vielen Dank.

Microsoft Visual C # 2010 Schritt für Schritt

Professional C # 4.0 und .NET 4 (Wrox Programmer zu Programmer)

C # in der Tiefe

CLR über C #

Anwenden von UML UND Mustern

Head First Objektorientierte Analyse und Design

Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software

Testgetriebene Entwicklung: Mit gutem Beispiel

Wachsende objektorientierte Software, die von Tests geleitet wird

user13822
quelle
6
Ich denke, Sie werden schneller Geld verdienen, wenn Sie einen Sommerjob bekommen, der das Gras schneidet (wenn Sie Geld wollen). Das Erlernen des Programmierens wird etwas länger dauern, bis es gut genug ist, um echtes Geld damit zu verdienen (auch wenn Sie einen Programmierer mieten (erfahrene Entwickler aus Indien / China / der Ukraine werden Sie unterbieten)).
Martin York
7
Weiter so. Sie werden Ihr Auto in ungefähr 5 Jahren haben.
ChaosPandion
1
Schöne Buchliste. Abgesehen von der Theorie braucht man jedoch Übung, ähnlich wie man beim Lesen von Büchern keinen schwarzen Gürtel im Karate bekommen kann. Kaufen Sie sich Zeit zum Üben, siehe die Antwort von GrandmasterB.
Joppe
1
@Rig FYI - Benutzer mit weniger als 10 Wiederholungen (dies wurde erstellt, als das OP 1 Wiederholung hatte) sind auf 2 Links in einem Beitrag beschränkt . Das hxxp sollte diese Einschränkung umgehen.
@ MichaelT Danke, dass du darauf hingewiesen hast. Ich hatte keine Ahnung.
Rig

Antworten:

19

Dein erster Schritt = Lerne dein Handwerk

Erfahrung ist wichtiger als das Lernen von Büchern:

Wählen Sie ein Projekt aus und finden Sie heraus, wie Sie Ihre Ziele erreichen können.

Dies führt Sie zweifellos zum Buchlernen usw., ermöglicht es Ihnen jedoch, Ihren eigenen Fortschritt zu messen und zu entscheiden, was und wann Sie lesen möchten. Ein paar Hinweise:

  • Beginnen Sie mit etwas Kleinem.
  • Nimm die Dinge einzeln.
  • Mach die Dinge so gut du kannst.
  • Fügen Sie Ihrem Code keine Dinge hinzu, bis Sie sie benötigen.
  • Fügen Sie niemals Code hinzu, den Sie nicht verstehen.
  • Wiederholen Sie denselben Code in Ihrem Projekt nicht zweimal.
  • Stellen Sie sich immer vor, dass morgen jemand anderes an Ihrem Code arbeitet - versuchen Sie, es dieser Person so klar wie möglich zu machen.

Wie für Ihre Auswahl an Büchern:

Wenn Sie die C # -Route erhalten möchten, ist Ihre Buchliste hervorragend. Wenn Sie so viel kennenlernen, sind Sie Gold wert! Ich bin seit den Anfängen von .Net ein (ziemlich gut bezahlter) .Net-Programmierer, habe aber immer noch nicht das fortgeschrittenste dieser Bücher gelesen (aber sie stehen auf meiner Leseliste). Die Lehre, die ich daraus ziehen kann, ist, dass das fortgeschrittene Zeug seinen Platz hat, aber die Beherrschung der Grundlagen kann Ihnen immer noch eine großartige Karriere ermöglichen. Sorgen Sie sich also nicht zu sehr um die fortgeschrittenen Bücher, bis Sie sie tatsächlich brauchen. Es gibt ein Buch, das ich Ihrer Liste hinzufügen würde - noch vor den fortgeschrittenen C # -Büchern: Code Complete 2. Es ist wahrscheinlich das am meisten empfohlene Buch auf dieser Site. Zu Recht, IMO.

Ihr nächster Schritt = Vertrauen aufbauen

Sie haben erwähnt, ein wenig Geld zu verdienen. Um das Offensichtliche zu sagen: Um Geld mit der Entwicklung von Software zu verdienen, müssen Sie jemanden finden, der bereit ist, Sie zu bezahlen. Leider ist es für Sie eine Herausforderung, jemanden zu finden.

Warum?

  1. Wegen deines Alters .

Ich kann mich irren, da es (natürlich) ziemlich unvernünftig ist. Die traurige Realität ist jedoch, dass die Menschen Vorurteile über das Alter haben. Nach meiner Erfahrung werden viele potenzielle Arbeitgeber Sie wahrscheinlich abweisen, weil sie junge Menschen für unzuverlässig halten und nicht in der Lage sind, ihre Versprechen zu erfüllen. Was dies besonders unfair macht, ist, dass Sie nichts gegen Ihr Alter tun können, außer zu warten.

Es gibt jedoch Dinge, die Sie tun können, um die Wahrscheinlichkeit zu erhöhen, trotz Ihres Alters eine Anstellung als Entwickler zu finden :

a) Bleib dran. Wenn Sie nicht nach Kunden suchen, weil Sie nicht erwarten, dass sie Sie abweisen, werden Sie nie diejenigen finden, die über Ihr Alter hinausschauen und Ihre Qualitäten als Entwickler sehen. Mit anderen Worten, lassen Sie nicht zu, dass die Vorurteile anderer Menschen über das Alter zu Ihren Vorurteilen gegenüber anderen Menschen werden.

b) Holen Sie sich einen Anwalt - jemanden, der für Ihre Fähigkeiten bürgt und der in den Augen der Aussichten, die Sie in sich haben, mehr Glaubwürdigkeit besitzt. Vielleicht haben Sie einen älteren Freund oder Verwandten, der sich für Sie aussprechen kann? Natürlich brauchen Sie jemanden, der für Ihre persönlichen Qualitäten bürgt. Stellen Sie also sicher, dass Sie technisch auf dem neuesten Stand sind.

  1. Weil Sie keine Branchenerfahrung haben .

Trotz der Tatsache, dass Sie offensichtlich Talent, Wissen und Begeisterung haben, haben Sie keine 5 Jahre Erfahrung im Job. Dies ist ein Problem, mit dem jeder konfrontiert ist, der neu in einem Beruf ist, unabhängig von seinem Alter. Oft wollen die Leute nicht die Mühe machen, Leute zu beschäftigen, die noch keine nachgewiesene Erfolgsbilanz bei der Arbeit haben.

Glücklicherweise können Sie viel dagegen tun:

a) Erkennen Sie an, dass dies ein vernünftiges Anliegen ist

Es ist für jemanden schwierig, die Bezahlung einer Dienstleistung zu rechtfertigen, wenn er keine Beweise dafür hat, dass er das bekommt, wofür er bezahlt.

Wenn Sie mit potenziellen Kunden sprechen, seien Sie ehrlich über Ihre mangelnde Erfahrung, aber zeigen Sie, warum dies kein Problem darstellt. Wenn Sie die Initiative darin zeigen, können Sie ihre Einwände untergraben, bevor sie sie richtig durchdacht haben. Dies hat nicht den Vorteil, zu manipulieren, sondern zu zeigen, dass Sie die geschäftlichen Anforderungen verstehen.

b) Bauen Sie einen guten Ruf auf

Führen Sie kleine, überschaubare Arbeitspakete gegen eine Gebühr aus, die so gering ist, dass Sie das Risiko für den Kunden aus der Transaktion ziehen. Oft bedeutet dies, dass Sie Ihre erste Arbeit kostenlos erledigen. Wählen Sie diese Kunden sorgfältig aus - Sie müssen etwas tun, das Sie zufrieden stellt für jemanden, der Ihr Lob singt, wenn Sie liefern. Mir wurde gesagt, dass viele Entwickler Wohltätigkeitsarbeit leisten, um sich selbst zu starten, aber Familie und Freunde der Familie können Ihnen möglicherweise auch etwas anbieten.

c) Erfahrung aufbauen

Um Erfahrung zu demonstrieren, braucht man ... Erfahrung. Wenn Sie niemanden finden, für den Sie arbeiten können, arbeiten Sie für sich. Starten Sie ein Hobbyprojekt. Wählen Sie etwas aus, das die Leute nützlich finden und möglicherweise (rechtzeitig) bereit sind, dafür zu bezahlen. Arbeiten Sie jedoch nicht für das Geld daran, sondern für die Erfahrung. Betrachten Sie dies als eine langfristige Investition - Sie können auf lange Sicht eine Amortisation erwarten, nicht unbedingt kurzfristig.

d) Entwickeln Sie Ihre nichttechnischen Fähigkeiten

Machen Sie sich keine Sorgen, wenn die kostenpflichtige Programmierung im Moment nicht funktioniert. Arbeitgeber zahlen nicht nur für Fähigkeiten in einem bestimmten Bereich, sondern für ein Gesamtpaket.

Nichttechnische Fähigkeiten sind in der IT-Branche ebenso wichtig wie technische Fähigkeiten: Arbeitgeber suchen nach Professionalität und Programmierfähigkeit. Diese beruflichen Qualitäten können Fähigkeiten, finanzielle Erfahrung, Geschäftskenntnisse und persönliche Qualitäten wie Ehrlichkeit, Zuverlässigkeit usw. umfassen.

All dies kann unabhängig von Ihren technischen Fähigkeiten entwickelt werden. Wenn Sie beispielsweise das Geld benötigen, können Sie einen Job ohne Programmierung annehmen. Alternativ können Sie sich einer Community-Gruppe, einer Wohltätigkeitsorganisation oder einem Hafen anschließen oder was auch immer, wo Sie auf Ihren nicht-technischen Fähigkeiten aufbauen können. Letztendlich können diese Aktivitäten dazu führen, dass Sie Ihren ersten richtigen Programmiervertrag abschließen, wenn nicht direkt (Sie wissen nie, welche Kontakte Sie knüpfen), dann indirekt, weil Sie runder sind und mehr zu bieten haben als andere Menschen.

Kramii
quelle
Vielen Dank für Ihren aufschlussreichen Rat. Sehr geschätzt.
user13822
+1, das sind diese Antworten, die mich dazu bringen, diese Seite zu lieben. Klar, auf den Punkt und nützlich.
Warum sollte ein Kunde sein Alter kennen? Mir sind keine freiberuflichen Websites bekannt, die das Alter eines Anbieters angeben. Ich bin am anderen Ende der Skala - ich bin 66 Jahre alt und die einzigen Kunden, die mein Alter kennen, sind diejenigen, die ich persönlich getroffen habe. Trotzdem wird sein Lebenslauf aufgrund seiner mangelnden Erfahrung fehlen.
Tcrosley
8

Sie sollten sich jetzt besser auf die „weicheren“ Bereiche der Entwicklung konzentrieren - zum Beispiel das Einrichten von Websites und das Erlernen der Installation und Konfiguration von Content-Management-Systemen und anderen Open-Source-Anwendungen.

Ich sehe nicht, dass ein 15-Jähriger wirklich freiberuflich als Programmierer arbeiten kann - es sei denn, er ist wirklich außergewöhnlich im Programmieren. Ich denke, es ist wahrscheinlicher, dass Sie kleinere Verträge für die Einrichtung von Websites für lokale Unternehmen abschließen und von dort aus zu größeren Projekten übergehen.

GroßmeisterB
quelle
2
Tun Sie dies - und lernen Sie in der Zwischenzeit weiter komplexere Dinge. Hast du ein paar Freunde mit einer Band und noch eine statische Website? Implementieren Sie ein CMS für ihre Site. Sie sammeln echte Produktionserfahrung und einige Beweise für Ihre Fähigkeit für potenzielle Kunden.
Cbrandolino
Und ohne jemanden, der Verträge für sie unterzeichnet, wie in den meisten Ländern, kann ein 15-Jähriger keinen verbindlichen Vertrag abschließen.
Rig
4

Ich finde es großartig, was du vorhast. So etwas sollte gefördert werden! Da Sie jedoch nur den Sommer haben, um an bezahlten Projekten zu arbeiten, möchten Sie möglicherweise einen schnelleren Technologie-Stack als C # und .NET verwenden. Es gibt viele kurze Verträge für Dinge wie PHP-Apps, RoR-Apps, iOS- und Android-Entwicklung, CMS-Anpassungen usw. Diese Arten von Rollen sind auch weniger anfällig für Ihr Alter (eine traurige, aber wahre Tatsache, die Sie ausführen werden) über).

Viel Glück und nicht aufgeben - Programmieren ist eines der kreativsten, lustigsten und lohnendsten Dinge, die Sie tun können.

Martijn Verburg
quelle
Vielen Dank für Ihre Ermutigung sowie andere Bereiche, die für mich von Vorteil sein können, um in zu beginnen.
user13822
3

Meine Empfehlung wäre, was ich persönlich getan habe. Gehen Sie zur Arbeit zu MacDonald oder zu etwas anderem, um etwas Geld zu verdienen. Erwarten Sie keine Einnahmen aus der IT, bevor Sie an einer Universität studiert haben.

Ich möchte Sie nicht enttäuschen, aber ich denke, dass Sie in den nächsten Jahren hauptsächlich Verbraucher und kein Technologieanbieter sein werden. Das bedeutet, dass Sie mehr Geld für IT ausgeben, als Sie erwarten könnten :-)

UML_GURU
quelle
Vor dem Abschluss stehen Universitätsstudenten viele freie Stellen zur Verfügung.
Norman Ramsey
Vielleicht kein Abschluss, aber bis du 18 bist, wird es für niemanden schwierig sein, mit dir Geschäfte zu machen. Ein Erwachsener zu sein und Verträge unterschreiben zu können, ist ein wichtiger Teil der Geschäftstätigkeit.
Sean McSomething
3

Ich empfehle Ihnen, einige Sommerjobs anzunehmen, anstatt zu versuchen, durch Programmieren Geld zu verdienen. Es dauert ziemlich viel Zeit und Mühe, bis Sie (im Durchschnitt) so kompetent sind, dass die Leute Sie dafür bezahlen würden, Software für sie zu schreiben. Programmieren kann man im Sommer nicht lernen. Wenn Sie dies nicht langfristig planen, wird die Softwareentwicklung meiner Meinung nach nicht den gewünschten Return on Investment (in Bezug auf Zeit und Aufwand) bringen.

Abgesehen davon, wenn Sie wirklich programmieren möchten, schlage ich einen etwas einfacheren Weg vor als C # und .Net - das Einrichten von Websites (für niemanden eine Beleidigung). Beginnen Sie zuerst mit statischen Sites und lernen Sie dann, eine vollständige CMS-gesteuerte Site einzurichten. Wenn Sie diesen Weg beschreiten, empfehle ich Ihnen, sich mit den Grundlagen des Webdesigns und des Designs im Allgemeinen vertraut zu machen (nicht erforderlich, aber es hilft wirklich, insbesondere wenn Ihr Kunde maßgeschneiderte Websites anstelle von vorgefertigten Themen wünscht).

Viel Glück für Ihr Auto und ich hoffe, dass Sie mehr Spaß am Programmieren haben, anstatt es nur als Einnahmequelle zu sehen. :) :)

jon2512chua
quelle
1

Ich habe es immer für notwendig gehalten, ein Problem zu lösen oder ein Spiel, das ich schreiben möchte. Auf diese Weise suchen Sie immer nach Wegen, um dieses Problem zu lösen, und das führt Sie dazu, Bücher zu lesen und online zu suchen. Ich habe nie in der Lage gewesen , ein Buch zu lesen und dann wissen , ein Thema.

Sobald Sie sich für ein zu lösendes Problem entschieden haben, wird Ihre Auswahl an Büchern möglicherweise offensichtlicher.

paul
quelle
0

Ich würde vorschlagen, einige Asp.Net-Bücher, Webforms oder MVC hinzuzufügen. Bei Mots für freiberufliche Jobs geht es um Webentwicklung. Auch Asp.Net ist in diesem Bereich nicht sehr beliebt.

Vielleicht sind Ruby / Rails oder Python / Django besser für Freiberufler geeignet. Auch PHP hat einen großen Anteil an freiberuflichen Jobs.

Sie können alle freiberuflichen Websites überprüfen und die meistgesuchten Technologien analysieren.

Alexey Anufriyev
quelle