Jak zostać programistą: 8 Steps to Building an App from Scratch

Intro

„Jaki jest najlepszy sposób, aby nauczyć się kodować?”

„Jak zostać programistą”

„Jak zbudować aplikację”

To są częste pytania zadawane codziennie przez początkujących, którzy są chętni, aby nauczyć się kodować. Bez wątpienia już wygooglowałeś coś wzdłuż tych linii i przeczytałeś wystarczająco dużo artykułów/odpowiedzi do punktu, w którym jesteś chory od „standardowych” porad.

Jeśli nie masz, lub jeśli w jakiś sposób myślisz, że mam coś nowego do powiedzenia i chcesz to usłyszeć w każdym razie (nie mam), oto krótka i całkiem bezcelowa odpowiedź (dam jej przyjazną SEO nazwę click-bait: „3 Steps to Becoming a Programmer”):

Step 1: Pick a Language

Step 2: Learn the Language

Step 3: Build Stuff and Keep Learning

Hej, nie rzucaj we mnie butami. Tak bardzo jak chciałbym powiedzieć, że istnieje jedna uniwersalna metoda nauki kodowania, tak naprawdę nie istnieje. (Pozwól mi dodać Krok 0: zaakceptuj, że każdy uczy się inaczej).

Niezliczone bardziej szczegółowe odpowiedzi rozwijające kroki 1 & 2 już istnieją w sieci, ale powszechną odpowiedzią na krok pierwszy jest nauka Pythona lub Ruby jako pierwszego języka (nie daj się zbytnio zawiesić na języku, nigdy nie zaczniesz). Jeśli potrzebujesz zasobów do nauki, stworzyliśmy kilka przewodników, które możesz sprawdzić:

  • Ucz się Pythona
  • Ucz się Ruby on Rails
  • Naucz się JavaScript (Zawsze ucz się JavaScript przed nauką frameworków takich jak AngularJS lub React)
  • Learn iOS Development
  • Learn Android Development

Several of you’d get to this point:

Jeśli masz ten moment, w którym stałeś się zagubioną owieczką, nie wariuj, ponieważ nie jesteś sam.

Pretty much every time you ask „how do I become a programmer”, developers will tell you to build stuff, as building things is how you can improve as a programmer and it’s the best way to learn, etcetera etcetera.

But how do you build your own app?

Zawsze możesz podążać za istniejącymi tutorialami, jak zbudować klon Twittera/Pinteresta/Instagrama/etc z jakimkolwiek językiem & technologii, której używasz, ale pamiętaj, że autorzy tych tutoriali faktycznie wykonali większość pracy za Ciebie, a wszystko co robisz to zrozumienie kodu i ich logiki.

Ten artykuł będzie próbą dostarczenia ci zarysu, który możesz śledzić podczas budowania własnej aplikacji od podstaw.

Wymagania wstępne

Większość aplikacji potrzebuje bazy danych, więc jeśli zamierzasz budować własną aplikację samodzielnie (ergo front i back end), prawdopodobnie będziesz musiał znać język zapytań do bazy danych (zazwyczaj SQL). Chyba że budujesz coś, co nie musi wchodzić w interakcję z bazą danych, jak Flappy Bird, na przykład.

Co więcej, jeśli chcesz zbudować aplikację internetową, będziesz musiał znać podstawy DevOps, aby móc skonfigurować środowisko programistyczne/serwer i być w stanie faktycznie uruchomić aplikację.

Jeśli Twoim celem jest bycie front-end web developerem, możesz doskonalić swoje umiejętności HTML, CSS i JavaScript w Codepen lub JSfiddle. Jeśli znasz tylko JavaScript i nie chcesz uczyć się innego języka, możesz spróbować Node.js, ponieważ jest to platforma JavaScript dla rozwoju back-end (Możesz również użyć MongoDB jako bazy danych, ponieważ jest ona również oparta na JavaScript.)

W przeciwnym razie powinieneś również znać jeden z następujących języków (i zazwyczaj ramy internetowe), jeśli zamierzasz zbudować kompletną aplikację internetową:

  • Ruby
  • Python
  • PHP
  • Java
  • Go
  • C#

