Jak zostać programistą iOS w 2021 — ostateczny przewodnik

W tym artykule omówię, co moim zdaniem jest potrzebne, aby zostać programistą iOS w 2021 roku. 

Celuję w to wprost dla dwóch grup ludzi, absolutnie początkujących w języku Swift – ludzi, którzy nigdy wcześniej nie budowali niczego na iOS – i tak zwanych fałszywych początkujących – ludzi, którzy próbowali wcześniej nauczyć się języka Swift, ale nigdy tak naprawdę nie osiągnęli swojego celu, jakim jest zdobycie Praca na pełen etat.

Uważaćless Twojego obecnego poziomu, cel jest taki sam. Aby umożliwić Ci ubieganie się o stanowisko młodszego programisty iOS w firmie.

Przyjrzymy się umiejętnościom, których powinieneś się nauczyć, kursom, które możesz wziąć udział, sposobom nawiązania kontaktu ze społecznością, typowym błędom popełnianym przez ludzi i nie tylko. 

Co najlepsze, wszystko, co omówię, będzie całkowicie bezpłatne, więc nie będziesz musiał płacić ani grosza, aby kontynuować.

Poważnie, zbyt wiele osób uważa, że ​​wydawanie dużych pieniędzy sprawi, że staną na ścieżce do wymarzonej pracy, gdy najważniejszymi czynnikami są determinacja i siła woli. 

Oto wskazówka: jeśli już myślisz o przeskoczeniu w tym artykule, prawdopodobnie powinieneś popracować nad swoją siłą woli!

Ten artykuł jest podzielony na siedem sekcji:

  1. Podstawowe umiejętności, które musisz posiadać, aby dostać pracę.
  2. Umiejętności rozszerzania, które warto mieć – te, które wyróżnią Cię z tłumu, jeśli włożysz wysiłek w ich naukę
  3. Typowe błędy popełniane przez ludzi, gdy próbują się uczyć.
  4. Wiele bezpłatnych zasobów, które pomogą Ci nauczyć się języka Swift.
  5. Jak skontaktować się ze społecznością programistów iOS.
  6. Szacunkowy czas potrzebny na osiągnięcie celu.
  7. Przygotowujesz się do ubiegania się o swoją pierwszą pracę.

Podstawowe umiejętności wymagane do zostania programistą iOS

Podstawowe umiejętności wymagane do zostania programistą iOS

Jakie jest absolutne minimum umiejętności wymaganych do znalezienia pracy w programowaniu iOS? 

Myślę, że jest ich w sumie pięć:

  1. Szybki 
  2. SwiftUI 
  3. Sieci
  4. Praca z danymi
  5. Zarządzanie wersjami

Lista ta jest celowo krótka z różnych powodów:

Im więcej się uczysz, tym bardziej zdajesz sobie sprawę, że jest do nauczenia, więc łatwo jest poświęcić tyle czasu na naukę i ćwiczenia, że ​​tracisz z oczu główny cel.

Chcesz pracować jako programista iOS, a nie tylko siedzieć i uczyć się nowych rzeczy!

Jest prawie pewne, że dołączysz do zespołu, który ma już aplikację, którą chcą, abyś pomogła rozwijać, więc unless masz ogromne szczęście, będą musieli nauczyć Cię całej masy rzeczy z szacunkiemless.

Jeśli spróbujesz wcześniej wcisnąć całą masę dodatkowych tematów, prawdopodobnie marnujesz swój czas.

Dwie z tych pięciu rzeczy są ogromne i skomplikowane i możesz spędzić całe miesiące, próbując się nimi owinąć, nie ryzykując nigdzie indziej.

Co najważniejsze, jeśli dobrze zrobisz te pięć rzeczy, możesz stworzyć szeroką gamę aplikacji. Jasne, twój kod nie będzie doskonały, ale to jest w porządku, ponieważ jedynym sposobem na napisanie świetnego kodu jest napisanie najpierw dużo złego kodu.

Pozwól, że podzielę pięć elementów na mniejsze kawałki.

Nauka Swift

Swift jest pierwszy na liście. To jest Applepodstawowy język programowania. Nie ma koncepcji wyświetlania informacji na ekranie iPhone'a ani pobierania danych z Internetu. 

Jest to po prostu język podobny do JavaScript czy Pythona. To po prostu czysty kod, którego używasz do tworzenia zmiennych, pisania funkcji i tak dalej.

Swift ma zaledwie kilka lat, więc wykorzystuje prawie każdą dostępną nowatorską funkcję językową. 

Z jednej strony oznacza to, że możesz uniknąć wszystkich starych, złośliwych zachowań, które są powszechne w starszych językach, takich jak C++ i Java. Oznacza to również, że ma wiele bardziej zaawansowanych funkcji, które na początku mogą cię zaskoczyć.

I to jest w porządku. Wiele części Swifta jest stosunkowo prostych, podczas gdy pełne zrozumienie innych zajmie ci więcej czasu, więc po prostu nie spiesz się i wytrwaj – dotrzesz do celu!

SwiftUI

Drugą podstawową umiejętnością, o której wspomniałem, jest SwiftUI, która jest Apple framework, który pozwala nam używać Swift do tworzenia aplikacji na iOS, macOS, tvOS, a nawet watchOS. 

Tak więc, podczas gdy Swift jest językiem programowania, SwiftUI zapewnia narzędzia do programiści do tworzenia aplikacji, na przykład jak wyświetlać obrazy, tekst, przyciski, pola tekstowe, tabele danych i nie tylko. 

Żeby było jasne, SwiftUI nie zastępuje Swift – to framework zbudowany na bazie Swift, który pozwala nam tworzyć aplikacje. Aby odnieść sukces, musisz znać zarówno Swift, jak i SwiftUI.

Jeśli myślałeś, że Swift jest nowy, jeszcze niczego nie widziałeś! 

O ile wiem, SwiftUI ma dopiero dwa lata! Pomimo młodego wieku społeczność iOS przyjęła go całym sercem, ponieważ jest tak łatwy w użyciu.

Apple ma również starszy framework do tworzenia aplikacji na iOS o nazwie UIKit, a jeśli zapytasz grupę ludzi, czy powinieneś najpierw nauczyć się SwiftUI lub UIKit, otrzymasz wiele odpowiedzi. 

Myślę, że powinieneś nauczyć się SwiftUI.

Tak więc, jeśli się zastanawiasz, oto dlaczego uważam, że powinieneś traktować SwiftUI jako podstawową umiejętność.

Jest znacznie prostszy niż UIKit, i mam na myśli znacząco – osiągnięcie takich samych wyników jak UIKit zajmuje być może jedną czwartą kodu, a po drodze jest mniej rzeczy do nauczenia się. 

Oznacza to, że nabierasz rozpędu, ponieważ możesz szybciej budować rzeczy, szybciej widzieć wyniki i szybciej je iterować, co jest niezwykle motywujące podczas nauki.

Stworzony dla Swift

Stworzony dla Swift

SwiftUI został stworzony dla Swift, wykorzystując funkcje językowe, aby pomóc Ci uniknąć problemów i osiągnąć maksymalną wydajność. 

