Ako udržať svoje zručnosti pri vývoji softvéru ostré?
Test zručností vyhľadávača práce je skvelým zdrojom informácií o tom, na akej úrovni sú vaše schopnosti.
Softvérový priemysel je veľmi dynamický. Ak chcete pokračovať v konkurenčnej práci ako vývojár softvéru, musíte si študovať čas, aby ste držali krok. Iba niekoľko hodín každý týždeň môže vašu hru udržať plynulú. Mnoho softvérových spoločností ponúka zamestnancom rozpočet na školenie. Rovnako by ste to teda mohli použiť správne.
1. časť zo 7: hodnotenie vašich schopností
- 1Spoznajte bar. Tí z vás, ktorí hľadajú novú prácu, by mali poznať latku pre pozíciu, o ktorú sa uchádzajú. Náborový pracovník vám alebo niekomu na tejto pozícii vo vašej sieti môže povedať. Musí to byť konkrétny a merateľný cieľ, na ktorý môžete zamerať.
- 2Pochopte definíciu ľahkých, stredných a ťažkých problémov pre každú zručnosť. Začnite zľahka a postupujte hore. Kódujúce webové stránky, ako napríklad leetcode, majú štítky o ľahkých stredných a ťažkých problémoch. Pri kódovaní všeobecne je ľahkým problémom asi 50 riadkov kódu, ktorý na vyriešenie problému potrebuje jednu dátovú štruktúru a metódu. Stredné potrebujú zhruba 70 až 80 riadkov kódu, môžu potrebovať viac dátových štruktúr a majú intuitívne rohové prípady. Ťažké problémy si vyžadujú protiintuitívne prístupy. Každý problém je potrebné vyriešiť do 45 minút.
- 3Buďte si vedomí svojich schopností. Webová stránka ako TripleByte vám môže povedať, aké sú vaše silné a slabé stránky. Vykonajte ich test, aby ste najskôr začali pracovať na svojej najslabšej schopnosti.
Časť 2 zo 7: Revízia základných koncepcií počítačovej vedy
- 1Ak sa nachádzate v inej disciplíne v technologickom priemysle, môže to spôsobiť, že budete hrdí na svoje koncepty počítačovej vedy. Oprášte ich, aby ste mali hladký začiatok cvičenia kódovania.
- 2Pochopte časovú a priestorovú zložitosť. Očakáva sa, že softvér produkčnej kvality bude efektívny. Časová a priestorová zložitosť sú štandardné metriky, ktoré to merajú. Časová zložitosť vyjadruje, ako dlho bude váš program trvať, kým sa zvýši množstvo dát. Zložitosť priestoru je mierou toho, koľko miesta zaberie to isté.
- 3Naučte sa dátové štruktúry. To, ako ukladáme údaje, má významný vplyv na to, ako efektívne ich môžeme čítať, písať a náhodne upravovať. Naučte sa alebo oprášte abstraktné dátové typy a možnosti implementácie každého abstraktného dátového typu. Praktický úvod do dátových štruktúr a analýzy algoritmov od Clifforda A. Shaffera je dobrý na hlboký ponor. Môžete si kúpiť brožovanú verziu alebo stiahnuť pdf zadarmo. Naučte sa minimálne časovú a priestorovú zložitosť všetkých základných dátových štruktúr skôr, ako si nacvičíte jednoduché kódovanie problémov. Sú to polia, zoznamy, fronty, mapy a binárne stromy.
- 4Naučte sa algoritmy. Naučte sa minimálne požadované algoritmy. Populárne hľadanie práce a profesionálne webové stránky vám prezradia, ktoré to sú. Tieto sa menia každý rok alebo niekoľko rokov. Poznáte kompromisy medzi časom a priestorom, keď vo svojom algoritme použijete dátovú štruktúru alebo ich kombináciu s iným.
Spôsob, akým ukladáme údaje, má významný vplyv na to, ako efektívne ich dokážeme čítať, písať a náhodne upravovať.
Časť 3 zo 7: Precvičovanie programovania
Väčšina pracovných miest vyžaduje vynikajúce kódovacie schopnosti. Je to dlhá tyč, vďaka ktorej budete mať svoje schopnosti ostré. Naplánujte si, že strávite niekoľko hodín každý týždeň na zdokonalenie tejto zručnosti.
- 1Vyberte programovací jazyk. Vyberte si programovací jazyk, s ktorým sa budete niekoľko rokov cítiť najpríjemnejšie. Python, Java, Javascript a C # sú najobľúbenejšie jazyky roku 2020 a existujú už nejaký čas. Pri výbere programovacieho jazyka vezmite do úvahy nasledujúce skutočnosti:
- Zvážte kompatibilitu s prípadom použitia. Niektoré jazyky majú pre konkrétne riešenia lepšie balíčky ako ostatné. Príkladom prípadu použitia je, ak chcete používať knižnice strojového učenia, knižnica NumPy v jazyku Python je populárna od roku 2020.
- Pochopte úroveň a preferencie vášho tímu. Ak tím silne preferuje a má skúsenosti v jednom jazyku, choďte do toho oproti porovnateľnému jazyku. Dôvodom je, že všetok vývoj bude prebiehať v tomto jazyku.
- Zvážte jednoduchosť použitia. Napríklad Python je jednoduchší ako Java. Ak sa chystáte napísať V1 alebo interný nástroj, nemusíte prechádzať na Javu, ktorá má vynikajúce podnikové knižnice.
- Vyhľadajte podporu a popularitu komunity. Webová stránka PYPL Popularita programovacieho jazyka radí jazyky podľa obľúbenosti na základe ich tutoriálového vyhľadávania. Vyhľadajte podporu komunity alebo podniku pre svoj zvolený jazyk. Dobrým meradlom je počet nedávnych nahlásení Git a reakcie na fórum pre vývoj. Tento jazyk zadajte do vyhľadávacieho panela nástroja na hľadanie práce. Porovnajte toto číslo s inými populárnymi jazykmi vo vašej oblasti. Zoznámte sa s dopytom po práci v tomto jazyku, ak hľadáte prácu.
- 2Zacieľte na viacero platforiem. Držte krok s najlepšími jazykovými zhodami s obľúbenými cieľovými platformami, ako sú Ubuntu, zariadenia IoT, EDGE computing, ARM.
- 3Jazyková verzia. Vyberte si najnovšiu a najobľúbenejšiu stabilnú verziu svojho jazyka, s ktorým si chcete precvičiť. Naučte sa najnovšiu verziu a funkcie, ktoré ponúka. Pri sledovaní najnovšej verzie si dajte pozor. Obetujte sa pomocou najnovších funkcií a nepretržite sa zamerajte na svoje kódovacie schopnosti.
- 4Zdokonaľte svoj prístup. Otázky týkajúce sa programovania vás zvyčajne požiadajú o vyriešenie skutočných alebo matematických problémov pomocou (a) dátových štruktúr a algoritmu. Cieľom vašej kódovacej praxe je lepšie využívať funkcie vášho jazyka a tiež schopnosť mapovať problém v reálnom svete na algoritmus. Vyriešte problém s viacnásobnými kompromismi časovej a priestorovej zložitosti. Svoje riešenie dolaďte čo najviac.
- 5Využite svoje zdroje. Knihy, ako napríklad prelomenie rozhovoru o kódovaní Gayle Laakmann, sú skvelým začiatkom. Webové stránky Leetcode a hackerské triedy poskytujú ihriská na písanie a spúšťanie vašich programov bez toho, aby ste museli inštalovať čokoľvek z vášho natívneho počítača. Ak sa prihlásite na odber, môžete sa zúčastniť diskusií na fóre a pozrieť si odporúčané riešenia s vysvetleniami. Svoj výkon a rýchlosť si môžete vyskúšať pomocou falošných rozhovorov. Majú súťaže, ktorých sa môžete zúčastniť a vyhrať peniaze. Geeksforgeeks analyzuje typy algoritmov obľúbených na pohovoroch a pomôže vám ich identifikovať.
Ak chcete pokračovať v konkurencieschopnej práci vývojára softvéru, musíte si preštudovať čas, aby ste zostali v obraze.
Časť 4 zo 7: Dizajn softvéru
- 1Revidovať koncepty objektovo orientovaného programovania. Buďte pripravení odpovedať na definície abstrakcie, zapuzdrenia, polymorfizmu a dedičstva aj po niekoľkých rokoch skúseností v odbore. Môže sa vám zobraziť otázka, aj keď sa uchádzate o prácu, ktorá v definícii rol nevyžaduje objektovo orientované programovanie. Najlepšie uviesť aj príklad.
- 2Oprášte objektovo orientovaný dizajn. Precvičte si diagramy tried. Upresnite, ako budú objekty vzájomne pôsobiť a aké informácie medzi nimi budú prúdiť. Nakreslite sekvenčné diagramy, aby ste pochopili postupnosť týchto akcií a ich životnosť. Buďte pripravení vysvetliť zásady SOLID.
- 3Oprášte dizajnové vzory. Existuje 23 hlavných návrhových vzorov. Prečítajte si originálne návrhové vzory od autorov G4. Ak je toho príliš veľa, prečítajte si najskôr programovacie idiómy. Sú dobrým odrazovým mostíkom k pochopeniu dizajnových vzorov.
- 4Naučte sa nové vzory architektúry. Na vývoj podnikového softvéru sa bežne používajú postranný vozík, pub / sub, rozbočovač lúčov a prerušovač obvodu. Lepšie je vopred si ich preštudovať, aby sa mohli lepšie zúčastňovať diskusií o dizajne. Pozrite sa, ktoré implementácie budete používať ako súčasť svojho technologického balíka.
- 5Získajte najnovšie školenie o dizajne systému. Interview s návrhom systému spoločnosťou Educative.io je pomerne obsiahle. Začnite tam. Prezrite si pri práci návrh systému vášho softvéru. Pochopte kompromisy, ktoré ste urobili, chyby, ktoré ste sa naučili. Toto je zlato, nech ste kdekoľvek.
- 6Zlepšite svoje znalosti o dizajne API. ZÁKLADY ODPOČINKU by mali byť silné. Naučte sa škálovať pre milióny transakcií za sekundu. Vždy predpokladajte, že zlomok údajov môže čerpať väčšinu prenosu.
- 7Využite svoje zdroje. Sledujte videá na Youtube, ktoré prechádzajú dizajnom systému. Webové stránky s kódovaním ponúkajú riešenia aj pre návrh systému. Získajte certifikát, ak nájdete užitočný kurz, ktorý má dobrú hodnotu za peniaze. Získajte knihu o údajovo náročných aplikáciách, ak v určitom okamihu zvážite úlohu architekta riešenia.
- 8Naučte sa databázy SQL a nosql. Databázové systémy NoSQL: Prieskum a poradenstvo pri rozhodovaní je skvelým miestom, kde môžete stavať na svojich znalostiach educative.io. Poznať vety CAP a PACELC pre návrh databázy. Zistite, čo vlastnosti ACID znamenajú pre databázovú transakciu.
- 9Zabezpečte svoj kód. Prečítajte si ďalšie informácie o štandardoch Transport Layer Security (TLS), Open ID Connect (OIDC) a správe prístupov založených na rolách (RBAC).
- 10Naučte sa kanály integrácie a nasadenia. Je potrebné vytvoriť všetok kód, ktorý musí byť zostavený, musí mať pokrytie testom jednotky 80% a musí prejsť všetkými testami jednotky. Všetky nasadené binárne súbory by mali byť živé a pripravené alebo spustené bez fatálnych výnimiek a reštartov. Najlepším spôsobom, ako zabezpečiť tento stav, je nastaviť kanály, ktoré automaticky odmietajú žiadosti o zlúčenie, ktoré porušujú tieto obmedzenia. Organizácia kontajnerov na vrchole virtualizácie je priemyselným štandardom od roku 2020. Znalosť konceptov je dostatočná, ak ich nepoužívate pri práci.
- 11Preštudujte si trhové požiadavky a priania. Európsky trh potrebuje softvér, ktorý fyzicky obsahuje osobné údaje občanov EÚ (osobné identifikačné údaje) v rámci európskych hraníc. Čínska vláda tiež musí vedieť o každom zariadení, ktoré vstupuje do čínskych hraníc a opúšťa ich. Oboznámenie sa so svetovými trhmi vám pomôže naplánovať a navrhnúť produkt pre rôzne trhy už od začiatku.
Časť 5 zo 7: hľadanie pomoci
- 1Využívajte fóra pre vývojárov. Fóra ako Stack Overflow, fóra Leetcode, Slack kanály, Reddit, Quora majú veľmi aktívne komunity, ktoré vám môžu pomôcť, ak sa niekde zaseknete. Stačí zadať jasnú otázku a počkať, kým komunita odpovie. Dodržujte ich pokyny a formáty pre príspevky, aby vaša otázka nebola zamietnutá.
- 2Opýtajte sa úspešných priateľov. Opýtajte sa priateľov, ktorí nedávno absolvovali pohovory alebo získali propagačné akcie, ako rozvíjali svoje schopnosti. Opýtajte sa aspoň niekoľkých.
Nové softvérové aktualizácie môžu potešiť používateľa, ak využije najnovšiu rýchlosť hardvéru a operačného systému.
Časť 6 zo 7: testovanie vašich schopností
- 1Urobte si testy schopností. Test zručností vyhľadávača práce je skvelým zdrojom informácií o tom, na akej úrovni sú vaše schopnosti. Je dobré ich predviesť, ak dosiahnete tiež dobré skóre. Ďalšou výhodou je, že ponúkajú školenia, ktoré vás dovedú k úspešnému absolvovaniu testu zručností, ak tak neurobíte.
- 2Pozrite sa na projekcie grafov. Test parapetov TripleByte vyhodnotí vaše silné a slabé stránky a premietne ich do grafu, aby ste poznali svoje celkové schopnosti.
- 3Robte si falošné rozhovory. Leetcode a podobné webové stránky majú pre vás falošné rozhovory, aby ste zmerali aj svoje schopnosti a načasovanie. Nemusíte sa uchádzať o prácu, o ktorú nemáte záujem, len aby ste zhodnotili svoje schopnosti. Stačí absolvovať jeden z falošných online rozhovorov. Požiadajte staršieho priateľa, aby s vami urobil rozhovor.
Prečítajte si tiež: Ako otáčať strany v dokumente PDF pomocou programu Adobe Acrobat?
Časť 7 zo 7: sledovanie trendov a osvedčených postupov
- 1Prihláste sa na odber konferencií a konferencií organizovaných vašimi obľúbenými spoločnosťami, stretnutiami a priateľmi. Získate tak prehľad o aktuálnych priemyselných trendoch, problémoch v reálnom svete a širšej sieti. Zúčastnite sa interných prezentácií a relácií o hnedej taške, aby ste videli, aké problémy riešia iné tímy a v čom by ste mohli požiadať alebo pomôcť.
- 2Rámce výskumu. Po výbere jazyka je ďalším krokom rozhodnutie, s ktorým rámcom chcete pracovať (napr. Net,.NetCore alebo.NetStandard). Mali by ste byť schopní namapovať svoje požiadavky na správny rámec.
- 3Vyhľadajte spätnú väzbu náborového pracovníka. Opýtajte sa náborového pracovníka, čo by ste mohli v budúcnosti urobiť lepšie, ak vám neurčia pracovnú ponuku. Je možné, že nedostanete použiteľnú spätnú väzbu. Ak budete mať šťastie a budete mať, budete mať hneď na čom na čom pracovať.
- 4Pohovorujte s kandidátmi pre vašu spoločnosť. Pohovor s vašou spoločnosťou vás prinúti zrevidovať svoje základy a naučiť sa nové spôsoby riešenia problémov. Inteligentní kandidáti majú zaujímavé a originálne nápady, ktoré môžete doplniť o svoje vedomosti. Je to tiež vynikajúci spôsob nadväzovania prepojení s priemyslom. Aj keď dobrý kandidát túto ponuku neprijme, zostaňte s nimi v kontakte pre prípad, že by sa v budúcnosti vyrovnali.
- 5Prihláste sa na odber noviniek z tohto odvetvia. Zaregistrujte sa a dostanete upozornenie na trendy v odbore. Buďte náskok a pripravte sa na sľubné technológie skôr, ako sa stanú štandardom. Prelomové zmeny a slabé miesta si vyžadujú okamžité kroky. Buďte prvý, kto to vie.
- 6Zúčastnite sa hackatonov. Hackathony majú spravidla veľkých sponzorov a zdroje na získanie nových zručností. Ak máte projekt garáže a vyhráte, mohli by ste získať financovanie startupov na hackathon. Je to skvelý spôsob, ako spoznať nových ľudí a dostať sa do povedomia.
- 7Preskúmajte najnovšie technické parametre hardvéru a operačného systému. Nové softvérové aktualizácie môžu potešiť používateľa, ak využije najnovšiu rýchlosť hardvéru a operačného systému. Navrhnite prenosný softvér schopný prevádzky a využívajúci výhody hardvérových schopností používateľa.
- 8Prispejte do otvoreného zdroja. Príspevok do otvoreného zdroja je skvelý spôsob, ako odvďačiť komunitu vývojárov. Noví vývojári sa môžu naučiť štandardy otvoreného zdroja. V každej fáze je to výhra pre všetkých. Buďte si vedomí svojich firemných zásad prispievania do open source skôr, ako to urobíte.
- Dávajte si pozor na spoločnosti, ktoré robia pohovory s kandidátmi, aby sa dozvedeli o dôverných informáciách.
- Nezdieľajte vnútorné architektúry a návrhy.
- Nezdieľajte verzie softvéru, ktoré používate. Len mená. Môžete nevedomky vystaviť chyby zabezpečenia.