Jeśli szukasz do tworzenia gier, to możesz rozważyć naukę Lua, chociaż C# jest również bardzo dobrym wyborem dzięki silnikowi gier Unity 3D i jego ogromnej społeczności. Jeśli chodzi o natywne tworzenie aplikacji mobilnych, będziesz musiał znać Swift/Objective-C dla rozwoju iOS i Javę dla rozwoju Android.

Bez dalszych ceregieli, przejdźmy do tego, jak zbudować aplikację od podstaw.

Krok 0: Zrozum siebie

Przede wszystkim, zbuduj coś, co jest twoją pasją. Zainteresowanie jest najlepszym sposobem na utrzymanie motywacji, więc zadaj sobie pytanie, co cię interesuje lub co lubisz robić.

Na przykład:

  • Jakie aplikacje lubisz używać najbardziej?
  • Bez jakich aplikacji nie możesz żyć?
  • Czy lubisz grać w gry?
  • Czy lubisz projektować rzeczy?
  • Etc.

Zidentyfikuj swoje zainteresowania, abyś pracował nad czymś, co sprawia Ci przyjemność. This way, you are less likely to fizzle out and give up halfway.

Step 1: Pick an Idea

Now that you’ve hopefully figured yourself out, it’s time to pick an idea to build. Zacznij prosto.

Tak…nawet jeśli myślisz o budowaniu gry, teraz nie powinieneś myśleć o budowaniu następnego CounterStrike’a, ale zamiast tego powinieneś myśleć o tym, jak budować gry tak proste jak niesławny Flappy Bird. Hej, nie patrz z góry na Flappy Bird─ to była sensacja, która sprawiła, że ludzie na całym świecie odkryli swojego wewnętrznego masochistę. Ale I digress.

Więc, w oparciu o swoje zainteresowania, wymyśl pomysł na prostą aplikację, która zrobi coś schludnego. Nie ma znaczenia, czy aplikacja już istnieje (w rzeczywistości może ci pomóc, jeśli podobne projekty już istnieją).

Oto kilka wskazówek, które pomogą ci znaleźć inspirację:

  • Jeśli lubisz gotować, może możesz pomyśleć o zbudowaniu aplikacji dla ludzi, aby pokazać swoje domowe przepisy.
  • Jeśli zawsze chciałeś wiedzieć, jak działa Twitter, spróbuj zbudować super prosty klon Twittera.
  • Jeśli jesteś zapominalską osobą, która polega na menedżerach zadań, spróbuj zbudować jeden sam.
  • Jeśli jesteś uzależniony od League of Legends, możesz spróbować przejrzeć API Riotu i zbudować stronę, która może uzyskać & wyświetlanie informacji o grze.
  • Jeśli lubisz grać w gry karciane, spróbuj zbudować prostą (np. Black Jack)
  • Jeśli jesteś na diecie, spróbuj zbudować aplikację, która będzie rejestrować spożycie kalorii.

I tak dalej, i tak dalej. Oto lista pomysłów na projekt, jeśli potrzebujesz więcej inspiracji.

Gdy masz już kierunek, zapisz w jednym zdaniu cel, a także, jeśli ma to zastosowanie, najważniejszych użytkowników docelowych dla tej aplikacji.

Na przykład: Aplikacja do adopcji zwierząt domowych dla ludzi, którzy odbierają bezpańskie zwierzęta.

Krok 2: Zdefiniuj podstawowe funkcjonalności

Pomyśl o tym, co twoja aplikacja powinna być w stanie zrobić i wypisz je. Jeśli skończysz wymieniając kilka rzeczy, przyjrzyj się lepiej i zadaj sobie pytanie, czy ta aplikacja NAPRAWDĘ potrzebuje, na przykład, logowania na Facebooku do pracy? Czy naprawdę musi przesyłać dane do jakiejś chmury, aby działać?

Wspaniale jest mieć projekt marzeń z niesamowitą specyfikacją, ale teraz nie chodzi o to, aby zbudować coś, co jest kompletne z mnóstwem fajnych funkcji. Pamiętaj, że żadna aplikacja nigdy nie jest kompletna, a wszystko zaczyna się od prostych rzeczy.

Nigdy nie próbuj budować aplikacji typu „wszystko w jednym”. Nie idź tam. Widziałem, jak to się dzieje nawet w środowisku zawodowym, a rezultatem jest dużo bólu i mały postęp.