Na przykład, jeśli zmienisz niektóre dane na jednym ekranie aplikacji, SwiftUI automatycznie zapewni, że nowe dane zostaną zaktualizowane w dowolnym innym miejscu w Twojej aplikacji, które ich używa – nie musisz pisać kodu, aby samemu je zsynchronizować, co jest zaskakująco złożone. 

Z kolei UIKit został napisany dla Applestarszego języka, Objective-C, i w rezultacie ma wiele dziwactw, które wynikały z jego wieku.

SwiftUI jest kompatybilny ze wszystkimi Apple, dzięki czemu możesz wykorzystać to, czego nauczyłeś się na iOS, do stworzenia aplikacji macOS lub watchOS z prawie identycznym kodem. 

Jasne, niektóre funkcje, takie jak Digital Crown, są dostępne wyłącznie dla jednego urządzenia, ale zdecydowana większość tego, czego się nauczysz, będzie działać na każdym urządzeniu.

Ale co najważniejsze, SwiftUI to kierunek, w którym wszystko zmierza. 

Gdybyś teraz ubiegał się o pracę, prawdopodobnie musiałbyś znać UIKit, ale fakt, że to czytasz, oznacza, że ​​jesteś znacznie dalej w procesie. 

Tak, UIKit jest teraz bardziej popularny, ale SwiftUI będzie dominującym frameworkiem UI, zanim skończysz się go uczyć za 6, 9, a nawet 12 miesięcy.

Poważnie, największe światowe firmy, w tym Apple, wybierają SwiftUI.

Gdy Apple niedawno uruchomiono widżety w iOS 14, wymagały korzystania z SwiftUI.

Praca w sieci i manipulacja danymi

Trzecią i czwartą umiejętnością, o której wspomniałem, były networking i manipulacja danymi. W porównaniu do Swift i SwiftUI, są to bułka z masłem, a przynajmniej na poziomie wymaganym do uzyskania pracy dla młodszego programisty iOS.

Sieć to praktyka pobierania danych z Internetu lub wysyłania danych z lokalnego urządzenia do zdalnego serwera. 

Istnieje wiele metod, aby to osiągnąć, ale najważniejszą rzeczą do zrozumienia jest to, jak pobrać JSON z serwera.

I tu w grę wchodzi inna niezbędna umiejętność, praca z danymi. 

Ponownie, istnieje wiele sposobów ładowania i zapisywania danych, ale absolutnym minimum, które musisz być w stanie zrobić, jest przekonwertowanie danych otrzymanych z serwera przy użyciu kodu sieciowego na informacje, które może wyświetlić Twoja aplikacja.

Tak więc trzecia i czwarta umiejętność podstawowa są ze sobą nierozerwalnie związane. Pobierz dane z serwera, a następnie przekonwertuj je na informacje, które można wyświetlić w Twojej aplikacji. Niektórzy programiści żartują, że pisanie tego typu kodu to połowa pracy programisty iOS i to z pewnością prawda, że ​​w dużym stopniu na nim polegamy.

Version control

Ostatnia umiejętność wcale nie jest kodowaniem, to version control, takich jak Git. Ponownie, nie potrzebujesz tutaj wiele, ale ważne jest, aby móc opublikować swój kod w miejscu publicznym, takim jak GitHub, aby rekruterzy mogli zobaczyć Twoją pracę.

Nikt na świecie tak naprawdę nie rozumie, jak działa Git, ale to w porządku — wystarczy znać wystarczająco dużo podstaw, aby bezpiecznie przechowywać dane i współpracować z innymi.

Tak więc, gdy te pięć są zsumowane, są dwa masywne – Swift i SwiftUI – a także trzy mniejsze, ale ważne. 

Jeśli potrafisz skupić się na tych pięciu rzeczach bez rozpraszania się, będziesz na dobrej drodze do swojej pierwszej pracy programisty iOS.

To wszystko: to pięć podstawowych umiejętności, które moim zdaniem są potrzebne, aby zostać programistą iOS. 

Istnieją tysiące ludzi, którzy mają tylko te umiejętności i mogą tworzyć i dostarczać fantastyczne aplikacje w App Store.

Co następuje po podstawach?

Co następuje po podstawach?

Gdy opanujesz pięć podstawowych umiejętności, będziesz mógł dostarczać własne aplikacje i pracować jako niezależny programista, a także ubiegać się o stanowisko młodszych programistów iOS i pracować dla firmy, jeśli tego chcesz. 

Nie są wymagane żadne inne specjalne kwalifikacje – po prostu zdobądź te podstawowe umiejętności i wszystko będzie dobrze.

Jeśli jednak opanowałeś te umiejętności i chcesz się rozwijać, jest jeszcze pięć umiejętności, które polecam Ci poznać. Są to umiejętności, które przeniosą Cię z dobrej do fantastycznej pozycji – staniesz się jeszcze bardziej podatny na zatrudnienie, a zakres aplikacji, które będziesz w stanie zbudować, rozszerzy się jeszcze bardziej.

Zdolności są następujące:

  • UIKit 
  • Dane podstawowe 
  • Walidacja
  • Testowanie
  • Architektura oprogramowania
  • Wielowątkowość

Tak jak poprzednio, chciałbym omówić każdą z nich bardziej szczegółowo, abyście zrozumieli, dlaczego uważam je za ważne – i dlaczego myślę o nich jako o umiejętnościach rozszerzających, a nie podstawowych.

UIKit

Po pierwsze, jest UIKit. To jest Applestarszy framework interfejsu użytkownika, który jest używany do tworzenia aplikacji od 2008 roku – ma 13 lat, kiedy to piszę, co jest stare pod względem oprogramowania. Ale to nie znaczy, że UIKit jest zły. W rzeczywistości, gdy przyzwyczaisz się do tego, jak to działa, będziesz zaskoczony, jak elegancka może być.

Istnieje wiele powodów, dla których warto się uczyć UIKit, w tym:

Setki tysięcy aplikacji zostały już napisane w UIKit, więc jeśli dołączysz do firmy, która ma dużą, dobrze ugruntowaną aplikację, prawie na pewno będziesz musiał napisać kod UIKit, aby utrzymać tę aplikację.

UIKit jest znacznie potężniejszy niż SwiftUI — jest wiele rzeczy, które możesz zrobić w UIKit, a które nie są obecnie możliwe w SwiftUI.

Korzystając z technologii Auto Layout, możesz tworzyć niezwykle precyzyjne układy.

Jeśli napotkasz problemy z kodem, UIKit ma więcej rozwiązań niż SwiftUI tylko dlatego, że istnieje od znacznie dłuższego czasu.

Wszystko to sprawia, że ​​UIKit brzmi fantastycznie, więc dlaczego uczyniłem go umiejętnością rozszerzającą, a nie podstawową? 

Ponieważ UIKit ma również problemy:

Prawie wszystko jest trudniejsze do zrobienia w UIKit niż w SwiftUI, a niektóre zadania wymagają setki razy, jeśli nie więcej, kodu. 

SwiftUI został zaprojektowany specjalnie z myślą o nowoczesnych programach iOS, więc wykonuje za Ciebie wiele ciężkich zadań.

