Programování C++, může se mi to v budoucnu hodit?



Zdravím. rád bych se naučil něco nového, co by se mi v budoucnu hodilo, věnoval se tomu a dalo se tím něco přivydělat. Klidně i menší peníz. Ale jak můžu vědět, že mi to bude k něčemu dobré. Budu se to učit několik měsíců a co pak? Nemám žádnou vysokou školu a ani nejsem žádný IT nebo něco takového. Ale učení nových věcí mě baví a rád bych to zkusil. Myslíte, že by to mohl zkusit i obyčejný člověk jako jsem já?
Pokud se potřebuješ ptát zda se ti to bude hodit, tak je jednoduchá odpověď: NE, nebude.Programování není něco co se naučíš za pár měsíců a pak už budeš umět programovat. Tohle je záležitost na celý život. Programování se stále vyvíjí a jsou tu nové metody/postupy jak programovat. Je potřebné se neustále učit něco nového. Protože je to běh na dlouhou trať tak to chce mít nějakou motivaci proč to děláš. Nejlépe aby jsi z toho měl nějaký vlastní užitek. Co já jsem si tak pro sebe programoval, tak byly různé automatizace a strojové konverze/porovnávání atd. Například co si vzpomínám, tak jsem měl k filmům titulky. A potřeboval jsem všechny titulky pojmenovat stejně jako ten film, aby se automaticky načítali do přehrávače. A měl jsem na disku vždy ve složce video a titulky. A než abych hledal něco co mi to přejmenuje, tak jsem si napsal prográmek co prošel zadanou složku s filmama, a v každé složce našel dva soubory a ten menší soubor pojmenoval podle toho většího souboru. A měl jsem hotovo. Nebo třeba když jsem potřeboval hromadně v souboru na každém druhém řádku dopsat 0 na 7mou pozici. Nebo třeba když jsem chtěl projít nějaký web a proklikat ho celý a stáhnout tam odtud všechny obrázky atd. Když si teda najdeš něco kde by jsi to využil tak budeš rád že to umíš. Už nebudeš muset hodiny hledat aplikaci, která bude umět to co chceš, ale za půl hodinky si tu aplikaci uděláš sám.Pokud by jsi to chtěl na nějaký přivýdělek, tak to možná ano, ale nejdřív to chce produkovat prográmky co fungují a alespoň nepadají. Tj budeš tam mít ošetřené všechny chybové stavy. Tj od toho, že pokud ti má uživatel zadat číslo od 1 do 10, tak musíš být připravený, že zadá opravdu číslo od 1 do 10, ale on taky může zadat 0 nebo 15, nebo třeba -4. A co hůř on ti třeba nemusí zadat nic, a nebo ti zadá nějaké písmeno atd. Na nic z tohoto by aplikace neměla spadnout. Měla by alespoň vypsat chybu, že je uživatel blb a nezadal správnou hodnotu. Nebo třeba když budeš… načítat soubory z disku, tak uživatel nemusí mít právo ten soubor číst, nebo do něj zapisovat atd. A ani na tomhle by to nemělo padnout. A to mi věř tohle se naučit ti bude trvat asi mnohem déle než těch několik měsíců. Chtít peníze za něco co funguje jen v případě že je to správně použito a jinak to padne bez nějaké smysluplné hlášky, kdy uživatel ani neví co udělal blbě, mi přijde celkem nefér a podruhé si od tebe už nikdo nic nenechá udělat. [Ukázat celý příspěvek](javascript:void(0))
Nejsem si jistá, jestli vám v tomhle bude někdo schopný dobře poradit, protože úrovně jednotlivých lekcí jsou úplně nová funkce. Teprv nedávno se začaly testovat a většina lidí je ještě nemá. (Myslím, že je zatím nabízejí jen nově zaregistrovaným účtům.)


