it-swarm-eu.dev

CS předměty, které musí vysokoškolák vědět

Na univerzitě jsem se nikdy nezajímal o teorii. Nikdy jsem to nečetl. Bez ohledu na to, jak moc jsem se snažil, nebyl jsem schopen číst věci a nevěděl, co se ve skutečnosti děje. Jako například v mém kurzu o teorii automatů mi profesor řekl všechno, co souvisí s jeho matematickým aspektem, ale ani jednou nezmínil, kde by se to mělo použít prakticky. Toto je pouze příklad.

Podařilo se mi absolvovat vysokou školu a internovat se také se společností, kde jsem udělal projekt a naštěstí se neobtěžovali svými známkami, protože byly nadprůměrné.

Nyní se zajímám o to, jaké předměty by si měl student CS absolutně a pozitivně uvědomit? Předměty, které mohou mít význam v oboru. Je to proto, že mám nějaký volný čas na svých rukou, a pomohlo by mi to lépe je dobře pochopit.

Jaké jsou vaše návrhy? Stejně jako u jednoho, i algoritmy jsou jedním předmětem.

34
Karl

Věřte tomu nebo ne, jednou z věcí, které se pro mě v pozdějším životě ukázaly jako rozhodující, byla kompilátorová konstrukce. Není to moderní namby-pamby verze používající Lex a Yacc, to je pro figuríny.

Skutečná konstrukce kompilátoru, kde píšete vlastní symbolický skener a syntaktický analyzátor od základů.

To je něco, co jsem si myslel, že už nikdy, nikdy, znovu použít. Ale za posledních 20 let tento kurz prokázal svou váhu ve zlatě čtyřikrát. Příkazový procesor, který jsem musel psát, každý skener příchozích zpráv, každý dispečer uživatelů, každý interpret skriptu, používal principy z tohoto kurzu. Udělej to tak a život je sladký, jasný a jednoduchý. A já jsem dokonce dal všechny informace kolegovi, který to neudělal - musel vlastně napsat kompilátor pro abstraktní stroj. To, co bych mohl přidat, se stalo velmi komerčně úspěšným.

Kdybych musel jít nahoru a poděkovat přednášejícímu univerzitních kurzů v jednom předmětu, bylo by to. Bez toho bych se dostal, ale moje řešení by byla mnohem ošklivější.

(A než někdo vyskočí a řekne "dobře, mohli jste použít Lex a yacc ...", odpověď je možná - záleží hodně na systému. V některých případech nebyly programovací jazyky C (např. PL/M a Ada), v některých případech pro platformu nebyly k dispozici žádné snadno dostupné systémy Lex nebo Yacc. Znalost základů znamená, že řešení je namísto vyhýbání se rukama, které se snaží přijít na to, jak ohnout nějaký nástroj, aby se vešel do problému.)

42
quickly_now
  1. Datové struktury/algoritmy zejména grafy. Množství skutečných světových situací, ve kterých se mi podařilo použít algoritmy související s grafy, pro mě bylo překvapením. Zaměřte se na znalost charakteristik toho, kdy je vhodná datová struktura nebo algoritmus. Důležité je být schopen vidět problém a znát například použití dynamického programování/chamtivého algoritmu a může vám ušetřit spoustu času.

  2. Pracovní znalosti výpočetní složitosti. Nemusíte vědět z horní části hlavy, co je to dolní mez radixového druhu, ale vědět, jak zjistit, jaká nejhorší doba běhu něčeho, co píšete, je důležitá, zejména pro projekty kritické z hlediska výkonu.

  3. O.S. koncepty. Správa paměti, plánovače atd. Každý vývojář by měl skutečně rozumět operačním systémům, protože kód, který píšete, s ním neustále interaguje.

  4. NetSec. Setkal jsem se s velmi malými vývojáři, kteří dobře rozumějí základním bezpečnostním problémům s vývojem (přetečení vyrovnávací paměti, xss, SQLI atd.). To je opravdu nutné, pokud chcete být úspěšní v průmyslu. Je skvělé, pokud můžete napsat další velkou věc, ale nebudete mít mnoho uživatelů dlouho, pokud nezabezpečíte jejich data.

  5. Programovací paradigmata. Znát vlastnosti a rozdíly mezi OO/Funkčním/procedurálním programováním. Jednou z nejlepších undergradových tříd, jaké jsem kdy měl, bylo psaní jednoduchých 20 tlumočníků instrukcí pro fortan, schéma, prolog atd. V samotných jazycích. Pouze expozice sama o sobě vám může pomoci pochopit základní pojmy vývoje softwaru.

