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

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

ただいまの
回答率

90.11%

プログラムの勉強はなにから始めるべきですか?

解決済

回答 7

投稿

  • 評価
  • クリップ 1
  • VIEW 1,396

kaybe2

score 10

プログラムの勉強について。

プログラムに興味を持ったばかりの超初心者です。
将来はこのようなサイトが作れたらと思っているのですが、どのプログラムを勉強するのが適切なのかわからないです。

自分なりに調べてみるとPHPがWebサービスを作るには良いという意見が多いのかなと思うのですが、Javaもとても人気でなにから始めるべきか迷っています。

きっとMySQLの知識も必要になると思うのですが、自分だけでは何から初めていいのかわからず、質問いたしました。

どなたかプログラムの勉強方法と必要な知識をご教授ください。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 7

+7

プログラムの勉強はなにから始めるべきではないか?

天邪鬼ですので、逆から行きます。

PHP

PHPから始めるべきではありません。PHPには下記のような都市伝説があります。

他言語から学んだ者がPHPを習得することは容易いが、PHPから学んだ者が他言語を習得することは難しい。PHPから始めた者は、一生PHPのみで過ごすか、一度PHPを忘れて、初心から他言語を学ぶしかない。

なぜそうなのかは、理由はわかっていません。ですが、世の中にはかなり多くのPHPだけしかできない人が存在すると言われています。PHPは需要も多いですが、それ以上に供給も多いのがその現れです。かといって、すくなくとも数年の間はPHPだけで食べていくことは可能です。ただ、10年後、20年後はわかりません。そのときでもPHPがPHPとしてあり続けるかも知れませんし、廃れているかも知れません。ただ、給料は(管理職にでもならない限り)上がりません。

JavaScript

JavaScriptからも始めるべきではありません。Lazy Kのような特殊なプログラミング言語を除いたメジャーな言語のうちで、JavaScriptは最も難解な言語です。その複雑怪奇な言語仕様を理解することは困難を極めます。なぜ、JavaScriptだけ多くの代替言語(altJS)が存在するのか考えてみてください。それは、JavaScriptがあまりにも難しく、使いにくく、書きにくいために、altJSに頼らざるを得ないからです。

VB.NET

VB.NETから始めるなんてナンセンスです。VB.NETは、VB6しかできないVBプログラマーが路頭に迷わないようにするために、おまけで作った言語に過ぎません。Microsoftの社会福祉のための言語であり、これから学ぶ価値も、これから使っていく価値もありません。J#のようにVB.NETはいつMicrosoftに切られてもおかしくない言語です。.NET Framework系ならC#を学ぶべきです。C#こそが王道であり、C#こそが真なる後継者なのです。

Objectiv-C

Objectiv-Cから始めるのは時代遅れです。Objectiv-Cを担いでいたのはAppleだけでしたが、AppleはすでにSwiftにシフトしました。もう、Objectiv-Cを勧めようなんて人はいません。普通にSwiftを学んでください。

Delphi

DelphiはC#と名前を変え、Microsoftが開発することになりました。引き続き、C#をご利用ください。

Perl5

君は一体、どの時代に戻りたいのだ?2000年前後のインターネットは確かに良かった。あの頃は何もかも遅かったけど、そこには昭和の古き良き時代と同じ香りがした。だが、もう、バブルは弾けた。昭和のインターネットはもう無いのだ。しかし、ITが衰退したわけでは無い。ICTへと時代が変わっただけなのだ。Perl5は素晴らしかったといって、なぜそれを今更使う必要がある。Larryはやった。やりとげた。10年かけてPerl6を作った。さぁ、もう、未来に進むべきだ。そう、Perl6こそが、真のP言語であることを、P言語のαでありωであることを、唯一無二なるP言語であることを証明するときが来たのだ。

Ruby

他言語では、あなたがプログラムを作る。
Rubyでは、プログラムがあなたを作り上げる!


私の偏見と妄想が9割です。異論反論は結構ですが、根拠は一切ありませんので、根拠を示せと言われても示せません。

参考にならない文献:
5 Programming Languages Marked for Death
5 Programming Languages Not Quite Dead Yet

Flashが入ってないって?ああ、ニコ動に滅ぼされ、ニコ動だけで生かされ続けているFlashさんですね。うちでは既にFlashコンテンツをプロキシで弾くようにしたので、どうでもいいです。必要なら開けるって言っているのに、誰もニコ動見たいって言ってこないんだよなー。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/03 21:28

    読み物としておもしろかったですw

    キャンセル

  • 2016/10/04 02:41

    raccyさん熱い回答ありがとうございます!! 「参考にならない文献」も拝見しました!
    英文が長くて苦戦しました。。。結論が書いてなかった感じですが、楽しく読める内容でした、ありがとうございました!!

    キャンセル

  • 2016/11/03 09:52

    参考になりました。

    キャンセル

+5

プログラム言語は所詮「道具」なので、論理構造を理解でき、構築できるようになることが大切です。
その論理構造を何か決めた言語で記述するときにはその言語の制約を受けることになります。
なので、まずは、分岐やループなどの基本の論理構造を理解し使いこなすことが大事だと思います。
とは言え、記述する言語を決めたほうがやりやすいでしょうから、Java、PHP、Pythonなどの言語を使ってプログラムの処理の流れがイメージできるようになるまで、他人が書いたソースを読んだり、自分で課題を解いてみたり、と基礎をしっかりと固めるのが、地道ですが確実だと思います。

