未来永劫

メリーバッドエンドが好きです.

自己評価と他己評価

こんにちは

しょぺたんです.元気です.
無事にB4に進級をしており,無事に入院する目処も立ちました.
ほどほどに研究をし,ほどほどに体調を崩しながらも,よろしくやってます.
入院とは言ったものの,イーグルジャンプに入社をしたい気持ちも強く,「入院」か「頑張るぞい」の2択を迫られています.
そのため,現在は「イーグルジャンプの求人情報を隠し持っているであろうR社に長期的な潜入調査をしている」のが近況です.

自己評価と他己評価

企業の人事の方との面接があったり,同様に企業のエンジニアの方とも面接があったりと,結構な頻度で自己アピールをすることがあります.
実際に勤めている方々から「君は優秀だね」のような言葉をかけてもらえるのはありがたい事ですが,いただいた言葉をそのまま素直に受け止められない事は往々にしてよくある事だと思います.
特に私は自己の評価と他者から受ける評価にギャップを感じます.
企業の方に聞いたのですが,実際問題として学生エンジニアの方は「(一般的な総合職採用の面接に来る学生と比較すると)自己評価が著しく低い」らしいです.
マサカリを投げる文化があるので仕方ないのかもしれないですね.

おわり

じゃなくて

「なら一生そのギャップは埋まらないな」って思うんですけど,それだと何も解決してないので,同時に客観的に自己アピールをする方法も聞きました.

誰かから評価された実績を述べる

おそらくこれが一番(精神的に)楽なのかなと思いました.
「コンテスト入賞歴」とかは判りやすいアピールになるらしいです.
自分であれこれアピールするよりも「誰かから評価された経験」があることは能力の裏付けとして強く働くので,謙虚に「最低限これくらいは出来ます」ってのが伝えられるのかもしれない.

自分の作ったモノについて話す

これまでに自作したモノについて話されるとありがたいらしい.
理由は,「自分で作ったモノがある以上,自然とこだわったことや思い入れのある部分があるはずなので(聴く側としても)話を引き出しやすいから」だそうです.
ただし,結局は相手に伝える表現力や説明力がないと,うまく両者で話の共有ができないのでコミュ症には厳しさがあるっぽい.

結局

実体のないもの(プログラミング歴5年です とか)を話すより,実体ベースで話してなんぼの世の中みたいです.
誰かから評価を受けるためには「実体のある何か」が不可欠であり,それがスタートラインな気がしました.
同様にして,自己評価を高めるためにも,まずは「実体のある何か」を作る必要がありそうです.

現場からは以上です.
引き続きイーグルジャンプの求人情報を探そうと思います.

知識情報・図書館学類に編入して1年が経ったので良かった事をまとめる

klis13(3編)のしょぺたん(@ss_shopetan)です.

早いもので,もうすぐ編入してから1年が経ちます. ありがたい事に,以前の記事を参考にしてくださった方も多く,2016年度の3編予定の方の中にも僕が相談を受けた方で弊学類に合格した人も居ます. 今年度の新入生に会うのが楽しみです.

shopetan.hatenablog.com

僕についての詳しいプロフィールは上記の記事を参考にしてください.

さて,この記事を書く理由は,2017年度の新入生に向けた編入説明会があるため,自分の中で良かったことや悪かったことを整理したいという理由です. 実際に良かったことを3つあげたいと思います.

良かったこと

勉強の内容が大きく変化した.

僕自身は以前は高専情報工学を勉強していました. 僕がこの学類に編入したかった理由は,情報資源や知識(データ)について哲学的な勉強がしたかったという理由です. 情報工学をバリバリやっていた人間なので,比較的内部生の方に比べて開発やエンジニアリングができることが多かったです. ただ,以前までは残念ながら哲学的な部分を学ぶことはあまり多くなく,あまり抽象的な知識は持っていませんでした. そういった観点で見ると,この学類は嫌でも知的財産や知識資源の勉強や扱い方の理解をすることがMUSTになります. 図書館はまさに知識資源の集合ですね. あまり全国的に見てもこのような分野にフォーカスをあてた学類はないので編入して良かったと思っています.

フットワークが軽くなった.

筑波と秋葉原を最短で45分というスピードで繋いでくれるTXがあります. 実際は本数が限られているので1時間超かかることが多いですが,でもそれを踏まえても東京に通いやすくなったのが大きな利点です. 基本的に大きなイベントは東京でやる場合が多いですし,例えば就活などにしても東京に出向く必要があります. 今この記事を書いているのも六本木なのですが,筑波と六本木も2時間で移動できます. 地方民としては大きな利点です.