37
Kurtis

Splnění požadavků na absolvování není nutně dostatečné pro to, abyste byli nejlepším počítačovým vědcem, kterým můžete být. V případě typického studijního plánu vysoké školy je zde deset nejdůležitějších věcí, které byste se měli určitě naučit:

  1. Základy ekonomie - Úvodní kurz pokrývající témata jako doplňky a náhražky je nezbytný pro práci ve větší ekonomice, nebo jen prostě to pochopit. I když vám koncept Giffen Good nemusí nutně pomoci, vědět o externalities will will. Může vám také pomoci ocenit, že více situací je oboustranně výhodných, než jste si mohli uvědomit.

  2. Jak napsat důkaz - Všechny velké počítačové vědy by měly vědět, jak napsat důkaz. A diskrétní matematika, i když je součástí dobře vyvážené snídaně, se nepočítá. [Indukce je pouze jedna technika důkazu a můžete se jí dostat, aniž byste o důkazech skutečně věděli.] K napsání důkazů je nutný kurz algebry nebo skutečné analýzy. A algebrou mám na mysli skupinovou teorii nebo abstraktní algebru, ne kurz, který jste absolvovali na střední škole. Chcete-li plně využít výhod algebry a skutečné analýzy ve stejném termínu.

    Proč je psaní důkazů nezbytné? Protože to je programování! Přemýšlejte o tom, kdy jste se poprvé naučili, jak programovat: pokud úkol vyžadoval if a smyčku, nemuseli jste mít žádnou intuici, kam je dát ve vztahu k sobě. Ale tentýž úkol by se teď cítil zcela přirozeně. Psaní důkazu je velmi podobné. Existuje řada triků, které se naučíte, a jakmile se naučíte, věci vypadají úplně jinak.

  3. Jak psát - Psané komunikační dovednosti jsou nezbytné, ať už pracujete v oboru nebo akademické obci. Nejlepší je, když najdete kurz mechaniky, a ne kurz psaní, který se účinně týká jiného tématu. To znamená, že mnoho škol se pokusí učinit kurzy psaní relevantnější nebo zajímavější tím, že se bude týkat zvláštního tématu. Zkuste jít na „nudnou“ verzi kurzu.

  4. Pravděpodobnost a statistika - Existují některé věci, které si správně vyberete pouze absolvováním kurzu. Společně s hlavními požadavky CS (které by vám měly poskytnout diskrétní matematiku, jednoduchou proměnnou a více proměnných počet a lineární algebra) a algebru a/nebo skutečnou analýzu, bude statistika sběru pravděpodobně poskytnout menší matematiku. Statistiky učení vám mohou pomoci s dalšími vědci na jejich projektech.

  5. Aktuální aktuální téma - V minulých desetiletích to mohlo být databáze nebo objektově orientované programování. Dnes to může být programování webu nebo architektura orientovaná na služby. Ať už je současný výstřelek jakýkoli, ujistěte se, že v něm máte kurz. Jen kdybych viděl, o čem je výstřelek.

  6. Problém zastavení - Většina problémů nelze vyřešit stroji. Je to docela hluboký nápad, že naše kultura vstřebala tak dobře, že už nezněla šokující. Totéž platí pro rádio, Goedel a atomovou bombu; teprve po postmoderním umění a studené válce jsme se s těmito koncepty mohli znovu vyrovnat. Absolvování kurzu teorie počítatelnosti vás však může znovu senzitizovat k tomuto docela úžasnému důkazu.

  7. Čisté funkční programování - Pravděpodobně nebudete chodit do čistě funkčního programování, pokud v něm neprovedete výzkum nebo nepracujete pro několik vybraných společností, ale znáte pomůže vám být lepším programátorem. Důvodem je, že se naučíte mnoho nových forem abstrakce a konceptů, jako jsou církevní čísla a pokračování a monády a, ano, rekurze, a tyto nástroje lze použít i pro váš další program Java).

  8. P a NP - OK, tento je již na vaší kritické cestě, ale přesto věnujte pozornost. Chcete si být jisti, že můžete někoho opravit, když nesprávně volá NP „non-polynomial.“) Jako by!

  9. Témata z kurzu, které určitě nenávidíte - Může to být kurz CS, který je pro vás příliš nízkoúrovňový, příliš teoretický nebo samozřejmě mimo CS se vám zdá příliš nepříjemné, příliš tvrdé nebo příliš nudné. Pokud se vám kurz, jako je tento, zdá být problémem a zjistíte, že vysvětlujete ostatním, proč jste tak rádi, že se nemusíte tak a tak učit, mělo by vám říci, že se toho hodně naučíte absolvováním kurzu! Možná se nebudete učit materiály kurzu, ale dozvíte se o svých vlastních limitech a možná více o ospravedlnění, která si pro sebe uděláte. [Tip: Jsou obvykle slabí.]

  10. Kurz mimo CS, který si určitě zamilujete - Nakonec byste se měli bavit. Tohle je pravděpodobně ten kurz, ze kterého budete mít nejméně, ale přesto to vezměte. Udělej to jednou. Pokud máte rádi mnoho kurzů, pak je to pro vás dobré, ale ujistěte se, že vám to nebrání pokrýt zbývající kurzy na tomto seznamu.

