人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラミングの勉強の件でアドバイス下さい!

このはてなから皆様のアドバイスのおかけでPHP&mysqlを使ったウェブサイトをつくることができました!ありがとうございます!

今回質問したいのが次に何を勉強していけばいいか?ということ。
【自分の保持スキル】PHP&mysql(初心者レベル)(cakephpなどフレームワークなし)、html

【実現したいサイト例イメージ】
http://pazudora-friend.com/
http://luidas.com/pazudora/
http://sdsm.biz/pzdr_bbs/
http://tak1.info/

パズドラのそれぞれのユーザーにひもづくIDがありまして、他人のIDをもとにフレンドになっていくというものがあります。(どんなモンスターを使っているか等希望をのせれます)

PHPでできると思いますが、画面遷移などさせずになど考えておりJAVAスクリプト(jQuery含含む)の知識を身につければ開発が可能ではと思っておりますがいかがでしょうか。

際限はないと思いますが、JAVAスクリプト以外にこれを勉強した方がいいなどありますでしょうか?
ざっくりな質問で恐縮ですが、おおまかで結構ですのでこれとこれをやっとけみたいな感じでいただけると幸いです。

●質問者: ak
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● lang_and_engine
●100ポイント ベストアンサー

絶好調さん,初期のステップから見守っておりましたが,ここまでよく頑張りましたね。

今後も絶好調でいらっしゃってください。


さて,プログラミングの勉強法の件ですが,常に

という考え方をするのがよいです。

あのid:amachangも支持している,非常に適切な勉強法です。下記をお読みください。

遅延評価的勉強法 - IT戦記
http://d.hatena.ne.jp/amachang/20080204/1202104260


今回の場合は,Webアプリにこんな機能を持たせたい,という夢や要望をたくさんリストアップして下さい。
それらが目的(ゴール)で,習得すべき技術を吸い寄せる,強力な磁石のような働きをしますよ。

それら作りたい機能の一つ一つの実現のために,習得すべき技術やライブラリ等が,そのつど見えてくる。というわけです。

たとえば,サイト例の一つ目のように
「パズドラに関連したニュースを自動的に収集してトップページに掲載したい」
という目的があれば,web上のクローラやボット,バッチ処理,XPATHを使ったページ解析,RSSの扱いなどを習得する必要に迫られます。

「サイトをしばらく運営したら全体が重くなってきたので速度を改善したい」
という要望があれば,その願いをかなえるために
DBのインデックス,SQLのオプティマイズ,キャッシュ機構の導入,ブラウザ上でのパフォーマンスアナライザの使い方と読み方,Webアプリのベンチマークの取り方,サーバのレプリケーションやクラウドサービスの導入
などの先端Web技術を,否が応でもいっきに学ぶことになります。

実現したい機能という目的があれば,手段(習得したい技術)は吸いついてくるんです。

なので,夢を持ち続けてください。
その夢をWebアプリの機能レベルに分解して,機能の実現方法をその都度調べ,
一番いい方法がどれなのか迷ったら,複数の手法を試して比べてみたり,
どの方法がお勧めかを他人に尋ねればいいんです。

自分が作りたいものを作るわけですから,モチベーションを常時保ち続けることが可能になりますよね。
逆をやってしまうと,あまりモチベーションが無いし,時間をかけた割に喜べる成果も出ないので,途中でプロジェクトが立ち消えになってしまいますよ。


以上が,ニーズとシーズに分けた場合の「ニーズありき」の考え方です。

次にシーズをベースにした勉強法という考え方ですが,
まだ利用目的のわからないシーズを,一定量集めておくのは良いことです。思わぬアイデアが浮かぶので。

feedlyなどのRSSリーダか,またはGoogleアラートなどの通知サービスを使って,自分の関心のある技術領域をキャッチアップし続けましょう。
たとえば「Wordpress」というキーワードでアラートを作っておけば,それに関連した最新情報を自動的に入手してゆけます。

ただ漫然と本やサイトを眺めているだけでは,どれが自分に役立つのか判断しづらいので,キーワードを絞って情報収集をし続けるのです。
そして気になったものがあれば使ってみます。良いなと思ったら自分のサイトに導入します。
このサイクルを繰り返します。


ジェネラルなWebアプリのスキルで言うと,下記のものの基礎は順番に押さえておきましょう。

・html5,CSS3,モダンなJavaScript,jQuery。jQueryは,今回の場合だと,特にAjaxとUIの充実の情報。およびそれらをブラウザ上でサクサク取り扱うための開発ツール(Firebugとかデバッガ類)に習熟しておく
・いまどきのマルチデバイスに対応するためのレスポンシブ関連の話題(Webアプリをスマホとかタブレットでも使いやすくしておく)
・GIMP等,画像加工やデザイン処理の取り扱い。デザインやUIなど見せ方全般の話題
・SEO等,人気のあるWebサイトとして成立させるためのマーケティング技法,もしくはアクセス解析技法
・Webアプリのパフォーマンス関連の話題
・Webアプリのセキュリティや脆弱性関連の話題(これは知っていないと深刻です)
・MVCモデルやフレームワークでWebアプリを設計することのメリットと実現方法。つまり設計やアーキテクチャの話(そのうちメンテしきれなくなって必ず必要になります)
・だんだん進んできたら,ネットワークの勉強をしてから,クラウドへの移行が必要になってくるかもしれませんのでその辺の話題へステップアップ。ここまできたらLinuxや仮想化ソリューションも必然的に使えるようになっているでしょう。


