RubyKaigi 2019に遊びに行ってきた感想

f:id:shimabukuromeg:20190422004810j:plain

プログラミングを学び初めて一年とちょっと経ち、今はLaravelでお仕事することが多くて、Rubyを書くことはほとんどないんだけど、プログラミングを学び始めた当初は、RubyRailsチュートリアルでWebの基本を学ばせてもらったり、福岡開催ということもあって(沖縄からも少し近いということもあって)、RubyKaigi 2019に遊びに行ってきました。その感想を少し書きます。(技術的なことはほんと全然わからなかったのですが....参加した感想です!)

rubykaigi.org

全然何もわからなかった

Rubykaigiは、Rubyの処理(言語系)やライブラリの話など、Rubyにまつわるコアなセッションがたくさんあって、参加する前から難しい話が多いんだろうなーとは思っていたけど、やっぱり難しくて、全然何もわからなかった…。わからないなりに、出てきたワードを適当に調べてみたりしたけど、いろいろよくわからなかった。今はわからないけど、あの時のあれはそういうことかー!という日がくるよう頑張りたい。あとは、Rubyでお仕事してみたいってめっちゃ思った。

英語大事

海外から来られているかたも多く、登壇されている方も海外の方が多くて、英語わからないとそもそも土俵に上がれない感がめっちゃあった。最近,、英語勉強しようと思っていたところだったので、ますますやらないとなーと感じた。あと、一緒に行動してたカンナくんが、登壇者と普通に英語でコミュニケーションを取ってたのを横でみてて、こうやってコミュニケーションを取れるのめっちゃいいじゃん、うらやましいと思ったので、もっと頑張る。

そこにいる人たちがみんなすごくかっこよかった

Rubyという言語を作っている人たちやライブラリを作ってる人たち、みんながRubyのことを好きで、Rubyという言語やコミュニティーをよりよくしていこうとしている空気感がすごく伝わった。「みんなで作っていきましょう」というようなことを、登壇されていたみなさんが、よく話していたことも、すごく印象に残っている。こういうのすごく良いなあと思った。かっこいい。

福岡最高

福岡の美味しい食べ物食べたり、空港からの移動がすごく楽だったり、福岡のロケーションすごく良いなあと思った。また旅行か何かで遊びにきたい。

f:id:shimabukuromeg:20190422005244j:plain

まとめ

すごく熱量ある3日間で、学習意欲が刺激されたので、戻ったらコード書いたり、英語やったり、頑張ります。

今週の振り返り(4/8-4/14)

今週は Laravelでプロトタイプを作ったりだとか、Azure FunctionsをPythonで書いたりとかを取り組んでた。Python書いたことなかったり、APIを叩いて情報を取得したりするのも今まであんまりやったことなくて、パラメーターを渡したりするに苦戦したりで、いろいろ学んだ一週間でした。ざっくり振り返る。

やったこと

  • Azure functions
  • Python
  • APIを叩いて情報を取得してDBに登録する
  • Laravel (いまはLaravelというよりかは、どういうサービスであるべき?みたいことを考えることが多いので、Laravel関連のことは保留。サービス設計についてもっと勉強しなければ.....)

学んだこと

何回も検索かけたことのメモです。主にPython

辞書型と文字列(JSON)の変換
  • json.loads で変換できる
    text = '{"aaa": "123", "bbb": "456"}'
    di = json.loads(text)
組み込み関数 type()

デバック

requests

DB接続、pyodbc

次やること

  • python自体の勉強をもう少ししたい。API叩いてDBに保存するみたいのを自分でも作ってみるとかしてみたい

まとめ

  • API叩いて、情報取ってきて、DBに登録するってだけで簡単そうとか思ってたけど、やってみるとAPIのアクセスの方法、正しいパラメーターの渡し方、返ってきた値の操作方法、DBへのアクセス方法、登録方法とか、そもそもpythonわかってないとか、いろいろわかってないことが多くてあまり簡単じゃなかった…。途中から慣れてきて少し楽しくなってきたけど、もうちょっと勉強しいこうと思う。
  • 前にさぼさんにlambda使うのも、rails、laravel使うのも、基本は全部同じだったりするというのを教えてもらったことがあって、その時はあんまりピンとこなかったんだけど、実際に Azure functionを書いてる時に、httpリクエストを受け取って、後続の処理書いて…ってしてると、なんかlaravel書いてる時と似た気持ちになったので、その辺りも初めてazure functionsを書いてて勉強になってよかった。