Můj přístup byl praktický, založený na kurzech, které můžete skutečně absolvovat. A zaměřil jsem se na cíle učení, které se pravděpodobně naučí. Poznámka: Tato odpověď byla upravena z mého blogového příspěvku na Deset věcí, na které by se měl každý učit hlavní věda počítačů .

21
Macneil

Po rozhovoru s několika zástupci společnosti a přáteli, kteří měli mnoho rozhovorů:

  • Databáze
  • OOP
  • Algoritmy
  • Datové struktury

mají tendenci být "musts" pro nové nájemné (nebo jak se říká, "vysoce doporučované" kurzy).

Další kurzy, které mohou být užitečné, jsou počítačová bezpečnost, montáž a architektura počítače. Mnoho mých profesorů mi také doporučilo kurz kompilátoru. Také, pokud máte čas, velmi doporučuji matematické kurzy, jako je teorie grafů, diskrétní matematika a kombinatorika. V těchto třídách se naučíte spoustu rozumových dovedností, které většina kurzů CS sklouzává, ale nakonec jsou velmi užitečné při psaní velmi složitých programů.

Doufám, že to pomůže!

8
K-RAN

Z velké části záleží na tom, co s titulem plánujete. Zdá se, že většina společností CS skončí jako softwaroví inženýři nějakého druhu. S ohledem na to si opravdu nejsem jistý, proč více lidí v softwarovém inženýrství není jen majoritou. Mám podezření, že není dostatek programů pro softwarové inženýrství, zejména ve veřejných institucích.

Pocházím z vestavěného pozadí. Každý člověk, se kterým pracuji, měl buď titul EE nebo CE, a to částečně proto, že když "staříci", kdy chodili na vysokou školu, nebylo tolik programů CE k dispozici. Je tedy zcela zřejmé, že pokud chcete pracovat ve vloženém poli, je žádoucí hardwarové pozadí.

Bez ohledu na to, v jakém oboru chcete pracovat, se však domnívám, že každý programátor by měl absolvovat kurz sestavení programování. Možná jej nikdy nebudete používat, ale naučí přesně to, co se děje na úrovni procesoru během volání funkce, jak jsou zpracovávána přerušení, jak je strukturována paměť nebo jak jsou používány různé režimy adresování. Věřím, že všechny tyto věci z vás udělají lepšího programátora.

