Jakie jest najlepsze miejsce dla programisty w szkole średniej, aby zwrócić uwagę na jego pracę? [Zamknięte]

52

Jestem 16-letnią licealistką z zamiłowania do programowania komputerowego. Mam klasę 11 i uczyłem się tego w ramach szkolnego programu nauczania przez około 8 miesięcy. Wykroczyłem poza to, czego uczy się w szkole, i napisałem kilka (całkiem dobrych) aplikacji. Językiem, w którym programuję, jest C ++ na platformie Windows. W końcu chciałbym studiować CS w dobrym college'u, a następnie pracować jako programista.

Mam konkretne pytania:

  • Jakie jest dobre miejsce, aby zwrócić uwagę na moją pracę?
  • Czy są jakieś czasopisma lub publikacje przeznaczone specjalnie dla młodych programistów?
  • Jeśli nie publikacje, to czy są jakieś dobre blogi, czy może lepiej założyć własne?
  • Czy jest coś jeszcze, co pomogłoby mi zostać zauważonym jako programista?

Starałem się być jak najbardziej obiektywny.

Gdyby to wszystko było tl; dr: Jaki jest najlepszy sposób, aby zostać zauważonym jako młody programista?

Edycja: Nie chcę zostać zatrudniony bezpośrednio po ukończeniu szkoły średniej Celem nie jest wywarcie wrażenia na społeczności jako profesjonalny programista. Ma to na celu aplikowanie na studia, gdzie widzenie i krytykowanie pracy przez innych ludzi poprawi twoje podanie. Nie chcę zarabiać na tym, co napisałem (do tej pory).

viraj
źródło
12
Co sprawia, że ​​myślisz, że inni chcą zostać zauważeni przez 16-letniego Greenhorna ;-)?
Doc Brown
27
Przepełnienie stosu to świetne miejsce! Podaj kilka dobrych, pomocnych odpowiedzi (i zadaj kilka dobrych, pomocnych pytań!), A następnie wskaż potencjalnym pracodawcom swój profil.
Cody Gray
24
@viraj Pochwalam twój entuzjazm i dobre odpowiedzi tutaj. Sugeruję jednak, aby nie pozwolić, aby pochłonęło to twoje wczesne życie. Zajmuj się innymi hobby i zainteresowaniami, utrzymuj kontakty towarzyskie i baw się dobrze, możesz być dzieckiem tylko raz w życiu, w którym możesz popsuć wszystko i odskoczyć bez szwanku. Gdy dorośniesz i zaczniesz karierę, prawdopodobnie będziesz ją miał przez resztę życia . To bardzo poważne zobowiązanie do podjęcia w tym wieku. Nie chcesz stać się jak wielu, którzy mieli obsesję na punkcie kariery w młodym wieku, a potem nienawidzili swojego życia później i mieli okropny kryzys wieku średniego.
wałek klonowy
4
@FrustratedWithFormsDesigner Jeśli chcesz dostać się do Top School bez Top Money, trudniej jest się tam dostać.
maple_shaft
10
@maple_shaft Twój punkt widzenia jest dobry, ale jeśli on naprawdę jest pasjonatem programowania, nie chcesz go od niego odwracać - wyobraź sobie, że mówisz młodemu Billowi Gatesowi / Markowi Zuckerbergowi „nie spędzaj zbyt dużo swojej młodości na programowaniu, ty mieć resztę życia. Porady powinny koncentrować się na twoich zainteresowaniach i pasjach, a nie na karierze .
Kirk Broadhurst

Odpowiedzi:

61

Chciałbym dać ci ostrzeżenie i kilka sugestii.

Ostrzeżenia:

  • Nie przeceniaj swojej wiedzy: w tej chwili mogę założyć, że wiesz wystarczająco dużo, aby napisać prostą aplikację i więcej niż to, czego faktycznie uczy się na zajęciach. Ale to nie czyni z ciebie „profesjonalnego programisty”; może co najwyżej stać się „freelancerem”.

  • Nie doceniaj wartości tego, czego uczy się w szkole. Nawet jeśli coś może ci się wydawać oczywiste, przestudiuj to: w miarę postępów zobaczysz „nowe aspekty” (wyjaśnię to później).

