it-swarm-eu.dev

Jaký je nejnebezpečnější mýtus o programovacích problémech?

Jinými slovy ... Jaké je nejčastější a frustrující nedorozumění ohledně programování, se kterým jste se setkali?

Které rozšířené a dlouhodobé mýty/mylné představy najdete pro programátory je těžké rozptýlit/opravit.

Vysvětlete prosím, proč je to mýtus.

101
Maniero

To proto, že jste programátor, víte, jak opravit počítačový virus.

272
Neth

Běžná personální záležitost, která mě nutí nutit, když lovím práci: implicitní předpoklad, že všechny dovednosti kódování jsou specifické pro daný jazyk, že neexistují žádné znalosti softwarového inženýrství, které přesahují příkazové sady. Tato desetiletá zkušenost v Java a dalších pět v Perlu znamená, že byste byli zcela k ničemu na projektu, který používá, řekněme, C #.

"Ano, existuje křivka učení. Ale udělal jsem těžší přechody než tohle. Udělám vám obchod, zaplatím mi 80% za první měsíc a na konci té doby, pokud nejsem ... "Počkejte, vlastně tuto konverzaci vlastně nevedeme, protože vaše opice HR jednoduše moji aplikaci smazala."

266
BlairHippo

Pokud nepíšete, nepracujete.

Věřím, že zombie prázdné pohledy a procházky po kávě jsou zásadní pro programátory, kteří organizují věci v hlavách.

260
burnt_hand

že můžete urychlit pozdní projekt jednoduše tím, že na něj házíte více lidí.

158
chrmue

Tento software pro psaní je snadný.

Jak jinak vysvětlíte všechny tyto projekty, které běží v průběhu času a nad rozpočet a lidé (politici, média atd.) Jsou stále překvapeni, a zákazníci si stěžují, když jim řeknete, že jejich „malý web“ (nebo cokoli) skutečně zabere 6 měsíce na vývoj a stát několik tisíc dolarů (libry, eura, [vložit měnu výběru])

S fuzzy a neustále se měnícími požadavky si někdy myslím, že je úžasné, že jakýkoli software někdy skončí!

Vím, že je to o něco složitější;)

132
ChrisF

Složitost aplikace je přímo úměrná složitosti uživatelského rozhraní. Tímto zdůvodněním byste měli být schopni sestavit Google nebo Twitter přes víkend.

114
JohnFx

Všichni programátoři jsou dobří v matematice. :-)

95
David Cary

Jakékoli dospívající dítě, které hackuje počítač, je ekvivalentem (nebo nadřazeným) dovednostem jako běžný pracovní programátor.

Můj čtrnáctiletý synovec je dobrý s počítači a já mu platím $ 10/h za sekání trávníku. Proč bych vám měl zaplatit šest číslic, abych napsal další FaceBook?

95
JohnFx

To v reálném čase znamená rychle.

Řeknutí "Pakety musí být zpracovány v reálném čase." je bezcenné a zlé dvojče ... odpovídá "Jak rychle se X musí stát?" with "Real-time" je možná méně než bezcenné ... hraničí spíše s hloupostí než s ignorantem.

v reálném čase znamená, že jednoduše řečeno, že funkce Y bude vždy trvat X množství času a že jakákoli odchylka znamená vážnou chybu. Trvání X nedefinuje „real-time“, může to být šest mikrosekund nebo šest dní. To, že můžete rčit funkce Y bude trvat X čas definuje "real-time". V této definici jsou deterministické systémy v reálném čase.

Tak ho srazte ..

69
Rusty

Proč to lidi prostě nenapíšete poprvé, místo aby trávili tolik času zadáváním kódu buggy a později čtením kódu pokusem najít chyby?

:-) :-) :-) :-)

69
David Cary

Pokud jste šli na univerzitu, nejste pro tuto práci vhodní

64
user2528

Tato předčasná optimalizace znamená, že byste neměli vůbec optimalizovat. Viděl jsem hrozně špatné databáze, protože nikdo nechtěl uvažovat o výkonu (kritickém pro jakýkoli databázový systém) v designu, protože to byla předčasná optimalizace, než jakýkoli jiný problém s návrhem databáze. Odpadky, jsou známí zabijáci výkonu, přestaňte je používat jako svou první volbu.

