する質問をすることでしか得られない、回答やアドバイスがある。今回、私自身の悩みについて質問させてください。私は先月6月より仕事の都合でPHPを完全マスターする為に独学でPHPを始めました。始めたての頃は、これがあればなんでもできる!とやや興奮気味になって色々な教材やサイトをみて、睡眠不足になってしまうくらいの勢いで勉強していました。約2ヶ月、毎日朝から夕方までわからないことがあればググってを繰り返し、そのたびに何度も壁にぶつかり、何度も挫折しそうになりました。ネックだったのは、「理解できているようでできていないこと」でした。ある日、某ブログのポップからこちらのサイトを見つけ、すぐに登録→質問まで至ったのですが、そこから途端に作業ペースをあげることができたものの、答えてくれる方々の思考や考え方などが個人個人で違い、ある意味混乱することも多く、ほしい答えとは違うベクトルの回答をいただくこともあり、わかりやすく、しっくりときたものをベストアンサーに選ばせていただいてました。約2ヶ月間色々とご質問させていただいた後でいうのもなんですが、自分には向いていないのかなぁ、と。度重なるパースエラーと動作しない生成物をみて感じ始めました。Webデザインを学んでいた人間なのですが、この度Webサービスを作りたいと思いPHPを学び始めたのがきっかけです。私自身、「まったくできないこと」よりも「自分にできること」を選ぶ人生を歩んできたもので、この「まったくできないこと」が長く続く時間がどこかストレスになり、このような思考になってしまったのかもしれません。学ぶようになって「できるようになる」喜びはこの上ないと思ってます。可能であれば、これからもPHPプログラマーとしてお仕事をやっていきたいとも思ってますし、そのためにはもっとキャリアを積まなければダメだと思ってます。お仕事にできるまでのスキルを持てない、努力の方向を誤り、理解できているようでできていないことが続く現状、先のことを考えると、まだまだ1からやり直していくのか、別のクリエイティブ業に移るのか、悩みます。現在、実際に仕事でプログラムを用いてるプログラマーの方が、このプログラムを用いた仕事を選んだ理由などを共有していただけますでしょうか。私と同じ悩みを抱え、現状に満足できずに挫折していった方は数え切れないほど多くいらっしゃると思います。モチベーション向上というか、自分勝手な質問だとは思いますが、ご協力いただければ嬉しいです。いつもご回答いただいてくださっているプログラマーの方々。いつもありがとうございます。不快に感じる質問かもしれませんが、これからの日本人エンジニアのためにも、ご回答いただけると本当に嬉しく思います。おこがましいとは思いますが、何卒よろしくお願い致します。attachmentクリップ9気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順link+9直接の質問の回答でなくて申し訳ありません。察するに楽に無駄なく取り組める開発環境を確立させることが最優先課題なのかもしれないと思いました。文法チェックなど実行前に判別できる軽微なエラーをエディタ上で検出出来るだけでも生産性はずいぶん変わります。テスト環境にアップロード→パースエラー→修正&アップロード→パースエラーの繰り返しは生産性が悪すぎます。PHP専用テキストエディタの類を探すか、あるいは汎用開発環境にPHP特化させるとか。EclipseとかNetBeansなどは無償で入手でき日本語化もされていますので、とっつきやすいと思われます。ローカル(自分のパソコン)上にテスト環境は立ち上げているでしょうか。XAMPPほかいろんな手法があります。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。さんコメントありがとうございます。その環境については全く知りませんでした...「phpはサーバーサイドだからアップロードしないと動作結果は分からないものだ」と勝手に決め付けていました。貴重なご意見ありがとうございます。コメントありがとうございます。その環境については全く知りませんでした...「phpはサーバーサイドだからアップロードしないと動作結果は分からないものだ」と勝手に決め付けていました。貴重なご意見ありがとうございます。ありがとうございました!キャンセル完了するlink+3「プログラミングは楽し、デバッグは苦し」と、プログラミングをする人はみな感じることと思います。PHPならプログラムが大きくなれば、まず関数に切り分け、さらに大きくなったときにオブジェクトに切り分けていきます。ほかにも一般的に言って、可読性を良好にすることは重要です。ifやforのネストを浅くすること、変数や関数の適切な命名など。学び始めの人ほど、構造化や可読性を過小評価しています。学び始めの人は、目の前のプログラムが動くかどうかが大事で、コードのキレイさは、細かいことだと思っている。コードがキレイなだけでバグは減ります。(原因の特定が難しい特殊なバグでなければ)またこれは先の話でしょうが、キレイな設計(ドキュメント)があれば、コードを実装するときのバグを減らせます。衛生的な環境にしたほうが、虫の発生を一気に減らせるようなものです。言っても、最初のうちは実感するのが難しいと思います。次から次へと書き捨てていたものです。やってスタイルを変えるか。手っ取り早いのは、コード作法やリファクタリング系の本を読むのが良いと思います。自分と違う書き方や考え方に触れるだけでも、大きな発見になると思います。最初はひたすら手を動かし、動くプログラムを作るのが良いですが、あるていど慣れてきたら、自分のスタイルを見直す機会が必要だと思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。さんコメントありがとうございます。私のような初心者にはその差がわかりません。なんとなく、コード規約に乗っ取った記述ができるかどうかというイメージではあるのですが、、、>>コード作法やリファクタリング系の本を読むのが良いと思います。いうことも視野に入れ、基礎が固まってきたところで挑戦してみようかと思います。コメントありがとうございます。私のような初心者にはその差がわかりません。>>コード作法やリファクタリング系の本を読むのが良いと思います。いうことも視野に入れ、基礎が固まってきたところで挑戦してみようかと思います。ありがとうございました!キャンセル完了するlink+2うーん私の場合は「仕事で必要だから覚えた」という感じです。今はPHPがメインですが、元々はVB6だったりCだったりしました。その時その時で必要な言語を覚えていきましたよ。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。さんコメントありがとうございます。多くの方々は「仕事で使うことになった」という義務的な学習を強いられたのかもしれません。私は、「これを作りたい!」という、どちらかというと仕事をつくる立ち位置なので、あってもなくても正直困ることなんてないのです。作れるようになりたいという気持ちから、できなくてどうしよう...という不安が生まれ、今回身勝手な質問をさせていただいた次第であります。コメントありがとうございます。多くの方々は「仕事で使うことになった」という義務的な学習を強いられたのかもしれません。私は、「これを作りたい!」という、どちらかというと仕事をつくる立ち位置なので、あってもなくても正直困ることなんてないのです。作れるようになりたいという気持ちから、できなくてどうしよう...という不安が生まれ、今回身勝手な質問をさせていただいた次第であります。仕事で必要でなくても覚えたいというのは素晴らしいことですね。プログラムを覚えることで現場の肌感や仕事のボトルネックが分かるようになるので、現場の人間としてはそういう人が仕事を作る(企画かな?)のは非常にありがたいです。仕事で必要でなくても覚えたいというのは素晴らしいことですね。プログラムを覚えることで現場の肌感や仕事のボトルネックが分かるようになるので、現場の人間としてはそういう人が仕事を作る(企画かな?)のは非常にありがたいです。08:58yu-riさんありがとうございます。「好きこそものの上手なれ」おっしゃる通りですね。これからの時代、自分最大の武器となる技術を身につけておきたいという危機感の中で選んだのがこういったプログラムになります。現場でプログラムを使用されている方に、そういう風におっしゃっていただけることが何よりも頑張ろうと思える一つの要因だったりします・・・(笑)無茶振りを重ねてスキルが上がっていくのであればいいかもしれませんが、そうでない場合のことを考えると、気持ちのもちようなんだなとしみじみ感じます...。ありがとうございます。「好きこそものの上手なれ」おっしゃる通りですね。これからの時代、自分最大の武器となる技術を身につけておきたいという危機感の中で選んだのがこういったプログラムになります。無茶振りを重ねてスキルが上がっていくのであればいいかもしれませんが、そうでない場合のことを考えると、気持ちのもちようなんだなとしみじみ感じます...。ありがとうございました!キャンセル完了するlink+2現役ではないので、自分は適切な回答者じゃないかもしれませんが。現在、実際に仕事でプログラムを用いてるプログラマーの方が、このプログラムを用いた仕事を選んだ理由などを共有していただけますでしょうか。最初の動機は、計算が苦手だったから計算機にやってもらいたかった。理解できているようでできていないこと理解することと使いこなせるようになる事ではだいぶ差があります。ある話としてはオブジェクト指向とそれに伴うクラスの設計手法等でしょうかね。この手の概念は使い込んで”便利”だと思えるようになって初めて使いこなせるような代物で、勉強よりも実践でしか培われないものですので、大変かと思います。”楽な環境を用意すること”ってのは大事なのですが、その前提条件として、今まで苦労してプログラムが書ける人が楽になる環境、コンピュータの仕組を理解している人間が楽できるプログラム環境ばかりだと思います。お蔭で体系的に勉強できる機会が無かった方には結構つらい環境だと思います。この辺が初心者にとっては不幸な点でしょうか。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。さんコメントありがとうございます。現役でないということだと、元々プログラムに触れるお仕事をされていたということですか?「計算機にやってもらいたかった」という言葉から察するに、その背景に今当たり前のようにDLできる便利ツールなどがまだ出回っていない時代でしょうか。理解することと使いこなすことが別物だということについて、驚いています。いう概念の中で、使いこなすことはまた別のものだという認識でいました。"動作させること"自体を知らなければ、理解することも又到底難しいということになると思うので、その辺りはネットにある既存の構文などを参照していければと思ってます。"楽な環境を用意する"ことに関しては、私にPHPを指導してくださっている方もそういった考え方の方で、例えばphpMyAdminがあったとして、「便利に誰でも使えるようにこれを作った人がいるけど、これを使いこなせた上でエンジニアと名乗るのか、この環境でなくてもターミナルから泥臭くコードを一文一文書いて使いこなせた上でエンジニアと名乗るのか。「なんでも作れます」という意味合い自体も若干ズレてしまうから気をつけろよ。」などとおっしゃっていただけました。得ていく情報の種類や鮮度も自分の基準値次第となってくると、まずは著書などでしっかり基礎を固める必要があるような気がしてきました...。コメントありがとうございます。現役でないということだと、元々プログラムに触れるお仕事をされていたということですか?「計算機にやってもらいたかった」という言葉から察するに、その背景に今当たり前のようにDLできる便利ツールなどがまだ出回っていない時代でしょうか。理解することと使いこなすことが別物だということについて、驚いています。いう概念の中で、使いこなすことはまた別のものだという認識でいました。"動作させること"自体を知らなければ、理解することも又到底難しいということになると思うので、その辺りはネットにある既存の構文などを参照していければと思ってます。"楽な環境を用意する"ことに関しては、私にPHPを指導してくださっている方もそういった考え方の方で、例えばphpMyAdminがあったとして、「便利に誰でも使えるようにこれを作った人がいるけど、これを使いこなせた上でエンジニアと名乗るのか、この環境でなくてもターミナルから泥臭くコードを一文一文書いて使いこなせた上でエンジニアと名乗るのか。「なんでも作れます」という意味合い自体も若干ズレてしまうから気をつけろよ。」などとおっしゃっていただけました。得ていく情報の種類や鮮度も自分の基準値次第となってくると、まずは著書などでしっかり基礎を固める必要があるような気がしてきました...。元、プログラマ、SEです。派遣だったので場所によっては設計からやらされたりと(内部システム担当してた時は、エンドユーザと直接ヒアリングから納品までやってたこともありました)計算機といっても私の時代ではすでにPCは、Windows2000とかでしたので最近ですよ。その辺りはネットにある既存の構文などを参照していければと思ってます。それ以上に最新の思想、概念を許される範囲で、実践で使ってみてください。個人で勉強されるのであれば、試しに使ってみてください。見て読むだけでは分からない世界だと思います。phpMyAdminが・・・この例だとphpMyAdminが裏で何をやってるかイメージできる人かどうかが結構大きな差だと思います。テーブルのカラム変更とかでもphpMyAdminが単純にSQLでAlterを使って変えてくれるんだ。いうイメージさえできてれば環境が変わってもそれを手で打てばいいだけですよね?その方法は別にWebで調べれば出てくるので対応可能ですよね?そういった応用力につながるものだと思います。基礎力を固めたいならOSの仕組とかは一度押さえておくと良いと思います。LinuxをVM上でCUIで立ち上げてみたり、WindowsAPIで、C言語でアプリ組んでみるとか。古臭くて実践に役立たないだろ!ってものの方が見通しが良く本質を理解するには向いてますね。後者のプログラムの方法はすごく時代遅れな方法ですが、根底の仕組みを理解するにはいい方法だと思います。実際、自分の周りで、実践的なものを優先して勉強した結果、エラーの原因と対策が立てられずに苦しむ方が多かったです。元、プログラマ、SEです。計算機といっても私の時代ではすでにPCは、Windows2000とかでしたので最近ですよ。その辺りはネットにある既存の構文などを参照していければと思ってます。それ以上に最新の思想、概念を許される範囲で、実践で使ってみてください。個人で勉強されるのであれば、試しに使ってみてください。見て読むだけでは分からない世界だと思います。この例だとphpMyAdminが裏で何をやってるかイメージできる人かどうかが結構大きな差だと思います。テーブルのカラム変更とかでもphpMyAdminが単純にSQLでAlterを使って変えてくれるんだ。いうイメージさえできてれば環境が変わってもそれを手で打てばいいだけですよね?その方法は別にWebで調べれば出てくるので対応可能ですよね?そういった応用力につながるものだと思います。基礎力を固めたいならOSの仕組とかは一度押さえておくと良いと思います。LinuxをVM上でCUIで立ち上げてみたり、WindowsAPIで、C言語でアプリ組んでみるとか。古臭くて実践に役立たないだろ!ってものの方が見通しが良く本質を理解するには向いてますね。後者のプログラムの方法はすごく時代遅れな方法ですが、根底の仕組みを理解するにはいい方法だと思います。実際、自分の周りで、実践的なものを優先して勉強した結果、エラーの原因と対策が立てられずに苦しむ方が多かったです。15:13コメントありがとうございます。転職する際にもかなり強みになりそうなご経験ですね。その際どんどん学んでいけたというのが羨ましいです。>>MyAdminその背景に対応力を鍛えるものがあるとは、気づきもしませんでした、、PHPからmysqlに接続させることくらいエンジニアとして当たり前のようにやっているからかもしれませんが、しばらくは黙って支持された通りのことをこなします。>>Webデザインをやっていたもので、その段階でOSの仕組みについてもかなり勉強しました。いったLinuxをVM上でCUIで立ち上げたりといったことはやってみたことがないので、触れてみようかと思います。根底の仕組みを知るということがもっとも近道だったりするのですね。勉強します...!!ありがとうございました!コメントありがとうございます。転職する際にもかなり強みになりそうなご経験ですね。その際どんどん学んでいけたというのが羨ましいです。PHPからmysqlに接続させることくらいエンジニアとして当たり前のようにやっているからかもしれませんが、しばらくは黙って支持された通りのことをこなします。>>Webデザインをやっていたもので、その段階でOSの仕組みについてもかなり勉強しました。いったLinuxをVM上でCUIで立ち上げたりといったことはやってみたことがないので、触れてみようかと思います。根底の仕組みを知るということがもっとも近道だったりするのですね。ありがとうございました!キャンセル完了するlink+2就職に失敗して文系卒で未経験でプログラマになり、Java,C,C++,PHPと渡り歩きました。現在は転職し、ゲームプログラマ(インフラ・サーバサイド)になっています。プログラム言語は「言語」プログラムは「書いたようにしか動かない」プログラムは「一番最初が一番難しい」これをおまじないみたいに唱えてください。今へこんでてもダイジョーブ。