Propozycje:

  • Profesjonalne zastosowania mają typowy cykl życia wynoszący 3-5 lat i wymagają tysięcy (do milionów) roboczogodzin. Nie mogą być wdrażane przez samego programistę. Profesjonalni programiści muszą współpracować z innymi. To nie tylko kwestia dobrej znajomości narzędzi (takich jak języki, IDE itp.), Ale także technik, metod i idiomów.

  • Podczas gdy narzędzi można uczyć na podstawie formalnych próbek i ćwiczeń, techniki i idiomy można jedynie „opisać”. Aby je „nauczyć”, musisz doświadczyć i podzielić się doświadczeniem z innymi. Są stale wymyślane i ulepszane.

  • Firmy, zatrudniając się w szkole, sprawdzają Twoje zrozumienie narzędzi i umiejętności w zakresie podstawowych technik, ale - co najważniejsze - sprawdzają Twoje umiejętności szybkiego uczenia się nowych rzeczy i „wychwytują pracę” w miarę potrzeb.

  • Zatrudniając doświadczonych ludzi, sprawdzają, ile rzeczy zrobili i jakie doświadczenie uzyskali z tych rzeczy.

Morał:

  • Jeśli chcesz być bardziej „oceniany” nauczyć się pracować z innymi, poprzez uczestnictwo w problemach nawzajem (jak na stackoverflow ) lub otwarte projekty (jak na SourceForge )

  • Nie bądź też zbyt szybki, aby prosić o pieniądze; podziel swoją „produkcję kodu” na „coś do udostępnienia” i „coś do sprzedania”. To, co możesz udostępnić, może być wykorzystane przez innych, ale może również przyciągnąć udział innych w celu rozszerzenia początkowego projektu. To, co możesz sprzedać, sprawia, że ​​Twoja aplikacja jest „wyjątkowa” w porównaniu z innymi podobnymi projektami, dzięki czemu staje się prawdziwym produktem komercyjnym.
    Aby udostępnić kod innym osobom, możesz odwołać się do projektu kodu witryny lub sourceforge . Ich ocena daje również wyobrażenie o tym, jak interesujące było to, co zrobiłeś dla innych ludzi.

Emilio Garavaglia
źródło
30
+1 za wzmiankę o przeszacowaniu swojej wiedzy. Kiedy byłem w szkole średniej, pisałem fajne rzeczy i myślałem, że jestem przyzwoitym programistą. Potem zacząłem chodzić na studia i zdałem sobie sprawę, że nie jestem nawet bliski bycia na poziomie zawodowym.
Mike L.
1
+1 chociaż OTOH, znam ludzi (nie osobiście), którzy pisali w liceum rzeczy, których wciąż nie mogę zrozumieć
BlueRaja - Danny Pflughoeft
+1, kiedy pierwszy raz poszedłem na uniwersytet, pomyślałem, że chodzi o uzyskanie certyfikatu moich już nabytych umiejętności. Chociaż w niektórych obszarach wyprzedzałem innych studentów, wciąż nie byłem na poziomie profesjonalnym.
user606723,
4
+1 za przeszacowanie twojej wiedzy. Nie mogę Wam powiedzieć, ile CV dostaję w tygodniu w tym stanie, że są „ekspertami” w każdej wymienionej umiejętności. Takie postępowanie pokazuje tylko twoją naiwność.
Jesse Bunch,
6
Zabawne, wiem, że kilka osób zawodowo pisze kod z 3-5-letnim wykształceniem w informatyce, które nie mogły zaprogramować się z kartonu ... Po prostu powiedzenie, że ktoś mający motywację do nauki dobrych praktyk w domu to często mile przed wieloma osobami pracującymi zawodowo.
Maks.
35

Czy zastanawiałeś się nad tworzeniem projektów open source dla aplikacji, które napisałeś i hostingiem online? SourceForge.net lub GitHub.com są dobrymi gospodarzami projektów typu open source. Pomoże to uzyskać widoczność aplikacji.

Bernard
źródło
11
Informacje zwrotne na temat tych stron mogą być również bezpośrednie, brutalne, a może twoje projekty zostaną zignorowane. Ważną rzeczą jest zebranie opinii na temat tego, co to jest i wprowadzenie ulepszeń. Pomyśl o społeczności jako o czymś, co może Ci pomóc i to pomoże.
jefflunt
26

Po pierwsze, wyjaśnijmy: większość z 16 programistów YO nie zrobi wrażenia na społeczności.

