情報系大学院生のブログ

貴重な経験を忘れないようにブログを書いています。よければ見ていってください!まめな性格ではないので、投稿日と実際の日は基本ずれまくります。

高専生がシンガポールに短期留学したレポート

f:id:teruto725:20201110213356j:plain

NYPでの最終プレゼン後の集合写真

あらまし

学校のプログラムでシンガポールNYP( https://www.nyp.edu.sg/ )に1か月間の短期留学に行ってきた。そこで得た知見や経験についてまとめる。

自分の英語の実力

当然高専生なので大したことはない。TOEICが595点だったので低いわけではないが高いわけでもない。

やったこと

シンガポールでは学校の寮に宿泊し、そこから学校に通っていた。平日の9時~18時は学校で与えられたプログラムに取り組み、休日はシンガポール観光をした。

学校では、朝一で先生から英語で今日やることの説明を受け、あとは研究室でひたすらパソコンに向かうという感じだった。研究室は学生は少なく、向こうの学生と会話する機会は少なかった。

休日では同じプログラム参加生とシンガポール観光をした。メンバーの一人がシンガポール人の友達を持っていたため、その子と一緒に観光する機会もあり、こちらではそこそこ英語に触れた。

最後に自分のプロジェクトワークについて先生方の前で発表を行い、帰国した。

 

ぶっちゃけ英語喋れた?

かなりきつかった。シンガポール人がしゃべる英語はシングリッシュといってやや癖がありシンプルに聞き取りづらい。特に先生から説明を受けているときは専門的な単語も多くきつかった。良かったのは先生がペンと紙を使いながら説明してくれたこと。それでなんとか理解できた。

 

よかったこと

このプログラムに参加してよかったことは英語学習のモチベーションがかなり高まったことである。実際帰ってきてから猛勉強していまはTOEIC695点まで点が伸びた。

英語の勉強方法はまた他の記事でかくつもり。かけるほど点数高くないのでもうちょっと高くなってから

あと、多分これが一番大事だけど普通に楽しかった。土日は毎日遊びにでかけた。いろんな美味しいものを食べたし、これまでにないものをいっぱい見た。友達が一緒だったのはでかかったかもだけど。

 

悪かったこと

この時期のインターンを逃したくらい。

まとめ

行くか迷っているのなら行くべきだとおすすめする。英語のモチベーションになるし、あと普通に楽しい。

ただ他にやりたいことがあるのならそれは天秤にかけるべき。決して留学したから英語力が上がるわけではない。

 

鍵は登録しているのにpermission deniedされる(github)

鍵は作成しているのにgit clone や git pull しようとするとpermission denied (publickey)と返される。

以下の2つのコマンドを打つことで解決。

$ eval "$(ssh-agent -s)"

$ ssh-add ~/.ssh/id_rsa_github

 

ただなんか毎回打たないといけない。なんでかは分からない。

 

 

すっきりわかるJAVA入門を読んで

すっきりわかるJAVA入門を読んで

自分の研究分野がオブジェクト指向なのにコードがうまく書けない、きれいな設計ができないという危機的な状況だった。友達との雑談でその話になったときこの本を紹介してくれたのでこの本を読むことにした。得た知見をいかにまとめることにする。

 

オブジェクト指向の面白さ

オブジェクト指向の本質はオブジェクトを作成することで仮想世界を形成するところにあると著者はいう。ここでいうオブジェクトとは作成したいシステムを形成する物体であったり、人間であったり、概念である。つまりそれらをプログラマは1つずつ生成することでシステムを作るそれがオブジェクト指向である。著者曰く、オブジェクト指向においてプログラマは創造神なのである。ここにオブジェクト指向の面白さがあると著者は述べる。

 

オブジェクト指向のポイント

著者はオブジェクト指向の一番のポイントとして「現実世界をマネするべし」と述べている。私たち人間が慣れ親しみよく把握している現実世界をマネして作られたプログラムもまた、私たち人間にとって把握しやすいものだからである。

 

新たな知見

  • フィールドにアクセスする際は必ずthisを付けること
  • インスタンスを生成したクラス型の変数には本当は配列と同じで先頭アドレスが格納されている
  • 複数コンストラクタを作成した際、一方のコンストラクタからもう一方のコンストラクタを生成するにはthisを使う。例えばcon("name"){ とcon("name","age"){  があったときcon("name"){内でthis(name,19);と書くことで2つ目のコンストラクタを実行することができる。
  • クラスが持つstatic変数はクラスを宣言していない状態でも代入することができるる。Hero.money = 100とか
  • staticはstatic宣言したものがクラスに属するようになるイメージ。クラス名.static宣言したものでインスタンスなしに呼び出せる。ただしstaticメソッド内で非staticのフィールドなどは使用できないので注意。何に使うかはピンとこない。
  • メソッドはすべてpublicフィールドはすべてprivate
  • setterでアクセス制限することができる

 

  • 抽象クラスは未来への知見、新しいクラス図を作るときにextendsする
  • 抽象クラスではabstractをうまく使う。abstractを付けることで子クラスで必ず実装しなければならなくなる。
  • 抽象クラスの中でもフィールドを持たないものをinterfaceという
  • interfaceのメソッドは基本すべて未定、つまりこいつを継承するクラスにはこういう機能(メソッド)を付けておけ!というイメージ
  • interfaceのメソッドは未定なのでinterfaceを多重継承することは可能
  • interfaceを継承するときはinplementsだがinterfaceでinterfaceを継承するときはextendsなので注意

 

インターンに落ちたレポート

あらまし

もともとプログラミング学習サイトpaizaに登録していた。

そこで、「企業があなたのことを気になっています」という文章とともにインターンの広告が届いた。

夏休みに周りがIT企業にインターンに行く中、自分はインターンに行けておらず焦りを抱えていたところであり、この広告に興味を持った。

調べてみると、インターン先はパーソルキャリアという大企業であり、インターン内容も充実したものだったので、いい経験になるだろうと考え応募した。

結果

選考という形でビデオチャットを介して面接が行われた。

結果として落ちた。

自信があった分、結構へこんだ。というか面接をなめていた。

良かった点

技術力のアピールはできたと思う。面接官の方も、会話の中で「それだけ技術力があれば...」とも言ってくれていたし、技術力はこの1年間コツコツ頑張ってきたことだったので、そこら辺の大学生には負けない自信があった。

あと、受け答えはしっかりできていたと思う。これは基本的で当たり前なことではあるが、自分は人見知りが強く、上がってしまうことが時々ある。しかし、専攻科に入ってプレゼンやその質疑応答の経験が急激に増えたからか落ち着いて回答することができた。

悪かった点

面接での問いはこれまでに何をやってきたかつまり経験を問うものと、問題解決能力や自身の考えなど思考力を問うものに分かれる。それぞれについて分けて考える。

前者においては、アクティブな活動が少なかったと考える。~を勉強して~を作りましたということは言えたが、それをどこかに発表しましたか?と聞かれたとき満足な回答を用意することができなかった。この質問の意図としてはプロコンとかには参加しているよねということであるわけであり、その経験が求められるということである。

後者においては、単純にうまく答えることができなかった。原因としては練習不足、ただそれだけである。「何か課題をあげてください。」「その解決方法を提案してください。」このような問いは進学時の面接では問われにくいものである。よって想定しておらず結果として満足な答えを返すことができなかった。

まとめ

パーソルキャリアのインターンを受けた結果落ちた。

社会の厳しさを実感した。

このままではだめだとも思えた。

決してだらけているわけではないが、自身の成長・活動スピードでは就職時、会社が求めるものに追いつかないのである。

これに気付けたというのが今回のインターン面接の大きな収穫である。

これを踏まえて今後どうするか

1つ目は悪かった点を改良する。プロコンかビジコンかに参加すること。アクティブな学生になる。

2つ目はよかった点をさらに伸ばす。学習結果をものとして残すことでさらに技術力でアピールできるようになる。

 

  

 

 

 

 

ブラウザ英単語帳作ってみた!

ブラウザ英単語帳作ってみた

f:id:teruto725:20190416160137p:plain

単語帳タイトル画面


英単語帳を作成したのでここに書き込もうと思う。

ブラウザ英単語帳の紹介

URLにアクセスするだけで使える!便利!

URL:http://teruto725.php.xdomain.jp/tango/menu.php

英単語の意味とスペルを登録し、それを単語帳形式で復習するどこにでもありそうな単語帳サイト。英単語帳ってアプリとかは多いけど、ブラウザ版はかなり少ないので希少価値が結構あるんじゃねと思っている。

日本語→英語、英語→日本語どちらも対応している。日本語→英語は直接スペルを入力する形式で、英語→日本語はボタンを押すと日本語が表示され正解していたらOKボタン、不正解ならBADボタンを押す形式になっている。

セールスポイントとしてはこんな感じ

  • ブラウザ版なのでどこでもどんなデバイスでも単語の復習ができる。つまりPCで単語登録してスマホで復習とかできる。
  • 出題される単語は過去のユーザの学習データから最適な単語を類推してくれる。
  • 登録が簡単。(ログイン名とパスワード決めるだけ)

初めてwebアプリケーション作ったからあんまり機能を付ける余裕がなかった。

ただ単語類推システムにはかなり時間を注いだし結構自信がある。

f:id:teruto725:20190416160334p:plain

復習画面

 

プログラムの話

言語はhtml,css,php,mysqlを用いた。

webアプリケーションは初体験だったがなんせ4つもの言語を使い分けなければいけないので面倒だった。

単語類推システムはなかなかの傑作(2回目)

github:https://github.com/teruto725/browser-wordbook

単語類推システムの仕組み

各単語には連続正解数と単語難易度が定義される。単語難易度、連続正解数、ともに初期値は1である。

単語をユーザが間違えると単語難易度と連続正解数が以下の法則に従って更新される。

連続正解数から説明する。連続正解数はその名の通り連続で何回正解もしくは不正解しているかを表す。連続正解なら-の値、連続不正解なら+の値になってる。例えば連続正解数が-4なら4回連続で正解しており、2なら2回連続で不正解であるということがわかる。

次に単語難易度について説明する。単語難易度は以下の式によって変更される。

正解時 difficult = difficult - (2 * count - 1)

不正解時 difficult = difficult - ( 2 * count + 1 )

プログラムは前回出題した単語と異なる単語難易度が最も高い単語を出題する。

これらの法則によって、ユーザが一度単語を間違えると1問あいて再度その単語が出題される。さらに単語難易度は連続正解数*2の値で加算されていくため一度間違えてしまうと連続正解数の値がリセットされ、ほかの問題よりも優先的に出題される仕組みになっている。

 

感想と今後への知見

phpは結構しんどい。初めはincludeを知らなかったのでコードクローンだらけだった。やっぱりIDEになれてしまっているとこのような中規模プログラムを便利なGUIなしに開発するのは苦に感じる。さらにphpはサーバサイドのプログラミング言語であり、フロントサイドは結局css htmlである。よってphpでhtmlをprintoutするという作業であるため、なんか2度手間な気がして気持ち悪い。あと、サーバサイドという性質のせいでphpでできないことも多い。php開発をするならjavascriptの習得が必須だと感じた。

データベースはどこからでもアクセスできるし、構造をきれいにしないと使えないようになっている分かなり便利だと感じた。

次はrubyをやる。

奥田英朗「イン・ザ・プール」を読んで

奥田英朗イン・ザ・プール」を読んで

f:id:teruto725:20190303123606j:plain

in the pool

あらすじ

異常な精神科医が重度の精神病患者を診断するとなぜか病状が回復するという癖の強い短編集。

見どころ

この本の面白いところは精神科医である伊良部の異常性にあるだろう。読者からしたら診療に訪れる精神病患者よりも圧倒的に伊良部のほうが異常に感じるのであり、実際その通りであろう。ただ結果として伊良部の自己中心的な行動に巻き込まれた患者は疾患を改善することができる。

なぜ精神病患者は病状が回復するのか?

これで本当に良かったのか?

感想

なぜ精神病患者は病状が回復するのか?

伊良部は患者に対して助言を行うが明らかに的外れであるならまだしも、病状を促進させるものが多い。伊良部が反面教師的役割を担っていると考えるにはやや短絡的である。

本作に出てくる精神病患者は一見バラバラの疾患を抱えているように見えるが、どの患者においても「極度に何かに固執している」という共通点があると感じる。

例えば、友好関係、他人からの評価、ほかのやつとは違うという優越感、といくつか書き出してみたがそんなこともないかもしれない。この理論ではたばこ依存症患者や、極度の心配性患者についてはいまいち合致するものがないからである。

それぞれの患者が改善に至った原因については理解できる。なぜならそれぞれの精神病患者が自分の疾患が改善した事件について理解しているからである。ただこの作品の不可解さはその事件を起こすまでの伊良部の行動である。彼の行動の原理は自分が快楽を得るための行動であり患者のためではないことは明らかではあるが断言するにはその結果を見れば厳しいところである。

 

時には自己中心的に生きることが精神の安定につながるのだろう。そんな風に感じた。

 

終わり良ければすべて良し

 

貴志雄介「新世界より」を読んで

貴志祐介新世界より」を読んで

 

f:id:teruto725:20190217152436p:plain

sinsekaiyori


あらすじ

舞台は1000年後の日本のとある町神栖66町、周囲を八丁標で囲われたこの街には3000人ほどの超能力を持った人々が暮らしていた。その町に生まれた主人公「早希」は5人の友人とともに神栖66町の歴史の成り立ちと町が抱える闇を知ってしまう。知ってはいけないものを知ってしまった5人を中心にかりそめの平和が崩れ始める。

 

見どころ

一番の見どころはやはり細やかに考え抜かれた舞台設定にあるでしょう。もし一部の人間が超能力を持ってしまったら、という疑問から始まるこの1000年の歴史には誰しもが納得するようなリアルさがあふれ出ています。

また、無数の触手を持つミノシロ、人間並みの知能を持ったバケネズミ、牛に寄生するフクロウシなど特徴的な生物が細かに描かれており独特の世界観を演出しています。

さらに、秘密を知ってしまった早希達5人のそれぞれのその後の選択や、彼女らに対する大人たちの対応、また自分たちの世の中を夢見るバケネズミたちの思惑、だれもが自分たちの正義、大義を貫き、互いに衝突する様は読者を悩ませること間違いなしです。

感想

終わり方が非常に良かった。

様々な悲劇を潜り抜け早希は成長し、管理される側から、村人を管理する側へと回った。その後、早希はいくつかの制度の改革を行ったが悲劇を生んだバケネズミ、不浄猫、悪鬼や業魔の問題などは依然と残っており有効な対策が見つけられずにいる状態で物語は幕を閉じた。特に早希の親友を殺し、彼女自身もあれだけの嫌悪感を持っていた不浄猫を残すというのはもどかしいものを感じた。どうすれば彼女ら人類は救われるのか、読み終わった後もしばらく考えさせられる作品だった。