Was ist der beste Ort für einen Highschool-Programmierer, um seine Arbeit wahrzunehmen? [geschlossen]


52

Ich bin ein 16-jähriger Gymnasiast mit einer Leidenschaft für Computerprogrammierung. Ich bin in der 11. Klasse und lerne es seit ungefähr 8 Monaten im Rahmen des Lehrplans. Ich bin über das hinausgegangen, was in der Schule gelehrt wird, und habe ein paar (einigermaßen gute) Bewerbungen gemacht. Die Sprache, in der ich programmiere, ist C ++ auf der Windows-Plattform. Irgendwann möchte ich CS an einem guten College studieren und dann als Programmierer arbeiten.

Die spezifischen Fragen, die ich habe, sind:

  • Was ist ein guter Ort für mich, um meine Arbeit wahrzunehmen?
  • Gibt es Zeitschriften oder Veröffentlichungen speziell für junge Programmierer?
  • Wenn nicht Veröffentlichungen, gibt es dann gute Blogs, oder ist es einfach besser, eigene zu gründen?
  • Gibt es noch etwas, das mir helfen würde, als Programmierer aufzufallen?

Ich habe versucht, so objektiv wie möglich zu sein.

Wenn das alles so wäre: Wie kann man als junger Programmierer am besten wahrgenommen werden?

Edit: Ich möchte nicht direkt nach der High School eingestellt werden. Das Ziel ist nicht, die Community als professioneller Programmierer zu beeindrucken. Dies ist in der Absicht für College-Bewerbungen gedacht, bei denen Ihre Bewerbung verbessert wird, wenn Ihre Arbeit von anderen Personen gesehen und kritisiert wird. Ich versuche nicht, Geld mit dem zu verdienen, was ich (bisher) geschrieben habe.


12
Was lässt dich denken, dass andere auf ein 16 Jahre altes Greenhorn aufmerksam werden wollen?
Doc Brown

27
Stack Overflow ist ein großartiger Ort! Geben Sie einige gute und hilfreiche Antworten (und stellen Sie einige gute und hilfreiche Fragen!), Und weisen Sie Ihre potenziellen Arbeitgeber auf Ihr Profil hin.
Cody Grey

24
@viraj Ich begrüße Ihre Begeisterung und die guten Antworten hier. Mein Vorschlag an Sie ist jedoch, es nicht Ihr frühes Leben verschlingen zu lassen. Nehmen Sie andere Hobbys und Interessen auf, knüpfen Sie Kontakte und haben Sie Spaß. Sie können nur einmal in Ihrem Leben ein Kind sein, in dem Sie Dinge vermasseln und unbeschadet zurückspringen können. Sobald Sie erwachsen sind und eine Karriere haben, werden Sie diese wahrscheinlich für den Rest Ihres Lebens haben . Das ist eine ziemlich ernsthafte Verpflichtung, die man in einem solchen Alter eingehen muss. Sie möchten nicht wie so viele Menschen werden, die in jungen Jahren von ihren Karrieren besessen waren und später ihr Leben hassten und eine schreckliche Midlife-Crisis hatten.
maple_shaft

4
@FrustratedWithFormsDesigner Wenn Sie in eine Top-Schule ohne Top-Geld einsteigen möchten, ist es schwieriger
einzusteigen

10
@maple_shaft Ihr Argument ist gut, aber wenn er wirklich leidenschaftlich programmiert, möchten Sie ihn nicht davon abbringen - stellen Sie sich vor, Sie würden dem jungen Bill Gates / Mark Zuckerberg sagen, dass Sie nicht zu viel von Ihrer Jugend für das Programmieren ausgeben habe den Rest deines Lebens ". Der Rat sollte sich auf Ihre Interessen und Leidenschaften konzentrieren, nicht auf Ihre Karriere .
Kirk Broadhurst

Antworten:


61

Ich möchte Sie warnen und einige Vorschläge machen.

Warnungen:

  • Überschätzen Sie Ihr Wissen nicht: Im Moment können Sie davon ausgehen, dass Sie genug wissen, um eine einfache Bewerbung zu schreiben und mehr als das, was im Unterricht tatsächlich gelehrt wird. Aber das macht Sie nicht zu einem "professionellen Programmierer". es kann Sie höchstens zu einem "Freiberufler" machen.

  • Unterschätzen Sie nicht den Wert dessen, was in der Schule gelehrt wird. Auch wenn Ihnen etwas offensichtlich erscheint, studieren Sie es auch: Sie werden "neue Aspekte" sehen (das werde ich später noch klarer machen), wenn Sie fortfahren.

