Jak wyróżnić się jako młodszy programista, aby uzyskać pierwszą pracę programisty?

Nie można zaprzeczyć, że oczekiwania dewelopera są obecnie znacznie wyższe niż 10 lat temu. Istnieje wiele różnych języków, różnych baz danych, różnych ram, ciągłej integracji lub dostarczania, zwinnych metodologii i tak dalej. Więc jeśli chcesz zostać programistą, jak wyróżniasz się z tłumu, aby zdobyć swoją pierwszą rolę Junior Developer w niesamowitej firmie?

W tym poście na blogu opowiem o moich doświadczeniach, dzięki którym wyróżniłem się z tłumu, aby uzyskać 3 oferty pracy, tydzień po ukończeniu Makers Academy. Jeśli uczysz się, jak kodować i nie chcesz przechodzić przez bootcamp (bo bądźmy szczerzy, może to być dość kosztowne), myślę, że ten post może ci się bardzo przydać, ponieważ czasami nie wiesz, co oczekuje się od ciebie w pierwszej roli, w wyniku czego nie wiesz od czego zacząć. Zanim zaczniemy, pełne ujawnienie, obawiam się, że niektóre porady tutaj (jak tylko niewielka sekcja) dotyczą programowania backendów, ale wierzę, że ten blog będzie nadal przydatny, nawet jeśli jesteś zainteresowany rozwojem frontendu.

OK, zacznijmy!

Czy jest jakaś lista rzeczy, które powinienem wiedzieć?
Wymienię tutaj wszystkie rzeczy, które moim zdaniem powinny być dla Ciebie wygodne, zanim zaczniesz ubiegać się o pierwszą rolę, a jeśli już je przybiłeś, nie zawracaj sobie głowy czytaniem tego postu na blogu i wyślij swoje CV do firmy, w której chcesz pracować - jak teraz!

Później omówię bardziej szczegółowo każdy z elementów na tej liście. Oto on:
- Kontrola wersji, szczególnie efektywne wykorzystanie Github (lub podobnych platform).
- Pewność siebie przy tworzeniu aplikacji przynajmniej w jednym języku (np. Ruby lub JavaScript) - nie próbuj wszystkiego się uczyć, ucz się jednej rzeczy i ucz się dobrze.
- Twórz aplikacje przy użyciu TDD (programowanie testowe).
- Ramy Embrace.
- Zrozumienie zwinnych metodologii.
- Wiedza, jak przeszukiwać morze informacji w Internecie i kiedy poprosić o pomoc.
- Brak pełnego zaufania do każdej biblioteki lub bazy kodu, którą widzisz.
- ZBUDUJ takie rzeczy jak CAŁY CZAS. Z kursów i książek online można się wiele nauczyć. Eksperyment do zrozumienia.

1- Kontrola wersji

Chodzi tutaj przede wszystkim o to, abyś Ty i Twój zespół mogli pracować nad bazą kodu bez zmiany obecnego stanu twojej aplikacji. Mówiąc najprościej, masz wzorzec, który prawdopodobnie jest w produkcji, a następnie możesz rozgałęzić się od wzorca i zastosować zmiany, a następnie scalić je ponownie, gdy wszyscy będą zadowoleni z twojego kodu. Myślę, że przewodnik GitHub jest prawdopodobnie dobrym miejscem do rozpoczęcia, jeśli nigdy wcześniej nie używałeś kontroli wersji: https://guides.github.com/, a także kursu git codecademy: https://www.codecademy.com/learn/learn- git

Jeśli znasz GitHub, dowiedz się, jak z niego korzystać (lub podobnej platformy) tak efektywnie, jak to możliwe, na przykład jak zmieniać komunikaty zatwierdzania, kiedy chcesz, lub usuwać zatwierdzenia lub jeśli zauważysz błąd nie było tego wcześniej, jak przeprowadzić dochodzenie w sprawie tego, które zatwierdzenie potencjalnie złamało Twój kod i tak dalej.

