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

give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

Software Design 2016年10月号にRailsとWebサーバに関する記事を寄稿しました

Ruby お知らせ

お知らせ

Software Design 2016年10月号に「知ってる?Railsとアプリケーションサーバの関係」という記事を寄稿しました。

f:id:JunichiIto:20160920045915j:plain

この記事は「Webサーバはなぜ動くのか?」という特集の1コンテンツです。
僕が書いた記事以外では以下のような内容が特集内で説明されています。

  • Webはどのように動作しているのか?
  • なぜWebサーバでプログラムが動くのか?
  • どうやってWebアプリからデータベースを扱うか?
  • Node.jsがサーバサイドで注目される理由とは?

f:id:JunichiIto:20160920050425j:plain:w400

Webアプリケーションプログラミングを始めたばかりの人は、どれもあいまいな理解のまま開発を進めがちな内容かもしれません。
この特集を読んで「基礎からしっかり理解できているWebプログラマ」を目指しましょう!

ソフトウェアデザイン 2016年 10 月号 [雑誌]

ソフトウェアデザイン 2016年 10 月号 [雑誌]

僕が書いた記事の詳細

僕は記事の中でこんな話を書きました。

  • RackアプリケーションとRackミドルウェアの基礎
  • Webサーバとアプリケーションサーバの役割の違い
  • RailsアプリケーションのルーティングとRESTの関係

一部は過去にQiita等で書いた記事を引用していますが、大半は今回新しく書き下ろした内容です。
この記事を読めば、Railsが裏側でWebサーバ、アプリケーションサーバとどんなやりとりをしているのか、イメージが深まると思います。
ぜひお近くの書店でチェックしてみてください。

f:id:JunichiIto:20160920051839j:plain

制作の舞台裏:原稿のやりとりはどうやってるの?

技術雑誌に寄稿したことがある、という人はそんなにいないと思います。
そこで僕が編集者の人とどんなふうに原稿をやりとりしているのか、という舞台裏を簡単にご紹介します。
(注:やりとりのスタイルは執筆者や編集者によって千差万別なので、これはあくまで一例です)

元の原稿はMarkdown + gist

Software Design誌の場合、原稿のフォーマットは基本的に自由で「お好きなフォーマットでOKです」と言われています。
僕はMarkdownで原稿を書き、gistにシークレットモードでアップロードして、URLを編集者の方にお知らせしています。

gistはMarkdown形式のファイルを自動的にフォーマットしてくれるので、Markdownビューアーとしてもなかなか便利です。

f:id:JunichiIto:20160920052555p:plain

オンライン上で分量の調整&内容の推敲

それから分量の調整や内容の推敲を編集者の方と一緒に進めます。
このやりとりもFacebookメッセージやgist上のコメント欄など、全部オンラインで行います。

ゲラ(試し刷り)PDFのチェック

原稿が完成したら、編集者の方がMarkdown原稿を元に「ゲラ(試し刷り)」のPDFファイルを作成し、僕に送ってくれます。
僕はできあがったゲラをチェックし、気になる点があれば修正をお願いしたりします。

f:id:JunichiIto:20160920053355p:plain

編集者の方と僕の間で、「ゲラもこれでOK」という合意が取れたら、僕の作業はおしまいです。
あとはデータが印刷所に送られ、紙の本になってできあがるのを楽しみに待つだけです。

完成!

そして発売日になると僕の元に見本誌が届きます。
やった!わ~い、嬉しいな!

f:id:JunichiIto:20160920045915j:plain

まとめ

というわけで今回はSoftware Design 2016年10月号に掲載された「知ってる?Railsとアプリケーションサーバの関係」という記事を紹介しました。
10月号には他にも「新しいPostgreSQLの教科書」という特集記事があり、Webプログラマがインフラ寄りの知識を効率よく吸収できそうな内容になっています。

インフラ寄りの知識は比較的安定している(古くなりづらい)ので、このタイミングで一度基礎知識を見直してみると良いのではないでしょうか?
みなさんぜひチェックしてみてください!

ソフトウェアデザイン 2016年 10 月号 [雑誌]

ソフトウェアデザイン 2016年 10 月号 [雑誌]

「レールに沿った人生はつまらない」と本気で考えていた元・若者が語る、現在の心境

キャリア戦略

はじめに:「レールに沿った人生」というキーワード

最近ネットで「当たり前のように大学に入って、大学を出たらすぐに就職するような、レールに沿った人生はつまらない」という若者の話題を見かけました。