Moim zdaniem ma to uzasadnienie. Bycie dobrym programistą polega nie tylko na umiejętnościach programistycznych. Jak miejmy nadzieję, że widzisz podczas swojej specjalizacji CS, programowanie jest tylko podzbiorem informatyki, a większość osób zdobywających nagrody (przynajmniej nagrody akademickie) zrobi to, ponieważ udowodniły coś nowego (na przykład nowe twierdzenie) lub odkryły nowy sposób na osiągnięcie pewnego rodzaju zadania (wzorce projektowe). Aby to zrobić, musisz (przynajmniej):

  • Zdobądź dobre podstawy matematyki, konieczne jest zrozumienie algorytmów, a tym samym opanowanie różnych struktur danych.
  • Zrozum, że dobry programista najpierw rozumie paradygmaty (obiektowy, funkcjonalny, ...), zanim zainteresuje go „konkretny” język.
  • Zrozum, że dobre programowanie często wiąże się również z modelowaniem kodu i poznaj istniejące wzorce projektowe.

Jeśli czujesz, że już to wszystko opanowałeś, to prawdopodobnie zrobisz wrażenie na społeczności.

Zawsze możesz spróbować przyczynić się do projektu typu open source, ale możesz być również zaskoczony, ile musisz nadrobić, zanim będziesz mógł wnieść swój wkład.

Na koniec rozejrzyj się po StackOverflow i zobacz, ile możesz tam odpowiedzieć w swoim ulubionym języku ... będziesz mieć dobre proxy swojego poziomu.

SRKX
źródło
2
+1: Doświadczenie nie zastępuje doświadczenia. Kiedy zatrudniam, zwykle chcę zobaczyć, że ktoś miał za sobą wiele powtórzeń błędu próbnego.
JohnFx,
3
+1: Tak wielu programistów, z którymi pracuję, wydaje się, że matematyka nie jest dla nich ważna. A potem odwrócą się i będą spierać się o wydajność algorytmu w tym samym oddechu.
kojiro
+1: Matematyka jest jednym z najbardziej podstawowych elementów informatyki. Informatyka jako dziedzina nie mogłaby istnieć bez matematyki. Nie można grupy bajtów do innej grupy bajtów bez matematyki. Ponadto trudno będzie to zrobić w tym polu, jeśli nie rozumiesz, jak działa komputer, jeśli nie rozumiesz, w jaki sposób dodawane są dwa rejestry bajtów (nie jest to prosty proces), to nigdy nie zrozumiesz komputera nauka. Samo programowanie wymaga umiejętności rozwiązywania problemów, nauki języka programowania, a podkreślenie jest łatwą częścią informatyki.
Ramhound
1
Najtrudniejszą częścią bycia profesjonalistą w dziedzinie informatyki jest umiejętność znalezienia najlepszego sposobu rozwiązania problemu. Nauka nowego języka programowania jest łatwą częścią, nauka o wykorzystywaniu mocnych stron i unikaniu słabych punktów w danym języku jest o wiele trudniejsza, ponieważ jest w stanie to zrobić, oddzielając „małpy kodowe” od „profesjonalistów”.
Ramhound
13

Postaraj się uzyskać naprawdę wysoką reputację na przepełnieniu stosu. Omówiono tutaj prawie ten sam temat:

Czy wysoka reputacja w przepełnieniu stosu pomoże uzyskać dobrą pracę?

Doc Doc Brown
źródło
5
Ponadto zdobywanie wysokiej reputacji na SO jest świetną zabawą i nauczysz się wiele po drodze od czytania, publikowania i odpowiadania na pytania.
Paul Hiemstra
1
Moim zdaniem wysoka reputacja w SO oznacza „spędzam dużo czasu na stronie, odpowiadając na mnóstwo podstawowych pytań, z którymi każdy programista może się odnosić”. Nie zastanawiałbym się nad tym. (Uwaga: nadal możesz być ekspertem ORAZ mieć dobrą reputację na SO)
siamii
8