Ponieważ UIKit nie został napisany w języku Swift, ma wiele funkcji, których nie ma SwiftUI — wiele niejawnie nieopakowanych opcji, oznaczanie kodu specjalnym atrybutem @objc, aby udostępnić go podbrzuszu Objective-C UIKit oraz konieczność korzystania z protokołów i delegatów do wyświetlania prostych danych.

Nic w Auto Layout nie jest „automatyczne” – w rzeczywistości, jeśli kiedykolwiek spróbujesz zbudować złożony układ, możesz mieć koszmary związane z Auto Layout. Jest niezwykle sprytny, ale miejscami jest też niezwykle trudny.

I dlatego uważam UIKit za umiejętność rozszerzającą: nauka zajmuje znacznie więcej czasu i wysiłku niż SwiftUI, co oznacza, że ​​wymaga dużo więcej determinacji – musisz naprawdę chcieć się tego nauczyć, bo inaczej się pogubisz , znudzony, zły lub potencjalnie wszystkie trzy. 

Jasne, SwiftUI nie ma wszystkich funkcji UIKit, ale pozwala zrobić szybkie postępy i nabrać rozpędu przed przejściem do UIKit.

Zarządzanie podstawowymi danymi

Zarządzanie podstawowymi danymi

Dane podstawowe, AppleFramework do pracy z danymi aplikacji, to druga umiejętność rozszerzająca, o której wspomniałem. 

Wspomniałem o nawiązywaniu kontaktów i pracy z danymi w sekcji podstawowych umiejętności i to prawda. Mając te umiejętności, możesz pobierać z serwera wszystko, co chcesz i wyświetlać w swojej aplikacji. 

Core Data idzie o krok dalej, umożliwiając manipulowanie tymi danymi po ich uzyskaniu, na przykład wyszukiwanie określonych wartości, sortowanie wyników i wiele innych, wszystko bardzo wydajnie. 

Może również łatwo łączyć się z iCloud, zapewniając synchronizację danych użytkowników na wszystkich ich urządzeniach.

Core Data ma wiele wad, z których najpoważniejszą jest to, że praca z nimi nie zawsze jest przyjemna. Dane podstawowe są prawie tak stare jak UIKit i chociaż działały dobrze w Objective-C, nie są tak naturalne w Swift. 

Dobrze integruje się z SwiftUI, dzięki czemu czuje się less dziwne, ale to wciąż zaskakująco złożony temat.

Dlaczego więc dodałem to jako umiejętność rozszerzającą? Ponieważ, podobnie jak UIKit, Core Data jest niezwykle popularny – zbudowano z nim setki tysięcy aplikacji i jest on używany w wielu dużych i małych firmach. 

Podstawowe dane, takie jak UIKit, są niezwykle potężne i chociaż możesz odtworzyć najważniejsze ich części we własnym kodzie, dlaczego miałbyś to robić?

Testowanie kodu

Trzecią umiejętnością na mojej liście rozszerzeń jest testowanie. Pisanie specjalnego kodu, aby upewnić się, że główny kod aplikacji działa zgodnie z oczekiwaniami. 

Testy pozwalają nam upewnić się, że nasz kod działa poprawnie, a co ważniejsze, że nadal działa poprawnie, nawet po wprowadzeniu w nim znaczących zmian.

Na przykład, jeśli zmienisz 500 wierszy kodu, aby zaimplementować nową funkcję, a wszystkie twoje testy zakończą się pomyślnie, możesz zacząć.

W rezultacie testowanie ma kluczowe znaczenie i pomoże w pisaniu oprogramowania o wyższej jakości. 

Dlaczego więc uważa się ją za umiejętność rozszerzającą, a nie za podstawową? 

Istnieją trzy przyczyny:

Społeczność iOS jako całość jest okropna w testowaniu, z jakichkolwiek powodów historycznych. To znaczy, naprawdę źle – wiele dużych aplikacji w ogóle nie ma testów, a ja straciłem rachubę starszych programistów iOS, których spotkałem, którzy są prawie dumni, że nigdy nie piszą testów. 

Kiedy weźmiesz pod uwagę wszystkie niesamowite rzeczy, za pomocą których możesz stworzyć AppleW porównaniu z narzędziami i frameworkami pisanie testów nie wydaje się zbyt zabawne. 

Osobiście lubię pisać testy w taki sam sposób, w jaki lubię nitkować zęby, ale wiem, że wiele osób nie, zwłaszcza pracując nad osobistymi projektami.

Ubiegając się o pracę, znając Swifta i AppleGłówne frameworki zawsze będą bardziej przydatne niż umiejętność pisania testów. 

Firmy wolałyby, abyś wiedział, jak korzystać z SwiftUI, UIKit lub jednego z innych wielkich hitów, ponieważ testowanie to znacznie mniejszy temat – nie ma prawie tylu rzeczy do nauczenia się.

Tak więc testowanie jest ważne, testowanie ma znaczenie i chciałbym nauczyć Cię, jak pisać świetne testy. Ale dopiero wtedy, gdy opanujesz podstawy tworzenia aplikacji — po osiągnięciu pewnego sukcesu, poczujesz pęd do udostępnienia swojej aplikacji w App Store i opanujesz testowanie.

Architektura oprogramowania

Architektura oprogramowania

Czwartą umiejętnością rozszerzenia, którą chciałbym omówić, jest architektura oprogramowania, która tak naprawdę dotyczy tego, jak piszemy kod. 

Na początku napiszesz okropny kod – kod tak zły, że prawdopodobnie narusza konwencję genewską. 

W porządku, ponieważ tak się uczysz. Nie zaczynasz dobrze – stajesz się dobry będąc przez długi czas złym, tak jak LeBron James nie urodził się mistrzem koszykówki.

Chodzi o to, że trzymasz się złego kodu, dopóki nie zorientujesz się, jak zrobić to lepiej. W tym miejscu wkracza architektura oprogramowania. Przyjrzyjmy się wypróbowanym i sprawdzonym technikom strukturyzowania kodu, aby na dłuższą metę był łatwiejszy do czytania, używania, modyfikowania i utrzymania. 

Techniki te czasami opierają się na sposobie działania Swift – funkcjach językowych, które można wykorzystać do napisania lepszego kodu. 

Istnieje jednak wiele innych technik, które działają w dowolnym języku programowania i są powszechnie określane jako wzorce projektowe.

Jednym z ważnych aspektów tej umiejętności, którego powinieneś zacząć się uczyć, jest rozbijanie kodu. 

Na przykład, jeśli tworzysz pojedynczy ekran w swojej aplikacji, może on zawierać przycisk logowania, galerię obrazów i listę znajomych. 

Jednak najlepiej jest oddzielić każdą z tych części — składnik przycisku logowania, składnik galerii obrazów i składnik listy znajomych — aby móc ponownie wykorzystać dowolny z tych składników w innych częściach aplikacji.

Architektura oprogramowania jest znacznie bardziej subiektywna niż inne umiejętności, które do tej pory omawiałem. W przypadku innych, takich jak SwiftUI, możesz rozumować: „Cóż, wiem, jak zrobić X, Y i Z, więc jestem pewien, że jestem dobrym programistą SwiftUI”.

 Architektura oprogramowania to bardzo szeroki temat i często nie ma oczywistego „właściwego” sposobu rozwiązania problemu, więc uważam, że najlepszym punktem odniesienia jest to: czy patrzysz wstecz na swój kod sprzed sześciu miesięcy, rok temu i wkrótce.

