• ベストアンサー

現役のプログラマに質問

初めてプログラマになった時どんな練習をしていましたか? 今覚えておいた方がいい言語は何ですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>初めてプログラマになった時どんな練習をしていましたか? これはアマとしてそれとも給料をもらってのプログラマとして?どっちを指している? 趣味のレベルならBASICが最初。 プロとしてならVisual Basicが最初。ただしVisual Basicは趣味の時代から使っていたから問題なく最初から言語として利用できた。 >今覚えておいた方がいい言語は何ですか? 分野で違う。 ・Web系 Perl/PHP/Java/JavaScript ・Windows系 VC++/VC#/VB ・Mac系 Objective-C ・UNIX系 C/C++ ・組み込み系 C/アセンブラ ・携帯電話アプリ Java ・基幹系 C/C++ ・一部基幹系 COBOL 後は汎用的にSQL。 などなど用途毎にまったく違う。

tatutatuya
質問者

お礼

回答ありがとうございます。 各分野で必要な言語を詳しく紹介していただきありがとうございます。 やはりCやC++が幅広いジャンルに対応できそうですね。

その他の回答 (7)

  • Kensyusei
  • ベストアンサー率30% (25/81)
回答No.8

高校2年生のときゲームプログラマになりたいと思い、C言語初心者向けの本(林 晴比古さんの本でした。良書!)を買ってきて、それを読みながらコードを真似て書いていました。 高校では論理回路やコンピュータの構造を学びました。 また、MIDIやBitmapのデータ構造を調べたり、それをもとにフルスクラッチでMIDI演奏プログラムやペイントソフトを作ってました。途中からC++にも興味を持って、四苦八苦しながら「猫でもわかるプログラミング」を読んでいましたね。 実際に就職したのはゲームソフトの会社ではなくシステム開発系の会社で、仕事に使っていたのはJavaやVB.netだったのですが、C言語の基礎を覚えていたので言語習得には苦労しませんでした。 どの言語を覚えておいた方がいいか、という問いに対する答えは (1)構造化プログラミング言語(Cなど) (2)スクリプト言語(JavaScript、Perlなど) (3)オブジェクト指向プログラミング言語(C#、Javaなど) の順番ですかね・・・とはいっても、一番興味がある言語から勉強することを勧めます。だって長続きしますから。 言語以外では、高校生レベルの数学と英語を身につけておくと就職してから苦労しないで済むかもしれません。数学は効率のよいプログラム作成やテストケース作成に役立ちますし、英語がわかればWeb上のリファレンスも怖くありません。ちなみに私は就職してから数学を勉強し直したので、苦労しました^^; あと軽んじられがちですが、デバッグ手法とテスト手法はみっちり勉強することをお勧めします。 実務ではデバッグやテストにかける時間が限られているため、効率のよい手法を身につけておくことで無駄な残業や休日出勤を防ぎ、自分の身体を守ることにつながります。 フレームワークは流行りものなので、就職してから勉強しても遅くはないと思います。

tatutatuya
質問者

お礼

具体的な例をありがとうございます。 やはり、興味があることから始めないと続かないですよね。 デバッグは結構大変だと思うので今から効率のいい方法を見つける努力をしていきます。

noname#29459
noname#29459
回答No.7

>初めてプログラマになった時どんな練習をしていましたか? 何十年も昔の話なので、参考にはならないだろうけど、Fortlanか、BASICのどっちかだったと思う。 >今覚えておいた方がいい言語は何ですか? 一に、英語。二に、あなたがめざす分野で主に使われる言語。(#4回答者の返事を参照の事)

tatutatuya
質問者

お礼

回答ありがとうございます。 やはり英語は重要ですよね。 僕は、高校1年生まで英語は役に立たないと考えていましたが、IT系の事を調べて行くうちにとても重要な事がわかりました。 もうすぐ、高校3年になるような時に気づいてよかったのか~ 手遅れだったのか~ でも、可能性がある限り努力させて頂きます。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.6

1人1人で なぜ?、何?、なるほど~、興味とか感じるところは違いますので、 他の人が良かった、という学習方法が必ずしも自分にはあてはまるかどうか。 プログラムは全く同じコーディングに出会うこと、少ないです。 作ったプログラムは「あなたの(著作権の)モノ」です。 磨きをかけましょう。 自分で「コレ」っていうのを見つける方がいいときもあります。

tatutatuya
質問者

お礼

回答ありがとうございます。 人の学習方法を全て模倣することはしないのでご心配なく。 自分なりの最適な学習方法を見つけれるように努力します。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

前作ったプログラムをできるだけコピー(、貼り付け)しない。 1語1語面倒でも打ち込むことで、誤入力あると文法エラーとすぐわかるし、 考えながら作りますから、身につきました。 コピー(、貼り付け)で、ってのは、すぐできることだし あまり考えないで進めてしまっているのに「出来た!」、 それはどうなのか?、と思うことありますね。 しばらくやっていると感じると思いますが、 言語、ソフトは、目的を達成させるための道具の一部って感じです。 ○○でもxxでも同じことできるってこともあるし これやるには△△でないとできない、□□が効率いいってこともあります。 何が一番ってこともない、「これはこんなことできる」っていうのを 覚えておく方が役に立ってます。 アルゴリズム(を考えること)は大事。 言語仕様は、ヘルプや掲示板とかで探せば答えは見つかりますが、 アルゴリズムはなかなか説明しているところないですね。 がんばりましょう。

tatutatuya
質問者

お礼

回答ありがとうございます。 地道な努力はどんな所でも大切ですね。 効率のいいアルゴリズムを見つける作業をするのも面白そうですね。

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.3

最初はCOBOL、FORTAN、PL/1・・・歳が分かる言語だなぁ~  他の方が回答しているように言語は関係なく、考え方・アルゴリズムが大切で、それを要求された言語の文法に従って記述することになるので「考え方・アルゴリズム」が一番大切だと思います。  また、最初は「考え方・アルゴリズム」と言われても理解できないので、「xxxは〇〇〇」という感じで丸暗記し、その後 自分のスタイルやアルゴリズムを考えたり、改良したりして引き出しを増やしていくのだと思います。  引き出しを増やすには、良質なプログラムを読むことが大切です。  下記のプログラムの解説を読んでアルゴリズムを意識したことあります。  このプログラムは悪い例として書かれ、もっと素直に書きたいことを誰もが読んで直ぐに理解できることが大切と書いていたのに驚いたものです。  当時の良いプログラムは、1)早い 2)常駐メモリが少ない 3)プログラム行数が少ない だったです。 単位行列を作るプログラム DO 100 i=1,10 DO 110 j=1,10 M = ( i/j ) * ( j/i ) 110 CONTINUE 100 CONTINE *FORTRAN の整数演算を利用している。

