学習方法

学習にやる気が出ない時は、「仕事」と考えましょう

仕事

 みなさん、転職に向けて学習を勧められていることと思います。

 でも、どんなに楽しいことでも、やる気が出ないことってありますよね。そんな時には、あえて何も手をつけない、もしくはハードルを大きく下げてしまうことも有効です。

 でも、他に有効な方法があるかもしれないと考えました。それが「仕事」と捉えることです。

 そう考えたのは、このツイートを読んだのがきっかけです。

 やっぱり、仕事だと強制力が働くんですよね。やる気が起きなくても、「仕事」と言い聞かせて第一歩を踏み出すのです。

 第一歩を踏み出せばいつの間にかできていたということは普通にありますからね。

 まずは、やる気が出ない時には、「仕事」と思って第一歩を踏み出しましょう。

アルケミスタK

Docker、AWS、kubernetesのいい学習方法を見つけました

インフラ

 まずは学習内容を絞っておいた方が良いので、いますぐは学習しませんが、今モダンな会社ではDocker、AWS、kubernetesの3つはかなり当たり前になりつつあります。

 その学習方法を紹介した動画を見つけました。

 3つを合計15時間で最低限学べる方法を紹介しています。

 紹介していますのは、クラウドインフラエンジニアyoutuberのくろかわこうへいさんです。

 私はまだまだそこまで行っていませんが、内定をとったらこの動画を思い出して学習しようと思います。

アルケミスタK

可読性をあげる方法をまとめた記事をご紹介

 ドラクエ風ゲームプログラムで、Rubyを学習しているんですが、教材の中で「可読性」を上げることが大切だと記載されていました。

 「可読性」というのは、要するに読みやすさです。可読性が高い方がチームで開発するのに他の人がコードを読む労力を減らせますし、自分自身も無茶苦茶なコードを書いていたら後で直すのが面倒ですからね。

 独学だとそういう部分は見逃しがちですが、実際の仕事ではチーム開発がデフォなので、避けては通れないですね。

 教材では、「目的ごとに処理を分ける」ことを意識しましょうと書かれていました。こうすると、処理の流れが分かりやすくなりますよね。

 でも、他にも可読性を上げるテクニックはないか探していたら、いい記事を見つけたので、今日はそれを紹介します。

 記事は、「残業ゼロのIT企業」、アクシアの米村社長が執筆された記事です。

 

 「プログラムは人間が読む」という部分に集約されますね。だからこそ、人間にとって可読性が高いプログラムを書くのが重要と。

 他に記事で印象に残ったことは、「オリジナリティを発揮してはならない」ということです。

 オリジナリティを変なところで発揮して、読みにくくなってはなんの意味もないんですね。あくまでもより良いパフォーマンスやサービスにオリジナリティがあればいいだけです。

 だからこそ、他の人が書いたコードを読んだり、規約を読んだりするのが大事なんですね。もっとも、会社ごとのローカルルールもありますし、言語ごとのローカルルールもあるので、そこは勉強していきましょう。

 後は、「リーダブルコード」という本が有名ですね。積ん読で古本屋に売ってしまったんですが、書い直そうかな・・・。

 これからの学習では、そういう「カタ」を一層意識して進めます。

 では、もうすぐお昼ですが、学習を進めます。

アルケミスタK

次はデータベース周りを学習しようと思います

 

 言われてみると、データベース周りを勉強している人はあまり見かけないですよね。

 でも、Webサイトはデータを保存して取り出してナンボなサービスが多数あって、そのためにはデータベースを理解する必要があるんですね。

 今はドラクエゲームと人生逆転サロンの動画教材を進めているんで、次はデータベース周りを学習します。

 使うのはUdemyの動画です。

https://www.udemy.com/course/standard-sql-for-beginners/learn/lecture/9424616#content

 恐らく、実際の仕事内容を理解したら更にデータベース周りの必要性を理解できるので、ここらもやっていければなと。

https://www.udemy.com/course/ziibywyn/learn/lecture/9622608#content

今日は朝に投稿してみました。

アルケミスタK

もくもく会に参加してきました

 今日はもくもく会でした。

 クラウドワークで獲得したライター案件を完成させた後に積ん読していた本を読もうとしたのですが、思ったよりライター案件に時間を取られました。

 一応完成させて作成案をクライアントに送付しました。

 残りは1時間程度しかなかったんですが、積ん読していた本を読みました。

若手 ITエンジニア最強の指南書

[日経SYSTEMS]の若手ITエンジニア 最強の指南書