Další mýtus, že je příliš těžké změnit databázi. Ne, ale musíte uvažovat o tom, jak provést refaktoring ve fázi návrhu, abyste to dokázali efektivně. A BTW, čím déle budete čekat na vyřešení nepříjemného problému s výkonem založeným na designu, tím těžší bude opravit.

Další špatný mýtus, design databáze by měl odrážet OOP principy. Ne, databáze jsou navrženy pro práci se sadami, které nejsou principy OOP. Některé věci [OOP] způsobí hrozné problémy s výkonem a jiné jsou v databázi jen hloupé bolesti.

Nakonec byste měli v aplikaci vynutit integritu dat. Databáze se chystají naposledy kolem aplikace a při výměně aplikace by ztratily pravidla, k nim budou přistupovat vícedílné aplikace a často bude nutné spouštět přímé dotazy k opravě věcí, které neprochází aplikací. Nikdy jsem neviděl databázi, která odmítá vynucovat integritu dat v datové základně, která má dobrá data.

61
HLGEM

Že existuje nějaký mýtický zdroj absolutních osvědčených postupů.

Odchylku nelze nikdy ospravedlnit.

Žádný dokument, který tvrdí, že něco definuje jako nejlepší postup, nemůže být nikdy zpochybněn.

53
Bill

Skutečnost, že marketing vypadá, že si myslí, že přidání tuny malých funkcí je méně práce než přidání jedné, ale spíše těžké funkce. Což je pravděpodobně konkrétnější případ mylné představy, že „přepínání úkolů nemá režii“.

51
Giel

Tento kód komentáře není nutný nebo „dobrý kód nepotřebuje komentáře“. Někdy musíte vysvětlit, co dělá složitý kousek kódu. Kromě toho, komentování sekcí kódu vám pomůže sbírat čtení mnohem efektivněji.

50
DisgruntledGoat

Nejhorší mýtus: Pokud programujete po dlouhou dobu, můžete být snadno vedoucím projektu.

A že byste se měli stát projektovým manažerem, pokud jste dlouhodobě programovali.

50
Namwar Rizvi

Pokud v našem projektu použijeme něco jiného než Java, C # a C++, nenajdeme žádné programátory, kteří by ho podporovali.

50
P Shved

Java je pouze C++ s různými třídami.

42
Gordon
33
TheLQ

Pravděpodobně nejnebezpečnější, co jsem viděl, protože je tak snadno přijato, je to, že schopnost rychle psát kód je dobrá, a proto čím rychleji můžete kódovat [vložte funkci zde] v daném jazyce, tím lepší je jazyk je.

Toto je vážný příklad předčasné optimalizace, protože mnohem více práce jde do kódu držování než jeho vytvoření. To znamená, že je mnohem důležitější psát kód, který je snadno čitelný, srozumitelný a laditelný, než kód, který lze snadno psát rychle, a usnadňování snadno čitelného kódu je mnohem užitečnějším měřením kvality jazyka.

33
Mason Wheeler

že jako programátor víte vše o nejnovějších trendech v hardwaru, přetaktování, modifikaci případů atd. přátelé a příbuzní vás při nákupu zařízení konzultují.

31
setzamora

Lekce výroby mohou být použity v procesu vývoje softwaru.

31
Mike King

Když programátoři řeknou, že je velmi obtížné/jednoduše nemožné, HR si myslí, že jsou líní a nemotivovaní

30
koos303

Pro moji firmu musí existovat program s otevřeným zdrojovým kódem. Nemůžete si to jen stáhnout a Tweak podle mých požadavků.

28
Tim Murphy

Měl jsem více než jednoho člověka, abych se mě zeptal, jaké to je programovat, abych si během rozhovoru uvědomil, že si vlastně myslí, že programujeme přímo v binárních nebo matematických symbolech.

Nevím, jestli chci rozptýlit tento mýtus, takže jsem vypadal opravdu chytře!

27
JohnFx

Myslím si, že největší mylná představa je, že je důležitější umět kód snadno zapsat, než umět jej přečíst a porozumět mu.

26

Programování je jako práce na montážní lince. Pracujete na produktu po určitou dobu (možná se spolupracovníky) a nakonec jej odešlete. Stejně jako stavba domu z cihel.