「プログラミングに王道なし」

だと私は思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/04 03:11

    PineMatsuさんありがとうございます。!!
    精神論は大好きです、熱い回答に感謝です。
    やり込んでみるのは大切ですね。

    キャンセル

  • 2016/10/06 12:10

    PineMatsuさんありがとうございます!
    論理構造と基礎固めですね、頑張ります!!

    キャンセル

checkベストアンサー

+2

比較的初心者に近い目線から回答します。

例示されているサイトは、中身としては大して難易度の高いものではありません。
初心者向けのWebプログラミング本に出てくる課題(掲示板を作ろう、とかお問い合わせフォームを作ろう、とか)が一通り出来れば、あとはそれの応用です。

デザインも含め完成度の高低は別として、同じような機能を持ったサイトを作ること自体は比較的簡単です。

というわけで初心者向けの学習本を2~3冊やるなり、ネットでググるなりすればOKです。

とりあえずPHPとMySQLを勉強するのが一番普遍的で情報も多く簡単でしょう。
「何から初めていいのかわからず」という人は自分でググるのも難しいでしょうから、入門書を読むのがまとまっていて良いと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/04 11:36

    Zico_terailさん一番しっくりくる回答をありがとうございます!!
    決心が付きました。 PHPを頑張ってみます!!

    キャンセル

+2

サーバーサイドの言語としてはフレームワークを必要としなくても使える、PHPがよろしいかと思います。
データベースもPHPと親和性の高いMySQLで良いかと。
過去のどっかの回答にも書きましたが、最初からすべてをやろうとするのではなく、段階的に学習していくことをお勧めします。

  1. HTMLのみで、デザインの仕方などを理解する
  2. PHPのみで、PHPの基本的な部分を理解する
  3. HTML+PHPで動的なサイトを構築してみる
  4. MySQLを使ってみる(データベースを構築してテーブルを作成しSQLを使ってみる)
  5. HTML+PHP+MySQLで動的なサイトを構築してみる

ここまでできたらあとは、クライアント側にJavaScriptを使ってみるもよし、サーバー側を何かのフレームワークに置き換えてみるもよし。
参考にするのはウェブで適当に検索してみて、自分がやりやすい・読みやすいと感じるところを利用してみてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/04 03:16

    学習手順の参考になりました。
    なにもわからないので、そのとうりに学習を進めたいと思います。

    キャンセル

+2

「HTML → CSS → JavaScript → PHP → SQL」

上記の順番で学習するのが鉄板で、一番分かりやすいです。
(JS以外)ほぼ易しい順なので、学習しやすいでしょう。

それから、SQLはMySQLが一番標準的ですが、
SQLite」から入ると手軽です。


Javaもとても人気でなにから始めるべきか迷っています。

JavaはAndroidアプリ開発をするなら必要ですが、
個人開発のWebサービスだと、Javaはあまり使われません。
(大企業用の大規模開発だとよく使われますが)

なぜかというと、Javaが使えるレンタルサーバは、
いろんな事情があって料金が高いからです。


やはり、安いレンタルサーバにも標準で入っている
P言語(Perl、PHP、Python、Ruby)がサーバサイドでは一番手軽です。

その中でもなんだかんだ言って、PHPが一番ハードルが低いです。
入門書など、初心者向けの情報が豊富なのが大きいです。

(なお、私自身が一番使うのはRubyで、慣れると書きやすいですが、
OOPやFPが前提で、手続き的でない部分が最初は分かりにくいかも)

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/04 02:52

    LLmanさんありがとうございます!!
    SQLiteの存在を知らなかったです、あっでも調べてみたらなんだか難しそうな。。。
    JavaよりP言語押しですね、ご意見ありがとうございます。
    FPってなんでしょうか? 検索するとファイナンシャルプランナーばかりでて悲しくなります!

    キャンセル

  • 2016/10/04 02:57

    SQLiteはMySQLより手軽です。ただし、同時書き込みに弱いので、
    人が多い掲示板など書き込みの多いサービスには向きませんが、
    質問文で例に挙げられたサービスみたいに、表示するだけなら向きます。

    FPは関数型プログラミングの略です。(マイナーな略称を使ってすみません)

    キャンセル

  • 2016/10/04 03:06

    LLmanさん素早い回答ありがとうございます!!
    Functional Programming ですね? 調べてみましたが難しい感じで「ぐぬっ」となりました。。。でも必要な知識でもあるので引き続き調べてみます!!

    キャンセル

+1

掲示板に特化するかはともかく、ここの掲示板にも同じような話題がいくつかありますから、過去ログを熟読してみては?
https://teratail.com/questions/8168
https://teratail.com/questions/19961
https://teratail.com/questions/32909

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/10/04 11:37

    Orlofskyさんありがとうございました。過去ログも参考になりました。

    キャンセル

+1

web アプリ 勉強
で google 検索してみました。

参考情報

... 未経験からプログラマーに転身した現役エンジニアに話を聞いてまとめました。学ぶとWebサービスを作ることができます。...

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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