• ベストアンサー

Javaの勉強順序

なかなかプログラミングのコツがつかめません。 そもそもプログラミング的な考えができないんですかね。 現在はJavaの基礎文法を一通り終えて、今後の学習をどう進めようか、というところなんですが、デザインパターンを学習するべきか、逆引きライブラリのような本をみてよく使うクラスなどに習熟すべきか、アルゴリズムとデータ構造などをかじって一回り血肉をつけるか、というふうに悩んでいます。  趣味で何か作りたい、という動機はなく、一日でもはやく現場での業務用プログラムを読み書きできるようになりたいです。皆さんはどのように力をつけていきましたか?アドバイスがあればきかせてください。

  • Java
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

とりあえず、アルゴリズムとデータ構造をやることをおすすめします。 デザインパターンの参考書は、 基本的なデータ構造の知識があることを前提としており、 いきなり読んでもよく理解できないと思います。 Javaのライブラリもデータ構造を使っています。 アルゴリズム…たとえば、ソートのアルゴリズムの知識などは、 各種ライブラリの存在により、必要性が減ってきていますが、 「アルゴリズム」と「データ構造」はいっしょに解説されることがほとんどだから、 この際一緒に勉強しておいた方がいいでしょう。 私のお薦めは 『定本 Cプログラマのためのアルゴリズムとデータ構造』 という本です。(C言語だけど)

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4797304952/
katahira
質問者

お礼

すいません。お礼をしたつもりだったんですけど、書き込まれていないみたいなので、もう一回・・。ライブラリとデザインパターンをやっていこうと思っていたんですが、その土台としてのアルゴリズム、データ構造を学んでおく必要があるんですね。いずれCにも挑戦するためにも土台をかためようと思いました。ありがとうございました。

その他の回答 (1)

  • sj2
  • ベストアンサー率33% (4/12)
回答No.2

以下、#1さんとほぼ同じですみません。 プログラミング歴はあまり長くない方かと想像します。 その場合は、アルゴリズムやデータ構造で一回り血肉をつけるのが良いかと思います。 デザインパターンは必須ですが、ある程度実際にモノを作って半年~1年程度の経験を積んでからやらないと、知識としては頭に入っても本質を理解できないと思います。 アルゴリズムやデータ構造を学ぶために、何かテストで作るのも良いかと思います。 例えばファイル入出力関係(File, FileReader, FileWriter等)で、ファイルをコピーしたり、表示したり、バイナリで表示したり、ファイルを作成したり、内容をソートしたりする、などが勉強に良いかと思います。 逆引きライブラリ本は実際に現場でモノを作るときに読むもので、プログラミング(アルゴリズム)を学ぶにはあまり良くないです 趣味で何か作る必要はありませんが、いきなり現場というのもムリ(というかあまり良くない)なので、自分なりにたくさんプログラムを作ってみるのが良いと思います。 私も1冊良本を紹介します。ただアルゴリズムの本質的理解の助けにはなりますが、非常に専門的なので、副本とされたほうが良いかと思います。 プログラミングは必ず基礎→応用の方向で学ばないと非常に無駄な時間を過ごす事になります。何を勉強したら良いかは今後もどんどん人に聞くべきかと思います。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4781907121/qid%3D1108352119/249-8727812-9981131
katahira
質問者

お礼

お礼がおくれました。申し訳ありません。 そうですね。やはり基礎体力としてのアルゴリズム等を 勉強して、おっしゃる通りに基礎→応用の線でがんばっていこうと思います。 お二人のご意見でやるべき方向が見えてきたのでよかったです。ありがとうございました。