ギークハウス沖縄に入居して1ヶ月たったので振り返ってみる

3月からギークハウス沖縄に入居して1ヶ月が過ぎた。この1ヶ月かなり充実して楽しかったので、ギークハウスでの生活を振り返ってみる。

生活

  • 7:00 起床。9:00-23:00 仕事とか勉強とかご飯とかいろいろ過ごす。24:00 就寝。みたいな1日の流れ。
  • 2階のフロアが作業場になってるので基本的にそこで作業してる。
  • ご飯は周辺の飲食店が充実してるのでその辺りでご飯食べることが多い。
  • シェアハウスの暮らしは、一緒に暮らすメンバーにかなり関係してくると思うけど、この1ヶ月暮らしてみた感じ、入居されてる方にエンジニアさんが多くて、仕事とか技術の話とか、かなり治安良く生活できてる

f:id:shimabukuromeg:20190407155321j:plain

交流

  • ギークハウスに住んでると、ルームメイトのかたを始め、いろんな人が訪れたりするので、みんなでわいわい交流できて面白い。個人的に、入居前は共同生活やっていけるのだろうかと思ってたけど、入ったら意外と大丈夫だった。
  • 入居者にリモートワークしてる人が多くて、リゾートホテルのラウンジに行って、みんなでリゾートワークしたり、週末はコザの夜の街に飲み行ったりして、かなり沖縄を満喫した(僕自身沖縄は地元なんだけど、県外からきてる人たち一緒に行動したりするとあらためて沖縄良いわーって気持ちになってよかった)
  • ルームメイトのみなさんと一緒に生活してると、ご飯の時の何気ない雑談から面白い話が聞けたり、Webのお勉強の話とか、学びが多い
  • ざっくり印象深い学んだこと
    • 労働は諸悪の根源
    • 酒を飲めないと行動できないような男はだめ
    • 初見プレゼン。3割しか知らないで、10割知ってるように話すコスパの良さ
    • レビュー力大事(ご飯食べて感想が普通とかしか言えないようじゃダメ)
    • ギャル
    • Webの仕組み
    • Laravelデザインパターン(全然まだ理解できてないけど)
    • 他にもたくさんありそうだけどパッと思いつくのをあげてみた。

  • ギークハウス、いろいろ面白そうな本がたくさんあるのもいいなと思っている(まだ全然読めてないけどいろいろ読みたい)
  • 技術書とか経営の本とか沖縄の歴史の本とかキングダムとか
  • 技術書とかまあまあ高くて、買うのためらったりするけど、自分の興味のある本がこうやって気軽に手に取れる環境めっちゃ良い

飲食店

  • ギークハウス沖縄の周辺の飲食店めちゃめちゃ充実してる
  • 徒歩圏内にまあまあお店あってすごく良い。
  • 菊田さんが完璧にまとめてくれたギー沖周辺の飲食店情報。すごい

ギークハウス沖縄情報

まとめ

  • 多分3月だからというのもあると思うけど、花粉で県外のエンジニアさんが入居されてたり、春休みで大学生が入居されてたりで、いろいろみんなでワイワイできて楽しい1ヶ月だった。かなり青春を感じた(またお会いした際は飲み行きましょう!)

  • Webの勉強したい人とか沖縄に住んでみたい人にはかなりオススメなので、気になる人いたら是非。

ここ2ヶ月の近況

f:id:shimabukuromeg:20190323100734j:plain

ふと、最近ブログ書いてないのに気づいたので、ここ2ヶ月のことを簡単に振り返ってみる

イベント

  • 2月

    • 前職クロージング
    • 新プロジェクトJoin
  • 3月