Bez żelaznej woli lub naprawdę kochasz wyzwania, po prostu skończysz sfrustrowany i zniechęcony, jeśli twój pierwszy projekt jest zbyt trudny do zbudowania. Jesteś początkujący… teraz chodzi o to, żeby się dobrze bawić. Zabawa jest najbardziej efektywnym sposobem nauki.

Więc, spójrz na listę funkcji, którą zrobiłeś i jeśli jest zbyt długa, zacznij skreślać funkcjonalności, bez których twoja aplikacja może działać.

Pamiętaj, to jest twoja wersja 1 i powinieneś po prostu zachować prostotę. Skup się na rzeczach, które pozwolą aplikacji wykonać to, co ma zrobić – wszystko inne może być pozostawione dla innego projektu.

Aby zobaczyć przykładową listę podstawowych funkcji dla klonu Reddita:

  • użytkownicy mogą tworzyć konta
  • użytkownicy mogą odzyskiwać utracone hasła
  • użytkownicy mogą zmieniać swoje hasła
  • użytkownicy mogą publikować nowe linki
  • użytkownicy mogą komentować linki
  • użytkownicy mogą głosować w górę/ w dół
  • użytkownicy mają profil pokazujący ich historię/aktywność

Właściwości wymienione powyżej są podstawowymi funkcjonalnościami, na których powinieneś się skupić w pierwszej kolejności. Inne funkcje takie jak:

  • użytkownicy mogą dzielić się na media społecznościowe
  • użytkownicy mogą usuwać komentarze
  • użytkownicy mogą edytować komentarze
  • użytkownicy mogą usuwać własne konto

Są drugorzędne i mogą być zachowane dla wersji 1.x-only work on these after you can actually launch version 1.0

Step 3: Sketch Your App

CC License

Nothing is quicker than a pen & paper. Do tej pory powinieneś mieć już całkiem solidne pojęcie o tym, co Twoja aplikacja powinna robić, więc naszkicuj szkielet UI (interfejsu użytkownika) swojej aplikacji. Gdzie przyciski powinny być zlokalizowane, jaki jest cel tego przycisku, i tak dalej.

Zapisz notatki i flesh out jak aplikacja powinna działać. Nadal jesteś w fazie burzy mózgów, więc zmienić rzeczy wokół, aż jesteś nieco zadowolony z nim.

Pamiętaj, zachować rzeczy proste. Jeśli skróciłeś swoją listę z kroku 2, trzymaj się tylko funkcji szkicowania wymienionych tam – nie daj się ponieść. Jeśli nie możesz się powstrzymać, to naszkicuj 2 wersje: wersję podstawową i ostateczną wersję w twoich marzeniach.

W sumie, to nie jest ostateczny wygląd, ale raczej tylko krok, który pomoże ci uzyskać pewniejszy chwyt twojej aplikacji.

Krok 4: Zaplanuj przepływ UI twojej aplikacji

Wszystko w porządku. Masz dobry pomysł na to, jak będzie wyglądać Twoja aplikacja, co każdy element powinien robić i jak użytkownicy mogą wchodzić w interakcję z Twoją aplikacją. Teraz nadszedł czas, aby wymyślić przepływ UI Twojej aplikacji. To znaczy, jak użytkownik powinien korzystać z aplikacji od początku do końca. Rozrysuj każdy krok, który musi wykonać i każdy scenariusz, który może napotkać. Spróbuj rozważyć każdy przypadek użycia.

(CC License)

Włącz wszystkie działania, które użytkownik może podjąć w diagramie przepływu. Na przykład, jeśli Twoja aplikacja wymaga od użytkowników zalogowania się, w jaki sposób tworzą oni konto? Co jeśli użytkownicy zapomnieli hasła? Co jeśli wprowadzą błędne hasło? Co użytkownik powinien być w stanie zrobić na każdym interfejsie (dodaj nowy element listy > zapisz; edytuj > zapisz / usuń)? I tak dalej, i tak dalej. Najszybciej można to zrobić za pomocą długopisu i papieru.

Ponownie, ponieważ twoja aplikacja powinna być dość prosta, twój diagram nie powinien być zbyt masywny.

Krok 5: Projektowanie bazy danych

