はてなキーワード: Pythonとは
週末の書店。
プログラミングコーナーに行くと、いつもうんざりした気分になる。
何故ってこんなに入門書が溢れかえっているのに、何一つとして入門者向けの本が無いからだ。
日本の書籍小売の総本山、神保町は三省堂書店の棚の端から端まで見た所で、ビギナー向けの本などありはしない。
なぜなら、入門書を謳っている本のコードはほとんどが動かないコードだからだ。
入門書だと言うのに、ページを割くべきところに文章やイラストを割かない本が多すぎる。
例えばポインタ、コンストラクタ、インスタンス、カプセル化…それぞれの概念。
イラストの入門書だってそうだ。「入門」と書いてあるからといって、開いてみればデッサンや形のとり方を教える本などありはしない。
そう、日本の入門書とは「元々デキる人がリメディアルとして持っておく本」のことであり、「ビギナー向けのウェルカム本」ではないのである。
だからといって、誰もがpythonの専門家になる胎教を受けて産まれるわけではないし、誰もが10代で写真と見まごうスケッチを描けるわけではない。
では、その「デキる人」は誰に教わったのか?やはりデキる人たちや、海外の入門書を車座になって読んで学習したのである。
しかし、その「始祖・デキる人」がヒーローの時代とは、今とは複雑度合いも、求められるものも違う。
今は学生であっても、ある程度の高度な成果(ここでは、ネットで発表したものがネットニュースでバズった経験や、学会で評価された経験のこと)があって始めて企業の受験票でしかない。
なぜ入門者向けの本がないのか?
習うより慣れろ。仕事は見て盗め。教えられるのを待っているな。・・・
自分より出来ないやつに教えるのが大嫌いなのだ。(入門書の著者ですらそうなのだ!)
上にあるように、ある程度デキる人でないと、その手の会社には認められない。
だからといって、大学教育で手ほどきを受けられるわけではない。これもある程度デキる人向けなのだ。
では、書籍で自助努力を、となっても、文頭にあるように、入門書向けの本など無く。
では、デキる人はどこにいる?これもやはり雲の上の大学にしかいない・・・
今はネットがある?これも難しい。
知恵袋や、teratailであっても、初心者に与えられる答えは「ググレカス」のみ。
では、ネットにジャストな回答があるか?といえば・・・ない。基本的には公式リファレンスのコピーや、動かないコードしかない。
デキる人は、デキない人の気持がわからない。何がわからないのかわからない。
だからあいつらがわからないのは、あいつらが勉強不足だから、と考える。
わからないのは、あいつらの自己責任だ。だから初心者は嫌なんだ。となる。
適性を測っている、という見方もある。
しかし、適性というものは基本的にやらなければわからないもので、やる前の教育から放棄しているのは適性を測るというより、
日本人の初心者軽視、というか教育軽視は今に始まったことではない。
「失敗の本質」でもそれは指摘されている。ということは戦時から既に教育嫌いなのだ。
職場でもそう。教えられるのを待っているな、と言っておいて、いざ聞きに行けば「常識でわかるだろ」「ネットで調べて」「リファレンスマニュアル調べて」
学校でもそうだ。
授業の勉強も予習が前提。では授業ではより高度な話をするのか?しない。教師我流の演習である。
演習するだけならば、家や図書館で黒本や赤本を解いていたほうがマシじゃないか!
学校教育ですらこうだ。
なぜハッカーが生まれなかったのかとか的外れなこと言ってる人がいるけど
ハッカーなんて、情弱でもわかりやすいパッケージとして見せられるかどうかだろう
任天堂の岩田さんだってハッカーとして売り出してたらハッカーってことになってただろうし
いつぞやゲームクリエイターというイメージパッケージはVジャンプが最初にやったんだ!という鳥嶋社長のインタビューがあった
本当かどうかは知らないが興味深い話なのでまだ読んでない人は読むといい
http://news.denfaminicogamer.jp/projectbook/torishima
ゲームという世界だし、ゲームクリエイターってのはハッカーに限らないから今回の話の例として出すのはおかしいと思うけど
つまり、日本においてハッカーというパッケージで売り出そうとしたメディアはいただろうかって話がある。
ゲームクリエイターというパッケージ以前も、ゲーム作ってるお兄さん的な存在で雑誌にインタビュー受けてたのは子供のころ読んでたゲーム雑誌で覚えているけど
ゲームクリエイターになってからは、常識変えてやります感とか急に出て驚いたのを覚えている。(背景は黒でピンスポットライトなんか充てられてね)
ハッカーもまさにそんな空気を演出したなにかだろう、コンピュータに詳しいおじさん以上の存在としての何かを日本のメディアは求めただろうかって話。
イメージパッケージ以上に影響が大きいのは、活躍の場、そして拡散の力、つまりそれは言語ってことだ
そもそもFacebookなんて技術力(つまりハッカー)の力でのし上がった企業ではない
つまりはコミュニケーション、拡散力が勝敗を決めるってことだよね
いやいや、技術力ありますやん、facebookすごいですやんって思うだろうが、それは結果的に金もった企業が雇ったにすぎない
RubyにしてもMatzが英語を駆使して布教したから、RoRにつながったんだろう
良い言語だからだけでは今のRubyの地位はなかった(それでもPythonと比べてどうのこうのと言われるのもきっと拡散力)
Matzさんはモルモン教徒で、大学を休学してアメリカで布教活動してたみたいだけど、今のRubyの地位とこの経験は無関係ではないと思うよね。
イメージパッケージ、拡散力、そしてそれを可能にするツールとしての英語
これはほんと重要だと思うよ。
ゲームなんかはオンリーワン的な存在だから、無効が翻訳させてくれって言ってくるの待っててもいいけど
ITなんかはサービス業だからこっちから行かなきゃ向こうで類似サービスが立ち上がって終わるだけ。
まだJAVAapplet全盛時代に日本でお絵描き掲示板ってのがはやって、これ海外でもoekakiBBSって名前でニッチなはやり方したんだけどさ
これアメリカでやってたらクラウドの時代だなんだってイメージパッケージしてこれが最先端ですって言ってただろうなって思った。
日本じゃアメリカのブログよりまえに、WEB日記がはやったけど、海外のメディアがブログだなんだと言い出してブログが流行り始めた
そういうことよ
csvを操作するのはもちろん、マウス(カーソル)を操作することだってできる。
APIというものを使えば、TwitterやLINEのbotを作ったり天気を取ってきたり道路情報を取ってくることだってできる。
10分毎に天気予報を取ってきて雨になりそうかどうかを判断して、ラズベリーパイで監視したカメラでベランダに洗濯物があったらLINEのbotで知らせてくれるなんてことだってできるかもしれない。
エクセルの関数を使ってオートフィルを使ったり、ショートカットキーを覚えるのと、
今日、読んでる本に、上手い表現があったけど、大半の人に取ってパソコンは、家電の一種で、道具として使えていない。
今まで、
ループ、for文とかって、1個だけだと、ふーんて感じだし、そっか、素数を求めることが出来るんだー、
ぐらいだけど、
昨日、初めてプログラミングらしいプログラミングを書いたんだけど、なんか、スゴいよな。
その一方で、えええ、あっけないというか。
どんだけ、非生産的な仕事をあっという間に片づけることが出来るのだろうと、不思議な感覚を覚えた。
ループ&ループで初めて、コイツ(パソコンって)はランプの魔神みたいだな、と思った。
あるいは、警察犬?しつけさえされれば、僕以上に上手に仕事をするっていうのか。
独学でプログラミングを学んでいたら、あっという間に年を取りそう。
なんか、上手く構成して書けないが。
こんな感じで、学んで行って時間が足りるのかな。
44才だ。
弊学では、2年生の時に必修のプログラミングの授業でC言語を習う。
中学生の頃からパソコン大先生でスクリプト言語を軽く触ってた自分としては、わざわざ面倒な書き方で面倒なコンパイルをして動かす事に疑問を感じていた。
ちなみに、試験は紙ベースで、手書きでプログラミングをさせられる。つらい。
スクリプト言語で良いと思ってた自分は、C言語を覚えることに疑問を感じていた。
結局、授業以外で全く勉強せずに試験結果は散々だったが、なんとか単位が取れたので良しとしよう。
プログラミング初学者である人は苦労して書き方を覚えていたように思う。
脱落していった人を何人も見たが、人間やれば出来ないと思っていたことが出来るのである。
今学期、PHPを書く授業とPythonを書く授業を履修してみた。
PHPは、某テキストをもくもくと写経して動かしてみる授業で、独学でテキストのコードを動かす気力のない自分にとっては最高の授業だ。
Pythonは、MeCabなどで形態素解析や構文解析をする授業で、サンプルコードを自分で考えてカスタマイズして毎回レポートで提出する。
Pythonの書き方に慣れないからか、かなりハードであるが、やりがいがあっていい感じだ。
書いたらすぐに目に見える成果が出るところが大きい。
自分は、プログラミングを授業で教えるのならスクリプト言語に限るはずだと思う。
そう思っていた矢先に事件が起こった。
最近、研究室に入ったところ先生が手当たり次第Javaを教え始めたのである。
せめてJavaScriptでいいからスクリプト言語を教えてほしいところなのに、なんでJavaなんだと発狂した。
それでも、30億のデバイスで動くハイブリッドさとオブジェクト指向を理解する上での分かりやすさという面ではJavaが手軽なのかもしれない。
ところで、最近になってプログラミング教育義務化とか叫ばれてるが、Scratchでパーツを並べてプログラミングをするなんてただの積み木に過ぎないと思う。
絶対にツマラナイだろう。
自分は、プログラミングの授業で数字を足し算して黒い画面に表示させるとかツマラナイと感じてしまった。
こんな複雑なことをしても、これしか成果が出ないならやってられないと思うのは自分だけなのだろうか。
お願いだから、プログラミングを教えるのならツマラナイ授業をしないで欲しい。
生徒に分かるように、生徒は楽しんでプログラミングをするべきだ。
別にどんな言語でもいいと思うが、プログラミング言語は人それぞれ好き嫌いが激しいだろう。
自分は、分かりやすくて直感的なRubyというプログラミング言語が学校の授業で採用されるべき言語に間違いないと思う。
別にRubyにこだわる必要はなくて、スクリプト言語であればなんでも良いと思う。
CやJavaなどのコンパイル言語は複雑で分かりにくいし、教えにくいはずだ。
スクリプト言語を教えた後に、コンパイル言語、オブジェクト指向の概念を教えていくのがいいのではないだろうか。
みんなの意見を知りたい。
引用元:http://www.kantei.go.jp/jp/headline/pdf/seicho_senryaku/2017_all.pdf
うちの会社、Web系なんだから当然っちゃ当然なんだけど、案件の8割くらいはCMS案件なのよね。
それもWordPressは脆弱性出しすぎとかで保守しにくいってことでもうちょいマイナーなCMSが中心。
プログラマーとして入社してから今まで、デザイナーが渡してきたHTMLファイルをCMSのテンプレートとして構築する、
っていう作業が社会人生活の半分以上を占めていて、業務としてはPHPの簡単なプログラミングすらあんまり経験ない気がする。
CMSのテンプレートもif文とかループとかあるからこれもプログラミングといえばプログラミングなんだけど、
Web系っていうともっとPythonとかNode.jsとかVueみたいなキャピキャピした技術に触れるもんだと思ってたよ。
給料は安いけど割りかし残業も少なくて何かとヌルい会社だから今のところやめるつもりは特にないんだけど、
ディレクターとの調整とかExcel方眼紙で仕様書(多分一般的なSEが作るのよりはかなり簡潔なもの、勿論UMLとかはない)書いたり見積もりしたり操作マニュアル書いたりっていう経験はあっても
下流工程を生きるプログラマーとして例えば5年後10年後、技術的なキャリアとして「HTMLファイルをよくわからんCMSのテンプレートとして当て込むだけのことを長年やってきたおじさん」
が誕生したとして、果たして生きていけるのか心配になってきた。
僕は生きていけるのでしょうか。転職した方がいいんでしょうか。教えてください。
最近、Python にどっぷり浸かるようになって、「Ruby 教」とも呼べる宗教的な縛りから解放されるようになってきた。それにつれて、いままで Ruby コミュニティで当たり前とされてきたいくつかのプラクティスに対して批判的な気持ちが育ちつつある。
いままで一部の人たちが Ruby 界隈を忌み嫌っているのを見てきたが、その理由がわからなかった。でも、Ruby が一種の新興宗教のようなものだ、と考えればその理由は理解できる気がする。
プログラミング思想というのは、絶対の正解がないために、結局、それを信じる人たちが集うという「信仰」の形を取るしかない。より主張の強いグループが宗教的な形を帯び始めるのは少しも不思議ではないだろう。
P.S.2
Rubyな人たちは二言目には「テスト」とかいうけど、自動テストがすべてを救ってはくれないよね。