Mně by přišlo nejrozumnější to nějak nakombinovat, nejdřív probrat nějaké množství lekcí na nižší úrovni a pak postupně přitvrdit. Ale každému to může vyhovovat nějak jinak.


Zkuste a kdyžtak dejte vědět, jaké s tím budete mít zkušenosti. Je pravda, že některé z rozhovorů venku jsou velmi primitivní, bohužel někdy převážná část vašeho davu může potřebovat. Považuji se nováček v mnoha oblastech, ale já jsem navštěvovat přednášky, které jsem si myslel, byly pod sebou a stále lidé žádají velmi základní otázky. Možná, že by stálo za to má bi-měsíční uživatelskou skupinu, jeden týden na základní úrovni a jeden týden pro pokročilé. To nemusí nutně znamenat dvojnásobek práce, pokud můžete dostat někoho, kdo vám pomůže koordinovat spoustu práce budou překrývat. Na druhou stranu můžete jen potřebují cítit se členy skupiny a zjistit, jaká je jejich průměrná úroveň dovedností je a hrát si na to. <p>v 80. letech, kdy se vývoj c++ teprve začínal, byl c++ téměř správným supersetem c. takto to všechno začalo.<br> postupem času se však c a c++ vyvíjely a od sebe navzájem se lišily, přestože kompatibilita mezi jazyky je vždy považována za důležitou.</p><p>kromě toho technické rozdíly mezi c a c++ způsobily, že typické idiomy v těchto jazycích a to, co se považuje za „osvědčené postupy“, se ještě více liší.</p><p>to je hnací faktor lidí, kteří říkají věci jako „neexistuje žádný takový jazyk jako c/c++“ nebo „c a c++ jsou dva různé jazyky“. přestože je možné psát programy, které jsou přijatelné pro kompilátor c i c++, kód se obecně nepovažuje za příklad dobrého kódu c ani za příklad dobrého kódu c++.</p> <p>nedávno jsem byl ve vaší přesné situaci. moje společnost chtěla najmout jiného programátora a konkrétně jsem chtěla někoho, kdo má více zkušeností než já, abych se mohl dál učit a růst.</p><p>z rozhovorů jsem byl nejvíc nervózní, a tak jsem se zeptal <a href="https://softwareengineering.stackexchange.com/q/18371/1130">otázka zde</a> .</p><p>abychom to shrnuli, položte otázky, na které znáte odpověď, souvisejí s problémy, které máte, nebo s problémy, které jste v minulosti vyřešili. nesnažte se klást otázky, které jsou mimo vaši hloubku. buďte upřímní, pokud dotazovaný začne mluvit v termínech, kterým nerozumíte, a požádejte ho, aby vám je vysvětlil. poté, co najmete, s vámi bude spolupracovat a budete chtít někoho, kdo vás může mentorovat.</p><p>ukázalo se to skvěle. najali jsme někoho, kdo má mnohem více zkušeností a znalostí než já, a cítím, že se toho hodně učím.</p><p>řekl bych, že je to pro vás oboustranně výhodná situace. nejhorším scénářem je, že si najmete osobu, kterou najmete, a vy jste získali cenné znalosti, které s ní pracujete.</p> Pravděpodobně budete chtít používat [Eclipse C / C ++ Development Nástroje (CDT)](http://www.eclipse.org/cdt/) plugin. <p>důrazně bych vám doporučil, abyste se řídili radami uvedenými v článku derek sivers <a href="http://sivers.org/how2hire">jak najmout programátora, aby se vaše nápady staly</a> . většinu jeho rady lze použít při najímání nezávislého copywritera. nejdůležitější částí (imo) je začít malou částí projektu a najmout více spisovatelů, poté vybrat nejlepší z těch, kdo projekt dokončí.</p> <p>to se bude lišit, ale takto to vidím na dostatečně velkém místě, aby bylo možné rozlišovat mezi typy programátorů.</p><p>řekl bych, že vstupní úroveň a junior jsou totéž. jsou jen mimo školu a mají méně než dva roky praxe. jsou jim přiděleny nejméně složité úkoly a měly by být pod přísným dohledem. obecně vědí asi 10% toho, co si myslí, že vědí. obvykle neprošly celým vývojovým cyklem, a tak často udělají velmi naivní rozhodnutí, pokud dostanou příležitost si vybrat. bohužel mnoho z nich se ve skutečnosti nestará o to, jaký je požadavek, chtějí si věci budovat podle svých představ. často mají špatné ladicí schopnosti.</p><p>střední úroveň je místo, kde padne mnoho programátorů. mají více než dva roky zkušeností a obvykle méně než deset, i když někteří mohou zůstat na této úrovni celou svou kariéru. mohou vytvářet pracovní kód s menším dohledem, pokud jsou přiděleny relativně rutinním úkolům. nejsou obvykle pověřeny designem na vysoké úrovni nebo složitými úkoly, které vyžadují důkladnou úroveň znalostí. mohou však mít za úkol navrhnout část aplikace, a to zejména proto, že jsou v zóně, aby se stali vedoucími vývojáři. jsou dobří v údržbářských úkolech nebo úkolech, kde se mohou soustředit pouze na svůj kousek skládačky, ale obvykle se nepředpokládá, že budou posuzovat aplikaci jako celek, pokud nebudou pracovat se staršími vývojáři nebo nebudou připraveni na povýšení na vyššího. obvykle mohou dělat slušnou práci při řešení problémů a ladění, ale musí se opravdu slogovat, aby dostali ty tvrdé. zatím nemají dostatek zkušeností, aby viděli vzorce problémů, které je ukazují na pravděpodobné místo, kde se vyskytují. tyto dovednosti však získávají a jen zřídka potřebují pomoc s laděním. pravděpodobně prošli celým vývojovým cyklem alespoň jednou a viděli výsledky návrhových problémů a učí se jim, jak jim v budoucnu zabránit. obvykle mají tendenci brát požadavek na nominální hodnotu a ne tlačit jej zpět, když má zjevné problémy nebo mezery. naučili se dost, aby věděli, co nevědí, a začínají je získávat. jsou to pracovní koně programovacího světa, dodávají pravděpodobně 80-90% rutinního kódu a možná 10% velmi obtížných věcí.</p><p>tuto otázku si ani nemusí položit nikdo, kdo je na vyšší úrovni. jsou to experti ve svých zvolených technologických řadách. jsou jim dány těžké úkoly (ty, které nikdo neví, jak řešit) a často dostávají odpovědnost za design. často pracují samostatně, protože mají prokazatelné zkušenosti s dodáním zboží. očekává se, že budou mentorovat juniorské a středně pokročilé vývojáře. často jsou to úžasné nástroje pro odstraňování problémů. už se s těmi stejnými problémy setkali dříve a mají velmi dobrou představu o tom, kde hledat první. senioři často mentorují i ​​mimo pracoviště. obecně mají alespoň desetileté zkušenosti a téměř vždy byli na alespoň jednom pochodu smrti a přesně vědí, proč je třeba některým věcem zabránit. umí dodat funkční produkt a dodržet termín. vědí, jaké rohy lze řezat a jaké rohy by se nikdy neměly řezat. znají alespoň jeden a často několik jazyků na odborné úrovni. viděli, jak na pracovišti zasáhlo mnoho „horkých nových technologií“ a zmizely, takže mají sklon být o něco konzervativnější, pokud jde o skákání na rozjetém ​​vlaku pro další vzrušující nový vývojový nástroj (ale ne zcela odolný vůči změnám - ty by byly starší středně pokročilí vývojáři, kteří nikdy neučiní krok k seniorovi). chápou, že jejich úkolem je dodávat pracovní software, který dělá to, co uživatelé chtějí, a ne hrát se zábavnými nástroji. často si vybírají, kde budou pracovat, protože mohou být a protože z první ruky viděli, jak špatná mohou být některá místa. hledají místa, která mají nejzajímavější úkoly. často vědí více o produktech své společnosti než kdokoli jiný, i když tam byli jen pár měsíců. vědí, že potřebují více než znalosti programování a dokážou získat znalosti o obchodní doméně, kterou také podporují. často si jsou vědomi problémů, které junioři nikdy neuvažují, a meziprodukty si často nemyslí o regulačních a právních otázkách v obchodní oblasti, kterou podporují. mohou a budou tlačit požadavek zpět, protože vědí, jaké budou s tím problémy a mohou to laikům vysvětlit.</p> Nabídku jsem dostal a nebudu měnit.![:)]( ":)")

 Možná to je vyhodné,ale nevěřím,že pro mne?Proč by mi nabízeli něco co je výhodné pro mě?

 V dnešní době na tyhle taháky už nevěřím...

 Ovšem musím dodat,že jsem se o FIX neiformoval,tak má domněnka může byt nakonec milná.Kdoví?![*nevi*]( "*nevi*")

 Vše mi přijde jen o to abych si změnil smlouvu a za par let mi nezbyde nic jineho než poepsat zase něc jineho.

 Nevěřím,že nakonec jaaaaa vydělám...Toď můj názor <p>myslím, že znamenají, že byste měli používat <a href="http://en.wikipedia.org/wiki/smart\_pointer">inteligentní ukazatele</a> místo běžných ukazatelů.</p><blockquote> <p>ve vědě o počítačích je inteligentní ukazatel abstraktní datový typ, který simuluje ukazatel a zároveň poskytuje další funkce, jako je automatický sběr odpadu nebo kontrola mezí. účelem těchto dalších funkcí je omezit chyby způsobené zneužitím ukazatelů při zachování účinnosti. inteligentní ukazatele obvykle sledují objekty, na které ukazují, za účelem správy paměti.</p> <p>zneužití ukazatelů je hlavním zdrojem chyb: konstantní alokace, deallokace a odkazování, které musí být provedeny programem napsaným pomocí ukazatelů, představuje riziko, že dojde k úniku paměti. inteligentní ukazatele se pokoušejí zabránit úniku paměti automatizováním automatického přidělování prostředků: když je ukazatel (nebo poslední v řadě ukazatelů) na objekt zničen, například proto, že je mimo rozsah, je zničen i špičatý objekt.</p> </blockquote><p>v c++ by byl kladen důraz na sběr odpadu a zabránění úniku paměti (abychom jmenovali alespoň dvě). ukazatele jsou základní součástí jazyka, takže jejich použití je do značné míry nemožné, s výjimkou nejvzácnějších programů.</p> <p>jednoduchá řešení jsou lepší pro dlouhodobou údržbu. a nejde vždy jen o jazykovou znalost. složitá čára (nebo čáry) vyžaduje určitý čas, i když jste odborníkem na daný jazyk. otevřete soubor a začnete číst: "ok, jednoduché, jednoduché, rozumíte, jo, wtf ?!" váš mozek se zastaví a budete muset zastavit a dešifrovat složitou linii. pokud neexistoval měřitelný a konkrétní důvod této implementace, je to „příliš chytré“.</p><p>zjistit, co se děje, se progresivně zhoršuje, jak složitost roste z chytré metody na chytrou třídu na chytrou strukturu. kromě známých přístupů musíte přijít na myšlenkový proces, který šel do vytvoření „chytrého“ řešení, což může být docela obtížné.</p><p>to znamená, že nerad se vyhýbám vzoru (když je jeho použití oprávněné) jen proto, že mu někdo nemusí rozumět. je na nás jako vývojářích, abychom se neustále učili, a pokud něčemu nerozumíme, je to důvod, proč se to učit, a ne se mu vyhýbat.</p>