移転しました。

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

Perl入学式との出会い、そして中退(?)の悔い・・・

これは Perl入学式アドベントカレンダー23日目の記事です。

 

はじめに

アドベントカレンダー何か書きたいなーなんて思っていたけど、特に所属しているコミュニティもないし、技術的なネタもまだないし来年書こうと思っていました。

しかし、やはり今のプログラミングに取り組めている自分があるのは、Perl入学式のおかげなので関係者各位への感謝の念を書かずにはいられないッ!と思って書くことにしました。

しかし、公開していいのかも分からないので、ギリギリまで23日が埋まらなかったら公開させて頂こうと思います。

 

Perl入学式での思い出

僕が今年の4月のPerl入学式in沖縄に参加したのはツイッターで見かけたことがキッカケでした。

普段は大学の理学部に所属していて、プログラミングとは縁のない生活を送っていました。

そんな日々にこれまで挫折を繰り返してきたプログラミングを無料で!しかも大学で学べるチャンスがある、というのは行くしかない!という気持ちになりました。

 connpassから申し込もうと思って参加予定の人を見てみたら、大学でもツイッター上でも知っている人の名前が載っていたこともあって、すぐに参加ボタンを押しました。

 

迎えた第1回当日、滅多に行かない工学部にPerl入学式はこちら、の案内がありました。内容は環境構築とHello World!とかそんな感じだったと思います。この辺はPythonを使う講義でもやったことがあったのでラクでした。

 

しかしここで印象的だったのは、イケイケというかギークなパールモンガーや情報工学科の人たちでした。

メンバー内でも頼りにされていて某社にGithub採用されたという、いつもキャップ後ろ被りしてるCodeHexさん。めっちゃ楽しそうにAcmeモジュールを紹介していたAnaTofuZさん。何もわかっていない僕にひたすら丁寧に教えてくれたtouba_rumbaさん。同じく色々と教えてくれたステッカーいっぱいのmacで服もおしゃれなcat2kobanさん。

papix校長もグーグルハングアウトか何かでリモートで挨拶されていました。

 

勉強会が終わった後の、ピザが美味しかったこともその後継続的にPerl入学式に参加することになった理由かも知れませんw

 

そして、その次の2回目が早速所属学部の実習と被ってしまい行けませんでした。

その後3,4回目と参加していき、本当に少しですがPerlの文法はもちろんPerlコミュニティのいい感じなところも理解していきました。

正規表現はまだまだ使いこなせません。。。

 

このあたりの時期にハッカーズチャンプルーやらYAPC::Fukuokaにも参加しました。

もともとイベントが好きなのもあって、知識はなかったけど図々しく参加しました。

正直、Perlどころかプログラミングすらはじめたばかりの自分が行ったところで、技術的な話は全く分かりませんでした。その場でググったり、メモしてあとで調べたりしましてなんとかキャッチアップしました。

しかし、トークの内容は技術ネタではないものあったので得るものは大きかったです。

 

ISUCONにフルコミットする代わりに就活をしないというまささん(Masah201707)の話を聞いたのもハカチャンでした。

福岡でのYAPCの時はytnobodyさんがスピーカーでチケットが1枚余っているとのことだったので、DMして譲って頂いたりもしました。

ノベルティも貰えて嬉しかったですね。

全然貢献できてないけど、YAPC::Okinawaの実行委員にも入れて貰えました。

 

yapcjapan.org

 

そして最終回の5回目、、、!

ちょっと用事があって行けませんでした。

非常に後悔しています。

講義資料は公開されていたので自分で一通りやってみたものの、絶対最後に何か面白い話とかあっただろ!!って思ってます。

行きたかったなぁ。。。

次回からの入学式にまた参加しようかなとか思っています。Perl再入学?!w

中学校プロジェクトも始まったら、必ず参加します!

 

最後に

そして現在はまだまだど素人の初級者プログラミングやってみたマンですがいくつかの言語やフレームワークを触って、エンジニアのインターンやらセキュリティミニキャンプに行ったりできるようになりました。

2018年はPerlも使っていいものをしっかり作れるようになりたいと思います。

先の一文、非常に曖昧なですがこんな感じで終わります。

(知り合った皆さん、勝手に載せてすみません。)

 

 

セキュリティミニキャンプin沖縄の感想

先日参加したコードブルーの際に知って、その場で応募した。

www.security-camp.org

応募の際に多少技術的な知識を問われた。例えば、パケットキャプチャツールを使ったことがあるか、ある障害事例の際にどういうコマンドを使ってどのファイルを調べるか、などである。

ググって調べた知識と、WEPのパスワードを解析を昔やったことがあったので、そのことを書いたら選考には受かった。

 

1泊2日の間で合計15時間くらいの講義と演習が行われた。

内容に入る前にまず、IPAをはじめとする主催、協賛、後援して下さった方々に感謝の意を述べたいです。本当にありがとうございました。わざわざ土日を使ってメディアや様々な関係者の方々がお越しになっていました。

このような機会でなければセキュリティについて体系的、実践的に学べる機会は僕のような非情報系の学生には、まずないと思います。

講座の内容については以下の通り。

 

セキュリティ基礎

セキュリティの本質とは?また、セキュリティエンジニアの心構えについて。

 

ログ解析

あるサーバーが攻撃を受け、サービス提供の支障が生じた際にsshでログインし各種コマンドを駆使してログを解析し影響範囲やサービス停止の原因を調べるというもの。

知らないコマンドが結構あって、かなり勉強になった。ログ解析は初めてやったのだが、手順を追って、時間を絞ってログを見て、集めた情報から攻撃者の行動を解析する過程はかなり楽しかった。

 

疑似スマートホームのセキュリティ検証で学ぶIoTセキュリティ基礎

ネットワーク上に疑似的に構築されたスマートホームが用意されてました。例えば、alexaで部屋の照明やエアコンを操作できたり、部屋に飼っているゴリラにアマゾンダッシュボタンでバナナを与えたり(笑)という感じでした。

これらのIoT機器のネットワークのパケットをキャプチャして、パスワードを解析したり、ひたすら餌を与えてゴリラを巨大化させたり。非常に楽しかったです。

 

グループで考えるモノヅクリ×セキュリティ

グループワークでイノベーションと同時に起こるセキュリティ問題について議論しました。これまで日本では情報漏洩系の事案が多かったのですが、海外では最近のトレンドとしては障害系の事案が多かったそうです。海外で起こることは、日本でも起こる。つまり、障害系の対策について勉強していくといいのでは?という感じ。

ディスカッションでは自動運転車の自爆テロを防ぐにはドローンみたいな、GPS情報を利用した特定区域への侵入は不可能な機能を搭載するといいんじゃないか、なんてことを考えました。

 

セキュリティ対策演習

hardening(堅牢化)というイベントもあるそうですが、それの簡易版をやりました。与えらえた脆弱なECサイトに講師の方が攻撃を仕掛けてくるので、それをチームで対策していく。自分は初めてだったこともあり、何から手をつけていいのか分からなかった。チームに1人ハードニング経験者がいたので、とても助かった。

これも競技性があって楽しかった。講師の方はなんと大学の先輩にあたる人でした。

↓この画像は最終結果ではなく、途中経過ですが。チーム4でした。数値はECサイトの売り上げ。

f:id:kousy:20171217184349j:plain

 

とりあえずはこんな感じで締めておきます。また、細かいことは更新していきます。それでは。

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が書いててしっくりきた。そんだけ。

もっと勉強せねば。