Jak se stát nejlepším programátorem na světě

Nemám ponětí, jak se stát nejlepším programátorem na světě. Takže jsem zjistil, že nejlepší způsob, jak se dostat dopředu, je poučit se od všech největších programátorů všech dob a získat odpovědi od některých úžasných techniků.

Pojďme popraskat.

1. Poučení od Dennise Ritchieho, člověka za UNIXem a C

UNIX je v podstatě jednoduchý operační systém, ale musíte být génius, abyste pochopili jednoduchost - Dennis Ritchie
Dennis Ritchie, Techtricksworld

V době před tím, než jste mohli jít na vysokou školu a získat titul v oboru počítačového programování, se Dennis Ritchieovi podařilo získat práci na Massachusetts Institute of Technology (MIT).

Počítačové laboratoře nebyly tak vybíravé, jak jsou nyní, a přivítali prakticky kohokoli, kdo trpělivost pomáhal s prací na počítačích velikosti místnosti.

Pro někoho, kdo začínal jako průmyslový outsider, je vytvoření jazyka UNIX i jazyka C - dvou z nejpoužívanějších technologií v počítačové historii - velký problém. Velmi velký problém.

Zde jsou některé úspěchy Dennisa Ritchieho:

  1. Dennis Ritchie vytvořil programovací jazyk C a spolu se svým kamarádem Kenem Thompsonem vytvořil operační systém UNIX.
  2. V roce 1983 byl držitelem ceny Turingovy ceny od Asociace výpočetních strojů (ACM)
  3. V roce 1990 obdržela Ritchie i Thompson medaili IEEE Richard W. Hamming od Ústavu elektrotechnických a elektronických inženýrů (IEEE)
  4. V roce 1997 se stal členem Muzeu počítačové historie
  5. V roce 1999 obdržel od prezidenta Clintona Národní technologickou medaili

Jak bys tedy chtěl toho všeho dosáhnout? A co víc, jak se Dennis Ritchie naučil psát software?

Dennis Ritchie - lidově nazývaný „Otec programovacího jazyka C“ - byl považován za milého, laskavého, nenásilného muže - a úplného geeka!

Ale nezačal jako geek.

Ritchie se narodila v New Yorku a vyrostla ve městě Garden v New Jersey. Měl stabilní dětství a vedl dobře akademicky.

On pokračoval studovat na Harvard univerzitě, kde on studoval vědu a absolvoval bakalářský titul z fyziky.

Kdy tedy počítače přišly do Ritchieho života?

BOD 1: Pokud vypadáte dobře při psaní skvělého softwaru, budete muset zůstat zvědaví.

Nejsem ani chytrý, ani zvlášť nadaný. Jsem jen velmi, velmi zvědavý - Albert Einstein

Zvědavost podporuje hlad po znalostech. A poznejte mou drahoušku, vládne světu.

Zatímco byl student, Ritchie se nějak zúčastnil přednášky o tom, jak jsem pracoval Univac.

UNIVAC I (Universal Automated Computer I) byl první komerční počítač vyrobený ve Spojených státech.

Níže je to, jak to vypadalo:

wikipedia

Vážně, jaký druh zvědavosti způsobí, že se člověk stane místem a skutečně si užije přednášku o tom, jak ta věc funguje?

Zdá se, že ten typ, který dělá skvělého programátora.

Po tomto setkání Ritchie dále zkoumal, jak počítač skutečně fungoval.

Zvědavost zabíjí kočku . Všichni to víme, ale nejste kočka.

BOD 2: Vím, že jste to už slyšeli, ale budujte výrobky. Spousta krmiv.

Místo toho, abych se soustředil na konkrétní projekty, chtěl jsem být kolem lidí se spoustou zkušeností a nápadů. Začal jsem tedy pracovat na různých projektech, abych se naučil svou profesi. “- Dennis Ritchie

Udělejte z budování mnoha projektů produkt vaší zvědavosti. Přeložit tuto zvědavost do budování různých projektů - a podobně jako Ritchie vám to pomůže naučit se cestu kolem profese.

BOD 3: Pověste kolem těch, které považujete za lepší a zkušenější.

Zřejmým důvodem, proč byste to měli udělat, je to, že se budete učit mnohem rychleji a vaše současné znalosti by vám nebyly příliš pohodlné.

To bylo něco jiného, ​​o čem se řekl, že se Dennis Ritchie choval dobře.

Pokud se nemůžete fyzicky přiblížit lidem, které považujete za lepší a zkušenější, je vaším přítelem internet.

Sledujte je na kanálech, se kterými se cítíte dobře. Přečtěte si jejich blogové příspěvky. Podívejte se na jejich videa z youtube. Poslouchejte jejich podcasty.