ただ,反面インターンなどでは不遇なことが多いです. 片道2時間を通える距離と判断されるケースが非常に多く,毎日往復4時間を5日間 往復で2500円必要にもかかわらず,交通費も無しで通わなければいけないケースも度々経験しています. これはある意味で仕方のないことですが,数週間に1度程度出向けるモチベはありますが毎日通うモチベは無いです.(特にお金の面が大きいです.)

人間関係が良い意味で激変した.

klisは男女比が1:1くらいの比率があります. これは普通の高専では考えられない比率です.女の子の多さに感動します. そして学類の性質上,文系の子の割合も多いです. 高専では理系以外の人と付き合いのあるケースが少なくなるので,会話が新鮮でした. 特に図書館や情報資源が好きな人も多いので,話が合うのも良かった事のの1つだと思っています. また,総合大学であるため,他の学類の方との付き合いも多くなります. 結果的に色々な方との交流が増え,自分の交友関係も広がりました.

先ほどフットワークが軽くなったという話もしましたが,東京のエンジニアイベントなどに参加することも増えたので, 都内の大学生や地方から来ている学生も勿論の事,企業のエンジニアの方などのつながりが増えました. 情報系は案外人間関係が狭いので知り合いの知り合いみたいなケースも多く,イベントに参加する度に知り合いが居るのが少し嬉しいです.

まとめ

というわけで備忘録的に良かったことを思い返してみました. 色々と不満も当然ありますが,それを持ってしても編入して良かったという思いの方が勝ります. 今年度編入試験のある方でこの学類に興味のある方は,是非3編説明会にお越しください. 悪かった事はその時にこっそり話そうと思います… 当日はプレゼンも作成するので,出来る限り公開できる形を取ろうと思います.

図書館情報学徒が作ったシステムは(大抵)危ない

この記事はklis Advent Calendar 2015 10日目の記事です.www.adventar.org

Who Are you?

shopetan.hatenablog.com

前置き

情報システムとは.大雑把に以下のような事を指すらしいです.

情報システムとは、情報を適切に保存・管理・流通するための仕組み。

情報システムとは|コンピュータシステム|information system - 意味/解説/説明/定義 : IT用語辞典

本題

さて,私達図書館情報学徒は弊学で知識資源を扱うための術であったり,システムの構築なども(ぼんやりと)学びます.
例えばですが,今年私が受講する限りでシステム構築を行った授業は以下の通り.

  • 主専攻実習
  • 知識情報演習(CJE)
  • Webプログラミング
  • DB演習,DB技術etc...

まぁ内容はまちまちで,PHPを書いてたりRubyCGIを書いてたりフレームワークを使ってたりと 結構様々な手段を学びます.

が,

お前らが作ったシステムは(大抵)危ないぞ.というお話です.

システム主専攻として目指している所

知識情報システム主専攻はどんなところ?
 知識情報システム主専攻は情報技術に注目します。インターネットに代表される情報技術の進歩により、人類はかつてない膨大な知識と情報を共有しています。この知識や情報を有効に活用するためには、効率よくあつかうための高度な技術が不可欠です。

  知識情報システム主専攻では、知識情報の分類や構造化、 Web における知識情報の提供と共有技術、多様な知識情報の表現と管理のためのデータベース技術、知識情報から有益な情報を取り出す情報検索技術、ディジタルライブラリをはじめとする知識情報システムの実装技術などを修得します。

筑波大学 情報学群 知識情報・図書館学類


とりあえず知識資源の扱い方を学んだり知識情報システムの実装技術を取得するそうです.

そもそもこのKlisで勉強すること

Klisでは一般的に,必修科目として1年次にrubyを勉強します.
この必修科目の酷さは他に譲るとして,プログラミングは1年生の半期,2年生の必修で半期程度勉強します.
その後の3年次に主専攻という枠組みで各専攻ごとの授業を受ける事になるわけです.

で,私が所属している知識情報システム主専攻なのですが,知識資源を扱う授業は確かに豊富で,図書館という枠組みを中心に授業が行われています.
しかし,システムと名がつく割に,そもそものシステム開発方法を学べたり,システムを扱う哲学的な講義などはありません.
その結果,自由課題に直面した時に黙々とCGIで何千行書いている人も居ますし,フレームワーク使って賢く開発している人も居ます.
全然出来ない人も当然居ますね.

何が言いたい

私はシステム開発を学ぶ以上,全員が何らかのフレームワークを活用して自力で作成できるレベルに水準が上がるべき と考えています.
我々は,OPACを始めとした情報検索システムや知識にまつわるシステムを作ります.
その開発に,知識資源を扱う以上,知識資源となる"データ"を守る必要が出てきます.
私たちは果たして,学内で学んだ知識のみで大切な知識を守ることが出来るでしょうか?

例えばセキュリティ

おそらく,この学類で具体的にセキュリティを学べる講義は無いと思います.
ただでさえ最近騒がれているのに,システムだけ作らせて肝心なところはカバー出来ていません.

