Michání jazyků v práci

peete

Michání jazyků v práci
« kdy: 25. 06. 2023, 16:25:16 »
Dejme tomu že jako kontraktor bych dělal dopoledne 4 hodiny pro jednu firmu Ruby on Rails, React, atd. (to se budu muset doučit) a odpoledne pro jinou firmu 4 hodiny PHP, Laravel, Vue, Tailwind, atd. (to už umím). Co myslíte, dá se to? Nebo budu mít v hlavě akorát zmatek a budu si to plést?


CPU

  • *****
  • 870
    • Zobrazit profil
    • E-mail
Re:Michání jazyků v práci
« Odpověď #1 kdy: 25. 06. 2023, 16:28:26 »
Nevím, jak to budeš dávat ty, ale já při míchání Pythonu s C# a Powershellem flákal chyby :-( Nicméně údajně to je otázka zvyku, než si zvykneš. Asi to vidíš podobně, když se ptáš.
« Poslední změna: 25. 06. 2023, 16:31:03 od CPU »

Re:Michání jazyků v práci
« Odpověď #2 kdy: 25. 06. 2023, 16:58:26 »
Je to o zvyku, vacsi problem vidim skor pracu na viacerych projektoch ak sa jedna o nejake vacsie/komplexnejsie projekty - osobne som s tym mal vacsi problem ako robit s viacerymi technologiami naraz. Pretoze niekedy sa robota proste natiahne lebo nieco nejde tak jednoducho ako sa ocakavalo a hned je problem ze uz mas robit na druhom projekte pritom na prvom mas nieco rozrobene co proste nemozes nechat lezat -> ani jeden projekt nezaujmaju problemy toho druheho a ty akurat tak skoncis medzi dvoma mlynskymi kamenmi.

Kit

  • *****
  • 708
    • Zobrazit profil
    • E-mail
Re:Michání jazyků v práci
« Odpověď #3 kdy: 25. 06. 2023, 18:28:29 »
Řeším to tak, že v každém jazyce mám makra se shodnými názvy, stejným významem, ale odlišnou výstupní syntaxí. Výsledkem je, že píši ve všech jazycích zhruba stejně a editor to napíše správně podle daného jazyka.

Re:Michání jazyků v práci
« Odpověď #4 kdy: 25. 06. 2023, 20:31:53 »
Řeším to tak, že v každém jazyce mám makra se shodnými názvy, stejným významem, ale odlišnou výstupní syntaxí. Výsledkem je, že píši ve všech jazycích zhruba stejně a editor to napíše správně podle daného jazyka.

A ako vyuzivate pokrocilejsie funkcie jazyka, ci uz nejake jazyk specificke klucove slovo, alebo celkovo syntax/strukturu kodu?

Priklad, rozne jazyky vyuzivaju geter a seter metody pre pracu s internymi premennymi triedy, C# ma property.
Rozne jazyky maju tuple triedy, rozne ine nie, plus casto ich pouzitie je ine.
Ako pisete kod vyuzivajuci function pointre? (mozno to poznate pod pojmom delegati).
Atd, dalo by sa tich prikladov najst desiatky, ale nechce sa mi na tom palit cas.

Ako teda dokazete na nejakej pokrocilejsej urovni pisat "univerzalny kod"?
« Poslední změna: 25. 06. 2023, 20:33:29 od kanoe22 »


Kit

  • *****
  • 708
    • Zobrazit profil
    • E-mail