Prostě kolem nich zůstaňte.

BOD 4: Řešení problémů.

"Není to skutečné programování, které je zajímavé." Ale to je to, čeho můžete dosáhnout s konečnými výsledky, které jsou důležité. “- Dennis Ritchie

Dennis Ritchie žil v době, kdy počítače zaplňovaly místnost, a stejně tak mnoho dalších. Ale Ritchie věděl, že se vyvíjejí menší počítače, a neměly snadno použitelné operační systémy, a tak se pustil do projektu na jeho vybudování.

Takto Ritchie viděl programování obecně. Bylo to o tom, čeho lze dosáhnout. Problémy, které by mohly být vyřešeny, a jejich dopad na lidi.

Pokud vás problém tolik otravuje, neignorujte jej. Pokud si myslíte, že je mnoho přehlíženo, vyřešte to. Něco budovat. Prostě to udělej.

Buďte zvědaví. Studujte koncepty. Požádat o pomoc.

Neměli byste se ohlédnout zpět, dokud problém nevyřešíte.

Když je něco dost důležité, uděláte to, i když šance nejsou ve váš prospěch - Elon Musk.

Zde jsou nějaké příklady :

  • Technologie Electron JS, technologie pro vytváření desktopových aplikací s Javascriptem, ožila, protože část týmu Github chtěla vytvořit hackovatelný editor s webovými technologiemi.
  • Redux, předvídatelný stavový kontejner pro Javascriptové aplikace, vytvořil Dan Abramov, protože chtěl vytvořit knihovnu pro správu státu s minimálním API, ale zcela předvídatelným chováním - tak to říká.
  • Quincy Larson a několik dalších postavili platformu Freecodecamp, aby vyřešili problém výuky webových technologií v komunitě s otevřeným zdrojovým kódem.

Viděli problém a pokračovali v jeho řešení.

Klíčové cesty s sebou od Dennise Ritchieho, otce programovacího jazyka C.

  • Zůstaňte zvědaví a udržujte oheň poznání. Nikdy nemůžeme vědět všechno.
  • Porozumět základům. Mistr základů je skutečným mistrem dovednosti.
  • Řešit problémy. Pokud si myslíte, že něco lze udělat jinak a mělo by se to udělat, prostě to udělejte. Zlepšíte se rychleji a budete mít lepší životy
  • Vybudujte spoustu různých projektů
  • Visejte kolem lidí s větší odborností, zkušenostmi a nápady. Nemůžete to vyměnit za nic jiného.

2. Poučení od Linuse Torvaldse, člověka za operačním systémem Linux Kernel

Linus Torvalds, Softpedia

Linus Torvalds, pojmenovaný časopisem Time jako ‘jeden z nejvlivnějších lidí na světě, je kreativní génius za operačním systémem Linux.

  • V roce 1998 byl držitelem ceny Pioneer Award Electronic Frontier Foundation (EFF).
  • V roce 1999 získal MIT Technology Review TR100 titul „jeden ze 100 nejlepších inovátorů do 35 let na světě“.
  • V roce 2000 byl příjemcem medaile Lovelace, kterou udělila Britská počítačová společnost
  • V roce 2008 se stal induktorem v sále členů muzea historie počítačů
  • V roce 2012 byl uveden do internetové síně slávy.
  • V roce 2012 byl také jedním z příjemců Millennium Technology Prize.

Teď to stojí za skvělou jízdu.

SPZ Linuse Torvaldse. Foto: Jon Snyder / Kabelové

Linus, narozený v Helsinkách, 1969 a rodině novinářů, říká, že jeho dětství nebylo nic zvláštního.

Linus, ovlivněný převážně jeho mateřským dědečkem, napsal své první programy v 10, nebo technicky ve 12 letech. Pomáhal svému dědečkovi psát ve svých programech a až do věku 12 let je začal upravovat a psát své vlastní programy.

Pokud být samouk programátora znamená naučit se programovat, bez ohledu na některé základní počítačové třídy, je Linus stejně samoukem programátor.

Podle něj „v té době existovaly na střední škole programovací třídy, ale byly docela základní a základní“

Bod 5: Formální vzdělávání v oblasti informatiky je skvělé, ale nenechte se to zastavit.

"Vzdělávání v oblasti informatiky nemůže nikoho stát odborným programátorem víc než jen studium štětců a pigmentů může z někoho udělat profesionálního malíře."
- Eric Raymond

Zatímco vyrůstal, Linus Torvalds považoval za zajímavé psát hry a dělal strojový kód. Neměl přístup k assembleru, takže celé shromáždění provedl na papíře a napsal je jako binární.

