find_or_create_byスマートフォン用の表示で見るfind_or_create_byこの広告は、90日以上更新していないブログに表示しています。2018-02-13社内勉強会でサーバーレスアーキテクチャについて話しましたこの間弊社の1、2年目のエンジニアに向けてサーバーレスアーキテクチャについてのお話をしました。モチベーションとしては社内にあまりFaaS周り(というかクラウドサービス全般)に興味を持っているエンジニアがいないので、仲間を増やしたかった説明の練習デモ用アプリのSDD(締め切り駆動開発)でした。イベントドリブンで疎結合かつスケーラブルなアーキテクチャを低予算で構築できる、というところがサーバーレスアーキテクチャの肝だと思うのですが、これをそのまま伝えて果たして伝わるのかというのは非常に疑問でした。横文字野郎と影で呼ばれるリスクも抱えることになります。そのため「ウェブアプリで1番最初にアーキテクチャがおかしくなるのってコントローラークラスが多いよね」というところから「イベントドリブンだとコントローラークラスがいらなくなるよね」というロジックでいい具合に伝えようと試みました。あと、全体的に平易な言葉を使うように心がけました。終了後のフィードバックでは難しい言葉を使わないようにしているのがよくわかった0だったのが4くらいにはなった一家に1台欲しいという評価を受けたので、まずまずの結果だったのではないかと思います。23:16社内勉強会でサーバーレスアーキテクチャについて話しましたTweet広告を非表示にするもっと読むコメントを書く2017-12-302017年の振り返りみんなすなる振り返り日記といふものを私もしてみむとてするなり。Rubyをたくさん書いた仕事でも仕事以外でもRubyをたくさん書いた1年でした。Railsで作ろうみたいな計画があって、自分もほぼ完成間近のところで混ぜてもらいました。CIによる継続テスト&ソースの静的解析Slack連携によるChatOpsみたいなところを初めて経験できました。この辺は実際に経験しないとなかなか良さを語れないところだと思うので、「導入コストがねぇ...」みたいなところで弾かれない世界で経験できたのはとても有益だったし、「導入コストがねえ...」と戦えるモチベーションを身につけることができました。このプロジェクトに参加してる人たちがみんな優秀なエンジニアの方々で、「優秀な人たちはこういうところにアンテナを張って、こういうところに気をつけて生きているんだな」と肌で実感できたのは自分を成長させる一因になったと思います。良いプロジェクトにするための過程を味わえた上記のプロジェクトとは対照的に業務で参加したプロジェクトは自動テストやCIを導入するタイミングをつかめずここまできた、みたいなところだったので腕のふるいどころが多くてこれはこれで楽しかったです。見る参画中はこの本にだいぶ助けられました。見るあと、リファクタリングに際して良く読んだこの本は最終的にベストオブ俺が2017年に読んだ本になりました。Serverlessの世界にきた10月からサーバレスアーキテクチャでマイクロサービスを作るワン!みたいな仕事しています。サーバレスのコミュニティがすごく楽しいです。フロントエンドに強い人だったり、データベースに強い人だったり、業務アプリに強い人だったり、いろんな属性の人たちが一同に集結し、サーバレスという敵(?)に立ち向かう、みたいな雰囲気があって、おかげでサーバレスを通していろんなコンピューティングの知識見識を得られています。最近のJavaScriptをなんとかキャッチアップしたReactとかReduxとかwebpackとかまあなんかその辺もろもろが使えるようになりました。ある程度キャッチアップしたとこらへんからだんだん変化の速度を楽しめるようになってきたので、辛いのは最初だけでした。メンターぽいことをはじめた後輩の話を聞いてると意識が自分に向かなくなるので、これが意外とストレス解消になるなあと思いました。何か悩みがあれば全部私に言ってください。私のストレスが解消します。半年間シェアハウスに住んでみた諸々の事情で半年間しか住めませんでしたが、かなり楽しいのでおすすめです。普段暮らしてる分にはやはり自分と同じ属性の人が集まってきちゃうので、そうでない世界を久しぶりに体感できて新鮮だったし、「俺意外といろんな人と仲良くなれるんだな」みたいな自信もつきました。バンドをやろうとしてできていないバンドをやろうとしてるのですが、余暇をコード書いたり本読んだりに費やしてしまい、あんまり活動できていません。やりたい気持ちだけは強くある。12:292017年の振り返りTweet広告を非表示にするもっと読むコメントを書く2017-07-10エモい話をするおじさんこないだ弊社の新入社員に向けてエモい話をしました。ポエムここ一ヶ月くらいゲロのように汚いコードをリファクタリングする仕事をやっていたので、そのグチを書きます。プログラミング言語はコンピュータと会話する言語よくコピペしてコード書いてるプログラマがいると思いますが、それって相当危険なことだということを認識してください。日常会話をネットに落ちてる文章からコピペして行なっていたら、会話相手に「こいつやべえやつだな」と思われること間違いなしですが、コンピュータ相手でも「言語」を使っている以上、やべえのは一緒だと思ってください。相手に自分の思いを伝えたいとしましょう。ストレートな言葉で伝えるか、言葉と共にプレゼントでも用意しようか、ちょっとひねった言い回しをしようか、いろんな選択肢があると思います。そんな中で、ネットであれこれ調べたりすることもあると思います。一生懸命考えなきゃですね。最終的には自分のいままでの性格や人生と、相手との距離感、関係性から自分なりの表現を選ぶと思いますし、それは素敵なことだと思います。ここで、何も考えずネットであれこれ調べたやつをコピペしたとしましょう。伝える」で検索してヒットした言葉が「僕はしにましぇん*1」だった場合、そしてそれをそのまま相手に伝えた場合どうなるでしょうか。相手はまず、唐突に伝えられた「僕はしにましぇん」について考えなくてはいけません。自分に死なない宣言をしたのか、そもそも以前は死にたかったのか、まさか武田鉄矢のモノマネをしたのではないだろうか。この場合「僕はしにましぇん」でコピペしなきゃいけないのは、その文脈であり、その思想であり、その心意気であって、「僕はしにましぇん」ではないはずです。結果として「僕はしにましぇん」は狙った結果を産まないでしょう。コンピュータは人間のように「お、おう。」とやり過ごすことはないので、額面通り「僕はしにましぇん」のメッセージを受け取り、そしてそれは予期しない動作に繋がり、アプリが死にます。人間相手に「僕はしにましぇん」と間違えて言った場合は、何らかのツッコミ、侮蔑の視線等を受けたのちに、なかったことになりますが、コンピュータ相手だと「僕はしにましぇん」と発した履歴が確実に残り、その履歴は他の人間が管理することになります。他の人は突如発せられた「僕はしにましぇん」をみて、果たしてこれが思いを伝えるための言葉だと思うでしょうか。運良くその人がトレンディドラマ大好き野郎だったらなんとかわかるかもしれませんが、その人が新卒だったら年齢的に多分わからないし、そもそも日本人じゃないかもしれないし、結構な確率で大量の疑問符を発生させることになると思います。「僕はしにましぇん」なんてコピペするかよ、と思う方が大多数だと思いますが、なぜかプログラミング言語ではこういうことが多発しているように思えます。コピペが悪だとは思いませんし、多くのプロダクトはコピペから産まれてて、多くの学習はコピペが始まりだと思っています。コピペするのはコードじゃなくてコードの思想であるべきだと私は思います。いつかプログラミング言語が廃れても、思想は脈々と受け継がれるので、それが枯れない経験として私たちの中に生き続けるのだと思います。ポエムそこそこいい具合にやれてた3年間だったと思います。今後どうやって生きてこう、というのが最近の悩みで、というのはこれから自分がトップクラスのエンジニアになるって無理だと思うからです。卒業論文はオリジナルのコンパイラですとかOSですみたいなスーパーマンが、すでに大規模サービスを運営してる会社のCTOで、えー同い年...みたいな状況で、こっからこの人たちを抜くのはまず無理です。「諦めたらそこで試合終了ですよ」とか言うレベルでなくて、例えばここから血の滲むような努力をすればプロ野球選手になれるのかとかそんなレベルの話です。この業界のトップランナーは往々にして小さい頃から(本人の自覚なしに)血の滲むような努力をしてきた人たちばかりなのです。いえ、上をみればキリがないですが、多分自分の業界内のスキルの立ち位置は平均よりはちょい上くらいだと思うんです。Linuxそこそこいじれる、RubyとJavaならそこそこ書ける、フロント周りもそこそこやれる、LTそこそこできる、マネジメント経験もちょっとならある、勤怠かなり真面目。やる気には満ちているので、こっからまだまだスキル全般伸びてくと思います。すると、とある会社のプロジェクトをなんとなーく回すくらいの立ち位置にはいけるんじゃないかなーと思っています。行けなくても毎日怒られて怒られて仕方ないみたいにはならないかなあーと。これでいいのかなあーみたいな。なんか随分ちっちゃくなったな俺の人生設計、みたいな。やりたいことは確実にやれてるし、仕事にも環境にも何も不満ないしなあー、みたいな。言いながら俺は結局まだ何者かになりたいのか、まだ承認欲求を満たしたいのか、その根底に流れる卑しい心は何なのか、みたいな。やって30代を走り切ろうってことばかり考えてると、ふとした時に自分がまだ28なことに気がついて、なんだまだ若いじゃん俺、って感じで得した気分になります。23:43会社員になって丸3年たちましたTweet広告を非表示にするもっと読むコメントを書く2017-02-01AI(人工知能)は怖くないIT最近AI(人工知能)がテレビなんかで取り上げられることが増えた気がするのですが、実際ITと接点がないと「なにそれこわい」みたいな感じの反応をされることが多いと思うので、非エンジニアの方向けにそんな怖くないよーって話をしたいと思います。ちなみに私は人工知能とかディープラーニングとかその辺に関してはTensorFlowをちょこっとさわったことがある程度のど素人に毛が生えた程度の人間なので、その辺知りたい人は今すぐ書店の技術書コーナーに走ってください。AI(人工知能)ってなに?人工的にコンピュータ上などで人間と同様の知能を実現させようという試み、或いはそのための一連の基礎技術を指す。Wikipediaに書いてましたが、こう書かれるとただ怖さを助長するだけな気がするので、健全な男子諸君にわかりやすい例を示します。qiita.comここには結構技術的なこととかも書いてあり非エンジニアの方には難しいと思いますので、この記事でどんなことやってるかというとおっぱいが大きい女性の顔写真とそうでない女性の顔写真を大量に用意するコンピュータに顔の判別方法を教えるコンピュータがそこそこ顔のパーツ判別できるのはなんとなくわかるでしょうか。snowみたいなアプリがあったり、それこそプリクラで目がおっきくなったり、あれを想像するとわかりやすいと思います)コンピュータにひたすら「これはおっぱいの大きい女性の顔!」「これはそうじゃない女性の顔!」と教え込ませる。コンピュータの得意技は尋常じゃない処理速度なので、人間が「ほーんこれがおっぱいの大きい女性の顔かあ〜」と言っている間に数百倍の速度でおっぱいの大きい女性とそうでない女性の顔を覚えていきます。コンピュータは覚えた写真の数々からそれぞれの特徴を導き出すこの辺もコンピュータの得意分野ですね。統計学のような難しい計算もミスなく高速で処理していきます。コンピュータに適当な女性の顔写真を見せ、おっぱいが大きいかそうじゃないかを判別させるコンピュータは学んだ統計から答えを導きだします。人間はその結果に一喜一憂します。なんだかおっぱいって言いたいだけの人みたいになってしまいましたが、だいたい最近のAIはこんな感じで作ることが多いです。ある程度は人間がコンピュータに勉強させないといけない(させるためのプログラムを作らなきゃいけない)ってことですね。AI(人工知能)によって何が起きるの?で、ここですごいのがさっきのおっぱいAIを作った人はAIの専門家ではないということです。ここ数年で、Googleをはじめとしていろんな企業、団体、時には個人がAIを作るためのフレームワーク(作り方、仕組み)をなんと無料でバンバン公開しているので、大学で人工知能を専攻しましたみたいな人じゃなくてもある程度簡単にこう言ったAIプログラムを作ることができるようになったんですね。これからいろんな分野で「AI作ってみようぜ!」みたいなノリが発生すると思います。これまでも囲碁・将棋のようなボードゲームでAIが人間を打ち負かした!みたいなニュースを見たと思いますが、これからはそんなニュースがいろんな業界で聞こえてくるでしょう。www.itmedia.co.jpマジで結構それなりですね。おっぱいのくだりからなんとなく作り方も想像できるんじゃないでしょうか。人間がビートルズの全楽曲を聞こうと思ったら何時間もかかると思いますが、コンピュータだと一瞬です。一瞬で聞いてその瞬間統計的ななにかを計算します。いうことやらせると人間がコンピュータに勝つのは難しいです。(とはいえそのコンピュータのプログラムは人間が作ってるんですけどね。)AI(人口知能)によって生活はどう変わる?「AIが発達すると人間のやることがなくなって人間はダメになっていく」みたいなイメージがある人ってそこそこいると思うんですが、私は逆だと思います。確かに人間が行ってきたルーチンワークは今後AIにとって変わられる可能性が高いと思います。それは多くの人々が今以上に創造力を働かすための時間を得られるということだと思います。人間が、より人間らしくいる時間が増えるということです。AIも人間が創造力を働かせた結果の産物です。卵が先か鶏が先かみたいな話にはなりますが、そう考えるとAIは決して怖いものじゃないということを感じられるんじゃないでしょうか。これからは過去の何かを集積して結果を出す、ということはコンピュータの役割、未来に向かって新たな何かを付け足す、ということが人間の役割、となっていくと思います。文系未経験からITの世界に飛び込み2年と8ヶ月ちょっとたち、ようやく普通に仕事できるようになってきたのでこれまでどんなことをやってきたのか、どんなことを学んできたのかを振り返ってみたいと思います。「文系だけど4月からSEになるけどどうしよう死ぬ」と思っている内定者の方や、「これからITの世界目指してみようかな文系だけど」と思っている方に少しでも参考になればいいなと思っています。内定〜入社までそもそも自分は文系学部を卒業後25歳までフリーターでバンドをやっていました。そこからまともな求人がITしかなかった企画と開発の両方に携わり、将来は自らのWebサービスを持ちたいという思いからエンジニアとして内定を頂きました。内定を頂いたのち、「入社までにこれ読んどいてね」とITパスポートの教科書を頂いて勉強することになったのですが、これがまあ理解できませんでした。単行本(ソフトカバー)この商品を含むブログを見る「変数はデータを入れる箱です」←わからない「クライアントサーバーシステムは、サービスを要求するクライアントと、要求されたサービスを提供するサーバで構成された分散型システムです」←もっとわからない「オブジェクト指向とはデータ処理やシステム操作を手続きの流れとしてとらえるのではなく”もの”及びその関係としてとらえて設計し、開発を進めていく考え方です」←そっと教科書を置く学生時代に全くITに触れてこなかったため、はじめはかなりちょっとなに言ってるかわからない状態が続きました。あ、これ結構まずいかもしれないと思い、ネットで調べた良さそうな本を図書館で借りて読んだりしていました。これはやっておいて良かったです。見る人によって理解しやすい説明のされかた、というのがあるような気がして、例えば自分の場合だったら「変数はデータを入れる箱です」と言われるより、「変数はメモリ上にデータを記憶させるための領域に名前を付けたものです」と言われたほうがピンときました。これは個人差があるものだと思うので、同じ題材でもいろんな教材から学んだほうが理解が深まると思います。「ああ、変数がデータを入れる箱ってそういうことね」みたいなアハ体験をしたものが知識として定着しやすいと感じます。入社してからこの業界は自社サービスを開発するのではなく、他社のサービスを開発するために自社の社員を派遣する、というのがメインの売上というパターンが多いです。自身のキャリアパスもどのようなサービスの開発に携わるか、というところに大きく左右されます。自分はそのあたりの業界模様をあまりよく理解していなかったので、人事部の「君は何がやりたい?」という今後を大きく左右する問いに「わたくし、何でもやります!」と答え、その結果、ビジネスマナーとExcelの使い方を学んだ新入社員研修の思い出を胸に、他社のプロジェクトに派遣されたのでありました。この業界「何でもやります」は結構禁句です。あ、このあたりでしれっとITパスポートとった気がします。最初はホントになにやればいいかわからないと思うので、ITパスポートを目標にするといいんじゃないかなと思います。最初に配属されたプロジェクトは某大規模通信システムでした。開発言語はC、C++、OSはUNIX/Linux。知っているものは皆無でした。「とりあえずLinuxはできるようになってくれ」とのことで、とにかく必死で勉強しました。1を受験するのがおすすめです。試験料は死ぬほど高い(¥30,000をゆうに越える)ですが、業務中に「これ進研ゼミでLPICでやった...!」と思える瞬間が結構多かったです。いえ初学者がいきなりLinux教科書(通称あずき本)に手を出すと撃沈する可能性大だと思うので以下の本がおすすめです。自分はこれでだいぶスムーズに勉強することができました。単行本(ソフトカバー)この商品を含むブログを見るとはいえこれだけだと恐らく合格できないのでこれを読んだ後にあずき本に挑戦するのがいいと思います。見るまた、平行してネットワークの勉強もある程度したほうがいいと思います。知らないとPCセットアップ中、環境担当の方に自分の使用するIPアドレスを聞いたとき「ちょっとまってね、えーと、(192.168.)10.11を使って」と言われ、IPアドレスの欄に「10.11」と入力した状態で「すみません、繋がらないんですけど...」と聞き、閉口されたりします。いうか、そんなそこ(192.168)は固定だなんて普通に暮らしてたら知らなくないっすか?俺だけっすか?そうっすか...勉強しましょう。見るこれとかでも十分だと思います。そんな試験受ける意味ゼロパーセントだろ。@takapon_jp情報処理技術者は無しですか?まあ情報処理試験は、単なる力試し試験の典型。持ってれば良いプログラム書けるという訳ではないし、資格者の独占業務でも無いですし。こと文系未経験の場合、IT業界に進むということは地図を持たずに大海のど真ん中に置き去りにされることと同義なので、ある程度業界全体の知識を持つということはよかったなあと個人的には思います。単行本(ソフトカバー)この商品を含むブログを見るそんな感じでようやく素人に毛が生えたレベルまで到達した自分は、システムの障害対応だったりマシンセットアップだったりテストだったりと様々な業務に携わりました。こんな感じのところでコンピューターをガッチョンガッチョンしてたときはさすがにテンションMAXでした。2年目突入この辺りでふつふつと、「あれ、俺がやりたかったのってコンピュータガッチョンガッチョンだっけ...?」との思いが沸き上がってきました。見るこれは意味があったかと言われれば正直かなり微妙ですが、これに合格したおかげで会社からいっぱいお金もらえたのでよかったです(小並感)。1年目はずっと保守・運用系の仕事をやっており、全然プログラミングをやっていませんでした。プログラミングできないってマズくね?なんとか開発の仕事をとりたくね?の一心から、現場で採用されているC言語の勉強を本格的にスタートしました。Cやるやついるのかって気もしますが、おすすめは以下の2冊です。これでポインタアレルギーは解消できます。見るLinuxコマンドをCで開発したりするので、LinuxもCも詳しくなれるという一石二鳥の本です。最初にオリジナルcatコマンド開発した時はテンション上がりました。見る2年目以降自分に与えられる業務は開発ではなく要件定義や設計といった、いわゆる上流工程が多くなってきました。これはこれで大変やりがいのある仕事ではあったのですが、ドキュメント作成が業務の大きなウエイトを占めるようになり、エクセルやパワーポイントと向き合う日々が続きました。「エンジニアになったけど全然プログラミングしていない。これで別のプロジェクトに行ったときに果たして自分は通用するのだろうか」という思いが日増しに強くなっていました。そんなときに友人のエンジニアが「だったら一緒にWebサービスでも作ってみる?」と言ってくれたので、ふたつ返事でOKしました。カルチャーショック期到来その友人のエンジニアとは音楽が共通の趣味だったので、それを通じてこんなサービスにしよう、という草案は簡単にできあがりました。開発しようとなった時に相当なショックを受けました。見た目はとりあえずBootstrapで作っちゃって、サーバもとりあえずHerokuでいいよね。AWS使ってみたい気もするけど。あとでGithubにリポジトリ作っとくからcloneしといてね。業界が違うだけでこんなに必要となる知識が違うのかと痛感しました。自分はとりあえずしっかり勉強していればなんとかなると思っていましたがそうではなく、自身がまずはやりたいことをしっかりと見定め、そこに向かってしっかりと知識を積み上げなくてはいけないのだと思いました。それからというもの「やはりWebサービスが作りたい」という思いが強くなり、忙しくなる一方の業務の合間をぬってWebアプリ開発の勉強していましたが、業務の合間では到底時間が足りないこともわかってきました。Javaの資格をとって社内にWebやりたいですアピールをしてみたりもしました。Kindle版この商品を含むブログを見る3年目〜そして転職へ3年目になり仕事自体は順調に来ており、将来的にリーダー引き継ぐ?みたいな話も出たり出なかったりしたのですが、即ちそれはずっといまのプロジェクトを遂行していくということでした。周りを見渡せばこのプロジェクトに10年以上いる人、ずっと同じ技術しかやっていないという人が少なからずいました。これは他社、他のプロジェクトでも珍しいことではなく、何年も派遣先で働いていて会社への帰属意識が全くないというのがIT業界ではよく問題としてあがります。自分は「このままではパイが空くまで待たなければならない。今すぐWeb開発に携わりたい。」という思いから転職に踏み切りました。Webやるよ!というわけで7月から今の会社にきました。最初につまづいたのはSQLです。「Excelと何が違うん?」くらいの感覚でしたが、データベースはシステムの肝です。最近はSQL書かんくてもDB操作できるんやで!っていうORマッパーがたくさんありますが、まだまだSQLを理解しながら書かないと大きいシステムだとすぐ遅くなります。(遅くなりました)これでまずは基礎固めしました。見るあとかなりストイックな本ですが、これを1冊やればSQLへの苦手意識はなくなります。大型本この商品を含むブログを見るJavaに関しては手元にこれを置いてました。ポケットブック的な使い方もできますし、普通に読んでいっても力つきます。見るあとはこれとかは「果たして俺はオブジェクト指向を理解できてるのか?」の試金石みたいな感じで読みました。見るあ、あとこれは割と必読書なんじゃないですかね。プログラミングも本質はコンピュータとの対話ではなく人間とのコミュニケーションだという大切なことに気付かされる本です。見るこんな感じでプログラミングの基礎的なところが固まってきました。あとは「Webサービスが作りたい!」というゴールに向かってひたすらに知識を積みあげていく(フレームワークだったりgitだったりフロント周りだったり)というところでようやく迷いがなくなってきたところです。Railsでの開発に従事しています。強引にまとめやりたいことが明確に見えてなかった自分はとりあえず2年目までITでも基礎的なところの学習に終始していたのですが、いまとなってはすごくよかったなと感じています。いうのが、業務でプログラミングを本格的にやるというのがここ数ヶ月が初めてだったのですが、意外と違和感なくこなせているからです。ある程度コンピュータのアーキテクチャやネットワークの動きを想像しながらプログラミングできたり、サーバ周りの設定でつまづいたりしないからなのではないかなと思っています。文系から入社してすぐに何がやりたい?と聞かれてもそりゃ答えられないよ、って人も多いと思うので、そんなときは焦らずに基本情報、ネットワーク、サーバ周りといった基礎的なところをしっかりと固めていけば、いざこれやりたい!となったときにもスムーズに対応できるようになると思います。あとがき最近はnode.jsで社内のシステムを作ってみたり、Ajaxで遊んでみたりといろいろなことができるようになって、ほんと楽しいです。いえ、まだまだ素人に毛が2本くらい生えたレベルの技術力だと思うので、もっと精進したいなと感じています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。