Try T.M Engineer Blog

多摩市で生息するエンジニアが「アウトプットする事は大事だ」と思って始めたブログ

OSSのライセンスについて調べてみた話

GitHubに落ちているライブラリ。
さくっと使えて便利なのですが、ふと「ライセンス」のことも気になったので、調べたことを以下に纏めておこうと思います。

「ライセンス」はなぜ大事なのか?

OSSは無償で公開されていて、誰でも自由に使用でき、「複製・配布・改良」することができるソフトウェアです。 しかし、この「複製・配布・改良」はライセンスによって制限されています。 このライセンスを守った上で、OSSを「複製・配布・改良」しないと、コンプライアンスの問題になるため、OSSを使用する時はライセンスも確認しておくのが良いです。

「ライセンス」の種類

OSSのライセンスは、「コピーレフト型ライセンス」と呼ばれる概念から始まり、大きく3つのカテゴリに分けられるそうです。

これら3つの違いは以下の通り。

類型 複製・配布・改良可能 改変部分のソース公開要 他のコードと組み合わせた場合、組み合わせたコードのソース公開要
コピーレフト型ライセンス
コピーレフト型ライセンス
コピーレフト型ライセンス

大きく違うのは「改変部分のソースを公開しなくてはならいのか?」と「他のコードと組み合わせた場合、組み合わせたコードも公開しなくてはならいのか?」です。
順番に見ていきましょう。

コピーレフト型ライセンス

代表的なライセンス ・・・ GNU General Public License(GPL)
代表的なソフトウェア ・・・ WordPressなど。。。

・コピーレフト型ライセンスを持つOSSを改変した場合、改変部分も同じライセンスの適用を要求する。
・コピーレフト型ライセンスを持つOSSを他の他のソフトウェアと組み合わせた場合、組み合わせ先のソフトウェアにまで同じライセンスの適用を要求する。

たとえばGPLの場合、GPLライセンスのコードを改変しても、他のソフトウェアと組み合わせたとしても、(他のソフトウェアも含めて)GPLライセンスになってしまう。ということです。
また、GPLには、同じコピーレフト型ライセンスですが、GPL2GPL3があり、その違いは以下の通りです。

  • GPL2 ・・・ OSS作成者の特許は守られる。たとえば、特許が含まれるコードを書いたとして、GPLに基づいてソースコードは公開しないといけません。しかし、特許は特許権を持っている人の裁量に任されているため、厳密な意味では自由に使えないコードになっている。
  • GPL3 ・・・ OSS作成者の特許は守られない。たとえば、特許が含まれるコードを書いたとして、GPLに基づいてソースコードを公開しないといけない&そのコードを利用した第三者を訴える権利を放棄しないといけない。

コピーレフト型ライセンス

代表的なライセンス ・・・ Mozilla Public License(MPL)
代表的なソフトウェア ・・・ Mozilla Firefoxなど。。。

・準コピーレフト型ライセンスを持つOSSを改変した場合、改変部分も同じライセンスの適用を要求する。
・準コピーレフト型ライセンスを持つOSSを他の他のソフトウェアと組み合わせた場合、組み合わせ先のソフトウェアにまで同じライセンスの適用を要求しない。

たとえばMPLの場合、MPLライセンスのコードを改変したものはMPLライセンスのままですが、他のソフトウェアと組み合わせた場合は他のライセンス(たとえば下のMIT License)を適用して良い。ということです。

コピーレフト型ライセンス

代表的なライセンス ・・・ BSD License、MIT License
代表的なソフトウェア ・・・ Vue.js jQueryなど。。。

・非コピーレフト型ライセンスを持つOSSを改変した場合、改変部分も同じライセンスの適用を要求しない。
・非コピーレフト型ライセンスを持つOSSを他の他のソフトウェアと組み合わせた場合、組み合わせ先のソフトウェアにまで同じライセンスの適用を要求しない。