To je docela špatné.

Ještě zajímavější je, že všichni v jeho rodině (kromě těch z jeho mateřské strany) byli novináři. Byl to černá ovce.

Ve svém rozhovoru s Muzeem počítačové historie říká:

"Byl jsem velmi geek." Zůstal jsem uvnitř a četl nebo programoval. A upřímně řečeno, stále jsem četl a seděl před počítačem. Je to můj bobby “

BOD 6: Milujte, co děláte. Přináší to nejen peníze a slávu.

Většina dobrých programátorů programuje ne proto, že očekávají, že jim bude veřejnost zaplacena, nebo že se jim líbí, ale protože je zábavné programovat - Linus Torvalds

Musím říci, že mnohokrát láska k programování nepřichází, když začínáte. Pro mnoho lidí je to odnož zvládnutí jejich řemesla.

Naučíte se, dělají chyby, stavíte výrobky, uvidíte, jak se dobře děláte, a prostě prostě milujete to, co děláte.

I s těmi, kteří začínají s láskou, je vidět, jak jejich láska roste, když ovládají své řemeslo.

Pokud máte rádi programování, ale nezdá se, že by se zlepšoval, nevzdávejte to. Většina lidí měla na sobě stejné boty - a ve větších velikostech!

BOD 7: Buďte pohodlní od malých - ale rostou.

"Chci si jen postavit svůj vlastní operační systém" - Linus Torvalds ???

Tak NENÍ to příběh. Projekt Linux nezačal jako dobrodružství při budování operačního systému.

Podrobnosti o tom vás možná nudí. Ale tady je ten důležitý kousek.

Linus objednal MINIX, v podstatě unixový počítačový operační systém (OS). Poprvé vyšlo v roce 1987 a jeho kompletní zdrojový kód byl zpřístupněn univerzitám pro studium kurzů a výzkumu.

Linus hrál kolem stroje a psal své programy, aby z diskety spustil systém bez OS.

Linus chtěl hrát se samotným CPU. Takže použití OS by porazilo účel jeho cvičení.

Po linii nenašel program, který napsal, velmi užitečný. Poté svůj program rozšířil do bodu, kdy to byl operační systém

Mnoho úspěšných lidí začíná malé, ale je to velké.

Nebezpečí spojené se startem velkého je, že můžete spadnout do pasti ohromení.

Také je naprosto v pořádku něco neví. Perfektně v pořádku být amatérem v nové technologii, ale rozmnožte svá křídla a zvládněte je co nejrychleji.

BOD 8: Musíte udělat práci. Nikdo to za vás neudělá

A samozřejmě jsem i tak četl knihy operačního systému - Linuse Torvaldsa

Ještě jsem potkal úspěšného muže, který nepracuje.

Lze snadno předpokládat, že Linus jen magicky věděl, jak vytvořit operační systém. To není pravda.

Dal potřebnou práci.

Ve svém rozhovoru s Muzeem počítačové historie začal pracovat na pokusu o reorganizaci programu, který vytvořil, takže fungoval spíše jako skutečný operační systém. A očividně také četl knihy operačního systému.

Nic magického. Musíte se věnovat hodinám práce potřebným k tomu, abyste si dobře programovali.

Klíč s sebou od Linuse Torvaldse

  • Vzdělávání v oblasti výpočetní techniky je skvělé, ale nenechte se zabránit tomu, abyste byli skvělí.
  • Milujte, co děláte. Pokračujte dobře, zapomeňte na obdiv a peníze, přijdou později.
  • Je naprosto v pořádku začít s malými. Jen tam nezůstaň.
  • Buďte připraveni věnovat potřebnou pracovní dobu. Nic úžasného nepřijde levně

Bonusové body od ostatních zkušených vývojářů

Osobně jsem shromáždil vstupy od některých zkušených softwarových inženýrů. Co si myslí o tom, že je nejlepším vývojářem, kterým můžete být?

BOD 9: Outwork Všichni ostatní Snaží se být nejlepší

Bill Sourour, nyní píše software více než 2 desetiletí. Pokud jste zvědaví, Quincy Larsonová s ním vedla rozhovor

Natáhl jsem se k němu a tady je to, co řekl:

Základní odpověď zní: být tím nejlepším v něčem, co musíte překonat všechny ostatní, kteří se také snaží být nejlepší. To znamená kód, číst, učit se, pracovat na něm každý den a pořád. - Bill Sourour

Podle Billových slov by mohla být ještě zajímavější otázka, proč chcete být NEJLEPŠÍ ve SVĚTĚ? Co to přinese? Je to skutečný cíl?

