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

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

ただいまの
回答率

90.23%

初学者に対するプログラミング学習の方針について

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 676
退会済みユーザー

退会済みユーザー

プログラミングをこれから勉強しようと思っているのですが、そのために次のふた通りの方法が思い浮かびました。

  1. C言語、C++言語で(変数からオブジェクト指向まで)プログラミングの基本的な考え方を勉強し、その後開発に挑む

  2. スクリプト言語のように取り組みやすい言語で開発しながら実践で勉強して、とりあえず何かを作ってから基礎を固める

すなわち、理論面から入るか実践から入るかということです。
上の1と2ではどちらが初学者にとって良い学び方ですか?

1では基礎をしっかりと理解できる反面、実践に弱く、モチベーションが続かなそう。
一方、2では作りながら学べる反面、基礎が疎かになりそう。

いずれにしても、最終的には両方することにはなるのですが、初めはどちらのやり方がいいのでしょうか?

なお、私の作りたいものを念のために書いておきますが、それは、WebアプリケーションからOSまで広範囲です。しかし、2のやり方で学ぶのであればとりあえずはWebアプリと(Webで動く)ゲームです。

また、これも念のために書いておきますが、上の質問はおそらく初学者一般に当てはまる質問だと思うので、一応有意義な質問だと思います。


追記
たくさん回答をもらった後に大変申し訳ないのですが、質問し忘れていたことを書きます。
上の1,2の方法に関係なく、初心者がプログラミングを身につけるための勉強をするときは1つの言語を深く理解するのと、複数の言語をかじるのとではどちらがよいのでしょうか?(実務レベルで使える人材とかではなく、あくまでもプログラミングの勉強をする上で、どちらがよいのか、ということです)

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 6

+4

「本人にその気がある」という前提であれば、興味を持ったところから入っていけばいいと思います。せっかくモチベーションがあるところなら、それを最大限活用することで突き進んでいきましょう。

どんな道から入ったとしても、そこから広げていけばある程度「共通項」みたいなものは体得できますし、他の分野に入る場合にも無駄にならないのはいうまでもありません。

「チューリングマシン」という言葉がありますが、ほぼすべてのプログラミング言語はチューリング完全、つまり(ライブラリや手間の問題を無視した理想論で考えれば)できることは同じなので、「何から入った」ことでそこまで差が出ることはありません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 18:42

    自分の場合は「アルゴリズム」からプログラムの世界に入っていきました。そのこともあって、ユーザーの入出力を行うような完成形へ持っていくのが相対的に苦手、というのが長く続きました。

    キャンセル

  • 2018/03/08 19:46

    回答ありがとうございます。
    >自分の場合は「アルゴリズム」からプログラムの世界に入っていきました・・・
    この話は参考になりました。
    1のやり方では書いていませんが、アルゴリズムなど一般の理論を習得してから実践へ...と思っていたのですが、今思うと、もしかしたら作れるようになってから理論を知る方が簡単であり確実なのかもしれませんね。

    キャンセル

+4

すなわち、理論面から入るか実践から入るかということです。
上の1と2ではどちらが初学者にとって良い学び方ですか?

実はプログラミングは、理論と実践を同時並行で学べる稀有な学問(技術)です。
どっちからというより同時に進めるべきだと(特に理由はありませんが)個人的には考えます。

ただし以下に気をつけましょう。

  • 理論を学んでいるときは、かならず手を動かして動きを確認しましょう。
    頭では分かったつもりでも実際にはコードが書けないというのはよくあることです。

  • 実践を学んでいるときは、なぜそう動くのか、なぜそう書くべきかを理解したうえで進めましょう。
    「なんだかわからないけど動くから」という考えで書いたコードは必ずバグを生みます。

言語は、まあどれでもよいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 19:40

    回答ありがとうございます。
    たしかに同時に進めるという選択肢もありますね!

    キャンセル

checkベストアンサー

+3

こんにちは。

1では基礎をしっかりと理解できる反面、実践に弱く、モチベーションが続かなそう。
一方、2では作りながら学べる反面、基礎が疎かになりそう。

鋭いですね。全くその通りと思います。

もし、MIGAさんがクリエイターとしての才能(小説を書く、音楽を作るなどなど、無からなにかを生み出す力)がご自身の持っているもののなかで優れていそうであれば、恐らく後者の方がその才能を活かせるのではないかと思います。
逆に、目の前にある問題を解決するような能力に優れていそうであれば、前者から入るとその能力を活かせるより技術的に難易度の高い業務をこなせるようになるだろうと思います。