Wszystko w porządku! Po zaplanowaniu każdego możliwego scenariusza, spójrz na niego, aby określić, jakiego rodzaju dane będziesz musiał przechowywać. Na przykład, jeśli twoja aplikacja wymaga od użytkowników utworzenia konta, będziesz musiał śledzić takie rzeczy jak nazwa użytkownika, ID użytkownika, e-mail użytkownika, hasło, czy e-mail użytkownika jest potwierdzony, kiedy konto zostało utworzone, jak również za każdym razem, gdy użytkownik zalogował się do twojej aplikacji.

Jeśli budujesz klon Twittera, musisz znać identyfikator tweeta, treść tweeta, kiedy tweet został opublikowany / retweeted, ile retweetów ma, i ile gwiazdek ma. Musisz również prowadzić rejestr retweetów i gwiazdek użytkownika.

Możesz narysować diagram ERM (Entity-Relationship Model), aby odwzorować relacje danych.

Przykład diagramu Entity-Relationship witryny wyboru kursu CC License

Dodatkowo, jeśli masz zaplanowane jakiekolwiek przyszłe funkcje, jest to czas, aby zaplanować je w swojej bazie danych. Oto miły artykuł do sprawdzenia podczas projektowania bazy danych.

Advanced

Jeśli aplikacja, którą planujesz, ma wchodzić w interakcję z serwerem (np. jeśli budujesz aplikację webową fullstack) lub jeśli twoja aplikacja ma wchodzić w interakcję z API (np. próbujesz uzyskać informacje z Yahoo! Weather ), wtedy prawdopodobnie dobrym pomysłem jest narysowanie diagramu sekwencji, aby mieć lepsze wyobrażenie o tym, jak procesy powinny działać.

Z Wikipedii

Krok 6: UX Wireframes

Okay, masz zaplanowany back-end. Teraz nadszedł czas, aby zaplanować front-end.

Miejmy nadzieję, że nadal jesteś tak samo podekscytowany, jak te sługusy powyżej. Wiesz, czego potrzebujesz – teraz masz o wiele lepszy pomysł na to, jak powinna wyglądać twoja aplikacja.

licencjaCC

Ponieważ ludzie są w większości stworzeniami wizualnymi, miałbyś lepszy czas na zrozumienie tego, co powinieneś zrobić, gdybyś miał wizualizację każdego widoku, który będziesz kodował. Jednakże, jeśli jesteś taki jak ja i twój rysunek jest tak niechlujny, że ledwo możesz zrozumieć ten niejasny kawałek… dzieła sztuki… który stworzyłeś, to naturalnie nierozsądne jest kontynuowanie tego kroku poprzez nadużywanie twoich biednych artystycznych mózgów.

Na szczęście, istnieje wiele narzędzi do tworzenia makiet i mockupów online, które pomogą ci zaplanować przepływ UX/UI (np. Gliffy, Mockflow, Framebox, Wireframe.cc, Invisionapp).

Krok 6.5 (opcjonalnie): Design the UI

To jest opcjonalny krok, ale jeśli zamierzasz specjalizować się w rozwoju front-end lub jeśli bardzo zależy ci na tym, jak twoja aplikacja będzie wyglądać do punktu, w którym ładniejsza aplikacja zmotywowałaby cię do kodowania, zdecydowanie idź naprzód i zaprojektuj aplikację, aby wszystkie te elementy UI wireframe mogły zostać zastąpione ładniej wyglądającymi.

Jeśli uwielbiasz projektować, prawdopodobnie zaprojektujesz aplikację przed rozpoczęciem i tak – być może już ją zaprojektowałeś podczas kroku 2.

Jeśli nie zajmujesz się projektowaniem, ale nadal zależy Ci na tym, jak Twoja aplikacja będzie wyglądać, rozważ użycie elementów z zestawów UI. Oto kilka zasobów dla elementów UI:
(Uwaga: wymagany Photoshop)

UI Cloud
Graphicburger
UI Dock

Dla gier:
Spriters Resource

Nie skupiaj się jednak zbytnio na wyglądzie aplikacji. Teraz powinieneś skupić się na budowaniu funkcji aplikacji zamiast tego.

Krok 7: Badanie rozwiązań

Dobrze! Skończyłeś z etapem planowania…ale jak masz to wszystko zakodować?

