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

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

ただいまの
回答率

90.49%

  • Ruby on Rails

    7465questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • jQuery

    6906questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CakePHP

    2353questions

    CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

フレームワークの有効性について

解決済

回答 12

投稿 編集

  • 評価
  • クリップ 7
  • VIEW 1,358

ItoTomonori

score 1169

teratailでは、大変皆様にはお世話になっております。
不器用なモノで、キツい書き込みとかしておりますが、ご勘弁を。

さて、このサイトを利用していて、いろいろプログラミングに関する取り組みとか、きっかけなど気になりましたので、ぜひご回答いただければ。

(あと、1つくらい質問をしないと・・・というサイト側の方針もあるようですので、従わせていただきたく。)

皆様に質問したいこと

ざて、私は微力ながら、東京にて受託開発と、プログラミング教室などをやっております。
そこで、ここでの経験と、教えている経験からのご質問なのですが・・・

「フレームワークの有効性について」

です。
非常に便利で、私も当然のように利用しておりますが、どちらかというと、プロの道具に近いモノだと思っており、現場のプロが使うなら非常に有効性は高いが、初心者には、ブラックボックス化しすぎていて、敷居が高いのでは?という疑問です、。

比較的初心者の方へのご質問

大変、不躾な言い方ですが、なぜ故にフレームワークから、学び始めている方が多いのでしょうか?

JQueryをやるまえに、JavaScript言語の基礎

Cakeの前にPHP言語の基礎

Railsの前にRuby言語の基礎

と、本来言語の基礎をつけてから、フレームワークを学ばれた方が効率がよいと思うのですが、teratailの質問を見ていると、フレームワークから入ってくる方があまりにも多いような気がしています。

私などが、教鞭を執るときには、まずは基本の言語体系から、と必ず決めておりますが、やはり生徒さんの中には、フレームワークを使って、早く成果をだしたいと思われている方が多いようです。でも、それでは力にならないと思っています。

初心者の皆様は、情報不足で、なんとなく検索の結果からとかからフレームワークに入ってしまったのか、誰かにフレームワークをつかえば、ちょちょいのちょい、なんて言われたのか?

きっかけなど、お教えいただけますと、助かります。

エキスパートの方々へ

仕事ではフレームワークを使うことは多いと思いますが、たとえば新人さんが入ってきたときとか、フレームワークをいきなり教えてしまうことなどあるのでしょうか?
(もし、現在の風潮がそのようであれば、当校も方針変更しようかとも。。。)

実際に、とっととフレームワーク教えてくれれば、いろいろできそう、と期待を持った、生徒さんなどもおり、実際にはフレームワークなしでは、当然、一般的なWEBサービスに近いモノに近づくのはほど遠く、
期待を裏切るのはとも思いながら、でも基本大切、と訴えてはおりますが・・・。

全般的に、プログラミング技術とは関係の無い質問になってしまいましたが、ぜひ、いろいろな方のご意見をおききしたく。

乱文失礼いたします。
ぜひ、優しい気持ちで、ご意見いただければ。

 ありがとうございました

皆様貴重なご意見ありがとうございました。ベストアンサーもなかなかお選びするのが難しかったのですが、取り急ぎは1名、選ばせて頂きました。

あらためまして、本当に皆様、いろいろご意見ありがとうございました。
自分的は、もしかして古い考えだなと思いつつも、なかなか変えられずいたところもあり、時代の変化の話などもしていただき、スッキリいたしました。
引き続き、よろしくお願いします。

本来、各投稿にコメントで御礼するところですが、まとめて、失礼いたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 12

+9

胸に手を当てて、私がどちらに分類されるか考えるに比較的初心者なので、なぜ JavaScript フレームワークから学び始めたのかについて回答します。