Kilka rzeczy, które możesz spróbować:

  • Napisz oprogramowanie, które rozwiązuje prawdziwe problemy, najlepiej problemy, które nie zostały wcześniej rozwiązane (a przynajmniej nie w sposób satysfakcjonujący). Jeśli nikt nie używa twojego oprogramowania pomimo twoich najlepszych działań promocyjnych, są szanse, że po prostu nie będą go tak desperacko potrzebować.
  • Ogłoś swoją pracę na odpowiednich listach mailowych, kanałach IRC i forach internetowych. Jeśli Twój program intensywnie korzysta z niektórych bibliotek, rozważ opublikowanie ich w społeczności biblioteki; jeśli uzupełnia inne istniejące programy, ogłosić je społecznościom itp.
  • Jeśli jest to wystarczająco poważny projekt, stwórz dla niego dedykowaną stronę internetową. Strona internetowa powinna zawierać podsumowanie funkcji, linki do plików do pobrania i dokumentacji oraz (jeśli dotyczy) kilka zrzutów ekranu. Upewnij się, że jest to odpowiednia strona internetowa, a nie jakaś reklamowa tandeta w stylu geocities - chcesz być traktowany poważnie, więc działaj. Dodanie sekcji wiadomości, wiki i / lub narzędzia do śledzenia błędów daje potencjalnemu użytkownikowi informację o tym, jak aktywny jest projekt, który może działać na twoją korzyść lub przeciwko tobie (jeśli mimo wszystko projekt nie jest bardzo aktywny).
  • Jeśli jest to projekt open source, umieść go w jednym z popularnych hubów FOSS (github, bitbucket, sourceforge, jeśli musisz), i (patrz wyżej) ujawnij wiki i narzędzie do śledzenia błędów (ale tylko jeśli regularnie z nich korzystasz).
  • Cokolwiek zrobisz, zapewnij dobrą dokumentację. Potrzebujesz zarówno krótkiego „początku”, jak i pełnego odniesienia. Jeśli nie masz pierwszego, ludzie uznają Twój program za zbyt trudny w użyciu. Jeśli nie masz drugiego, ludzie przestaną go używać, ponieważ nie mogą znaleźć potrzebnych informacji.
tdammers
źródło
7

Podążę za odpowiedzią Bernarda i dodam trochę więcej. Istnieje tak wiele projektów OSS, że wciąż może być trudno je zauważyć, chyba że utworzysz popularny projekt, co nie będzie łatwe dla początkującego programisty.

Zakładając, że próbujesz zostać zauważony w społeczności programistów, sugeruję publikowanie dodatków (OSS lub zamkniętych źródeł) dla narzędzi, z których korzystają programiści. Wyobraź sobie, że bierzesz udział w rozmowie kwalifikacyjnej i możesz powiedzieć, że firma korzysta już z napisanego przez ciebie oprogramowania. Wiele narzędzi programistycznych ma interfejsy API do tworzenia dodatków, a kilka nawet hostuje „Sklepy z aplikacjami”, w których można uzyskać pewne informacje na temat swojego narzędzia, nie martwiąc się zbytnio o jego marketing.

Oto kilka przykładów z mojej głowy:

W zależności od wybranego narzędzia możesz kierować się na konkretną enklawę społeczności programistów, za którą chcesz zostać zauważony.

rev JohnFx
źródło
4
  1. Idź na zawody takie jak Imagine Cup lub przynajmniej na zawody twojej szkoły (jeśli takie istnieją)
  2. Umieść swoje aplikacje online, może podaj kod źródłowy i, choć nie jest to związane z pytaniem, wysłuchaj opinii innych i wyciągnij z niego wnioski
  3. Staraj się przyczyniać do różnych społeczności
Victor Hurdugaci
źródło
4

Mam tu nieco inny punkt widzenia.

Jeśli chcesz, aby twoje oprogramowanie zostało zauważone, najlepszym sposobem jest zachęcenie ludzi do korzystania z niego. Chociaż Bill Gates i Mark Zuckerberg byli świetnymi młodymi programistami, było wielu lepszych programistów. Ale ci dwaj panowie mają wielu ludzi do korzystania z ich produktów i dlatego są bardziej znani ze swojej pracy.

Aby zachęcić ludzi do korzystania z Twojego kodu, możesz:

  • Sprzedaj swój produkt wielu osobom. Na przykład zainstaluj aplikację mobilną w sklepie z aplikacjami i śledź pobrania, zakupy i dalsze użytkowanie.
  • Zdobądź wiele osób do korzystania z Twojego produktu i zarabiaj na reklamach.
  • Zdobądź wielu programistów, którzy opracują produkty, które współpracują z Twoim produktem. To jest trudne.
  • Wnieś wkład do popularnego projektu typu open source, aby twoje wkłady były wykorzystywane przez wiele osób.

Moim zdaniem oprogramowanie jest prawie nieistotne bez zapewnienia korzyści użytkownikom. Zostaniesz zauważony za rozwiązywanie problemów, które są dla ludzi ważne, i jest to bardzo rzadka umiejętność.

Jay Godse
źródło
3

Jedna odpowiedź, której jeszcze nie przeczytałem: Google Summer of Code.

Ze strony :

Google Summer of Code to globalny program, który oferuje programistom-studentom możliwość pisania kodu dla różnych projektów oprogramowania typu open source. [...] Dzięki Google Summer of Code zaakceptowani kandydaci na studentów są parowani z mentorem lub mentorami uczestniczących projektów, uzyskując w ten sposób kontakt ze scenariuszami tworzenia oprogramowania w świecie rzeczywistym.

Aby wziąć udział, musisz mieć 18 lat, ale to nie jest daleko. Znam ludzi, którzy brali udział i mieli wspaniałe doświadczenia. Ponieważ wszystkie twoje wkłady dotyczą programów typu open source, są one publiczne, więc zostaną zauważone.

Ponieważ masz mniej niż 18 lat, Google ma również podobny do GSOC program dla studentów szkół wyższych (13-17 lat) o nazwie Google Code IN .

Jeroen
źródło
3

Z mojego punktu widzenia są ludzie, którzy programują.

  1. „Programiści” - obejmują 16-letniego samouka i 99% dostępnej siły roboczej „programistów” w Chinach. Mogą wykonać zadanie ... w pewnym sensie ... w minimalnym sensie, ale mają niewielkie pomysły na takie koncepcje, jak wzorce projektowe, łatwość konserwacji, solidne / defensywne kodowanie, algorytmy / struktury danych i inne rzeczy, które lubią efektywne wykorzystanie źródła oprogramowanie sterujące. Mają możliwość skutecznego czytania dokumentacji i korzystania z większości interfejsów API.
  2. „Przeciętny inżynier elektryk” - 80% elektryk, 10% informatyk, 10% inżynier oprogramowania. Biegła znajomość elektroniki, ale prawie tyle samo programowania co typowy „programista”. Pomoże jednak logika i krytyczne myślenie oraz umiejętności zarządzania od strony elektrycznej.
  3. „Przeciętny absolwent informatyki BS” - 25% programista, 25% inżynier oprogramowania, 25% informatyk, 25% elektronika stosowana (w tym logika).
  4. „Przeciętny informatyk” - osoby te stanowią mieszankę 50% inżyniera elektryka, 50% absolwenta informatyki.

Definicje:

  1. „Informatyka” - powiedział kiedyś Dijkstra: „Informatyka to nie tylko komputery, ale astronomia to teleskopy”. Informatyka bardziej dotyczy matematyki niż komputerów. Obejmuje to możliwość opracowywania, rozumienia i klasyfikowania złożonych algorytmów i struktur danych.
  2. „Inżynieria oprogramowania” - wzorzec projektowy, diagramy przedstawiające programy (nie pamiętam, jak się je nazywa). takie rzeczy. Kodowanie obronne. Wykorzystanie kontroli źródła,

Zauważ, że użyłem powyżej słowa „średnia”. W zależności od osobistych zainteresowań i doświadczenia zawodowego odsetki te mogą się drastycznie zmienić. Są to po prostu zbyt ogólne stereotypy. Nie oceniaj książki po okładce. Jestem również tylko procentowym BSing z mojego doświadczenia.

606723
źródło
1
Twoje różne typy programistów to kompletna bzdura. Nie możesz być efektywnym programistą bez inżynierii oprogramowania. Informatycy cały czas korzystają z inżynierii oprogramowania. Twój podział na „inżyniera elektryka” to kompletny nonsens, nie ma różnicy między inżynierem informatykiem a informatykiem.
Ramhound
Napisałem to trochę dziwnie. Naprawiłem to, nieco go refaktoryzując. Nadal jednak nie jest to całkowicie poprawne. Odpowiedzi: a) Chodzi o to, że „programista” na mojej liście wcale nie jest skutecznym programistą. b) Informatyka nie polega na tworzeniu oprogramowania i dlatego nie korzysta z inżynierii oprogramowania. c) Inżynieria komputerowa to dziedzina hybrydowa między inżynierią i elektrotechniką. en.wikipedia.org/wiki/Computer_engineering
user606723
1

Jestem niezależnym programistą. Programowanie jest moim podstawowym dochodem, odkąd skończyłem szkołę średnią 9 lat temu. Nadal zamierzam uzyskać stopień naukowy, ale w tej chwili czas nie jest dla mnie odpowiedni.

