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.
Antworten:
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.
quelle
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.
quelle
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 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.
quelle
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?
quelle
Ein paar Dinge, die Sie vielleicht ausprobieren möchten:
quelle
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.
quelle
quelle
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:
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.
quelle
Eine Antwort habe ich noch nicht gelesen: Google Summer of Code.
Von der Website :
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 .
quelle
Aus meiner Sicht gibt es Typen von Leuten, die programmieren.
Definitionen:
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.
quelle
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.
quelle
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).
quelle
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.
quelle
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!
quelle
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!
quelle
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.
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.
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.
quelle
Wenn ich Sie wäre, würde ich mein Wissen über meine Arbeit kundtun. Sie sagen, Sie programmieren
c
so , dass Sie anfangen, Programme zu entwickeln, die auf die alltägliche PC-Erfahrung der Benutzer zugeschnitten sind. Machen Sie Dinge wieyoutube downloader
und beginnen Sie Ihren eigenendev team
Mann 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.quelle
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.
quelle
Wenn Sie sich für Spiele interessieren, versuchen Sie, an Ludum Dare teilzunehmen. Ein gutes Spiel wird dort einen gewissen Bekanntheitsgrad erlangen.
quelle
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.
quelle