https://twitter.com/20092014/status/1101721652373544962

  • Laravel 勉強会でLTした

最近やってること

  • Laravel
  • プロトタイプ作り

技術

  • この2ヶ月で、どれぐらいのスキルが上がったか

    • 基本的にLaravelばかりやってる
    • 具体的に答えられないから、もう少し日々の取り組みを見直そう
      • やったこと・学んだこと・次やることみたいな振り返りを週単位でやろう..。振り返りブログとか書かないと、自分が何やったかすぐ忘れる...よくない
  • 足りないと思ってること

    • Laravelでいま足りないと思っているところここ
    • Laravel使ってるけど、モデル、ビュー、コントローラー、routing、フォームリクエスト(validate)の雛形を使ってそこに簡単なコード乗せっててるだけで、DIとファサードとか疎結合とか理解できていない。良いコードを読むのが一番勉強になりそうな気がするので、色々探して読んでみたい。読む->真似する->オリジナルを作る

最近考えること

  • 何か機能を作ったり実装するとき、まず考えるのが自分が過去やったコードの書き方をどう利用するかってところな気がしていて、そうすると良いコードを書くには、たくさんいいコードを読んで、書いて、自分が過去やった書き方のパターンをたくさん増やしていくのがいいかもしれない。今の自分に足りないのは、コードをたくさん読んでみることな気がする。

  • あんまりコードかけるようになってる実感がないんだけど、最近聞いて心に残ってる話で「コードをかけるようにはいつかなりますが、コードをかけるようになったときにコードをかけるだけじゃ生きていけない世の中になっていたら意味がないのです。だから、数手先の事を考えていきていく必要があるし、そもそも数手先を考えて実装を考える仕事です」というのがあって、コードかけることの価値が低くなった世界がきても生きていけるよう、そんな世界をもう少し想像できるようにしたいと思った。とはいえ、まずはコードかけるようなるよう頑張る

まとめ

  • ここ2ヶ月はいろいろ生活に変化が多い期間だった
  • 特にギークハウスに住み始めて、いろんな人と出会いがあって面白い
  • 改めてブログを書いていこう(週単位の振り返りとか、最近やってみた技術の話とか、読んだ本の感想とか)

今週の振り返り(1月第3週)

今週の振り返り。仕事、イベント、勉強したことなど

やったこと

  • 月曜日
    • いまやってるProject(laravel)のIssue消化(3h)
  • 火曜日
    • いまやってるProject(laravel)のIssue消化(5h)
  • 水曜日
    • イベント
  • 木曜日
  • 金曜日
    • いまやってるProject(laravel)のIssue消化(6h)
    • 県立図書館初めてきた
  • 土曜日
    • いまやってるProject(laravel)のIssue消化とその勉強(5h)
  • そのほか
    • python勉強始めた
    • azure勉強始めた

いまやってるProject(laravel)のIssue消化

取り組んでて考えたこととか、学んだこととか、振り返る。

  • 過去にやったことあるけど、すぐ忘れてる問題。これ前やったことあるけど、どうやってやるんだっけ?どういう仕組みになってるんだっけ?ってなることが多いと感じた。忘れないように定期的に復習しないいけないな…という気持ちになった
  • 例えば、次のようなことを忘れてた。

    • ポリシーの仕組み

      • laravelの認可の仕組み。どのファイルに定義するんだっけ?とか、この書き方あってるんだっけ?とかすごく記憶飛んでた。一度書いたパターンと全く同じ感じでかけるんだったら、似たように書けばいいんだけど、なんか少し違うみたいなとき、そもそもポリシーの仕組みってどうなってるんだっけ?みたいになったので、復習する。
      • ポリシーについて勉強した時の記事。復習する http://shimabukuromeg.hatenadiary.jp/entry/2018/12/02/145305
    • クエリビルダ 、Eloquent周りのメソッド

      • view側に渡す配列を考えるとき、配列の操作でクエリビルダ のメソッドとかEloquentのメソッドとかを使ってデータを取ってきて、配列を作るんだけど、このデータ取ってきたいとき、どのメソッド使えばよかったんだっけ?とか、もっと効率的にできるやつなかったけ?とかスムーズに出てこなかったので、復習する

      • https://blog.capilano-fw.com/?p=727

      • https://readouble.com/laravel/5.5/ja/collections.html
  • ログインするユーザーのタイプによって、ログイン後のリダイレクト先のトップページを変更するやり方を学んだ。

    • 最初、laravelの認証周りのコード(AuthenticatesUsersあたり)を追いかけてて、全然わからず、これどうやってやるんだろって、めちゃめちゃ悩んでたんけど、結果的には、トップコントローラーみたいなコントローラーを作って、ログイン後のリダイレクト先をそこにして、そこで、ログインしたユーザーのタイプによって、それぞれのトップページへリダイレクトするようにした。知ってしまえば、そんなに難しくないんだけど、自分の中だけでは、そういう発想が全く出てこなかったので、勉強になった。今回の例に限らず、こういう状況はよく出てきそう。いろんなProjectのコードをみたり、他の方のコードをみたりして、もっと学んでいきたい
  • 結局以下リンク辺りのコードはあまり知らなくてもできたんだけど、ちゃんと理解できるようにしたい。認証周りのコードむずい

