- ベストアンサー
プログラミングが得意な方への質問です。
プログラミング言語を複数使われている方へ質問です。 (1)一言語使えるようになるのに掛かった期間や経過など簡単にまとめて教えてもらえませんか? (2)言語マスターに時間が掛かっている人に対してどこが問題だと思いますか? (3)新しい言語の学習を始めるためには何から手をつけますか? (4)関数やクラスなどはどれ位使えば覚えられますか? 存在を知っていて使う時に調べればよい派ですか? それとも初めに必要な部分は覚えてしまいますか? (5)言語マスターへの必要要素は、 概念の理解、文法の理解、必要性の高い関数やクラスの熟知 それ以外にありますでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>>1 まず、自分はHTMLから入り、その次にJavaScript→VBS→C→Java(今)の順にやっています。 それで、一言語使える期間ですが、その言語の仕組みや特徴によって変わります。 JavaScriptはすぐに理解しましたし、逆にCやJavaは理解するのに時間が掛ったと思います。(今でも) 大体の高水準言語は半年あれば基礎がついて、1年経ってひとまず一人前になると聞いています。 >>2 多分、そのような人はただコードだけ見ていて、実際に打っていないんだと思います(^^;)A プログラミングは見るんじゃなくて、打つんです。とにかく打つ。 >>3 その言語の構造体や、基礎(if分やfor分、出力系等々)を押えます。 また、その言語の特徴について調べるのもアリかと。 ある程度基礎がついたら次に簡単なプログラムを作ります。 それが出来れば次に少し上のプログラムを。その繰り返しです。 >>4 どちらも使う派ですね。 ほとんど使う関数やクラスなんかは覚えておきます。 というか、大半のやつは勝手に覚えてしまうかと思いますよ。 プログラム組む時に、こうこうしたいって時はネットで調べる。そして次に使うときのために覚えておく。 こういう感じですね。 >>5 先の回答の通り、アルゴリズムが大切だと思います。 まずはどういうプログラムを組みたいか、それでどのような処理をすればよいか、それをもとにしてプログラムを組んでいきます。アルゴリズムが出来なければ、プログラムを組むことも困難ですからね。 あと、論理的発想力も必要かと。なにか問題に当たってしまった場合、論理的発想力がなければ、中々解決できなかったりします。(経験と勘で解決できる場合もありますけど・・・。) 参考になれば、幸いです。
その他の回答 (2)
- osakanasensei
- ベストアンサー率47% (9/19)
>(1)一言語使えるようになるのに掛かった期間や経過など簡単にまとめて教えてもらえませんか? 私はCから入った口ですが、WinAPIを使ってウィンドウズプログラミングを始めたのは Cを始めてから2か月くらい後だったと思います。 >(2)言語マスターに時間が掛かっている人に対してどこが問題だと思いますか? 「言語マスター」という言葉の定義があいまいですが、 普段接する人の中で優秀な人とそうでない人を比べると 最も違うのは勤勉さでしょうね。 プログラムに優秀な人は、それ以外のこともよく知っています。 >(3)新しい言語の学習を始めるためには何から手をつけますか? 入門書を一冊買って文法を一通り覚えたら、何かソフトを作ります。 仕事とは関係がなくて、ちょろっと使いたいくらいなら Web上の入門サイトを読んだりしますね。 (4)関数やクラスなどはどれ位使えば覚えられますか? 何か課題を見つけて、とにかくソフトを作ってみることです。 >存在を知っていて使う時に調べればよい派ですか? 使うときになったら調べる派ですね。 ファイルIOとかログとか検索とか、当然あるだろっていうようなものは ソフトを作っている過程で必要に応じて調べます。 あるいは「こんなメソッドあれば便利なのにな~」って思うときは 大抵すでに存在してたりするので、そう感じたときに調べます。 Windowsであれば、SDKが公開された時点でリファレンスを読んだりして 気になったものを使ってみるって感じですかね。 (5)言語マスターへの必要要素は 1.ライフサイクルやメモリ管理の考え方は必須でしょうね。 2.言語とは別次元ですが、DBやネットワークの知識も必須。 3.あとはたくさんのデザインパターンを踏襲しているほうがいいですね。 4.保守性の高いコードを書けることも大事です。 こっちの方が処理速度が速いとか、ちゃんと理由があればいいですが マイナーな書き方を多様するなど、保守性の低いコードを書く人はダメですね。 保守性の低いコードを書く人って、他の人がどんな書き方してるか知らないんですよね。 他の人の書き方を知らない=勉強してないってことです。 5.最後に流行に乗れる人です。 流れの速い世界ですから、新しいことについていこうとしない人はダメです。
お礼
当たり前のことのようですが、自身が出来ているかどうか?と問われたら まだまだ、やるべき事がたくさんあることに気がつかされました。 回答ありがとうございます。
- kmee
- ベストアンサー率55% (1857/3366)
(1) 基礎は大昔のBASICで。 雑誌の載ってるプログラムを打ち込んで、意味を理解して、改造して、とやってるうちに覚えた。 構造化とか考えるようになったのは、学生のときに理論を勉強してから。 (2) 「言語」なんてマスターしても、大した意味は無いと思っています。 命令とか覚えるのに必死になりすぎて、「解こうとしている問題を分析する」訓練を忘れているように感じることがあります。 (3) 基本の構文(分岐、ループ、変数)これが分かれば、とりあえずのプログラムは作れます。 ある程度慣れてきたら、その言語の特徴に合った構造を覚えます。 (4) 私は「使う時に調べる」派です。 自分の足りない脳に、そんなに沢山の関数だのクラスだのを全部覚えておくのは無理です。 その点、目の前に「コンピュータ」という優れた記憶装置があるのですから、使わない手はありません。 (5) アルゴリズムとデータ構造 現在の問題を解析する能力 まず、これらが先です。プログラミング言語はこれを表現する手段でしかありません。
お礼
(4)使う時に調べる 最近動画サイトのLIVEコーディング等を見て、仕込みがあるとは思いつつも凄い速さでコード書き上げて行く様をみて、やはりメインで使う言語くらいは、少なくとも入力保管を使ってもスラスラとネットを調べないで書けるのが上級者の標準なのかな?なんって考えが強くなりました。 実際の現場ではどの位、スラスラ派が居るのか知りたいものです。 特に(5)のアルゴリズムとデータ構造これはプログラミング外での問題ではありますが 重要だと再認識いたしました。 回答ありがとうございました。
お礼
回答ありがとうございます。 >プログラミングは見るんじゃなくて、打つんです。とにかく打つ。 これにつきますね。