タイトルの通りRails でAPIを作りたいのですが、今までRuby,Railsを使った開発の経験はありません。
Ruby、Railsの基礎学習としてはどれくらいのレベルまで勉強すべきでしょうか?
とりあえず今はProgateを一周しようと考えています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
まず、前提が違います。
プログラミングは『こう書けばいい』ではないです。
そもそもプログラミングがあるからソフトを作るだのじゃないです。
元々、機械(コンピュータ)は『人間が手作業でやっていることを代理でさせるためのもの』です。
元々は軍事利用でした。暗号解読とかです。
でも手作業でやる場合、面倒です。
なので機械に任せようという考えに。
で、機械は『暗号解読してくれ』とかみたいな曖昧な要求は無理です。
そのため、『人間が手作業でやっている手順を、事細かに指示する必要がある』のです。
その事細かに指示を出すことがプログラミング。
そして、C言語ならC言語、PerlならPerl, PHPならPHPと言う風に、独自の書き方にしたものがソースコードです。
その独自の書き方とかが『基礎部分』と呼ばれるものです。
なので『一旦は教科書等にあるものを理解する』必要があります。
たとえば、料理をする場合、すぐに料理しますか?
私はめったに料理しません(仮にしてもいわゆる「男の料理」というやつぐらい?) が、
普通、料理をするなら、『道具がそろっているか』、『どんな食材があるか』とかを確認しますよね?
この確認作業と、道具の使い方が質問でいうProgateとかでのものです。
ですが、この『道具がそろっているか』とかを理解しても、調理方法を知らないとできませんよね。
たとえば、『レシピにないことはしない』とかです。
料理で失敗する原因の多くは、『余計な事をしているのが原因』らしいです。
なのでレシピ通りに作ることとかが当たり前です。(慣れてきてから応用をする)
それと、『道具の使い方やその他の技法』を理解している必要がありますね。
たとえば、『みじん切り』、『角切り』、『かつら剥き』等です。
確かに知らなくても、出来なくはないですが、中途半端になりますし、用語を理解していないと「言われても理解できない」です。
なので基礎は大事。
プログラミングでも同じことが言えます。
よって、『まずは基礎部分を一通り理解する事』。
完璧にしなくてもいいです。
たとえば『変数っていうのは何なのか』とかみたいなざっくりとした理解でいいです。最初は。
そして、『実際に何か作る』。
ただし、「○○作りたいからコードくれ」とかじゃなくて、
『自分で設計し、自分でコーディングし、自分でデバッグし、自分でテストまでする』です。
ここまでできるのが当たり前のレベルです。(趣味であっても)
ここまでできないなら、使えない人材です。
DIYが趣味と言う人が、(適当な)設計図すら書けず、自分で組み立てることすらできないならDIYが趣味と言うのはうそですよね。
それぐらい当たり前のことです。
まあ、まとめると、
Step 1. (Progate等の)基礎部分をざっくりと理解する Step 2. 実際に何か作る
ですね。
後、仮にソフトなりゲームなりサイトなりを作るなら、
Step 1. 何を作りたいのかを決める Step 2. ユーザ目線で考える Step 3. プログラム目線で考える Step 4. 『現実世界でならどうするか』を考える Step 5. 規則性を見付けたり、言い換えたりする Step 6. 必要なものを調べる(検索する) Step 7. 実装する Step 8. デバッグする Step 9. テストする
ですね。
Step1 は、簡単な仕様を決める。
たとえば『ダブルクリックしたら、そのフォルダ内にあるファイルを連番にする』とかです。
もちろんサイトとかでもいいです。
Step2 は ユーザ目線で考えます。
たとえば Am*zonとかのようなECサイトなら、
メインページを開く → 検索窓に『PHP 入門 本』とかのような検索キーワードなりを入れて検索ボタンを押す → 該当した商品の一覧(画像)が表示される → 一覧で表示されている画像をクリックする → 詳細ページが表示される → 詳細ページの『かごに入れる』ボタンを押すと ...
のようになるはずです。
(仕様によって異なるが、基本部分はざっくりと上記のような感じになるはず)
そう考えると、『メインページ』、『一覧ページ』、『詳細ページ』、『レジページ』……とかが必要だと分かりますね。
ECサイトとかだと、供給側(つまり販売者側)の在庫確認とかもあるので、それも同様に考える。
Step3 は Step2の逆、つまり『裏方作業でやる』感覚で考える。
上記をやるなら、『在庫があるかどうかを調べる』とかが必要だと分かる。
Step2と同じような要領で裏方、あるいは手作業でやるならどういう手順でやっているかとかを考える。
Step4 は Step2,3 を総括して、考えたりする。
FizzBuzz問題とかみたいなものであれば、規則性を見付けたり、言い換えたりする。
後は検索したりして実装し、デバッグやテストを行う。
ここまでは、ソフトやサイトとかを作ることに注目していますが、
API作成も発想自体は同じです。(範囲が狭いか広いか、単体で使えるのかどうか、書き方が微妙に違うとかが違うだけで発想自体は同じ)
頑張ってください。('ω')
[追記1]
後、『検索力』も必須です。
自分なりに検索したりできるようになりましょう。
プロでも調べながらやっています。
更に『質問方法も工夫する』。
今回はいいですが、質問方法を工夫するだけでもだいぶ違います。
単に「変数がわからん。教えてくれ」よりも、
『参考にしたサイトのURL』や、『どのように考えた』、『どのように組んだ』等のような、ほんの少し工夫するだけでもだいぶ印象が違います。
(でもこれができる人、意外と少ない気がする……)
投稿2021/06/08 09:13
編集2021/06/08 09:17総合スコア4962
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/08 04:27
2021/06/08 04:33
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。