まず、はじめて具体的に JavaScript を必要としたのは、lightBox です。それまでに「逆引きJavaScript」や「入門」を読んだことはありましたが、DOM を扱うためにツリーをたどるのが煩雑に感じていたため、積極的に使用していませんでした。lightBox は prototype.js を使用していて、そのうち導入した他のライブラリとの競合が起こる事で基礎をさわる必要が出たため、購入する書籍が順次レベルアップした感じです。

早く成果をだしたいと思われている方が多いようです

早く成果を出したいというより、'var a = 1 + 1;' でプログラムを組める気がしないというのが実際私が受けた感覚です。例えば、下のリンクは「LEDだけで作られたコンピュータ」です。LED の挙動や特性をある程度知っていても、これを設計出来る気がしません。ただこの基盤と LED が用意されていれば、はんだで付けて、LED の色を自分の好きな色順に並べるくらいなら可能だと感じるわけです。

【集積回路を使わずにトランジスタだけでコンピュータを自作するとこうなる - GIGAZINE】
http://gigazine.net/news/20150731-fulltr-11-super-l/

JavaScript で言うと、Google Map を自力で作る気がしませんが、カスタムタイルを作成することはできます。マーカーを複数セット切り替えて使ったり、そういうことは可能です。

当然言語の基礎的な知識がないため単純な失敗を繰り返すのですが、そのたびにリファレンスやサイ本(O'Reilly)やそれに類するものを参照することで私は解決してきました。現在フレームワーク本体の挙動をある程度追えるようになったのはそういう失敗の積み重ねかなと思います。

JQueryをやるまえに、JavaScript言語の基礎

これは、「あったらよかったな」という感想です。そのため、初学者に教える機会がある際には「基礎からやるほうがいいよ」とは言います。差し迫って同僚を育てるといった場合は対応を変える可能性がありますが、その場合でも基礎を含む本を数冊渡し「まず読め」と言う気がします。

学習の仕方は人それぞれ順序があり、「なぜこうなるか」がわかると学習意欲が湧くタイプや、「何に役に立つか」がわかると学習意欲が湧くタイプなどさまざまなので、「基礎から」「まず作る」のどちらが合うかはやってみないとわからない気がします。


散漫になりましたが、フレームワークを使いたがる初学者の心境でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+5

本来言語の基礎をつけてから、フレームワークを学ばれた方が効率がよいと思うのですが、

激しく同意します!はげどう!はげどう!って叫んでおきます!

さて、昔を思うと今時のフレームワーク並みに便利な物は無かったような気がします。かなり昔からRubyをやってきましたが、私が学び始めた頃はRailsなんて便利な物は無く、Ruby?なにそれ?知らない、と言われ続ける毎日でした。Rubyが動くレンタルサーバを探して、ホームページにRubyで作ったカウンタCGI(自作)や掲示板CGI(自作)を置いたのが懐かしいです。あの頃はPHPが流行り始めていて、CGIより軽くて速いと人気でした。MySQLも簡単に使えると言うことでそっちを使う人も多かったのですが、そのころからPHPは嫌い(あ、嫌いって言っちゃった)だったのであまり触りませんでした。その頃のPHPのコードは直にSQLを書くようなコードがたくさんで、SQLインジェクションの問題が流行り始めたころでもありました。JavaScriptはAjaxなんて言葉すらも無く、できることも少ないくせに、ブラウザの脆弱性のほとんどはJavaScriptを利用したもので、むしろ、JavaScriptは無効にするのが常識みたいな雰囲気すらありました。JavaScriptが変わったのはprototype.jsを使ったAjaxが出た頃ですね。最近は話題にすら上がってきませんが、まだ保守はされているんですよね、prototype.jsって・・・

話がずれてしました。私自身は職業がプログラマーとかプログラミング関係のインストラクターでは無いので、あまり人にプログラミングを教えたことは無いのですが、私は必ず基礎からやれと言っています。何事も基礎を疎かにすると、本質は見失うばかりで先に進めませんから。ただ、作った物が動く!という感動はプログラミングを学び始めた最初に於いて重要だと思います。先ほどの話出てきた自作の掲示板も、実際に動いて、投稿がうまく行った時は嬉しかったです。

本当にいいのは、フレームワークを使いながら、その言語の基礎が学べるような教材があればだと思います。Railsには有名なチュートリアルがありますが、Rubyの基礎も少しはしますけど、どうしてもRailsで最低限必要なことだけに収まっているような気がします。巷にあふれるjQueryなんて酷い物で解説も無く動けば良いみたいな感じがほとんどです。CakePHPは本家ドキュメントのチュートリアルしか読んでませんが、まぁ、あれはPHPがわかる人が前提で書いてあるので、それはそれで正しい姿だとは思います。

結局の所、フレームワークを使いこなすのはその言語の基礎がないとやっぱり無理なわけで、近道しようとしても結局遠回りになってしまっているのかも知れません。「Raisを作りながら学べるRubyのきほん」なんてタイトルで本を書いても、Rubyの本とRailsの本を合わせたような厚さになると思います。最初にデモンストレーションみたいにRailsやCakePHPを使ってぽんっと一個作って、楽しさを学んだ後に、それじゃこれをもっと使いこなすための基礎をやりましょうという工夫をすれば、興味を失わずに学び続けることができるんじゃ無いかなと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

比較的初心者です。
CakeやRailsは分からないので

JQueryをやるまえに、JavaScript言語の基礎

こちらだけ。。。

既に他言語をマスターしているけどJavaScriptは初心者、という人が相手であれば
JavaScript言語の基礎をみっちりやって生JSで何か形になるものを作るところまでやってから
jQueryのありがたさを感じてもらう形の方が最終的な上達は早い気がします。
(まぁ、ぶっちゃけ生JSで何か書けるならjQueryなど教えてもらわなくても独学でマスター可能でしょうし、
そのレベルに達することができる人ならもうjQueryじゃなくてAngularとかReactとかCreateJSとか
そっち系のフレームワーク(?)に行っちゃった方が今の時代良いのではないかと思います。)

ただ、プログラム言語を勉強すること自体が初めてという本当の初心者が相手の場合は、
jQueryを通してプログラム言語に親しんでもらいながら必要に応じて少しずつJavaScriptの
言語仕様に触れていくようにした方が脱落者が少なくなることは間違いないと思います。

jQueryは生javascriptに比べてそもそも圧倒的にDOM操作が楽で学習コストが低いため、
javascript特有のクセや面倒な記述で頭を悩ませる必要がありません。
従って初心者にとっては逆にプログラム言語の一般的な基礎知識や、
論理的思考力を養うことにに集中できるというメリットがあると思います。

また、jQueryの豊富なメソッドによって作りたいものが比較的簡単にすぐ形になります。
これは初心者にとっては最も強力なモチベーションとなります。

なので、プログラム的な素養の低い人を相手にするならjQueryから入った方が良いと思います。


ちなみにプログラム言語ではありませんがCSSを教える場合であれば、
断然CSSの言語仕様を先に教える派です。。。
セレクタの何たるかも分からないような状態でいきなりBootstrapとか扱うのは無理。。。
だと思うんですが、Teratailには恐ろしいほど基礎を知らないのにBootstrapで始めちゃう人けっこういますよね。。。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

エキスパート?と言うより、オールドタイプですが

私はどちらからでも好きな方から、に1票です。

プログラミングを学ぶ上で、私が一番大切だと思うのは、どこかのCMにあるように、結果にコミットすることだと思っています。
どんなに簡単なものでも、稚拙なプログラムでも、それが自分の思い通りに動く。
モノ作りをする上で、これほど明快なモチベーションはないのではないでしょうか?

難しい話、退屈な話は、知識欲が活性化した時期にじっくりやればいいと思います。
モチベーションが上がれば、勝手に学ぶようになります。
「好きこそものの上手なれ」です。
なので、基礎だけでそれが達成できるなら基礎からやればいいですが、
目的がスマホ対応WEBとかなら、
基礎で作ってjQuery化してなんて面倒なことせず、いきなりjQueryでもいいと思います。

私は、いつまでも文法と英単語しか教えなかった学校教育の英語は、さっぱりでした。
This is a pen.ではなく、Hello!から入らないのがいけないんだと思ってます。

私はAndroidアプリも組みますが、
正直な話、どこからどこまでがIDEで、どこがフレームワークで、どこが言語仕様に相当する部分なのかは、全く区別せず使っています。
それで困ったこともありませんし。
基礎を知らなければ困ることはもちろんありますが、フレームワークと基礎の区別がついていなくても、それほど困ることはないように思います。

ただ、最近こちらで文字コードの質問が出た時に、プログラミングと関係ないと言う指摘が出ていました。
私は、長いSE歴の中で、結構文字コードとは格闘してきたので、
プログラミング問題に文字コードは外せない人だったのですが、
Unicode一色、マイグレーション経験もない人にとっての文字コードって、その程度のものなんだな~と、
自分の古さを思い知らされました。
私の主張では知らなくて済む人は知らなくていい話になるのですが、それはそれで寂しさは感じますね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

比較的初心者の回答です。

理由としてはとっつきやすいからですね。
ネット上にある情報は、フレームワークに関するものが多いですから、つまづいた時も検索しやすいです。
Pythonでwebサーバ立ち上げてテンプレートレンダラを自作して……、とやるよりも、DjangoなりJinja2なりを使ってとっととhello worldし、次の段階に進んだ方がいいと思います。

そもそも「言語の基礎」というものを学ぶにあたって、フレームワーク上で学べない、ということはないと思います。
たしかに、Jinja2を使ってる間はwsgirefモジュールを学習することはないでしょうし、jQueryを使っている間はDOM APIについて理解を深めることはできないでしょう。
でも、wsgirefモジュールは「Python言語の基礎」ではないし、DOM APIは「Javascript言語の基礎」ではないと思っています。
フレームワークを学んでいけばその枠内ではできないことが出てきて、自然にローレベルのモジュールに興味が出てくるはずで、その時に必要に応じてDOM APIなりなんなりを学習すればいいかな、と。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

比較的エキスパート

 中小企業で主に業務委託による開発をやっている者です。
少々、会社の事情に合わせた内容になると思っています。

 私は新人が来たときに見たいのは基礎の部分ですね。  

  • プロジェクトで使用している、言語、技術についての基礎の確認。
  • プロジェクトで使用してるフレームワークは使用したことがあるか?
    使用したことがあるなら、どういったモノを作ったかなど、微に入り細に入りとまではいきませんが聞き取りを行います。  

上記を踏まえて

  • 基礎がある程度できている
      使っているフレームワークの概要説明、実際の使われ方など教えていきます。
  • 基礎が足りない
      基礎を教えつつ、フレームワークの説明

 というのも契約の形態上同じ技術、同じフレームワークを使い続ける仕事だけがあるわけではないこと。
日々進化する技術に対応できるようになるため基礎の部分が大事になります。

 CakePHPを使うにしても
PHPはもちろん、HTML, CSS, JavaScript等Webに関する基礎は開発を続ける上で必要になることは容易に想像がつきます。
昨今ではjQueryをはじめとするJavaScriptのライブラリや、プラグインを使用することも日常となっています。Webであれば、モバイル向けに「より高速、より高効率」が求められるようになっています。

基礎を知っていれば、ある程度対応できますし、多少のヒントで応用も利きます。
基本的なところでバグを作り込むことも少ないでしょう。
解析せずとも、基礎の知識だけで解決できるようなことだってそれなりにあります。

基礎がないため、何故そこでバグになるのか分からない場合というのも私が見てきた人の中にはいます。
基礎が疎かで、基本的なところでバグが出るとその人が手を入れたソースを一通り確認するため、工数を割くことになり、結果思ったような成果に繋がらないことが多いです。

本当に成果をあげたいなら、基礎を徹底して盤石にするのが一番の近道だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

エキスパートです。

まだフレームワークが無かった頃からプログラミングをやっております。
ご指摘の通り、元の言語から理解すればフレームワークをより良く利用することができるようになると思います。(例えば継承して新たな部品を作ったり)

  1. 仕事上の理由
    案件に付く際に既にフレームワークありきの開発のほうが多いように思います。目的はシステムの構築ですので、元言語の習得に時間を掛けている暇がありません。
    この場合、ご指摘の通り完全なるブラックボックス状態になってしまい若い子に
    「なんでこの数字になるの?」と質問すると「フレームワークが返したからです」と回答する始末。
    残念ながらフレームワークが中でどのように処理しているかに興味さえないのかと思います。

  2. 時代の流れ
    パソコンに新たなハードウェアを接続する際にほとんどの場合ドライバなど不要になってきました。
    プラグアンドプレイで自動認識です。当時は、認識しなかった場合にドライバを探すところから仕事がはじまりました。フレームワークもこれと似ていると思います。今更ドライバの認識や接続のされ方を学んでもなぁと。

正直、プログラムが好きな人はフレームワークを利用した開発から入っても「これどうやって動いてるんだろう?」と興味を持ちます。ここに技術者としての差が生まれてくるのだと思います。

ただ、これが「プログラムを学ぶ」ということになれば、個人的には元言語から学ぶ方が良いかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

JS関連ですが、フレームワークなどは中の動作を知らなくても簡単に書くことができ、実際に画面で動くのも確認ができ、自分で作った感が先行し、感動すると思います。特にjQueryなどはCSSライクで簡単にかけ、ローカルのブラウザでも見ることはできますし。
フレームワーク自体が複雑な動作を隠ぺいし簡単に利用できるのを目的に作られているのがほとんどですから。
たとえはWEBでもHTML、CSSを覚えたら次はjQueryを覚える。業務や作品を作るうえで、その機能だけが必要ならそれもありかと思います。
ただそれだけで終わらせてしまうと、エラーが出たときや、複雑なロジックを必要とするアプリ等を作ろうと思ったら対処できません。何が原因でエラーが出ているのかもわかりませんし、何よりコード自体が一貫性がなく、可読性も低いコードになります。それにフレームワークと言っても様々で、先にあげたjQueryなどのように簡単に利用できるものもあれば、angularJSのように生JSを分かっていなければただHTMLのソースがなんかごちゃごちゃして終わってしまうようなフレームワークもあります。
プログラミングをずっとやっていきたいのであれば言語基礎習得は必須事項だと思います。ただし、順番に関しては、問わず適材適所。必要に応じて覚えていく形で良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

歴は長いけど専門じゃなく全般的に浅いので初心者

基礎から入ろうと思ったけどやっぱり
フレームワーク側からに学習の方向を変えたってタイプです
理由は今フレームワークで何ができるかを先に知らなかった故に
いくつも車輪の再発明みたいなことをして時間を無駄にしたりしたから

加えてフレームワークはいわば一つの模範解答で
その設計・処理方法には理由があり
教科書のサンプルコードからは学べない
だが早い段階で知らなければならない
各言語の取り扱いのノウハウや
言語の抱える問題への対処方法が詰まってるものだから
まずフレームワークのお手本の設計や処理方法を
見るべきだと思うからです

それに本のサンプルコードとかはわかりやすさを優先してて
割と現場で書いちゃまずいコードがある気がします
本の知識で基礎を固めちゃうと結構まずい気もするのです

特に、PHPやjavascriptみたいな同じことをするのに
いくつもやり方があるタイプの言語についてなんですが
いくつも答えがあるからこそ現在最も支持されている答えから知って
なぜそれが選ばれたのかを帰納的に考えた方が良いと思うのです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

それなりには職業としてエンジニアをやっている者ですが、いきなり実戦投入するというのではなく学習時間が取れる前提なら「まずは薄いフレームワークで勉強する」というのが適当ではないかと思います。

CakePHPやRailsといったフルスタックのフレームワークには高度な機能が盛り込まれていますが、Webアプリ自体を作るのが初めて、というような状態で高度な機能を見せられても、どれだけ便利なのかも把握できず、「なんでこんなことを覚えるんだ」とモチベーションも下がり気味になってしまいます。また、RailsではActiveSupportといって、Rubyの基本クラスすら拡張してあるので、「これはRuby標準なのか、それともRailsにしかないのか」がわかりづらく、それも初学者にはむしろ障害となってしまいます。

PHPであればCodeIgniter、RubyではSinatraというように、レイヤーの薄いフレームワークもありますので、「言語基礎から学ぶ&Webで動くものを作る」というのは、別にRailsやCakeに頼らなくても実現できます。PHPなら素のPHPで動くものを作るというのもできなくはないですが、「ロジックとビューを分ける」というのは早いうちから習慣化させたほうがいいと思いますので、最低限の枠組みは必要と思います。

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

比較的初心者の回答ですが、
RubyやRailsの経験がほぼゼロでず。
昔、Redmine構築の際に、インストールした程度です。

で、Railsをやる前提ならRubyの基礎よりRailsの勉強からとっかかります。
躓いた時にRubyの基礎を勉強すればよいかと思ってます。

それはなぜなのか自問自答してみると、
「Rubyの基礎はどこからどこまでなのかわからない」
「Railsから覚えられるRubyの基礎もあると思う」
「興味があるから勉強したいのであって、興味が無いものには極力時間を使いたくない」
という回答が湧いてきました。

基礎勉強の大切さは言わずもがな、学習意欲をより大事にするってのはアリだと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

初心者ではないだろうけどプログラミングのエキスパートでもない、よくあるレベルのSEから、よりプログラミングを志向したい者の回答です。回答者のターゲットとして中途半端でしたらごめんなさい。


初心者には2パターンあると思っています。

  • 本当のプログラミング初心者
  • プログラミングに関する最低限の知識(関数、引数、変数、代入、条件分岐くらいは分かる)がある初心者

ゼロの知識でフレームワークから入るのは無謀だと思います。ただ、最低限の知識があるなら、早い段階でフレームワークに触れてみればいいと思います。 当然、実利的な目的から早く成果を出したいがためフレームワークに取っ掛かる人もいると思いますが、多くは、フレームワークを使って作る「何か」の方が、プログラミングでの成果物のイメージがつきやすく、継続して取り組むモチベーションにつながるのだと思います。

また、質問者さんのおっしゃる通りで、初心者にとってフレームワークはブラックボックスです。結局、基礎とフレームワークとの間で行き来すること必至です。これを効率が悪いと捉えるのか、プログラミングを学んでいくプロセスと捉えるのかは難しいところだと思います。最終的にその学習者がプログラミングを継続できればいいのではないかなあと思います。

各言う私もまずは基礎からと思いますが、実はその基礎と言える範囲は際限なく、さらに深いと感じています。全くの初心者ではないだろうけど、こちらにいらっしゃるエキスパートの方に比べると、全く基礎がなってないなあと感じ、度々助けてもらっています。

そろそろ散漫になってきましたので、初心者がフレームワークに触れる事について簡単にまとめると、こんな感じです。


  • モチベーションを維持する目的でならどんどんフレームワークに触ればいいじゃん
  • 結局、基礎へ戻らないと進めなくなるので、そのことは覚えておけよ
  • 基礎はおそらく際限ないから、ずっと基礎を追い続けるつもりでいろよ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    7465questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • jQuery

    6906questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CakePHP

    2353questions

    CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。