Contra: Programování obsahuje hodně kreativity a plánování. Je to umění. Stejně jako zedník zná i programátor rozdíl mezi tvarováním cihel a plánováním celé katedrály.

24
Josua Schmid

Přenesení programu na C++ automaticky zrychlí jeho provoz.

24
JohnFx

Jakékoli programovací prostředí s vizuálním návrhářem nějakého druhu zajistí, aby obchodní uživatelé mohli program „psát“ a skuteční programátoři nejsou potřeba.

21
Jesse C. Slicer

Opakované použití OOP. Je to největší omyl na trhu v programování.

20
clrod

To učení syntaxe je těžká část.

19
palto

2 mýty, které chci odhalit. Mnoho mých přátel nechápe, že Java a JavaScript jsou zcela odlišné) a spousta neprogramátorů, o kterých vím, nechápe, že existuje více než jeden jazyk. Jeden z mých přátel právě se dostával do programování a potřeboval ode mě nějakou pomoc, 'samozřejmě ani nevěděl, v jakém jazyce pracuje.

Oba pro mě přijdou hodně.

15
Doug

To, že přiřazení jiné priority než „1“ znamená, že úkol nebude nikdy proveden.

Měl jsem manažera požádat mě, abych přizpůsobil nástroj pro sledování chyb prioritami 1a, 1b, 1c, 1d a 1e, aby mohl všechno přiřadit jako nějakou variantu priority 1, ale přesto jsme mohli práci pořádat.

A ano, prošel jsem všemi otázkami „priority 1“. Ale než jsem mohl přistoupit k problémům, které byly stále v prioritě 2-5, manažer mě přiměl, abych priority těchto otázek znovu přiřadil do pěti úrovní priority 1.

(Uvědomuji si, že tento mýtus není konkrétní programování, ale platí to o několika dalších odpovědích v tomto vlákně.)

15
Bill Karwin