例えば運用・保守

人に見せられるコードをかけていますか?
後で自分が見た時に,内容を説明できますか?

そこでフレームワークです.

例に挙げるのはRuby on Railsという,rubyで書けるWebアプリケーション・フレームワークです.
Railsは,大きく分けて3つの理念を持ったフレームワークです.

1. CoC(Convention over Configuration)
「設定より規約」という意味です.
開発者側で設定を考えずとも,規約として決まり事にすれば余計な手間がかからない.
コードの多様性が減るので保守や運用もし易い.


2. DRY(Don’t Repeat Yourself)
「同じ事を繰り返さない」という意味です.
複数の修正が必要なく,単一の修正で済むように設計されています.

3. REST(Representational State Transfer)
Webの設計思想の一つです.
ここは割愛します.

また,大事な理念として,レール(規約)の上を歩けば安全なシステムが作れる.
という理念があります.
早い話,Railsの決められた書き方をすれば,殆どのセキュリティ上の心配事は無くなるという意味です.

最近では,フレームワークに則った書き方をすればセキュアになるようにしようという動きが多々あります.
開発者が難しいセキュリティの事を考えずとも,使うだけで安全なアプリケーションになるように設計が行われています.
使う以外の選択肢は無いですね!(というか自信がない人ほど使って下さい.)

Railsが出来るようになるためには?

Railsは比較的重量級のフレームワークのため,Webアプリケーションまったくの初心者が作るのはオススメ出来ません.
幸い,我々は2年次にCGIで動的なページを作る事を勉強しています.
「一般的なWebアプリケーションの作成が出来るレベルに立っている」ということです.
Railsは学習コストが高いことで有名ですが,反面,多くの先駆者がいるメジャーなフレームワークのため,ドキュメントが豊富です.
また,書籍等も多く充実しております.
Railsが難しいようであれば,sinatraという軽量のフレームワークなども存在します.

以下にオススメのサイトを貼っておきます.

railstutorial.jp

www.slideshare.net
有名なチュートリアルサイトであるが,少し敷居は高い.
歩き方と合わせてどうぞ.

dotinstall.com
こちらはドットインストールさんの入門.僕はコレで覚えました.

openbook4.me
これに沿って作るだけで簡単なWebアプリケーションが作れます.
こちらは本当に分かりやすいのでおすすめです.

終わりに

自力でシステムを作るための道筋を紹介しました.
講義で習っただけの知識で作成するシステムは危ないです.
また,就職にあたっても,エンジニアとして求められるレベルは,この程度の知識を持って作れるという事がラインになっている気もします.
開発側としてシステムに触れる以上,自力で簡単なモノが作れる程度の実装力は付けておきたいですね.

2015年のまとめ

今年作ったもの,今年やってきた事をまとめる.
ブログという媒体を通してアウトプットを始めたのは今年になってから.

1月

  • 高専の卒業研究の追い込みの時期だった.
  • 情報処理学会への発表が決定しており,年明けに論文提出を求められていたので死にそうだった.
  • 朝6時半前から家を出て,夜12時過ぎに家に帰る生活をしていた.
  • 学校との往復は4~5時間掛かる. 何が言いたいか分かるか.

他にもバイトをしてました.
バイトは3つで

  1. 小学校の非常勤の先生
  2. 小~高校生への塾講師
  3. 中学生の家庭教師

月3~4万は稼げていた.
でももうこんなに忙しい思いはしたくない.

2月

  • 学内での卒論発表があった.
  • 「相互採点における能動的評価法の提案」という,教育データマイニングに関わる発表をした.
  • 卒論の提出があるので30pしないくらいの論文を書いた.
  • (蟻本を読んで)競技プログラミングを触りだす.

3月

  • 無事に単位が取れていたので晴れて卒業
  • 卒業旅行で京都に行く
  • 数日後,学会発表で京都に行く(2度目)
  • 地元の人達が飯を奢ってくれたり,門出を祝ってくれたのを覚えている.
  • 競技プログラミング,ここでDPに出会い挫折

4月

  • ITF.klisに晴れて編入
  • 千葉県南部から茨城県まで,5時間かけて原付きで走った.死ぬほど寒かった.
  • 茨城県はガソリンスタンドが少なく,また道も何もない田んぼ道だらけで,ここで死にたくないと強く願った.
  • COJTに参加が決定した.ここで俺の人生が狂いだす.
  • 主にSWのWebデザイン,Webアプリケーションを学ぶ.
  • UI/UXを意識することが増えた.

COJTというのはこんな感じの取り組みです.
強い人達が集まる強いところです.
筑波大学情報学群 組み込み技術キャンパスOJT/University of Tsukuba

