Zakładanie prawdziwej firmy, szczególnie tak wcześnie, nie jest dla każdego. To po prostu częściej nie wychodzi niż wychodzi.
Można założyć działalność gospodarczą i robić za kontraktowca, ale to też nie musi być za dobre na początek. Trzeba co miesiąc płacić ZUS-y nawet jeśli nic się nie zarobiło (choć na początku państwo daje promocję i płaci się sporo mniej).
Wg mnie są trzy-cztery opcje.
-
Pójście do kiepskiej firmy, w której przyjmują nawet ludzi bez doświadczenia. Comarch to jeden ze sztandarowych przykładów. Ludzie, którzy tam idą, jeszcze się cieszą, bo zostali zaakceptowani przez dużą i znaną firmę. Tak naprawdę, Comarch zatrudnia wielu niewykwalifikowanych ludzi będących jeszcze bardzo kiepskimi programistami. Jednocześnie, Comarch niezbyt dobrze uczy. Mówię to na podstawie opinii kilku znajomych. Znam sytuacje, w których ktoś w Comarchu dobrze trafił, awansował i nawet nieźle na tym wyszedł, ale takie sytuacje są w ogromnej mniejszości. Takich firm jest oczywiście więcej. Plus taki, że dają jakieś doświadczenie do wpisania w CV.
-
Open Source / Projekty dla siebie. To może być olbrzymi, olbrzymi plus. Ruch Open Source całkiem nieźle pomaga podnieść swoje kwalifikacje. Umożliwia tworzenie sporych, przydatnych projektów we współpracy z innymi programistami. Można też stworzyć coś dla siebie, a dopiero potem otworzyć kod (lub nie). Efekt jest taki, że przynajmniej mamy na koncie konkretną aplikację. A jeśli będziemy dobrzy, to efekt może być kosmicznie rewelacyjny: stworzymy projekt, który po latach rozwinie się w jakąś znaną i całkiem szeroko używaną bibliotekę lub aplikację.
Przykłady: biblioteka jQuery. Na początku nie była tak dopieszczona, ale John Resig miał pomysł, był niezły i stawał się coraz lepszy -- a teraz to najpopularniejsza biblioteka do JavaScriptu, a Resig pracuje dla Mozilli. Inny przykład: SubEdit Player. O ile kojarzę, został stworzony przez jednego autora. Teraz zrobiło się z tym bagno, ale program był popularny i rozpoznawalby i byłby doskonałym wpisem do CV dla kodera desktopowego. Programiści gier mogą zaś zabrać się za tworzenie modów. Przykładów modów, które stały się niemal osobnymi grami, jest sporo (np. CPMA do starego Quake'a 3).
- Zlecenia. Są strony skupiające ludzi, którzy robią programy na zlecenia. Z dochodami z tego jest różnie, projekty bywają lipne. Ale możesz to robić nawet z niewielką częstotliwością, np. 1-2 małe projekty na miesiąc, równolegle ze studiami. I potem będziesz mógł wpisać w CV: "2011-2012: Tworzenie aplikacji w języku X w ramach freelancingu".
Niektóre z takich serwisów pozwalają na zdobycie swoistych punktów doświadczenia -- czegoś w rodzaju komentarzy na Allegro. Na początku tego nie masz, więc bierzesz się za kiepskie zlecenia. Potem to masz i bierzesz się za coraz lepsze.
To może się wydawać głupie/bagniaste, ale takie NIE jest. Znajomy pracował po studiach jako freelancer, trafił w końcu na pewien serwis i za którymś razem zdobył klienta, który do tej pory podsuwa mu ciągle mnóstwo nieźle płatnych zleceń i to w takich ilościach, że znajomy stopniowo... założył firmę, otworzył biuro i zatrudnia kilku programistów.
- To jest punkt szczególnie niedoceniany, a bardzo skuteczny: pisanie bardzo porządnych, oryginalnych aplikacji zamiast zwykłego CV i LM ("aplikacja" od aplikowania na stanowisko pracy, a nie od "program" ;) ).
To dokładne przeciwieństwo aplikowania do firm metodą shotgunową, tj. wysyłania 100 dennych aplikacji do 100 firm. To ostatnie jest bardzo nieskuteczne. To, co ja tu proponuję, jest ekstremalnie skuteczne i ANI RAZU nie słyszałem, by metoda ta zawiodła, tj. nie doprowadziła do zaproszenia na rozmowę kwalifikacyjną.
Musisz poświęcić dzień czy dwa na stworzenie aplikacji do danej konkretnej firmy. W mojej branży webowej było to dość proste. Wszedłem na stronę firmową, zobaczyłem kod frontendowy. Zobaczyłem, że jest niezły, ale że ja zrobiłbym go wyraźnie lepiej (często jest tak, że "szewc chodzi bez butów", tj. agencja interaktywna najmniej czasu poświęca na update swojej własnej strony firmowej). W jeden dzień zakodowałem tak samo wyglądającą stronę, tylko używając nieco lepszego kodu i nawet wstawiając parę zupełnie odjechanych technik (np. bardzo rzadko spotykanego, elastycznego sposobu wymiarowania). Oczywiście, zostałem zaproszony na rozmowę. Znajomemu grafikowi też brakowało kiedyś wpisów w rubryce "doświadczenie" i jego CV stosunkowo często pozostawały bez odpowiedzi. Nie siedział na tyłku, tylko codziennie robił jakieś designy -- od efektywnie wyglądających art-worków, po edycję obrazków (np. słynne photoshopowanie modelek żeby nie wyglądały już jak kobiety, tylko jak znane z reklam plastikowe lalki) czy projekty layoutów. Aplikując do jakiejś firmy, dołączał kilka najlepszych swoich "demek" i jeszcze poświęcał kilka godzin na dorzucenie jakiegoś artworka zawierającego np. logo firmy, do której aplikował (np. robił z tego banner reklamowy). Natychmiast zaczął uzyskiwać praktycznie 100% skuteczność jeśli chodzi o bycie zaproszonym na rozmowę.
A na rozmowie to już zaczyna się liczyć to, co umiesz, a nie jakieś tam doświadczenie.
W dobrych firmach, programista przechodzi rekrutację techniczną, często wieloetapową. Tam możesz wręcz bardzo umocnić swoją pozycję. Możesz niby nie mieć doświadczenia, ale pokazać takie umiejętności i cechy, że wynegocjujesz sobie całkiem niezłe warunki.
Zauważ jednak, że aby mieć te umiejętności, musisz bardzo dużo pracować samodzielnie. Poza studiami, bo na studiach umiejętności programistycznych nie zdobędziesz. Wkręć się w blogi, znajdź najlepszych autorów i pochłaniaj niemal wszystko co piszą. Jak się już wkręcisz i znasz najlepszych ludzi z branży, to możesz wybrać najlepsze źródła do nauki. Bo różnice pomiędzy np. słabą a dobrą książką mogą być ogromne. Jak ja idę do księgarni to patrzę na to, z czym kojarzy mi się autor danej książki. Rzadko kiedy mnie to zawodzi. Praktycznie nie trafiam na gnioty. Ostatnio tylko mało brakowało, a zrezygnowałbym z kupna dobrej książki, bo nie znałem autorów. I tak ją kupiłem i dopiero czytając Podziękowania zauważyłem, że przy książce porad udzielało przeszło 20 autorów, z czego [w tym momencie liczę] 17 należało do zupełnej, bardzo dobrze mi znanej czołówki. Orientując się w społeczności związanej z danym językiem programowania czy biblioteką, zapewniasz sobie dostęp do najlepszych źródeł i odrzucasz te kiepskie, a to bardzo pomaga się ulepszyć.