移転しました。

約3秒後に自動的にリダイレクトします。

Progateが楽しい~学習記録~

f:id:kousy:20171211002245j:plain

f:id:kousy:20171211002250j:plain

f:id:kousy:20171211002251j:plain

 

初めはテキトーに興味のあるPythonや,なんか使えそうなコマンド,SQLなんかをやっていました。

しかし少し前からProgateのおすすめ学習コースに乗っ取って進め始めました。html&CSSJavaScriptJQueryRuby→Comand line→Rails→Gitという感じです。

JQueryの書き方がなぜか頭に入って来ず、少し停滞してしまったのでブログを更新してみた次第です。

集中して取り組めば、ガンガン勉強できていって自然に書き方を覚えます。

僕はある程度英語を勉強して得意になったのですが、プログラミング学習は単語の暗記があまり必要ない語学学習(文法)って感じです。

アルゴリズムを考えるようなもう少し高いレベルだと、また違った話になるんでしょうけど。

そんなわけで新しい本も2冊借りてきました。最近本の感想をしっかり書けていませんが、本当に面白くて頭に入ったものに関してはきっちり書きます!!(宣言)

それでは。

 

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

 

 

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

 

 

(追記 171212)

この記事を書いた後すぐにLv.101まで到達しました。ゲーム感覚で楽しいです。

一通り終えたらpaizaとかcodeacademyとか、他のサービスも使って勉強を続けると同時に仕事をやっていこうと思います。html書けるだけでとりあえずクラウドワークスとかに仕事はあるみたいですし。

誰かプログラミングのアルバイトくださいー。笑

f:id:kousy:20171212143331j:plain

みんなのウェディング出張インターンの感想など

「TDDでWebサーバーを作ってみよう」

というお題でした。

はじめに会社の紹介やインターン生の自己紹介を軽く済ませて、テンポよく進んでいきました。

大事なことまず書いておくと、とても楽しかった!です。

Rubyを触るのは初めてで、TDDについてもなにそれ?って感じの初心者感満載なkousyでしたが、色々と学べました。

 

開発環境は

- Ruby2.42

- Git 2.15.0

- Atom

- Terminal

という感じで僕はやりました。

 

そして内容は

テスト駆動開発とは」
「Webサーバーとは」
「HTTPとは」
などの基本を@1syoさんにご教授いただきました。

目次を引用しますが、その後はこんな流れでした。

 

  1. HTTPリクエストを受け取る
  2. パーサーを作る
  3. リクエスト行を解析する
  4. リクエスト行を配列で受け取る
  5. リクエスト行がない場合
  6. ヘッダーフィールドを解析する
  7. リクエスト行も一緒にする
  8. リクエスト行の格納先を作る
  9. 解析結果を格納する
  10. リクエストボディを扱う
  11. リファクタリングする
  12. HTTPレスポンスを作る
  13. レンダーする
  14. ファイルがない場合
  15. リファクタリングする
  16. レスポンスボディを表示する
  17.  HEADメソッドか判定する
  18. ファイルサイズを動的にする
  19. 配信日時を動的にする
  20. ContentTypeを動的にする
  21. ファイルの情報を集約する
  22. Responseクラスから使う
  23. 手動テストしてみよう
  24. ネットワークに公開する
  25. デーモンにする

Ruby初心者には盛り沢山な内容でした。

この後にまたProgateでRubyIIやRailsを触ったのですが「あ、これインターンで説明してたやつだ!」って感じの発見があって、普段よりも学びが加速していた気がします。

やはりこういう場に参加していくのは大事ですね。

 分からないところも多々あったのですが、mwed社のお二人やまささんやその周りの方に助けて頂いてなんとかついていけました。

正直自分の頭の中でコードとその挙動が一致していないところが多く、近いうちに完璧に理解してやろう!と思っています。

 

ところで、最近親戚が結婚したこともあって、ウェディング業界に少し興味をもってました。

新郎新婦専用のWebページがあって、そこで名簿を作ったり色々なリストを作ったりできるものがありました。僕はタイピングが速いということもあって、そのWebページを少し触りました。

エンジニアリングで効率化できる要素は色々とあるんだろうなーなんて思っていました。

そういう意味でもこのウェディング×エンジニアリングの組み合わせは面白いと思います。

懇親会で聞いた話ですが、ゼ○シィ一強のウェディング業界の構造はあまりよくなさそうです。

結婚式場は寡占状態のゼ○シィに掲載してもらうために高い掲載料を払っているそうです。

他にも、結婚式場の不透明な料金体系があるため、ユーザーとの間での情報の非対称性が生じているとか。

 

今はプログラミングの勉強ばっかりで、コード書くことに集中していますが、いずれはこういう大きな問題を解決していきたい!と思いました。

そんなわけでみんなのウェディングさん、学びの機会をありがとうございました。

 

 

みんなのウェディング 1日インターンが楽しみ過ぎるので更新してみる

どうも、みんなのウェディング1日インターンを1時間半後に控えたkousyです。

今回はまささんから直接お誘い頂いたこともあって特に楽しみです。

