2020年目標など

遅ればせながら、明けましておめでとうございます。2020年は沖縄でのエンジニア生活2年目、エンジニアとしてより充実した1年にして行きたいと思います。
とりあえず目標をいくつか箇条書きに。

・システム設計技術の向上
 やはり、最大の目標はこれかと。本格的な設計業務をやるのはかなり久しぶりだったけど、自分でもまだまだだと感じた。
 これに関しては業務経験を通して身につけて行くのが一番なんだろうけど、書籍を通して得られる知見もあると思うので、その辺りも勉強しようと思う。現在この本を途中まで読んだけど、最後までちゃんと読んで理解して、それプラスもう1冊かな。

・Reactの取得
 フロントエンドではまずはReactおよびその周辺のライブラリであるRedux、react-routerなどを身につけたい。
 去年はドットインストールで勉強してどんな感じかはわかって来たが、それだけでは実務ではまだまだ不十分なので、何か簡単なWebアプリを作って見て、アップロードするところまで行きたい。
 余裕があればReact Nativeを勉強してスマホアプリを作れるようになりたいが、少し難しいか。

・Javaでの開発技術全般の向上
 JavaではSpringBootのアーキテクチャをよりしっかり理解することとモダンな書き方を身につけて行くことの2つが大きな目標かな。
 前者ではReactで作ったWebアプリと連携したRestAPIを作ってみることと、後者では最近この本を買ったので、それを理解してより質の高いコードを書けるようにして行きたい。

・データベーススペシャリスト合格
 4月のデータベーススペシャリスト、早速申し込んだ。過去2回午後2で落ちているので、流石にいい加減受かりたい。後、10月はやはり前回午後2でダメだったシステムアーキテクト も合格目指して頑張りたい。

・Microsoft Azureを使えるようにする
 クラウド技術もどこかでしっかりと学んでおきたい。
 1つ考えているのは現在さくらレンタルサーバーを使っているこのサイトだけど、それをAzureに移してみようかと思っている。ただ、そうすると月当たりいくらかかるかが不安。

・Python,、機械学習の勉強
 現在の業務では使わないこともあって、気が向いた時にちょっとだけ勉強しているくらいだけど、勉強しておけばいつか役に立つ場面もあるかなと。
 PythonのフレームワークDjangoと組み合わせて機械学習を用いた簡単なWebアプリを作ってみるもの面白いかも。

ざっと色々書いて見たけど、技術面でも人間的な面でも大きく成長して飛躍の1年にしたいなと。頑張るぞ!

今後の技術テーマ

こちらに書いた通り、4月から転職が決まって沖縄で働くことになった。
それに伴い、使用する技術も今までとは異なったものになるので当面は引越し作業の合間に新しい技術や久々に使う技術を中心に勉強していこうと思う。
・Java (2つ前の会社では客先によっては使っていたけど、ここ数年で色々と変わったことがあるようなので、その辺りを中心に)
・Spring Boot (Javaのフレームワーク。WEB+DB PRESSの106号にちょうどそれについての記事があったので、それを元に勉強中。パッと見Laravelとは手触り感なんかが結構異なる感じだけど、DIなんかでLaravelと共通した考え方を使っているところもあるらしい。)
・Node.js  (以前ドットインストールでちょっとやったけど、余裕があるときに復習しようと思う)
・AngularJS (ドットインストールでちょっとだけやった感じだと、Vue.jsに少し似ているかも。)
・クラウド技術(Microsoft Azureの使い方を基本的なところだけでも勉強しておきたい)

常に勉強し続けなくてはいけないのは技術者の宿命だけど、新天地で頑張るぞ!
とりあえず記事を書けるところまできたらこっちに書いて、同じ内容をQiitaにも投稿しようかと。

プログラマの精神衛生について

プログラマにとって(プログラマに限りませんが)、心身ともにベストに近い状態で仕事をするのが一番いいのは間違い無いでしょう。体調が悪かったり、あるいはイライラしていたり落ち込んでいたりするとどうしても作業も遅くなるし、ミスも多くなる。特に精神的に不安定な状態で作業をしてそこでミスが発生して、それによってさらに精神状態がより悪化するなんて最悪の悪循環です。
そこで今回は、どうすれば精神的に少しでもいい状態で仕事をできるかについて考えて見たいと思います。

一番大切なのは、自分の今の状態を客観的に把握できるようになるということです。今の状態とは精神的にどんな状態なのかというのもそうですが、現時点で抱えているタスクと心身面のコンディションを天秤にかけて、このまま進んで問題ないかということです。
ちょっと精神的に疲れているなーとか感じたら、少しだけ外に出て深呼吸するとかお水を1杯飲むなどしてリラックスすると良いでしょう。
あるいは、それでもどうしてもつらい、無理だと感じたら、(できる場合とできない場合がありますが)チームのメンバーに相談して期限を延ばしてもらうとかあるいは1日だけ休ませてもらうなどするのも1つの選択肢かもしれません。

また、特に精神的にベストでない状態で何かをしている場合は、今やっていることが本当に大丈夫なのか、普段以上に気を配ったほうがいいと思います(難しいかもしれませんが)。例えば変なバグを埋め込んでいないかとか、あるいは人に宛てたメッセージで誤解を招くようなことを書いていないかなど、それによって今の状態をさらに悪化させることにならないよう1歩立ち止まって考えるのは大切なことだと思います。

後は常日頃から自分なりに気持ちを切り替える方法を持っておくことは大事だと思います。例えば甘いものを食べるとか運動するとか、あるいは誰かと雑談するとかです。自分は以前ミスをしてすごい落ち込んでいた時にyoutubeで某議員の動画を見て大笑いして、少し気持ちが落ち着いたことがありました(苦笑)。

そんなこんなで今回はどうすればいい状態で仕事ができるかについて考えて見ました。とは言っても、今までの自分を振り返って正直必ずしも実践できていたわけではないですが(むしろイライラや落ち込みでドツボにはまったことが何度もあったので、その反省と自戒を込めて)、少しでもいい精神状態を保つ方法を日々考えて実践していきたいと思います。

Qiitaでこんな記事を見つけました。常に自分をいい状態にしておくというスキル、本当大事ですよね。