Moja droga do rozpoznawania siebie była następująca. Nie twierdzę, że te kroki sprawią, że zostaniesz rozpoznany przez społeczność programistów, ale pomoże to zwiększyć twoją wiarygodność, gdy przyjdzie czas na rozmowę kwalifikacyjną.

Nawet po tym, jak w tym czasie byłem dość biegły w programowaniu IMO, wróciłem do podstaw, przejrzałem samouczki i zbudowałem portfolio na podstawie inspirowanych prac z nich. Zacząłem też zmuszać się do komentowania mojego kodu w stylu JavaDoc. Portfel może nie być teraz pełen blichtru i blasku, ale daje ci podstawę, z której możesz zbudować i ewentualnie zastąpić to, co masz. Następnie miałem zestaw demonstracji i próbek kodu do pokazania potencjalnym klientom. Jest to niezbędne w zdobyciu pierwszej pracy. Nikt nie chce zatrudnić osoby, która nie ma żadnego doświadczenia, jednak istnieje wiele osób, które dadzą szansę obiecującemu programistowi, który nie ma doświadczenia zawodowego.

Później przeanalizowałem te programy i zacząłem pisać biblioteki na podstawie moich często używanych zadań. Wraz z moimi nowymi bibliotekami zacząłem patrzeć na problemy CompSci w Internecie i zacząłem mierzyć, ile czasu zajmie mi zbudowanie rozwiązania z moimi bibliotekami. To dałoby mi w przyszłości punkt odniesienia co do tego, co powinienem pobierać za konkretne zadanie.

Dopiero wtedy odkryłem open source. Przejrzałem projekty dotyczące sourceforge w języku, który mnie interesował, i znalazłem aplikacje, z których mógłbym skorzystać. Zainstalowałem te aplikacje i zacząłem z nich korzystać w ramach codziennej pracy z komputerem. Byłem w stanie dostrzec mocne i słabe strony tych aplikacji w zakresie mojej codziennej interakcji i zacząłem je rozszerzać, aby odpowiadały moim potrzebom. Przesyłam swoje łatki do społeczności, która ma zostać poddana przeglądowi, a po kilku aplikacjach staram się zostać członkiem projektu. W tym miejscu nauczyłem się korzystać z różnych narzędzi używanych podczas pracy w zespole, który wziął moje „ogromne doświadczenie”, tak jak go wtedy rozważałem, i przeniosłem je na wyższy poziom.

Dostosowałem wszystkie moje praktyki, które podjąłem, pracując nad projektami typu open source i wdrożyłem kompatybilne rozwiązania, kiedy pracowałem jako osoba prywatna. Zacząłem poważnie karierę jako niezależny programista i dołączyłem do wielu niezależnych witryn rekrutacyjnych. Spojrzałem na popularne prace i zacząłem aplikować. Za każdą pracę, którą odrzuciłbym, wciąż wykonywałbym ją sam, tak jakbym uzyskał tę pracę, aby poszerzyć swoją wiedzę. Pomogłoby to zbudować moje portfolio i wprowadzić do niektórych wyzwań w świecie rzeczywistym. Kiedy w końcu dostałem ten pierwszy wywiad, powiedziałem wprost, że nie mam doświadczenia zawodowego. Potem zacząłem opowiadać im o projektach open source, nad którymi pracowałem, o tym, co tam osiągnąłem. Kilka głównych przeszkód, które napotkałem, i sposób, w jaki je rozwiązałem.

Steve Buzonas
źródło
0
  1. Dowiedz się jak najwięcej. Można tego dokonać za pomocą książek, forów, zajęć, ale przede wszystkim poprzez programowanie (i krytykę). Jeśli przerosłeś lekcje programowania w liceum, sprawdź, czy lokalna uczelnia (społeczność) ma jakieś dobre zajęcia z CS, które możesz wziąć (być może w okresie letnim lub nocnym); lub spróbuj wziąć otwarte przedmioty kursowe z typów MIT / Stanford.
  2. Wykazać inicjatywę. Mówiąc, że wiesz, C ++ zostanie całkowicie zignorowany. Mówienie, że masz dziesiątki zatwierdzeń na liście projektów open source pokazuje, że coś wiesz itp. (Uważaj; nie popełniaj tylko ze względu na zobowiązanie). Rozpocznij własne projekty open source. To nie będzie coś, co robisz po południu; ale coś, co stanie się twoim dzieckiem na przestrzeni miesięcy. Napisz i opublikuj aplikację na Androida / iPhone'a, która robi coś pożytecznego i zachęca ludzi do pobrania.