Ponownie, pisanie złego kodu jest dopuszczalne, o ile przybliża cię do pisania lepszego kodu. 

Z pewnością krzywię się w miejscach, kiedy patrzę wstecz na kod, który napisałem pięć lat temu, ponieważ teraz wiem więcej niż wtedy – i to dobrze.

Wielowątkowość

Ostatnią umiejętnością rozszerzenia, którą chciałbym omówić, jest wielowątkowość, czyli praktyka polegająca na tym, że kod robi więcej niż jedną rzecz na raz. 

Wielowątkowość może być prawdziwym bólem karku, ponieważ nasze mózgi są trudne do zrozumienia. Kiedy twój kod robi jedną rzecz na raz, możemy przemyśleć to liniowo, ale gdy dwie lub trzy rzeczy dzieją się w tym samym czasie, potencjalnie nakładając się, może to naprawdę wygiąć twój mózg.

Tak więc, chociaż wielowątkowość jest świetną umiejętnością jako umiejętność rozszerzającą, powinieneś być ostrożny. Twoim celem powinno być zrozumienie pojęć i kodu na tyle, aby działały dobrze, nie posuwając się zbyt daleko. 

Szczerze mówiąc, wielu programistów wierzy, że wielowątkowość natychmiast sprawi, że ich kod będzie działał trzy lub cztery razy szybciej. 

Chociaż w niektórych przypadkach jest to prawdą, w wielu innych Twój kod będzie działał wolniej i będziesz musiał poradzić sobie z całą dodatkową złożonością kodu.

Jeśli mi nie wierzysz, rozważ ten cytat Davida Smitha – jest członkiem Apple's Swift i wcześniej spędził lata pracując nad samym rdzeniem Appleramy:

„Moim szczególnym zaleceniem jest unikanie pisania kodu asynchronicznego/współbieżnego tak bardzo, jak to możliwe. Może się to wydawać dziwne w 2018 roku, ale koszt złożoności i wydajności jest wysoki.

Dowiedz się więc trochę o tym, jak działa wielowątkowość w Swift, aby pokazać, że rozumiesz koncepcje i implementację, ale nie przesadzaj!”

Typowe błędy popełniane przez nowych programistów iOS

Typowe błędy popełniane przez nowych programistów iOS

W tym momencie wymieniłem wszystkie podstawowe i dodatkowe umiejętności, które moim zdaniem będą potrzebne do pracy jako pełnoetatowy programista iOS. 

Ale chcę również omówić niektóre z najczęstszych błędów popełnianych przez ludzi podczas nauki, ponieważ widzę je cały czas i wiem, jak ludzie się cofają.

Istnieje siedem głównych problemów, z którymi borykają się ludzie, i chciałbym je omówić w kolejności. 

Są one następujące:

  1. Pamiętając wszystko
  2. Syndrom błyszczącego przedmiotu
  3. Nauka samotnego wilka
  4. Korzystanie z oprogramowania beta
  5. W zależności od Apple'dokumentacja
  6. Grzęźnięcie w Objective-C
  7. Celowanie w inne języki

Przyjrzyjmy się każdemu z nich po kolei.

Przestań próbować wszystko zapamiętać

Przestań próbować wszystko zapamiętać

Pierwszym i zdecydowanie najczęstszym problemem, z jakim spotykają się ludzie, jest próba zapamiętania wszystkiego – przeczytanie samouczka i przekonanie, że muszą wszystko zapamiętać na pamięć. 

Proszę, proszę, proszę nie rób tego. To przepis na katastrofę i osłabi całą twoją siłę woli do punktu, w którym nigdy więcej nie będziesz chciał programować.

Nikt nie pamięta wszystkiego. Nikt nie jest bliski zapamiętania wszystkiego. Nawet jeśli weźmiesz pod uwagę tylko interfejsy API opublikowane przez Apple, czyli fragmenty kodu, których możemy użyć do budowy naszych aplikacji, musi być dostępnych znacznie ponad sto tysięcy. 

Nawet jeśli ograniczysz to do podstawowych elementów tworzenia aplikacji, nadal patrzysz na kilkaset – wszystkie działają w bardzo precyzyjny sposób, który wymaga dużo nauki obsługi.

Zamiast tego uczysz się, jak zrobić coś nowego, a potem szybko zapominasz, jak to zrobić ponownie. 

Więc wyszukaj go, użyj ponownie, a następnie natychmiast o tym zapomnij. Więc sprawdzasz go po raz trzeci i używasz, a tym razem w większości o tym zapominasz – niektóre części zostają z tobą. 

Ten cykl trwa w nieskończoność, za każdym razem musisz odwoływać się do samouczka lub innego przewodnika, dopóki podstawy nie zostaną zakorzenione w twoim umyśle do punktu, w którym możesz to zrobić bez konsultacji z kimkolwiek innym.

Jeśli jeszcze tego nie wiedziałeś, zapominanie jest ważną częścią nauki. 

Za każdym razem, gdy o czymś zapominasz i uczysz się tego na nowo, zatapia się to głębiej i głębiej w twoim mózgu. Kiedy uczysz się czegoś na nowo, twój mózg tworzy nowe połączenia z innymi rzeczami, których się nauczyłeś, co pomaga ci lepiej zrozumieć kontekst tego, co próbujesz zrobić. 

I za każdym razem, gdy uczysz się na nowo, sygnalizujesz swojemu mózgowi, że ten konkretny temat jest na tyle ważny, by przechowywać go w pamięci długotrwałej.

Ale jeśli postanowisz wszystko zapamiętać, będziesz walczył. 

Zamiast tego nie przejmuj się zapominaniem o rzeczach. Wiedza, gdzie je wyszukać, jest o wiele ważniejsza niż zapamiętywanie konkretnego kodu Swift, aby coś osiągnąć. 

Kiedy zapominasz o czymś i musisz nauczyć się tego od nowa, uważaj to za dobrą rzecz – ta informacja zapadnie głębiej w drugi, trzeci i dziesiąty raz, kiedy się tego nauczysz, więc pomagasz swojemu mózgowi.

Unikaj syndromu błyszczących przedmiotów

Drugim najczęstszym problemem, z jakim spotykają się ludzie, jest coś, co nazywam „syndromem błyszczących obiektów”, w którym znajdują serię samouczków, która im odpowiada i zaczynają robić postępy, ale po tygodniu lub dwóch zauważają kolejną serię samouczków, zamiast tego chcesz śledzić i wskakiwać na statek. 

Ludzie wysyłali mi e-maile z informacją, że wypróbowali cztery, pięć, a nawet sześć różnych serii i z jakiegoś dziwnego powodu niczego się nie uczą.

Problem polega na tym, że wiele aspektów uczenia się czegokolwiek jest nieciekawych. To niekoniecznie wina nauczyciela. 

To tylko fakt uczenia się kodowania — niektóre rzeczy dają świetne wyniki przy niewielkim wysiłku, podczas gdy inne wymagają dużo więcej czasu na zrozumienie, nie dają wymyślnych wyników lub są tylko częścią większej koncepcji.