Ważną umiejętnością, której będziesz musiał się nauczyć jako programista, jest ocena, kiedy powinieneś użyć czegoś, co inny programista już napisał, a kiedy zbudować funkcję samodzielnie.

Ponieważ każdy buduje unikalną aplikację, nie każdy przypadek użycia jest taki sam. Musisz więc ocenić, kiedy skorzystać z istniejącego rozwiązania, a kiedy zbudować własne, a będziesz w tym coraz lepszy z doświadczeniem.

Jeśli czujesz się jak pozbawiona kierunku łódź zagubiona na rozległym oceanie, weź głęboki oddech i nie panikuj. You can do this.

As you gain more experience with researching, honing your „Google-fu”, and building things, you’ll eventually get a hang of this process.

Patrząc na rozwiązania

Przyjrzyj się wszystkim diagramom, które narysowałeś, jak również liście funkcjonalności, którą zrobiłeś w kroku 2.

Jakie są niektóre rzeczy, o których nie masz pojęcia, jak je zbudować?

Na przykład, czy użytkownicy muszą utworzyć konto? Czy Twoja aplikacja opiera się na aktualizacjach w czasie rzeczywistym? Jakich funkcji potrzebujesz?

W większości przypadków dobrym pomysłem jest po prostu użycie istniejącego rozwiązania dla dużych funkcji, takich jak obsługa synchronizacji w czasie rzeczywistym (np. Firebase), tworzenie sieci/routing (np. AFNetworking dla aplikacji iOS), uwierzytelnianie i komponenty związane z UI (np.flipboard lub pinterest-esque app).

Istnieje wiele baz danych online, w których możesz szukać komponentów/pakietów/perełek/etc związanych z backendem, ale musisz być ostrożny z oceną tego, co napisali inni ludzie – nie używaj ich na ślepo. Miejmy nadzieję, że nie będziesz teraz budował niczego zbyt złożonego, więc teraz prawdopodobnie nie będziesz potrzebował komponentów napisanych przez innych ludzi.

W każdym razie, najlepszym sposobem na rozpoczęcie jest studiowanie tego, co inni deweloperzy zrobili przed tobą i nauczenie się logiki stojącej za ich decyzjami. GitHub jest twoim najlepszym przyjacielem.

Dla rzeczywistego przykładu procesu badawczego doświadczonego dewelopera dla konkretnej funkcji, możesz sprawdzić ten post o tym, jak twórca Angular-Plunker zbudował dyrektywy przeciągania i upuszczania Plunkera.

Wybór narzędzi do rozpoczęcia pracy

Jeśli budujesz aplikację internetową, być może możesz sprawdzić Yeoman, ponieważ ma on na celu pomóc w szybkim rozpoczęciu nowych projektów poprzez pomoc w ustawieniu struktury projektu.

Jeśli budujesz aplikację React, możesz również sprawdzić zestawy startowe i istniejące implementacje Flux. HTML5Boilerplate i Bootstrap są popularnymi szablonami front-end dla twojej aplikacji. Częściej niż nie, boilerplates używają Gulp lub Grunt do zarządzania zadaniami.

Ponieważ prawdopodobnie będziesz używać niektórych istniejących komponentów lub rozwiązań, powinieneś również zainstalować bower do zarządzania zależnościami (npm dla tych, którzy używają Node.js i CocoaPods dla programistów iOS). Nie martw się – w większości przypadków te narzędzia są dostarczane z samouczkami, które nauczą cię, jak je zainstalować.

Krok 8: Budowanie aplikacji

Tak! Jesteś gotowy, aby zbudować aplikację teraz! Oto kilka wskazówek, o których należy pamiętać podczas budowania aplikacji.

Lista kontrolna

Powinieneś skupić się na budowaniu aplikacji funkcja po funkcji. Tak więc, jeśli nie jesteś skończony z jednym zadaniem, takim jak system komentarzy, nie zaczynaj nagle budować widoku profilu użytkownika. Innymi słowy, jeśli budujesz formularz, na przykład, powinieneś pracować zarówno nad kodem front-end, jak i back-end, aż funkcja zostanie ukończona.

W sumie, aby śledzić swoje postępy, możesz spisać listę funkcji do zrobienia i używać jej jako listy kontrolnej.

Napisz najpierw testy