関連するQ&A

  • オープンソースの勉強について

    プログラミングを学んでいるエンジニア志望の学生です。 学んでいる言語はHTML・CSS・JavaScriptなどフロントエンドが多いです。 ただ、JavaやPerlなどバックエンドの言語も学びたいと考えています。 ここではとりあえずJavaを例にとります。 ドットインストールなどを利用して、言語の最低限の文法は分かるようになったものの、特別Javaで作りたいサービスがあったわけでもないので、これからどうしたものか閉口しています。 実際にエンジニアとして活動している知人に相談したところ、 「オープンソースがたくさんあるので、それを使えば学習しやすい」 といわれました。 私はオープンソースの存在自体は知っていますが、実際にJavaのオープンソースを触ったことはありませんし、オープンソースでどのように学習すればよいのかもわかりません。 オープンソースで学習する場合、ソースを読んで理解して、書き写して実行に移したりすればよいのでしょうか? それで、最終的に「~~のようなプログラムを実装せよ」という問題文を見ただけで、オープンソースのあれとあれを使えば実装できる、と発想できるぐらいにまで習熟すればよいのでしょうか。

  • Javaプログラミング能力認定試験

    Javaの学習初心者ですが、学習の目標に検定を受けようと思っています。 サーティファイのJavaプログラミング能力認定試験の現場での認知度、通用度はいかがでしょうか?Sun認定検定のほうが通用しているのでしょうか? Javaの知識、経験の豊かな方のアドバイスお願いします。

  • Javaでデータ構造

    最近Javaの学習を開始しました。 入門書をちょっと読んでみたのですが、気になったことがあります。 2分木などのデータ構造は、一つのオブジェクトの中に入れるのでしょうか? それとも、オブジェクトをつないでデータ構造を組み立てるのでしょうか? 直感的に、前者のような気がしているのですが、ハッキリ分かりません。 参考: お遊びのプログラムしか作ったことが無いのですが、一応Cは一通りやりました。

    • ベストアンサー
    • Java
  • 入門書の次に読ませたい本

    プログラムを作成しようとしたら、一応作成する事が出来る。 入門書を一通り読んで簡単なプログラムを組んだりした事がある。 そんな初心者から中級者に向かいたい人向けの解説書を探しています。 プログラミングを行うにあたって覚えていて損は無い基本的なアルゴリズムや プログラムを組み立てる際の考え方やデータ構造について等 そういう知識を学習したい人向けの本でおすすめがあったら教えてください。 その本でメインとして扱っている言語はC言語系統かJavaがいいと思っていますが、 良い本であればそれ以外の言語でもかまいませんので、 よろしくお願いします。

  • ソフトウェア作成への勉強方法

    文系の大学生なのですが、 大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。 目標はゲームや色んなフリーウェアを作れるようになりたいです。 言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み 一通り基本的な文法やアルゴリズムは覚えました。 しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、 実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。 特にGUIプログラム作成に関しては全く作り方が分かりません。 そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、 どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。

  • 組み込み系プログラマーにIT以外の知識・技術は必要なのですか?

     機器に組み込まれるソフトウェアの開発には、プログラミング言語の文法やライブラリ、データ構造、アルゴリズムなどのITに関すること以外の知識・技術は必要なのでしょうか?  例えば携帯電話の制御ソフトの開発には、音声工学や電磁気学、電気・電子回路などの工学や物理の知識・技術は必要なのでしょうか?  よろしくおねがいします。

  • 【初心者】c言語をもう一度勉強しようと思います。

    c言語をもう一度勉強しようと思います。 独習Cとかの本を一回通しでやって理解していないぐらいの実力です。 ポインタとか構造体とかなんとなくふんわりとした感じでしか理解していなくて プログラミングとか書けません。 文法を固めるのが先か、 何かつくれるようにするのが先かどうすれば上達しますかね? VC6.0++でウィンドープログラミングにしたりしてみたのですが、 肝心のプログラム自体の内容がほぼ無意味なプログラムなので どうすれば内容の濃いプログラムを作れるか考えてしまいます。 アルゴリズムとか数学や物理の公式を実装できればいいと思うのですが、 まず実装までおとしこめないし、 また、何につかったらいいのかもよくわかりません。

  • Javaのパケットキャプチャについて

    Javaでもネットワークのプログラミングができるということを知って、ちょっとそれをかじっている者です。 その学習をするに当たって、最終目標としてパケットキャプチャを作ってみたいと考えてるようになりました。 自分自身に送られてくるパケットを拾って、それを解析したいと思っています。 Pcap系のアプリケーション(WinPcapやlibpcap)を用いれば、それを用いたライブラリを使って作成できることもわかりました。 ただ、ちょっとこだわってみたいので、そういったものを利用することなく作成してみたいなと考えています。 ですが、インターネットで調べても、それらを使用した方法しかわかりません。 実際にそのようなことができるのでしょうか・・・。 TCPパケット・UDPパケットを受信することは可能ですが、その他のプロトコルのパケットの受信と、パケットの解析まではできないのじゃないかと思っています。 気になったので質問しました。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAでゲーム開発する際の環境

    C言語とC++を一通り学習し終えたあと、 趣味でゲーム開発をしています。 開発環境は、Windows7、VC++2010 C++とDXライブラリを使用して、 簡単なシューティング系のオフラインゲームを作製し、 ロダで配布したりしています。 Zipの内容は、実行ファイルとデータファイルだけの単純なものです。 しかしこれだとWindowsのPC限定である為、 今後の事も考えてJAVAでの開発に移行したいのですが、 どの様な環境を用意するのかが分かりません。 まずは今までにC++とDXライブラリで作った超簡単なゲームを、 JAVAに書き直しながら勉強して行きたいと考えています。 エディタはEclipsかNetBeansあたりを考えています。 C++の場合は、龍神録プログラミングの館と言うサイトを参考に勉強しましたが、 JAVAの場合は、パスやフォルダ構成、環境設定等の超基礎的なレベルから ゲーム作成を解説してある、詳しいサイトが見つかりませんでした。 アプレットやWebアプリ、サーバーサイド系のページの他、 クラスやら演算子やらの、JAVAそのものの解説系サイトは見つかるのですが。。。 Q1、映像や音楽関連のライブラリは何を用意すべきでしょうか? Q2、JAVAゲーム開発が初心者レベルの、解説の詳しいサイト等を教えて下さい。 Q3、そのほかで、注意事項やアドバイス等がありましたら、是非お願いします。

  • Web(&GUI)クライアントアプリケーションはJAVAの方がPerlより開発しやすい?

    Web クライアントプログラミングに関して、PerlとJAVAでは一般に(ただし小規模)JAVAの方が開発しやすいでしょうか? GUIで考えています。 C,C++,Perl,及び、ネットワークの初歩は理解しているつもりですが、 GUIプログラミングの経験はありません。 やりたい内容によるとは思いますが、例えば、1例として 「マウスで単語を範囲指定し、適当なショートカットキーを押すと辞書検索ページを開いてその単語を調べる」 というようなことをやりたいと考えています。 関連質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1175764 現在、JAVAの知識はないのですが、 PerlよりJavaの方が開発しやすいようであればJavaを勉強しようと思います。 (あまり手を拡げたくはないのですが...) また、その場合、Javaの特に何を勉強したらよいでしょうか? 調べたところ、(Javaの基本文法はもちろんですが)GUI関連ではSwing (ライブラリ群の名前と認識していますが違います?)を勉強すればよいかなと考えていますが、正しいでしょうか? Web (&GUI) クライアントアプリケーションをJAVAで開発するつもりならこれを勉強しろ、というアドバイスをいただけたらありがたいです。 なお、入門書籍としては、書店でざっとながめたところ、オライリーの 詳解 Javaプログラミング入門(上)(下) がよさそうかなと思いましたので、購入するならこれと思っておりますが、 (GUI)webクライアントプログラミングの観点でおすすめがありましたら あわせてご教授頂けると嬉しく思います。 宜しくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう