読者です 読者をやめる 読者になる 読者になる

TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

自分にとってRailsはプログラミングではないと思った人へのヒントとか

Ruby on Railsはプログラミングではない!Railsはプログラミングではない!の炎上を受けて補足を受けての内容です。

3年くらい前にSinatraでwebアプリケーション開発を学ぶという感じで、非エンジニアな人向けにプログラミングを教えてたので、そこを深掘りして・・と思ったら、佐藤さんが自分が言いたいコトをしかも相手にしっかり寄り添って書いていたので、これ以上書くことがない・・と思ったけど、それだと芸がないのでちょっと違った視点で書いてみようかと思います。

まず上記2つのエントリ以外も含めてチェックしてみました

たぶん自分は前職からのクセなんだけど、こういうホッテントリしてたブログとかSNS的な情報があった場合に、過去の情報を割りとくまなくチェックしてしまい、ちょっとしたネットストーカーみたいな感じですね^^;

で、一通り読んでいて、自分もサッカー好きなのでアラサーからメッシになる方法とは?が刺さる内容だったのですが、それ以上にTechacademyオリジナルサービス開発の案が出ないのでアドバイスもらった

人間は弱い。こうやって自己投資して、退路を断つことは多くの場合に有効である。

という一文がとても刺さりました。

こういう人にきっかけがあれば、色々教えて、自分の弟子になってもらいたいというちょっといやらしい考えがある年齢的に節目のタイミングで、その人にとってものすごい危機感を感じて、退路を断って思い切った行動をしてる人が割りと身近にいたり、自分も割りとそういう経験をしてるので、こういう感覚を持ってる人はすごく共感してしまいます。

勝手に共感を持ったので、ちょっとしたヒントをいくつか

何となく勝手に共感(というか親近感っていうのが適切かな?)を持ったので、最近のエントリ+過去書かれていたことでカベに行き当たってるようなので何かヒントになりそうなことを考えてみました。

オリジナルのサービスについての着想

この1か月でぼくはオンラインブートキャンプのほぼ全カリキュラムを終え、あとは最終課題「オリジナルサービスの開発」というところまできている。 しかし、ここにきて大きな壁にぶつかっている。 アイディアが出てこないのだ。 〜中略〜 メンター「新しいサービスを考えるときは、日常生活の中で不便に感じたことや、こんなのがあったらいいのにな、という部分に注目します。ヒントは普段の生活の中に隠されているんですよ」 Techacademyオリジナルサービス開発の案が出ないのでアドバイスもらった

メンターさんが提案されてるようなことがヒントにつながりそうですが、それよりも、ご自身が過去書いてるエントリが新しいサービス考えるきっかけになるのかなと。

言語化しづらい「楽しさ」

「楽しさ」を感じることができれば、人は報酬がなくても何時間でもやってられます。ですが、これに明確な目的や理由が加わってくると、さらにがんばれます。

ぼくら人間は、どんな事象にも理由を見つけたがる生き物です。理由がないと納得できないし、動けない。まあ「楽しいから」という理由は、理由であって理由でないような不思議な感情なので、説明が難しいのですが、、、

楽しいと思えれば、書かれてるように、何時間でもやっていられると思うけど、ここ↑で書かれてる「楽しいから」という理由は、理由であって理由でないような不思議な感情ってまさにそうかなと思いますね。

で、例えばなんですけど、Ruby/Railsをやってる人も、実はそれぞれそれの楽しさって違うのかなと思ってます。

Ruby/Railsの楽しさを書き込んでもらうようなサービスだと、初学者・初心者の人にとっては、自分にとっての身近な目標となるような人が見つかるかって学びが継続的なものになるのかなと。

※なんとなくだけど、Ruby/Rails好きな人って、こういう世話焼き的なことを割りと積極的にやってくれそうな人が一定数いそうだからなんとなく成り立つのかなと。

インターネットの仕組みを知るには?

上記のオリジナルのサービスとは別のカベについてちょっと感じたことがあったのでそっちにも触れてみます。

もちろん、ほかにもプログラミングを学ぶ動機はいくつかあります。 「ぬるぬる動くかっこいいウェブサイトが作りたい」とか「オリジナルのロゴとかアイコン作りたい」(これはデザインですが、、、)とかもあります。 ただ、やはりそういう見た目の部分よりも、最近はより深く、インターネットの構成要素、仕組み的な部分を知っていきたい。知って動かしたい、世界を作りたい。そういう欲が出てきてます。

ぼくにとってのプログラミングは「世界あるいはインターネット世界をより詳細に認識するためのアプローチ」です。

2000年頃にスゴイ人達が集っていた会社で、派遣社員として仕事をしてて、インターネットの基盤となるような技術要素(TCP/IPUnixC言語)について精通してるような人がたくさんいる環境というか空気の中で、技術系の仕事に関われたオッサンな自分としては、インターネット世界を詳細に認識するにはTCP/IPについて理解を・・と言いたくなるけど、低レイヤーな所ってとっつきづらいし、いきなりそこをやるのもちょっと時代背景的に違うかなと思っていたりします。

とはいえ、アプリケーション層に近い所よりは、もう少し下のレイヤーついて勉強してみることで、この人にとっての楽しさになるかもしれないし、そこを少しでも知れると

「あー、インターネットってこういうことなのか」

という気付きにもしかしたら成るのかなとなんとなく思いました。

折角Ruby/Railsやってるのなら、Pure Rubyなソフトウェアでインターネットの仕組みを学ぶ

rubydnsというRubyで書かれたDNS Serverとかあるみたいだし、大分古い記事だけどRuby-WEBrickでwebサーバとかあるので、Pure Rubyなソフトウェアでクローズドなネットワーク環境下で、インターネットの仕組みを学ぶことは出来そうかなと。

ただ情報が古いのが大半なのと前提としてDNS/Webの仕組みがわかってないと出来ないことなので、自分で書いといいて何だけど、これはちょっと無いかなぁ・・

結局Sinatraを使った何かを作る

それなりに情報源があって、かつ、学んだことがその後の学習につながりやすいという意味で、Sinatra使ったシンプルなWebサーバーを作ってみるのが良いのかなぁー

英語だけどWeb Fundamentals Tutorial - Rails Girlsというコンパクトにまとまった記事があるのでこれを参考にすると、Sinatra使って簡易なWebサーバーを実際に自分で作って動作確認みたいなことがきっと出来そうな気がします。

で、そこでHTTPまわりの基礎をなんとなく把握しつつ、RubyベースのWebアプリケーションでRackサーバーというのがあるのかということについて知れるきっかけになるかもしれないし、Webアプリケーションの構成要素を知れると、そこからRailsを見る目にちょっと変化が出るかなと思います。

最後に

最近(とおもったら約1年前でした)書いたWebエンジニア・デザイナーのためのパーソナルコーチ

  • 最初からどっちに進むのか決めなくても良い
  • パーソナルコーチのような立場で、相手の力量とか指向性とか考えて、相手に寄り添いながら教えるようなプログラミング講座ってたぶん無い気がしてる

という考えはあながち間違ってないのかなと、改めて感じました。