Vorschläge:

  • Professionelle Anwendungen haben einen typischen Lebenszyklus von 3-5 Jahren und erfordern Tausende (bis zu Millionen) Arbeitsstunden. Sie können nicht von einem Entwickler allein bereitgestellt werden. Professionelle Programmierer müssen mit anderen zusammenarbeiten. Es geht nicht nur um gute Kenntnisse von Werkzeugen (wie Sprachen, IDEs usw.), sondern auch um Techniken, Methoden und Redewendungen.

  • Während Werkzeuge durch formale Beispiele und Übungen vermittelt werden können, können Techniken und Redewendungen nur "beschrieben" werden. Um sie zu "lernen", muss man sie erleben und mit anderen teilen. Sie werden ständig erfunden und verbessert.

  • Unternehmen, die in der Schule anstellen, überprüfen Ihr Verständnis für Werkzeuge und Ihre Fähigkeiten im Umgang mit Grundtechniken. Am wichtigsten ist jedoch, dass Sie Ihre Fähigkeit testen, schnell neue Dinge zu lernen und die Arbeit nach Bedarf "festzuhalten".

  • Wenn sie für erfahrene Leute einstellen, schauen sie sich an, wie viele Dinge sie getan haben und welche Erfahrungen sie mit diesen Dingen gemacht haben.

Moral:

  • Wenn Sie mehr "evaluiert" werden möchten, lernen Sie, mit anderen zu arbeiten, indem Sie an den Problemen anderer (wie bei Stackoverflow ) oder offenen Projekten (wie bei SourceForge ) teilnehmen.

  • Seien Sie auch nicht zu schnell, um Geld zu verlangen. Teilen Sie Ihre "Code-Produktion" in "etwas zum Teilen" und "etwas zum Verkaufen" auf. Was Sie teilen können, kann von anderen genutzt werden, kann aber auch die Teilnahme anderer zur Erweiterung des ursprünglichen Projekts anregen. Was Sie verkaufen können, ist das, was Ihre App im Vergleich zu anderen ähnlichen Projekten "einzigartig" macht und sie zu einem echten kommerziellen Produkt werden lässt.
    Zu teilen Code mit anderen, können Sie auf Seite verweisen Codeproject oder Source . Ihre Bewertung gibt auch eine Vorstellung davon, wie interessant das, was Sie getan haben, für andere Personen war.


30
+1 für die Erwähnung, dass Sie Ihr Wissen überschätzt haben. Als ich in der High School war, schrieb ich ein paar coole Sachen und dachte, ich wäre ein anständiger Programmierer. Dann habe ich angefangen aufs College zu gehen und gemerkt, dass ich nicht mal annähernd beruflich bin.
Mike L.

1
+1 obwohl OTOH, ich kenne Leute (nicht persönlich), die Dinge in der High School geschrieben haben, die ich immer noch nicht herausfinden kann
BlueRaja - Danny Pflughoeft

+1, Als ich zum ersten Mal zur Universität ging, dachte ich, es sei mehr, eine Zertifizierung meiner bereits erworbenen Fähigkeiten zu erhalten. Während ich in einigen Bereichen anderen Studenten weit voraus war, war ich immer noch nicht annähernd auf professionellem Niveau.
user606723

4
+1 für das Überschätzen Ihres Wissens. Ich kann Ihnen nicht sagen, wie viele Lebensläufe ich pro Woche bekomme, die angeben, dass sie bei jeder aufgeführten Fähigkeit "Experte" sind. Wenn du das tust, zeigst du nur deine Naivität.
Jesse Bunch

6
Lustige Sache, ich kenne ein paar Leute, die professionell Code mit einem 3-5-jährigen Abschluss in Informatik schreiben und die sich nicht aus einer Pappschachtel heraus programmieren konnten oft meilenweit vor vielen Menschen, die beruflich arbeiten.
Max

35

Haben Sie darüber nachgedacht, Open Source-Projekte für die von Ihnen geschriebenen Anwendungen zu erstellen und online zu hosten? SourceForge.net oder GitHub.com sind gute Open-Source-Projekt-Hosts. Auf diese Weise erhalten Sie einen besseren Überblick über Ihre Anwendungen.


11
Das Feedback auf diesen Websites ist möglicherweise direkt, brutal oder Ihre Projekte werden ignoriert. Das Wichtigste ist, das Feedback für das zu nehmen, was es ist, und Verbesserungen vorzunehmen. Stellen Sie sicher, dass Sie sich die Community als etwas vorstellen, das Ihnen helfen kann und es wird.
Jefflunt

26

Lassen Sie uns zunächst klarstellen: Die meisten der 16 YO-Programmierer werden die Community nicht wirklich beeindrucken.