5月

  • 早い段階でITFの強い人達と繋がったことで,いい意味で刺激を受けまくる.
  • 逆求人に誘われる.(また人生が狂う)
  • tiwtterのフォロワーが,入学後に200人超増える.(なんだこの大学は.)

逆求人とは,こんな感じの,企業の方が私達を指名して面接をしてくださるイベントです.www.studenthunting.com

6月

  • 逆求人に参加した.
  • 全8ターム中,7社の会社の方が指名して下さった.とてもありがたい
  • Twintterを@himktと作った.
  • 大学の学生支援サービスみたいな奴
  • セキュリティ・キャンプ2015年全国大会に受かった(今年は倍率4.3くらいだっけ?).
  • 本格的にセキュリティの勉強を始める.

f:id:shopetan:20151203171315p:plain
shopetan.hatenablog.com

7月

  • インターンの面接とかが始まる.
  • なんだかんだ4社受かったので4社に行くことにした.
  • SEゼミさんのOSSHackイベントに参加し,OSSデビューした.
  • 落し物共有サービスLPMを作った.(ありがたいことにstarが多い)

shopetan.hatenablog.com
github.com

8月

  • 地獄の2ヶ月が始まった.
  • おかげさまで休みが全く無かった.
  • Rock in Japanに参加 -> (殆ど寝れずに)30時間ハッカソン -> (寝れずに)セキュキャン参加という,休むまもなく弾丸スケジュールで進んだ.(正直一番しんどかった.)
  • B社のハッカソンは3位だった.
  • セキュキャングランプリマンになれた(ありがたい).

shopetan.hatenablog.com

9月

  • 某CA社のインターンに優勝した.
  • 優勝賞品のMacBookProが貰えました(嬉しい).
  • 某L社のインターン機械学習コンペみたいなもので優勝した.
  • しかし優勝賞品の焼き肉が予定のブッキングでいけなかった(死にたい).
  • G社で業務としてデータサイエンティストをやる.

10月

  • Memoria というJavaScriptで動く教育RPGを作った.(詳細は後日)

少し分かりにくいので,リファレンス等後日作成します.(むしろこっちにstar欲しい)

  • Intel Edisonに触りだす(進行中).
  • 某イベントでまた京都に行く(3度目)
  • Qiitaを始める.
  • 技術系の記事はこちらに書こうと思った.
  • 4記事で200ストックされているので結構嬉しい.
  • PyConJP,OSCなどイベント盛りだくさんだった.
  • Goも触りだす.


github.com
qiita.com

11月

  • 研究室配属に就活の陰を見る.
  • Asobeatというプロジェクトを始めた.
  • Edisonを活用したウェアラブルデバイスで,新しい"アソビ"を提供します.(1月末までにする予定です.)
  • JPHacksという国内最大級の学生ハッカソンに参加する.
  • KnowlectというWebサービスを作った.

github.com
jphacks.xn--7wu811h.jp
github.com

12月

  • ネットワークの基礎知識が足りなすぎるため,そろそろ勉強しようと思っている.
  • セキュキャンアワードというものがあるらしい,出たいので1ヶ月程度研究するかもしれない.

www.security-camp.org

まとめ

1年でこれだけやっていたらしい.
Webアプリケーションを真剣に勉強しだしたのは今年始めてです.
Androidも初めて書いたし開発もしまくりました.
人間やればどこまでも出来るようになるみたいです.
後はstarが欲しいです.

機械学習をあまり触らない年だったので,来年はもっと触れ合いたいですね.
とりあえず,来年度もよろしくお願いします.

Mac OSX でPythonのScrapyをインストールする時に躓いた事

こちらにある,Scrapyのインストールガイドを参考にして素直にpip installを実行したらハマった.
Installation guide — Scrapy 1.0.3 documentation

MacBook-Pro-9:$  pip install scrapy
Collecting scrapy
  Downloading Scrapy-1.0.3.tar.gz (948kB)
    100% |████████████████████████████████| 950kB 296kB/s 
Collecting Twisted>=10.0.0 (from scrapy)
  Downloading Twisted-15.4.0.tar.bz2 (3.1MB)
    100% |████████████████████████████████| 3.1MB 108kB/s 
Collecting w3lib>=1.8.0 (from scrapy)
  Downloading w3lib-1.12.0-py2.py3-none-any.whl
Collecting queuelib (from scrapy)
  Downloading queuelib-1.4.2-py2.py3-none-any.whl
Collecting lxml (from scrapy)
  Downloading lxml-3.4.4.tar.gz (3.5MB)
    100% |████████████████████████████████| 3.5MB 109kB/s 
Collecting pyOpenSSL (from scrapy)
  Downloading pyOpenSSL-0.15.1-py2.py3-none-any.whl (102kB)
    100% |████████████████████████████████| 106kB 108kB/s 
Collecting cssselect>=0.9 (from scrapy)
  Downloading cssselect-0.9.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python3.4/site-packages (from scrapy)