Bez budowania aplikacji do gier, dobrym pomysłem jest napisanie testu dla swojej funkcji, zanim zaczniesz ją kodować. Błędy są nieuniknione, ale testowanie znacznie zredukuje twoje błędy i szanse na wypuszczenie zabugowanego kodu do produkcji.

Przyznaję, pisanie testów jednostkowych zajmuje trochę czasu i możesz czasem zastanawiać się, czy warto. Jeśli jednak w przyszłości zamierzasz budować większe projekty, w których będziesz dodawał nowe funkcje, może się to przydarzyć twojej aplikacji:

Then this (is an exaggeration of what) may happen:

Albo nie daj Boże:

I to byłbyś ty, próbując naprawić aplikację:

…Mniej więcej.

Więc, dobrym pomysłem jest zacząć od małego i nabrać nawyku robienia Test-Driven Development (TDD), zwłaszcza, że zaczynasz świeżo i budujesz coś prostego.

Nie jesteś teraz na jakimś terminie z widłami kierownika projektu za plecami, prawda?

W celu uzyskania wskazówek na temat wzorców testowania jednostkowego, możesz sprawdzić ten artykuł. Inną wskazówką, o której należy pamiętać, jest unikanie zbyt wielu trywialnych twierdzeń.

Wiele narzędzi testujących jest dostępnych do wyboru, takich jak Jasmine lub Karma dla JavaScript, Rspec dla Ruby, PyTest dla Pythona, PHPUnit dla PHP, Quick jako alternatywa dla xCTest dla rozwoju iOS, lub jakiekolwiek inne narzędzie, które czujesz, że będzie dla Ciebie pracować.

Dodatkowo, jeśli budujesz aplikację na iOS lub Androida, dobrym pomysłem jest sprawdzenie Crashlytics.

7 kroków do debugowania wydajnie i skutecznie

Użyj Git

Git jest systemem kontroli wersji i pełnoprawnym repozytorium z pełną historią i pełnymi możliwościami śledzenia wersji. Dobrym pomysłem jest rozpoczęcie nauki korzystania z Gita podczas budowania swojej pierwszej aplikacji. W ten sposób będziesz mógł łatwo cofnąć swoje błędy, odzyskać utracone dane i wiele więcej. Dodatkowo, jeśli planujesz w przyszłości pracować z zespołem programistów, to i tak będziesz musiał używać Gita. GitHub jest najpopularniejszą usługą hostingową repozytorium Git dla projektów open source, podczas gdy Bitbucket jest dla prywatnych repozytoriów.

Jeśli skończysz napotykając problemy podczas używania git, ten post o 10 Najczęstszych Problemach Git i Jak je Naprawić może Ci pomóc.

Jeśli utkniesz…

Jako początkujący, będziesz czuł się jak ten chomik częściej niż nie.

Nie jesteś sam. Czasami wystarczy zrobić sobie przerwę i pozwolić, aby problem ucichł, abyś mógł oczyścić umysł.

Jeśli to nadal nie działa, oto kilka sposobów na odklejenie się:

Google

Wspomniałem o Google-fu w kroku 7, ale pozwól mi podkreślić ponownie, że nauka Google jest ważną umiejętnością, którą wszyscy programiści muszą nabyć. Jeśli utkniesz na błędzie lub nie wiesz, dlaczego twój kod nie działa, dobrym pomysłem jest Google.

Zapytaj na StackOverflow

Prawdopodobnie zauważysz, że twoje wyniki google będą w większości wskazywać na pytania i odpowiedzi na StackOverflow. Jeśli nadal nie możesz znaleźć rozwiązania swojego problemu po googlowaniu swojego tyłka, to możesz spróbować umieścić pytanie na StackOverflow.

Pamiętaj, aby pokazać, że zrobiłeś swoje badania w swoim pytaniu – masz większe szanse na uzyskanie odpowiedzi w ten sposób.

Alternatywa: Find a Mentor

Niektórzy ludzie powiedzą, że StackOverflow nie jest przyjazny dla początkujących, ponieważ początkujący nie wiedzą, jak sformułować swoje pytania. Ale co jeśli nawet nie wiesz jaki jest twój problem?