たとえばMIT Licenseの場合、MIT Licenseライセンスのコードを改変しても、他のソフトウェアと組み合わせたとしても、他のライセンス(たとえば上のMPL)を適用して良い。ということです。
ただし、MIT Licenseは、特許や著作権などを明記する必要があるなど、製作者のコードが守られているため、非コピーレフト型からコピーレフト型へのライセンス切替はほとんど発生しません。

コピーレフトと特許や著作権は考え方が別

上記に出てきたGPL2GPL3のように、コピーレフトは、いわばライセンスの適用範囲を示したものなので、特許や著作権とは考え方は別です。特許や著作権の考え方はライセンスによって異なるので注意してください。

どのライセンスを選ぶべき?

使用したいOSSにライセンスは紐付いているので、選べないことが多いと思います。 似たようなOSSが複数あり、ライセンスが異なるのであれば、「非コピーレフト型ライセンス」であるBSD LicenseMIT Licenseを選ぶがの良いかと思います。 なお、2015年の時の情報ですが、GitHubにあるOSSでもっとも使用されているライセンスはMIT Licenseとの情報もあるので、MIT Licenseは選択肢に入りやすいと思います。

macOS(Catalina)で、デフォルトシェルがbashからzshに変更になったのもライセンスが原因!?

macを使用している方はご存知かと思いますが、macOS(Catalina)デフォルトシェルがbashからzshへ変更になりました。
この理由は、実はライセンスだと言われています。
というのも、Appleは、macOSGPL3ライセンスのソフトウェアを一切入れない!というポリシーを掲げています。(GPL2はOK)
そのため、macOSにインストールされているbashGPL2であるバージョン3.2からアップデートされていません。
現在(2020/07/06時点)の最新のbashのバージョンは5です。
bashはバージョン4から、GPL2からGPL3へライセンスの変更を行いました。 そのため、Appleはポリシーを守るため、macOSに標準で入っているbashのバージョンは3.2のままにしています。

## macOS(Catalina)でも入ってるbashのバージョンは3.2のまま・・・
$bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
Copyright (C) 2007 Free Software Foundation, Inc.

このままbashのアップデートを停止したままだと、セキュリティ上よろしくないため、ApplemacOS(Catalina)からデフォルトシェルをbashからzshに変更する決断をしたとのことです。
ちなみに、zshは、MIT Licenseです。

さいごに

個人的に興味を持って調べ始めた「ライセンス」のはなし・・・ 調べてみると、なかなかおもしろいもので、大変勉強になりました。

以下、勉強のため参考にさせていただいたサイトです。
ありがとうございました。

約3ヵ月の空白時間について

こんにちは。そして、お久しぶりです。
最後に書いた記事(3月)からだいぶ経ちましたね。
ちゃんと生きていますよー(= =)ノ

約3ヵ月ほど、ブログの更新が止まってしまいましたが、その間に何があったのか簡単に振り返りたいと思います。

まず、うちの会社でも3月中旬頃からリモートワークが始まりました。 その時は、まだブログを書く余裕はあったのですが・・・ちょうどリモートワークに慣れ始めた頃、「緊急事態宣言」により子供を保育園に預けることができなくなりました。そうなると、家と子供にすべての時間がとられてしまい、ブログを書く余裕なんてありませんでした。小さいお子さんをお持ちの方は、みんな同じような状況だったんじゃないかなぁと思います。「緊急事態宣言」が解除されて、やっと今になって少し余裕がでてきたので、ブログを書くことにしました。

では、この約3ヶ月ほどの間に何をしてたかざっくり書いていきます。
(細かい話は別途、記事にするかもしれません。)

  • AWS認定ソリューション - アソシエイトに再合格した
  • リモートワーク環境改善のため、Google Nest Wifiを購入した
  • リモートワーク&ワンオペの実績を解除した
  • デザインパターン入門を読み始めた
  • Laravelの案件に入れるかもしれないので、Laravel復習するぞ・・・

AWS認定ソリューション - アソシエイトに再合格した