PS: Minęło dużo czasu, odkąd aplikowałem na studia - wciąż dają ci możliwość wymieniać takie rzeczy, prawda? (Np. Sekcja o hobby lub pytanie na temat twoich zainteresowań).

dr jimbob
źródło
0

Myślę, że JohnFX dał świetną odpowiedź na to pytanie.

Kilka myśli:

  • Myślę, że jQueryUI może być najlepszym miejscem do rozpoczęcia. To jest zabawne i wizualne. Możesz więc wejść na forum programistów jQueryUI na stronie jQuery i poprosić o pomoc.

  • Myślę, że wykażesz się wielką pasją i zaangażowaniem w programowanie bardziej niż umiejętnościami. Ale niech cię to nie powstrzyma! Gorąco zachęcam do zaangażowania się.

  • W tym momencie być może będziesz musiał zadowolić się przeprowadzeniem kontroli jakości. Kontrola jakości jest nudna, ale możesz ją zaakceptować i okazać zaangażowanie. Ale stamtąd możesz dodać trochę kodu i być może stworzyć wtyczki.

  • Jeśli poprosisz o udział w czymś, co utrudni to, dzieje się tak dlatego, że są dupkami. Po prostu szukaj projektu, w którym ludzie są zachęcający i mili.

  • Po znalezieniu projektu z zachęcającymi, miłymi ludźmi i swoim udziałem, możesz poprosić jednego z dorosłych współpracowników lub mam nadzieję, że jedna z osób odpowiedzialnych za projekt napisze ci krótki list polecający.

Joe
źródło
0

Z szacunkiem nie zgadzam się z tymi, którzy odpowiedzieli „nie przeceniaj siebie”!

Jeśli lubisz programować w swoim wieku, idź na całość, prawdopodobnie jesteś świetny i większy niż inne dzieci w twoim wieku, a zanim będziesz weteranem, możesz być kolejnym Brianem Kernighanem, Edsgerem Dijkstrą lub Dougiem Leą!

Sugerowałbym nauczyć się programowania dla iPhone'a lub Androida i zbudować prawdziwe aplikacje.

Świetnie sobie radzisz w czymś, a kiedy tam dotrzesz, mówisz na konferencjach i piszesz artykuły, które Cię zauważą i dopracują twoje umiejętności.

Programuję od późnych lat siedemdziesiątych, a w Javie od 1996 roku. Mogę powiedzieć, że najważniejszą książką o Javie, jaką kiedykolwiek czytałem, była Gang czterech wzorców projektowych, napisany dziesięć lat przed wynalezieniem Javy. Przeczytaj i bądź świetny!

Obecnie najlepiej zarabiająca branża finansowa, ale szybko się zmienia. Wierzę, że wróci, ale nigdy nie wiadomo!

Bądź programistą i ciesz się wysokim poziomem zatrudnienia i satysfakcji z pracy!

Powodzenia, masz przed sobą wspaniałą karierę!

Victor Grazi
źródło
0

