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

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

ただいまの
回答率

90.76%

  • PHP

    19245questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Python

    6912questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Webサイト

    1012questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Flask

    172questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

  • Slim

    72questions

    SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

フレームワークばかり活用していると、WEBの基礎知識は付きにくいですよね?

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 865

HayatoIse

score 166

質問文に含まれている WEBの基礎知識 というのは、どの開発言語でも共通なことに対する知識です。

自分を例にして説明すると、現在はWordPressとLaravelのみ経験があり、PHPやSQLはフレームワークで必要な時にググりながら知識を付けています。一度も言語単体で勉強したことはありません。要は経験したフレームワークで何かすることに関しては半年ほどの経験で知識が多少付きました。しかし、PHP単体の知識は乏しいかと思います。

この状態で、急に会社の都合で、PythonのFlaskで開発しなければならないとなった場合、半年前の初心者の頃と同じような状態でスタートすることになるのが、不安です。もちろん、転職という選択肢はありますが、今は考えていません。

そして、その状態はエンジニアとしては良くないだろうとも思っています。

これで伝わるでしょうか...。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2017/09/12 11:24

    質問者様においてのそもそもの「基礎力」という定義が曖昧に思います。

    キャンセル

  • HayatoIse

    2017/09/12 11:25

    なるほど。わかりやすいように書きなおします。

    キャンセル

  • mts10806

    2017/09/12 11:27

    Pythonについても初めてだから時間がかかるのか、どの辺りを想定しているか不明です。あわせて追記願います。

    キャンセル

回答 6

checkベストアンサー

+8

PHPやSQLはフレームワークで必要な時にググりながら知識を付けています。

そもそもマニュアルを完全に暗記できている人はそうはいないと思います。
「こんなのあったはずだけど、実際どう書くんだっけ?引数とか省略可能だけど色々設定できたような・・・」みたいな感じでPHPマニュアルを確認して適切な使い方をするのが普通です(少なくとも私はそうです)

というか「Webの基礎知識」より「プログラミングの基礎知識」が不足しているのではないでしょうか?
つまり

WEBの基礎知識 というのは、どの開発言語でも共通なことに対する知識です。

からも何となく伺えるのが「Webに限ったことではない」ということですね。

フレームワークもなんとなく「結果できればOK」で組んでいませんか?
もしかしたらもっと簡潔で良い書き方、表現があるかもしれないとか、「普段から考えて組んでいる」かどうかにかかってきます。
組み方に正解というのはありませんし、お客さんにとっては結果が同じなので中身まで気にされることは殆どありません。(もっと言えば言語もお客さんにとっては関係のないものです)
しかし、いざ追加・改修・・・となったときに差が出てきます。
フレームワークも開発を効率的に進めるため(はては後々のメンテナンス性を高めるため)のツール・道具に過ぎないと思っています

今現在、LaravelなりWordpress(こちらはフレームワークではなくCMSですが)なりが持っている機能を最大限に活かせたサイトが出来上がっているでしょうか?
というところを突き詰めてみると、「フレームワークばかり活用していると、WEBの基礎知識は付きにくい」という考え方には至らないと思います。

言い方は厳しいかもしれませんが、現時点で最大限使えていないから他の環境に、となったときに不安があるのでしょう。
言語は違ってもロジックは変わりません。お作法さえきちんと抑えればおおよそ同様に組めるようになるものだと私は思っています。

PHP単体の知識は乏しい

これが自身の不安を物語っていると思います。
乏しい知識の中でフレームワークを使っていたら、それは最大限活用できるはずがないです。他の言語にいっても結果は変わりません。

考え方を前向きにすると、今現在でもPHPですらほぼ初心者のようなものなわけで、じゃあ、Pythonも初心者のような状態で迎えるわけです。覚えること・やることが沢山あって大変かもしれませんが、組みあがって、それが動く喜びを味わえると思いませんか?
会社側も経験半年そこらの開発者に最初からバリバリできるって期待は持っていないと思います。
ある程度の学習期間は設けられるでしょうし、会社がやるとなったからには一応ちゃんとできるPython技術者はいるんでしょう。

