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).
Odpowiedzi:
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.
źródło
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.
źródło
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):
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.
źródło
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ę?
źródło
Kilka rzeczy, które możesz spróbować:
źródło
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.
źródło
źródło
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:
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ść.
źródło
Jedna odpowiedź, której jeszcze nie przeczytałem: Google Summer of Code.
Ze strony :
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 .
źródło
Z mojego punktu widzenia są ludzie, którzy programują.
Definicje:
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.
źródło
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.
źródło
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ń).
źródło
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.
źródło
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ę!
źródło
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ć!
źródło
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ą.
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ą.
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.
źródło
Gdybym był tobą, przekazałbym moją wiedzę, rzucił moją pracę, mówisz, że programujesz,
c
więc zacznij tworzyć programy, które są dostosowane do codziennych użytkowników Pc, twórz rzeczy jakyoutube downloader
i zacznij własnydev team
hej, 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.źródło
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ć.
źródło
Jeśli lubisz gry, spróbuj wziąć udział w Ludum Dare. Dobra gra zyska trochę rozgłosu.
źródło
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.
źródło