Také to nemusí být zřejmé, takže některá toto jsou všechna důležitá témata při zvažování datových struktur a algoritmů pro konkrétní platformu.

6
Pemdas

Na vaši otázku můžete odpovědět dvěma způsoby. Dovolte mi zkusit oba. Prvním způsobem je podívat se na věci z hlediska potenciálního trhu práce, dovedností kódování atd. Takže tady je můj seznam:

  1. Datová struktura
  2. Algoritmická analýza
  3. Objektově orientované programování
  4. Buď konkrétní kurz v C++ nebo Java
  5. Operační systémy
  6. Návrh uživatelského rozhraní
  7. Paralelní programování

Druhým způsobem je podívat se na věci z trochu abstraktní perspektivy a kdo ví, může být trochu filozofický. Seznam, který následuje, nemusí mít ty nejžhavější dovednosti, které trh práce vyžaduje, ale jsem si jistý, že v době, kdy vyjdete z těchto kurzů, budete mít hlubší uznání umění vývoje softwaru.

  1. Konečná jazyková a automatická teorie
  2. Konstrukce překladače
  3. Teorie grafů
  4. Umělá inteligence
5
Fanatic23

Do seznamu bych také přidal softwarové inženýrství nebo designové praktiky, ačkoli jejich obsah obvykle přijímají studenti v oboru.

Také, podle mého názoru (i když nejsou podporovány mnoha zkušenostmi), společnosti opravdu nechtějí většinu teoretických věcí vyučovaných v kurzech, jako jsou databáze atd., Chtějí, aby lidé rozuměli a byli schopni používat tyto věci.

EDIT: Kvůli downvote se cítím rád, když vysvětlím svou odpověď. Jsem studentem posledního ročníku informatiky a moje zkušenosti vycházejí z mých stáží a pracovních pohovorů s předními společnostmi v oboru. Podle mých zkušeností se od lidí jen zřídka vyžaduje, aby používali složité algoritmy nebo kódovali velmi složité datové struktury při rozhovorech nebo při práci.

Užitečnější, pokud můžete vytvářet a používat databáze, používat řízení zdrojů, vědět, jak správně ladit, umět používat návrhové vzory atd. Jak jsem však řekl, tyto dovednosti jsou obvykle v oboru shromažďovány a nejsou zahrnuty do kurzů. Softwarové inženýrství/Design Practices obvykle zahrnuje vytvoření středně velkého projektu, velmi užitečného pro osvojení všech těchto dovedností.

2
apoorv020

Existuje mnoho důležitých kurzů, v závislosti na tom, kterým směrem plánujete. Avšak za předpokladu, že můžete programovat vůbec, nejdůležitější kurz musí být:

  • Datové struktury a algoritmy

    Prakticky všechno v oblasti výpočetní techniky se vrací ke zpracování dat pomocí algoritmů. Věnujte zvláštní pozornost polím a hashům, protože se jedná o zdaleka nejužitečnější datové struktury, které se běžně používají, ale seznamy a stromy a grafy (dobře, seznamy jsou omezenými druhy stromů a stromy jsou omezenými typy grafů) být také důležitý. Kromě toho jsou algoritmy pro porozumění nezbytné pro výrobu kódu, který není hrozný. (Jinak budete dělat věci, které jsou prostě hrozné, jako když používáte O (n3) algoritmus, kde O (n logn) jeden udělá.) Pokud váš CS titul nemá povinně DS + Kurz, není to CS. Nebo softwarové inženýrství. Nebo dokonce jen programování.

Kromě toho, kurz, který jsem za ta léta považoval za nejužitečnější ve více oborech, byl:

  • Souběžnost

    Souběžnost má mnoho aspektů, ale očekával bych pochopení rozdílu mezi sdílenou pamětí a předáváním zpráv. Chtěl bych také, aby existovalo silné pokrytí strategií zamykání (mutexy, semafory atd.) A transakcí.

    To je důležité pro pochopení paralelizace, samozřejmě, ale je to také důležité pro cokoli distribuovaného (např. Při psaní služby, která je vystavena internetu, i když je jednovláknová, protože klienti budou asynchronní). Chápu, že je také užitečný pro psaní her (které jsou obvykle vícevláknové) a pro práci se zabudovanými zařízeními.