(AMAZONより画像引用)

 内容はかなりSier寄りという印象を受けました。技術よりも実際の仕事の進め方の話が多かったと感じました。

 どちらかと言えば、将来は技術をウリにするより上流工程にシフトする可能性が高いので、読み返して内容を落とし込んでいきます。

 主催者の方と話したら、Sierはブラック企業が多いものの、ちゃんとコードを書ける仕事を選べればものすごく成長するし人も不足していてチャンスは大きいと話していました。

 もくもく会の後は、twitter繋がりの飲み会に途中参加しました。

 自分よりも若い人たちばかりでしたが、やっぱり刺激を受けました。フロントエンドの流行り廃りが激しいのは本当のようです。

 それと、想像以上にWebデザイン、フロントエンド、バックエンド、インフラの間の壁は厚いようで、専門性を持ちながらそれぞれの分野をかじったことがある、別分野の人脈がある人は有利と感じました。

 ご一緒させていただいたみなさま、ありがとうございました!

 

アルケミスタK

英語がわかる人なら注目の学習サービスはこちら!

 フォロワーさんの投稿を読んでいたら、ちょっと気になるサービスを見つけたんですよ。

それがこちら。

freecodecamp

 読んでいただけるとわかるのですが、英語のサイトです。ですが、フォロワーさんいわくクオリティが高くて無料と大絶賛でした。

 そのフォロワーさんは事あるごとに、プログラミングを学習するなら英語教材の方がレベルが高くて分かりやすい教材が多いと言っていたんですよ。

 考えてみたら、どの言語も最後は公式ドキュメント英語ですもんね。コーディングだって結局英語ですから、その練習と考えればいいのかもしれません。

私も早速トップページを読んでみました。

 なんでも卒業生にはAppleやGoogleなど名だたる企業に就職した人もいるとか。

 これだけで期待値が高まりますね。

 qiitaにもfreecodecampを紹介した記事がありました

 そしてそして、コースを探してみるとJava tutorialもあるじゃないですか!gitやSQLなど周辺知識もこのサイトで学習できそうです。

 今はライターに専念しますが、Javaの勉強を再開する時には、これは覚えておく価値がありそうです。

以上、アルケミスタKでした。

アルケミスタK

あなたはどのタイプ?自分の認知特性を知ろう!!

 みなさん、本田40式認知特性テストをご存知でしょうか?本田真美さんが考案したテストで、認知特性を診断できるテストです。

 具体的には、目で図や絵などを見て表現するのがやりやすい視覚優位、言葉で理解して表現するのがやりやすい言語優位、耳で聴いた情報を理解して表現するのがやりやすい聴覚優位の3つに分けて、自分がやりやすい方法を理解しようというものです。

 下にリンクを貼っておきましたので、エクセル表をダウンロードして、早速診断してみましょう!

https://www.micri.jp/ninchitokusei/

 診断結果は出ましたでしょうか?診断結果が出ましたら、リンク先を読んでいただけるとそれぞれのタイプの特徴が紹介されていますよ。

 私もやってみました。私の結果は、「④辞書タイプ」が一番で、その次が「③ファンタジータイプ」でした。ゴリゴリに言語優位ですね(汗)

 ノートがキレイかはさておき(文字汚いしw)、かなり納得できる診断結果でした。

 確かに人の顔は名刺の情報で覚えることが多くて、顔と名前がなかなか一致しないんですよ。お袋もそうだったんで、遺伝でしょうね。

 文章作成も自覚はないですが結構褒められるんです。これも言語優位が影響しているんでしょう。

 逆に最下位だったのは「①カメラタイプ」。私絵心ないんですよねー(汗)Webデザイナーもいいかなと思った時期があるんですが、実際仕事をするならやはりエンジニア、それもフロントよりバックエンドだろうなと思います。

 言われてみると、プログラミングスクールの課題でWebサイトを作っていた時には、フロントのデザインはテキトーになってました(汗)

 それよりもロジックの組み立ての方がやりやすかった気がします。やりたいかどうかはともかく、文章を中心に理解できる仕事、学習方法が向いているのは確かでしょうね。

 このように、本田式認知特性テストは、自分に適した学習方法や仕事を診断するのに役立つテストと思います。もちろん、このテストが全てとは思いませんが、みなさんぜひやってみてください!

アルケミスタK

私がJavaを主軸に戻すことが濃厚な理由(後編)

Javaを選ぶ理由の前に

 昨日は、私はバックエンドエンジニアを選ぼうかなと考える理由を説明しました。

 今日は、バックエンドの言語が様々ある中で、Javaを選ぶつもりの理由を解説します。

