投資のベース知識として取りたい。大まかな年間予定は以下の通り。1年のうち4ヶ月は机上勉強ですね。※リリース予定は12月から1月延期。Webデザインセンスがない。Reactの開発案件を主に実施した。ReactはHelloWorld程度の経験。TypeScriptとReduxは未経験であったため学習と実験的な実装及びリファクタリングに多くの時間を割いた。React-Redux周りのトレンドは抑えることができたと思う。平日の常駐先でDDD周りの学習に時間を費やすことができるため、その他の時間はフロントエンドの学習を行っている。12月にリリース予定のため引き続き当案件に時間を割く予定。Webデザインセンスがない。ドメイン駆動設計、ネットワークスペシャリスト(以下ネスペ)の勉強の時間を割いた。10月よりDDDの案件の現場になり、業務=DDD勉強になった。10月20日にネスペ試験があったため前半はほぼネスペ勉強、試験後はブログのWordPress脱却作業と、React開発案件の着手をした。9月のうちにJavaのStreamとジェネリクスを手堅く学習しておいたため業務後に追加学習する必要はあまりなかった。Webデザインセンスがない。ドメイン駆動設計、ネットワークスペシャリスト(以下ネスペ)、SpringBootの勉強に時間を割いた。8月よりDDD案件のタスクは少なめ。AtCorderについては時間を少なめにし、大会に隔週参加している状況。Java11〜12のブログ記事を作成。SpringBootのコメント付きサンプルシステム構築。DB2連携、SQLログ出力を実装。AtCorder大会に週2で参加。緑色ランクまであと一歩。JavaのStream、ラムダ式、ジェネリクスの詳細を理解した。JavaGoldの書籍、Streamを使った検索や処理の実装サンプルプログラムを作成した。以下をハンズオン(第1部は全て完了。次の案件の復習とネスペ勉強が主になる。ネスペ試験が10月にあるため学習をする。モデリングスキルを高めたい。今までJava8の案件が主だったのですが、最近Java12の案件にも参画させて頂いています。開発している中でJava9以降の機能を使っておらず、使える機能がないかを調べる目的でまとめてみました。今回使用するサンプルコードは以下に全て置いてあります。switch文の新たな使い方が追加されました。右辺として使うことができるようになります。具体的には以下の通りです。今まで処理メソッドに対してStringの文字列を引数で渡していた処理に対して、transform()を使うとStringの文字列に対して処理を記述することができます。今までJava8の案件が主だったのですが、最近Java12の案件にも参画させて頂いています。開発している中でJava9以降の機能を使っておらず、使える機能がないかを調べる目的でまとめてみました。今回使用するサンプルコードは以下に全て置いてあります。isEmptyに加えて半角/全角スペースもtrueを返します。※注意として、該当の変数がnullの場合はNullPointerExceptionを投げます。nullの場合もtrueを返してほしい場合はStringUtils.isEmpty()を使う必要があります。Collection型のクラスにtoArrayメソッドが追加されました。メソッド名の通り配列に変換して値を返します。7月に続き、DDDの案件は平日夜と休日に継続して実施している。AtCorderについては先月と状況は変わらず、毎週末の大会だけ参加している状況。プラスアルファとして、JavaScriptとSpringBootの学習を実施している。DDDの書籍「エヴァンス本」はDDDの実践開発で詰まった箇所を読んでいる。Java9〜12の新規追加機能サンプルを作成。Java9〜10はブログ記事作成。SpringBootのサンプルシステム構築。SpringSecurityの実装が完了。AtCorder大会に週1で参加。緑色ランクまであと一歩。以下をハンズオン(第1部は8割完。次の案件に向けて事前準備を行う必要がある。SpringBootとDDDの学習が主。ネットワークスペシャリスト試験が10月にあるため学習をする。2019年2月にフリーランスになって現在の職場で半年ほど働きました。10月から別の現場に挑戦しようと思い、いくつかの商談を行ったため気付きをまとめます。フリーランスになったばかりの方、これからなる方の道標になれば幸いです。プロフィールにまとめて書いてあります。SpringBootの現場経験が欲しかったため、SpringBoot案件を探しました。プラスアルファとして、ドメイン駆動設計・FEフレームワーク(ReactかVueかAngular)、AWSが経験できると尚良の条件です。案件の業界はバラバラですね。サル、金融、物流と、特に枠を設けずに探しました。フリーランスデビュー時の商談では経験がないことがかなり不評だったのですが、今回の商談はガラッと変わって好印象な反応が多かったです。前回は5案件の商談を行い2社からオファーを頂いていたのですが、今回は4案件の商談を行い4社共オファーを頂けました。評価された点はありましたが以下が主です。通常の案件(平日の昼間の案件)だけでなく、空き時間にももう1つ案件を持っていたり、勉強に時間を費やしているエピソードはかなり反応が良かったです。趣味=仕事になっているので本音で話せるのは良いですね。スコアは高くないですが、趣味として競技プログラミングをやっている点も良い反応を頂けました。関数型の書き方は問題なくできるかという質問に対してRubyで競技プログラミングやっているので問題ないという回答をして納得して頂けたようで良かったです。少なくともやってない人より良いアルゴリズムを書けるようには見えますし、実際に競技プログラミングを初めてから仕事で書くアルゴリズムの質は良くなっています。空き時間にすぐできますし、趣味としておすすめです。SQLが書けるかという話になり、DBスペシャリストにギリギリ落ちた話をしたら反応が良かったです。ビルドツールやデプロイ関連の経験がないことは不評でした。案件で途中から入ると大体できあがっているんですよね・・・。個人活動としてでも良いのでゼロから作る経験は必須だなと思いました。具体的にはGradle、CircleCI、Ansible、Chef(最近聞かないけど)などのキーワードが挙がりました。ゼロからの全体設計、インフラも含めた構成の検討の経験がないことは指摘されました。新規構築案件でのみ指摘を受けています。AWS案件は多いですね。多少触っているだけでは評価されないなという印象です。こんな質問されるんだという質問が多々あり、回答にやや困ったものもあったので備忘として残しておきます。商談はクローズしましたが、次回商談に向けて色々と課題が挙がりました。今回受けた指摘を次回商談で受けなくするという目標に向けていくつかタスクを挙げました。次回いつになるかわかりませんが半年〜1年を目処に以下をこなしていきます。ゼロからのシステム構築は必須。今までJava8の案件が主だったのですが、最近Java12の案件にも参画させて頂いています。開発している中でJava9以降の機能を使っておらず、使える機能がないかを調べる目的でまとめてみました。今回使用するサンプルコードは以下に全て置いてあります。新しい型としてvar型が追加されました。型推論という機能を使って、コンパイル時に右辺の値から型を決定することができます。略式記述(シンタックスシュガー)です。ローカル変数にのみ使用可能。複製したListは修正不可(追加・削除不可)だが、各要素が参照しているオブジェクト内は修正可能であるため注意。今までJava8の案件が主だったのですが、最近Java12の案件にも参画させて頂いています。開発している中でJava9以降の機能を使っておらず、使える機能がないかを調べる目的でまとめてみました。今回使用するサンプルコードは以下に全て置いてあります。BigIntegerで平方根取得のメソッドが追加されました。四捨五入するようで、√2は1を返します。Java8で追加されたOptional、Streamですが、Java9以降にいくつかメソッドが追加されているようです。Java8が展開された後に不足していた機能を充足するメソッド追加のようです。ifPresentOrElse()ではOptionalの値が存在する場合としない場合の処理をまとめて記載することができます。Optionalのstream処理をする際に、値がnullの項目を排除することができます。関わっている案件のシステムの規模や全体感を見るために拡張子別のステップ数を算出するプログラムを作成した。指定ディレクトリ内の全ファイルに対して拡張子別に行数を算出し、全体に対して占める割合も合わせて表示する。MySQLを定期的にバックアップするためのシェルを毎回忘れるため備忘用にメモしておく。cronやサーバ起動時のシェルに組み込んで使用する。ME温泉ソムリエエンジニア。サーバ構築からアプリケーションの開発まで手広く対応。