「proce55ing」を含む日記 RSS

はてなキーワード: proce55ingとは

2014-01-19

SFCへの申し送り事項

宛、新入生とか、これからプログラミング始めたい人へ。

なんか偉そうに書いてみた。

最初に理解すべきこと

SFCには頭がおかしプログラミング言語使いがたくさんいる。特に研究室に入ると、バイトバリバリ書いている人間や、研究趣味ライブラリを量産する人間出会うこともあるだろう。彼らに惑わされてはいけない。最初は彼らの言っていることは一つも理解できないだろう、理解する必要は無い。彼らはプロダクションで安定するかどうかという縛りから自由だ。流行り廃りに敏感で、昨日言ってることと今日言ってることが違う。

これは実際に手を動かして使ってみて好感触かどうかささっと確かめられる人間からできることで、プログラミングできない人がこれについていこうとしたら間違いなくプログラミングが嫌いになる。

  • js書くならcoffeeがいいよ
  • それgitしてよ、見てあげるから

こういう言葉に惑わされるな、コードを書くための勉強をするな、コードを書け。

できる人は概ね、できない人の気持ちがわからない。受動的になるな。積極的に書け。

プログラミングへのモチベーション

プログラミングができるようになるといいことしかない。

プログラミングなんて特殊技能で、少なくとも教養じゃないでしょ..」という認識が横行している今だけのチャンスとも言える。

webプログラミングができると「技術的には簡単だがアイデア一発で作ってみたもので、ほんのちょっとだけ有名になれる可能性がある。論文を書いて学会投稿したりニュースになったりするよりも、よっぽどお手軽に(一部での)社会的ステータスを高めることができる(かもしれない)。

↓ こういうのでいい(失礼だが)。

資格マニアあなたへ

資格勉強はある程度コードを書けるようになってから考えよ。

真面目な理由が必要あなたへ

こう言っている人間を見て何を思うだろうか。

「いや少しずつでいいから今やれよ」とか「英語できたらもっと世界ひろがるのに..」とか「大学生なのにそれで恥ずかしくないの」とか思うかもしれない。

英語プログラミングに置き換えてみよ。

知らない世界を知らずにいることは大いなる機会損失であるプログラミングに金はいらない。金はないけど時間はある、時間を大量投入できる最後の機会、大学生である内に学んでおいた方が望ましい。

SFCプログラミング講義

基本的スタンスとして、講義ではプログラミングを教えてはくれない。講義に期待するな。プログラミングに限らず、全ての講義は自習への足がかりであり、興味のとっかかりである。実際に意思を持って積極的コードを書かない限りプログラミングのことは好きになれない。自分で考えながら手を動かしてコードを書かなければ覚えないし、初学者が配られたプリント写経しても血肉にならない。

今日から俺は!」という感じでプログラミング講義を受けると爆死は約束された未来である。「腕試ししよう」「これなら楽勝じゃろ」という意気込みで講義を受けると、意外に学ぶことが多い。完全な初学者の域は脱しておいた方が講義有効的に活用できる。少なくとも、最初の2週間をインストール環境構築のみで終わらせるスジの悪い講義を取得してはいけない。

また、講師によってはJavaScriptのことをJava呼称したり、JavaScriptLispに比べて読解が平易であるためハッキングを受けやすいと言ったことを平然と言ってのける。選別にあたっては「講義名」と「講師名」を明言した上で「先輩に聞く」「Twitter活用する」等の手段をとるべきである。十二分に注意されたし。

最初に選択すべきマシン

道具を選ばないのはプロだけである。初学者は多少高くても自分サポートしてくれる良いマシンを入手すべきである。1行のコードを書くだけでも恐ろしい手数が必要アーキテクチャを選択するのは愚行だ。

具体的に言うと「最初の一台はMacを買え」。

モデルは何でもいい、無理して上位機種を買う必要は無い。お金が余ってるならMacBookProを買えばいいし、勿論一番安いMacBookAirでも全く問題ない。特にweb系のコードを書く際、インターネット検索して出てくる記事はだいたい「OSUNIXであること」を前提としたサンプルである。これをWindowsの開発環境に読み替えるのは、初学者に取ってつらいだろう。

また、Macならばパフォーマンスは多少犠牲になるがwindowsも起動できる。どうしても光学機器必要になればCNSコンサルタントで外部接続式の光学機器を貸し出してくれる。Macが気に入らなくてもどうせ研究が射程に入る3年生に上がったぐらいのタイミングPCを買い替えるだろう。バイトして稼いだ金で「俺の考えた最強のマシン」に買い替えればいい。それまではMacを使え。

OSに固有の使い方なんて学ぶ価値はない、覚える価値も無い、操作時間が短縮されるだけだ。「普通会社Windowsなんでしょう?」というくだらない理由でWindowsPC選択肢の第一候補にするな。Windowsを買うなら積極的選択としてWindowsを買え。