masa-world.hateblo.jp

 

しかしkousy、、、Rubyを書いたことない!!

というわけで慌ててprogateで入門したなうです。

f:id:kousy:20171130121510j:plain

 

気になる今回の内容は、、、

 

 

Rubyでウェブサーバーを作ってみよう(全行程TDD)

  1. httpプロトコルの解説

  2. 標準入出力を利用してhttpプロトコルの実装

2.1 リクエストの解析(GETリクエストのみ)

2.2 レスポンスの構築

  1. ネットワークに公開してブラウザで利用してみる

  2. デーモン化して完成

オプション

hamlを直接扱えるWebサーバにしてみよう

・クエリーストリングを解析してみよう

・POSTリクエストを実装しよう

 

って感じらしいです。標準入出力でhttpプロトコルの実装ってどうやるの??というレベルで果たしてついていけるのか、、、

情報工学科の人ばっかりそうでやや不安。。

しかし、やるしかないっ!

楽しんできまーす。

さぼさん(@saboyutaka)の講演「働く手段としてのエンジニア」を聞いてきたよ。

僕がISUCONを知ったのはハカチャンでのまささん(@Masah201707)の講演を聞いたことがきっかけでした。

 

そのまささんのお師匠である、さぼさんの講演です。発表資料はこちら。

paper.dropbox.com

 

本当にプログラミングやエンジニア業界のことを何も知らない人にも分かるような話でした。

 

自分のメモだけそのまま載せておきます。

- 既存の教育機関、大企業向け

→これは大学でも専門学校でもそうらしいですね。その教育機関から何名就職したかという数を教育機関は重視しているのでこうなってるそうです。

 

- サボさんの遊ぶ時間と学ぶ時間は?どれくらいで、何をしてるのか。

→これは実際に直接質問したのですが、答えづらかったみたいで申し訳なかったです。ただ、最近仕事ばかりしていると仰ってました。

エンジニア人生の最終的な目標、夢は??と言うことも聞いてみたかったですが、また答えづらそうなのでやめました。

 

- 収益の手段を複数持つ、時間配分次第、別々の収益構造で複数

→これは最近よく言われていることですよね。しかし本当に大事です。月10万円くらいの仕事をいくつも持っておきたい。

 

短いですがこんな感じ。研究、バイト、課題をこなしてプログラミングの時間を捻出するぞっ。

CODE BLUE TOKYO 2017に学生スタッフとして参加してみた

CODE BLUE TOKYO 2017

codeblue.jp

このイベントで学生スタッフの募集があったので、参加して来た。応募してみたら、採用された。まあ落ちた人もそんなにいないんだろうけど。

志望動機をしっかり書いておけば、技術力とは関係なく採用されるっぽいです。

 

正直、講演で話されてるレベルの技術に関する知識なんて全然なかったし、ハッキングコンテストにも太刀打ちできる実力もなかった。しかし、必殺コミュニケーション能力と、会話で出てくる言葉を推測してその場でググることで知識をだいぶ増やせた。それなりに有意義だったと思う。講演に関しては、IoT、自動運転関連のセキュリティの話が流行ってたなーって思ったくらい。それとセキュリティと法律は関係が深いってことを知った。

 

世の中には複数言語とプログラミングも出来て話も上手なんて人が、そこそこにいる。

僕が目指す、イケイケである。そんな人たちと少し話したり出来てよかった。

 

本題の情報セキュリティについての全体像は、各企業のブースで配ってパンフレットがよくまとめられていてとても分かり易かった。

暗号については高校生くらいの時から興味があったのでサイモンシンの「暗号解読」なんかを読んでいて多少知っていた。 むかーしテキトーに読んだ本の知識が活きたりするもんなんですね。

暗号解読〈上〉 (新潮文庫)

暗号解読〈上〉 (新潮文庫)

 

 無駄におしゃれなカンファレンスとか、中身のない話で名刺を交換し合うようなやり取りは苦手だけど。人と会って刺激を受けることは大事なんでしょうね。

 

近況

ProgateはLv.51になりました。PythonSQLが書いててしっくりきた。そんだけ。

もっと勉強せねば。

後期の講義だったり、Progateの進み具合だったりについて

#なう

やはりプログラミングもブログ更新も深夜が捗るなーなんて感じています。

静かで誰にも邪魔されない上に、他のことをしようにもコンビニくらいしか空いてないので出来ないのでこの時間帯が好きです。しかし、早寝して朝方の生活にも適応できるので便利な体です。

 

##近況

さて、ようやく後期の講義が始まりました。香港に旅行に行ったりしていたので、少し間が空いていますが、今期で卒業に必要な単位を全て揃える!そしてエンジニアになるための勉強になる単位も取得していこうと思っています。Progateはようやくレベル40になりました。最近はPythonがやはり書きやすいので2まで習得しました。この勢いで明日には3習得したいところです。

 