Kiedy natrafisz na te strome krzywe uczenia się, zaczyna działać syndrom błyszczących obiektów – przy tak wielu dostępnych darmowych samouczkach możesz wskoczyć na dowolny z nich i ponownie uruchomić, a wrócisz na płytki koniec basenu, obejmując łatwiejsze części już się nauczyłeś. 

Ale nieless oryginalny kurs wybrał nietypowy temat do omówienia, prawdopodobnie w końcu będziesz musiał się go nauczyć, a ty po prostu odkładasz nieuniknione.

Więc nie proszę, abyście zawsze opierali się syndromowi błyszczących przedmiotów, ponieważ rozumiem, jakie to trudne. Zamiast tego przynajmniej bądź tego świadomy: kiedy napotkasz problem, spróbuj poprosić kogoś innego o pomoc i wytrwaj, zamiast zmieniać.

Nie idź sam

Nie idź sam

Mówiąc o pytaniu kogoś innego, trzeci problem, na który ludzie napotykają, polega na tym, że są samotni z nauką – wierzą, że są w pełni zdolni do samodzielnego tworzenia aplikacji na iOS przy użyciu Swift i nie wymagają pomocy innych .

Ta metoda działa w przypadku bardzo małej liczby osób, zazwyczaj tych z dużym doświadczeniem z innymi językami programowania lub platformami. 

Jednak dla zdecydowanej większości ludzi uczenie się w ten sposób jest okropnym doświadczeniem – rozwiązanie każdego błędu lub nieporozumienia zajmuje pięć razy więcej czasu, bardzo łatwo jest stracić motywację, a oglądanie traci wiele inspiracji. innym się udaje.

Jeśli jesteś naturalnym uczniem „samotnego wilka”, zachęcam do zmiany swojego postępowania. 

Dziel się tym, czego się uczysz, łącz się z innymi, którzy się uczą i rozwijaj nawyk zadawania pytań. 

Nie tylko odkryjesz fantastyczną społeczność uczniów, którzy będą Cię wspierać i zachęcać, ale także zainspirujesz się ich pracą, a to z kolei zainspirujesz ich swoją. Zaufaj mi, widziałem to setki razy i to całkowicie odmienia.

Nie używaj wersji beta

Czwartym poważnym problemem, który widzę, jest to, że ludzie nalegają na używanie wersji beta programu Applenarzędzia programistyczne. 

Rozumiem: co roku, Apple wypuszcza nowy system iOS, nowy macOS i inne produkty, zawsze dostarczając nam ekscytujących nowych rzeczy do wypróbowania. To naturalne, że ludzie chcą uczyć się najnowszych i najlepszych, zwłaszcza jeśli wiedzą, że Swift ma długą historię zmian.

Jednak, gdy ludzie próbują uczyć się za pomocą oprogramowania w wersji beta, napotykają mnóstwo problemów:

Ponieważ samouczki nie zostały zaktualizowane do wersji beta, wykonanie ich instrukcji nie zawsze będzie możliwe lub zakończy się niepowodzeniem.

Błędy są powszechne w wersjach beta, zwłaszcza tych wydanych dla głównych aktualizacji iOS.

AppleStabilizacja frameworków beta wymaga czasu, co oznacza, że ​​kod, który działał w wersji beta 1, może nie działać w wersji beta 3.

Tak więc, chociaż uczenie się nowych rzeczy jest ekscytujące i możesz wierzyć, że wyprzedzasz grę dzięki nowym funkcjom, zaufaj mi: to nie jest tego warte. 

Zawsze używaj najnowszych publicznych wydań Applenarzędzia programistyczne , dopóki nie poczujesz się z nimi komfortowo.

Poleganie na oficjalnej dokumentacji

Poleganie na oficjalnej dokumentacji

Piątym głównym problemem, z którym borykają się ludzie próbujący się uczyć, jest poleganie na Appledokumentacji. 

AppleZespół ds. publikacji deweloperskich ciężko pracuje, aby udokumentować jak najwięcej z szerokiej gamy frameworków firmy, ale jego głównym zadaniem jest pisanie materiałów referencyjnych – rzeczy, które czytasz, gdy próbujesz użyć określonego elementu ich narzędzi – zamiast stworzenie zorganizowanego kursu, który pomoże Ci nauczyć się tworzyć aplikacje na iOS.

Straciłem rachubę, ile razy ludzie pytali mnie: „Jak mogę nauczyć się Swifta?” tylko po to, by powiedzieć: „Przeczytaj Appleprzewodnik po Swift”. 

To podejście działa dla niektórych osób i wiem, ponieważ zadziałało dla mnie, gdy po raz pierwszy ogłoszono Swift – czytałem to od deski do deski. 

Jednak dla większości ludzi jest to podobne do próby nauczenia się ludzkiego języka poprzez czytanie słownika. Ma na celu omówienie wszystkiego w języku, a nie nauczenie najważniejszych części i ich zastosowania.

Tak więc, jeśli masz duże doświadczenie z innymi językami, czytanie ApplePrzewodniki referencyjne mogą się przydać, ale jeśli dopiero zaczynasz, możesz wrócić do nich po kilku miesiącach.

Grzęźnięcie w Objective-C

Szóstym głównym problemem, przed którym stają ludzie, jest próba nauczenia się Celu-C. To było Appległównym językiem programowania przed wprowadzeniem Swift i chociaż istnieją pozostałości w niektórych starych bazach kodu, zdecydowana większość istniejącego kodu to teraz Swift, a prawie cały nowy kod jest również Swift.

Spędziłem lata pisząc Objective-C przed Swiftem i naprawdę go pokochałem, ale ma niezwykle stromą krzywą uczenia się i brakuje mu większości ważnych funkcji Swifta. 

pamiętam kiedy Apple po raz pierwszy ogłosiłem iPhone SDK i byłem przerażony Objective-C, ponieważ nie przypominał niczego, co do tej pory widziałem.

Objective-C i Swift nie mają prawie nic wspólnego dla początkującego. 

Tak, dzielą to samo Apple frameworki, ale unless planujesz pracować w Apple – jedyna firma na świecie, która wciąż produkuje duże ilości Objective-C – powinieneś zostawić Objective-C w spokoju i skoncentrować się całkowicie na Swifcie.

Ignorowanie innych języków

Ignorowanie innych języków

Ostatnim poważnym błędem, jaki popełniają ludzie podczas nauki języka Swift, jest odrzucanie innych języków jako gorszych od języka Swift. 

Najczęstszym celem jest JavaScript, ale zobaczysz również, że ludzie celują w Python, Java, Ruby, Go i inne języki, i po co? To nie wyścig, ludzie – te języki nie muszą przegrać, aby Swift wygrał.

W rzeczywistości Swift i SwiftUI są często inspirowane innymi językami i frameworkami – za każdym razem, gdy rozważane są nowe funkcje języka, społeczność patrzy na podobne implementacje w Rust, Python, Haskell i innych językach, a SwiftUI jest pod silnym wpływem JavaScript React Ramy. 

