AtCoder入茶に1年以上かかったものの記事 ~AtCoder入門のススメ~

# 0.はじめに
はじめましてこんにちは、tadanobutaaaaaです。
AtCoderを始めて夢だった入茶をしたのでこの記事を書きました。

入茶後にツイートをしたところ色んな人たちにお祝いされました！
嬉しい限りです^^
<blockquote class="twitter-tweet" data-lang="ja" data-theme="dark"><p lang="ja" dir="ltr">念願だった茶色にようやくなれました<br>1年以上かかったけど色ついてることに感動してる <a href="https://t.co/jfXqKj5I7h">pic.twitter.com/jfXqKj5I7h</a></p>&mdash; P (@P_tdn2) <a href="https://twitter.com/P_tdn2/status/1786758529359217139?ref_src=twsrc%5Etfw">2024年5月4日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 1.本記事の対象者
- 競技プログラミングを始めたい方
- AtCoderで灰色(レート1-399)の方
この記事は初心者向けに重点を当てて書いたつもりです。

# 2.自己紹介
- 高校2年生
- 競プロではPython,C++を使用
- 競プロをやるまではプログラミングにほぼ触ったことない

# 3.競プロを始めた理由
AtCoderを始めた理由は好奇心でした。

たまたまX(旧Twitter)を見ていたところAtCoderをしている人に出会って登録しました。
また、プログラミング自体に前から興味があってプログラミングを始める機会が欲しかったっていうのもありました。

# 4.競プロをやって良かったこと
### プログラミングスキルが身についた
もちろんのことですがプログラミングスキルが上がりました。AtCoderのレートを上げるために過去問をといてプログラミングスキルを上げることを繰り返してきました。

### 大会に出るようになった
後で大会については詳しく触れますが競プロを始めてから色々な大会に参加してきました。大会に出ることで経験や実績にすることができました。

### プログラミングに興味が出た
技術書を買ってプログラミングの勉強をしてみたり、自分で軽くものを作ってみたりしました。

# 5.AtCoderをやるにあたって
### 言語選定
AtCoderで使われているプログラミング言語は多くあります。けれど実行速度が遅い速いや、機能の違い、解説の量の違いがあります(公式の解説では後で解説する２つの言語が主です)。また、この先簡単に特徴を上げますがあくまでも私、個人の評価です。
- **Python**
実行速度: **遅い**
習得難易度: **易しい**
使用率: **中**
入門教材: [**Python入門 AtCoder Programming Guide for beginners (APG4bPython)**](https://atcoder.jp/contests/APG4bPython)
    
    自分は競プロを始めたとき最初に触ったのはPythonだった。初心者におすすめするならPython。また、最近話題のAIなどの分野にも長けている。
　
- **C++**
実行速度: **速い**
習得難易度: **難しい**
使用率: **高**
入門教材: [**C++入門 AtCoder Programming Guide for beginners (APG4b)**](https://atcoder.jp/contests/APG4b)

    競プロを勝つという意味で言語選定するならC++。自分はもしC++を習得したくなったらPythonを習得してからでも遅くないと思う。

# 6.茶色に上がるために
### 書籍を使う
[鉄則本](https://amzn.asia/d/dcWTapG)や[鹿本](https://amzn.asia/d/dzUVsdv)、[けんちょん本](https://amzn.asia/d/aXv7G5O)などがあります。紹介は割愛します。

### 過去問を解く
[AtCoder Problems](https://kenkoooo.com/atcoder#/table/)や[AtCoder NoviSteps](https://atcoder-novisteps.vercel.app/problems)を活用すると良い。
個人的にはA問題をすべて埋めたことによって問題の解き方を身につけることができたのでおすすめします。

### 記事を読む
[Qiita](https://qiita.com/) ,[note](https://note.com/) ,[Zenn](https://zenn.dev/) などの記事共有サイトなどを活用することは入茶の近道にすることができます。先人たちの知恵を借りないわけにはいきません。活用しましょう。
[E8さんの記事](https://qiita.com/e869120/items/f1c6f98364d1443148b3)などが役に立つことでしょう。

### 助けを求める
X(旧Twitter)を使って競プロerに助けを求めることもいいでしょう。わからなかった問題など聞きたいことをツイートするときっと心優しい人が助けてくれますよ。

# 7.大会について
大きく分けて２つ紹介します。大会によっては就職や大学進学に役立つ実績にすることができます。
### 大会(競プロ関連)
- [JOI(日本情報オリンピック),JOIG(日本情報オリンピック_女性部門)](https://www.ioi-jp.org/)
対応言語: **AtCoderで使える言語すべて(尚、本戦以降はC++のみ)**
募集日時: **2024/07/01~2024/11/14**
対象年齢: **高校３年以下(春季トレーニング参加は高校2年以下)**

    科学オリンピックの一部なので難しいのではと思う方もいらっしゃるかもしれません。
ですが、灰色でも一次予選通過は全然叶えられます。

    僕の体感だと二次予選通過には茶色、緑色程度の実力がないと通過は難しいと思います。実際僕は通過することができませんでした。
　
- [パソコン甲子園](https://pckoshien.u-aizu.ac.jp/programming/)
対応言語: **C,C++,Java**
募集日時: **2024/07/01~2024/08/05**
対象年齢: **高校生と高等専門学校生(3年生まで)**
    
    パソコン甲子園のプログラミング部門は競プロの問題が出題されます。この大会はJOIとは違い、2人1組を1チームとして競います。尚、この2人は同じ学校である必要があります。
　
- [AtCoder Junior League 2024(AJL2024)](https://atcoder.jp/contests/ajl2024)
対応言語: **AtCoderで使える言語すべて**
募集日時: **2024/4/01~2024/9/30,　2024/10/01~2025/03/31**
対象年齢: **中学生、高校生(尚、AJL2024Winterでは中学３年生と高校３年生を除く)**
    
    今まで触れた大会の中では一番敷居が低いと思います。ですがはっきり言って初心者には入賞は難易度がかなり高いですが、出るだけでも意味は十分あります。

紹介しきれませんでしたが他にも[ICPC](https://icpc.iisf.or.jp/)などがあります。気になったら調べてみてください。

### その他(競プロ以外)
- [技育CAMPハッカソン](https://talent.supporterz.jp/geekcamp/)
対象年齢: エンジニアを目指す学生
    >ハッカソンとは、ハック（hack）とマラソン（marathon）を組み合わせた造語で、短期間で集中して開発を行うイベントです。

    比較的初心者向けでプログラミングっぽいプログラミングをしたい人にはもってこいです。仲間づくりに使うのもいいでしょう。
    チーム参加もできますが一人から参加が可能です。
# 8.AtCoder以外のサイト
[Kaggle](https://www.kaggle.com/)や、[coding game](https://www.codingame.com/start/)などがあります。殆ど触れたことがないので説明は割愛します。
競プロが好きならきっと好きなはず。
# 9.最後に大事なこと
入茶するまでに何度も自分を見失いました。
他人と過度に比べすぎて競プロに対するモチベーションが消えかけました。
自分のペースで取り組むことはすごく大事です。基礎の基礎だけれどそこを見失うと立ち直れません。
**この記事が誰かの助けになれたら幸いです。**