Dafür gibt es meiner Meinung nach einen Grund. Ein guter Programmierer zu sein, setzt nicht nur Programmierkenntnisse voraus. Wie Sie hoffentlich in Ihrem CS-Hauptfach sehen, ist das Programmieren nur eine Teilmenge der Informatik, und die meisten Preisträger (zumindest die akademischen Preise) werden dies getan haben, weil sie etwas Neues bewiesen (zum Beispiel ein neues Theorem) oder entdeckt haben eine neue Art, eine Aufgabe zu lösen (Entwurfsmuster). Dazu müssen Sie (mindestens):

  • Wenn Sie einen guten Hintergrund in Mathematik haben, müssen Sie die Algorithmen verstehen und daher die verschiedenen Datenstrukturen beherrschen.
  • Verstehen Sie, dass ein guter Programmierer zuerst die Paradigmen (objektorientiert, funktional, ...) versteht, bevor er sich für eine "konkrete" Sprache interessiert.
  • Verstehen Sie, dass eine gute Programmierung häufig auch für die Codemodellierung erforderlich ist, und lernen Sie die vorhandenen Entwurfsmuster kennen.

Wenn Sie das Gefühl haben, das alles bereits gemeistert zu haben, werden Sie die Community wahrscheinlich beeindrucken.

Sie können immer versuchen, einen Beitrag zu einem Open-Source-Projekt zu leisten, aber Sie werden auch überrascht sein, wie viel Sie aufholen müssen, bevor Sie tatsächlich einen Beitrag leisten können.

Schauen Sie sich abschließend bei StackOverflow um und sehen Sie, wie viel Sie dort in Ihrer Lieblingssprache beantworten können ... Sie werden einen guten Vertreter Ihres Niveaus haben.


2
+1: Es gibt keinen Ersatz für Erfahrung. Wenn ich anheuere, möchte ich normalerweise sehen, dass jemand viele Fehlversuche hinter sich hat.
JohnFx

3
+1: So viele Programmierer, mit denen ich zusammenarbeite, scheinen zu glauben, dass ihnen Mathematik nicht wichtig ist. Und dann werden sie sich im selben Atemzug umdrehen und über die Effizienz des Algorithmus streiten.
Kojiro

+1: Mathematik ist eines der grundlegendsten Elemente in der Informatik. Informatik als Fach könnte ohne Mathematik nicht existieren. Man könnte nicht eine Gruppe von Bytes zu einer anderen Gruppe von Bytes ohne Mathematik. Außerdem wird es schwierig sein, dies in diesem Feld zu tun, wenn Sie nicht verstehen, wie ein Computer funktioniert, wenn Sie nicht verstehen, wie zwei Byte-Register zusammenaddiert werden (es ist kein einfacher Vorgang), werden Sie den Computer nie verstehen Wissenschaft. Das Programmieren selbst erfordert Fähigkeiten zum Lösen von Problemen, das Erlernen einer Programmiersprache und das Unterstreichen des Frameworks ist der einfache Teil in der Informatik.
Ramhound

1
Das Schwierigste daran, ein Fachmann auf dem Gebiet der Informatik zu sein, besteht darin, den besten Weg zu finden, um ein Problem zu lösen. Das Erlernen einer neuen Programmiersprache ist der einfache Teil. Zu lernen, wie man die Stärken ausnutzt und die Schwachstellen in einer bestimmten Sprache vermeidet, ist sehr viel schwieriger, wenn man in der Lage ist, "Code-Affen" von "Profis" zu trennen.
Ramhound

13

Versuchen Sie, einen wirklich guten Ruf bei Stack Overflow zu erlangen. Fast das gleiche Thema wurde hier diskutiert:

Wird ein hohes Ansehen in Stack Overflow dazu beitragen, einen guten Job zu bekommen?


5
Darüber hinaus macht es großen Spaß, gute Reps auf SO zu bekommen, und Sie lernen auf dem Weg zum Lesen, Posten und Beantworten von Fragen viel.
Paul Hiemstra

1
Meiner Meinung nach bedeutet hohes Ansehen bei SO, dass ich viel Zeit auf der Website verbringe, um Tonnen grundlegender Fragen zu beantworten, auf die sich jeder Programmierer beziehen kann. Ich würde nicht viel darüber nachdenken. (Hinweis: Sie können immer noch ein Experte sein UND haben ein hohes Ansehen auf SO)
Siamii

8

