質問文に含まれている WEBの基礎知識
というのは、どの開発言語でも共通なことに対する知識です。
自分を例にして説明すると、現在はWordPressとLaravelのみ経験があり、PHPやSQLはフレームワークで必要な時にググりながら知識を付けています。一度も言語単体で勉強したことはありません。要は経験したフレームワークで何かすることに関しては半年ほどの経験で知識が多少付きました。しかし、PHP単体の知識は乏しいかと思います。
この状態で、急に会社の都合で、PythonのFlaskで開発しなければならないとなった場合、半年前の初心者の頃と同じような状態でスタートすることになるのが、不安です。もちろん、転職という選択肢はありますが、今は考えていません。
そして、その状態はエンジニアとしては良くないだろうとも思っています。
これで伝わるでしょうか...。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 02:25
2017/09/12 02:27
回答6件
0
ベストアンサー
PHPやSQLはフレームワークで必要な時にググりながら知識を付けています。
そもそもマニュアルを完全に暗記できている人はそうはいないと思います。
「こんなのあったはずだけど、実際どう書くんだっけ?引数とか省略可能だけど色々設定できたような・・・」みたいな感じでPHPマニュアルを確認して適切な使い方をするのが普通です(少なくとも私はそうです)
というか「Webの基礎知識」より「プログラミングの基礎知識」が不足しているのではないでしょうか?
つまり
WEBの基礎知識 というのは、どの開発言語でも共通なことに対する知識です。
からも何となく伺えるのが「Webに限ったことではない」ということですね。
フレームワークもなんとなく「結果できればOK」で組んでいませんか?
もしかしたらもっと簡潔で良い書き方、表現があるかもしれないとか、「普段から考えて組んでいる」かどうかにかかってきます。
組み方に正解というのはありませんし、お客さんにとっては結果が同じなので中身まで気にされることは殆どありません。(もっと言えば言語もお客さんにとっては関係のないものです)
しかし、いざ追加・改修・・・となったときに差が出てきます。
フレームワークも開発を効率的に進めるため(はては後々のメンテナンス性を高めるため)のツール・道具に過ぎないと思っています
今現在、LaravelなりWordpress(こちらはフレームワークではなくCMSですが)なりが持っている機能を最大限に活かせたサイトが出来上がっているでしょうか?
というところを突き詰めてみると、「フレームワークばかり活用していると、WEBの基礎知識は付きにくい」という考え方には至らないと思います。
言い方は厳しいかもしれませんが、現時点で最大限使えていないから他の環境に、となったときに不安があるのでしょう。
言語は違ってもロジックは変わりません。お作法さえきちんと抑えればおおよそ同様に組めるようになるものだと私は思っています。
PHP単体の知識は乏しい
これが自身の不安を物語っていると思います。
乏しい知識の中でフレームワークを使っていたら、それは最大限活用できるはずがないです。他の言語にいっても結果は変わりません。
考え方を前向きにすると、今現在でもPHPですらほぼ初心者のようなものなわけで、じゃあ、Pythonも初心者のような状態で迎えるわけです。覚えること・やることが沢山あって大変かもしれませんが、組みあがって、それが動く喜びを味わえると思いませんか?
会社側も経験半年そこらの開発者に最初からバリバリできるって期待は持っていないと思います。
ある程度の学習期間は設けられるでしょうし、会社がやるとなったからには一応ちゃんとできるPython技術者はいるんでしょう。
開発は1人で回していくものはほとんどないので、これを機会にロジックを考える、プログラミングをするというところからしっかりと身につけていってはどうでしょうか?
投稿2017/09/12 03:02
総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 06:06
2017/09/12 06:53
2017/09/12 09:47
0
Web で必要な処理ってざっくりと言ってしまうと
・ルーティング処理
・リクエストの受付
・DB 操作
・データ加工
・画面出力
になるかと思いますが、teratail での質問を見る限り、フレームワークから入った人と素の言語を触っている人で、その処理に対しての理解度合いが大きく違うといったことは無いように感じます。どちらかと言うと、「根源的な挙動に興味があるかないか」で学習の進度が変わってくるのではないかと。
ただし、フレームワーク使用者が「根源的な挙動」に興味を持たないケースはワリと見受けるので、「フレームワークばかり活用していると、WEBの基礎知識は付きにくいですよね?」なんてことが言われてしまうんだと思います。
とりあえず動かすだけなら、「根源的な挙動」なんて知らなくてイイやって態度ですね。CMS 利用者にも同じような傾向は見受けられます。
私は素の言語から学習していて、フレームワークの使用の知見はあまりないのですが、フレームワークから入ったとしても、その挙動を確認しようとすると、やはり上記の処理に対しての理解が必要となるので、その理解進度に差は出ないように思います。
投稿2017/09/12 10:11
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 10:24
0
新しいものに手を付けるというのも有用だと思いますが、一度なじみの深いフレームワークを掘り下げることでも、基礎力は身につくのではないでしょうか。
フレームワークで実現していることを、どのように実現しているかという視点で見直してみれば、なじみ深いだけに、新しいものに手を付けるより理解が早い部分があるのではないでしょうか。
(質問に加筆されたので)追記
不安を拭いさる一番の方法は、汗をかくことだと思います。
投げ出さず、諦めず、ひとつの事を全うする為に汗をかけば、それが自信となり多少の事では動じない耐性が身に付きます。
努力はあなたを裏切りませんから。
投稿2017/09/12 02:32
編集2017/09/12 03:22総合スコア25186
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 02:45
2017/09/12 03:03
2017/09/12 09:44
0
フレームワークばかり活用していると、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 10:24
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 10:42
0
極論を言ってしまうと、
「最後にはWiresharkでパケットを見て、捌くプログラム(アセンブラレベルからPyhtonレベルでも可」
というところになってしまいます。
でも、
「そこまでの知識が必要か?」
と問われたら、今日では多くのライブラリがセキュリティホールをつぶしているので、それを使ったほうが安全ということになりますでしょうか。
話はずれますが、関数型プログラミングをする際に圏論の知識は必要かという話にも似てるなと。
別にHaskellやElmやSchemeを使う分には、圏論を知らなくてもプログラミングできます。問題は、
「その考えを踏まえた言語を実装するとき」
です。
フレームワーク間での差異に戸惑うことがあると認識しますが、わりとその辺は言語を広く浅く触っていれば、何となくわかってくるものだと楽観的に考えております。
まずはいろんな言語をCLIアプリレベルで触ってみて、
「へぇ、こういうものなんだ」
程度にわかっておけば、他への応用がそのうちできると思いますよ。
肩肘張らず、
「俺の考えてるそれと違う」
を受け入れられれば、基礎力もおのずとついてくるのではないかと思います。
最後に、まったく励ましにならないと思いますが、自分の拙い質問とそれにまつわる記事へのリンクを貼って、私の回答とさせていただきます。
投稿2017/09/12 02:44
総合スコア2244
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
そもそも普通は基礎を身に着けてからフレームワーク使うのでは…。
投稿2017/09/12 03:02
総合スコア10377
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/12 03:58
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。