Kromě toho si myslím, že je v nejlepším zájmu většiny vysokoškoláků, aby byli vystaveni co nejvíce různým myšlenkám. Spousta programovacích jazyků a paradigmat. Spousta různých oblastí použití. Rozumné množství matematiky (opět proto, že je to tak užitečné) a také určité vystavení lidským faktorům a psychologii (protože jakýkoli software, který interaguje s uživateli, jedná s lidmi). Koneckonců, nikdy nevíte přesně, co budete dělat v budoucnu, takže plánování flexibility je skvělá životní strategie.

2
Donal Fellows

Věci, které jsem se naučil na vysoké škole, které používám každý den:

  • Metodika objektově orientovaného designu
  • Designové vzory
  • Regulární výrazy
  • Základní algoritmy a analýzy
  • Datové struktury

Přál bych si, abych absolvoval kurz databáze. (Vyzvedl jsem dost, abych se dostal od té doby, co jsem promoval, ale přeji si, abych věděl víc.) Také bych si přál, aby se naučila kontrola verzí - je všudypřítomná, nesmírně užitečná a v učebních osnovách mé školy byla zcela ignorována.

Musel jsem absolvovat několik kurzů matematiky. Od ukončení studia jsem nepočítal počet. Přál bych si, abych absolvoval kurz statistiky. (Znovu jsem si vyzvedl dost, abych se dostal od dokončení studia, ale přál bych si, abych věděl víc.)

Kromě oddělení CS se zúčastněte písemného kurzu. Dobré písemné komunikační dovednosti jsou nezbytné pro úspěch.

2
pwc

Když jsem byl na vysoké škole, existovalo docela dost témat, které jsem nemohl vidět ve svém skutečném životě, a někdy byla intuice prokázána jako správná (Formální metody jsou ve většině případů skutečně praktické pouze pro triviální problémy) a jindy se mýlil (Big-O notace je velmi užitečná), takže si myslím, že celé mé mladší já bylo částečně v pořádku.

Pokud se chcete připravit na skutečný svět, kromě výše uvedených doporučení @ K-Ran doporučuji přečíst Kód dokončen a použít jej jako základ pro hlubší výzkum všech témat, která jsou pro vás obtížná nebo necítíte, že jste dostatečně krytí.

1
glenatron

Jako někdo, kdo pravidelně vede pohovory s kandidáty na programování pracovních míst, a někdo, kdo se po dvanácti a více letech v oboru cítí rozumně splněn, navrhuji následující

  • Návrh databáze a SQL: Je úžasné, kolik programátorů neví jednoduché SQL a ti, kteří mají dobré znalosti SQL, jsou neocenitelní. Aby bylo možné navrhnout dobrou databázi, nemusí být užitečné ve společnosti, která má nastavenou strukturu databáze, pro začínající podniky a společnosti procházející změnami je to MUSÍNO!
  • Designové vzory. Jednoduše vám pomohou lépe se rozhodovat o dobrém designu
  • OOP: Obvykle se jedná o předběžnou žádost o většinu kurzů, ale pomůže to.
  • Algoritmy: Protože tak málo lidí ví, co je rekurze, natož pochopit, kdy by jim to mohlo ušetřit spoustu složitého kódování
  • Struktury dat: Většina moderních jazyků se s těmito věcmi zabývá, ale jejich porozumění je klíčem k dobrému designu.

Poté si přečtěte následující kurikulární práci:

  • Knihy typu certifikace. Často vás naučí pod syntaxí a operátory typu coverů. Je mnohem důležitější vědět, proč děláte něco, spíše než „protože to funguje“, což je tak běžné.
1
Codemwnci

