it-swarm-eu.dev

Co dělat, když se začne kódování cítit nudně, jako by to bylo všechno stejné?

Začal jsem programovat ve věku 6 let na Commodore 64. Nyní je mi 28 let a musím absolvovat 4 kurzy od prvního stupně informatiky.

Začínám se nudit psaním kódu po všech těch letech. Absolvoval jsem kurz informatiky v teoretických počítačových jazycích a 10 let kódování systému C v oblasti zabezpečení sítě a já prostě nemám žádnou stimulaci z psaní kódu.

Dokážu napsat kód v C, C++, Python nebo jakýkoli požadovaný jazyk, ale nemůžu se nadchnout tím, co dělám. Necítím žádnou výzvu. psaný vícevláknový kód, HTTPS MITM proxy a WSGI aplikace bez potřeby jakýchkoli konkrétních algoritmů.

Cítím, že všechny tyto nové věci jsou stejné, s jednoduššími (nebo více) abstrakcemi nebo automatizací, ale všechno mi to zní stejně. Znovu a znovu. Kompatibilní jazyk je Turing kompatibilní, takže kódování je pouze replikací podobného vzoru v této podmnožině dílčí funkce.

Při své každodenní práci se cítím znuděně i při hledání chyb, provádění benchmarků v kódu nebo vyřešení problému s knihovnou X, Y, Z.

Jsem velmi zvědavý člověk. Vždy mě něco povzbudilo. Ale nemohu ani když se podívám na skvělý kód. Cítím se pohodlněji v tom, jak věci fungují.

Je čas udělat pokrok v mé kariéře? Nebo získat náročnější věci v informatice? Možná získat hlavní titul v CS?

Začal jsem číst svou první knihu o řízení projektů „Peopleware“ a stále více mě zajímá životní cyklus vývoje softwaru. Co navrhuješ udělat?

Možná se snažím dostat do Google nebo Microsoft nebo Apple jako někteří moji přátelé udělali. Nebo možná více manažerské kariérní dráhy. Také jsem se pokusil najít dobrou knihu o pravidlech komunikace a „lidech“ osobnost “, aby mě připravila na možnost dostat se do řízení.

Nějaké návrhy?

PS: Mám velký zájem, nejsem v depresi :) Miluji hory, trekking, fotím a jsem sportovní horolezec, miluji plavání a sport obecně, někdy Běhám, vlastně čtu knihu o příběhu své země (Itálie) od AC k dnešnímu dni a miluji výlety (letos v létě jsem udělal 4000 km, abych viděl spoustu místa ve Španělsku a vyšplhal v něm, všechno za pouhé 3 týdny , ne dovolená, ale maratón, 24 km trekkingu mi způsobilo zranění kýly), miluji divadlo a život obecně.


Díky všem, přemýšlení o všech odpovědích mi dává příležitost, aby byla moje cesta jasnější.

Pro shrnutí můžeme zobecnit nejodvolenější odpověď.

Nejprve všichni lidé volí nutnost, aby naše práce podpořila váš život, a ne jediný důvod, proč zůstat v životě (to není můj případ), takže pokud máte jediný důvod života, pokud pracujete, rychle se dostanete do opravdu depresivní situace. Jak lidé říkají, Vídeň na vás nečeká :)

Po tomto připomenutí lidé navrhují:

  • zvýšit technickou složitost, na které vlastně pracuji, abych zvýšil výzvu a méně se o ni nudil.
  • změňte pole působnosti na netechnické pole a pokuste se stát manažerem nebo udělejte nějaký pečovatelský pokrok v netechnických oblastech souvisejících s vaší prací.
  • změnit obor v jiné technické výzvě, jste systémový programátor? pokuste se méně nudit vývoj aplikací pro člověka, abyste se mohli pohodlně dívat na lidi, kteří používají váš užitečný software
  • udělejte nějaký pokrok v oboru počítačové vědy na akademické cestě

Pro můj účel je správnou odpovědí postupovat v oblasti informatiky, protože podle mého názoru není programování jediný způsob, jak se dostat k počítačové vědě, a myslím, že se cítím lépe, když získám jinou cestu v oblasti počítačové vědy, která se liší od péče o softwarové inženýrství.

33
boos

To se muselo stát.

Pokud váš primární zájem spočívá v kódu, přivede vás to bláznivé, frustrované a depresivní jednou za čas, někdy natrvalo.

Zajímejte se o vývoj produktů a užívejte si, jak je lidé používají. To je konečný cíl psaní kódu, že? Kód je pouze nástroj, jak udělat něco většího.

49
user8685

Na vaši otázku odpovím otázkou ...

Je úkolem programátora kódovat nebo řešit problémy?

Říkáte, že se nudíte, protože psaní kódu vypadá jako něco, co jste předtím udělali, jako každý kousek kódu již byl proveden dříve.

Jak jste však dospěli k závěru, že ten kód je kód, který by měl být napsán? Většina problémů má stovky způsobů, jak to vyřešit, ale existuje pouze jeden nejlepší způsob.

Pokud opravdu nenajdete žádnou výzvu, zvědavost nebo zájem o nalezení řešení nebo řešení problémů, pak jste opravdu kvůli změně. I když si nejsem jistý, že by to bylo řízení vývoje softwaru. Nechtěl bych pracovat pro softwarového manažera, který pociťoval takovou apatii ohledně řešení problémů. Pravděpodobně by to měl být jen jiný průmysl, s jiným souborem problémů.

Pokud máte rádi řešení problémů, ale nemilujete kódování, možná nenajdete dostatek problémů k vyřešení. Kdykoli se moje práce začne cítit unavená, domnívám se, že je problém vyřešit. Proč dělám práci? Jaké řešení mohu přijít s tím odstraní rušnou práci z mé práce? To je krása programování.

21
Nicole

Zní to, jako byste udělali [~ # ~] hodně [~ # ~] procedurálního programování a unavili jste se z toho - což jsem plně rozumět. Specifikace krok za krokem je v každém procedurálním jazyce téměř stejná.

Protože to zní, jako byste měli spoustu mimopracovních aktivit, navrhl bych se naučit některé koncepty, které se nepodobají tomu, co víte dnes, a - ano - existuje spousta, ale na začátku bych doporučil Haskell, protože je to

  • funkční - píšete funkce, které jste dali dohromady, aby větší funkce nakonec vyústily v program.
  • líné vyhodnocení - namísto určování krok za krokem, runtime táhne hodnoty potřebné podle potřeby. To znamená, že je velmi běžné zabývat se nekonečnými seznamy ve vašich programech.
  • párování vzorů - namísto velkých struktur if vypisujete vzory pro to, jak parametry vypadají, a runtime vybere příslušný vzor a provede odpovídající kód.

Zde je kompletní funkce třídění:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Vysvětlení viz http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding )

Pokud je pro vás něco z toho nového, vyzval bych vás, abyste začali dobrodružství.

Hodně štěstí, užij si to.

9
user1249

Počítače nudí spotřebitele. Když kódujete interakce stroj-stroj celý den, stroj reaguje pokaždé stejně. Je dobré projekt dokončit, ale po chvíli je to únavné. Je to opravdu pomáhá rozbít jednotvárnost s něčím, co přímo nesouvisí se strojem.

Inspiroval jsem se jak fotografováním, tak studiem uživatelské zkušenosti. Přemýšlejte o tom, jak je to, že Apple může dostat kapky lidí slinujících se nad sebou pro další věc, která vyjde ze Santa Clary, když ostatní prodejci dostanou vlažnou reakci? Opravdu si myslíte, že = Android by dostal tak velkou odezvu, pokud Apple neodolal uvolnění iPhone na Verizonu tak dlouho? Dám vám velký náznak: není to nutně, že tyto výrobky jsou tak technicky vyspělé. Mánie má obrovskou psychologickou složku.