Ein paar Dinge, die Sie vielleicht ausprobieren möchten:

  • Schreiben Sie Software, die echte Probleme löst, im Idealfall Probleme, die vorher nicht (oder zumindest nicht zufriedenstellend) gelöst wurden. Wenn niemand Ihre Software trotz Ihrer besten Werbemaßnahmen nutzt, ist die Wahrscheinlichkeit groß, dass er sie nicht so dringend benötigt.
  • Kündigen Sie Ihre Arbeit in relevanten Mailinglisten, IRC-Kanälen und Internetforen an. Wenn Ihr Programm eine Bibliothek in großem Umfang nutzt, sollten Sie in Erwägung ziehen, Beiträge in der Bibliothek zu veröffentlichen. Wenn es andere vorhandene Softwareteile ergänzt, teilen Sie dies ihren Communities mit.
  • Wenn es sich um ein ernst zu nehmendes Projekt handelt, richten Sie eine spezielle Website dafür ein. Die Website sollte eine Funktionsübersicht, Links zu Downloads und Dokumentation sowie (falls zutreffend) einige Screenshots enthalten. Stellen Sie sicher, dass es sich um eine ordnungsgemäße Website handelt und nicht um eine von Geocities geprägte Abscheulichkeit. Sie möchten ernst genommen werden. Durch das Hinzufügen eines News-Abschnitts, eines Wikis und / oder eines Bug-Trackers erhält der potenzielle Benutzer einen Hinweis darauf, wie aktiv das Projekt ist, was für Sie oder gegen Sie arbeiten kann (wenn das Projekt schließlich nicht sehr aktiv ist).
  • Wenn es sich um ein Open-Source-Projekt handelt, hosten Sie es auf einem der beliebten FOSS-Hubs (Github, Bitbucket, SourceForge, falls erforderlich) und machen Sie (siehe oben) das Wiki und den Bug-Tracker verfügbar (aber nur, wenn Sie sie regelmäßig verwenden).
  • Was auch immer Sie tun, liefern Sie eine gute Dokumentation. Sie benötigen sowohl eine kurze Einführung als auch eine vollständige Referenz. Wenn Sie nicht die erste haben, werden die Leute Ihr Programm zu schwer zu bedienen finden. Wenn Sie die zweite nicht haben, werden die Benutzer sie nicht mehr verwenden, da sie die benötigten Informationen nicht finden können.

7

Ich werde Bernards Antwort weiterverfolgen und etwas mehr hinzufügen. Es gibt so viele OSS-Projekte, dass es immer noch schwierig sein kann, aufzufallen, es sei denn, Sie erstellen ein beliebtes Projekt, was für einen Programmierer, der gerade erst anfängt, nicht einfach sein wird.

Angenommen, Sie versuchen, in der Programmier-Community auf sich aufmerksam zu machen, würde ich empfehlen, Add-Ons (entweder OSS oder Closed Source) für Tools zu veröffentlichen, die von Programmierern verwendet werden. Stellen Sie sich vor, Sie führen ein Vorstellungsgespräch und können sagen, dass das Unternehmen bereits die von Ihnen geschriebene Software verwendet. Viele Entwicklertools verfügen über APIs zum Erstellen von Add-Ons und mehrere Hosts für "App Stores", in denen Sie Informationen zu Ihrem Tool abrufen können, ohne sich um dessen Vermarktung kümmern zu müssen.

Hier sind einige Beispiele aus meinem Kopf:

Je nachdem, welches Tool Sie auswählen, können Sie auf die spezifische Enklave der Programmiergemeinschaft abzielen, von der Sie bemerkt werden möchten.


4
  1. Nimm an Wettbewerben wie Imagine Cup oder zumindest an Wettbewerben deiner Schule teil (falls vorhanden)
  2. Stellen Sie Ihre Bewerbungen online, geben Sie möglicherweise den Quellcode an und, obwohl dies nicht mit Ihrer Frage zusammenhängt, hören Sie sich das Feedback anderer an und lernen Sie daraus
  3. Versuchen Sie, zu verschiedenen Gemeinschaften beizutragen

4

Ich habe hier einen etwas anderen Standpunkt.

Wenn Sie möchten, dass Ihre Software bekannt wird, ist es am besten, wenn die Benutzer sie verwenden. Obwohl Bill Gates und Mark Zuckerberg großartige junge Programmierer waren, gab es viele bessere Programmierer. Aber diese beiden Herren haben eine Menge Leute dazu gebracht, ihre Produkte zu benutzen und sind deshalb besser für ihre Arbeit bekannt.

Um die Leute dazu zu bringen, Ihren Code zu verwenden, können Sie:

  • Verkaufen Sie Ihr Produkt an viele Menschen. Stellen Sie zum Beispiel eine mobile App in einem App Store auf und verfolgen Sie Downloads, Einkäufe und die fortgesetzte Nutzung.
  • Bringen Sie viele Menschen dazu, Ihr Produkt zu nutzen und Werbeeinnahmen zu erzielen.
  • Lassen Sie viele Entwickler Produkte entwickeln, die mit Ihrem Produkt kompatibel sind. Das ist schwer.
  • Tragen Sie zu einem beliebten Open-Source-Projekt bei, damit Ihre Beiträge von vielen Menschen genutzt werden.