以上のように,ニーズをベースにした勉強法と,シーズをベースにした勉強法のバランスを取るのがベストです。
これで,少し先が見通せるでしょうか。


lang_and_engineさんのコメント
一部訂正: 「遅延評価勉強法」の参考URLを貼り間違えました・・・。 かわりに,下記のサイトをお読みください。勉強法が詳しく載っています。 もし実践すれば,いろんな方面で今後一生役立つ考え方です。 ハッカーと遅延評価勉強法 - Slow Dance http://d.hatena.ne.jp/LukeSilvia/20080402/1207149044 「必要になったときに学ぶ」遅延評価的学習法 - モジログ http://mojix.org/2009/05/09/lazy_evaluation_learning 勉強が苦手な人向けの「遅延評価勉強法」 - nanapi社長日記 @kensuu http://blog.livedoor.jp/kensuu/archives/50555054.html

lang_and_engineさんのコメント
末尾の部分の習得すべきスキルに追加: ・肝心なテスト工程の話が抜けていました。自分が作ったプログラムとWebアプリのテスト方法,できれば自動テストの方法。テストコードを書くかどうかで,ちゃんとしたプログラマかどうかの境目になります。 ・スマホアプリやタブレットアプリとの連携方法。さいきんはHTML5がそのままアプリになるのに加えて,Webアプリのままだとモバイルユーザを引き込みづらいという時代なので,Webアプリを「スマホアプリ化する」という工程も視野に入れて下さい(iOS + Android対応)。あまり難しくないし,そういう時代なんですよね。 ・WebサイトをSNSと連携させる方法。TwitterやFacebookやmixiなど。どのSNSを選んだらベストなのかは,サイトごとの性質による。例えば,特定のゲームのプレーヤがよく使っているSNSはどれか。これも,時代の流れで必然的に必要になってきます。要はマッシュアップ,またはWeb APIの活用です。 ・いろいろ試しているうちに,クラスやオブジェクトという言葉が出てきたら,ある時点でオブジェクト指向に手を付けましょう。で,PHPでオブジェクト指向は厳しいので,一時的に別のプログラミング言語(RubyやJava)をかじって,デザインパターンやUMLダイアグラムに触れておきましょう。そうすれば,ネット上に載っている技術的な話題を理解しやすくなるし,良いコードを素早く書けるようになるし,ダウンロードした各種ライブラリを適切に利用する助けにもなります。プログラミングの勉強で避けて通れない部分です。 ・時代もどんどん移り変わっていきますから,ここまで書いてきた項目をやっているうちに,習得すべき項目もその時点で新しいものが出現しているはずです。まずは,この分野なら任せろという得意分野を2?3個持って置いて,困ったら自分の得意分野でとりあえず解決できるので心配なし,という状態に持っていきましょう。広く浅くしておいて,なおかつ少数の分野ではエキスパートを目指すというわけです。そして現在言えるのは,jQueryのエキスパートになっておけばリターンがでかい,という状況が今後とうぶん続くという事です。jQueryワールドを押さえておけば,HTMLやCSS,デザインの話やサーバ側の話も一挙に解決できたりするので・・・。

akさんのコメント
lang_and_engineさんこんなにも詳しく書いていだたいたにも関わらず返信遅れたことお詫び申し上げます。 またいつも適切な解答誠にありがとうございます。 ご指導いただいた内容の半分も今は理解できてなかったので、早速この画面を印刷して何度も読み返し勉強したいと思います。 私技術力はまだまだなのですが、今年ネットビジネスで成長することができました。その中で、例えば飲食では心地よいサービスを提供する。それとネットサービスも同じで、顧客の課題やニーズを解決するものというのだというのを確信することができました。 そのような事もあり、もっと世の中をよくするためにfacebookやlineといったサービスに負けないようなサービスがつくれないだろうか?世代毎にネットをつかえなくて困っている人はたくさんいるだろう?などなど勉強やウェブサービスを運営していくなかで学ぶことができました。 これもはてなを通して様々な人が指導してくれたことが多きかったと思います。 また、プログラミングも気合があればある程度まではできるという自信がつきました。最初友人の優秀なエンジニアに頼もうか悩みましたが自分でやって得る物が大きかったです。 来年は本格的に事業を拡大する下地ができました。 その拡大に向けて、学び続けることが大事だと思いますので何が目的かをきっちりと見据えてがんばりたいと思います。 ほんとうにありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