laraweb.net

qiita.com

イベント

沖縄のスタートアップ企業で働くエンジニアのリアルというイベントに参加した。県内のスタートアップ企業で働いてるエンジニアさんの話が聞けてすごく勉強になった。懇親会で参加されたかたといろいろお知り合いになれたりとか、高校時代の同級生がめちゃめちゃ活躍されてるのを知ったりとか、すごく面白いイベントで参加できてよかった。ここで登壇されてたエンジニアさんたちと同じ土俵で話ができるレベルになるよう頑張りたい。

togetter.com

arakaji.hatenablog.com

次週やりたいこと

  • いまやってるProjectで、自分が担当してないIssueのコードを読んでいろいろ勉強、キャッチアップする
  • azureとpythonコツコツ勉強する
  • このブログで復習するって書いたやつをコツコツ復習する

Azureのサービスを色々知りたくなったので触ってみた話

Azureのすごく基本的なサービス(リソースグループ作って、ネットワーク作って、仮想マシン建てて....とか)は、よく使うけど、そのほかのサービスについては、あまり触ったことがなかったので、気になったサービスをいろいろ触ってみた。

Microsoft 公式の無料の学習コンテンツ集を見つけたのでそれを参考にした。(このコンテンツ集めちゃめちゃわかりやすかった)

docs.microsoft.com

やったこと

サーバーレスとサービス間の接続についての2コースをやってみた。

サーバーレス アプリケーションの作成

Azure Functionを使ってみたかったので、とりあえずこのコースをやってみた。トリガーの種類や、バインディングというものの概念を把握できたのがよかった。(バインディングとは、特定の接続ロジックをコーディングしなくても、データリソースに接続できる仕組み)あと、Azure Functionまわりの他の登場人物たちもいろいろ知れて勉強になった。

docs.microsoft.com

サービスの接続

クラウドサービスを使う際に面白いところは、簡単にいろんなサービスを連携できたりするところとかだと思ってるので、このコースをやってみた。Azure Queue Storage、Azure Event Hubsあたりの勉強になった。イベントとかメッセージについての概念やイベント配信システムというものについてもあまりよくわかってなかったので、すごく勉強になった。サンプルコードがC#だったのは、めちゃむずかった

docs.microsoft.com

学んだこと

  • 実際のAzureのコンパネから操作してハンズオン形式で学ぶということで、操作感が掴めたこと

    • サービスごとに、どこに何があるのかって、慣れないと操作しづらいと感じることが多いので、ぽちぽち手を動かしながら操作感を掴めたのはよかったと思う
  • サービスを使う背景

    • どこコースを選択しても、このサービスを使う背景が細かく設定されていて、何のためにこのサービスを使うのかを把握できてよかった。例えば、ソーシャル ネットワーク サイトを運営してる人だったり、美容院の顧客のスケジュール管理を作ってる人だったり、エスカレーターの温度監視してる人だったりの立場に立ってハンズオンを進めるみたいな感じだったので、何のためにそのサービスを使うのかがイメージできて、勉強になった。