tatutatuya
質問者

お礼

回答ありがとうございます。 アルゴリズムの考え方が大事なことはよく学校の先生にも言われていました。 現役の方から押されるとやはりとても重要なものだと実感しますね。 1つ疑問なんですが、良質なプログラムとは具体的にどのようなものでしょうか?

  • Yorisin
  • ベストアンサー率54% (364/663)
回答No.2

本業ではないですが、僕の場合は ・参考書や参考サイトの通り自分で書いて動かしてみる。  (webサイトのソースは、コピペではなく自分でタイプして書く) ・その通りに動いたら、ちょっと引数などちょっと変えてみる。 ・今まで使った関数などを組み合わせて何か作る。 ・どこかで失敗するので、おかしな部分を自分で探し、直す の繰り返しでやっています。 どんなくだらない内容でもいいから、 とにかく丸写しでないプログラムを自分で考えて作って、 ミスを直すことの繰り返しが大切な練習だと思います。 だんだんやりたいことがどんな関数を組み合わせてできそうか、 また標準関数がなければどうやって作ればいいか、 想像できるようになってくると思います。 なお、言語なんて何でもいいんです。 CでもC++でもVBでもJavaでも。 標準的な言語は何でもあるていど使えるようになっていれば、 その他を使うことになった時に応用がききます。 プログラムを作る事がロジカルに考えられるようになっていれば さほど苦労はしないでしょう。 何かをひとつ物にするのが一番です。

tatutatuya
質問者

お礼

回答ありがとうございます。 まずは模倣からですね。 とても参考になります。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

子供のころにBASICで打ち込んでたところから来てるので「練習した」というイメージはないですが、「まず作る」「作ったものがどう動いているのか考える」のは重要でしょう。 習得言語はジャンルによってトレンドが違うので、「これ」と汎用的に勧められるものはありません。 比較的広範囲をカバーできるのはCでしょうが、Web系ならむしろASPとかJavaとかCGI系の知識の方が役に立ちます。

tatutatuya
質問者

お礼

解答ありがとうございます。 やはり広範囲をカバーすることが無難ですよね。 僕の進路的にはセキュリティなんですが・・・ 具体的にはどのような言語が重要でしょうか?

関連するQ&A