2- Pewność siebie w tworzeniu aplikacji przynajmniej w jednym języku
Kiedy zaczynałem przechodzić na programistę, chciałem się wszystkiego nauczyć. Chciałem opanować Ruby, JavaScript, Elixir, React, Node i czytałem książki i patrzyłem na kursy online jak szalony człowiek. I przyszedł moment, kiedy wiedziałem wszystkiego po trochu, ale nie byłem pewien, czy zbuduję aplikację od zera w dowolnym frameworku lub języku, którego się nauczyłem. Postanowiłem więc zrobić jedną rzecz i zrobić to dobrze. Zdecydowałem się opanować Ruby i dobrze to rozumiem. Czytam takie książki, jak Practical Object Oriented Design in Ruby Sandi Metz, Well Grounded Rubyist Davida A. Blacka i Eloquent Ruby (Addison-Wesley Professional Ruby Series). Zapisałem się również na świetny kurs online na temat Ruby on Rails (framework dla Ruby) oraz Ruby od Thoughtbot, który poprawił moją wiedzę na temat Ruby i programowania aplikacji Rails przy użyciu TDD. Dopiero po roku zaczynam odkrywać inne języki, takie jak Python. Sądzę więc, że moją sugestią byłoby zacząć od języka, który wybacza, a także ma dobrą społeczność wspierającą, taką jak Ruby. Dzięki Ruby możesz zrozumieć, jak działają języki zorientowane obiektowo, a następnie możesz być może przejść do nieco bardziej skomplikowanego języka, takiego jak JavaScript. I oczywiście, jeśli chcesz zacząć od innego języka, zdecydowanie wybierz go - twoim głównym na wynos z tej sekcji powinno być nauczenie się jednej rzeczy i nauczenie się jej dobrze.

3- Buduj aplikacje za pomocą TDD
Jeśli czytasz moje poprzednie posty na blogu, prawdopodobnie zauważysz, że mam obsesję na punkcie TDD. Czym jest TDD i co czyni go magicznym i dlaczego musisz o tym wiedzieć, aby znaleźć pracę?

TDD jest programowaniem opartym na testach i, jak sama nazwa wskazuje, piszesz test dla kodu, który chcesz mieć, a następnie widzisz, że test się nie powiódł, piszesz kod i zdajesz test. Jest kilka powodów, dla których jest to bardzo pomocne, gdy dopiero zaczynasz jako programista:

- Pomaga przy projektowaniu kodu. Czasami, gdy zaczynasz pisać testy dotyczące tego, jak początkowo planowałeś swoją aplikację, możesz zdać sobie sprawę, że może to nie być najlepszy sposób na zmianę projektu.
- Pomaga pisać czysty i refaktowalny kod. Twój kod jest testowalny od samego początku, a kiedy testujesz sekcje krok po kroku, budujesz aplikację w zarządzalnych porcjach zamiast w ogromnej porcji za jednym razem. Możesz również zmienić kod bez obawy o uszkodzenie aplikacji.

Jeśli korzystasz z Ruby, kurs Thoughbot, o którym wspomniałem w poprzedniej sekcji, powinien pomóc Ci zacząć korzystać z TDD :) W przeciwnym razie, jeśli szukasz sposobu TDD w języku, który Cię interesuje, jestem pewien, że znajdziesz wiele zasobów.

Jest to ważne, aby przejść nogę do drzwi do pierwszej pracy, ponieważ TDD jest powszechnie akceptowaną praktyką w społeczności technologicznej. Nie jest to łatwe do opanowania, więc rozpoczęcie od początku i zrozumienie, dlaczego jest to dobre, oraz w jaki sposób pomaga ci rozwinąć aplikację, będzie korzystne.

4- Ramy Embrace
Kiedy początkowo zaczynasz budować aplikacje w języku, którego się dopiero uczysz, może być dość trudne dowiedzieć się, jak połączyć kropki, aby mieć funkcjonalną aplikację. I nadchodzą ramy!

Frameworki takie jak Ruby on Rails (Ruby), Django (Python), Meteor (JavaScript) pomagają programistom szybciej tworzyć aplikacje, ponieważ nie muszą zajmować się konfigurowaniem i konfigurowaniem. Co to oznacza dla juniora? Oznacza to, że nie musisz spędzać wieków, próbując dowiedzieć się, jak skonfigurować serwer, trasy lub bazę danych. Wszystkie te frameworki ci w tym pomogą i od razu zaczniesz, dzięki czemu możesz skupić się na budowaniu! Gdy zbudujesz wystarczającą liczbę aplikacji, zaczniesz rozumieć, dlaczego frameworki są skonfigurowane tak, jak są i prawdopodobnie przystąpisz do budowania aplikacji bez pomocy frameworków :)

5- Zrozumienie zwinnych metodologii
O czym jest tak zwinny, o którym ciągle mówię? Słownik oznacza, że ​​jest w stanie zrobić coś szybko i wyraźnie. Czym jest zwinne tworzenie oprogramowania? Prawdopodobnie zgadłeś; szybkie tworzenie aplikacji z wyraźną informacją zwrotną. Przed wprowadzeniem zwinnego rozwoju firmy były „wodospadem”, który tworzy aplikację, dopóki nie będzie idealna, wypuści ją na świat i potencjalnie zda sobie sprawę, że nikt nie chce z niej korzystać. Zwinny pomaga przezwyciężyć ten problem i opiera swoją teorię na MVP (minimalnym możliwym do zrealizowania produkcie). Budujesz aplikację tak prosto, jak to możliwe, wypuszczasz ją na świat, uzyskujesz informacje zwrotne, a następnie ulepszasz ją lub zmieniasz. Nie spędzasz więc wszystkich zasobów i czasu na aplikacji, której ludzie nie potrzebują lub nie chcą.