A co takhle snažit se být tím nejlepším, co můžeš být a nebojíš se zbytku světa?

Stále to znamená odpalovat zadek, ale pak budete soutěžit pouze proti sobě. Udělejte si svůj cíl každý den, abyste byli lepší, než jste byli včera, a dostanete se velmi daleko.

BOD 10: Naučte se přemýšlet o abstrakcích a softwarovém designu jasněji

Dave

Dave Ceddia pracuje jako softwarový inženýr v oblasti Bostonu a jeho obrovská zkušenost je taková, kterou si časem budu vážit. V dnešní době většinou staví rozhraní frontendu s Reactem a napsal knihu Pure React

Pokud jste zvědaví, tady je jeho blog

Natáhl jsem se před pár měsíci k Daveovi a detaily v jeho odpovědi mě zmátly.

Zde jsou jeho myšlenky:

1. Ve správný čas prozkoumejte výhody plynoucí z vystavení více programovacím jazykům

Studium více jazyků vás vystavuje novým myšlenkám a novým způsobům řešení problémů (zejména funkčních jazyků).

Pak existují nižší úrovně, jako je C, které vás naučí pamatovat na správu a výkon paměti. V podstatě musíte věci stavět. Budujte spoustu věcí.

2. Prozkoumejte ještě více typů projektů

Psaní kódu UI (User Interface) není jako psaní vysoce výkonného kódu pro získávání dat, není jako psaní OpenGL kódu, není jako programování soketu ... Je tedy zajímavé rozdělit se z jedné stránky vývoje, jako je frontend / backend, do jiných věcí , jen kdybych viděl, jaké to je.

3. Shromážděte širokou škálu zkušeností

Takže součástí toho, že jsem pro mě dobrým vývojářem, je celá řada zkušeností. To by ale mohl být jen já. Každý za to bude mít svou vlastní odpověď. Ale myslím, že je užitečné vědět něco o všem.

Myslím, že bych se nazval generálem - rád se učím nové věci, a tak jsem udělal spoustu různých věcí. Kód pro získávání dat v C ++, který mluví s uživatelským hardwarem, GUI v Qt, malé hry v OpenGL, nudné Java a SQL, webapps v Ruby on Rails, malé projekty Raspberry Pi jako otvírač garážových vrat ... spousta malých věcí.

4. Získejte skvělé výsledky v oblasti automatizace a testování neustále

Po cestě se pokuste získat dobré výsledky v automatizaci věcí. Myslím, že touha po automatizaci byla hnací silou většiny projektů, které jsem udělal, ale také velkým důvodem a motivátorem pro učení Linuxu a příkazového řádku.

Znalost příkazového řádku se jeví jako pomocná, vedlejší věc. Ale myslím, že je to opravdu důležité.

Mění to, jak vidíte problémy. Věci jako „ach, kecy, musím změnit název proměnné ve 30 souborech? nikdy ne… “staňte se několika řádky bash.

Nastavení sestavení je méně zastrašující, protože všechny příkazy dávají smysl, nebo alespoň vidíte vzájemné vztahy.

5. Pochopit návrh softwaru

Takže nejtěžší pro mě, jak se zlepšit jako vývojář, je bit architektury.

Návrh softwaru, jak strukturovat kód tak, aby byl znovu použitelný a snadno čitelný a snadno upravitelný. Skvělé výsledky při refaktoringu a testování.

Musím přiznat, že nejsem vždy skvělý při testování. Ale TDD (Test řízený vývoj) je ve skutečnosti zábava, a měli byste se ji učit a praktikovat. Myslím, že je to zkratka / systém, jak se zlepšit na „designové“ straně vývoje softwaru.

Jednou z nejlepších knih, které jsem četl o designu, byl Praktický OO Design v Ruby od Sandi Metze. Nemusíte Ruby moc dobře znát, abyste z toho měli spoustu výhod. Prochází refaktoringem několika malých příkladů, které usnadňují jejich údržbu, a diskutuje o kompromisech a důvodech každé změny, kterou provádí.

Závěr

Odkud jdeš? Aplikujte tyto principy a začněte hledat lepší vývojáře. Navíc byste se měli také snažit úmyslně cvičit.

DHH, Stvořitel Ruby on Rails, to ve svém nedávném Quora Session uvedl takto.

"Nepomáhá to cvičit stejnou lekci desetkrát." Musíte neustále hledat okraj své zóny pohodlí. “- David Hansson, tvůrce Ruby on Rails.

Hodně štěstí a radost z toho, že je lepší vývojář!

Do doporučit článek, a napište své komentáře.

Nějaké tipy, které vám osobně pomohly? Pojďme to slyšet!