Jeśli dojdziesz do granicy headdesking (lub jeśli już jesteś headdesking…), nie musisz znęcać się nad swoim czołem (jeśli uderzysz się w głowę wystarczająco mocno, stracisz komórki mózgowe).

Jedną z doskonałych alternatyw dla ułatwienia twojego rozwoju i procesu uczenia się jest uzyskanie pomocy od doświadczonego programisty. Nie musisz się czuć, jakbyś był w jakiś sposób głupi, ponieważ osoba X jest znanym ekspertem i programistą samoukiem. Ludzie po prostu uczą się inaczej, a wszyscy początkujący skorzystają z osobistych wskazówek, ponieważ możesz popełniać błędy, które nie są teraz wielkim problemem, ale w rzeczywistości są złą praktyką.

Pamiętaj, że wtedy wielu programistów samouków nie miało usług, które są teraz dostępne dla Ciebie.

Tak więc możesz uzyskać pomoc od doświadczonych programistów poprzez sesje 1:1 na żywo na Codementor, gdzie stawki mentorów zaczynają się od $15/minutę. Podczas tych sesji możesz mieć czat wideo z doświadczonym programistą i dzielić się z nim swoim ekranem/kodem, a mentor nauczy Cię, jak naprawić swój kod, jak również powie Ci, co zrobiłeś źle, abyś mógł uniknąć błędu w przyszłości. Możesz również przejrzeć kod z sesji lub nagrać sesję na swój lokalny dysk za pomocą narzędzia do czatu wideo. Zarejestruj się teraz i wypróbuj pierwsze 15 minut za darmo z mentorami oferującymi umowę.

Final Tip

Programiści popełniają błędy przez cały czas, więc nie czuj się zniechęcony, gdy nie możesz nawet zdać testu, który napisałeś, lub gdy ciągle się potykasz. Mam na myśli, pomyśl o iOS9, Android Lollipop, lub jakiejś aplikacji, którą uwielbiasz używać. Z pewnością nawet najbardziej dojrzałe aplikacje wciąż mają błędy, więc nie zakładaj, że możesz zbudować najdoskonalszą, wolną od błędów aplikację (oczywiście, nie oznacza to, że powinieneś ustawić dla siebie niskie standardy – zawsze powinieneś dążyć do budowania aplikacji wysokiej jakości).

Dodatkowo, bardzo często zdarza się, że spędzasz godziny lub nawet dni nad jedną rzeczą i nadal masz trudności, aby działała tak, jak chcesz. Gdyby szybkie programowanie nowych funkcji było łatwe, świat nie potrzebowałby nowych programistów. Do diabła, prawdopodobnie bylibyśmy teraz na bezbłędnym iOS100 i zbudowalibyśmy zdigitalizowany świat jak ten w Matrixie.

Więc, wiele razy, usłyszysz termin „popełniaj błędy”, kiedy ludzie zachęcają cię do rozpoczęcia budowania rzeczy. Oni to mają na myśli. Jedną z rzeczy, którą będziesz musiał zaakceptować jako programista, jest to, że nie będziesz maszyną do kodowania badass, która może wyczarować funkcje w mgnieniu oka. Będziesz dużo zawodzić i to jest ok.

Again, pamiętaj, że jesteś początkujący, więc wiele rzeczy będzie nieuchronnie trudne na początku. Będziesz spędzać dużo czasu na coś, co myślisz, że powinno być proste i będzie wydawać się jak trudna walka pod górę, ale jak zdobędziesz więcej doświadczenia, rzeczy staną się łatwiejsze. Oczekuj tego poczucia spełnienia, gdy w końcu uda Ci się zbudować swoją pierwszą aplikację, a nawet możesz rozważyć sprzedaż swojej aplikacji, jeśli uznasz to za stosowne.

Happy Coding!

Author Bio


Yi-Jirr Chen || Content Maketing & Operations
Twój typowy masywny geek, który gra i kocha naukę/technologię. Publikuje również fikcję pod pseudonimem, który jest pseudonimem nie bez powodu

Inne artykuły, które mogą Cię zainteresować:

  • How to Get Your First Developer Job (even if You Don’t have a CS Degree)
  • Developer Community’s 9 Tips for Coding Beginners
  • 40 Side Project Ideas for Software Engineers
  • How to Launch Your Career and Land Your First Client as a Freelance Developer

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.