未経験者はこの3つの言語から選択しましょう

 未経験者は、この3つうちどれかを選べばいいと思います。それは、Java、PHP、Rubyの3つです。

 これは、2018年のエンジニア求人数調査のトップ3そのままです。(レバテック調べ)一位Java、二位PHP、三位Rubyですね。

 求人数が多いということは、それだけ学んだ言語を活かせる案件を獲得できる可能性が高いですし、学習教材も豊富だから学びやすいんですよ。

 機械学習だと先に上げた3つではなくPythonが使われたり、海外ではJavaScriptの勢いがすごいんですが(フロントエンド希望ならJavaScriptは必須です!)、ひとまず日本でバックエンドエンジニアになりたいならこの3つのどれか一つで充分でしょう。

器用貧乏は禁物!まずは一つの分野をしっかり固めましょう!!

 ただ、ここで注意したいのは色々な言語をマスターする必要はない、むしろマイナスということ。この動画の通りです。

 中途半端に手を出してもしょうがないですよ。選択する前段で悩むのは結構で、実際私も悩み中ですが、転職活動する時には何をウリにするかはっきりさせましょう。

 それに、周辺知識でどうせフレームワークとかSQLとかgitとか覚えないと行けなくなりますから、言語を色々覚える必要は全くありません。

 おまけに、最初学ぶ言語なんてそんな重視されません。私は前回の就職活動ではJavaを学んでRubyは名前しか知らなかったのに、Rubyメインの会社から内定取りましたよ。

私がJavaを主軸にしたいと考える理由

 お待たせしました。私が、バックエンドならJavaを選ぶ理由を述べます。

1.間口が一番広い

 先ほどの求人数ランキングの通りです。やっぱり求人数の多さは魅力ですよ。JavaはWebアプリ以外にもAndroidアプリとか業務用システムとか本当に色々な用途で使えるから、案件数が多いんですよね。

 しかも、間口が広いということは、それだけ良質な教材がたくさんあるということ。もちろんプログラミングスクールでもJavaを教えているスクールはいくらでもあります。

 Java自体はちょっと難易度が高いんですが、それ以上に学びやすいので、そういう意味で割と習得しやすい言語だと考えます。

2.自社開発Web企業にこだわりがない

 ネット上でよくわいれているのが、自社開発に入るのが一番で、自社開発(特に良質なベンチャー自社開発)でよく使われているのがRubyだからRubyがいいという話です。

 確かに自社開発は魅力があるんですよ。元請けだから金銭的にも有利ですし、技術的にもレベルが高い、美味しい仕事は下請けじゃなくて身内にやらせたいですよね。

 だから、案件ガチャ、つまり自分が望まない、レベルが低い案件をあてがわれる可能性が低い自社開発に入ろうという風潮が強いのですが、私は少なくとも未経験者がいきなり自社開発にこだわるのは得策とは思いません。

 まず、自社開発は花形なので、経験者との競争を勝ち抜かないといけなくて、しかも入ったら入ったで経験者に追いつき追い越さないといけないんです。

 実際、私が知っている人でも未経験から自社開発企業に入った人がいて、その人は土日関係なくゴリゴリ勉強しています。その人は半ば趣味でやっていますが、そこまでできると言い切れないとついていけないと思います。

 ただ、私はそこまでの甲斐性があるとは思えなかったんですよね。ライター稼業と並行してやりたかったんです。

 また、特に自社開発ベンチャーだと、本当に何でもかんでも自分でやる必要があります

 私が知っている人ですと、バックエンドでPHPをメインに学習していたのに、未経験で入った自社開発ベンチャーでいきなり完全未経験のWebデザインをやれと言われた人がいます。

 ベンチャーだと人数が少ないから普通にあり得ますよ。これをチャンス、魅力と思えるならどんどん挑戦すべきでしょう。ただ、私はそうは思えなかったんです。

 それに、自社開発はあくまでもサービスが主役だと思うんですよね。使いたい技術があるからそこを選ぶというのはどうなのかな?と思いますね。

 ちなみに、私が選択する可能性が高いのはSESです。SESは勤務時間がかなりしっかり決められていますし、案件ガチャが多いと言われていますが、会社を選べばそこまで酷くないと分かってきたので、精査すれば問題ないかなと。

 最初は奇を衒わず、先ほどの3言語のいずれかを使ったオーソドックスな案件がいいですね。そこから段々力をつけていくのが確実かなと。

 もっとも、自社開発でサービスにものすごく惚れ込んで、技術的にも自分が学びたい技術が使われていたら考えるかもしれませんね。