そんな話題を見ていると「レールに沿った人生(※)はイヤ、か・・・そういえば僕も学生の頃はそんなことをよく考えていたなあ」とふと懐かしくなりました。

※注:ここでいう「レールに沿った人生」とは「いい大学に入って新卒で大企業に就職することを良しとするような人生」のことです。

バンド活動に明け暮れて就職活動しなかった大学時代

僕は大学時代、ほとんどバンド活動に明け暮れていました。
大学の講義は単位をもらって卒業するために、とりあえず出ていた、というような感じです。
講義の中には「へ~、面白い」と思うものもいくつかありましたが、だからといってその分野を深く研究してみようとは思いませんでした。


母親が教育ママだったこともあり、小さい頃から勉強は結構「できる方」でしたが、「じゃあ勉強していい大学に入ってそこからどうするの?」っていうと特になりたい職業もありませんでした。
高校時代からバンドを始めて、音楽にのめり込み、大学に入る頃には「このまま音楽を続けたい!プロになる!!」みたいな考え方になっていました。


当時の僕はそんな学生だったので、「大学を出たら就職?そんなレールに沿った人生、まっぴらごめんだ!!」と本気で考えていました。
しかし、教育ママである僕の母親としては「息子は大学に入った、だから次はいい会社に就職!これが母親としてのゴール!!」と鼻息を荒くしていた(と思う)ので、まあ母親とぶつかることぶつかること!
大学生活の終盤になってくると、


「淳一、そろそろ就職活動・・・」
「うるせー、おかんは黙っとけ!!俺は音楽を続けるんや!!」


みたいなケンカをしょっちゅうやってました。


ちなみに音楽をやるために大学を中退する、という考え方は全くありませんでした。
大学時代は十分時間があったので、学生を続けながらバンド活動をする、という生活に特に支障が無かったからです。


母親が就職活動、就職活動とうるさいので、学生時代に一回だけ就職活動なるものをやったことがあります。
で、神戸にある中小企業から内定をもらったのですが、最終的には内定を辞退しました。
なぜなら、大学時代にバイトをしていた塾の塾長から「大学出てからもうちで働けば?」と言われ、「じゃあ塾講師を続けながらバンドをやればいいや」と思ったからです。


というわけで、僕は「レールに沿った人生を生きてほしい」という母親の意向を蹴飛ばし、晴れてレールから外れた人生を歩み出すことになりました。
大学卒業後、僕は「塾講師のバイトをしながらプロを目指すバンドマン」になったわけです。

音楽活動も頓挫、塾講師のバイトもクビ → 仕方なく就職活動

が、「プロを目指してバンドを続ける」という生活は1年も経たないうちに頓挫しました。
僕がやっていたバンドは「(表向きには)音楽性の違い」「(実際のところは)人間関係のゴタゴタ」により、解散してしまったのです。


それからしばらく、ソロで音楽活動をしたりもしましたが、今度はバイト先の塾長との人間関係のゴタゴタにより、塾のバイトまでクビになってしまいました。
いやあ、人間関係って難しい。


音楽活動はなかなか思い通りにいかない、塾講師のバイトもクビになった、どうする俺??


という状態で僕が選んだのは、(あれだけ忌み嫌っていた)就職でした。


教えることは結構好きだったので、「学校の先生になる」という選択肢も考えたのですが、教員免許を取るためにもう一度大学に入り直さなくてはならず、あまりにも遠回り過ぎるということで断念しました。


はっきり言って、スーツを着て就職活動することには非常に抵抗があったし、できることならサラリーマンなんてなりたくない、と思っていたのですが、その頃は学生時代のような「俺は音楽を続けるんや!!」という気持ちの勢いもなかったので、「まあ・・・就職でもするか・・・」と諦めの気持ちで就職活動をしました。

消去法で選んだプログラマという仕事

僕は大阪にある中規模のSIer(ソフトウェア開発会社)のプログラマとして中途採用されました。
プログラマの仕事を選んだのはハッキリ言って「消去法」です。


「土日に出勤するような仕事はイヤ」「人と話すのは嫌いだから営業なんてムリ」みたいな理由で選択肢を消していき、「んー、パソコンやインターネットは昔から好きだし、バンドのホームページとかも自分で作ってたから、コンピュータ関連の仕事でもするか・・・」という理由で、その会社の採用試験を受けました。


採用試験に受かったのはちょっとラッキーで、どうやら僕が卒業した大学のOBがたまたまその会社にたくさんいたので、ひいきしてもらえたみたいです。(と採用面接で言われた)

「やりたいことと向いていることは違う」