Porozumění designu produktu a uživatelské zkušenosti je něco, o čem se mnoho z nás má toho hodně co naučit. Co dělá někoho zatrhnout? Jak navrhujete něco tak cool, aby lidi opustili zavedené řešení? Jak si vytvoříte svůj vlastní technologický kult, jako Apple (ne, že jsem aspiroval na to, aby vám byl kultovní vůdce)? To vše jsou velmi zajímavé a podnětné otázky. - ale nyní je vaše zaměření jiné.

8
Berin Loritsch

Pravděpodobně nemáte dost technické výzvy?

  • Vyzkoušejte vysoce distribuované systémy. Dokážete snadno kódovat systém pro shromažďování protokolů z 1000 počítačů v klastru s přesností na mikrosekundy?
  • Zkuste hard-realtime. Zabalte všechny své procesy do jedné rotace motoru.
  • Vyzkoušejte počítačové vidění nebo zpracování obrazu. Hodí se matematické dovednosti, dovednosti formulované v kódu, optimalizační dovednosti.
  • Zkuste AI. Podívejte se, jak je počítač IBM ohrožen? Pravděpodobně se v této oblasti podílí určitá algoritmická sofistikovanost.

Atd. Samozřejmě buďte zpočátku méně vydělávat v oblasti, kde je pro vás něco náročné, ne nudné.

7
9000

Motivaci jsem našel přesunutím do oblasti, která nemá žádná „správná“ řešení, píšu redakční nástroje a moje práce je tak dobrá, jak ji uživatelé považují za užitečnou. Setkávám se se spoustou netechnických lidí a společně se snažíme připravit způsoby, jak vylepšit software, se kterým potřebují pracovat, najdu lidské interakce a potřebu neustále přepínat perspektivy důkladně zábavným a náhle kódování není už tak únavné.

Vím, že to není pro každého, i když někteří řeší nejistotu, že nemají objektivní měřítko kvality vaší práce těžší než ostatní.

Je to však možnost, kterou by stálo za zvážení.

4
biziclop

Ano, někdy mám pocit, že jeden ve skutečnosti píše znovu a znovu stejný druh kódu. Ale ne, ještě jsem se tím nenudil. Proč?

Protože se mi v podstatě líbí objevování nových způsobů kódování a nových, stručných a elegantních způsobů vyjádření něčeho v kódu. Existují dva možné způsoby, jak toho dosáhnout: Učit se nové programovací jazyky nebo učit se nové knihovny nebo rámce.

Učení nového programovacího jazyka pro mě bylo snazší s každým jazykem, který jsem vyzkoušel. A po nějaké době to bylo velmi zajímavé. Ale pak, asi před jedním nebo dvěma lety, jsem se konečně dostal k funkčnímu programování, které se jako paradigma programování dostatečně liší od OOP), aby to byla nová výzva. opravdu obohatil mé programovací schopnosti a dal mi novou perspektivu, ze které se mohu podívat na programovací problém. Nyní se snažím objevit různé programovací paradigmata, místo jen různých programovacích jazyků. To je větší výzva.

Za druhé, učení se nové knihovně, rámci nebo API: Jak jste správně řekli, nové rámce často nevyřeší nové problémy; prostě to řeší jiným způsobem, např. přidáním další vrstvy abstrakce. To je možná možné, protože dnešní počítače jsou výkonnější než dřívější stroje; nebo snad proto, že my jako celek se zlepšujeme v psaní softwaru.

Tento poslední kousek pravděpodobně potřebuje nějaké vysvětlení. Uvedu příklad: Nejdelší dobu, když jsem cvičil své programovací dovednosti, jsem nikdy vážně nepřemýšlel o udržování kódu, který jsem psal. Od doby, kdy jsem začal pracovat na zakázce, se moje perspektiva změnila. Psaní udržovatelného kódu je v podnikovém prostředí často velmi důležité, protože každá hodina, kterou utratíte za kódování, stojí skutečné peníze, takže se společnost pokusí vydržet stávající kód, je-li to možné, a je pravděpodobné, že budete nakonec muset předat váš kód nástupci.