3.応用が一番効く

 実はこれが一番大きな理由だったりします。

 まず、Javaはやや難易度が高いので、Javaをしっかり使いこなせるならJavaと比較して簡単なRubyやPHPは容易に習得できます。

 これは、私自身が一時期Rubyをメインに学習してきたので、かなり確信をもって言えます。逆にRubyかPHPからJavaはちょっときついかもですね。

 また、今バックエンドで高単価と言われているGo、Kotlin、Scalaといった言語は、Javaをリスペクトしていて、Javaから入る人は多数います。

 Javaは自社開発では採用されないという話もあるらしいですが、そうでもないみたいですよ。特に、金融×ITのFINTECHですと、Javaがメインだそうです。金融システムではJavaがメインですからね。そもそも前述の通り未経験者がどの言語を学んだかはさして重要じゃないですよ。

 後は、副業の候補としてプログラミングスクール講師も考えていて、その間口も広いんですよね。そういう意味でも応用がすごく効くと思います。

 以上です。季節の変わり目に差し掛かってきました。体調崩しやすと思いますが、お体に気をつけて。

アルケミスタK

私がJavaを主軸に戻すことが濃厚な理由(前編)

 私は以前転職活動していた時には2ヶ月間Javaを学習していました。それで、昨年はRubyを学習していたんですが、Webデザイナーやフロントエンドエンジニアなどにも浮気しつつ最終的にはJavaを主軸に戻してバックエンドエンジニアを志望することが濃厚です。

 今日と明日は、なぜ私がバックエンドエンジニアを志望するか、Javaを主軸に戻すことにしたかお話しします。

 今日は前編で、Javaと言う言語を選択した前段で、なぜバックエンドを主戦場にしたいかをお話しします。

 エンジニアの仕事の種類については、以前お話ししました。その中で、バックエンドエンジニアを主戦場にしたいと考える理由は4つあります。

 ぶっちゃけ消去法なんですが、ご容赦願います。

⒈「正確性」より「論理的思考力」が強いから

 こちらは、やまもとりゅうけんさんのブログをご覧いただきましょう。本人がインフラエンジニア をしていたインフルエンサーなのですが、プログラマーとインフラエンジニアの違いを説明しています。

 最終的にはプログラマーもインフラエンジニアも両方の知見が必要になってくるんですが、どちらかと言えばプログラマーが論理的思考力インフラエンジニアが正確性が重視されます。

 で、自分は正確性と論理的思考力のどちらが強いか=適性があるかを考えた時に、明らかに論理的思考力だったんですね。正確性は(以下略)

 実際、プログラミングスクールでも「ロジックの組み立てがしっかりできてます。今のまま行けばエンジニア行けますよ」とお墨付きいただいていました。

 インフラでもオンプレじゃなくてクラウドインフラなら違うかもしれませんが、クラウドインフラでもオンプレの経験ゼロで高いレベルの仕事ができるかは疑問です。

 やはりどこかでオンプレの経験を積まないといけない気がして、だったら少なくとも入り口はインフラエンジニアじゃないと感じました。

2.最新の技術「ばかり」追いかけるのは違うと感じたから

 一般によく言われるのは、フロントエンジニアとバックエンドエンジニアだと、フロントエンジニアの方がより技術の流行り廃りが激しいと言われます。

 これはバックエンドエンジニアでもそうだとは思いますが、となると業務時間外でもゴリゴリ学習する必要があります。その傾向が、未経験でフロントエンジニアになると一層顕著になると思ったんですよね。

 私が知っている人だと、某有名メーカーを退職してエンジニアに転向した人がいますが、その人は土日もガンガン自主学習してtwitterで報告しています(尤もその人はバックエンドですが)。

 もちろん私もエンジニアに転向したいですよ?業務時間外も勉強する気マンマンですよ?ですが、私はそこまでエンジニアの勉強にフルコミットしたいとまでは思わなかったんですよね。

 ライターの仕事と並行して2本柱で当面行きたいんです。となると、流行りモノばかり追いかけて、ライター稼業が全然できなくなるのは違うと思ったんですよ。

 実際、フロントエンジニアからバックエンドエンジニアにシフトしようとしている人と話したんですが、私が作成したポートフォリオを見て、「ここまでできているならフロントエンジニアよりバックエンドの方がいいですよ」と言われました。

3.感覚的な仕様変更が少ない方が望ましいと考えたから

 フロントエンジニアとWebデザイナーですと、どうしても感覚的な仕様変更が多いとよく言われます。発注者の決裁者の気分次第で、意思決定が変わってしまうんですよ。