Tak więc, kiedy słyszę, jak ludzie w naszej społeczności twierdzą, że SwiftUI jest wolny od JavaScriptu lub czegoś podobnego, wzdrygam się – nic nie może być dalsze od prawdy.

Zasoby i kursy dotyczące rozwoju iOS

Zasoby i kursy dotyczące rozwoju iOS

Teraz część, która interesuje większość ludzi: jakie są rzeczywiste zasoby, które moim zdaniem powinieneś wykorzystać do nauki Swift, SwiftUI i innych – aby osiągnąć swój cel, jakim jest zostanie programistą iOS?

Jest ich wiele i doceniam fakt, że społeczność Swift ma tak zróżnicowaną grupę ludzi dzielących się swoją wiedzą. 

Jednak w tym artykule skupię się na darmowych zasobach – miejscach, w których możesz nauczyć się budować fantastyczne aplikacje bez wydawania ani grosza.

Wynika to z dwóch czynników:

  1. Niektórzy uważają, że im wyższa cena kursu Swift, tym lepiej musi być, więc płacą wygórowane ceny, nie otrzymując odpowiednich korzyści.
  2. Wiele witryn, takich jak Udemy, polega na sprzedaży dużej liczby tanich kursów, mając pewność, że jeśli Ci się nie spodoba, po prostu kupisz inny. Mają również model biznesowy podobny do Steama, ponieważ mają stałą sprzedaż, zachęcając ludzi do gromadzenia dużej liczby kursów, aby studiować „jeden dzień”.

Tak więc wymieniam tutaj tylko darmowe zasoby, ponieważ nie chcę, żebyś wpadł w te pułapki – nie wydawaj stu dolarów lub więcej na swój pierwszy kurs i nie kupuj tuzina tanich kursów myśląc, że to sprawi, że jesteś programistą.

Poradniki

Aby rozpocząć, Apple ma dwa główne zasoby, które mogą ci pomóc. Pierwszą z nich jest strona internetowa „Teaching Code”, która zawiera materiały dla uczniów i nauczycieli dotyczące nauki języka Swift od podstaw, aż po certyfikaty zawodowe. 

Ich program nauczania jest obszerny, więc znalezienie najlepszego punktu startowego może zająć trochę czasu, ale kiedy już tam będziesz, znajdziesz wiele do odkrycia.

Po drugie, Apple ma serię samouczków SwiftUI, które przeprowadzą Cię przez proces tworzenia rzeczywistych aplikacji. Te jednak nie uczą języka Swift, więc najpierw musisz ukończyć ich program nauczania skoncentrowany na Swift.

Jak już wcześniej wspomniałem, Apple publikuje również przewodnik specjalnie dla języka programowania Swift, ale istnieje duża szansa, że ​​nie będzie on działał dla Ciebie – jest przeznaczony jako odniesienie, a nie ustrukturyzowany samouczek, więc jest to dość gęsta lektura.

Co AppleSamouczki, których nie robią, to próba dostarczenia ustrukturyzowanej metody uczenia się. 

YouTube i inne witryny

Istnieje kilka doskonałych filmów na YouTube, które przeprowadzą Cię przez podstawy SwiftUI, takie jak:

VlhcNR7Qrno
, w którym przeprowadzi Cię przez proces tworzenia gry na automatach od podstaw.

51xIHDm_BD
wyjaśnia pięć koncepcji SwiftUI, których każdy powinien nauczyć się, gdy zaczyna programować.

aP-SQXTtWhy
który zawiera zarówno Swift, jak i SwiftUI podczas zadawania pytań publiczności.

Istnieją inne witryny z wysokiej jakości samouczkami Swift i SwiftUI, w tym BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee i nie tylko – naprawdę zachęcam ludzi do odwiedzania różnych zasobów i znajdowania tego, co im odpowiada.

Edukacja oparta na aplikacjach

Jeśli wolisz uczyć się przez aplikacje, polecam dwie, które są całkowicie bezpłatne. Pierwszy to Appleaplikacja Swift Playgrounds, która umożliwia naukę języka Swift bezpośrednio z iPada lub Maca. 

Jest wiele interaktywnych lessskierowane do dzieci, ale są też bardziej zaawansowane less, które pomogą Ci rozwinąć Twoje umiejętności.

Druga aplikacja nazywa się Unwrap i została stworzona przeze mnie. Unwrap jest kompatybilny ze wszystkimi iPhone'ami i iPadami i pozwala uczyć się, przeglądać i ćwiczyć podstawy Swift za pomocą filmów, testów i innych narzędzi. Obejmuje wszystkie podstawy języka Swift i doskonale uzupełnia program nauczania 100 dni SwiftUI.

Pozyskiwanie rozwiązań

Na koniec musisz się nauczyć, jak znajdować odpowiedzi online. Może to oznaczać przejście do Stack Overflow, ale mam nadzieję, że nie, ponieważ nie jest to szczególnie przyjemne miejsce.

Zamiast tego zadawaj pytania na forach Hacking with Swift, swojej ulubionej grupie Slack, sesjach Happy Hour dla deweloperów iOS, na Twitterze i w innych miejscach – jesteśmy naprawdę ciepłą, przyjazną społecznością z wieloma osobami chętnymi do pomocy w osiągnięciu Twoich celów.

Angażowanie się w społeczność

Angażowanie się w społeczność

Mówiąc o naszej społeczności, chciałbym omówić naprawdę ważny temat, który pomoże Ci poznać ludzi na podobnych stanowiskach, efektywniej uczyć się i znajdować wolne miejsca pracy – to sytuacja, w której wszyscy wygrywają.

Temat łączy się ze społecznością programistów iOS. Obejmuje to wiedza, gdzie szukać wiadomości i ciekawych pomysłów, gdzie spotykać się z ludźmi i dzielić wskazówkami oraz dokąd zadawać pytania.

Kogo powinienem obserwować na Twitterze?

Zacznijmy od najprostszego, czyli korzystania z Twittera. Twitter to fantastyczny sposób na śledzenie rzeczy, które Cię interesują, a jest kilka osób, które gorąco polecam w przypadku rozwoju iOS.

Tak, ci ludzie tweetują o swojej własnej pracy, ale myślę, że świetnie się ich śledzą, ponieważ dużo tweetują też o pracy innych osób – pomogą ci zobaczyć różne perspektywy na dany temat i dzielą się różnymi rodzajami ciekawych pomysłów i rzeczy do wypróbowania.

Oto 9 osób, które polecam śledzić na Twitterze:

Sean Allen spędza dużo czasu na YouTube, tworząc filmy programistyczne Swift i iOS, ale także bardzo ciężko pracuje, aby rozpowszechniać informacje o pracy innych ludzi – naprawdę świetnie się spisał, pomagając wszystkim odkrywać coś nowego każdego tygodnia.

Antoine van der Lee prowadzi witrynę deweloperską na iOS pod adresem https://www.avanderlee.com, ale udostępnia też świetne linki do przydatnych zasobów, które znajduje w serwisie GitHub, biuletynach i nie tylko.

Novall Khan pracuje dla Apple, ale to nie przeszkadza jej w regularnym publikowaniu filmów o tym, nad czym pracuje, czego się uczy, z czym ma problemy i nie tylko – jest naprawdę inspirująca.