その会社から内定をもらったときも実は学校の先生になるか、就職するか迷っていたのですが、面接でその会社の常務の人から、


「やりたいことと向いていることは違うんだよ。キミはこの仕事に向いている」
「プログラマはいいぞ。プログラマになれば手に職が付く」


と言われ、「じゃあ、一回やってみるか」とその会社に就職することにしました。


特に「やりたいことと向いていることは違う」という言葉はすごく印象的(ただし、「向いている」の根拠は不明)で、今でもすごく頭に残っています。


まあ、その会社はすごいブラックな会社だったんですけどね。


ブラックはブラックだったんですが、プログラミング未経験の僕を中途採用してくれたし、プロジェクトによってはとても刺激的で「プログラミングって面白い!!」と、この仕事にのめり込むきっかけを作ってくれたので、その点には感謝しています。
(もう一回戻ってこい、と言われたら全力で拒否しますけど)

「レールに沿った人生」も思っていたほど悪くない

そんなわけで、僕は一回レールから外れ、数年後にまたそのレールに戻ってきました。
でもまあ、実際にサラリーマンとして働いてみると思っていたほど悪くないものでした。
少なくとも「レールに沿って働くやつは全員バカだ!!」と憎むほどのひどい環境ではありません。
(最初入った会社はブラックだったけど)


特に僕はプログラマという技術職で、「勉強すればするほどスキルが伸び、社内外の評価が上がり、転職しやすくなる」という点は、「勉強はできる方」だった僕に向いていたと思います。


その後、妻と結婚し、子どもが生まれ、「子どもを自然の中で育てたい」という理由から妻の実家がある田舎(兵庫県西脇市)に引っ越し、西脇にある(正確には「あった」)外資系の半導体企業の社内プログラマに転職しました。


転職してからは残業が減り、休日出勤もなくなり、反対に給料が増え、田舎に大きな家も建て、マイカーを購入し、まあまあ悪くない暮らしができるようになりました。


学生時代には自分が結婚して、子どもを育てて、家やクルマを買うなんてことは全く想像もしなかったんですが、10年もしないうちに、ふと気づくとなんか絵に描いたような「幸せな家庭」を築いていました。


本当にビックリです。(今でもあまり実感がないかも)
学生時代にあれだけ忌み嫌ってたサラリーマンですけどね。
レールに沿ったような人生ですけどね。
でもこんな人生も悪くないです。

レールからちょっと外れた(?)現在

それから今度は東京にあるソニックガーデンという会社に転職しました。
今は自宅からリモートで働いています。
通勤時間はゼロになりました。


副業で電子書籍の翻訳をやったり、技術雑誌の原稿を書いたりして、お小遣いを稼いだりすることもできています。


ネットでブログを書いたり、Qiitaに技術記事を書いたりしているうちに、Ruby界隈ではそこそこ顔を知られる存在になってきました。
ずっと田舎で暮らしてるんですけどね。


このへんは世間でいう「レール」からはちょっと外れている気もします。
(単に「ちょっと珍しい」というだけですが)

一度もレールに沿っていないのにお金を稼げている妻

ちなみに妻は自宅の敷地内で小さなパン屋をやっています。
営業しているのは毎週金曜と土曜だけという、変わったパン屋ですが、おかげさまで毎日売り切れています。


妻は大学を出ていません。就職もしていません。
(ついでに言うと学力もそれほど高いわけではない・・・)
パン屋をやっていますが、専門学校に入ったり、よそのパン屋で修業したりせず、完全に独学でやっています。
もともとパン屋をするつもりもなかったのですが、趣味が高じて店を持つことになりました。


彼女もレールに沿った人生は歩んでいませんが、いつのまにか自分でお金を稼げるようになっていました。

僕や妻はうまくいった、だが。

長々と書いてきましたが、結論として僕や妻の場合はレールから外れてもなんとかうまくやっています。今のところは。


だからといって、全員が全員うまくいくと思っていません。


レールから外れてしまい、そのまま転落していくような人生もあると思います。
最初からレールに沿った人生を歩み、幸せになる人もいると思います。
レールに沿った人生なんて歩むんじゃなかった、と嘆いている人もいると思います。


人生なんて可能性やリスクのかたまりです。
運によって人生が大きく変わることは多々あります。
100%成功するレールも、100%失敗するレールもどちらもありません。
その人は、たまたまうまくいくか、たまたま失敗するか、そのどちらかです。


僕自身も過去を振り返ると「あのときは本当にラッキーだった」と思う瞬間がたくさんあります。(アンラッキーだった瞬間も多いけど)
自分の実力だけで今の自分があるとは全く思っていません。