開発は1人で回していくものはほとんどないので、これを機会にロジックを考える、プログラミングをするというところからしっかりと身につけていってはどうでしょうか?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/09/12 15:06

    自分がPythonを使うプロジェクトに今すぐ行くというわけではなかったんですが、将来的にあり得ると思い、質問に至りました。
    おっしゃる通り、まだまだ言語もフレームワークも理解が乏しい状態です。
    差し当たって、現在はPHPを会社で使っているので、プライベートな勉強時間もPHPを活用したいと思います。まずはPHPで即戦力と思ってもらえるようなスキルを付けます。他の方もおっしゃっていますが、言語もフレームワークも一つは深く勉強したいと思います。ご回答して下さり、ありがとうございます。

    キャンセル

  • 2017/09/12 15:53

    他の言語を覚えるにあたりPHPは適切な言語かというと△な部分がありますが不適切ではありません。しっかりとしたロジック(=組む際の考え方)を学ぶのに言語は関係ないと思っています。
    半年程度とのことなのであせる必要はありません。まずは今できるPHPをしっかりと使いこなせるようになることですね。
    「人を一人前にできてこそ一人前と言える」というような言葉があります。
    今自分が組んでいるソースがどのような意図で組んでいてどのような効果があるのかを人が理解できるように説明できたときが「身についた」と言えるときだと思います。

    キャンセル

  • 2017/09/12 18:47

    他人にも各コードの意図や意味を伝えられるように努力します。
    > フレームワークもなんとなく「結果できればOK」で組んでいませんか?
    これはおっしゃる通りかもしれません。エラーに躓いたらとにかくググって解決できたら良しと思っていました。もっと意識しでコードを書くべきだと振り返って思いました。まだ早い段階で初心に戻ることができ、良かったです。どうすれば賢いコードが書けるのかを意識してコードを書きます。
    本当にありがとうございました。

    キャンセル

+3

新しいものに手を付けるというのも有用だと思いますが、一度なじみの深いフレームワークを掘り下げることでも、基礎力は身につくのではないでしょうか。

フレームワークで実現していることを、どのように実現しているかという視点で見直してみれば、なじみ深いだけに、新しいものに手を付けるより理解が早い部分があるのではないでしょうか。

(質問に加筆されたので)追記

不安を拭いさる一番の方法は、汗をかくことだと思います。
投げ出さず、諦めず、ひとつの事を全うする為に汗をかけば、それが自信となり多少の事では動じない耐性が身に付きます。

努力はあなたを裏切りませんから。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/09/12 11:45

    > フレームワークで実現していることを、どのように実現しているかという視点で見直してみれば、なじみ深いだけに、新しいものに手を付けるより理解が早い部分があるのではないでしょうか。

    なるほど。Laravelを使ってアプリケーション開発をしたとしても、適宜、その裏側の仕組みもコードリーディングすることで、基礎力は付くということでしょうか。

    キャンセル

  • 2017/09/12 12:03

    メジャーなものであれば、解説の類も多いでしょうし、そもそもアーキテクチャ的な説明はそのフレームワークのリファレンスにあるものだと思っています。

    キャンセル

  • 2017/09/12 18:44

    言語だけでなく、各フレームワークの深いところまで学習しながらアウトプットをしていきます。
    そうですね。「努力はあなたを裏切りませんから。」を見て、もっとコードを書く量を増やさなければならないと思いました。ありがとうございます!

    キャンセル

+3

Web で必要な処理ってざっくりと言ってしまうと

・ルーティング処理
・リクエストの受付
・DB 操作
・データ加工
・画面出力

になるかと思いますが、teratail での質問を見る限り、フレームワークから入った人と素の言語を触っている人で、その処理に対しての理解度合いが大きく違うといったことは無いように感じます。どちらかと言うと、「根源的な挙動に興味があるかないか」で学習の進度が変わってくるのではないかと。

ただし、フレームワーク使用者が「根源的な挙動」に興味を持たないケースはワリと見受けるので、「フレームワークばかり活用していると、WEBの基礎知識は付きにくいですよね?」なんてことが言われてしまうんだと思います。

とりあえず動かすだけなら、「根源的な挙動」なんて知らなくてイイやって態度ですね。CMS 利用者にも同じような傾向は見受けられます。

私は素の言語から学習していて、フレームワークの使用の知見はあまりないのですが、フレームワークから入ったとしても、その挙動を確認しようとすると、やはり上記の処理に対しての理解が必要となるので、その理解進度に差は出ないように思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/09/12 19:24

    なるほど、ベストアンサーを出した後でしたが、非常に分かりやすいご回答ありがとうございます。
    根源的な挙動を知る努力が必要なのかもしれません。フレームワークを使用していても、深くコードリーディングを行えばそれを理解することはできるということですよね。正直にいうと、そこまで興味がある内容では無いんですが、必要だと感じたので、努力して学習したいと思います。ありがとうございます。

    キャンセル

+2

