ないぱかの記録

ないぱかからあるぱかになれるか

一人で初めて初心者向け勉強会に行ってみたら全く付いていけなかった話。

先日、初めて勉強会というものに参加してきました。
参加させていただいたのは、『【勉強会】【初心者向け】外部ライブラリを一切使わずサーバーと通信するiOSアプリを作ってみよう』です。

supporterzcolab.com

結論から言うと、全くついていけず、知識を習得することができませんでした。つらみ。

参加当日の僕

〜参加する前〜

僕:(初めての勉強会緊張するな〜。付いていけるかな〜。Swift勉強始めたばかりだけど、初心者向けって書いてあったし今ある知識でも何かしら得られるものはあるはず!)

〜勉強会〜

講師:〇〇が××で△△で〜
僕:・・・(聞いたことある言葉はあるけど全然付いていけない。。。)
講師:何かわからないことありますか?何でも聞いてください!
僕:・・・(何がわからないかもわからないから何も聞けない。。。)

〜懇親会〜

講師と参加者:(わいわい)
僕:・・・(他の方が何の話をしているのかわからない。。。)

〜帰宅中〜

僕:・・・(何しに行ったんやわしは。。)


勉強会中、全く質問しなかったわけではありませんが、内容とは関係ない基本的なことや、開発している人なら誰でもわかるようなことを聞いてしまったりしたことで他の参加者の方の時間を奪ってしまって申し訳ない気持ちでいっぱいになりました。

懇親会にも参加させていただきましたが、ここでの話にも付いていけず、今回の内容において得られた知識はほとんどありませんでした。何しに行ったんだって感じですよね。

学んだこと

そんな何しに行ったんだ状態の僕でしたが、この会を通じていくつかのことを学ぶことができました。

・初心者向けとは何も知らない無勉マン向けのことではない。

いくら初心者とは言っても、参加ページに載っている内容が理解できない、わからないのであれば、わかるようになってから参加した方がより多くのことを吸収することができるはずだと思いました。初心者にすらなれていない僕のようなただの無勉マンはただ時間を浪費するだけになってしまいます。。。

・勉強会の参加者は本気で学ぶ意欲があって来ている。

他の参加者の方が発表の合間合間に活発に質問をしていて、勉強するために、何かを得るためにここに来ているんだなということが伝わりました。
勉強会って講師の方のお話を聞いてメモを取ったりするイメージだったんですが、参加者と一緒に進めていってみんなで学んでいくのが勉強会なんだなーと思いました。確かにただ話聞くだけなら勉強会とは言わなそう。

・勉強会のレベルが自分に合っているかをしっかり考えて参加するべき。

講師の方が想定してる参加者レベルと自分のレベルがかけ離れていると学べるものも学べなくなることがわかりました。逆に言えば一致していればいるだけ多くのものが得られるんだと思います。何でも参加すればいいというわけでなく、出来るだけ自分のレベルに合ったものを探すことが大事なのかなと思いました。当たり前のことなんですけどね。

収穫

僕がこの勉強会で得られたものは、
・得られたはずの知識が得られなかったことに対する悔しさ
・「初心者向け」なのに付いていけなかった自分への不甲斐なさ

です。

正直自分のレベルが足りなさすぎて参加した意味はなかったと思っていましたが、これらが得られたことでこれまで勉強しなければいけない、もっと知識をつけたいという気持ちになったので、行った意味はあったのかなと思います。

というより、このために参加したと言っても過言ではないと思ってます!!
自分がどれだけ甘々で考えていたかを知るきっかけになったんですから!!(泣)

月並みではありますが、この悔しさを忘れずに勉強続けていこうと思います。
がんばるぞい。


以上、ないぱかでした!