Dokud počítač rozumí kódu, který zadáváte, na tom záleží. Proto psaní poznámek a používání proměnných jmen, které jsou delší než dvě písmena, je ztráta času. :-(

13
David Cary

Forma klávesnice souvisí s programovací schopností. Jeden z učitelů na střední škole mi vážně řekl: „Nemůžete rychle kódovat, pokud nemůžete rychle psát.“ Moje odpověď byla: „Je to jako říkat, že mohu napsat velký americký román, jen když to udělám kurzívou.“

12
quanticle

Že prototypový programátor:

  • přichází do práce po 11:00
  • nepije nic jiného než Mountain Dew
  • miluje indické jídlo nebo sushi
  • žije samostatně podle výběru (s rodiči a/nebo v suterénu)
  • hraní videoher až do 3 hodin
12
Kelly S. French

Tato maďarská notace znamená pouze to, že předpony proměnných předepisujete typem (jako int iArraylength = 5;) místo toho, jaký druh dat obsahuje (jako int xcTextfield = getTextfield (). Coord.x;)

"Systems Hungarian notation"! = "Apps Hungarian notation"

10
Zaz

Bezchybný software. Později jsem se dozvěděl, že každý program bude stále fungovat s chybami a celá hra se týká splnění požadavků zákazníka.

10
Gopi

Že jakýkoli kód napsaný v jazyce OOP (C #, C++, Java) od kohokoli je automaticky objektově orientovaný a „opakovaně použitelný“.

Nebylo to jen jednou, kde jsem byl požádán o opětovné použití bloku tiskových řádků nebo třídy v architektuře, která neměla žádné vzory kromě dědičnosti (což se ani nepočítá). Zjevně se kopírování také považuje za dobré opakované použití kódu pro každého, kdo nezná rozdíl mezi jazykem OO a samotným OOP).

Oblíbený TDWTF, který se stává tak často: Odmítnutí kód

9
Jonn

Tyto webové aplikace mohou být až 7x24.

Zeptejte se jakéhokoli podnikatele, jaké prostoje jsou povoleny, a vždy trvají na 100% dostupnosti. Nezapomeňte, že 1 minuta prostoje v týdnu je stále 99,99% a pro organizaci menší než hlavní nástroj je téměř nedosažitelná.

9
bmb

Všechny programy napsané v C/C++ se budou spouštět rychleji než ekvivalentní programy Java/C #.

7

Že existuje jediný „nejlepší“ nástroj/řešení/odpověď na jakýkoli problém/otázku

7
Murph

Největší mýtus je, že je to snadné.

7
Fortyrunner

Programátoři, kteří se stali manažery, říkali:

"Tři týdny ?! Už jsem kódoval v minulosti, jak těžké to může být?"

6
Arcturus

Že každý M.Sc. s jedním kurzem programování stačí, aby byl najat jako vývojář softwaru.

6
FeatureCreep

To proto, že jste programátor, víte, jak opravit kopírku.

6
Jeff Siver

Které špatné nápady jsou dlouho rozšířené

Mezi programátory existuje velmi rozšířená víra o tom, jak najít problémy s výkonem. Je to abyste je našli, musíte je změřit.

Nejjednodušším příkladem je (nežádoucí) nekonečná smyčka. Trvá 100% času, dělá věci, které jsou zcela zbytečné.

Jak zjistíte problém? Dostanete ho pod debugger a pozastavíte jej, zastavíte nebo jej přerušíte. Pak se podíváte na zásobník, protože víte, že smyčka je někde na něm. Zachytili jste to při činu. Měřili jste to? nebo jen najít?

Předpokládejme, že to není nekonečná smyčka, prostě to trvá déle, než si myslíte. Předpokládejme, že zbytečná práce je menší než 100%, jako 90%, 50% nebo 20%. Je to stejný nápad. Pokud ji pozastavíte, je toto procento pravděpodobností, že ji při činu chytíte. (Nemusíte vědět, jaké procento je to chytit.)

Pro jistotu můžete několikrát pozastavit. Jakmile uvidíte, že něco dělá, stačí jen dva vzorky, které můžete nahradit něčím rychlejším, můžete to opravit pro zrychlení v Nice. Nejen to, že jste snadněji našli další problémy, protože čas je kratší a zabírají větší procento. To může "Snowball", dokud kód je velmi blízko optimální.

Samozřejmě, pokud chcete měřit problém , stačí odebrat více vzorků, ale není to předpoklad pro jeho nalezení.

Lidé mi s radostí říkají, že to je to, co vzorkovací profilerové dělají, ale dělají to lépe. Mnozí by raději debatovali o této otázce, než aby se sami přesvědčili.

4
Mike Dunlavey

To, že být manažerem, je lepší než být kodérem. Být manažerem je BORING. Každý, kdo šel do čistého managementu, nikdy neměl rád programování.

4
zhenka

Počítače a software samy o sobě zlepšují pracovní proces.

4
aasc

Mezi programátory: Že Delphi je mrtvá, umírá nebo na podporu života.

3
Peter Turner

Že manažer ví, že se snaží o kód, který píšou jeho vývojáři.

3
Mike Mooney

Existuje jazyk zvaný C/C++

Nebo že jazyky jsou tak blízké, že dovednosti jsou zaměnitelné.

3
Martin York

Tento software pro psaní je vlastně o psaní kódu.

2
Craig Norton

Mnoho lidí má sklon myslet si, že JavaScript je podobný C++ a nechápou, že ve skutečnosti používá dědičnost prototypu.

1
diadem

Programovací jazyky se neustále mění.

To mohlo být už dávno v minulosti ...
V dnešní době jsou však změny většinou doplňkové funkce, které se snaží nenarušit stávající kód.

1
Tamara Wijsman

Proč programátoři trvají na psaní chyb? (Pochází z marketingu + tester osoby, která nikdy nemůže udělat chybu zprávu správně).

1
Dorin Lazăr
  • To OO znamená kvalitu.
  • Že přístup OO) je správný přístup.
  • Že úkolem programátora je psát kód.
  • Na tom jazyce záleží.
0
Fredy

Celá mentalita hollywood (pro nedostatek lepšího jména), že kdykoli se programátor ve filmové/televizní seriále promluví, musí artikulovat každou technologii, kterou potřebuje I potřebovat PHP front-end a MySQL back-end !!! 11 )) ... A pak ještě něco, co nedává smysl všichni samozřejmě.

Kdybych takhle mluvil, pravděpodobně bych se dostal do ořechů.

0

K popisu problému použijte angličtinu (nebo váš rodný jazyk):

je užitečnější než poskytnutí kompilovatelného příkladu kódu, který ilustruje problém.

0
Martin York