みなさんの勉強方法についておしえてください。
PHPやjavascript、rubyなど様々な言語があるかとおもいますが、どの言語とは言いませんが、ある言語を勉強しようと思ったとき、みなさんはどういったやり方で覚えていったのでしょうか?
学生時代のような参考書を買って、それをノートに書いて覚えてた人もおられるのでしょうか?
また、とにかく覚えようと思った言語でひたすら何かを作りまくったという人もおられるのでしょうか?
このサイトでこんなことを聞くのは場違いかもしれないですが、今自分がPHPやjavascriptなど学習するうえで、どのように進めたらいいか悩んでいるので教えてもらえるとうれしいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
ベストアンサー
人によると考えています。
などなど。
私の場合は1番目にあたり、寝る前や電車等の時間で、
WebやKindleを見て覚えます。
ただ、実行しないと結果がわからない事に関しては、
コードを書いて実行結果を見て、理解を深める場合もあります。
後はプログラミング言語のバージョンアップによって記法が大分変わりますので、
学ぶ際は古いバージョンを学んでも良いとは思いますが、
最新または最新から1つ前のメジャーバージョンを学ぶと良いと思います。
また、始めた頃は色々な本を買ったりしましたが、
よくある入門書籍は買わないほうが良いです。
(多方面から攻撃されそうですが)
理由としては、
大まかな知識しか書いていない所に問題が有ります。
例えば、
大体の言語で使用されているセミコロン(;)ですが、
殆どの入門書籍では「とりあえずルールと思って頂ければ良いです」的なことが書いています。
ルールと言えばルールですが、文末を表す記号であったり意味があります。
そういう所を省かれて、結局WEBで調べるので効率が悪いです。
結論としては、
入門時にしっかり知識をつけたい場合は、
- いいWEBサイトに出会うこと。
- 自分にあった学習方法を見つけること。
かなーと考えています。
投稿2017/01/05 14:46
編集2017/01/05 14:50総合スコア882
0
同じような質問はたくさん見ました。特にこちらで聞いてもおかしなことではないようです。
ってことで、私の実践したのは
・初学者向けの入門書(体系的知識の整理)
・teratailで、初学者と思われる人の質問とその回答を読みまくる(トラブル箇所の勘所把握)
・何らかのアプリケーションを設計/構築してみる(動くスクリプトを書くことで、モチベーション維持)
・公開されているライブラリやSDKのコードを読み、きれいなコードを知る(きれいじゃないのもあるけどw)
・軽量フレームワークを参考に、お作法的なものを体感する(正直何やってるかわからない。遅々として進まない。でも読む。)
下2項目は現在進行系です。(余り進んでいないw)
私自身は実践できてませんが、途中でコードレビューをしてもらうと学習効率が上がると思います。
他者の指摘は非常に重要です。
ホントはどっかの会社に所属して、1年ぐらい揉まれるのが最速かもしれません。
あと、学習ではないですが、早めにIDEか高機能エディタを使ったほうが良いです。
つまらんことで、時間を取られることがなくなります。
投稿2017/01/05 22:32
編集2017/01/05 22:50退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
勉強方法も人それぞれなんですよね。というところはmukkunさんに同意です。
とりあえず自分は
「実行結果がハッキリしているコードも書き写して実行する」
「実行したコードの一行一行がどういう事をしたのか自分の言葉で脳内で説明する」
「インタプリタ系言語(Ruby,Python,PHP, etc...)なら、電卓代わりに気軽に使ってみる」
教材の良し悪しは確かにアリます。僕は幸い地雷みたいな参考書に出会わなかったかなと思ったりしてますが。それもこれも、一度専門学校通って、コンピューターの基本(PCパーツの構成とその役割やアルゴリズムとデータ構造の学習)もあったのかも……。
閑話休題。
あとはやっぱり人に教えてもらうのが一番の近道かもしれません。
近くに気軽に聞ける人が居るかどうかだけでも違うと思います。その上で自分の言葉で理解した内容をまとめる。
個人指導塾でPythonプログラミングを教えてる(と言うとおこがましいのですが)と、生徒の様子を見ていてそう思いますし、Smalltalkを学ぶ時もたまたま身近にSmalltalk界ではかなり強い方がいらっしゃったので、Smalltalkの面白さに目覚めました。
mukkunさんの
よくある入門書籍は買わないほうが良いです。
(多方面から攻撃されそうですが)
よくわかります。確かに「おまじないです。ルールです」
で片付けてもやもやさせたまま進める入門書は多いです。
かといって、プログラミングを始める人がいきなり「苦しんで覚えるC言語」に進むのは結構厳しい物がある気がするぞというのが僕の所感ではあるので、
「おまじない」「ルール」でぼやっとさせてる入門書があるのなら、
「このおまじないって、結局何なんだ?」
って興味を持ったらすぐ調べる。調べて分からなかったら時がそのうち解決する(いずれ理解できる)まで資料を読み返す。自分の言葉でまとめる。誰かにもう少しわかりやすく説明してもらう。という行動力も必要かと。
僕はプログラミング学習に関しては結構古臭い考えの人間です。なんせ、
「プログラミング勉強する前にPCパーツの内部構造と各パーツの役割くらい把握しておけ。あと一番の参考書は言語の仕様書」
という人間ですが、どこが具体的にわからないというのがはっきりしていれば、誰かに聞くのはやっぱり有力なのではないかなと思います。はっきりしていなくても、対話で紐解いていく力さえあればなんとかなるかと。
話があちこちに飛んでいってしまいましたが、分からなくなったら近くの詳しい人か、teratailに投稿しましょう!
ということを言いたかったです。
駄文、長文失礼いたしました。
投稿2017/01/05 22:03
総合スコア2244
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
学習方法って人それぞれですからね。
なので一例。
- 私はその言語の最低限の書式を覚える。
- 作りたいもの・あったらいいなと思うものをイメージ。
- 2を実際に作る。
という感じ。
二言語目以降 は
- 最低限の書式を覚える
- 自分が知っている言語と 新しく学習する言語 の対応表を作る
- 作りたいもの・あったらいいなと思うものをイメージ
- 3を実際に作る
という感じ。
たとえば、
C -> C++ -> Java ...
とやるとします。
Cの最低限の書式は
C
1#include<stdio.h> 2 3int main( void ){ 4 // なんらかの処理 5return 0; 6}
ですね。
C++は
C++
1 2#include<iostream> 3 4using namespace std; 5 6int main( void ){ 7 // なんらかの処理 8return 0; 9}
Javaは
Java
1// MainProg.java 2class MainProg{ 3 public static void main( String args[] ){ 4 // なんらかの処理 5 } 6}
ですね。
二言語目以降は、
C/C++ の クラスオブジェクト生成は
CTest* test = new CTest();
か
CTest test();
です。
Javaでこれに相当するのは
CTest test = new CTest();
ポインタマークの有無の違いってだけ。
じゃあ、for文は?
...
という風にXに相当するものは...という感じで覚える。
投稿2017/01/06 04:10
総合スコア4962
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
もう解決したようですが、私の学習方法を書かせてください。
私の場合は、「誰かに教えて」勉強しました。
具体的に言いますと、はてな人力検索のプログラミング系の質問に回答していきました。
誰かに教えるためには系統的に理解する必要があります。質問による課題があることによって、問題解決のための具体的なコードを書く機会も増え、初心者の「多少書けるようになったと思うが、次に何を書いたらいいか分からない」状態を回避できます。
また、誰かに教えることによってあいまいだった部分が明らかになったり、知らなかったことを調べることによって自力で解決をしていくコツが分かり、他人に頼らないクセがついたと思います。
QAサイトのプログラミング質問は、難易度的に「初心者がぱっと答えるには難しいが、時間をかけて調べれば何らかの回答に行きつく」という、初心者がゾーン状態に入りやすいものが多いと思います。
ですので「teratailで誰かの質問に答えていく」という学習方法をお勧め致します。
投稿2017/01/26 12:15
総合スコア37107
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/01/05 22:40
2017/01/05 22:50
退会済みユーザー
2017/01/06 00:32