przez http://alphatechglobal.com/agile_development.html

Dla zespołów technicznych opracowano kilka zwinnych metodologii, które pomagają w tworzeniu zwinnego oprogramowania. Nie zamierzam wdawać się w szczegóły na ten temat, ale oto dobra lektura na temat niektórych metodologii i tego, czym jest Agile: http://agilemethodology.org/

6- Umiejętność przeszukiwania Internetu i kiedy poprosić o pomoc
Kiedy zaczynałem programować, chciałem rozwiązać wszystkie wyzwania, z którymi się spotkałem. Nie trzeba mówić, że to nie jest świetne. Dostajesz wizję w tunelu i demotywację. Gdy napotkasz problem, którego nie możesz rozwiązać, poszukaj rozwiązań w Internecie, spróbuj samemu rozwiązać ten problem przez maksymalnie godzinę lub dwie. A potem zapytaj kogoś, czy to przyjaciel, czy też przez post w miejscu takim jak Stack Overflow - uzyskaj pomoc. Jest całkiem prawdopodobne, że brakuje czegoś małego, np. Średnika. Oczywiście może to być bardziej skomplikowane, ale nie bój się prosić o pomoc. Wszyscy stają przed tymi samymi wyzwaniami, a społeczność technologiczna chętnie pomaga.

Wspomniałem o tym, jak wyszukiwać w Internecie, więc jak to jest istotne? To trochę ważne. Jeśli nie zadajesz właściwych pytań, nie uzyskasz właściwych odpowiedzi. Wiedza o co zwykle pyta się zwykle o aplikacje budowlane. Im więcej budujesz i im więcej rozumiesz, tym lepiej będziesz szukać rozwiązań w Internecie. Jest to bardzo ważne dla potencjalnego pracodawcy. Nie chcą zatrudniać kogoś, kto będzie musiał cały czas siedzieć i odpowiadać na łyżki. Oczywiście pomogą ci, gdy utkniesz w martwym punkcie, ale musisz wykazać inicjatywę i wyjaśnić, czego próbowałeś wcześniej i czego szukałeś, aby ułatwić ten proces. Bądź pewny, szukając rozwiązań.

7- Nie mając pełnego zaufania do każdej biblioteki lub bazy kodu, którą widzisz
Z czymkolwiek, czego dopiero zaczynasz się uczyć, zwykle ufasz wszystkim używanym zasobom. Cóż, nie powinieneś. Wszyscy jesteśmy ludźmi i nikt nie jest doskonały. Natknąłem się na wiele bibliotek lub aplikacji, które nie zostały napisane tak dobrze, jak mogłyby być, i wkrótce zdałem sobie sprawę, że najlepiej jest czytać, badać i eksperymentować, aby znaleźć dobry i czysty kod. Dlaczego to jest ważne? Nie chcesz ufać firmie zewnętrznej, która ma 500 zależności, lub napisanej w 100 liniach, gdy możesz zrobić to samo bardziej efektywnie w 10. Pomyśl, jak ten kod może wpłynąć na twoją aplikację - może to spowolnić, to może to zepsuć, może nie być bezpieczne. Nie ufaj każdemu fragmentowi kodu ani bibliotece, które tam widzisz. Udostępnianie kodu w Internecie lub tworzenie biblioteki nic nie kosztuje.

8- Buduj rzeczy przez cały czas
Jak już wspomniałem, tak wiele można nauczyć się czytając książki, przechodząc przez kursy online, a nawet biorąc udział w warsztatach. Musisz ubrudzić sobie ręce. Nie bój się tworzyć aplikacji, z których nikt nie będzie korzystał. Skorzystaj z nich, aby dowiedzieć się, jak to działa. Nawet jeśli nie skończysz aplikacji, pomyśl o rzeczach, których nauczyłeś się wcześniej. Każda niewielka wiedza zdobyta podczas eksperymentowania jest ogromnym zyskiem w stosunku do Twojej pierwszej roli programisty.

Ostatnia uwaga
Chciałem zakończyć ten post na blogu świetnymi radami mojego niesamowitego mentora, Stephena Besta:

„Nie martw się o to, jak doświadczeni ludzie zbudują aplikację. Skoncentruj się na tym, jak go zbudujesz, a następnie uzyskaj informacje zwrotne. Zużyj mniej i produkuj więcej. ”

Dziękujemy za poświęcenie czasu na czytanie! Jeśli uważasz, że było to dla Ciebie pomocne, udostępnij ten post na blogu osobom, które mogą skorzystać :)