Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

プログラミングがわからない彼に、すこしだけプログラミングがわかっている自分が言えること

今日の風景

f:id:nisemono_san:20160921151048j:plain

こういう記事を書いてドヤ顔をするような人間は、大抵本人が思っているより能力にたけているわけでは無いという法則が、どこかの民族の諺としてあるとかないとか。

はじめに

石田祐希というブロガーの方が、起業をしたのはいいけれども、プログラミングがわからなくて、書籍が欲しいというエントリを書いている。

この一件に関しては、自分は特に言うこともなく(自分もレールから外れたが、文才の無い自分がその経路を書いても凡庸になるだけだと思って書いていない)、ただ傍観していただけだが、プログラミングのことだったら、自分の知識が無くても教えられることがあるだろう、とは思ったので、彼自身がこれを参考にするかどうかは兎も角として、せっかくなので書いてみようと思う。

ちなみに、記事の性質上、Web系に偏っていることをお断りしておく。

読みたい記事

まず最初に、プログラミングとは何だろうということを考えたときに参考にしたいのは、Qiitaにあがっているズンドコキヨシを見かけた男子中学生がプログラミングを勉強していく話 第1話だと思う。

実際、多くの入門と名を打つプログラミングサイトでは、やはり自分を含めて経験者が多いので、例えば「エラーメッセージが出たら、そのメッセージをコピペして調べてみる」といったような、そういうあたり前のことは説明しない傾向にある(そして、この習慣はとても大切だ)。この記事自体を熟読する必要はないと思うけれども、プログラミングとは何か、ということを知るのにはとてもいいと思う。

無料であるチュートリアル

さて、プログラミングとは何か、というところでやはり実際のアプリケーションを作ってみたい、特にWebアプリケーションであるならば、Railsチュートリアルがインターネットに公開されている、のはいいのだけれども、起業文化でRailsから入るという人は多いと思うのだけれども、実際のところは、結構厳しい。それはどうしてかというと、「データベース」とか、そのあたりの知識が必要になってくるからだ(はずかしいことに、自分も最初はまったく理解できなかった)。本来なら身近に知人がいて、逐一おしえてくれる人がいると良いと思う。

このあたりのチュートリアルに関して、問題集になるのだが、確実に力がつくものがある。言語処理100本ノックだ。いちおう言語処理ということになってはいるが、しかし、言語処理に限らず、プログラミングの初歩的な部分からはじまって、だんだんと高度になっていくので、やるとプログラミング力がつくと思う。ちなみに、著者はこれをやっていないので、まったく力がついていない。

また、Python3に関してならばPython チュートリアルがあるので、これを読もう。どうも知人がとあるプログラマー志望の子に、プログラミングのセンスを教えるために、この教材をすすめることを結論したらしい。Python自体の仕事は機械学習などの、ちょっと数学的なセンスが必要になるものが多いので、仕事には直結しないと思うが、言語自体のクセは特には無く、最初の言語のとっかかりとしては丁度いいかもしれない。

で、やりたいことがサーバーサイドであるならば、上のチュートリアルをやりながら、RubyおよびPythonについて勉強するといいと思う。あれ、JavaScriptとPHPはどうなるんだろう? 正直言うと、この両者については、自分は適切な教材を提示することができない。書籍であるならば、いくつかいいのが出ているけれども、自信はない。ただ、PHPで簡単な掲示板を作成するというのもチュートリアルとしていいと思うのでやってみるといいと思う。

ちなみに、PHPに関してはオライリーのほうはあまりいい印象がなかったので、『パーフェクトPHP』のほうをおすすめする。無料があくまでもよければ、いまはドットインストールがあるので、それを毎日聞きながしながら、起業準備をすればいいと思う。そうそう、なんでオライリーのほうを薦めないかというと、Ruby、 JavaScript、PHPに関しては、私見によれば、パーフェクトシリーズのほうがいい気がしている。

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)

さて、JavaScriptについてなんだけど、jQueryだけだと、やはりちょっと辛いので、無責任にVue.jsのチュートリアルをおすすめしておく。ほかのものでもいいんだけど、たぶん個人的に触ってみて感触がよかったのがこれだったので、ドットインストールでJavaScriptについて基礎的なことを学んだら挑戦してみるといいと思う。ちなみに、JavaScriptを勉強する上でおすすめになるアプリは「TODOアプリ」の作成で、だいたいそういうサンプルをやることが多い(やることをリストにして、終わったら消すアレ)。