Collecting service-identity (from scrapy)
  Downloading service_identity-14.0.0-py2.py3-none-any.whl
Collecting zope.interface>=4.0.2 (from Twisted>=10.0.0->scrapy)
  Downloading zope.interface-4.1.3.tar.gz (141kB)
    100% |████████████████████████████████| 143kB 648kB/s 
Collecting cryptography>=0.7 (from pyOpenSSL->scrapy)
  Downloading cryptography-1.0.2.tar.gz (332kB)
    100% |████████████████████████████████| 335kB 521kB/s 
Collecting characteristic>=14.0.0 (from service-identity->scrapy)
  Downloading characteristic-14.3.0-py2.py3-none-any.whl
Collecting pyasn1 (from service-identity->scrapy)
  Downloading pyasn1-0.1.9-py2.py3-none-any.whl
Collecting pyasn1-modules (from service-identity->scrapy)
  Downloading pyasn1_modules-0.0.8-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python3.4/site-packages/setuptools-15.2-py3.4.egg (from zope.interface>=4.0.2->Twisted>=10.0.0->scrapy)
Collecting idna>=2.0 (from cryptography>=0.7->pyOpenSSL->scrapy)
  Downloading idna-2.0-py2.py3-none-any.whl (61kB)
    100% |████████████████████████████████| 61kB 634kB/s 