運と努力と勇気

とはいえ、運以外の要素もあります。
それは努力と勇気です。
運はコントロールできませんが、努力と勇気は自分でコントロールできます。


僕も妻もプログラミングの勉強やパン作りで努力してきました。(努力と言えど、半分は趣味ですが)
また、転職するときや店を開くときには「失敗するかもしれない」という恐怖心を抑えて勇気を出しました。


努力は100%報われるとは限りません。
僕は音楽で必死に努力しましたが、音楽の努力は報われませんでした。


ですが、努力をしないと成功の確率を上げることはできません。
努力をせずに運が巡ってくるのを待つだけだと、成功する確率は限りなく低くなるでしょう。


これらの内容をまとめると、


「一生懸命努力して成功する確率を上げろ」
「チャンスがやってきたら勇気を出して新しいことにチャレンジしろ」
「最後に、運が良ければ成功する(悪ければ失敗する)」


というのが成功する(かもしれない)人生の秘訣なんじゃないかな~と自分では思っています。

失敗ではなく「Lesson&Learn」

失敗についてもひとこと言っておくと、失敗も100%役に立たない失敗、デメリットしかない失敗は滅多にないと思っています。


僕は失敗を失敗と呼ばずに「Lesson&Learn」と呼ぶようにしています。
つまり、「失敗という経験から新しいことを学んだ」とプラスに考えるのです。


成功する経験だけでなく、「なるほど、こうやってもうまくいかないのか」という失敗する経験を積むことも、人生におけるひとつの勉強です。


自分や家族の命を落とすような失敗さえしなければ、「失敗したけど、勉強になった。次はうまくやる!」と考えることができます。
(僕もうまくいかなかった音楽活動や、塾講師時代に体験した人間関係のゴタゴタでいろいろ学びました・・・)

まとめ:「レールに沿った人生」がいいか悪いかは、あなた次第

まあそんなわけで、「レールに沿った人生はつまらない」と考えていた「元若者」の現在の心境をあれこれ書いてみました。
僕の場合は一回外れたけど、なんかうまく戻ってこれたし、レールに沿ってるのか外れてるのかわからない現在の状況も別に悪くないぞ、っていう感じです。


でも何度も言うとおり、僕がうまくいったからといって、他の人もうまくいくという保証は一切ありません。
これはあくまで「こういう人生を送った人もいる」という単なる一例です。
「レールに沿った人生はイヤだ」と思い悩む「現若者」は、自分で自分の人生をどうするのか、どうしたいのか、じっくり考えてみてください。

あわせて読みたい

とりあえず勉強はやっててよかったな、と思います。僕の場合は。

人間関係でよくゴタゴタする人は「人を動かす」を読むといいです。

今思えばもう少し自分の父親が仕事は楽しいぞ、って言ってくれれば、あそこまで就職を嫌がったりしなかったかも?まあ、今さらいいんですけどね。

なぜ田舎に移住したのか、という話を書いています。

妻が起業したときのエピソードをトークイベントで話したことがあります。

SIer時代はブラックでしたが、技術者としていろいろと学ばせてもらう機会は多かったです。

Qiitaに「サンプルコードでわかる!Ruby 2.4の新機能と変更点」という記事を書きました

Ruby お知らせ

お知らせ

Qiitaに「サンプルコードでわかる!Ruby 2.4の新機能と変更点」という記事を書きました。

サンプルコードでわかる!Ruby 2.4の新機能と変更点 - Qiita
f:id:JunichiIto:20160912050418p:plain

これは去年書いた「サンプルコードでわかる!Ruby 2.3の主な新機能」という記事のRuby 2.4バージョンです。

先日開催されたRubyKaigi 2016に参加したみなさんは、Ruby 2.4に関する話題もたくさん聞いたのかもしれませんが、僕は参加していなかったので一人でさみしく新機能を調査しておりました・・・。

もしかすると、RubyKaigiに参加した人だけが知っているマル秘情報があったりするんでしょうか??
記事の内容に関して間違っている部分や捕捉事項等があれば、Qiitaのコメントや編集リクエストで指摘してやってください。

Ruby 2.4のサンプルコード

記事内で使用したサンプルコードはこちらに置いてあります。

"ruby test/ruby_test.rb"でテストコードが実行できるようになっているので、みなさんもRuby 2.4をインストールして動かしてみてください。


以上、「サンプルコードでわかる!Ruby 2.4の新機能と変更点」というQiita記事に関するお知らせでした!