Re:Michání jazyků v práci
« Odpověď #5 kdy: 25. 06. 2023, 21:51:56 »
A ako vyuzivate pokrocilejsie funkcie jazyka, ci uz nejake jazyk specificke klucove slovo, alebo celkovo syntax/strukturu kodu?
Priklad, rozne jazyky vyuzivaju geter a seter metody pre pracu s internymi premennymi triedy, C# ma property.
Rozne jazyky maju tuple triedy, rozne ine nie, plus casto ich pouzitie je ine.
Ako pisete kod vyuzivajuci function pointre? (mozno to poznate pod pojmom delegati).
Atd, dalo by sa tich prikladov najst desiatky, ale nechce sa mi na tom palit cas.
Ako teda dokazete na nejakej pokrocilejsej urovni pisat "univerzalny kod"?
Gettery ani settery nepoužívám (považuji je jen za módu z C#) ale běžně při zakládání třídy uvedu všechny privátní atributy. Vygeneruje mi to kostru třídy i s konstruktorem.

Konstrukty, které jazyk nemá, prostě nemá. Proč bych měl v makrech editoru ošetřovat každou blbost? Však vidím, co mi to vyrobí a případně si to upravím podle svých představ. Není to makrojazyk, ale on-line nástroj. Některá makra si píši ad-hoc a po použití je nechám zapomenout.

Nepotřebuji, aby to bylo dokonalé. Makra mi prostě pomáhají s psaním kódu. Zejména ty části, které používám často.

Re:Michání jazyků v práci
« Odpověď #6 kdy: 25. 06. 2023, 22:36:49 »
Dělám celkem běžně 2 práce v různých jazycích, ale né v jeden den. Doporučil bych 2 dny 1 práce, a 3 dny druhá - takto switchovat je celkem v pohodě.

Spíš mám z dotazu pocit, že pojedeš 2 full time joby, což se taky dá, ale rozhodně ne dlouhodobě. Je to na palici, znám to.

Re:Michání jazyků v práci
« Odpověď #7 kdy: 25. 06. 2023, 23:41:57 »
Zalezi, ako to ty zvladas. Ja v praci fungujem na c#+oracle, v predchadzajucej praci to bol mix php, javascript, c#, mssql.
Doma po nociach zase c#, js, mysql, arduino, obcas bash
Ja nemam problem ani prepinat medzi roznymi sposobmi pisania, kedze v praci maju nastavene iste pravidla, ale doma pisem trocha inak.

oss

  • ***
  • 246
    • Zobrazit profil
    • E-mail
Re:Michání jazyků v práci
« Odpověď #8 kdy: 26. 06. 2023, 07:37:26 »
Ja s tym nemam najmensi problem. Ono horsie ako prepnutie jazyka je context switching.

Popripade mam taky trik, ze na iny jazyk mam nastavenu inu farbu IDE.

Re:Michání jazyků v práci
« Odpověď #9 kdy: 26. 06. 2023, 10:12:24 »
Ja dva joby nemam, ale v praci vcelku bezne stridam nekolik jazyku/technologii.

Extrem byl, kdyz jsem na projektu delal v C++ (coz byl primarni jazyk), C#, Python, PowerShell a neco (fakt malo) bash.

Podle me to v pohode jde, kdyz mas trochu prehled o technologiich a vis, jak programovaci jazyky funguji (a znat par best practises pro ten jazyk). Narocnost stoupa, kdyz pracujes s hodne odlisnejma jazykama (treba C++ vs. React v JS).

Python, PHP je (principielne) skoro to samy, Ruby neznam tak dobre, ale IMO to taky nebude tak odlisny. A jestli nepises nejaky knihovny a zhusta nevyuzivas reflection, metaclassy apod., tak bych v tom zadnou rocket science nevidel. OOP funguje vsude stejne.

Je to jako s lidskejma jazykama, stridat rodnej jazyk a anglictinu je taky vcelku normalni (a to jeste nekdo zna plynule vic jazyku). Anglictina a cestina jsou taky uplne jiny jazyky (anglictina analytickej, cestine flektivni).

Re:Michání jazyků v práci
« Odpověď #10 kdy: 26. 06. 2023, 12:35:15 »
Míchání jazyků je třeba u psaní webu velmi běžná věc. Ano, je tu Node.js a jsou tu různé transpilery (např. Scala.js), takže možnosti mít na klientovi i serveru stejný jazyk tu jsou, ale z různých důvodů je zdaleka ne každý používá. A pokud nejsou striktně rozdělené role server-side a client-side programátorů, nevyhnete se střídání jazyků ani v rámci jedné práce.

Jestli je to naprosto bez problémů? Ne. Různé jazyky mají svoje specifika, a možná se budete někdy násilně pokoušet použít postup vhodný pro jiný jazyk. Chce to vnímat odlišnosti – a to nejen v syntaxi, ale i v konvencích (camelCase, PascalCase, snake_case) a ve vhodných postupech.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Michání jazyků v práci
« Odpověď #11 kdy: 26. 06. 2023, 12:45:59 »
Jak psali předřečníci.

Má zkušenost: míchám/přepínám C#, PHP, JS, Lua, Rust, Bash, etc. Celkem bez problémů. Horší je přepínat projekty. Pár desítek minut mi trvá, než najedu. Takže jak popisuješ dopoledne odpoledne by možná šlo, ač je to hraniční. Stejně budeš strašně vyšťavenej, protože sis toho nakrkal hodně.

Re:Michání jazyků v práci
« Odpověď #12 kdy: 27. 06. 2023, 00:18:45 »
obtížnost je naprosto stejná jako u míchání mluvených jazyků, někomu to jde skoro samo, někdo s tím má obrovské problémy. Pokud se něco musíš učit, pravděpodobně s tím problémy budeš mít a z mé zkušenosti v počátku je důležité věnovat souvislý blok jednomu jazyku/prostředí a dostečně si ho zažít.

Běžně pracuji ve spoustě jazyků, mainstreamových i těch okrajových a to je to, za co si nechávám pěkně platit a čím převyšuji ostatní. Vždy mi ale trvá pár vteřin se zorientovat, ale mám to na stejné úrovni jako změnu frameworku nebo projektu, prostě najednou přemýšlím v jiném kontextu. Hodně jsem si to procvičil na open source, 30 let přispívám do různých projektů v několika jazycích, to si člověk zažije.

Než jazyk, dnes mi dělá největší problémy nestabilita api frameworků a jejich obrovská rychlost rozvoje a změn. Nemám šanci pochytit všechny novinky a někdy si to musím dostupovat.


Re:Michání jazyků v práci
« Odpověď #13 kdy: 27. 06. 2023, 10:04:07 »
Dělám celkem běžně 2 práce v různých jazycích, ale né v jeden den. Doporučil bych 2 dny 1 práce, a 3 dny druhá - takto switchovat je celkem v pohodě.

Spíš mám z dotazu pocit, že pojedeš 2 full time joby, což se taky dá, ale rozhodně ne dlouhodobě. Je to na palici, znám to.
Souhlasim se switchovanim v delsich cyklech (aspon cele dny). Nejde jen o jazyk, ale projekt celkove.
Děkuji za možnost editace příspěvku.

Re:Michání jazyků v práci
« Odpověď #14 kdy: 28. 06. 2023, 11:53:19 »
Rozumím, že je to pouze příklad, nicméně.

V dnešní době, pokud člověk cílí na nějaký work-life balance a dobré peníze, bych rozhodně doporučil specializaci na konkrétní set technologií. Jestli bude člověk ráno dělat něco (pokud tedy jde o klasický webdev) v Djangu, dopoledne ve Springu, po obědě tam zapne Rails, a odpoledne něco doprogramuje v Nodu, tak jednak si bude sám přidělávat zbytečnou práci držením kroku se stále se zrychlujícími release cykly, druhak si naloží zbytečným context switchem, no a ve finále nebude do hloubky pravděpodobně umět ani jednu z technologií, což ho typicky bude směrovat do těch typů prací, kde se od rána do večera bouchá ten nejprůměrnější CRUD, který není nijak zázračně placený.

Nebavím se o někom kdo se v tom hrabe 30 let, a vyzkoušel si na dlouhé roky většinu mainstream platforem, to není běžný případ.

Samozřejmě, v rámci zájmu je asi dobré mít přehled, ale osobně bych spíše ten přehled směřoval někam, kde se člověk naučí nějaké jiné paradigms, přístupy, a skutečně obohatí své znalosti. A nebo, pokud cílí na peníze, se naučil technologie dobře placené, a v těch byl full time.
« Poslední změna: 28. 06. 2023, 11:57:29 od LambdaLover »