kazokmr's Blog

試したこと、読んだこと、見たこと、聴いたことを書きたくなったら書くブログ

JetBrains Academyの実施記録

去年の8月頃から流れでJetBrains Academyを取り組んでいた。

kazokmr.hatenablog.com

無料期間を過ぎてもキリが悪かったのでそのまま続けていて、満足いく所まで終えられたので2021年5月末でサブスクを一旦解除するので、やったことの記録をまとめておく。

注)内容が宣伝っぽくなってしまったり、未経験者の勉強のまとめみたいになっているが、今の会社に転職してからはコードを書くことが減ってしまったが、前職で10年ほど開発でガリガリ書いていました。

Jetbrains Academyは主に、未経験者向けのサービスだと思うので、正直場違いな感じで続けていましたけど、受けてみて初めて知ることも多かったので、毎日楽しく学ぶことができました。

プロフィール

hyperskill.org

去年のお盆の頃に始めて、毎日最低1日は解いていた。(毎日1問ずつ問題が出るのでそれは必ずやるようにした。)

トラック

トラックは専攻とかコースのようなもの。それぞれに決められたトピックとプロジェクトを進めていき達成していく。

今回自分がクリアしたものは、Java Developer, Kotlin Developer, Frontend Developer, Preparing for the AP Computer Science (Java), Java Desktop Application Developer の5つ

最後の2つのトラックは特に意識していなくて、Javaのトピックを全て進めていたら達成していた。

f:id:kazokmr:20210513052102p:plain
Tracks

プロジェクト

達成したプロジェクトはJava, Kotlin, Frontend(HTML, CSS, Javascript)合わせて33
難易度の内訳は、Easy : 7, Medium : 5, Hard : 9, Challenging : 12

達成したプロジェクトのコードはポートフォリオとして公開しても問題無いみたいなので、GitHubで公開している。

GitHub - kazokmr/Jetbrains-academy-Java: Jetbrains Academy Java Developerコースでクリアしたプロジェクトです

GitHub - kazokmr/Jetbrains-Academy-Kotlin: Jetbrains Academy でクリアしたKotlinプロジェクトです

GitHub - kazokmr/Jetbrains-Academy-Frontend: Jetbrains Academy の Frontendjj Developerコースでクリアしたプロジェクトです

トピック (ナレッジマップ)

トピックは1つの学習テーマで、セオリーと呼ぶ説明ページを読んだ後、プラクティスとして幾つかの問題に正解することで進めていく。

ラクティスは、選択式もあれば、実際にコードを書いてテストするタイプもある。間違っても特にペナルティは無いが、プロジェクトを達成することでもらえるGemを使ってヒントを得たり、答えを知ることもできる。

コードを書く問題の場合は、正解後に自分のコードを公開したり、他の人がアップしたコードを見ることができる。

さらには受講者同士でコメント欄で、意見や質問、ヒントを出し合ったりもできる。

自分も実際にコードをアップして、イイねといったリアクションをもらったり、「何でこんな書き方をしているの?」って質問をもらって説明したりした。

以下は、達成したトピックをカテゴリ別にマッピングしたもの

Java

Java11 の内容がベースで体系的に200近くのトピックがある。現在の

f:id:kazokmr:20210513060406p:plain
Java

Kotlin

まだβ版扱いだったのでJavaほど網羅されてはいない。スコープ関数も無かったけど進めていくうちに他のサイトを見て覚えた。
Kotlinを本格的に触るのはこれが初めてだったけど、Javaより使いやすい点もあると思ったし好きになった。

f:id:kazokmr:20210513060559p:plain
Kotlin

JavaScript

Javaコースに含まれている課題もあったので他にも行ってみた。 JavaScriptはここまで体系的に学んだことが無かったのでやってみてよかった。

f:id:kazokmr:20210513060735p:plain
JavaScript

Scala

Scalaもβ版でトピックも8つしか無かったので理解したとは言い難いが、前述のKotlinをクリアした後だったので、Kotlinの雰囲気で学ぶことはできた。

f:id:kazokmr:20210513060823p:plain
Scala

Backend / Android / Java Swing

どれも前職で関わったプロジェクトで1回以上は触ったことがあったけど、JavaScriptと同じで体系的に学んだことが無かったので良かった。これらを理解した上でもう一度あの時にプロジェクトを進められたら面白そうだと思った。

f:id:kazokmr:20210513060925p:plain

Frontend

利用期間が終了するまでに日数があったので最後にプロジェクトも含め進めた。前職の時からそうだったのだけど、CSS使って、画面のレイアウトを考えたりするのは苦手だなと改めて感じた。(大きさや位置を調整したり、どんな色がいいか考えたりする所)

HTML4 や CSS2 の頃のことしか知らなかったので、その頃より書きやすくなった気はするし、Javascriptと合わせて動的な制御を行うのは面白い。

f:id:kazokmr:20210513061005p:plain

Fundamentals

情報工学の基礎やアルゴリズムが学べ、その他にもビルドツールやGit、IDEなどの開発系ツール、データベース・SQLについて学習できる。

アルゴリズムは、大学の専攻が情報系では無かった(電気工学)だったので、一から学ぶことができて知識の底上げになった。

f:id:kazokmr:20210513061106p:plain

Math

プロジェクトを達成するために必要なものトピックだけを実施した。

英語で書かれているのもあるが、数学は大学以降はほとんど勉強していなかったから結構難しかった。
学生時代は得意科目の一つだったと思っていたけど、かなり衰えてしまっていた。

全部のトピックを取り組みたい気持ちもあったけど、それはまた別の機会にする。

f:id:kazokmr:20210513061409p:plain

まとめ

プログラミングだけでなくて、情報工学の基礎的なことも体系的に学べるので、個人的にも学生時代の復習ができた気がしてチャレンジして良かった。

セオリーも問題も全て英語なので、説明がわからないことや問題文の意味を取り違えてしまうことも多かったけど、DeepLを使って続けることができた。

今回、大体の内容をクリアできたし他に学びたいこともあるので、一旦やめるが、トピックが増えて復習したいと思ったら再開すると思う。