研修生としてJavaを勉強しています。
研修といっても書籍やインターネットで情報を調べて
自分で考えてやっていく形式でそれには課題があります。
課題を解いていくのですがいざプログラムを
書こうとしたときにプログラムが頭に浮かびません。
書籍を読み、インターネットで色々情報を調べ
サンプルプログラムなんかもいくつか組んでみました。
人が完成させた課題のプログラムはある程度は
理解できるのですがやはり書けません...
真似したくないけど自分で書くとそうなってしまいます...
こんな人にいい処方箋はありますでしょうか?
No.5ベストアンサー
- 回答日時:
3ヶ月に一日8時間と定まっているのならば、余計にいい条件です。
エンジニアとして生きていくには、技術力以上にタイムマネジメントの能力がもとめられます。
ですから自分の学習のスケジュールをたててみましょう。
・基本的な文法と構造の理解
・JAVA APIリファレンスの参照の仕方
・統合開発環境の使い方の熟知 ← これは軽視されがちですが、生産性をあげるためにも必須です。
・処理ロジックの引き出しを増やす
といったところが目標ですかね。
基本的な文法の理解に関してはWebを参照くらいでいいと思います。
ちなみにJavaの試験参考書はあんまり役にたちません。
コンパイルしたらコンパイラが教えてくれるような重箱の隅をつっつくようなことを隅々まで暗記してても実務では関係ありません。
極論すればコンピューターが教えてくれることはなんとなく知っていればいいだけです。
http://www.atmarkit.co.jp/channel/javaentry/java …
http://msugai.fc2web.com/java/
この辺を必要におうじて参照するだけで事足りるかと思います。
イディオム的なことは
逆引きシリーズがいいかと思います
「つまりファイルをコピーしたいときはこうする」
「ボタンを作りたいときはこうする」
といったような単位でサンプルプログラムを紹介してくれている本です
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi? …
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi? …
こういった処理単位でサンプルプログラムを書いてくれているリファレンス集のサンプルを、
使われているAPIをAPIリファレンスで参照しながら自分で打ち込んで、動作確認して、
こういう感じのことをしたいときはこういう感じに書けばいいんだなと覚えていきます。
余力があれば改造をして自分専用のライブラリをつくっていきましょう。
上記2冊を覚えると1000近い処理ロジックを身につけることができます。
これだけ理解していて、APIリファレンスの引き方を習熟すればビジネスロジックを実装するのにはほとんど困りません。
やってるうちに基本文法は頭ではなく手がおぼえてくれます。
最初の一年目はビジネスロジックを仕様書に沿って書いていくコーダーとの仕事とテストの仕事になると思いますので、
中途半端にならないように、最初から設計の分野までは考えないほうがいいです。
自作ライブラリを作っているうちに
効率が悪いな・・・こうやったら効率よくなるかな??
っとプログラムの見栄えや構造に試行錯誤するようになったころが設計分野に食指をのばすころかと思います。
そういったころに
http://www.amazon.co.jp/exec/obidos/ASIN/4797316 …
といったようなところを学習しだすと試行錯誤していたことの解答を得られて、
すっと身に着けることができます。
最初からこういった類の本をよんでも、なんでこういったことをするのか意味がわからないと思います。
オブジェクト指向の概念にしても、ある弱点を補うために考案されたものなのですが、
その弱点を体感してからでないと、そういった概念の意味を本当の意味で理解できないと思います。
好みはわかれますが翔泳社の10日で覚えるシリーズも日割りで章立てされているので学習計画が立てやすいので、余力があるなら一度本屋でみてみるのもいいかもしれません。
No.4
- 回答日時:
一週間でしたらそれで十分ですよ。
とりあえず3ヶ月ほどは、短いサンプルプログラムを打ち込みまくって引き出しを増やすことに集中しましょう。
一日100行程度のサンプルプログラムを1個以上打ち込んで覚えるといった感じで。。。
日本語を上手になろうとおもったら、アタマの中にいろんな引き出しがないとうまく喋れないのと同じですね^^;
で、真っ白な状態からプログラムを書くときのアドバイスとしては、
プログラムでなにがしたいのかということを、処理の時系列順に日本語で書いていくことをオススメします。
基準としては他人にみせて、どういったものを作ろうとしてるのか伝えられる内容でしたら十分すぎるでしょう。
それをみながらJava語に翻訳していくわけです。
で、ながーいmainルーチン書いてると、そのうち分割したくなって関数を作りたくなってきます(タブン。
関数への分割作業をしていると処理の粒度を細かくしていく感覚が見についていきます。
そうしているうちに、オブジェクト指向といった意味不明なものの必要性も理解できるようになってくるでしょう。
実地訓練すっとばして本格的な設計を勉強しても、必然性が理解できないため、すぐに忘れてしまうと思うので、しっかりと引き出しを増やしていきましょう。
>一週間でしたらそれで十分ですよ。
この言葉にホッとしました。
勉強する時間は1日8時間以上あるので
じっくり考えてやることにします。
ちなみにサンプルプログラムはどういった
感じのものがよいのでしょうか?
自分が持っている書籍だと100行もある
サンプルがないので。。。
サンプルを打ち込むときはそのプログラムを
なんとなく理解しながらでよいのでしょうか?
あと、こんな人にお勧めな書籍ってありますか?
ちなみに研修期間は3ヶ月間でJSPやサーブレットまで
理解しなければなりません。
No.3
- 回答日時:
>コマンドライン引数、if文、for文、変数、配列
>を利用してならなんとか書けますが、インスタンスを
>生成してそれを利用してとか前に作ったクラスを
>継承して・・・となると書けなくなってしまう
>のですよ。
Javaでプログラムを組む場合、サンプルプログラムの
ような簡単なものであればJavaの文法を習得する程度で
組めてしまうかもしれませんが、少々複雑なものになって
くると(もしくは規模が大きいもの)、きちんと"設計"と
いう工程を踏まなければ作成することは難しくなります。
まずは、プログラム設計を勉強をされることをお勧め
します。Javaでプログラムを組むのであれば、「オブジェ
クト思考設計」、「デザインパターン」などをキーワード
としてお調べになると良いでしょう。
No.2
- 回答日時:
JAVAのおおまかな形は
class A {
フィールド;
コンストラクタ(){
}
メソッド(){
}
}
class Sample
{
public static void main(String args[])
{
A a=new A();
a.メソッド();
}
}
この形が理解できていれば 簡単なプログラムは大丈夫ですよね。
回答ありがとうございます。
コマンドライン引数、if文、for文、変数、配列
を利用してならなんとか書けますが、インスタンスを
生成してそれを利用してとか前に作ったクラスを
継承して・・・となると書けなくなってしまう
のですよ。
ちなみに研修始めて約1週間たちました。やる気は
あるけど頭がついていかないって感じですね。
No.1
- 回答日時:
JAVAは使ったことないのでJAVAに通用するかは謎ですが、私の場合は、とことん人が作ったソースを改造して、改造した結果どうなったかを見て勉強していきます。
そして次にその結果を自分が思ったように出力させられるように勉強します。
それを繰り返すとすぐに覚えれます
(この回答はアドバイス程度でお願いします)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 大学受験 資格試験などの勉強で過去問題集の解説を理解する時、分からない用語を調べてどうするのが良いですか? 問 3 2023/06/18 17:18
- C言語・C++・C# C言語 3 2022/10/04 15:07
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- 大学受験 AO、総合型選抜出願時に使用する活動実績報告書について 4 2022/06/27 01:21
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- PHP 書籍よりも より良い htmlspecialchars の変更を 1 2022/04/18 02:28
- その他(プログラミング・Web制作) 大学のゼミのレポートがムカつきます。 R言語というデータ分析に特化したプログラム言語を用いた授業の課 1 2023/06/29 00:50
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの「for i=1 to cells(…」...
-
php、Java(Servlet等)の両方を...
-
Javaの勉強方を教えてください
-
C++ですごろくゲーム作成
-
XMLとUMLの相違点?
-
データベースのデータをTextBox...
-
ASP、ASP.NETの勉強をしたいの...
-
WEB開発者としての
-
JSPファイルで生じるエラーをど...
-
IISワーカープロセスが原因でCP...
-
javaからデータベースに接続 エ...
-
フリーソフトの作成言語
-
windowsローカル構築環境の作成...
-
VC++もしくはMFCからEXCELをコ...
-
サーブレットとPHPの違い
-
VBScript 月を二桁で取得したい
-
待ち行列の実現ができません
-
javaコントロールパネルの例外...
-
Javaでのエラーについて
-
フリーソフトのダウンロード方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースのデータをTextBox...
-
VBAの「for i=1 to cells(…」...
-
MSFormsとは何ですか?
-
XMLとUMLの相違点?
-
エクセルVBAを動かすノートPC...
-
Pythonを勉強する道のり
-
為替レートの取得方法
-
C++ですごろくゲーム作成
-
質問です。 Java言語を勉強出来...
-
JavaScriptを用いて、〇図形を...
-
Excel VBAマクロをマスターする...
-
超恥愚問ですが、CとC++の間に...
-
cin.peek() cin.ignore(100,'\\n')
-
サーブレットで電卓をつくる
-
画像編集ソフトの作り方
-
占いサイトを作りたいのですが...
-
サイト訪問者の情報を取得したい
-
C#とDelphiの違いについて
-
Struts1.1をつかったDB接続方法
-
Lex,Yaccについて。
おすすめ情報