JE ZÁVISLOST , na tuto otázku neexistuje dobrá odpověď.

Programátor je obecný svět, který identifikuje někoho, kdo píše počítačový software.

Nyní tam je software všeho druhu. Například pomocí wikipedie jako zdroje zobecnění se můžeme setkat velká zobecnění :

  • programování systému
  • programovací software
  • aplikační software

V prvním poli programování systému vyvíjejte ovladače zařízení, operační systém, servery, takže můžete například sledovat kurz operačního systému.

ale co programovací software ? zde, jak psala wikipedia, můžete kódovat kompilátory, debuggery, tlumočníky, linkery, textové editory, takže může být užitečný kurz automatizované teorie, teorie jazyka, jazyka a kompilátorů.

Ne můžeme mluvit o aplikačním softwaru jakéhokoli druhu:
- videohry: algebra, fyzika, objektově orientované kurzy?
- matematický software: matematické kurzy?
- úpravy obrázků: kurzy matematiky, fyziky, algoritmů?
- průmyslová automatizace: matematika, fyzika, algoritmus, robotické kurzy?
- lékařský software: biologie, lékařský, jaký další kurz?
- spousta věcí zde: spousta kurzů zde.

Jak vidíte, je zde mnoho kurzů, které můžete sledovat a stanou se užitečnými pro vaši práci.

Podle mých zkušeností jsem softwarové inženýrství a aplikační software v zabezpečení (chcete sledovat kurz zabezpečení?), Počínaje malým velmi zkušenostmi s programováním získávám více zajímavých v algoritmech a distribuovaném systému a opět se cítím nepříjemně v jednoduchosti univerzální aplikace, kterou jsem napsal (sniffer, systém detekce narušení sítě, disektor protokolu a detektor atd.).

Jak jste se kysele naučili v teoretické informatice! jste fllow tyto kurzy? : P

Naučili jste se například, že veškerý počítačový jazyk může být vybaven sadou srovnatelných matematických funkcí a například pokud vaše zkušenost dosáhne mé stejné cesty, brzy budete v této malé sadě počtu nepohodlní a jako já můžete začít vidět, jak se vyvíjí software není tak poutavý a úžasný, protože stejný DESIGN PATTERN se vrací znovu a znovu (sledujete kurzy designu vzorů?) a například můžete začít získávat větší zájem o PROČ A JAK se jazyk překládá do matematických funkcí a začíná naučte se, že počítačový jazyk není tak složitý! brzy můžete být například více překvapeni osobností a psychologií, můžete o to získat větší zájem a stát se dobrým projektovým manažerem! navštěvovali jste kurzy životního cyklu softwaru?

Jaký je tedy kurz MUST-HAVE ve vaší kariéře CS?

Navrhuji se naučit co nejvíce, jak se můžete učit ve všech oborech, zejména v teoretické oblasti, protože v běžné pracovní oblasti se můžete brzy nudit malé složitosti kolem vás a stát se pracovníkem na plný úvazek máte opravdu méně času se učit jak věci skutečně fungují a mnohem více času na to, jak lidé se silnými teoretickými znalostmi promítali věci do práce a dávají vám možnost kódovat, aby si doma mohli dát jídlo.

v počítačové vědě je špatný pocit reality. počítačový vědec je například někdy opravdu daleko od vývojáře softwaru.

podívejte se na vysvětlení wikipedie.

bavte se životem :)

moje 2 centy.

omlouvám se za moji opravdu špatnou angličtinu.

1
boos

Myslím, že byste měli studovat následující:

Operační systém: - I když to nemusí fungovat jako programátor, ale stojí za to vědět, jak operační systém funguje a očekává se od CS grad. Jakákoli dobrá kniha může pomoci.

OOP: - To je chléb a máslo. Nutnost. Knihy, pokud se chcete zeptat: Vaše první kniha by měla být: - hlava nejprve OOAD, pak můžete jít za knihou Grady Booch a Ivar Jacobson

Struktury dat a algoritmy: - Velmi důležité pro rozvoj logického myšlení a myšlení.

