Nejlepší odpověď
Skutečná odpověď je: „To záleží!“. Záleží na tom, který výřez vás více zajímá – Front-end, Full-stack, Backend, Data-science atd. Základ pro všechny tyto lze vyjmout takto:
- Vyberte si svůj oblíbený programovací jazyk. Naučte se každý koncept tohoto jazyka procvičováním jeho použití v nějakém problému s kódem nebo v jiném. To položí dobrý základ pro osvojení dalšího programovacího jazyka, i když je to paradigma úplně jiné. Chcete-li ocenit A, měli byste mít chuť na B, protože v určitém smyslu je vše relativní. Začali byste porovnávat jazyky podle toho, jak řeší některé problémy.
- Do Code Katas. Zkuste vyřešit stejný problém různými způsoby. Promyslete si různé přístupy, které jste zkoušeli. Udělejte to pro všechny ostatní kata kódu, které děláte. Pomáhá to!
- Vytvořte mini-projekt, který vyřeší nějaký problém. Po nějaké době to znovu zkontrolujte a zjistěte, zda můžete přidat funkce. Pravděpodobně byste se měli týrat kvůli špatné práci, kterou jste dělali. To je dobrá realizace. Přemýšlejte nad svými chybami, přemýšlejte o tom, jaký je lepší způsob, jakým jste se vydali. Poučte se ze svých chyb. Toto je skutečná zkušenost. Zkušenost není v počtu, ale v tom, co se naučíte, když pracujete na věcech.
- Vyberte nějaký kód mini-projektu nebo knihovny z Githubu a přečtěte si kód, abyste zjistili, jak je nějaký problém vyřešen. Čtení a přemýšlení prostřednictvím kódu druhému pomáhá.
- Čtěte knihy, blogy atd.
- Začněte si psát myšlenky prostřednictvím blogů. Určitě to pomůže vašemu učení.
- Zúčastněte se setkání a konferencí, abyste získali know-how o tom, co se děje kolem. Mohlo by to navodit vaše učení. Nakonec všichni potřebujeme dávku motivace a smysl pro účel, které se čas od času vyvolají.
- Zkuste se podělit o svá učení na setkáních a konferencích. Funguje to na vás magicky – vážně.
Speciální tip: Už jsem zmínil, že po cestě pravděpodobně narazíte na spoustu vtipálek, kteří by vám vysáli energii a čas a odradili vás od co děláš. Naučit se rozlišovat kritiky od žolíků je obrovská záchrana života.
To je to, co jsem dělal od začátku své kariéry a dělám to všechno i dnes.
Odpověď
Záleží na tom, co myslíte softwarovým inženýrem. Nejlepší zdroj pro softwarové inženýrství, který jsem našel, je zkušenost. Vydrž se mnou. Většina odpovědí se zdá být o programování a programování má opravdu mnoho skvělých zdrojů (se spoustou dobrých příkladů v odpovědích zde). Vždy jsem cítil, že se problém rozpadá na tři kategorie:
- Programování. Vyberte rozumný jazyk pro nejrůznější problémy, které dnes chcete řešit. Naučte se to dobře. Hodně praxe. Spoustu čtení kódu dalších respektovaných odborníků. Napište další. Přidejte jazyk podle potřeby nebo podle zájmu.
- Algoritmy, datové struktury, srovnávací jazyky a soubor znalostí obecně označovaných jako informatika. To je to, co zvedá hru od řešení problémů v malých, k řešení velkých problémů, jejich účinného (nejen efektivního) řešení a pochopení limitů řešení, abyste je mohli vysvětlit.
- „Softwarové inženýrství „Je pro mě jiná věc než výše uvedené dva nápady. Jedná se o proces, kterým se software dodává „zákazníkům“. Je to konzistentní opakovatelné spolehlivé dodání řešení. Je zřejmé, že grafické uživatelské rozhraní je hezké pro vytváření počátečních testů konceptů / prototypů na ploše, ale nedostatečné pro dodání do „produkce“. Jedná se o porozumění doručovacímu potrubí v každém kroku a důvod, proč se každý krok provádí. Je to veškerá automatizace a disciplína. Bez disciplíny se software nemění. Kurz k tomu jsem ještě neviděl, protože jde většinou o školení na pracovišti. A spousta míst to pokazí. Chyby jsou nákladné.
Možná nejlepší metafora, kterou vám mohu dát, je vaření. Můžete se naučit vařit pro sebe docela rychle. Můžete dosáhnout dobrého na hrstce receptů a praxe vás zrychlí. Vykročte do vaření fantastického jídla pro přátele a rodinu a trochu vykročíte ze své komfortní zóny, možná budete potřebovat nové dovednosti, nové nástroje, nové recepty. Vezměte si třídu nebo dvě a můžete svou hru dramaticky vylepšit a výuka zahrnuje vše od nočních hodin na místní vysoké škole až po Le Cordon Bleu. Pak je tu krok k „restauraci“, která všechno změní. Nyní jde o spolehlivě opakovatelnou dodávku jídla lidem s očekáváním. Zdroje, dávky, předstupně, přípravu a nástroje můžete vytvářet jinak. „Industrializace“ procesu je „inženýrství“. A nyní jste součástí týmu. A je tu zákazník. Nezáleží na tom, zda jste stánkem taco nebo restaurací oceněnou michelinskou hvězdou, je to jiné. Žádné množství práce ve třídě vás plně nepřipraví na veškeré učení na pracovišti.
A můžete se začít učit všechny tři najednou. Prostě pochopte, na které ze tří sad dovedností pracujete, a nezapomeňte na další dvě sady dovedností. První dva mají tendenci přicházet s praxí, ale druhý přichází se zkušenostmi.