プログラミングに関するエッセイ

プログラミングに関するエッセイについては二人の巨頭がいて、それはポール・グレアムと、ジョエル・スポルスキだろう。

いや、異論は認めるけれども、「プログラミングをしてスタートアップを立ちあげでやっていきたい」という人は、必ず通る道であると思う。ポール・グレアムは「Y Combinator」を立ちあげ、スタートアップ支援をしたりしているくらいだから、読んでおいて損はないのではないかと思う。

ついでにアフィリエイト乞食

とはいえ、自分は起業していなくても、お金がないので適当にこのあたりの書籍が必要になるであろう、というものをピックアップしておく。とはいえ、これはプログラミングよりの書籍が多く、起業となると、また別問題が発生すると思われるので、あまりのめりこみすぎず、適度なところで身をひいて、少なくとも一緒に今後やっていくエンジニアの話はできるようにするくらいのことは重要だろう。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (135件) を見る

プログラムがわからないという考え方には二つの方向がある。まず一つに、そのロジックがわからないということと、もう一つに、「ちゃんとしたコードをどうかくか」がわからない、ということがある。で、その後者を埋めるのがこの本である。大抵のプログラマがこの本を名著とあげるので、いまさらという感じもしないことはないのだが、プログラミングを始めて慣れてきたら、勢いで買うべき本だと思う。

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

SQLといえばミック氏による書籍。とくにMySQLやPostgreSQLなどのリレーショナルデータベースを扱うさいに使われる言語である。直接いじる機会は、おそらくフレームワームを使えばそれほどないけれども、理解があるのとないとでは大違いなので、基礎教養として知っておく必要がある。実際使う場面もあるしね。

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

もはや定番となってしまったアプリケーションのセキュリティー本。Webッサービスを作るということは、当然のことながら、そのサービスに対して責任を持つということになるので、是非一読しておきたい一冊。

コードには、多分問題にぶちあたればぶちあたるほど、そのプログラミングに対しての幅が広がる筈だろう。いまは、実際に問題を解かせる転職サイトなんかもあるし。実際に、競技プログラミング的な部分が実務に役に立つのかどうかは、俺にはわからない。ただ、プログラミングの幅は確実に広がると思う。

Linuxのことを知る

あとはLinuxに関する本があればいいのだけれども、ぱっと思いつかなかった(本当はここにとある書籍が紹介されていたんだけど、未読の書籍を紹介のは問題なんじゃないかというご指摘をうけて削除しました)。ただ、他の方からムック本みたいな形で本が出ていることを教えて貰いました。

ちなみに、Linux技術者認定試験のLPICでは下の教科書が配られている。

またコメント欄で、THE DEBIAN ADMINISTRATOR'S HANDBOOKの存在を教えて頂きました。ありがとうございます。

ただ、上記2つ、無料で配られているマニュアルと教科書を全部読むと、インフラエンジニアになるぞというやっていく気持ちがない限り、心が折れると思うので、適当に気を追わずに読んでいくといいと思う。

標準的な設計について知る

ブコメに、「設計の話もしたほうが良い」という全うなご指摘を頂いたので、その本も紹介。とある方から頂いたもので感謝している。

下の本は、ちょっと受託開発よりになるとは思うし、個人的にはここまで固くやる必要かあるのか、という疑問はあるけれども、手難くやるという意味で、設計とかの話の概要を知っておくにこしたことはない。全部のことを真に受けないにしろ、どういうことが必要になってくるか、というのを見ておく意図として、下の本は便利だ。

システム設計の謎を解く 強いSEになるための、機能設計/入出力設計の極意

システム設計の謎を解く 強いSEになるための、機能設計/入出力設計の極意

上記にいった通り、自分でサービスを作ったり、実際に係った経験からすると、ここまでキチッとやる必要はないが、しかし、こういう風なものがあるというのを知っておくのは、多分武器になる。

読まなくてもいいもの

あと、個人的な趣味として、下の本を薦めておく。これは買わなくてもいい。

素数夜曲―女王陛下のLISP

素数夜曲―女王陛下のLISP

この本はわからなくても良い。

最後に

おれはレールから外れたので、山谷で無職をしている。特に、今後どうするかという予定もない。なので、もしこのリストで一発サービスが当ったら、いろいろと助けてくれることを期待している。

蛇足

他にこんなのがあるよと、はてなブックマークで教えてくれれば、追記しますのでよろしくお願いします。