次やること

他のコースもやりたい。きになるやつ
  • SQL Server触ったことないので気になる

docs.microsoft.com

  • BIツール気になる

docs.microsoft.com

  • リソース管理は基本的なところだけど、ちゃんと体系的に勉強したことなかったので、気になる

docs.microsoft.com

この学習コースで学んだサービスを組み合わせて実際に使ってみる
  • パッといいアイディアが出てこないので模索中。この学習コース使っただけだと、サービス使いこなせるようにはならないと思うので、もう少し触っていきたい。ネットにあるやってみた記事を参考にやってみるとか、考えてみる。

感想

  • コンテンツ集、わかりやすいし面白いので他のコースもやっていきたい

  • 時間かかりすぎな感じもあるので、テンポよく進められるよう頑張る(コース毎に学習目安時間が提示されてる)

  • まだ簡単な操作感と概要みたいなのを把握できただけなので、実践していけるようコースを応用した何かを作ってみるとかしてみる

めっちゃ時間かかってたIssueが終わったので振り返り

めっちゃ時間かかってたIssueがやっと終わった。

思ったより、時間かかったので、なんでこんなに時間かかったのかを振り返る。

振り返り

時間かかったと思われる要因、適当にあげてみる

  • 欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)

    • まず欲しいデータの構造を決めるのがむずい
    • 決めたとして、どうやって引っ張ってくるかが考えるのがむずい
    • やってる途中で、この要素いらないんじゃない?この要素必要なんじゃない?ってのが出てきて、むずい
    • 引っ張ってくるデータの関連性とか考慮しないといけなくなると難しくなる印象
  • データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った

  • どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで、時間かかった

    • ちゃんとわかっていないって言ってるのは、準備されてるメソッドの使い方とか、このメソッドを使うときの引数やreturnがどんな感じになってるのか、etc....
    • なので、ドキュメント見ればいいだけなんだけど、なんというかドキュメントを読み解くのに時間がかかったってのと、ドキュメントに書いてるサンプルコードを自分が書いてるコードに合わせて書くってのに時間がかかった
    • あと、そもそも、どういうのが準備されてるのかを探すとことか時間がかかった
  • SQL弱い

    • joinとかinnerjoinとか複数のテーブルの操作系
  • 過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題

  • 既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)

  • JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、今回はJSのコードも変更に含んでて、わからなすぎて時間かかった)

改善

上記、振り返りを改善するために、ざっくり考えたこと

  • 欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)の改善

    • APIとか触るようになると、もっと理解力深まるかも。
    • 難しいと思ったコードと似てるコードをもっと読む(今作ってるアプリの違う機能のとこで、似たようなとこありそうだから読んでみるとか。慣れる)
    • 難しいと思ったコードの状況と似ているコードが必要になるシュツエーションを想像する。そして書いてみる
  • データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った。の改善

    • 使い分けの目安を持つ
      • Eloquentを使うときは、対象とのテーブル(モデル)が1つの場合とか、関連するデータを富豪的に取ってきたい時とか。Eloquent使う場面の方が多そう
      • クエリビルダ を使うときは、複数のテーブルからデータを取ってこないといけない、ちょっと複雑なSQLを使ってデータを取ってきたい時とか
  • どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで時間かかった。の改善

  • SQL弱い。の改善

    • 都度理解していくようにする
    • Laravelドキュメントのクエリービルダーのとこ中心に復習
    • 時間見つけて、SQLの本読んでみる
  • 過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題。の改善

  • 既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)の改善。

    • 単純に読む量少ない問題あると思うので、時間積む
    • ただ、闇雲に読むってのも微妙かもなので、効率的に読むポイントとかあれば抑えたい(模索中)
  • JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、JSのコードも変更に含んでて、わからなすぎて時間かかった)の改善。

    • 改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用までって本を買ったので、基礎から勉強する

感想

ちょっとづつ進歩してる感じもあるけど、もっとサクサクコードかけるようになりたい。頑張ろ。