LoginSignup
0
0

初心者がAtcoderの環境を構築してみた

Last updated at Posted at 2023-08-14

こんにちは。
Atcoderで精進中のこんとらりあんと申します。

はじめに、この記事は読者の方にとって参考になる点は多くありません。
初心者+Python+Macユーザーなら多少は参考にできる箇所があるかもしれません。

Atcoderの環境を見直してみた

ズブの素人である私の悩みは、Atcoderの問題を解く際、サンプルコードを自分で入力して、テストするのがとてもとてもしんどいです。

この前もコンテストに参加したし、たまには違うこともしてみるかということで、開発環境を見直してみました。

私の現在の開発環境

・Mac book Pro (何を書けばいいのか分からないが、intel core i5、メモリ8GBなのでそんなにスペックは高くないかと思います)
Jupyter notebook+Docker
・言語はPythonです

かなり珍しいタイプではないでしょうか?
Jupyter notebookを使っているのは、プログラミングを始めてからオンラインの動画で学習していて、その講座で使う機会があったためです。
Anacondaが入っているので、ライブラリもそれなりに使えますし、講座の学習とAtcoderが並列で学習しやすいメリットがあります。

用語は知りませんが、1行ずつ実行できるのも初学者にはいいと思います。
現状、重いコードを書くこともないので、デメリットに関しては気になりません。

実際にやってみる

さて、Qiitaやブログ等を参考に、みましたがどうにもそれぞれのマシンの状況が異なり初心者には理解が難しいです。

そんな中で、参考にしたのはこちらです。
Pythonで始めるAtCoder環境構築【初心者向け】

こちらのサイトを見て、ほぼ全て実装しました。
なお、VS Codeは依然インストール済みなので、その作業は今回やっていません。
時にはChat gptに聞きながら作業の補助をしてもらっています。

ただそんな上手くいくわけもなく、、
躓きその①
VS Codeの拡張機能がよく分からない。
こちらのサイトは問題ないのですが、他のサイトでは、〇〇という拡張機能を入れてくださいという説明がありましたが、バージョン変更によりまるっきりUI等が変わっているようでした。

躓きその②
間違ったDocker imageを使った。
おそらく他のやり方を試している時に、devcontainer.jsonの中身を編集して、それを放置していました。
結局誤ったコンテナを立ててしまって、それを消してなかったので先に進むことがなかったのだと思います。

いずれもこのサイトだけを参照すれば問題ないかと思います。
惑わされずに、これだと決めた方法のみを実行するのが何よりの近道ですね、、、

実際に使ってみて

さて、簡単な問題を解いたりしてみました。
慣れればVS Codeだけでテストから提出まで完結するのはすごいです。

ただ結局のところ、Jupyter notebookの方が使いやすくないかと思いました。

理由としては、
①細切れにコードを書いていける。
入力の受け取り→処理→出力とセルを分けて書きやすいです。
視覚的にも実行しやすいと感じました。

②提出までに時間がかかりそう。
慣れてないのもありますが、サンプルコードの取得からテストまで、問題とは関係ないコードをいくつか書くのは遅くなりそうだなと感じました。
ABを15分で解いたり、A問題を2分とかで解くのが間に合うのだろうか?と思います。

①に関してはデバックモード等で少しずつコードを実行することは可能なような気がします。
②は慣れだと思いますが現状そんなに効率的に感じられない。

また、VS codeで入力補完してくれる設定も試しましたが、自分には合わず、消しておきました。
ただ解説していたQiitaのブログはこの上ないほどわかりやすかったです。

今後どうするか

今後に関しては依然としてJupyter notebookを使う予定です。
ただ、サンプルコードのテストを効率化することができればなとは思います。
提出はコピペでも時間がそんなにかからないと思いますので、テストだけなんとかしたいところです。
(それが実現可能かは知りません)

最後に、この記事で記載された環境を構築するのに、およそ4時間程度かかりました。
とんでもないほど時間はかかりましたし、なんとか記載した通りに実行しただけですが、それでも賢さが一レベル上がったような気がしています。

今まで、環境を構築するということ自体ほとんど避けていましたが、こういった作業も少しずつ自分で進めていけるようになればなと感じました。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0