ããã°ã©ãã³ã°ã§ãã人ã¨ã§ããªã人ã¨ã®éã®æ·±ãæº
どうしてプログラマに・・・プログラムが書けないのか?ãèªãã§ãã¦åºã¦ããã®ã§åºå±ã®ä¸ã¤ã訳ãã¦ã¿ããSeparating Programming Sheep from Non-Programming Goatsã®å訳ã
ããã°ã©ãã³ã°ã¨ãããã®ã«ã¯åãä¸åããå¼·ãåºãã¨ãããã¨ã¯ããã¨ç¥ããã¦ããã¨æããããã®ã¨ã³ããªã§ã¯ããã°ã©ãã³ã°ãã§ãããã§ããªããã¯æ¯è¼çç°¡åãªãã¹ãã«ãã£ã¦ãããã°ã©ãã³ã°ã®è¨ç·´ãå§ããåã®æ®µéã§åããã¨ä¸»å¼µãã¦ãããどうしてプログラマに・・・プログラムが書けないのか?ã§ã¯ããããããã®äºåãã¹ãããã¹ãã¦ããªããããªäººéã¾ã§ããã°ã©ãã¨ãã¦å¿åãã¦ããã¨è¨ã£ã¦ããããã®å¤å®æ³ã¨ãã¦æåãªFizzBuzzåé¡ãæãã¦ããã
- 追è¨ï¼2019/2/28)
- 注æï¼ ãªããã®è«æã¯ãã°ããåã«èè ã®ä¸äººã«ãã£ã¦æ¤åãããããã§ã Camels and humps: a retraction
- ãªããããºã£ãã®ã§å®£ä¼ Common Lispが機械学習に向いていると考えるこれだけの理由
訳åºã¯ãã
å®ã«å¤ãã®äººããªã³ã¯ãã¦ããこの論文(PDF)ã§ã¯ãããã°ã©ã ãããã°ã©ãã³ã°è¨èªã«è§¦ã£ããã¨ããªãå¦çéã対象ã«ããããã°ã©ãã³ã°ã®ã§ããç¾ã¨ã§ããªãå±±ç¾ãåºå¥ããæ¹æ³ããææ¡ãã¦ããã
ãããªã¹ã¦ããã°ã©ãã³ã°ã®æå¸«ã¯ããã°ã©ãã³ã°ãã§ããå¦çã¨ã§ããªãå¦çã®äºã¤ã®å±±ãã§ãããã¨ã«æ°ä»ãã¦ãããããããã®å±±ã¯ç¬ç«ãªæ£è¦åå¸ãæãã¦ãããããã°ã©ãã³ã°æè²ã«é¢ããç ç©¶ã®ã»ã¨ãã©ãã¹ã¦ãæææ³ã«ã¤ãã¦ã®ãã®ã§ãããããªãã¡ãè¨èªãå¤ããå¿ç¨åéãå¤ããIDEã®å©ç¨æ³ãä»äºã¸ã®ã¢ããã¼ã·ã§ã³ã®ç¶æã«ã¤ãã¦æããããã ãããããããã®è©¦ã¿ã¯ãªããªã䏿ãããããäºã¤ã®å±±ã¯ä¾ç¶ã¨ãã¦æ®ãç¶ãã¦ããã
æã ã¯ã³ã¼ã¹ã®éè¬ä»¥åã«ãããã°ã©ãã³ã°ãã§ããæ¹ã®å¦çéãããã¯ã¢ããããå®é¨ãè¡ã£ããããã¦å®éã«äºã¤ã®å±±ã®ä¸æ¹ãé¸ã¶ãã¨ãã§ãããããã¯ä¿¡ãããããã¨ãããããªããã以ä¸ã®è©±ãèãã°ç´å¾ã§ããã ãããæã ã¯ãã®æ¹æ³ããªã䏿ãããã®ãã«ã¤ãã¦æ£ç¢ºãªã¨ãããç¥ã£ã¦ããããã§ã¯ãªãããããããã®è¯ãæè¦ãæã£ã¦ããã
ç§ã¯ããã°ã©ãã¼ã¨éããã°ã©ãã¼ã®åºå¥ããããªã«ãæ©ã段éã§ã¯ã£ããã¨ã¤ãã¨ãããã¨ã«æ°ä»ãã¦ããªãã£ããDan Bricklinã¯ãã®æåãå½¼ã®ã¨ãã»ã¤”Why Johnny Can't Program”ã®ä¸ã§è¿°ã¹ã¦ãããããããã®ç¾è±¡ã¯è¨ç®æ©ç§å¦ãæãã¦ãã人ã ã®éã§ã¯æããã«ä¸è¬å¸¸èã§ãã£ãã
é»åè¨ç®æ©ã1950年代ã«çºæããã¦ä»¥æ¥ãå¤ãã®å¤åãèµ·ãã£ãããé ã¨ãã¦å¤ãããªããã¨ããããã¨ãããæ¬¡ã®ãã¨ãè¨ããã ããããããªãå¤ãã®äººã ãããã°ã©ãã³ã°ãå¦ã¶ãã¨ãã§ããªãããããªãã¡ãæ¯å¹´è¨ç®æ©ç§å¦ã®å¦é¨1å¹´çã®30ï¼ ãã60ï¼ ã¯æåã®ããã°ã©ãã³ã°ã®ã³ã¼ã¹ãè½ã¨ãã¨ãããã¨ã ã
çµé¨è±å¯ãªæå¸«ã«ã¯ãã®äºå®ãèº«ã«æã¿ã¦ãããå½¼ãã¯ãããããã¦ããã
ãã®ä¸æ¹ã§ãç®ãè¼ããã¦ããåå¿è ã®æ¹ã§ã¯ããã®è人ã¯ä½ãééã£ãæ¹æ³ã§äººãæãã¦ããã«éããªãã¨ä¿¡ãã¦ãããèªãã®è¦ãçµé¨ãéãã¦ãããçå®ã§ããã¨ç¥ããã¨ã«ãªãããã®ããã«ãã¦1960年代ããå§ã¾ã£ããã®åé¡ã¯äºä¸ä»£ã«æ¸¡ã£ã¦æ®ãç¶ãã¦ããã
èªè
ã¯ããã°ã©ãã³ã°é©æ§ãå¤å®ããå½¼ãã®å®é¨ã¯è¤éãªãã®ã§ã¯ãªããã¨æããããããªãããããã¯éãã
第ä¸ã®åãã¯ãã®ãããªãã®ã ã
int a = 10; int b = 20; a = b;
aã¨bã®æ°ããå¤ã¯ä»¥ä¸ã®çµåãã®ãã¡ã©ãã:
- a = 20 , b = 0
- a = 20 , b = 20
- a = 0 , b = 10
- a = 10 , b = 10
- a = 30 , b = 20
- a = 30 , b = 0
- a = 10 , b = 30
- a = 0 , b = 30
- a = 10 , b = 20
- a = 20 , b = 10
ãã®ãã¹ãã¯è·æ¥ããã°ã©ãã«ã¨ã£ã¦ã¯èªæãªãã®ã ããããã¾ã§ã³ã¼ããä¸åº¦ãè¦ããã¨ã®ãªãå¦çã«ããã¦ã®ãã¹ãã ã¨ãããã¨ãæãèµ·ããã¦æ¬²ãããä»ã«ã12åã®åããããªèª²é¡ãåºãããã
ãã®è«æã®èè ã¯è¨ç®æ©ç§å¦ã«ãããæåã®ãã¼ãã«ã¯ä»¥ä¸ã®ãããªãã®ã«ãªãã¨ä»®å®ãã¦ããã
- ä»£å ¥ã¨ç³»å
- å帰 / ç¹°ãè¿ã
- åæä¸¦åæ§
ä¸ããé ã«ãã¼ãã«ã¯é«ããªã£ã¦ãããå¾ã£ã¦ãã¹ãã¯æ°ç±³ããã°ã©ãã«å¯¾ããæåã®ãã¼ãã«ã§ããä»£å ¥ããå§ãã¦ããããã®ãã¹ãã®çµæã¯3ã¤ã®ã°ã«ã¼ãã«ç¶ºéºã«åãããã
- å¦çã®44ï¼ ã¯ä»£å ¥ãã©ã®ããã«åããã«ã¤ãã¦ä¸è²«ããã¢ãã«ãæã¤ã«è³ãï¼ãã¨ãæ£ãããªãã¨ãï¼
- 39ï¼ ã®å¦çã¯ä»£å ¥ã®ã¢ãã«ã¨ãã¦ä¸è²«ãããã®ãå½¢æã§ããªãã
- 8ï¼ ã®å¦çã¯ãµã¦ãããã¦åçã空ç½ã®ã¾ã¾ã«ããã
ãã®ãã¹ãã¯2å宿½ããããæåã®ä¸åç®ãä½ã®èª¬æããªãã«è¡ãã3é±éå¾ã«ããä¸åº¦è¡ã£ããå°è±¡çãªãã¨ã¯ãä¸åç®ã¨äºåç®ã§ã¯å®è³ªçã«ã°ã«ã¼ãã®å¤åãã»ã¨ãã©ç¡ãã£ããã¨ã§ãããã¤ã¾ããä¸åç®ã®ãã¹ãã§ããªããå¿ã®ä¸ã«ä¸è²«ããã¢ãã«ãå¾ããããã©ãããæåã®ãã¼ãã«ã«ãªã£ã¦ããã
èè ã¯ããã°ã©ãã³ã°ãã§ãããã¨ã¨ä¸è²«ããã¢ãã«ãå¿ã«æã¦ããã©ããã®éã«ã¯æ¥µãã¦é«ãç¸é¢ããããã¨ã«æ°ä»ããã
æããã«ãDehnahdiã®ãã¹ãã¯ããã°ã©ãã³ã°ã®ã§ããç¾ã¨ã§ããªãå±±ç¾ãåé¢ããæ¹æ³ã¨ãã¦å®å ¨ã§ã¯ãªãã
ã«ãé¢ãããããããã®ãã¹ããå ¥è©¦ã®åºæºã¨ãã¦ç¨ããããä¸è²«æ§ã®ããã¢ãã«ãæã¤ãã¨ãåºæ¥ãå¦çã®ã¿ãå ¥å¦ãã¦ããã¨ããã°ãããã°ã©ãã³ã°ã®ã³ã¼ã¹ããã¹ããå¦çæ°ã®çµ±è¨ã¯å¤ãã£ã¦ããã ãããå ¨ä½ã§ã¯61人ä¸32人ï¼52ï¼ ï¼ãã³ã¼ã¹ãè½ã¨ããããæåã®ãã¹ãã§ä¸è²«æ§ããã£ãã°ã«ã¼ãå ã§ã¯27人ä¸6人ï¼22ï¼ ï¼ãã³ã¼ã¹ãè½ã¨ããã«éããªãã£ããæã ã¯ãã®ã³ã¼ã¹ã®å¯å¦ã«ã¤ãã¦ã®äºåç¥èãä¸ããäºæ¸¬ãã¹ããè¡ã£ãã¨ããããããããã®æ£ç¢ºæ§ã¯ããªãé«ããããã¯æã ã®ç¥ãéãã§ã¯äºæ¸¬ã«æåããæåã®å®é¨ã§ããã
ãã®è«æã®å稿ã¯ã峿°ãªãå¦è¡è«æãã¨æããããå®ã«æ¥½ããããã®ã ã£ãã®ã§ãçããã«ãéèªããããã¨ãå¼·ããå§ããããå®éã®ã¨ãããããã°ã®ã¨ã³ããªã®ããã«èªã¿ãããã£ãã®ã ãããã¯ä¾ãã°ä»¥ä¸ã®ãããªè峿·±ãæ´å¯ã§æºãããã¦ããã
ååãªãã¼ã¿æ°ããªãã®ã§çãããã¾ã¾ã§ã¯ããããæåã®ãã¹ãã«ããã3ã¤ã®ã°ã«ã¼ãã®éãã¯ãç¡æå³ãªãã®ãã«å¯¾ããå§¿å¢ã®éãã®ããã«è¦ããã
å½¢å¼è«ççãªè¨¼æãã¤ã¾ãããã°ã©ã ï¼ããã°ã©ã è¨èªã¨å¼ã°ããå½¢å¼çãªã·ã¹ãã ã§è¡¨ç¾ããã¦ãããç¹å®ã®è¨ç®ãå¯è½ã§ããå½¢å¼è«çç証æï¼ã¯ãããèªä½ã¯ã¾ã£ããã®ç¡æå³ï¼meaninglessï¼ã§ãããããªããããã°ã©ã ãæ¸ãããã«ã¯ãããªããããã°ã©ã ã«æå³ãã¦æ¬²ãããã¨ããªãã§ããããããåãå ¥ããå¿ è¦ããããæ©æ¢°ã¯ç²ç®çã«ãã®ç¡æå³ãªã«ã¼ã«ã«å¾ããä½ããã®ç¡æå³ãªçµè«ã«è³ãã®ã ã
ãã®å®é¨ã§ä¸è²«æ§ãæã¤ãã¨ãã§ããã°ã«ã¼ãã¯ãã®äºå®ãäºåã«åãå ¥ãã¦ãããã¨ã示ãããããªãã¡ãå½¼ãã¯æ°å¦çè¨ç®ã®åé¡ãã«ã¼ã«ã®éã¾ãã¨ãã観ç¹ããè¦ããã¨ãã§ããããããæçµçã«ã©ããç®æãã¦ããã«ããããããç¡è¦ãã¦ã«ã¼ã«ã«å¾ããã¨ãã§ããã¨ãããã¨ã§ããã䏿¹ã§ä¸è²«æ§ãæã¦ãªãã£ãã°ã«ã¼ãã¯ããã«ã¯ç¡ãæå³ãæ¢ããã空ç½ã§åºããã°ã«ã¼ãã¯ãããç¡æå³ã§ããã¨ã¿ã¦ããããæ±ããã¨ãæå¦ããã
ã³ã³ãã¥ã¼ã¿ã®ä½¿ãæ¹ã¯èª°ããç¥ãã¹ãã ãã誰ããããã°ã©ãã«ãªãå¿
è¦ã¯ãªãã
ãããå®éã®ããã°ã©ãã³ã°ã¯ã©ãããè¨ç®æ©ç§å¦ã®æ°å
¥çã®ããªãã®é¨åéåã«æåéããæããããªããã®ãã§ããã¨ãããã¨ã¯å°ãæ°æãã§ãããæããã«èª°ããæã
ã®ããã«ç¡æå³ãªã«ã¼ã«ã¨ç¡æå³ãªçµè«ã«é
äºãããããã§ã¯ãªãã®ã§ããããç§ã«ã¯ä½æ
ãã®ãããªéããç¾ãããã®ãæ³åã§ããªãã
訳åºããã
- çµå±ãããã°ã©ãã³ã°ãæ°å¦ã«æ±ããããã®ã¯æ½è±¡çãªãã®ãæ½è±¡çãªã¾ã¾ã§æ±ãè½åã¨ãããã¨ã«ãªãã®ã ãããæ½è±¡çãªæ¦å¿µãã«ã¼ã«ã«å¿ è¦ä»¥ä¸ã«æå³ãæ±ããããå ·ä½çãªèº«ã®åãã®ãã¿ã¼ã³ã«ç¡çç¢çå½ã¦ã¯ãããã¨ããã¨ã¢ãã«ã¨ãã¦ã®ä¸è²«æ§ãå´©ããæ½è±¡åããæå³ããªããªã£ã¦ãã¾ãã
- ä¸å¦æ ¡ã§æåã«ãã代æ°ã§ã¯ãå¤é å¼ã®å±éã¯ãããå æ°åè§£ã¯ãããã¨ãã£ãããã«æ©æ¢°çã«å¼å¤å½¢ãã¦ããã¨æ¹ç¨å¼ã®æ ¹ãæ±ã¾ãããã»ã¹ãè¸ãããã ããå¼ãå±éãããã¾ã¨ãããããã¨ããã§æå³ã¯åãã§ãããããèªä½ã«æå³ãããããã§ã¯ãªãã¨ãããã¨ã§ãããããã種ã®ç¡æå³ãªã«ã¼ã«ã«å¾ãè¨ç·´ã ã£ãã®ãããããªãã
- ãã³ã¡ã§ä»£å ¥ã®åé¡ã®æ£è§£ãæ°ã«ãã¦ãã人ãããã®ã§ãããä¸ã®åé¡ã«æ£è§£ã¨ãããã®ã¯ç¡ãã§ãããã®ãããªã³ã¼ããè¦ããããã¨ãã«ãå ¨ãåæç¥èã®ç¡ã人ãã©ãããã¢ãã«ãæ§ç¯ãããã¯ãã®äººã®åæã ããã§ããéè¦ãªã®ã¯èªåã§é©å½ã«è¨å®ããã¢ãã«ã«å¾ãç¶ãããã¨ãã§ãããã©ããã ã¨ããã話ã§ããã
- å人çã«ã¯ããã§è¨ããã¦ãããããªãã¨ã¯å 天çãªè½åã¨ããããã¯åãªãæèç¿æ £ã®ä¸ã¤ã«éããªãã¨æã£ã¦ããã®ã§ãè¨ç·´ãããã¯ãµã¨ããæ°ä»ãã«ãã£ã¦ãããã§ãä¹ãè¶ããããæºã ã¨æã£ã¦ããã