Silně musím souhlasit s kolegou @Doctore97. Jestli se chceš programováním živit, tak si opravdu musíš najít jinou motivaci než jsou peníze, protože to je velice slabá motivace na to co tě čeká a co se všechno musíš naučit.. anebo si myslíš že 40K-60K hrubého je málo v porovnání s ostatními povoláními? Radši bys chtěla 80K-120K? :) ;) (
https://www.platy.cz/platy/informacni-technologie/programator-php)
Ale zpátky k tvé otázce.. Než se rozhodneš pro jaký jazyk nebo technologii se zaměřit, tak je dobré si pro začátek ujasnit, CO chceš vlastně programovat nebo na jaký typ softwaru se zaměřit.
Může to být následující:
- Tvorba webových stránek
- Tvorba webových aplikací (SPA nebo PWA)
- Tvorba desktopových aplikací (pro linux, windows, mac os)
- Tvorba mobilních aplikací (pro android, iOS)
- Tvorba multiplatformních aplikací (desktop, mobily, tablety)
- Programování operačních systémů nebo programů pro embedded zařízení
- Tvorba REST API na backendu
- Tvorba microservices na backendu (komunikující přes nějaký message broker nebo gRPC)
- Tvorba scriptů
- Tvorba her
Zde trochu více podrobněji rozepsano se základními technologiemi:
- Tvorba webových stránek
=> musíš se naučit minimálně: HTML, CSS, JavaScript + nějaký framework pro backend
- Tvorba webových aplikací (SPA nebo PWA)
=> musíš se naučit minimálně: Základy tvorby webových stránek + nějaký frontendový framework (React, Vue, Angular)
- Tvorba desktopových aplikací (pro linux, windows, mac os)
=> musíš si vybrat platformu a podle toho technologii: (C#/.NET pro Windows, Swift/Objective-C + SwiftUI pro macOS a Vala/GObject nebo Qt/QML pro Linux)
- Tvorba mobilních aplikací (pro android, iOS)
=> musíš si vybrat platformu a podle toho technologii: (Java/Kotlin + AndroidSDK nebo Swift/Objective-C + iOS SDK)
- Tvorba multiplatformních aplikací (desktop, mobily, tablety)
=> u multiplatformních aplikací je vždycky problém, že čím více platforem podporuješ, tím více daná technologite žere výkonu a paměti a navíc všechno musíš testovat na vícero různých zařízení..
zde si můžeš vybrat: Dart/Flutter, Javascript/TypeScript + ReactNative, Javascript/TypeScript + Electron, Java/Kotlin + JavaFx, Apache Cordova/Ionic/PhoneGap/Capacitor
- Programování operačních systémů nebo programů pro embedded zařízení
=> zde je asi jasné: C/C++ nebo Rust (ten jsem ale zatím ještě moc často neviděl, že by někdo v praxi hledal, ale taky se takoví jistě najdou..)
- Tvorba API na backendu
=> zde je opravdu hodně velký výběr: Python/Django, JavaScript/Typescript + node.js + express.js, Ruby/Rails, C#/.NET, Java/Spring, Kotlin/Spring, PHP/Nette nebo Laravel
plus si musíš vybrat nějakou SQL nebo noSQL databázi..
- Tvorba microservices na backendu (komunikující přes nějaký message broker nebo gRPC)
=> microservices se můžou zase psát v libovolném jazyce, většinou se ale používají speciální odlehčenější frameworky, ale najdou se samozřejmě i výjimky..
Python/Flask nebo FastAPI, JavaScript/Typescript + node.js + express.js, C#/.NET Core, Go/Gin nebo Chi, Java/Micronaut, Kotlin/Ktor
- Tvorba scriptů
=> pokud by ses chtěla náhodou věnovat správě serverů nebo přičichla k DevOps, určitě se ti budou hodit znalosti psaní jednoduchých scriptů v Pythonu nebo Bashi ;)
- Tvorba her
=> Zde to už je jednoduché. Vybereš si nějaký herní engine a je to.. Nejpopulárnější jsou: Unity, Godot Engine, Unreal Engine nebo CryEngine
Tak toto je takový základní přehled. Nebudu ti tu vypisovat úplně všechno, ale jakmile se zanoříš do některé z těchto zaměření, tak zjistíš, že se toho musíš naučit mnohem více než co jsem ti tady napsal a toto je opravdu jenom hooodně povrchní základ a nikdy nevíš jak hluboko králičí nora ve skutečnosti vede ;)
Takže nyní je na tobě vybrat si jedno z těchno zaměření a věř mi že je úplně fuk co si vybereš, protože všechno má své klady a zápory.
Můžeš si projít trh práce, například na StartupJobsu, ale vždy je to různorodé a neustále se to mění..
Jestli chceš vydělávat velké peníze, tak musíš dělat buď na něčem, na čem už nikdo dělat nechce jak už kolega zmiňoval výše COBOL nebo Fortran anebo na něčem, co jen tak někdo nedokáže, ale k tomu je mít potřebné znalosti a ty můžou být absolutně libovolné.. (a musí se taky najít někdo kdo ti za to bude také ochoten zaplatit samozřejmě)
Ovšem pokud by ses chtěla věnovat například tvorbě jednoduchých webových stránek například v HTML, CSS, JavaScript a PHP, tak tohle už umí dělat tolik lidí, že to v podstatě snižuje celkovou cenu na trhu..
Ale pokud budeš dostatečně dobrá, tak že vyděláš dané firmě za měsíc více jak 200K, tak si nemyslím, že by pro danou firmu měl být problém tě dost dobře zaplatit.. ;) a je jedno jestli to bude v PHP anebo v čemkoliv jiném..
Já osobně co ti doporučuju je: Vrat se k Pythonu, když už jsi se v něm začala učit tak je nesmysl teď na začátku přecházet někam jinam.
Nauč se Django. V dnešní době je opravdu velká sháňka po Python/Django developerovi. Až budeš znát podmínky, cykly, pole, funkce a třídy a budeš je mít opravdu v malíku, přečti si a nauč se něco o OOP, přečti si něco o funkcionálním programováni, nauč se psát funkcionálně v Pythonu, udělej si jednoduchou konzolovou aplikaci v Linuxu, projdi si všechny možné package, knihovny a libraries, který ti daný ekosystém nabízí. Můžeš se kouknout na PyGame a napsat si vlastní hříčku, nauč se jak se pracuje s grafikou a se zvukem anebo jak se generuje PDF, přečti si něco o multithreadingu a paralelním běhu programu, přečti si něco o asynchronním programování a vyzkoušej FastAPI. Pokud se naučíš s Djangem, budeš se muset naučit i pracovat s nějakou SQL databází (MySQL, Postgre, MariaDB, MSSQL, apod.) potom se můžeš kouknout na nějaké noSQL jako třeba Mongo nebo CouchBase a aby toho nebylo málo tak se můžeš kouknout i na Redis ;)
A to se stále držíme jenom Pythonu a co v něm můžeš dělat na serververové straně a těch základních technologií na které tam můžeš narazit a problémů které během této dlouhé cesty budeš muset překonat bude nespočet..
Už chápeš co se ti snažím říct? K tomu aby se z tebe stala opravdu dobrá softwarová vývojářka ti nestačí pár měsíců a jenom znalost jednoho jazyka.. Tohle je práce na několik let a chce to pochopit opravdu do hloubky jak funguje ten stroj co máš před sebou, pochopit jaké možnosti ti nabízí jazyk který ovládáš a co všechno ti dává ekosystém daného jazyka anebo frameworku.
Až toto budeš mít v malíku, tak můžeš přejít jinam a vyzkoušet nějaký jiný jazyk, framework a ekosystém, který je vytvořen kolem dané technologie. A až uvidíš jak moc se všechny možné technologie od sebe liší ať už více či méně, tak ti potom spadne čelist..
V podstatě co já jsem za svůj život viděl, vyzkoušel a zažil, tak ti můžu říci jediné..: Je jedno s čím začneš. Pokud už ses seznámila s Pythonem, tak se ho drž a nauč se Django. S tím se nikde neztratíš a můžeš vydělávat velké prachy ;) Ale pokud by ti z nějakého jiného důvodu nevyhovoval, například jsi nechtěla programovat na backendu, tak se vrhni na vývoj webového frontendu, desktopového anebo mobilního softwaru. Možnosti jsou neomezené. Budeš se muset jenom přeučit na novou technologii a to bude zase vyžadovat léta praxe.. ale je úplně fuk čím začneš. Podstata a základy jsou všude stejné. Vždy budeš někde řešit nějaké problémy (at uz velké nebo malé) a podle toho jak budeš úspěšnější a rychlejší v řešení daných problémů než kdokoliv jiný, tak podle toho taky budeš ohodnocena.. ;)
Zatím se měj fajnově a přeju ti mnoho úspěchů a hodně zdaru v tvé programátorské kariéře ;-)
Martin
6. 7. 2021 01:41:41