3月最後のブログに「SAA取るんだー」と言ってましたが、無事取得しました。 事前にDAA取得のために勉強していたおかげもあって、1ヶ月くらいの勉強ですんなり取ることができました。
このあたりも本当は記事にしたかったのですが、今ではSAAの試験範囲や問題が大きく変わっています。そのため、今回私が実践した勉強方法は通用しないと思うので、お蔵入りですかねぇ。(= = ;;)

リモートワーク環境改善のため、Google Nest Wifiを購入した

ちょうどPixcel4を購入したときのクーポンが残っていて、何に使うか悩んでいたのですが、Google Nest Wifiに使うことにしました。
(本当はPixcel Budsが間に合っていれば、そちらを購入したかったんですが・・・コロナの影響で間に合わなかった模様?)

そのおかげで、家の通信環境が大きく改善しました。
「メッシュWifi」にはじめて挑戦してみたのですが、これが思ったよりも良かった。 うちは「メッシュWifi」を導入するほど家は広くないのですが、インターネット回線のコンセント配置上の関係で「メッシュWifi」の方が通信環境が改善されました。

今までは「Wifi中継機」を使って家の中をWifiで囲っていたのですが、どうしても「Wifi中継機」が親機のWifi内に配置する必要があり、以下図のように壁を挟むと電波が家の端まで届かなくて不便でした。

f:id:special-moucom:20200613135312p:plain:w300

対して「メッシュWifi」は親機のWifi内に配置する必要がなく、壁の内側に子機を配置することができます。
そのおかげで、Wifiを家の端まで届かせることに成功しました。

f:id:special-moucom:20200613135458p:plain:w300

ただ、Google Nest Wifiはお値段が高いので、次回も同じものを購入するかはわかりませんが、通信環境の改善と「メッシュWifi」の良さに気づけたのでとても満足しました。

リモートワーク&ワンオペの実績を解除した

家でリモートワークしながら、ワンオペで1歳半になる子供の相手をするという実績を解除しました。信じられないくらい大変なので、もう二度としたくありません。
お昼休憩(1時間)の間に、親と子供のお昼&子供の寝かし付けを行うという神業ができたのは、自分でもすごいと思いました・・・

デザインパターン入門を読み始めた

結城さんのこちらの本です。

まだ途中ですが、なんでもっと早くこれを読まなかったんだろう・・・と思わされました。
がんばって完走目指したいと思います。

Laravelの案件に入れるかもしれないので、Laravel復習するぞ・・・

コロナの影響がうちの会社にもあり、会社的にも個人的にも少し仕事の量が減っていました。
(とはいえ、家で子供の相手をする必要があったので、少し助かりましたが・・・)

だから・・・というわけではありませんが、会社のチャットグループを徘徊していると、どうやら他部署でLaravelの案件があって、バックエンドの人を募集しているとの情報が舞い込んできました。ちょうど「緊急事態宣言」の解除を受けて、保育園もそろそろ始まりそうな感じがしたので、すぐ上司に了承を得て、手を上げました。

そんなこんなで、Laravelの案件に入れそうなので、現在はLaravel復習中です。デザインパターンの本を読んでるおかげか、SingletonやFacadeなど、やりたいことの本質が見えてきた気がします。
Laravel案件楽しみだなぁ・・・(ノ* _ * )ノ

さいごに

さて、こんな感じで、ちょいちょいまたブログを再開していきたいと思います。
がんばってアウトプットしていきたいと思いますので、よろしくお願いします。m( )m

AWS認定ディベロッパー - アソシエイトに合格した話

2020年01月31日、AWS認定「ディベロッパー - アソシエイト」(以降、DAA)に無事に合格しました。

f:id:special-moucom:20200229013410p:plain

