Teratailでこの程度の質問をしてよいものか悩みましたが ご了承下さい。
プログラミング(ruby)始めて1ヶ月ですが、重要文法などは覚えたので ruby on railsに挑戦して web開発をしていきたいと思っています。
これからrailsのチュートリアルに挑戦してweb開発をしていけたら良いなと思いますが、ここで質問があります。
いつも疑問になっていることですが、プログラミングのチュートリアルを学んだあとweb開発を自分でやりこなしていくために、チュートリアルの後にやるべき事は
なんでしょうか?
自分で開発ができるようになるためのおススメのプロセスを教えて下さい。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
ベストアンサー
Rubyに限ったことではありませんが、やはり設計は大事です。
ただ、製造から入った人にいきなり設計しろといっても敷居が高いのも事実です。
私からのアドバイスは自己流で覚えていくやり方(のひとつ)です。
まず「作りたいものを明確にイメージする」ところから始めます。
この際、Rubyで実装できそうか?を意識しながらイメージに具体性を持たせていきます。
少しくらい未知の部分(ブラックボックス)を残しても構いませんが、それがコアな機能になってしまうと最終的に実現不可能、なんてことにもなりかねませんので、そこは注意が必要です。
最初から大きな風呂敷を広げても、当然作り上げることはできません。
ですが、大きな風呂敷の一角だけなら作ることはできるかもしれません。
まずは「作りたいもの」をいくつかの「キリのいい機能」に分解してみます。
その機能1つの中で、さらに小さな部品に1つに着眼します。
例えば
・ページ上に文字を表示する
くらい小さくてもいいです。
これだといわゆる"Hello World"程度なのですが、この大きさは技術レベルに合わせればいいと思います。
次に、その機能を
・ページ上に"DBから取得した"文字を表示する
くらいに拡張してみます。
そのためにはどんな技術が必要になるか、考えたり調べたりします。
さらに
・表示する文字を"一定間隔で更新する"
といった盛り付けをしてみます。
そのためにはどんな技術が必要になるか、考えたり調べたりします。
これを繰り返すことで、作りたいものの中の小さな一角が徐々に広がっていきます。
途中で考えたり調べたりして実装案を模索していった成果を残しておけば、後に設計と呼ばれるものになります。
これは実装を基にした「後付けの設計」になるので、本来あまり推奨されるものではありません。
ですが、いきなり設計が書けるようになるまでは、こういった手法で経験を積むのもアリだと思います。
知識や経験を積んでいけば、「こういうときはこう実現する」といったノウハウが自ずと身についてくると思います。
大切なのは「一角でも実現できた」といった喜びを積み上げることだと思います。
「その小さな一角」を積み上げたことで、全体には及ばないけど「少し大きなもの」ができた達成感が次への意欲となります。
そのためにも最初の機能分解の部分が適度な大きさであることが大事です。
なかなか形にならないものを作り続けるのでは、モチベーションがもちません。
好きこそものの上手なれ、楽しみながら覚えていければ最高ではないでしょうか。
投稿2019/02/04 04:23
総合スコア3013
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
実務で開発を進める機会があれば、徐々に自然と身についていくものと思います。
ただ質問者殿の様子を勝手に想像すると、どうも自己学習を目指している様子で、さらなる開発力をつけたいといった漠然とした雰囲気を感じました。それであれば、チュートリアルの次は、出来るだけ具体的に出来るだけ細かく小さなテーマを自分自身に課して、それを実装していくやり方(それによって経験を積む)が考えられるかと思います。
たとえを挙げるとキリがありませんが、セクレトボックスを組み入れるとか、ユーザーログイン機能をつけるとか、ファイルアップロード機能をつけるとか、データを表形式で出力するとか、データ一覧を2つ並べるとか、・・・・
追記
突飛なやり方を紹介します。まさにこの Teratail を活用することです。誰かが機能実現できなくて困っています。さて自分ならそれが実現できるか、実現方法は既に身についているから見送り、いやいややってみたことないぞ、ではやってみよう、自分はエラーなく問題にぶちあたることなく実現できるかな、などという方法です。Teratail の質問内容を、自分自身の課題として取り組んでみるやり方です。実現できたあかつきには、回答者として貢献できることになるかもしれません。
質問者殿が開発現場に出向いて、顧客の要望に応えたシステムを私が構築します、といったレベルにまでなることを想定されているのであれば、分析力、設計力が必要になりますし、いやいやこんな機能を組み入れるにはどうすれば良いか、そういったことを「引き出し」として数多く学んでいきたい、というスタンスであれば、上で私が言うものが、一つのやり方としてあると思います。
いかが?
投稿2019/02/04 03:05
編集2019/02/04 03:53総合スコア186
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
質問の趣旨は「ある程度基礎は終わった。開発者として独り立ちするにはあと何をすればよいのか」ということと読み取れました。
その前提で(そうでないなら、他の回答を参照ください)
端的に言えば、
どんどん作る。
以上。
だとあれなんで、他の回答にあるように開発するには設計が重要になってきます。
設計力をつけるにはどうすればいいか、それにはまず技術力がなければ成り立ちません。
いくら素晴らしい設計をしてもそれを実装できる技術がないと意味がありません。
また素晴らしい設計をひらめくには技術・また色々な知識が必要です。
それを磨くには実践あるのみです。
大きいものから小さいものまで色々なアプリを作ってみることをお勧めします。
ちなみに私はRubyの経験はないので、一般的な開発者としての意見です。
投稿2019/02/04 02:56
総合スコア16996
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
一番大事なのは「どんな機能を持ったシステムを作るのか」です。
例えば車を買うとして、それが普段の街乗り用の足たる軽自動車でいいのか、走りを楽しめるスポーツカータイプがいいのか、大人数を乗せたいワンボックスタイプがいいのか、山などでも使える SUV がいいのか、ゆったりとした高級感のあるセダンがいいのか……それらを決めてからでないと、車種選択すらできませんね。
そして往々にして、「最初に考えたこういう機能が欲しいというシステム」は、設計を進めて行くにつれて「いやこれできないんじゃね?」とか「この機能無駄じゃね?」とか「こんな機能がないと困るんじゃね?」とかいろいろ出てきます。
それで手に負えないとなったら潔く機能の変更を考えましょう。
システム開発は設計が半分以上の比重を占めます。正直に言えば、実装は(設計さえ間違ってなければ)難しいことではないのです(ハードウェア機器開発になると実装してみないと分からない部分もありますが)。
自分で開発ができるようになるためには、まず設計ができるようになることでしょうね。
投稿2019/02/04 02:42
総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
0. 全体設計
どういう構成にするか大まかに決める
OS・サーバ・データベース・システムの処理フローetc
1. データベース設計と構築
テーブル名・カラム名・インデックス・外部キーなどが決まれば実際に構築
2. ページ設計と構築
どういう要素を盛り込み、どういうページデザインにするかが決まれば、
実際にHTML/CSS/JSでコーディング
3. プログラム設計と構築
Rubyでのプログラムの処理詳細が決まれば、実際にコーディング
投稿2019/02/04 02:28
編集2019/02/04 02:29総合スコア2321
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。