僕の所属学科の専門の講義は、本当に重箱の隅を楊枝でほじくるようなニッチな内容ばかりです。こんなこと学んでもお金にもならいし、自分が知りたいことでもないよなーなんて1,2年前はよく思っていました。しかし、最近エンジニアになることを決めたり、卒論のテーマが決まったしました。そうなってくると目的意識が生まれるので、ニッチな専門分野の講義でもココは聞いておこう!と思えます。意外な先生がRやPythonに詳しかったりするようなので、最後まで貪欲に学んでいきたいです。

 

###登録した情報工学の講義

 

- 情報英語

基本的にはTOEFL対策。前期にTOEIC対策の講義も取っていた。週に一度とは言えど、じっくり英語の勉強をできるので良い。先生は厳し目で、講義中に電子機器を扱っているのが発覚した時点で落単確定。紙とペンでじっくり英語に向き合うのも、悪くないです。情報工学の講義なのになぁ、と抵抗も感じましたが、自分は勉強内容として覚えたいことは未だに紙とペン派です。

 

- オペレーティングシステム

OSとは?またその運用とは?などなど。課題がとても難しい講義。しかし、僕が密かにリスペクトしているイケイケ大手に内定した学生エンジニアの人からオススメされたので履修することにした。最近はVirtual Boxを使って、Fedora26というOSを入れてsshできるようにしてAnsibleからWordPressの環境を構築したりした。

 

- 情報理論

2進数やベイズ確率や情報エントロピーについて学ぶっぽい。こういうアカデミックな知識をしっかり習得していかないと、今後苦労しそうなので腰を据えて勉強したいと思う。

 

LINE DEVELOPER DAY2017の感想とかメモ

テキトーに書いていきます。詳細やスライド見たい方は公式ページ見た方がいいですよ。

 

 

 

 

1.オープニングのプレゼン、昨今のLINEのについて。

CTOのPark Euivinさんによるオープニングトーク。TLで見かけた去年も来た人たちに夜と1年前より日本語が上手くなっていたらしい。笑

Euivinさん、懇親会の時に気さくに話しかけてくださいました。

 

2.クローバーの技術について。

 A会場2番目の話。クローバーの音声認識技術には日本語特有の難しさがある。アマゾンやグーグルもこの手のサービスは作っているけど、日本語特有の問題(ex:T,H,Kをはっきり発音しないなど)についてはLINEの方が強いのかも。

 

3.なぜwebトラッキングシステムがフロントエンド開発チームにより構築されたか。

これは一番真面目に聞いたので、メモをそのまま公開。

・NEWS TAB 週単位で新しい機能がついたり、コンテンツが追加されている。

・開発を速くするためにwebview

・ただのwebアプリのように構築してしまうと、オフライン時に画面表示できなくなる。

・htmlをキャッシュしている

・JS SDK

・virtualレンダリング

・Coupon book,webviewでクーポン一覧見れる

シンガポール限定のエラー、バグフィックスシンガポールGPSを使うと発生する問題だったので手元で検証できなかった

・世界中の全ての端末、全てのケースにはあらかじめ対応することができない

起こった時に対処する方法を!

・Collecting JS error log

・Dataチームと協力して大規模なエラーログ集計

・スクロールイベント、スクロール深度(どれくらいスクロールしたか)

・ニュース系のコンテンツ、トラフィック跳ね上がりやすい

・ラインアナリティクスMochigome(エラーイベントの可視化に特化したアプリ、サマーインターンの学生が大きく貢献!) official account system, machine learning色々あるけど中心にはweb tacking systemがある

 

 

4.ChatOps x LINE

多分Pythonでチャットボットを使えるよ、みたいな話。

github.com

En
 
5.LINEの新卒採用試験 ズバリ問題解説Ja


 非常に有益な情報を得られた。

6.人のブラウザでクロールする

よくわからなかったけど、話してる人が趣味を楽しそうに話していていいいなと思った。

 

本当はC HALLの最初のLTだったSwiftの環境構築とかについての話しは分かりやすかったです。Swiftも触ってみよう。

 

7.まとめ

LINE社の技術はスゴい

LINE社は非常にイケてる(イケイケを目指す身としては最も重要)

LINE社は非常にお金がある(?)

話の内容は分からないことも多かったけど、駆け出しエンジニアの僕が聞いてもスゴいって分かるくらいにスゴいコードがあった。見りゃ分かるけど、間違いなくお金かかるオシャレさだった(参加費とか取ってないしね)。バカみたいなまとめになってしまいました。笑

Ja

f:id:kousy:20170929005007j:plain

f:id:kousy:20170929005014j:plain

f:id:kousy:20170929005019j:plain


  

最後に余談、ちょまどさんがCustomVision松屋の牛丼とすき家の牛丼を見分ける機械学習のモデルを作ったそうです。

 

そのツイートを見て、すぐにヒカリエ11Fの無料カフェで同様の手法を試していたら隣の隣にちょまどさんが現れました。

様子を伺いながら、自分が席を離れる時に少しだけお話しさせて頂きました。嬉しかったす。笑

 

 

もう一つ余談、じゃんけんに勝ってWAVEもらった!!「持ってるな」ということで。笑