SFCにおいて、PC毎日抱えて通学し、毎日開いて講義を受け、苦楽を共にする相棒だ。消極的に選択するな。

共同購入

SFCには「共同購入PC」という制度がある、これを利用してはいけない。

もし要件が変更され、Macラインナップに入れば積極的に利用するべきである

最初にやるべき言語

条件を示す。

ビジュアル表現できる言語であること

見た目に変化が無いと楽しくないだろう、こんなのを実行しても何も楽しくないはずだ。

#include <stdio.h>

int main()
{
  int a;
  a = 1 + 1;
  printf("%d", a);
}
web上にブログ記事が十分にある言語であること

マイナー言語を選択してはいけない。「ライトウェイト言語」と呼ばれるくくりから選択肢するのがいいだろう、以下のようなものがある。

中でもjavascriptrubyは推薦できる、SFCでも書いている人間は多い。

phpperlおすすめできない。ドキュメントは多いが、不慣れであればロジック以外に割かれる労力が非常に多い。python日本語ドキュメントが少ないため最初はつらいだろう。

導入が簡単な言語であること
例えば

最初javascriptをやるのは理に適っている。index.htmlというファイルを作り、scriptタグの中にコードを書き、ブラウザindex.htmlを開けばもう実行されている。web上のドキュメント量も豊富だ。

rubyも推薦できるが、少なくとも「自分HTTPサーバを立てる」という言葉にピンと来るようになってから使い始めた方がいいだろう。きっと何をしていいかわからないはずだ。

他にもProcessing(http://processing.org)などが推薦できる。ダウンロード時間がかかるだけでインストール作業は必要ない。こちらに関しては旧プロダクト名であるproce55ing」をキーワード検索すると記事が引っかかりやすいという暗黙のルールがあった、今はどうだか知らない。

最近ではnode.js採用事例も増えてきた(他に比べれば圧倒的少数、増加傾向にあるという意味)。クライアントでもサーバでも活躍できるjs学習コストパフォーマンスが高いと思われる。

勉強方法については後述のセクションを参照せよ。

次にやるべき言語

書ける言語は一つにしぼってはいけない。なるべくたくさんの言語を使ってみよ。ブログ記事を読みあさり、「その言語は何が得意なのか」調査しろ。不得意なことをその言語やらせるな。

下記のような上達ストーリーが考えられる。

例えばpython音響処理や数学計算が得意だったりする。そういった特徴を徐々につかみながら書ける言語の種類を増やし、好きな言語を見つけて好きな言語のことをもっと好きになればいい。

自分が好きな言語のことを胸を張って自慢できるようになったなら、あなたは既に初学者ではない。

エディタ

人に聞くとvimemacsを推薦されるかもしれない。もしそれを使ったことが無いなら、あるいは「プラグインの導入方法がわからない」なら、やめろ。Terminalを開かなくても書けるGUIアプリテキストエディタを使え。

具体的にはSublimeText(http://www.sublimetext.com/3)を使うのがよい、無料である

ライセンス必要だが、起動時に「買ってね!」というダイアログが出続けるだけで無料で使用し続けられる。信頼できるエディタだと思ったら買えばいい。

設定方法

SublimeText3にPackageControlというものを導入すると、標準で備わっていない機能拡張できるようになる。こちらのブログ(http://p.tl/Ev7b)の「インストール手順」セクションのみを実行する。たとえば「Jadeという言語を、文法に従って色付けしてほしい(SyntaxColoring)が、その機能が無い」という時に、「Jade用プラグイン」をSublimeText内で検索し、インストールすることができる。

もし使い方がわからないければ、回りにいる「プログラミングができる優しい人」に上の記事を見せ「インストールしてくれませんか?」と頼んでみろ。きっと戸惑いながらも正しい操作をしてくれるだろう、一挙手一投足を見逃さず学べ。

勉強方法

例えば

エロ画像を集め続けるツールが欲しいとする。どうやったらいいか考える。クライアントjsだけでは限界が来る。rubyなど別の言語を試すステップを踏む。

http://www.slideshare.net/shokai/ss-26387303

ブログの読み方

プログラマ同士じゃないと伝わりにくい用語が頻発すると思う。逐一人に聞いていてはラチが開かない。人に聞くな、適当に読み飛ばせ。

ブログ記事は本ではない、それを読解しなければならない理由はない。適当はてブでもつけといて、次の記事を読め。たくさん読めば共通項が見えるだろう、コードが書けるようになるに従い読めるようになるだろう。

最後

みんなが息をするようにコード書いてさ、みんなでしあわせになろうよ。

 
ログイン ユーザー登録
ようこそ ゲスト さん