Meiner Meinung nach ist Software nahezu irrelevant, ohne den Benutzern Vorteile zu verschaffen. Und Sie werden bemerkt, dass Sie Probleme lösen, die Menschen interessieren, und das ist eine sehr seltene Fähigkeit.


3

Eine Antwort habe ich noch nicht gelesen: Google Summer of Code.

Von der Website :

Google Summer of Code ist ein globales Programm, das studentischen Entwicklern das Schreiben von Code für verschiedene Open-Source-Softwareprojekte ermöglicht. [...] Durch Google Summer of Code werden zugelassene Bewerber mit einem Mentor oder Mentoren aus den teilnehmenden Projekten zusammengebracht, um so einen Einblick in reale Softwareentwicklungsszenarien zu erhalten.

Sie müssen 18 Jahre alt sein, um teilzunehmen, aber das ist nicht weit weg. Ich kenne einige Leute, die teilgenommen haben und eine großartige Erfahrung gemacht haben. Da alle Ihre Beiträge für Open-Source-Programme bestimmt sind, sind sie öffentlich, sodass sie zur Kenntnis genommen werden.

Da Sie unter 18 Jahre alt sind, bietet Google auch ein GSOC-ähnliches Programm für Studenten (13-17 Jahre) mit dem Namen Google Code IN an .


3

Aus meiner Sicht gibt es Typen von Leuten, die programmieren.

  1. "Programmierer" - Dazu gehören 16-jährige Autodidakten und 99% der verfügbaren "Softwareentwickler" -Arbeitskräfte in China. Sie können die Arbeit erledigen ... irgendwie ... in einem minimalen Sinne, haben aber wenig Ahnung von Konzepten wie Entwurfsmustern, Wartbarkeit, robuster / defensiver Codierung, Algorithmen / Datenstrukturen und anderen Dingen, die eine effiziente Nutzung der Quelle mögen Steuerungssoftware. Sie können die Dokumentation effektiv lesen und die meisten APIs verwenden.
  2. "Average Electrical Engineer" - 80% Elektrotechnik, 10% Informatik, 10% Softwareingenieur. Kenntnisse in Elektronik, aber genauso viel Programmierung wie der typische "Programmierer". Logik und kritisches Denken sowie Managementfähigkeiten von der elektrischen Seite werden jedoch helfen.
  3. "Average Computer Science BS Graduate" - 25% Programmierer, 25% Softwareingenieur, 25% Informatiker, 25% angewandte Elektronik (einschließlich Logik).
  4. "Average Computer Engineer" - Diese Leute sind eine Mischung aus 50% Elektrotechniker, 50% Informatiker.

Definitionen:

  1. "Informatik" - Dijkstra sagte einmal: "In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope." In der Informatik geht es mehr um Mathematik als um Computer. Dies beinhaltet die Fähigkeit, komplexe Algorithmen und Datenstrukturen zu entwickeln, zu verstehen und zu klassifizieren.
  2. "Software Engineering" - Entwurfsmuster, Diagramme, die Programme darstellen (ich kann mich nicht erinnern, wie diese heißen). solche Sachen. Defensive Codierung. Verwendung der Quellcodeverwaltung.

Beachten Sie, dass ich oben das Wort "Durchschnitt" verwendet habe. Abhängig von persönlichen Interessen und Berufserfahrung können sich diese Prozentsätze drastisch ändern. Dies sind nur übergeneralisierte Stereotype. Beurteile ein Buch nicht nach seinem Einband. Ich bin auch nur BSing Prozent aus meiner Erfahrung.


1
Ihre verschiedenen Arten von Programmierern ist völliger Unsinn. Ohne Software-Engineering können Sie kein effektiver Programmierer sein. Informatiker verwenden ständig Software-Engineering. Ihre Trennung von "Elektroingenieur" ist völliger Unsinn, es gibt kaum einen Unterschied zwischen einem Informatiker und einem Informatiker.
Ramhound

Ich habe das ein bisschen komisch geschrieben. Ich habe das Problem behoben, indem ich es ein wenig überarbeitet habe. Es ist immer noch nicht ganz richtig. Antworten: a) Das ist der Punkt, ein "Programmierer" in meiner Liste ist überhaupt kein effektiver Programmierer. b) In der Informatik geht es nicht darum, Software zu entwickeln, und deshalb verwenden sie keine Softwareentwicklung. c) Computertechnik ist ein hybrides Feld zwischen Informatik und Elektrotechnik. en.wikipedia.org/wiki/Computer_engineering
user606723

1

Ich bin freiberuflicher Programmierer. Das Programmieren war mein Haupteinkommen, seit ich vor 9 Jahren mein Abitur gemacht habe. Ich habe immer noch vor, meinen Abschluss zu machen, aber im Moment ist die Zeit immer noch nicht die richtige für mich.