本記事では、DAA合格に向けてどんな勉強をしてきたのかを振り返りたいと思います。これからDAA取得を目指している方々にとっても、参考になれば幸いです。

  • 取得を目指した理由
  • 私のAWS事前知識
  • 学習方法
    1. 目標を設定する
    2. 情報を得る
    3. 「本」を読む
    4. Udemyをやる
  • 個人的に参考にさせて頂いたサイト
  • まとめ&反省点

取得を目指した理由

私は、3年前にAWS認定「ソリューション - アソシエイト」(以降、SAA)を取得しました。

kodak.hatenablog.com

AWS認定資格の有効期限は3年間です。
2017年09月にSAAの資格を取得したので、2020年09月には有効期限が切れて資格保有者ではなくなってしまいます。資格保有者でなくなるとどうなるか・・・ちょっと考えてみました。

  1. AWS Summit等のAWS主催のイベントで認定者ラウンジに入れなくなり、無料の休憩所やお菓子が貰えなくなる。
  2. 「私、AWS知ってます」とドヤれなくなる。

認定者ラウンジは、入れるとちょっとした特別感を感じることができるので、このまま資格保有者でなくなって入れなくなるのは嫌だなぁと思いました。また、AWSは常にサービスの成長を続けているので、3年前の「私、AWS知ってます」と、今の「私、AWS知ってます」では、知識の差が大きく、3年前の知識は役に立ちません。自身の知識をアップデートするためにも資格取得を目指そうと思いました。

こういった理由から「SAAの再取得しよう」と決めたものの、単純にSAAの再取得だけを目指すのは面白くない。というのも、最近は社内でもSAA保有者が増えてきたので、「SAA取得しましたー」だと、フーンで流されてしまう可能性もありました。「DAA取得しましたー」と言えれば、ちょっと反応は変わるかなと思い、今回はDAA->SAAの順番で再取得を目指すことにしました。

私のAWS事前知識

サーバーレス関連の技術を実務と趣味で触ってたりしています。具体的には、SAMをつかったサーバーレス関連サービスのデプロイ(Slack Botとか)やってたりします。
DAAはサーバーレス関連サービスの問題が多いので、そういう意味では個人的に少し恵まれていたかなと思いました。

学習方法

学習方法は、以下手順で行いました。

  1. 目標を設定する。
  2. 情報を得る。
  3. 「本」を読む。
  4. Udemyをやる。

1. 目標を設定する

DAAの取得を目指して勉強を始めたのは、2019年10月中旬くらいです。約4ヶ月を勉強に費やしました。子供の面倒を見ながらでの勉強なので、隙間時間を使っての勉強がメインでした。ちなみに、4ヶ月掛かったのは結果論で、本当は3ヶ月くらいで取得を目指したかったのですが、ちょっと無理でした。
受験する日付まで、具体的に決めてはおらず、だいたい3、4ヶ月後に取得したいなぁ・・・という感じで決めました。

2. 情報を集める

Qiitaや個人ブログから合格者の勉強方法などを参考にしました。特にDAA合格者の情報はSAA合格者に比べて情報が少ないので、貴重でした。

3. 「本」を読む

隙間時間を活用するため、通勤時間帯に読む用のDAA対策本がないか探して読むことにしました。恐らく2020/02/28時点でも以下の本しかないと思います。

AWSのサービスの1つ1つを軽く説明している感じで、初めて見るサービスの取っ掛かりには良いと思いました。この本を取っ掛かりにして、別途Black Beltやサービス活用事例集などを見て理解を深めました。

aws.amazon.com

4. Udemyをやる

DAA合格者の情報によると、「Udemyをやった。」との声が多く、私も初めてUdemyに登録・DAA対策コースの講座を購入することにしました。

最初に購入したのは、コレです。
お世辞ではなく、DAA取得を目指すならコレをやりましょう!! DAAの勉強方法、出題サービスのポイント、模擬試験付きのコースです。
ちなみに、Udemyはセールの時に購入するのがポイントだそうです。

Ultimate AWS Certified Developer Associate 2020 - NEW! | Udemy