わからんのがわかった。(BONFIRE Backend #2 イベントレポート)

先日仕事終わりにLODGEで勉強会していたらイベントが開催されていたので、飛び入りで参加してきました!

人生初のIT系イベントだったのもあるので、ここにレポートを残しておこうと思います!
といっても内容がわからなすぎたのでレポートになっていないと思いますが、自分の備忘録として残しておきます。

参加の動機

・イベントがどんな感じなのか知りたいな。
・少しでも得られるものがあればいいな。

参加の目的

・イベントの雰囲気を知る。

感想

しっかりとした目的もなく、内容も把握していなかったのもあって、
発表の内容がほとんどわからなかった。
けど、わからないところがわかったのが自分的には収穫。モチベも上がったし。勉強会、イベントってすごいな?

成果

・イベントの雰囲気を知った。
・発表へのモチベが上がった。(同じ世代の人が発表してるのをみて)
・わからない単語がわかった。



以下から内容についてのお話ですが、ほぼ自分のためのメモになります。



内容

前述の通り正直内容はさっぱりでした。なので、今回は自分が知らなかった言葉についてまとめたいと思います。調べてる過程で思ったこともコメントとして残しときます。

一人目:Apache Kafkaパフォーマンスの低下の社内事例とその解決方法

最初の方はついていけたけど、途中から日本語どこいった状態になった。

わからなかった単語

Apacheクラスタ、バッチング、ラウンドロピン

Apache

世界でめちゃくちゃ使用されてるWebサーバーソフトウェア。僕が生まれた年にできた。
(Apache…なんか聞いたことある。あ、自分で作ったプログラムをWEB上で見たいときに使ったApache tomcatってのはローカルサーバーソフトウェアなのかな?ローカルで動かしてたし。)

Webサーバーソフトウェア

Webサーバーを構築するためのソフトウェア
(そのまんまやな。つまりApacheさんをつかえばWebサーバーが構築されるのか。)

Apache tomcat

Web上で動くためのプログラムであるJava Servletを動かすためのサーブレットコンテナ。
(ほう。思ってたのと全然違った。Java専用なのね。こいつを使うとWeb上で書いたJavaソースコードが動くんや。)

クラスタ

集団、群の意。また、ネットワーク上にあるコンピュータを1つのコンピュータに統合したシステムのこと。可用性(障害が起きても他の待機用のコンピュータでなんとかなる)高めるタイプと拡張性(処理を分散させて、全体の処理速度を上げる)タイプがある。
(あー!情報処理試験勉強の時見たな。)

バッチング

…バッティングのこと(多分)。
(バッチングっていう何かかと思ったけど、予定がかぶった時とかに使われるバッティングのことかな。処理がバッティングする的な。)

ラウンドロピン

複数の処理を実行するために、実行時間ごとに順番に割り当てること。
(あー!これも情報処理試験勉強でやった!結構忘れてるなぁ。)

二人目: Better Docker Image

どのように速く、小さくするかの話。

…まずDockerってのがわからなくて詰んだ。

わからなかった単語

Docker、Docker Image

Docker

コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム。ミドルウェアのインストールや環境設定をコード化して管理しているため、どこでも同じ環境を構築することができる。例えば、WindowsLinuxとか。つまり、開発環境を簡潔にしてくれるやつ。
(ほー!環境設定がコード化されてて実行するだけで開発環境が出来上がっちゃう感じなのかな!便利!)

Docker Image

Dockerコンテナを実行するときに必要なファイルシステム。アプリケーションとかミドルウェアとか実行に必要なパラメータとかが入ってる。
(あー!このDocker Imageを小さくしたり速く動かせるようにして素早くDockerコンテナを実行させるってお話だったのかな!なるほどなるほど。)


三人目:Akka streamを用いた集計に優しいログ送信フローについて

ログ出力はこの前会社でちょっと勉強したからいけるのでは?!…って思ったけど案の定ダメでした

わからなかった単語

Donalyst、Adtech Studio(発表の資料に使われてた)、マルチリージョン、S3

donalyst

サイバーエージェントが出してるスマートフォン用ダイナミックリターゲティング広告
(だいなみっくりたーげてぃんぐこうこく。。。)

ダイナミックリターゲティング広告

ユーザーごとに最適な広告バナーを表示する広告。
(サイバーエージェントの人の講演聞いた時これからは広告が欲しいときに来るようになるって言ってたの思い出した。)

Adtech Studio

"サイバーエージェントグループのアドテクノロジー分野におけるサービス開発を行うエンジニアの横断組織"
A(あー。パワポ的なサービスの名前かと思った。写真加工アプリとかでついてくるアプリの名前みたいな感じのやつかと。)

マルチリージョン

(複数の範囲、領域ってことかな。)

S3

Amazon S3AWSの中のサービスの1つ。クラウドのオブジェクトストレージサービス。
(AWSかぁ。クラウドの1番すごいやつっていうイメージ。)



以上!

参考文献

Apacheとは?Webサーバーの仕組みと人気サーバーソフトを徹底解説 | カゴヤのサーバー研究室
https://www.kagoya.jp/howto/rentalserver/apache/

・【社内勉強会】ApacheTomcat(2017/03/09) - Qiita
https://qiita.com/yuji38kwmt/items/267d4ce618e80785f03d

Apache Tomcatとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://wa3.i-3-i.info/word12843.html

クラスター | IT用語辞典 | 大塚商会
https://sp.otsuka-shokai.co.jp/words/cluster.html

ラウンドロビンとは - IT用語辞典
http://sp.e-words.jp/w/%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%AD%E3%83%93%E3%83%B3.html

・Docker入門(第一回)~Dockerとは何か、何が良いのか~ | さくらのナレッジ
https://knowledge.sakura.ad.jp/13265/

・Dockerイメージとは?【Docker解説】 | 学生エンジニアのプログラミング
https://student-engineer.net/docker-image/

サイバーエージェント、アドテクノロジー広告「AMoAd」「Dynalyst」「Smalgo」がFacebook広告と連携 | Web担当者Forum
https://www.google.co.jp/amp/s/webtan.impress.co.jp/n/2014/11/08/18637%3famp

CyberAgent AdTech Studio | アドテクスタジオ はインターネット広告、ロボット、人工知能領域など、サイバーエージェントのテクノロジー開発部門です
https://adtech.cyberagent.io/

"=="とequalsとコンスタントプール【Java】

Java初心者が一度は持つ疑問、それは…

"=="equalsって何が違うん?!」

最初は違いわからなくてString型の変数を"=="で比較しようとしたり、int型の変数をequalsで比較したりしてしまったものです。


この違いを尋ねられた時にスラスラ〜と説明できるように一度ここで整理しておきます!


まず、簡単に説明すると、

==:同一性を確認する比較演算子
equals:同値性を確認するメソッド

となります。


同一性というのは「参照しているインスタンスが同じかどうか」というものです。 

Sample sample1 = new Sample();
Sample sample2 = new Sample();
Sample sample3 = sample1;

System.out.println(sample1 == sample2); // false
System.out.println(sample1 == sample3); // true

sample1とsample3には同一性がありますが、sample1とsample2には同一性はありません。


同値性は「オブジェクトの中の値が同じかどうか」というものです。
プリミティブ型と言われるint型などはオブジェクトを生成しないので、equalsで比較する事ができません。

String str1 = "ないぱか";
String str2 = "あるぱか";
String str3 = "ない" + "ぱか";

System.out.println(str1.equals(str2)); // false
System.out.println(str1.equals(str3)); // true


ここまで説明すると、String型では同一性の比較ができないんだな〜となるんですが、
実はString型でも場合によっては"=="で比較することも可能です。

例えばこんな例。

String str1 = "A";
String str2 = "A";

System.out.println(str1 == str2); // true

これはコンスタントプールというものが働いているために起こります。

コンスタントプールとは、同じ文字リテラルがプログラム内に再び登場すると、定数用のメモリ空間にある文字列インスタンスへの参照が使い回しされることです。これにより、参照を比較する"=="で値を比較することができるんです。

じゃあStringも”=="で比較したっていいじゃん!と言いたい気持ちはわかるんですが、どんな場合でも"=="で比較ができるというわけではありません。
複雑な処理になるとコンパイルさんが同じ文字リテラルがどうかを判断するのが難しくなって別の参照が作られてしまい、"=="で比較することができなくなります。

なので、Stringの比較にはequalsメソッドを使っておくと覚えておきましょう٩( 'ω' )و

まとめ

参照、値を比較するときには
⇨"=="、
オブジェクト内の値を比較するときは
⇨equalsメソッド

 

 

あるぱかに!!おれはなるっ!!!

はじめまして!ないぱかと申します。
今回は人生初めてのブログ投稿ということで、自己紹介をしてみたいと思います。
 

1. プロフィール

1995年生まれの23歳です。まだまだぴちぴちです。
 
新潟生まれ新潟育ちでずっと美味しい米を食べて育ちました。
そのため米がないと死んでしまいます。炭水化物抜きダイエットとか絶対無理。
 
就職してから関東の方に引っ越してきまして、今は千葉に住んでいます。
千葉いいですよね。東京すぐ行けるし。遊ぶところ多いし。ずっと住みたい感あります。
 
せっかく都会の近くに来た!ということで色んなITイベントに参加してます!
これからもどんどん参加して行く予定ですので、どこかで会えるかもしれません!
会えたら仲良くしてくださると嬉しいです٩( 'ω' )و
 

2. 仕事と私生活

普段はSIerで設計、開発業務をやっています。新卒1年目ということもあり、まだまだ覚えることの方が多く、インプットの毎日です。
 
扱ったことのある言語としては、JavaJavaScript、HTML、CSSPL/SQLVB. NET、Swiftです。まだまだ「この言語なら任せて!」と言えるレベルのものはないので、これからも精進していきます。いつか頼られるエンジニアになりたいです。
 
  
私生活ではiOSアプリ開発をやっています。と言ってもまだアプリ作れるほどの知識も技術もないので今はまだ勉強中です。
自分のアプリを使った人が時間を有効に使えて、充実した毎日が過ごせるようなものを作りたいと思っています!
 
作りたいアプリは頭の中にいくつもあるので早く実現できるようになりたい(`・ω・´)
 
アプリ作れたらこのブログでも宣伝したいので、その時はぜひぜひダウンロードのほどよろしくお願いしますね。お願いしますね。ね。
 

3. ブログの目的

ブログの目的は以下の3つです。

①アウトプットする機会を増やしたい!

僕はこれまでの人生で、人前で発表する機会や人に説明する機会ををとことん避けてきました。そのせいで他人よりアウトプットの経験が少ない伝えるのが下手っちょマンになってしまい、何かを説明したり伝えようとしても上手く伝わらなかったり「ちょっと何言ってるかわかんないっす」って顔をされたりする経験を何度もしてきました。

でももう惨めな思いはしたくない。。。伝えるの上手マンになりたい。。。

そのために、本ブログでのアウトプットを通じて伝える力を鍛えたり、自分の考えを整理したり、知識を定着させたりしていきたいのです。

 

②自分のいいと思ったものを広めたい!

自分がこれいいな〜って思ってるものを勧めたとき、相手が「この前勧めてくれたあれめっちゃよかったよ!」って言ってくれるのってめっっっっっっっちゃ嬉しくないですか。人間に生まれてよかった〜〜〜ってなるレベルで嬉しくないですか。

前述の通り伝えること自体は苦手なんですが、人にオススメしたり何かを教えたりすることは好きなんですよ。ブログでもこの喜びを味わいたいッッッ!

 

③色んなエンジニアさんと繋がりたい!
人との繋がりって大事ですよね。繋がりが増えれば色々なチャンスが増えたり、知らなかった事が知れたり、いい事だらけ。さらに互いに影響し合って互いに成長していくなんてのもすごくいい。
ブログで発信し続ける事でそういう繋がりを増やしていけたらと思っています。
 

4. ブログの内容

 内容は主に
・プログラミング(備忘録など)
・イベントなどのレポート
・おすすめ(アプリ、時短グッズなど)
です。
 
たまに、ひとりごとや宣伝したいことなども載せていきます。
 
ブログの更新頻度は決めていませんが、途中でやめるなんて事がないようにアウトプットしたいものが湧き出たらすぐブログに書くようにしていきます。
 

5. どうなりたいか

僕の人生の目標は、『生きてる時間全てを充実した時間にする』です!!
生きてる時間=充実した時間って最高ですよね。嫌だなーつらいなーって思うことに時間使いたくないんです。勉強や努力さえも楽しみたい。
また、自分だけじゃなくみんながそんな状態になれるような手助けをしていきたいと思っています。それで喜んでもらえたら最高だろうなぁ。120%充実すると思う。
 
しかし、僕にはまだ、何の力もありません。誇れるものもありません。人脈も度胸もありません。
 
でもこれから色んな経験を積んで、色んな人と出会って、色んなことを知っていきたいと思っています。
 
そういったことを通じて、技術力や人との繋がり、そして自信を持った人間になりたい。何も”ない"ヤツから、何かを"持った"ヤツになりたい。
 
 

つまり、"ないぱか"から"あるぱか"に進化したいんです!! (タイトル回収ッ)

 

 

・・・言いたかっただけです。すみません。