Steve Troughton-Smith jest dobrze znany ze swojej wcześniejszej pracy przy majsterkowaniu z iOS, ale naprawdę powinieneś go śledzić, ponieważ udostępnia fantastyczny zestaw linków do imponującej pracy. Podoba mi się, jak dzieli się postępami w rozwoju własnych aplikacji, dzięki czemu możesz zobaczyć, jak rosną od początku do końca.

Kaya Thomas jest jednym z najbardziej znanych niezależnych programistów w naszej społeczności, a wyróżnił ją Apple więcej razy, niż mogę zliczyć. Często tweetuje o swojej pracy i prezentacjach, ale udostępnia też linki do czytanych książek, czytanych artykułów i innych zasobów.

Majid Jabrayilov nie tylko pisze fantastycznego bloga Swift i SwiftUI, ale też jest oponąless promotor innych – jeśli śledzisz go na Twitterze, będziesz dostawał pomysł za pomysłem z różnych źródeł.

Donny Wals pisze bloga Swift, a ostatnio książki na temat Combine i Core Data, ale także zachęca ludzi do dzielenia się tym, nad czym pracują na Twitterze. Nawet samo przeczytanie tego wątku raz w tygodniu zainspiruje Cię do wypróbowania nowych rzeczy, więc zdecydowanie powinieneś podążać za Donnym.

Letni Panage Prace nad Apple, więc chociaż jest nieco ograniczona w tym, co może powiedzieć, tweetuje wiele pierwszorzędnych wskazówek od siebie i innych, z których każdy może korzystać do tworzenia lepszych aplikacji.

Natasza Fadejewa pisze bloga o rozwoju Swift i iOS, w tym artykuły na temat podstawowych danych, pytania do wywiadów i inne tematy, ale także tweety o rzeczach, które znajduje gdzie indziej.

Biuletyny i nie tylko

Biuletyny i nie tylko

Oczywiście Twitter nie jest jedynym miejscem, w którym można pozostawać w kontakcie ze społecznością; istnieją również biuletyny, grupy Slack, spotkania Zoom, fora, konferencje i inne miejsca. Nie chcę cię zbytnio zanudzać, więc po prostu wymienię jeden z nich tutaj:

Nie możesz się pomylić Co tydzień dla deweloperów iOS do biuletynów. Kiedy to piszę, właśnie przeszło 500 numerów, jeden co tydzień, który, jak sądzę, mówi ci wszystko, co musisz wiedzieć o tym, jak ważne jest.

Jeśli chcesz publikować na forum internetowym, https://www.hackingwithswift.com/forums jest całkiem nieźle. Do wyboru jest wiele kategorii i każdy ma na uwadzeless poziomu doświadczenia, zapraszamy do udziału. Serdecznie zapraszamy do zamieszczania tutaj swoich pytań dla początkujących, uwierz mi!

Co miesiąc Szczęśliwa godzina dla deweloperów iOS odbywa się na rozmowie grupowej Zoom z ponad 300 osobami, ale prawdziwa zabawa jest w pokojach typu breakout, gdzie można rozmawiać z grupami od 6 do 8 osób jednocześnie. To świetna zabawa i poznasz nowych ludzi.

Uczestnictwo w konferencjach było trudne z powodu pandemii koronawirusa, ale Apple's WWDC był ogromnym sukcesem w zeszłym roku i towarzyszył mu szereg wydarzeń społecznych. Grupa przyjaciół i ja stworzyliśmy Repozytorium GitHub aby pomóc śledzić wszystkie inne wydarzenia, artykuły i inne rzeczy, które się wydarzyły – spójrz!

Wreszcie, jeśli wolisz rozmawiać na Slacku, gdzie możesz szybciej otrzymywać odpowiedzi, możesz dołączyć do darmowego Hakowanie z grupą Swift Slack i dołącz do jednego z kanałów Swift, SwiftUI i innych.

Ile czasu zajmuje nauka iOS?

To moje często zadawane pytanie: ile czasu zajmuje przejście od niewiedzy o Swift do uzyskania stanowiska programisty na poziomie podstawowym dla iOS?

Oczywista odpowiedź brzmi „to zależy”, ale w tym przypadku byłby to wykręt, więc pozwolę sobie odpowiedzieć na kilka różnych sposobów.

Złota zasada to nie pośpiech

Przede wszystkim nie możesz brać udziału w kilku kursach jednocześnie. Pamiętasz, co powiedziałem o „syndromie lśniących przedmiotów”? Tak, wiele osób uważa, że ​​mogą brać udział w dwóch kursach w tym samym czasie, a następnie wkuwać się przez cztery, pięć lub nawet więcej godzin każdego dnia i nadal dobrze rozumieć poruszane tematy.

Żeby było jasne, widziałem, jak ludzie próbowali tego wiele razy i zawsze się to nie udaje. Za każdym razem – to nigdy nie działa, a słyszę, jak ludzie mówią, że to dlatego, że samouczki były złe, albo dlatego, że Swift był zbyt trudny, albo z dosłownie każdego innego powodu niż próba szybkiego przebrnięcia przez coś skomplikowanego.

Dosłownie dostałem e-mail z informacją: „Cześć Paul! Jak szybko mogę skończyć Swift, jeśli uczę się przez cztery lub pięć godzin dziennie?” I po prostu tak nie działa nauka – czy to nauka języka Swift, nauka gry na pianinie, nauka jazdy na łyżwach, czy cokolwiek innego.

Nauka języka Swift może być czasami trudna, a nauka tworzenia aplikacji wymaga wielu prób i błędów, popełniania błędów i robienia niewłaściwych zakrętów. I dobrze – lepiej niż dobrze, jest fantastycznie! 

Ponieważ za każdym razem, gdy czegoś spróbujesz, popełnisz błąd lub skręcisz w złą drogę, po drodze czegoś się nauczysz, a kiedy w końcu dojdziesz do rozwiązania, zrozumiesz to znacznie lepiej.

Tak więc TL;DR tutaj nie spiesz się – nie śpiesz się, nie bój się eksplorować pojawiających się stycznych, nie bój się eksperymentować ze swoimi projektami i nie bój się do czegoś wracać wcześniej się tego nauczyłeś i w razie potrzeby uczysz się na nowo.

Jakie jest Twoje wykształcenie

Jakie jest Twoje wykształcenie?

Po drugie, przed przyjściem do Swift powinieneś rozważyć swoje pochodzenie. Widzisz, nauka tworzenia aplikacji wymaga szerokiego zakresu umiejętności, a jeśli przyjdziesz do stołu z bogactwem wcześniejszej wiedzy, takiej jak version control, struktury danych, algorytmy i nie tylko, będziesz mieć znaczną przewagę nad tymi, którzy są nowicjuszami w informatyce w ogóle, a także nad Swiftem i innymi Apple ramy.

Oto kilka możliwości tego, gdzie możesz być teraz:

Jeśli masz stopień naukowy w dziedzinie informatyki, znasz już wiele podstaw CS potrzebnych do rozpoczęcia pracy z Swiftem. Zmienne, tablice, pętle, tablice, zestawy, funkcje, OOP i inne koncepcje będą przydatne w Swift, podobnie jak cała Twoja praca ze strukturami danych i algorytmami. Może to zaoszczędzić 4-6 miesięcy nauki w zależności od przedmiotów, które studiowałeś, a także da ci przewagę podczas ubiegania się o pracę w wielu firmach.

Jeśli nie masz dyplomu CS, ale uczestniczyłeś w szkoleniu z kodowania, poznasz wiele podstawowych informacji potrzebnych do rozpoczęcia pracy z Swiftem. Nie da ci to tej samej korzyści przy ubieganiu się o pracę w tych firmach, ponieważ często oczekują one dyplomu tylko po zaznaczeniu pola na ich liście arbitralnych wymagań, ale i tak zaoszczędzisz trzy lub cztery miesiące.

Jeśli nie masz dyplomu CS i nie brałeś udziału w bootcampie, ale kodujesz w wolnym czasie, zaoszczędzisz trochę czasu – prawdopodobnie około dwóch miesięcy, w zależności od używanego języka lub frameworków .

Co zrobić, jeśli nie masz dyplomu CS, nie brałeś udziału w bootcampie i nie masz doświadczenia w kodowaniu? Wtedy szacowałbym, że 9 do 12 miesięcy, aby przejść od niczego do pracy na poziomie podstawowym. Tak, może to być cały rok pracy oprócz tego, co jest obecnie w pracy na pełny etat, a to tylko po to, aby zdobyć pierwszą pracę jako programista iOS.

Czy to zawsze ten sam rok? Nie. Jeśli masz wcześniejsze doświadczenie, możesz skrócić ten czas do 1 do 6 miesięcy, jak już wcześniej wspomniałem. Jeśli weźmiesz najlepsze liczby po obu stronach – 9 miesięcy od zera do pracy na poziomie podstawowym, plus 6 miesięcy za uzyskanie dyplomu CS – oznacza to, że możesz zostać zatrudniony w ciągu zaledwie 3 miesięcy, co jest niesamowite.

Możesz wierzyć, że znalezienie pierwszej pracy od trzech miesięcy jest niemożliwe, ale tak nie jest. Heck, spotkałem kogoś, kto uczęszczał na mój kurs 100 Days of Swift i dostał pracę przed 50 dniem – nauczyli się już wystarczająco dużo o tworzeniu aplikacji w less niż dwa miesiące, ponieważ włożyli wysiłek, aby każdy dzień się liczył.

Więc nie potrzebujesz dyplomu CS ani bootcampu, ale musisz być chętny do ciężkiej pracy.

Pozwól sobie na trochę swobody

Trzecią kwestią, którą chciałbym poruszyć, zanim przejdziemy dalej, jest to, że „to trwa tak długo, jak trwa”. Uwielbiam tekst Johna Lennona, który mówi: „Życie jest tym, co dzieje się, gdy jesteś zajęty robieniem innych planów”.

To fantastycznie, jeśli masz wielkie plany na naukę i wielkie marzenia związane z pracą, którą chcesz, ale czasami jesteś zmęczony, czasami zestresowany, czasami przecieka ci dach, pies musi iść do weterynarza lub twoje dzieci potrzebują dodatkowych pomoc w odrabianiu prac domowych, czy cokolwiek, i to jest po prostu życie. 

Nie bądź więc dla siebie zbyt surowy, jeśli opóźniasz się z harmonogramem nauki lub jeśli brakuje ci kilku dni lub nawet kilku tygodni itd. – tak długo, jak będziesz odporny, dostaniesz tam.

To fantastycznie, jeśli naprawdę ciężko pracujesz i dostajesz pracę po 50 dniach – dobra robota! Jeśli zajmie ci to 500 dni, to też jest fantastycznie i powinieneś być z siebie równie dumny. Heck, jeśli zajmie ci to pięć lat, jestem pewien, że nie o to ci chodziło, ale efekt końcowy jest taki sam i tylko to się liczy.

Przygotowanie do złożenia wniosku

Przygotowanie do złożenia wniosku

Wreszcie, jeśli jesteś trochę dalej w swojej podróży edukacyjnej iOS i myślisz o wylądowaniu swojej pierwszej pracy na poziomie podstawowym, chciałbym wskazać Ci ogromną kolekcję zasobów, które zebrałem, aby Ci pomóc.

polecam Filmy z poradami dotyczącymi wywiadu Seana Allena Swift – ma dla nich całą playlistę, na której można pracować nad indywidualnymi dyskusjami, takimi jak klasy vs struktury, programowanie funkcjonalne, obsługa błędów i inne. Żaden z filmów nie jest szczególnie długi, ale wszystkie zostały zaprojektowane tak, aby zapewnić Ci umiejętności potrzebne do dobrego wykonania rozmowy kwalifikacyjnej.

Gdzie teraz?

OK, więc omówiłem podstawowe i dodatkowe umiejętności, których będziesz potrzebować, typowe błędy w nauce, kursy, które możesz wziąć udział, jak połączyć się ze społecznością iOS i jak przygotować się do rozmowy o pracę – to dużo do omówienia, i mam nadzieję, że to pomogło.

Ponadto mam nadzieję, że pokazałem, jak wiele informacji jest dostępnych za darmo. 

Tak, pokusa wydania stu dolarów lub więcej na kurs jest silna, ale zrelaksuj się – najpierw ruszaj, nabierz rozpędu, a także znajdź kogoś, kto uczy Swifta w sposób, który Ci odpowiada. Kiedy jesteś w dobrym miejscu i czujesz się gotowy, śmiało wydaj trochę pieniędzy, jeśli chcesz.

Najlepsze życzenia w Twojej podróży!

O autorze
David Attard
Autor: David AttardStrona internetowa: https://www.linkedin.com/in/dattard/
David pracuje w branży online / cyfrowej lub w jej pobliżu od 18 lat. Ma ogromne doświadczenie w branży oprogramowania i projektowania stron internetowych przy użyciu WordPress, Joomla i otaczających je nisz. Jako konsultant ds. Cyfrowych koncentruje się na pomaganiu firmom w uzyskaniu przewagi konkurencyjnej za pomocą połączenia ich strony internetowej i dostępnych obecnie platform cyfrowych.

Jeszcze jedna rzecz... Czy wiesz, że osoby, które udostępniają przydatne rzeczy, takie jak ten post, również wyglądają NIESAMOWITE? ;-)
Proszę zostaw użyteczny skomentuj swoje przemyślenia, a następnie udostępnij to na swoich grupach na Facebooku, które uznają to za przydatne i wspólnie zbierzmy korzyści. Dziękuję za udostępnienie i bycie miłym!

Ujawnienie: Ta strona może zawierać linki do zewnętrznych witryn produktów, które kochamy i gorąco polecamy. Jeśli kupisz sugerowane przez nas produkty, możemy otrzymać opłatę za polecenie. Takie opłaty nie wpływają na nasze rekomendacje i nie przyjmujemy płatności za pozytywne recenzje.

Autorzy promowani w:  Inc Czasopismo Logo .   Logo Sitepoint   Logo CSS Tricks    logo webdesignerdepot   Logo WPMU DEV   i wiele więcej ...