英語ですが、ChromeGoogle拡張機能を入れて翻訳すると、字幕英語を日本語にしてくれます。不安な方は、コースをプレビューで表示してGoogle翻訳で日本語字幕で表示されるかを確認してから(セールの時に)購入しましょう。
私は英語がまったくできないので、Google翻訳頼みでした(笑

次に購入したのは、コレです。こちらはTwitterで、いわしまん(iwasiman)さんに教えていただきました。

日本人の方がDAA模擬試験問題集を出されていて、これもオススメです。

AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問) | Udemy

模擬試験は全65問ありますが、できる方は一気にやりましょう。無理な方は、一気にやろうとせず、2・3日に分けてやりましょう。
私は無理な方でした。1日目に35問、2日目に30問+間違った箇所の復習(1日目に35問、2日目に30問、3日目に間違った箇所の復習)といった感じでチャレンジしました。
65問は無理でも35問くらいなら・・・と思わせてくれるので、問題の解くスピードも上がりますし、なにより勉強を継続できます。

私がDAAを取得した時、上記Udemyの模擬試験は80点くらいをキープしていたと思います。そういった意味では、模擬試験を80点くらい取れるようになれば、受験準備完了ですね。

個人的に参考にさせて頂いたサイト

最後に、DAA取得でお世話になったサイトを以下に記載します。皆様本当にありがとうございましたっ。

各サービスのベストプラクティスは知っておこう!

https://docs.aws.amazon.com/index.html

KMSのキー管理を理解するべし! めちゃわかり易い!

dev.classmethod.jp

KMSが理解できたら、S3の暗号化の種類がわかるっ!

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingEncryption.html

KMSが理解できたら、Parameter StoreとSecrets Manager何が違うの?って絶対思うはず・・・

qiita.com

Elastic Beanstalkの6つのデプロイ方法の理解。このBlack Beltの資料は超わかりやすい。

www.slideshare.net

DynamoDBのLSI/GSIの理解

dev.classmethod.jp

dev.classmethod.jp

まとめ&反省点

こうやって無事にDAAを取得することができました。しかし、課題もありました。 それは、勉強時間の設定・把握をしていなかったことです。
隙間時間を活用して勉強していると、自分が何時間勉強しているのか?勉強時間が十分に取れているのか?といった部分が、わからなくなります。そうなってくると、常に勉強時間が十分取れていないと思い、DAAの勉強以外手につかなくなります。つまり、マルチタスク(DAAの勉強以外のこと)ができなくなり、私の場合、結果的に4ヵ月間DAAの勉強しかやっていませんでした。
対応策として、いわしまん(iwasiman)さんが活用されているStudyplusを使って管理するのが便利そうだなぁと思いました。ただ、私自身がこういったツールを使い慣れていないので、なかなか使いこなすのは難しい感じがしています。

さて、長々と書きましたが、これからDAA取得を目指したい方の参考になれば幸いです。次はSAA合格話を書く!きっと書きます!

「オブジェクト指向でなぜつくるのか 第2版」を読んだ話

少し古い本ですが「オブジェクト指向でなぜつくるのか 第2版」を読みました。
今年は、プログラミングをただ書くだけでなく、もう少し概念的なものも学んでおきたいと思ったので、この本を手に取りました。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

  • 作者:平澤 章
  • 出版社/メーカー: 日経BP
  • 発売日: 2011/04/07
  • メディア: 単行本

自身の性格上こういった概念的な本は、読んでると眠くなってくるのですが、この本は読んでてとても面白く、意外にもスラスラと読むことができました。
意外に感じたのは、オブジェクト指向は Simula67(1967年)という言語で既に存在していたということ。一般的に広まってきたのは、Smalltalk(1970年)からとのことで、個人的に「ぇ、そんな昔からあったの・・・」と驚きました。
Smalltalkといえば、テスト駆動開発本でお馴染みのKent Beckリファクタリング本で有名なMartin Fowlerも使っていましたね。こういった著名人の繋がりも見えてきたので、個人的には面白かったです。

