質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

7回答

3750閲覧

プログラミング初心者がpaizaでAランク取るにはどうすればいいですか?

nenecchi

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

4グッド

12クリップ

投稿2017/06/27 14:26

paizaでAランクをとって、就職を有利に進めたいと思っているプログラミング初心者の大学生です。

paizaの問題をときたいのですが、問題の答えが出てこない、解説はないで、どうやって勉強すればいいのかわかりません。

問題はあっても、答えも解説もないのでは、勉強することができません。

競技プログラミングのサイトも同様で、解説がほとんどありません。

どうやって勉強すればいいでしょうか?

Yuki-Naka, kackey01, DrqYuto, pogin503👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

ここで回答してもらって誰でもAランク取れるなら paiza の評価基準って一体何なのでしょうね。
出来る人が生き残って、出来ない人が落ちる。それが現実です。出来る人はそれなりの努力をしたか、もしくは一部の天才です。

努力する人はこんな事を言ってる間にもコードを書いてますよ。きっと。

投稿2017/06/27 15:08

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nenecchi

2017/06/28 12:01

その具体的なコードの書き方、努力の仕方、勉強方法を尋ねています。 progate,ドットインストールで文法を覚えても、paizaで問題を解くことができないので、その問題を解くためには、どういうことをすればいいのか、ということを質問しています。
mattn

2017/06/28 14:23 編集

なぜ問題を解かないといけなのでしょうか?プログラミングが上達する一番の方法が「 問題を解く事」になっていないでしょうか? 僕も新人や中途採用の方を面接する事があります。色々な方と面談させて頂きました。今まで「どこどこのサイトで A ランクです」という人に出会った事はありません。ただ、もし今後来られたしても僕はきっと信用しないでしょう。それはそのサイトの判断基準がどうとかそういう問題ではなく、その人に自己解決能力があるか本当に分からないからです。 yona さんも書かれていますが、プログラマは「答えも解説も無い問題を解決する職業」です。仕様を与えられ、設計して自分で組み立てていく職業です。問題を解く行為には必ず答えがあり、間違えていればやり直せます。それが出来たとしてもその人に自己解決能力があるとは思えないからです。 そして何より、プログラミングは自分の作りたいと思った物を実現する為の「手段」です。自分で最初から最後まで何かを作り上げ「見て下さい」と言って来る人の方が何倍も評価に値すると思っています。 ただしそれを評価するには評価する側にスキルが必要になります。それが出来ないので定量的な基準で測ってしまう人もいる訳です。例えば GitHub のスター数などがそれです。スターが多いからといって良くできたプログラムであったりそれを書いた人が良いプログラマだと判断するのは実際には間違いです。GitHub の issue を使いこなし、問題解決が出来ている事が評価に値すると僕は思っています。そこまで見てくれるかどうかは、その面接官次第かもしれませんが。 とは言え、現時点いきなり自分で作りたいと思った物なんて思いつかないかもしれません。それは当然で、まずプログラミングで何が出来るのか分からないのですからそれはしょうがないと思っています。 これは僕個人の意見なので他の人は「違う」と思うかもしれませんが、プログラミングが上達する一番の近道は「人のコードを読む事」だと思っています。なぜその様なコードが一般的なのか、なぜ僕が良いと思っていたコードじゃなく違う書き方がされているのか。それは実際に手を動かして、自分で変更してみて、エラーを出してみないと分かりません。手を動かした人だけが分かる近道です。プログラミングが上手になる人は、きっと問題を解く事などせず作りたい物を実現する為にコードを書いていると思っています。 もちろん、このまま問題を解く事に重きを置いて行かれるのも個人の考えですので僕が文句を言う立場ではないのは承知ですが、ここに質問をして得られた答えの一つとして、僕の様な意見を持った人が少なからずいるというのを理解頂けたらと思います。
guest

0

とりあえず、paizaでAランクを先ほど取りましたので語ります。

paziaランク

※ メアドは消しています。

さて、paiza Aランクはまだ2問(1問目はなんかの質問でとりあえず見ちゃった物を放置していて、回答までに359392分32秒もかかってしまいましたが)しか解いていない、というより全部で11問しか解いていないので、妥当かどうかはわかりませんが、だいたいの出題傾向が見えてきたので、まずは、それについてです。

paizaは競プロ(競技プログラミング)とは出題傾向が違います。どちらかといと、実際の仕事でのコーディングに必要になる能力を問う問題です。動的計画法、中華風剰余定理、メモ化再帰、深さ優先探索vs幅優先探索、二分木探索といったもろもろのアルゴリズムもそれほど必要とはされません(Sランクだと出てきそうですけど)。そういう競プロで必要とされる能力ではなく、与えられた問題に対して、如何に素早く、正しく実装できるかが問われると言えます。普段から実際に仕事(または趣味)でプログラミングをしていれば、自ずと解けるような問題しか無いと言うことです。paizaが評価したいのは「仕事としてプログラミングができる」能力ですので、そういう能力があれば、何も考えずに解くことができるでしょう。

では、初心者がAランクを取るにはどうするのか?というと、そもそも、初心者がAランクを取ってしまったら、paizaの評価基準自体が破綻していることを意味します。初心者ではなく、それなりの経験を積んだ人で無いとAランクが取れないようになっているから、評価基準に意味があるからです。誰でもAランクが取れたらAランクの意味がありません。

なんか、おかしいことを言っているような気がしますが、逆に考えれば良いのです。それは初心者では無くなることです。