Mein Weg zur Selbsterkenntnis war wie folgt. Ich sage nicht, dass Sie durch diese Schritte von der Programmierer-Community anerkannt werden, aber es wird Ihnen helfen, Ihre Glaubwürdigkeit zu erhöhen, wenn es um Interviews geht.

Selbst nachdem ich mich zu dieser Zeit mit der Programmierung von IMO ziemlich gut auskannte, kehrte ich zu den Grundlagen zurück und durchlief Tutorials und baute mir ein Portfolio auf, das auf inspirierten Arbeiten aus diesen beruhte. Ich fing auch an, mich zu zwingen, meinen Code auf JavaDoc-artige Weise zu kommentieren. Das Portfolio ist im Moment vielleicht nicht mit Glanz und Glamour gefüllt, aber es gibt Ihnen eine Grundlinie, auf der Sie aufbauen und schließlich ersetzen können, was Sie darin haben. Ich hatte dann eine Reihe von Demos und Codebeispielen, die ich potenziellen Kunden zeigen konnte. Dies ist wichtig, um Ihren ersten Job zu bekommen. Niemand möchte jemanden einstellen, der keine Erfahrung hat. Es gibt jedoch eine Reihe von Personen, die einem vielversprechend aussehenden Programmierer ohne Berufserfahrung eine Chance geben.

Später analysierte ich diese Programme und begann, Bibliotheken basierend auf meinen häufig verwendeten Aufgaben zu schreiben. Mit meinen neuen Bibliotheken fing ich an, mich mit CompSci-Problemen im Internet zu befassen und überlegte, wie lange ich brauchen würde, um mit meinen Bibliotheken eine Lösung zu finden. Dies würde mir in Zukunft einen Anhaltspunkt dafür geben, was ich für eine bestimmte Aufgabe berechnen sollte.

Erst dann hatte ich Open Source entdeckt. Ich habe die Projekte auf sourceforge in der Sprache durchgesehen, an der ich interessiert war, und Anwendungen gefunden, die ich verwenden konnte. Ich installierte diese Anwendungen und begann, sie als Teil meiner täglichen Computererfahrung zu verwenden. Ich konnte die Stärken und Schwächen dieser Anwendungen in Bezug auf meine tägliche Interaktion erkennen und begann, sie an meine Bedürfnisse anzupassen. Ich würde meine Patches an die Community senden, um sie zu überprüfen, und nach ein paar Tagen würde ich mich bewerben, um Mitglied des Projekts zu werden. Hier lernte ich, die verschiedenen Werkzeuge zu verwenden, die bei der Arbeit in einem Team verwendet wurden, das meine "große Erfahrung", wie ich es damals betrachtete, auf die nächste Stufe brachte.

Ich passte alle meine Praktiken an, die ich bei Open Source-Projekten gelernt hatte, und implementierte kompromisslose Lösungen, als ich als Einzelperson arbeitete. Ich begann ernsthaft eine Karriere als freiberuflicher Entwickler und trat einer Reihe von freiberuflichen Stellenangeboten bei. Ich schaute mir die populären Jobs an und begann mich zu bewerben. Für jeden Job, den ich ablehnen würde, würde ich ihn immer noch für mich selbst erledigen, als hätte ich den Job erhalten, um mein Wissen zu erweitern. Dies würde dazu beitragen, mein Portfolio aufzubauen und mich mit einigen realen Herausforderungen vertraut zu machen. Als ich endlich das erste Interview bekam, sagte ich ihnen, dass ich keine Berufserfahrung habe. Ich begann ihnen dann zu erzählen, an welchen Open Source-Projekten ich gearbeitet hatte und was ich dort erreicht hatte. Einige große Hürden, auf die ich gestoßen war, und wie ich sie angegangen bin.


0
  1. Lerne so viel wie du kannst. Dies kann durch Bücher, Foren, Klassen geschehen, aber am wichtigsten ist, dass man tatsächlich programmiert (und kritisiert wird). Wenn Sie über die Programmierkurse an Ihrer High School hinausgewachsen sind, prüfen Sie, ob ein örtliches (Community-) College über gute CS-Kurse verfügt, die Sie belegen können (möglicherweise über einen Sommer oder als Abendkurs). oder versuchen Sie, offene Kurse von MIT / Stanford-Typen zu belegen.
  2. Initiative demonstrieren. Angenommen, Sie wissen, dass C ++ vollständig ignoriert wird. Wenn Sie sagen, dass Sie Dutzende von Commits für eine Liste von Open Source-Projekten haben, wissen Sie etwas, usw. (seien Sie jedoch vorsichtig, verpflichten Sie sich nicht nur, um sich zu verpflichten). Starten Sie Ihre eigenen Open Source-Projekte. Dies wird nicht etwas sein, was du an einem Nachmittag machst; aber etwas, das über einen Zeitraum von Monaten zu Ihrem Baby wird. Schreiben und veröffentlichen Sie eine Android / iPhone-App, die etwas Nützliches leistet und zum Herunterladen anregt.