極論を言ってしまうと、
「最後にはWiresharkでパケットを見て、捌くプログラム(アセンブラレベルからPyhtonレベルでも可」
というところになってしまいます。

でも、
「そこまでの知識が必要か?」
と問われたら、今日では多くのライブラリがセキュリティホールをつぶしているので、それを使ったほうが安全ということになりますでしょうか。

話はずれますが、関数型プログラミングをする際に圏論の知識は必要かという話にも似てるなと。

別にHaskellやElmやSchemeを使う分には、圏論を知らなくてもプログラミングできます。問題は、
「その考えを踏まえた言語を実装するとき」
です。


フレームワーク間での差異に戸惑うことがあると認識しますが、わりとその辺は言語を広く浅く触っていれば、何となくわかってくるものだと楽観的に考えております。

まずはいろんな言語をCLIアプリレベルで触ってみて、
「へぇ、こういうものなんだ」
程度にわかっておけば、他への応用がそのうちできると思いますよ。

肩肘張らず、
「俺の考えてるそれと違う」
を受け入れられれば、基礎力もおのずとついてくるのではないかと思います。


最後に、まったく励ましにならないと思いますが、自分の拙い質問とそれにまつわる記事へのリンクを貼って、私の回答とさせていただきます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

フレームワークばかり活用していると、WEBの基礎知識は付きにくいですよね?

いいえ。
そうとは限りません。

例えばLarabel等のよくあるMVCフレームワークは下記を楽するためのフレームワークです。

  • DataBaseとの連携 (Codeigniter等の非対応のフレームワークはある)
  • 認証周りとルーティングの切り離し (controller)
  • ビジネスロジックの切り離し (model)
  • 画面描画の切り離し (view)
  • つまらないセキュリティホールを作らないサービスの提供 (適切なエスケープ)

これ以外のWebアプリケーションとしての魅力や価値を引き出すのはビジネスロジックです。
魅力や価値のないWebアプリケーションをいくら作っても(エンジニアとして成長出来るかもしれませんが)エンジニアリングでお金をいただくことは出来ません。
ビジネスロジックを実現する能力は基礎に含まれると思うんですがいかが?

まぁ、その根っこになるフォルダ分けの構成をベストプラクティスに乗って横着したくらいで揺らぐ程じゃありません。
WebサイトをPHPフルスクラッチで書いてる人間を数人知っていますが、
その人の多くはその時点で疲れてしまってより良い書き方を探すことをせず成長が止まってしまっています。

Larabelなんかは筋の良いフレームワークだし、殆どのコードはPHPで書かれているので、
上記のメリットの部分が気になった時にソースコードを読めば簡単(ではないかも知れませんが)に習得できます。

急に会社の都合で、PythonのFlaskで開発しなければならないとなった場合

大部分のPHPエンジニアが抱える問題と同じです。
速度的な面でScalaやElixir、機械学習の面でPython、SPAを実現する為にJavaScript(Node.js)で開発せざるを得ない状況にいつかぶち当たるかもしれません。

MVCフレームワークは言語を超越したWebサイトを構築するノウハウなんで、
Larabelの深い知識があれば簡単に乗り換えられるでしょう。

ただまぁ、言語はPHPとは言わず、何か一つの言語しか出来ないってのは弱い状況なんで勉強することはおすすめします。

そして、その状態はエンジニアとしては良くないだろうとも思っています。

しばらくは別にいいんじゃないですか?

頑張ったからと言って急に倍の仕事がこなせるわけじゃないんだし…
ゆっくりしっかり力を付けていくのが確実です。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/09/12 19:42

    元々マーケティングを専攻していたり、UI/UXデザイナーとして在学中に受託をしていたので、一般的な新卒エンジニアよりはビジネスロジックのスキルは高いかもしれません。しかし、誇れるほどの実績が無いため、その点も意識して伸ばしていこうと思います。

    Laravelが筋の良いフレームワークだと教えてくれる方が多いため、安心してプライベートで学習を進めていこうと思います。

    多くのPHPエンジニアが悩むポイントなんですね。仰る通り、レコメンドエンジンを作る案件もやるかどうかは別としてイシューとしてあったりするので、Pythonの重要性を感じています。いつか悩むということを考えながら仕事したいと思います。

    差し当たって、HTML5, CSS3, JS(Vue.js), PHP(Laravel, WordPress, Slim)のスキルを伸ばしていこうと思います。ある程度、深い知識とスキルが付いた時、Pythonで統計解析を行ったり、Laravelの経験を活用して、DjangoでWebアプリケーションを構築したりして複数言語の取得を目指したいと思います。

    ご助言ありがとうございます。

    キャンセル

+1

そもそも普通は基礎を身に着けてからフレームワーク使うのでは…。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/09/12 12:58

    そうですよね...
    TECH:CAMPというプログラミングスクールに通っていたので、そこではLaravelを学びました。
    そのせいもあって、基礎力が足りていないと思うようになりました。
    おっしゃる通りですね。

    キャンセル

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

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

関連した質問

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

  • PHP

    19245questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Python

    6912questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Webサイト

    1012questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • Flask

    172questions

    FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

  • Slim

    72questions

    SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。