初心者と脱初心者の違いは何かというとのは少し難しいです。この問題が解けたら脱初心者なんていう試験的な話とは違うと考えています。知識の量とか経験の量とかあるかも知れませんが、私は心構えが一番異なると考えています。初心者は「まだ自分はできない」と考え、だからこそ、勉強したり、人に教えをこいたりします。脱初心者は「自分がやるしかない」と考え、だからこそ、勉強したり、解決方法を探したりします。

与えられた問題を解いていくだけでは「自分がやるしかない」となることは永遠に来ません。このアプリが必要だから、作ってと頼まれたから、自分が作るしか無いとなるのです。仕事もそうです。仕事として、作れと言われているのかだら、作るしか無いのです。それが自ずと経験となって、問題を解決する能力が身に付くことになります。いえ、逆です。問題を解決する能力を得なければ、何かを作ることは永遠に来ません。

もし、基礎はできたと思うなら、何かを作ってください。なんでもいいです。こんなのがあったら便利というものでもいいですし、自分が考えた最高のゲームでもいいでしょう。そして、きっと、知識がまだ足りないと言うことに気付くと思います。**それは普通のことです。**どこまで行っても、知識が足りることは無いですし、どんどん新しい技術は出てきますし、勉強しなくてもいいなんてことになる日は来ません。足りないところは、その都度勉強して、補って、なんとか完成を目指すのです。

そうやって、知識も豊富になり、問題解決をどうすべきかも自ずとわかってくるはずです。そのときには、Aランクなんて軽々取れるようになっていると思います。近道はありません。

なお、企業が新卒に求めるのは即戦力ではありません。将来の戦力です。経験者採用枠とかでも無いのに、paizaでAランクやSランクをとるようなやつが新卒で来たときは、すぐにフリーランスになりたいとか言い出して辞めそうなので、私だったら逆に敬遠します。


競技プログラミングのサイトも同様で、解説がほとんどありません。

競プロでも解説があるところはあります。

  • AtCoder 終了したコンテストには解説が付いています。
  • yukicoder 終了したコンテストには有志による解説が付いている場合があります。ただ、「後はDP(動的計画法)で解いていくだけ」といったアルゴリズム名だけで簡潔に書いている場合もあるので、ある程度知識が無いとわからないかも知れません。

なお、競プロとpaizaでは出題傾向が違うので、競プロができてもpaizaができるとは限りません。(逆もその然り)

投稿2017/07/29 09:23

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

プログラマーは答えも解説も無い問題を解決する職業です。

プログラミングを勉強して、自分のことを初心者だと思わなくなってから再挑戦しましょう。

また、paizaや競技プログラミングの勉強をする前に基礎をした方がいいですよ。

投稿2017/06/27 15:20

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

このご時世、大手企業でもその手の採用が増えてきているので、そういった方向に走るのもある程度理解できますが。。
ただ、回答者の皆様の意見通り、良いランクをとるだけが実務の能力では無いとは思います。
それを踏まえて考えられる「対策」を下記に記載します。

1.「アルゴリズムとデータ構造」に関する本を読んで基本を覚える
2. 競技プログラムのテクニック本を読む
3. Aizu Online Judge / AtCoder 等のプログラミングコンテストに参加して基本的な問題を解きまくって傾向と対策を掴む(簡単な問題は解説が付いています)
4. 数学の問題を解くセンス

まあ思いつくところはこんな感じでしょうか。

頑張ってAランク取って就職頑張ってください!

投稿2017/07/29 04:13

編集2017/07/29 18:07
soma62jp

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

よしんば paizaでAランクをとったとしましょう。
それ「だけ」で就職が有利になるとは思えません。
例えば、インターンシップを利用して現場を感じるとか
勉強会や発表会に参加して熱気を吸い込んでくるとか。

仕事に限りませんが、結局は人と人の付き合いなんス。
人生に正解はない(わりと)無理ゲー的なものではありますが、
それを乗り切るためにも「経験」は必要になります。
リアルにチートとかありません。
まずは地道にやっていくことを習慣にしましょう。

投稿2017/06/27 15:49

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

paizaは入力値が分からないルールなので勉強には向かないと思います。
自分のコードのどこがおかしいのか分からないので。
paizaは力試しの場と考えて勉強は各入門サイトや書籍で進めた方が
効果的だと思います。
(私もプログラミング初心者なので私の言うことを信用してはいけません。)

投稿2017/06/27 15:27

編集2017/06/27 15:28
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/06/27 23:02

> paizaは入力値が分からないルールなので勉強には向かないと思います。 これが、イイ! ナンでテスト通らないのか、理由の説明がないので、通った時の快感が激しいですw 今週かなり寝不足です。
退会済みユーザー

退会済みユーザー

2017/06/28 05:43

おぉ、楽しんでおられるようですね。
guest

0

私も今週からはじめました。
私の場合は PHP ですが、メモリ関連が普段考えないので厳しいですね。
Aランク以上は、よほど問題を選ばないと配列をループさせた途端メモリを食いつぶす問題が多いです。

アルゴリズムの最適化がカギになるようです。
数学が得意だと、結構イケるかもしれません。

あと、テストケースをちゃんと複数確認してから投稿するのが良いです。
インターフェイス的にテストケースを自作して確認しにくい仕様ですが、無理やり標準出力に出して確認するのが、高得点を取るには必須です。

**追記
paizaオンラインハッカソンVol.1 の解説があったので追記します。

実行時間の差は996倍以上。オンラインハッカソン最速コードの裏側に迫る!

後半にすすむと、裏技的回答が解説されていてかなり面白いです。

さらに追記
エディタに、paiza.IO を利用すると、テストがメッチャ楽になります。
コードを下手にいじってテストしなくて良いので、デバッグ用のコードを残して提出してしまうケースを減らせます。

投稿2017/06/27 15:51

編集2017/07/29 08:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問