ご自身のなかでどちらがより優れているか、もしくは、どちらがより好きかで方向性を選択するのは1つの方法と思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 19:39

    回答ありがとうございます。
    得意な方で選ぶ、という考えは思い浮かびませんでした!
    私は、どちらかというとアイディアが思い浮かぶ方なので、もしかしたら2のやり方が向いているのかもしれませんが、理論的なことが好きだという一面もあります。
    どうしましょうか><

    キャンセル

  • 2018/03/08 20:14

    問題を解決するアイデアなのか、人を楽しませるアイデアなのかで方向性が異なると思います。
    理論的な面は後者にも重要ですよ。矛盾だらけな作品は人を萎えさせますから。
    問題解決ビジネスとコンテンツ・ビジネスでは後者の方が得るものが多いような気がしてます。

    キャンセル

  • 2018/03/08 23:35

    問題を解決するアイディアよりもむしろ、問題になるーー悪い意味ではありませんがーーアイディアの方が多いというのと、やはりただ概念を知るだけでなく、どのように使うかを知らなければ意味がないだろう。ということから、とにかく作ってみることにします。
    別に急いでないので、何かを作ってから基礎をしっかりと理解しようと思います!
    プログラミング学習に限らず、人生の選択においても役に立つ考え方を得られました!!
    ありがとうございました!!

    キャンセル

0

やはりやってて楽しいとか感じるものがいいでしょうねぇ。モチベーションを保つためには作って動かして目で確認できるものが。ただ、今では選択言語などによっては結構簡単にできてしまうので基礎を固めるためにはやはりC/Javaもやっておいた方がいいとは思います(特に言語にこだわらず情報が多いものでいいとは思います。)ってことで私は並列でやるのもありかなと。最初は見た目で楽しさを感じてその後にロジックを組む楽しさを知っていく。あとはそれをリファクタリングなどしていって改良を重ねるの繰り返しですかな。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 19:03

    "上の質問はおそらく初学者一般に当てはまる質問"ってありますが、teratailでも結構この手の質問は定期的に出てくるのでteratail内で探してみるのもいいと思います。

    キャンセル

  • 2018/03/08 19:42

    回答ありがとうございます。
    やってて楽しいとなれば、やはり、やった感のある2がいいのでしょうかね?
    続けなくては意味がありませんよね。

    キャンセル

0

こんばんは

理想は実務を通じて学んだ方がわかりやすいです。
私はjavascriptをオススメします。
javascriptはプログラミング言語の中でも簡単な部類に入ります。
出てくる文法も他の言語に使えたりします。
あと、他の言語と比べて動きが分かりやすく検証方法も手軽に出来るので初心者が始めるにはオススメの言語だと思います!
頑張ってください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 23:36

    回答ありがとうございます。
    確かに、実際に開発しながら学ぶ方が概念をどう使うかがわかりやすくていいですね!

    キャンセル

-2

同じような話題 があるので参考にされては?
プログラマー年収ランキング

日本ではプログラマーの給料は安いですから、英語と数学を勉強してアメリカで日本の何倍も稼いでください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/03/08 18:45

    当たりですね。日本ではプログラマーの待遇は良くないし評価も高くありません。稼ぎたいとか最先端に触れたいとかなら海外脱出が正解。

    キャンセル

  • 2018/03/08 19:01

    仕事にする、って質問者は言っていませんよね?

    趣味としてプログラミングを楽しむ分には無関係な話題ですね。

    キャンセル

  • 2018/03/08 19:27

    申し訳ないですが的外れな回答です。
    上の方が書いてくださっている通り、仕事にするとか、それを思わせるようなことは一切書いておりませんが、誤解を招いたのならば謝ります。ただプログラミングをしたいだけです。

    また、"同じような話題"とありますが全く別の内容だと思います。
    どの言語を学んだら特をするのかということを聞いているのではなく、どういう方法で学ぶと特をするのかを聞いているのであって、初学者にとっては、よほど偏った言語でない限り(広く使われている言語ならば)言語それ自体はさほど問題ではないでしょう。
    重要なのはプログラミングにおける考え方です。そしてそれは多分(同じ仕組みのコンピュータならば)共通だと思います。

    それゆえ、私は"言語固有の問題"ではなく"プログラミング学習"という一般の問題について尋ねたのです。
    その証拠に私は、どの言語で学べばいいかなど質問しておりません。(もっとも私の質問文中の1ではC言語、C++言語とありますが、これは、それらの言語が理論面を学ぶのにふさわしいと感じたから書いただけです。また、2ではスクリプト言語と書いてありますが、それもやはり実際に開発する上で初心者にとっては一番易しいものだと感じたから書いただけです)

    キャンセル

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

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

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