こちらはkentaさんの動画(6分50秒ごろ)をご覧ください。

 その点、バックエンドだとそういう感覚的な仕様変更ができる余地は少なくて、やりやすいと考えたんですよね。2と同じく、ライター稼業もしたいので、エンジニアとしての仕事で過度に消耗したくなかったんです。

 脱線しますが、フロントエンジニアを主戦場にしているくすたん さんの動画も参考までに紹介します。この人は鹿児島在住のエンジニアで、上京せずに案件を取っていてすごい人だなと思います。

4.単価が高い傾向があるから

 こちらの記事をご覧ください。tech::campというプログラミングスクールの記事です。

 この中で、フロントエンジニアとバックエンドエンジニア、インフラエンジニアの年収を比較しているんですが、 バックエンドエンジニアが600万〜800万と一番高いですね。

 まあ、仕事内容や技術、経験年数などの要素で全然年収は変わってくるのですが、少なくともフロントエンジニアよりバックエンドエンジニアより単価が高い傾向にあるのはあながち間違いじゃない気がしています。

 私の持論なんですが、「本当の稼ぎどころはバックエンドにあり」と思っています。

 例えば、ハンバーガー屋で本当の稼ぎどころってハンバーガーだと思いますか?実は違うんですよ。本当の稼ぎどころはポテトでありドリンク。ポテトやドリンクは原価が低くて儲かるんです。

 ハンバーガーが目立つ商品(フロントエンド)なんですが、本当の稼ぎどころはハンバーガーと抱き合わせで買ってもらうポテトでありドリンク(バックエンド)なんですよ。

 その論理で言えば、バックエンドの方が稼ぎやすいのは直感的に理解できるんですよね。え、話がズレてる?

 以上が、私がバックエンドエンジニアを主戦場にしたいと考える理由なのですが、一口にバックエンドエンジニアと言っても、扱う言語は様々です。

 その中でもなぜJavaを選ぶことが濃厚なのか、それは明日また説明します。

アルケミスタK

学習教材を探す手段を新たに見つけました

 みなさんは、学習教材はどのように探しているでしょうか。多くの人は書籍やProgateなどのサイトを使っていると思います。

 ですが、新たに学習教材を探す手段を見つけたので、今日はそれをシェアします。

 それは、企業の研究用教材です。意外に思うかもしれません。普通は研修教材は門外不出か、そもそも研修は外注するかだと思われるでしょう。

 ですが、中には一般に公開しているところもあるんです。

 例えばサイボウズ。業務開発システムを開発している会社で、柔軟な働き方が選べることに定評のある会社です。青野社長は男性社長ながら育休を取るなど先進的な取り組みを行なっているので、注目してみてはいかがでしょうか。

 話は脱線しましたが戻しましょう。サイボウズは、なんと新人研修用の資料を無料で公開しているんです!こちらをどうぞ!!

 内容はWebの基礎からデータベースまで幅広く網羅されています。k8sやDockerもありますね。

 ある程度の規模になると、はっきり分業体制が敷かれますが、それでもある程度自分の専門外の分野の知識もあった方が仕事はスムーズに行くもの。こう言う網羅的な資料は嬉しいですね!

 内容は正直私も理解できない部分がほとんどで、みなさんも理解できなくて当たり前です。それでも、スライドがわかりやすそうで、それだけでもレベルの高さが伺えます。

 そもそも、研修資料を公開するという所に自信を感じますよね。実際、新人研修や駆け出しエンジニアに役立ててほしいとうたってますからね。これは、IT業界屈指の優良企業と言われるのも頷けますよ。

 まあ、こういうことをしているからこそ人気企業であり続けるんでしょうね。働きがいのある会社ランキング2位はダテじゃありません。

 また、ニコニコ動画のドワンゴは、Scalaと言う言語を採用していて、新入社員向けのScala学習用テキストを公開しています。

 Scala自体は高単価であるものの、学習難易度が高めなのと採用している会社がまだまだ少ないことから、未経験者が手を出すのはあまり勧めません。

 それでも、こういうテキストがあることは覚えておいて損はないのではないでしょうか。

 こういう研修用資料って、ある程度力がある会社じゃないと自前では作れないですし、しかも公開すると言うことはクオリティが低いものは出せないですよね。

 だから、特に未経験者は見る価値があるものだと思います。

 今日は以上です。季節の変わり目で少し風邪気味になってしまいました。しっかり日月で回復させます。

アルケミスタK