PS: Es ist lange her, dass ich mich an der Universität beworben habe - sie bieten dir immer noch die Möglichkeit, solche Dinge aufzulisten, oder? (ZB ein Abschnitt über Hobbys oder eine Textfrage zu Ihren Interessen).


0

Ich denke, dass JohnFX eine großartige Antwort auf diese Frage gegeben hat.

Ein paar Gedanken:

  • Ich denke, dass jQueryUI der beste Startpunkt sein könnte. Es macht Spaß und ist visuell. Sie können also im jQueryUI-Entwicklerforum auf der jQuery-Site nach einem Mitwirkenden fragen.

  • Ich denke, Sie werden mehr Leidenschaft und Engagement für das Programmieren zeigen, als Sie große Fähigkeiten unter Beweis stellen werden. Aber lass dich nicht davon aufhalten! Ich ermutige Sie nachdrücklich, sich einzubringen.

  • An diesem Punkt müssen Sie sich möglicherweise mit der Qualitätssicherung zufrieden geben. QA ist langweilig, aber Sie können es akzeptieren und Engagement zeigen. Aber von dort aus können Sie ein bisschen Code beisteuern und vielleicht Plugins erstellen.

  • Wenn du fragst, ob du an etwas beteiligt sein möchtest und sie es schwierig machen, dann weil sie Arschlöcher sind. Suchen Sie einfach nach einem Projekt, bei dem die Leute ermutigend und nett sind.

  • Nachdem Sie ein Projekt mit ermutigenden, netten Menschen gefunden und einen Beitrag geleistet haben, können Sie einen der erwachsenen Mitarbeiter oder hoffentlich einen der für das Projekt verantwortlichen Mitarbeiter bitten, Ihnen einen kurzen Empfehlungsbrief zu schreiben.


0

Ich widerspreche respektvoll denen, die mit "Überschätzen Sie sich nicht" geantwortet haben!

Wenn Sie in Ihrem Alter eine Vorliebe für das Programmieren haben, sind Sie wahrscheinlich großartig und größer als andere Kinder in Ihrem Alter. Wenn Sie ein Veteran sind, könnten Sie der nächste Brian Kernighan, Edsger Dijkstra oder Doug Lea sein!

Ich würde vorschlagen, die IPhone- oder Android-Entwicklung zu erlernen und einige echte Apps zu erstellen.

Werden Sie großartig in etwas und während Sie dorthin kommen, sprechen Sie auf Konferenzen und schreiben Sie Artikel, die Sie auffallen lassen und Ihre Fähigkeiten verbessern.

Ich programmiere seit den späten 70ern und seit 1996 in Java. Ich kann Ihnen sagen, dass das wichtigste Java-Buch, das ich jemals gelesen habe, die Gang of Four Design Patterns war, die ein Jahrzehnt vor der Erfindung von Java geschrieben wurde. Lies es und sei großartig!

Die am höchsten bezahlte Branche ist heute finanziell, aber das ändert sich schnell. Ich glaube, es wird wiederkommen, aber du weißt es nie!

Seien Sie ein Programmierer und genießen Sie eine hohe Beschäftigung und Arbeitszufriedenheit!

Viel Glück, Sie haben eine großartige Karriere vor sich!


0