テスト駆動開発

テスト駆動開発

  • 作者:Kent Beck
  • 出版社/メーカー: オーム社
  • 発売日: 2017/10/14
  • メディア: 単行本(ソフトカバー)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

オブジェクト指向の解説は、こういった言語の歴史的背景から「何故オブジェクト指向が産まれたのか?」を説明していて、これまた面白く、とても納得のいく説明が書かれていました。
第2版では、第1版では語られていないアジャイル関数型プログラミングについても語られています。とはいえ、第2版が出たのは2011年なので、最近Web業界にやってきた私としては「2011年で関数型プログラミングアジャイルが既にあったのか!?」とこれまた驚きでした。

オブジェクト指向といえば

以下の3つですよね。

本書を読む前の私は、上記3つは理解していたつもりでしたが、改めて本書を読み進めてみるとポリモーフィズムについては、ちゃんと理解できていなかったことがわかりました。

例えば、PHPポリモーフィズムを書くと以下のように書けます。

// 継承クラス(親)
class ParentClass {
    public function echo_msg(String $msg){
        echo 'デフォルト値:' . $msg . PHP_EOL;
    }
}
// 継承先クラス(子)
class ChildClass extends ParentClass {
   public function echo_msg(String $msg) {
       echo $msg . PHP_EOL;
   }
}
// メインクラス
class MainClass {
    // オーバーライド。
    public function echo_child(ChildClass $obj) {
        echo $obj->echo_msg('子クラスを型にobjを呼ぶ');
    }

    // オーバーライド。
    public function echo_parent(ParentClass $obj) {
        echo $obj->echo_msg('親クラスを型にobjを呼ぶ');
    }
}

// 子クラスをインスタンス化して、メインクラスに渡す。
$obj = new ChildClass();
$instance = new MainClass();

$instance->echo_child($obj); // 「子クラスを型にobjを呼ぶ」と表示する
$instance->echo_parent($obj); // 「親クラスを型にobjを呼ぶ」と表示する

私も知らなかったのですが、メインクラスで継承先のParentClass(親クラス)を型にして呼び出せるんですね。ちゃんとオーバーライドしています。

ポリモーフィズムは概念で理解していても、こういったテクニックまでは理解できていなかったなぁ・・・と改めて思いました。 こういったテクニックは、おそらくデザインパターンに通じるものがあるような気がしたので、次回かどうかはわかりませんが、こちらの本も読んでみようと思います。

第2版では、関数型プログラミングについても書かれていました。
関数型プログラミングについては、私は知識がまったく無かったので、概要くらいは本書で掴むことができました。ただ、本書ではHaskellを使って説明していたので、理解に相当苦しみましたが・・・

もし、自分が関数型プログラミングを使うなら、JavaScripでしょう。React.jsが関数型プログラミングを採用しており、仕事で扱うWordPressのBlockエディターもReact.jsが使われているので、こちらも積極的に学んでいきたいですね。

というわけで、本書で説明していた関数型プログラミングの「高階関数」と「カリー化」をJavaScriptで書いてみました。

高階関数」は、引数に関数を設定したり、戻り値で関数を返したりする関数のことです。

// 引数と返り値に関数「n => n + 1」を設定
const p = (fn) => {
    return fn;
};

const hoge = p(n => n + 1);
console.log(hoge(1)); // 2

「カリー化」は、複数の引数を取る関数 を 引数を1つだけ取る関数 を使って順次表現することです。

const c = n => {
    return m => m * n;
}

// c(2)は、m * 2を返す関数。それを変数tに設定
// 「複数の引数を取る関数」= c(2)、「引数を1つだけ取る関数」=t(4)
const t = c(2);
console.log(t(4)); // 8

// cは、以下でも書けます。
console.log(c(2)(4)); // 8

うーん、慣れないと瞬時に理解できないですね。
関数型プログラミングも面白そうなので、順次学んでいきたいですね。