Pro mě je toho tolik dost. Nikdy není příliš pozdě. :)

1
Abhi

Přicházím na to z poněkud odlišné perspektivy v tom, že jsem nevystudoval CS, promoval jsem v elektronickém inženýrství (s malými v oboru podnikání).

Na základě toho si myslím, že seznam věcí, kterým musíte rozumět, je relativně krátký, protože já (a mnoho jiných absolventů CS) přežijeme šťastně, aniž bychom věděli něco o návrhu kompilátoru nebo podobně.

To, co bych řekl, jsem zvedl, že mi připadá užitečné:

  • Návrh RDBMS - RDBMS sedí za většinou systémů a webů a měli byste rozumět alespoň základům toho, co se děje (naučil jsem se to v práci).
  • Základní design uživatelského rozhraní - všichni nejlepší programátoři, se kterými jsem pracoval, mohli vytvořit použitelnou aplikaci, která nebyla ošklivá jako peklo. Až na jednu, ale on je výjimkou, která prokazuje pravidlo.
  • Některé základní programování - a myslím základní. Naučil jsem se nějaké C (pro zpracování obrazu a vestavěné systémy), některé Assembly Language (na které jsem zapomněl během několika týdnů po ukončení kurzu) a některé Pascal (základní počítačový kurz byl standardem pro všechny inženýry). Při pohovoru jsem ohromen, jak málo absolventů CS může skutečně programovat jakýmkoli způsobem, které by komerční organizace považovaly za užitečné, takže nečekám moc, ale očekávám, že budou znát základy.
  • Logika - naučil jsem se to prostřednictvím digitální elektroniky, matematiků skrze teorii, stupňů CS prostřednictvím programování, ale jakkoli se to naučíte, měli byste to dobře pochopit, protože na to jde.
  • Komunikační dovednosti - Absolvoval jsem několik kurzů na univerzitě mimo můj skutečný titul, prezentační dovednosti a asertivitu. Spousta zdravého rozumu, ale nikdy neuškodí říkat rozumné věci několikrát.
  • Základy podnikání a účetnictví. Někteří programátoři jednají tak, jak na tom nezáleží, ale podle mého názoru na tom záleží každému, kdo pracuje ve společnosti - takto hra funguje a bude to kontrolovat váš život, tak proč byste nechtěli znát alespoň základy jak a proč se věci stávají?

A pokud máte šanci dozvědět se o řízení projektů vůbec, pak by to opravdu neublížilo, ale to se na univerzitě v mnoha případech hodně špatně učí a o něčem se o práci dozvíte pouhým zpracováním projektů.

1
Jon Hopkins

Ruce dolů číslo jedna věc CS studenti by měli být plynně v angličtině.

Bez pochopení mluvené i psané angličtiny budete navždy v nevýhodě.

Stačí se podívat na nesčetné množství otázek, které přicházejí na stránky Stack. Příliš mnoho z nich je obtížné rozluštit. Někteří lidé používají kombinaci l33t, textových zpráv (ne jistý správný termín). Jiní dělají prohlášení a jednoduše připojí otazník, zatímco chybí důležité malé myšlenky jako slovesa nebo přídavná jména.

Pokud nemůžete komunikovat, nebudete schopni pochopit mnohem méně rozumět tomu, co říkají ostatní.

Všechno ostatní jsou jen detaily. Pokud dokážete komunikovat, máte alespoň průměrnou inteligenci a dokážete porozumět tomu, co čtete, pak můžete mít také úspěšné programování kariéry.

1
NotMe

Do seznamu bych také přidal několik základních kurzů lidských zdrojů/psychologie.

Může to vypadat jako lichý dodatek, ale část práce se profesionálně učí, jak se prodat a vyjednat. Vstoupit do prvního „skutečného“ rozhovoru bez spolehlivých znalostí motivací HR-dronů je receptem na katastrofu a pravděpodobně skončí tím, že se student dostane do nízké mzdy.

Znáte svého nepřítele, abyste se mohli chránit.

0
Peter Bernier