Erstellen Sie eine Web-App, die auf dem iPhone und Android gut funktioniert (ignorieren Sie derzeit Standardbrowser), und nutzen Sie die erweiterten Funktionen von HTML5 (https://developer.mozilla.org/en/HTML/HTML5), um die Latenz und das unübersichtliche Netzwerk zu überwinden. und die Einschränkung von Telefonbrowsern. Dies bedeutet höchstwahrscheinlich, dass eine JavaScript + HTML5-Browser-App bereitgestellt wird, die eine Verbindung zu einer serverbasierten API herstellt. (wähle xmlrpc / json / yaml, nicht SOAP). lass es schnell schreien. Auf dem Server empfehle ich die Verwendung von Cherrypy unter Linux (Debian) auf billigem VPS. Sie können einige bei 123systems.com, buyvm.net (bevorzugt, aber oft nicht verfügbar) für weniger als 4 US-Dollar pro Monat erhalten. Erfahren Sie, wie Sie Python und Fabric verwenden, um Ihre Inhalte auf Ihren Servern bereitzustellen. Holen Sie sich eine .info-Domain bei namecheap.com für 2,99 USD pro Jahr und verwenden Sie dnsmadeasy.com für DNS (teurer, aber es lohnt sich - verwenden Sie sie seit Jahren, hatte noch nie ein einziges Problem), bei dem Sie einen Lastenausgleich über DNS durchführen können. Lassen Sie sich auch nicht von Datenbanken abschrecken. Verwenden Sie SQLite und lernen Sie, Ihre Tabellen manuell mit SQL-Anweisungen zu entwerfen. Schließlich können Sie mit einer Maschine wahrscheinlich 30.000 Benutzer verwalten. (2.000 gleichzeitig bei einem Treffer auf dem Server alle 3 Sekunden). Denken Sie daran, so viel wie möglich im HTML5-Speicher zwischenzuspeichern.

Wenn du dies tust und darüber bloggst und über die Blogeinträge und deine Fortschritte redest, wirst du definitiv bemerkt. Zugegeben, es gibt viel zu lernen, aber du kannst es schaffen!


-1

Was ist ein guter Ort für mich, um meine Arbeit wahrzunehmen?

So gut wie überall im Internet - wenn Sie etwas Erwähnenswertes schreiben, z. B. ein Dienstprogramm, das etwas Ordentliches oder Einzigartiges ausführt, das eine große Anzahl von Benutzern verwenden / herunterladen wird - haben Sie den größten Teil dieser Aufgabe bereits erledigt. Coole, nützliche und verfügbare Anwendungen machen Werbung.

Gibt es Zeitschriften oder Veröffentlichungen speziell für junge Programmierer?

Wenn nicht Veröffentlichungen, gibt es dann gute Blogs, oder ist es einfach besser, eigene zu gründen?

Sie sind bereits hier - dies ist nur eine von vielen Gemeinschaften, die aus dem Wunsch heraus, zu teilen und für ihr Wissen bekannt zu sein - andere Menschen sind mehr als glücklich, Verdienstthemen mit der aktuellen Diskussion zu verknüpfen.

Gibt es noch etwas, das mir helfen würde, als Programmierer aufzufallen?

Programmieren Sie einfach, um zu programmieren - solange es produktiv, kreativ und nützlich ist -.

Ein Punkt, den ich in anderen Antworten erwähnt sehe und zu dem ich auch stehe, sind Beiträge zu Open-Source-Projekten. Die einzige Möglichkeit, das Codieren zu verbessern, ist das Codieren - und was kann man besser tun, als aktuelle Probleme zu lösen. Weil Sie, ohne ein zu lösendes Problem, vergeblich programmieren ... oh, noch etwas, egal, die mürrischen alten Jungs mit ihren aufgeblähten und absichtlich entmutigenden "Young Whipper Snapper" -Kommentaren - Sie sind jung und Begeistert, das ist alles was Sie brauchen.


-1

Wenn ich Sie wäre, würde ich mein Wissen über meine Arbeit kundtun. Sie sagen, Sie programmieren cso , dass Sie anfangen, Programme zu entwickeln, die auf die alltägliche PC-Erfahrung der Benutzer zugeschnitten sind. Machen Sie Dinge wie youtube downloaderund beginnen Sie Ihren eigenen dev teamMann Ich bin ein junger schwarzer Typ von der Motorhaube. Ich könnte also die Leidenschaft verstehen, die Sie für das Programmieren haben, aber gleichzeitig könnte das Programmieren viel Zeit und Mühe in Anspruch nehmen. Geben Sie sich Zeit zum Leben. Das heißt, die ganze Zeit am Computer zu sitzen, kann für einen kleinen Jungen stressig sein.


-1

Es gibt Unmengen von Orten, an denen Sie Ihre Arbeit ausrichten können, um sie zu erkennen, aber auch wenn Sie Ihre Arbeit für erstklassig halten, kann es für manche nur ein einfacher Arbeitstag sein. Als ich 16 war, fand ich meine Arbeit großartig, ich machte ein paar coole Sachen, aber ich arbeite jetzt tatsächlich in diesen Bereichen und wo ich damals war, ist nichts im Vergleich zu dem, wo ich jetzt bin, und ich bin immer noch weit entfernt weg von wo ich sein will.


-2

Wenn Sie sich für Spiele interessieren, versuchen Sie, an Ludum Dare teilzunehmen. Ein gutes Spiel wird dort einen gewissen Bekanntheitsgrad erlangen.


-3

Wenn du auffallen und Geld verdienen willst, empfehle ich die Entwicklung von Mobilgeräten auf iPhone oder Android. Sie kennen bereits C ++, was ein guter Anfang ist. Für die native Entwicklung auf dem iPhone benötigen Sie Objective C und für Android Java. Beide ähneln C ++ (Java ist einfacher, da es keine Speicherverwaltung gibt) und sind nicht allzu schwer zu erlernen. Sie schreiben also nicht nur Anwendungen, mit denen Sie auf sich aufmerksam machen und etwas Geld verdienen, sondern lernen dabei auch neue Sprachen und heiße Plattformen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.