最後に、こういったテクニックを知るのも大事ですが、本書では加えて「プログラマーたるもの言語で扱うメモリーの仕組みも知っておくべき!」とも書かれていました。プログラマーたるものプログラミング言語の内部の動きも知っておけ!ってことですね。確かにプログラミング言語の内部の動きまでは、意識して学ぼうと思ったことはなかったので、ここは改めて気づかされました。

まとめ

本書は、オブジェクト指向の歴史や解説だけでなく、プログラマーが知っておくべき知識やオブジェクト指向から産まれたアジャイルや次世代の関数型プログラミングまで、幅広く解説されていました。

以下、本書を読んで改めて気付かされた点(ざっくり)です。

2019年を振り返るのと2020年の抱負について

さて、だいぶ遅くなってしまいましたが、2019年を振り返りたいと思います。
すでに1月の後半なので、今年の目標も添えて書いていきたいと思います。

2019年はどんな年だった?

うーん、なかなか一言で表現するのは難しいので、年初に抱負を書いていたので、これをベースにしたいと思います。

kodak.hatenablog.com

ブログの継続は?

2019年のブログ投稿数を2018年と比べてみます。

2018年 2019年
37 29

うーん、減ってますね・・・(= =;;)
2019年は後半にあまりアウトプットしていなかったので、そこで大きく差がついた感じですね。

やはり、なかなかブログを書く時間を確保できないのが辛いですね。ブログでのアウトプット仕方もいい加減になってきた気がします・・・

アウトプットは大事ですが、いい加減になってくるとあまり良くないと思うので、ここいらで見直したいところです。

踏まえての2020年は?

今年は「無理なアウトプットをしない。必要なアウトプットをしよう!」です。
下にも書きますが2019年は「勉強会やカンファレンスへ参加したのにアウトプットしていない」「本を読んだのにアウトプットしていない」など、本来アウトプットすべきタイミングで、アウトプットできていないことが多かったので、ただブログを書くのではなく「必要なアウトプットをしよう!」そんな年にしたいなぁと思います。

勉強会・コミュニティ・カンファレンスへの参加

正直、休日の勉強会やコミュニティの参加は無理でした。
そして、これからも難しいと思っています。

平日での勉強会やカンファレンスへの参加していましたが、アウトプットはできていなかったですね。
ううっ・・・これは反省(; ;)

踏まえての2020年は?

継続です!引き続き自身の興味のある勉強会やカンファレンスの参加(平日限定)で続けて行きたいと思いますっ!

スキル向上

2019年の年初に抱負を書いた通り、JavaScriptPythonPHPAWSCMSWordPress)を中心に、技術と知識を学んだ一年だったと思います。 Vueでポートフォリオを作ったりもしましたし、LaravelやAWSの勉強もしました。転職前と比べると技術も知識もかなり増えた気がします。
とはいえ、技術レベルが初級レベルなので、今年は中級レベルに上げたいなぁというところ・・・

踏まえての2020年は?

継続してJavaScriptPythonPHPAWSCMSWordPress)を中心に、技術と知識を学んでいきます。
TypeScriptにも挑戦したいですし、WordPressのBlockエディターがReactで作られているので、Custom Blockを作るためにもReactを勉強したいと思います。
そうなってくると、オブジェクト指向関数型プログラミング等の知識も必要になってくるので、そこらへんも学んでアウトプットしていきたいと思います。

あとは、AWS認定資格の有効期限が迫っているので、再取得も狙いたいところです。
現在は、ディベロッパーの資格獲得に向けて勉強中(= = ;;)

Gitの可視化

ああっ・・・(察し・・・)

まとめ

今年も引き続き、ブログと勉強会・カンファレンスへの参加の継続しますっ!
スキルもJavaScriptPythonPHPAWSCMSWordPress)を中心に、新たにReactへの挑戦や概念理解(オブジェクト指向関数型プログラミングデザインパターンなど)を深めて、中級レベルに引き上げていきたいと思います。