Zbuduj aplikację internetową, która działa dobrze na iPhonie i Androidzie (na razie zignoruj ​​standardowe przeglądarki) i skorzystaj z rozszerzonych funkcji HTML5 (https://developer.mozilla.org/en/HTML/HTML5), aby przezwyciężyć opóźnienia, nierówną sieć, oraz ograniczenie przeglądarek telefonicznych. Najprawdopodobniej oznacza to dostarczenie aplikacji przeglądarki javascript + html5, która łączy się z interfejsem API opartym na serwerze. (wybierz xmlrpc / json / yaml, a nie SOAP). spraw, by krzyczał szybko. Na serwerze polecam używanie Cherrypy w Linuksie (debian) na taniej VPS. Możesz dostać trochę na 123systems.com, buyvm.net (preferowane, ale często niedostępne) za mniej niż 4 USD miesięcznie. Naucz się korzystać z Pythona i używać Fabric do wdrażania swoich rzeczy na swoich serwerach. Zdobądź domenę .info na stronie namecheap.com za 2,99 USD rocznie i korzystaj z dnsmadeasy.com dla DNS (droższe, ale warto - używam ich od lat, nigdy nie miał jednego problemu), w którym można wykonać równoważenie obciążenia za pośrednictwem DNS. Ponadto nie zniechęcaj się bazami danych. Użyj sqlite i naucz się projektować tabele ręcznie za pomocą instrukcji sql. Wreszcie za pomocą jednej maszyny możesz prawdopodobnie obsłużyć 30 000 użytkowników. (2000 jednocześnie przy jednym trafieniu w serwer co 3 sekundy). Pamiętaj, aby buforować jak najwięcej w pamięci HTML5.

Jeśli to zrobisz, blogujesz o tym i piszesz o wpisach na blogu i swoich postępach, na pewno zostaniesz zauważony. To prawda, że ​​trzeba się wiele nauczyć, ale możesz to zrobić!

Christopher Mahan
źródło
-1

Jakie jest dobre miejsce, aby zwrócić uwagę na moją pracę?

Prawie w dowolnym miejscu w Internecie - jeśli napiszesz coś, o czym warto wspomnieć, na przykład narzędzie, które robi coś zgrabnego lub niepowtarzalnego, z którego duża liczba osób będzie korzystać / pobierać - to już wykonałeś większą część tego zadania. Fajne, przydatne i dostępne aplikacje, same się reklamują.

Czy są jakieś czasopisma lub publikacje przeznaczone specjalnie dla młodych programistów?

Jeśli nie publikacje, to czy są jakieś dobre blogi, czy może lepiej założyć własne?

Już tu jesteś - to tylko jedna z wielu społeczności, które z powodu pragnienia dzielenia się i bycia znanym z wiedzy - inni ludzie chętnie łączą tematy zasługi z bieżącą dyskusją.

Czy jest coś jeszcze, co pomogłoby mi zostać zauważonym jako programista?

Po prostu program ze względu na programowanie - o ile jest produktywny, kreatywny i użyteczny - zostanie powiadomiony.

Jedną kwestią, o której widzę wspomniane w innych odpowiedziach, którą też popieram, jest wkład w projekty open source. Jedynym sposobem na poprawienie kodowania jest kodowanie - i jaki jest lepszy sposób niż rozwiązywanie bieżących problemów. Ponieważ, bez problemu do rozwiązania, kodujesz na próżno ... och, jeszcze jedno, nie wspominając o zrzędliwych starych facetach, z ich rozdętymi i celowo zniechęcającymi komentarzami "młodego biczowca" - jesteś młody i entuzjastycznie, to wszystko, czego potrzebujesz.

tahwos
źródło
-1

Gdybym był tobą, przekazałbym moją wiedzę, rzucił moją pracę, mówisz, że programujesz, cwięc zacznij tworzyć programy, które są dostosowane do codziennych użytkowników Pc, twórz rzeczy jak youtube downloaderi zacznij własny dev teamhej, mam tylko 19 lat i zacząłem programować 4 lata i weź to im młody czarny facet z kaptura .... abym mógł zrozumieć pasję, jaką możesz mieć w programowaniu, ale jednocześnie programowanie może zająć dużo czasu i wysiłku, daj sobie czas na życie .. , co oznacza, że ​​cały czas siedząc przy komputerze może być stresujący dla młodego chłopca.

Youngnate DaGreat
źródło
-1

Istnieje mnóstwo miejsc, w których możesz poświęcić swoją pracę, aby zostać rozpoznanym, ale chociaż możesz rozważyć swoją pracę na najwyższym poziomie, dla niektórych może to być zwykły dzień w pracy. Kiedy miałem 16 lat, myślałem, że moja praca jest niesamowita, robię fajne rzeczy, ale tak naprawdę pracuję teraz na tych polach, a to, gdzie byłem wtedy, jest niczym w porównaniu z tym, gdzie teraz jestem, i wciąż jestem daleki od miejsca, w którym chcę być.

BrettAdamsGA
źródło
-2

Jeśli lubisz gry, spróbuj wziąć udział w Ludum Dare. Dobra gra zyska trochę rozgłosu.

Deza
źródło
-3

Jeśli chcesz zostać zauważony ORAZ zarobić trochę pieniędzy, poleciłbym tworzenie aplikacji mobilnych na iPhone'a lub Androida. Znasz już C ++, co jest świetnym początkiem. Do natywnego programowania na iPhonie potrzebujesz Objective C, a na Androida potrzebujesz Java. Oba są podobne do C ++ (Java jest łatwiejsza, ponieważ nie ma zarządzania pamięcią) i nie będzie zbyt trudna do nauczenia się. Więc nie tylko napiszesz aplikacje, które Cię zauważą i zarobisz trochę pieniędzy, ale również nauczysz się nowych języków i popularnych platform.

Alex
źródło