Zjistil jsem, že psaní udržovatelného kódu je ve skutečnosti velkou výzvou. Často to znamená, že nebudete psát super chytrý a vysoce optimalizovaný kód shromáždění (pamatujte Příběh Mel - skutečný programátor , někdo? ;-) Místo toho budete pravděpodobně více využívat abstrakce. Čím je kód blíže k některým obchodním pravidlům a problémové doméně, tím lépe. To je místo, kde všechny tyto nové knihovny přicházejí. Pokud vám umožní zapsat kód tak, aby byl čistý, jasný, výstižný a snadno pochopitelný, pak je to dobrá věc.

Omlouváme se, pokud je tato odpověď poněkud zdlouhavá. Snažil jsem se ukázat, odkud pochází moje motivace v programování ... a měl bych zájem vědět, jestli jste se někdy cítili stejným způsobem a zda (a proč) vaše motivace nakonec stejně odešla.

4
stakx

Pokud vás nebaví psát kód, pokud vás to nenapadne, pokud vás to nudí, možná je čas na změnu. Mohli byste se podívat na to, jak se přestěhovat do manažerské pozice, a řídit a vést další kodéry s dlouholetou zkušeností. Nebo se pokuste postoupit do systémové architektury, kde byste mohli navrhovat a plánovat systémy a většina z nich by implementaci provedla jiní.

Nebo můžete kariéru úplně přepnout na něco, co nemá s počítači vůbec nic společného. Zeptali jste se sami sebe, jaká by byla vaše vysněná práce, kdyby vám ji někdo mohl dát?

Začněte hrát s mikrokontroléry. Je to nejvíce osvěžující a vzrušující aplikace talentů na programování, na kterou si vzpomenu.

3
Rob S.

Vypadá to, že výchozí body našeho prostředí jsou podobné tím, že jsme oba začali programovat o věku 6 let na podobných strojích a byli jsme z programování z různých důvodů. Žádný z mých titulů nemá nic společného s programováním - mám všechny hudební tituly - přestože jsem absolvoval nějaké postgraduální kurzy počítačové vědy.

Máte pravdu, domnívám se, že pozorujete, že programátoři často opakovaně řeší stejné problémy a že „nový“ je založen na „starém“. Že si uvědomíte, že tato skutečnost je na váš kredit; příliš mnoho vývojářů a podnikatelů vidí nové technologie jako zcela odpojené od starých.

Řešení těchto problémů je pro vás nezajímavé. Co by bylo zajímavé? Máte rádi řešení problémů obecně? Možná život jako "obchodní" vývojář softwaru není pro vás.

Vím, že jsem dal více otázek než odpovědí, ale doufám, že zodpovězením těchto otázek získáte určitý přehled o směru, kterým byste se měli ubírat.

2
Andrew

Zní mi to, jako bys uvízl. Jste v situaci, ve které nechcete být, a nevíte, jak se z toho dostat. Moje rada je jednoduchá: udělat něco jiného jen proto, abych udělala něco jiného. I když to váš problém nevyřeší, pravděpodobně vás rozepne.

Dokážu napsat kód v C, C++, Python nebo jakýkoli požadovaný jazyk, ale nemůžu se nadchnout tím, co dělám. Necítím žádnou výzvu. psaný vícevláknový kód, HTTPS MITM proxy a WSGI aplikace bez potřeby jakýchkoli konkrétních algoritmů.

Neberte to špatně (jedná se o slušné úspěchy), ale toto je stěží komplexní seznam všech náročných a vzrušujících problémů v programování. Stále existuje spousta náročných problémů, které je třeba vyřešit. Mezi nejnáročnější problémy patří práce v měřítku. Napsali jste aplikaci WSGI, ale napsali jste aplikaci, která dokáže zpracovat miliardu zobrazení stránky denně? Napsali jste vícevláknový kód, ale psali jste více počítačový kód (se stovkami počítačů)?

Stručně řečeno, pokud chcete zkusit něco netechnického, jděte na to. Ale nedělejte to, protože máte pocit, že jste vyřešili všechny problémy, které je třeba vyřešit, protože tomu tak není.

2
Jason Baker