Collecting cffi>=1.1.0 (from cryptography>=0.7->pyOpenSSL->scrapy)
  Downloading cffi-1.2.1.tar.gz (335kB)
    100% |████████████████████████████████| 335kB 289kB/s 
    Complete output from command python setup.py egg_info:
    cc1: error: unrecognized command line option "-Wno-unused-result"
    cc1: error: unrecognized command line option "-Wno-unused-result"
    
        No working compiler found, or bogus compiler options
        passed to the compiler from Python's distutils module.
        See the error messages above.
        (If they are about -mno-fused-madd and you are on OS/X 10.8,
        see http://stackoverflow.com/questions/22313407/ .)
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/pw/y9z4j4y133v6sf6b8_z906km0000gn/T/pip-build-djas2rha/cffi

どうやらcffiをdownloadした直後に死んでいる.


はじめは,

    cc1: error: unrecognized command line option "-Wno-unused-result"

この手のエラーが出ていたのでgccの問題かな?と思いgccのバージョンを確認していた.

MacBook-Pro-9:$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix

う〜んLLVMの問題かな…と悩んでいたが同様のエラーは見つからなかった.

再びインストールガイドを確認したところ,pythonの推奨系列は2系列だったことを確認.

MacBook-Pro-9:$ pip --version
pip 7.1.2 from /usr/local/lib/python3.4/site-packages (python 3.4)

どうやらデフォルトが3系列になっていたらしい…

これを

MacBook-Pro-9:$ pip2.7 install scrapy

と明示的に2系列を使用するとしたうえでインストールを行うと無事にインストールできた.

Collecting scrapy
  Downloading Scrapy-1.0.3-py2-none-any.whl (290kB)
    100% |████████████████████████████████| 294kB 639kB/s 
Collecting cssselect>=0.9 (from scrapy)
  Using cached cssselect-0.9.1.tar.gz
Collecting queuelib (from scrapy)
  Using cached queuelib-1.4.2-py2.py3-none-any.whl
Collecting pyOpenSSL (from scrapy)
  Using cached pyOpenSSL-0.15.1-py2.py3-none-any.whl
Collecting w3lib>=1.8.0 (from scrapy)
  Using cached w3lib-1.12.0-py2.py3-none-any.whl
Collecting lxml (from scrapy)
  Using cached lxml-3.4.4.tar.gz
Collecting Twisted>=10.0.0 (from scrapy)
  Using cached Twisted-15.4.0.tar.bz2
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python2.7/site-packages (from scrapy)
Collecting service-identity (from scrapy)
  Using cached service_identity-14.0.0-py2.py3-none-any.whl
Collecting cryptography>=0.7 (from pyOpenSSL->scrapy)
  Using cached cryptography-1.0.2.tar.gz
Collecting zope.interface>=3.6.0 (from Twisted>=10.0.0->scrapy)
  Using cached zope.interface-4.1.3.tar.gz
Collecting characteristic>=14.0.0 (from service-identity->scrapy)
  Using cached characteristic-14.3.0-py2.py3-none-any.whl
Collecting pyasn1-modules (from service-identity->scrapy)
  Using cached pyasn1_modules-0.0.8-py2.py3-none-any.whl
Collecting pyasn1 (from service-identity->scrapy)
  Using cached pyasn1-0.1.9-py2.py3-none-any.whl
Collecting idna>=2.0 (from cryptography>=0.7->pyOpenSSL->scrapy)
  Using cached idna-2.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg (from cryptography>=0.7->pyOpenSSL->scrapy)
Collecting enum34 (from cryptography>=0.7->pyOpenSSL->scrapy)
  Downloading enum34-1.0.4.tar.gz
Collecting ipaddress (from cryptography>=0.7->pyOpenSSL->scrapy)
  Downloading ipaddress-1.0.14-py27-none-any.whl
Collecting cffi>=1.1.0 (from cryptography>=0.7->pyOpenSSL->scrapy)
  Using cached cffi-1.2.1.tar.gz
Collecting pycparser (from cffi>=1.1.0->cryptography>=0.7->pyOpenSSL->scrapy)
  Downloading pycparser-2.14.tar.gz (223kB)
    100% |████████████████████████████████| 225kB 145kB/s 
Installing collected packages: cssselect, queuelib, idna, pyasn1, enum34, ipaddress, pycparser, cffi, cryptography, pyOpenSSL, w3lib, lxml, zope.interface, Twisted, characteristic, pyasn1-modules, service-identity, scrapy
  Running setup.py install for cssselect
  Running setup.py install for enum34
  Running setup.py install for pycparser
  Running setup.py install for cffi
  Running setup.py install for cryptography
  Running setup.py install for lxml
  Running setup.py install for zope.interface
  Running setup.py install for Twisted
Successfully installed Twisted-15.4.0 cffi-1.2.1 characteristic-14.3.0 cryptography-1.0.2 cssselect-0.9.1 enum34-1.0.4 idna-2.0 ipaddress-1.0.14 lxml-3.4.4 pyOpenSSL-0.15.1 pyasn1-0.1.9 pyasn1-modules-0.0.8 pycparser-2.14 queuelib-1.4.2 scrapy-1.0.3 service-identity-14.0.0 w3lib-1.12.0 zope.interface-4.1.3

みなさまも推奨バージョンにはご注意を…

ITベンチャー4社のインターンシップに参加しました

久しぶりに全く遊ばない夏休みを過ごしました.

セキュリティ・キャンプ

夏休み一発目はセキュキャンでした.shopetan.hatenablog.com

セキュリティ・キャンプは本当に価値のあるイベントだと思います.
参加者として,同じ志を持った他の参加者と出会えるという点,
講師の先生方やその手のプロの方々から直接勉強できるという点などがサクッと挙げられます.
自分のやってきた事に対して,これからどのようにキャリアを積めばよいかなどの社会的な勉強も出来ました.
興味関心が広がるので,来年度参加したいと思ってる人は是非参加してみてください.(と言っても例年高倍率なのだけれども)



他には,今年はなんだかんだあり,結局4社もの企業にお世話になりました.
株式会社サイバーエージェントさん,
株式会社ベーシックさん,
株式会社リブセンスさん,
株式会社ぐるなびさんの4社です.

前の2社ではエンジニアとして,後の2社ではエンジニア/データサイエンティスト枠として参加しました.
後者の2社さんでは生データを触ったので詳しいお話は出来ませんが,それぞれの感想を話したいと思います.

サイバーエージェント

shopetan.hatenablog.com

1つはサイバーエージェントさんですね,生まれて初めてネイティブアプリケーション書いたのですが刺激的でした.
実務期間は約2週間弱,エンジニア2人,デザイナー1人の3人チームでした.
また,環境も良かったです,サポート体制がとんでもなかったです.
今秋にもサーバサイドのコンペを開催するようです.
書類選考のみ(?)なので,興味がある方は私と一緒に参加しませんか!(学科学年不問です.)www.cyberagent.co.jp

ベーシック

ベーシックさんではハッカソン形式で超短期間でRuby on Railsを活用したWebアプリケーションを開発しました.
チームは3人で行いました.
結果としては3位という微妙な順位だったんですが,楽しむことが出来ました.
環境が良く,お寿司食べたりレッドブル飲んだりしながらガリガリ書いた思い出です.
社員さんのサポートも厚く,チャレンジ精神があればやり切る事ができると思います.

リブセンス

リブセンスでは,実際の業務プロジェクトにジョインし,プロジェクト内の問題解決を行うという形式でした.
期間は1週間でした.
3人チームで行い,1人がWebアプリケーション制作,1人がデータ加工やアプリケーション制作のお手伝い,
僕はエンジニア兼データサイエンティストとして生データを解析してある推定をするための手法検討や精度向上,サーバサイドのAPI部分の実装を行いました.
データ解析の推定精度は1位でした.
椅子が気持ちよかったです.そして最新のMBP15inchですね.エンジニアはデスクワークが多いので環境が良いとウキウキします.

ぐるなび

こちらは直接データソリューショングループにジョインし,実務相当の事を任せて頂けました.
実際の企業のビッグデータを使ってデータ解析,予測や推定などを1人で行いました.
期間は2週間でした.
このインターンは,とあるエンジニアイベントでたまたまご縁があり,引き抜かれる形で参加が実現しました.
直接開発グループにて受け入れをするのは初めてという事をお伺いしました.
業務の内容も新卒には任せないようなものにチャレンジして良いとの事で,ヘビーな内容の業務に従事しました.
手厚いサポートで,本当に社内のグループの皆様にはお世話になりました.

総括して自分のこと

この夏休みの2ヶ月で,やったことは以下のとおり.

  • セキュリティ
  • ネイティブアプリケーションエンジニア
  • フロントエンドエンジニア
  • サーバサイドエンジニア
  • データサイエンティスト

お前のやりたい事なんだよっていうね
やりたいことは,データマイニング系(サーバサイドのAPI作るのでも有り),セキュリティ系の2つです.
ただ,学生が実際に会社で行う業務に参加できる機会は中々無いので,あらゆる分野で万遍なく戦えたのは良い経験になりました.
これを期にリモートで出来る業務があれば,是非IT企業でアルバイトしたいです.
3年次編入なので単位習得が忙しい&地方なので都会に出るのが大変&しかも今年はあるプロジェクトに参加しており,安定して入れる時間がない というのがネックです.
ということで,データマイニングやセキュリティ系などのお仕事がありましたら超待遇で雇ってください(ひどい話だ).

情報系を学びたい学生は高専に進学すべきか?

高専の情報系出身者が,あくまで「高専全体」ではなく,「高専の情報系」という限られた観点のみから話をする.


世間一般的に高専の認知度はそこまで高くない.
今まで自分自身も,自己紹介で「高専生です.」と名乗ると周囲の友人や普通の大人からは「専門?」と聞き返されるのが頻繁にあった.
しかし,世間一般の認知が低いからと言って,大学へ進学出来ないという事も無ければ就職が出来ないという事も全くない.
現に自分も,高専の情報系を卒業し,今は大学に編入している.


www.nikkan.co.jp
最近ではこんなニュースも話題になった.


少し話がそれるが,
高専では,就職はワイルドカードを使っていると言っても過言でない.
これはおそらく殆どの高専がそうであり,高専の卒業者は大手のメーカに勤めていたり,大手のインフラ系に勤めているケースが少なくない.
また,情報系に限った話ではなく,これは一般的な高専生の就職先のケースとして挙げられるものである.
(しかし,「安く雇える即戦力」として扱われるケースも多いと聞く.この辺りの本当の実態はよく分からない.)



本題に戻る.
最近,「情報系をやりたいので高専に入りたい.」という相談を中学生やその保護者さんから受ける事があった.
この場では,中学生が安易に情報系に道を絞ってしまう危険性と,社会的な「情報系の」高専生の評価という2つの観点から進学すべきか否かを考えたい.


情報系を学びたいという中学生でも,大きく分けて3パターンが存在すると思っている.

1. 「ぼんやりと情報系に興味がある」という方
2. 「いずれ情報系を学びたいと思っており,大学進学後に学ぶよりも高専で学んだ方が3年早く得できるのでは」という方
3. 「バリバリプログラムが書ける猛者達が集まっているんだろう…俺はここでやっていけるのだろうか…」と武者震いしている方

「ぼんやりと情報系に興味がある」という方

このパターンが正直一番危険だと思っている.
下手な事は言わないのでやめた方が良い.
学科にも寄るだろうが,大体の高専は1年にしてプログラミングの実習が始まる.
1年生,2年生にして大体のプログラムが書けるようなカリキュラムになっているが,このパターンの子は低学年にして挫折する事が多いと思う.
「そもそも自分はプログラムを書くのに向いていない」と感じる子が低学年にして大多数を占めていた.
例えば何かを制作する自由課題が出た時に,この向き不向きは顕著に表れる.
向いている子・強い興味関心があった子の方が上手く結果を出せるのは当然であり,何となく興味があって進学した子は強い嫌悪感を抱いて課題に取り組むことが多い.
また,この手の課題は低学年に始まり,卒業するまで何らかの制作は行い続ける必要がある.
興味を失くしてしまった子は制作するのも他人任せであったり,嫌々取り組んでいる子も少なくなかった.

これはあくまで経験であるが,卒業時までに情報系に強い興味関心を持って取り組んでいたのは40人中10人にも満たなかったと思う.
ぼんやりとした興味関心が,強い興味関心に変わるのは,環境に加えて自分自身が能動的に取り組む必要があるので博打的要素が強い.
普通高校に進学してから,自分自身でその分野を調べ,それでも更に興味が湧くようであれば大学からでも遅くないと思っている.

「いずれ情報系を学びたいと思っており,大学進学後に学ぶよりも高専で学んだ方が3年早く得できるのでは」という方

このパターンの子は是非高専に来て勉強すべきだと思う.
情報系を学びたいと考えている以上,何かしら情報系に興味があるはずなので,その興味関心は高専に進学すればきっと広がると思う.

一つ注意すべきパターンの子が「自分でゲームを作りたい」という理由で高専に進学してくる子だ.(今こそまるで興味が無くなってしまったが,当時はそうだった.)
高専オープンキャンパスなどで先輩が作った凄いゲームを見て「カッケ―!」と思って進学する子は要注意.
授業でゲームは作らない.
大体作っている人は能動的に,あくまで自主的に作っている人であり,「授業でゲーム作りたい」という受動的な考えだと入ってからギャップに後悔する.
しかし,同じような志を持って高専に進学してくる人は何故か多い.
高専はそういった観点から観ると,人生の早い時期に同じ志を持つ仲間と出会えるというメリットもあるので良いと思う.
また,情報系に興味がある以上,何かしらの他の情報分野に使える技術は学べる.
ゲームは作れなくとも,ゲームを作る為の基礎は理論的に学ぶことができると思っている.

「バリバリプログラムが書ける猛者達が集まっているんだろう…俺はここでやっていけるのだろうか…」と武者震いしている方

そんな期待はしない方が良い.
大体の人は入学して初めてプログラミングをする子が多いので,そんな強い人は全体の1割未満と考えてよい.
同じ猛者を求める人は,高専プロコンに参加するか,ロボコンに参加すると良いと思う.
また,最近ではIT系の企業がエンジニアとしてアルバイトを雇ってくれるケースも多い.そういったコミュニティから仲間を作れば不満は感じにくいのではないだろうか.
(それでも先述したように,同じクラス内で能動的に取り組む人はせいぜい10人程度と考えてよいので,クラスでの不満は募るかもしれない.これは仕方ない.)

高専の授業は,出来る人に足を揃えず,出来ない人に足を揃えて行う授業が殆どだ.(それでも留年率は5年間で1クラス8人が消えると考えてよい 厳しい世界)
そのような環境の中で,出来る人が授業に対して満足できることは少ないかもしれない.
しかし,何故か出来る人に限って留年する率が高いのも事実である.
自分が見てきた,聞いてきた殆どのケースは,「自分のやりたい事に没頭しすぎて授業に出ない/テスト勉強をしない」ために留年するようだ.
普通高校でも大学に進学すれば情報系の勉強は出来るうえ,早い段階で闇落ちするよりは高専に進学しないで適度な束縛の中で勉強をした方が親孝行かもしれない.

ただ,これは極端なケースであり,実際に優秀で,能動的に勉強をし,かつ自分の趣味のプログラミングも両立して行っている人も存在した.
高専は,普通高校と比較して比べ物にならないくらい自由なので,自由をはき違えずに有効活用すればきっと高専生活は良いものになるのではないだろうか.


社会的な評価のこと

IT系に限っては高専の情報系出身の学生の評価は高いと思う.
IPA主催のセキュリティキャンプでの関わりをはじめ,今年は計4社インターンに参加したが,どの会社でも高専生の評価は高かった.
自虐的な高専生もよく見るが,このような評価にはもっと自信を持った方が良いと思う.
(その分期待も大きいので,しっかり応えられる人間にならねば とも感じた.)

また,大学的にも高専出身の学生の評価は高い様に感じる.
大学に関しては,色々な大学の話を聞く限り,内部生よりも編入生の方が出来る割合が大きいという話を頻繁に耳にする.
学部2年の年齢で殆どの高専生が卒業論文に着手しており,そういった意味での専門性も高いと感じる.
(他の内部生より始めるのが早いのだから当たり前といえば当たり前かもしれない. 中学生にして高専に入る覚悟を持っているのだから当たり前と言わずに評価されるべきとも思う.)


自分のこと

私も高専出身であり,中学生の頃は2番目のパターンに該当している人物であった.
しかし,早々に情報系の分野に挫折し,高専が嫌になっていた時期もあった.
結果的に今は好きな学問を見つけ,それを追求しようと日々取り組んでいる.
自分自身が高専1年生に戻るとしたら,「能動的に,色々な事に興味を持ってほしい」.
学問である以上,何かしらの興味があれば,そこから爆発的に成長するケースも少なくない.
結局,自分が本当に興味がある事に出会ったのは高専4年になってからであった.
高専の先生方は親身に相談に乗ってくださるし,友人も皆良い人達だった.
もう戻りたいとも思わないが,高専という環境下で情報系を学べたのは本当に良かったと感じている.
高専は低学年と高学年で印象が変わるところだと思う.
より専門性が問われるのは高学年になってからなので,どれだけ低学年の間に色々な事に興味を持てるかが重要だと本当に感じている.


色々なご意見お待ちしております.