Closed honzajavorek closed 3 years ago
Open Source contributing:
GIS - http://gismentors.cz/
Myslím si, že by bylo nejlepší, rozdělit skilly které člověk potřebuje, podle zaměření, čemu se chce ve své profesi věnovat.. Jednoduše by byl nějaký článek, který by vysvětloval, že existuje:
A jednoduše podle toho co by kdo chtěl dělat by mu byly představeny technologie, se kterýma by se měl naučit.
Bylo by asi fajn to udělat více interaktivní, aby se to nezdálo jako moc informací na jedné stránce, ale jednoduše pomocí otázek:
-> Jsi začátečník v programování?
- Ano -> Python a naučíš se tak základy programování, které uplatníš i všude jinde
- Ne (Už umím minimálně Python)
-> Jaký software bys chtěl vyvíjet?
- Mobilní aplikace
-> Pro jaký systém?
- Android -> Kotlin
- iOS -> Swift
- Obojí zároveň -> Flutter, React Native, Xamarin
- Desktopové aplikace
-> Pro jaký systém?
- Windows -> C#/.NET
- Linux -> Vala/GObject nebo C/C++
- Mac OS -> Swift
- Multiplatformě -> Java/Kotlin + JavaFX, Flutter
- Počitačové hry
-> Chceš se tomu věnovat opravdu profesionálně?
- Ano -> Unity, UnrealEngine, CryEngine
- Ne (chci si to jenom vyzkoušet jaké to je) -> Godot, GameMaker, Haxe, Python/Pygame, Java/libgdx, MonoGame
- Webové stránky
-> Jaký druh webových stránek?
- Jednoduché webové stránky (jenom pár stránek nebo blog) -> HTML, CSS, JavaScript/nodejs
- Komplexnější webové aplikace (něco podobného jako Alza eshop nebo Email schánka od Seznamu či Googlu)
-> Chceš dělat na Frontendu (programovat to co vidí uživatel) nebo na Backendu (programovat to co se odehrává na serveru)
- Frontend -> JavaScript/TypeScript + React nebo Vue.js
- Backend
-> Pro jaké servery?
- Linux -> Java/Spring, Kotlin/Spring, JavaScript, TypeScript, Go
- Windows -> C#/.NET
- Operační systémy
- C, C++, Rust
- Software pro hardware
- Tady osobně nevím nikdy jsem software pro nějaký specifický hardware neprogramoval, ale typuju tak, že zde
může být: C, C++, Python
A potom ukaždé technologie by bylo krátké posouzení jaké jsou výhody/nevýhody v porovnání s ostatními pro stejnou platformu, zaměření, apod..
Navíc by se to ještě i dalo rozšířit i o další jiné IT obory a zaměření:
- Ne (Ale nechci se věnovat vývoji softwaru chci zkusit něco jiného)
-> Chtěl bys zkusit spravovat servery?
-> Chtěl by ses věnovat testování?
-> Chtěl by ses věnovat technickému supportu?
-> Chceš se naučit něco z počitačové bezpečnosti?
- ...
Navíc aby tu nebyla všude obrovská škála všech možných jazyků, tak by se uváděli opravdu jenom ty nejpoužívanější a co jsou všeobecně mezi vývojáři oblíbené technologie. Například jsem zde neuvedl Angular nebo PHP, protože se poslední dobou v oblíbenosti mezi vývojáři neobjevují na moc vysokých pozicích a existují pro ně adekvátní náhrady: https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-loved https://2019.stateofjs.com/front-end-frameworks/
Takže proč by se je Junioři měli učit?
@mjablecnik Díky, jsou to dobré nápady a četl jsem to, ale stále to nechávám uzrát. Mám to rozmyšleno podobně, jak navrhuješ, podle profesí (viz https://github.com/honzajavorek/junior.guru/issues/19). Zároveň by mohl být nějaký rozhodovací strom podle toho, co člověka nejvíc láká. Akorát začátečníci občas vůbec nevědí, co chtějí, takže s tím by to muselo umět pracovat. Teď to řeším vlastně tak, že jim dám "tu nejlepší výchozí volbu" a toto rozhodování tím posunu v podstatě až někam na moment získávání první práce.
Mám Trello, kde mám všechny úkoly k junior.guru a maximálně mi to vyhovuje, takže toto issue zavřu. Issues na GitHubu nechám vyhrazeny pro případ, že chce někdo nahlásit chybu, poskytnout další nápad, apod.
Seznam materiálů přes prisma trendu trhu - mám nabídky, podle poptávky můžu třídit skilly. Data můžu brát i z GitHubu, JetBrains, StackOverflow.