[ホームへ戻る] [前へ] [上へ] [次へ]

学習ガイド

(このページはまだ作成中です。。)

ここでは、勉強を進めていく上での指針や、役立つ本、お勧めのサイトを紹介していきます。

コンピュータ初心者

全くコンピュータを初めて触るという方は、まずは、Windowsの基本的な使い方と、インターネット・エクスプローラ、それからメールについて学ぶといいでしょう。まずはキーボードの入力の仕方や基本的なソフトの使い方を覚えることから始めます。

ブラインドタッチはこれからの時代必須です。いろいろなタイピングソフトが出ていますし、フリーのものもあるのでそれらを活用してマスターします。毎日1時間練習すれば、2週間でマスターできます。最初にきちんとやらないと、変な癖がついて後で直すのが困難になります。先日、20年近くSEをやっていながら、キー入力がデタラメなSEを見かけました。当然キー入力はきちんとブラインドタッチができる人に比べて遅いです。できれば数字までマスターした方がいいです(私自身中学生の頃手動タイプライター(超昔)の講習会に通ってマスターしたのですが、数字のコースまで取らなかったので、未だに数字キーはちゃんと打てません)。

話を入門に戻しますと、コンピュータ購入時に付いてくるマニュアルでもいいですし、それがわかりづらければ、本屋や図書館にある図解入りの入門書で勉強するのがいいでしょう。Windowsについてくるツアーも昔に比べればわかりやすくなりましたが、やはり本で勉強するのがいいでしょう。

それから、WordとExcelはSEになるためには必須です。Power Pointも必須ですが、WordやExcelをマスターしていれば、すぐにマスターできます。

それから、コンピューターを買うときには必ずサポート付きで買うようにしましょう。初心者にとってコンピュータが扱いにくいのはそれがあまりにも複雑すぎるからです。あれこれソフトをインストールした途端に非常に複雑になり、ちょっとした誤操作が問題を引き起こし、手に負えない問題となります。何年も経験している上級者であれば、どこがおかしいか調査することができますが、それでも原因を突き止めるまでには時間がかかります。また、プリンターやモデムなどのハードウエアとの接続も荷が重いです。

コンピューターに詳しい友人がそばにいるのがいいのですが、おんぶにだっこではその友人にも負担がかかりすぎます。なので基本的に自分で勉強し、調べ、ピンポイントで友人に質問します。人に頼っていたらいつまでも進歩しません。しょっちゅう聞かなければならないようであれば、メーカーや販売元のサポートに頼るようにしましょう。

少し進歩して、ネットの掲示板とかで質問できるようになれば、それを利用するのもいいですが、原則は先のことと同じです。親切に教えてくれる人もいますが、あまりにも周辺知識がなさ過ぎる場合は自分で勉強しろとつき返されることも多いです。



コンピュータ基礎

情報処理試験に出てくる、コンピュータの構成要素と働き、データ構造、アルゴリズム、OS、システム構成技術などですが、これらの深い意味はいろいろな経験を積んでから理解できるもので、初期段階では覚えても実際大した利益になりません。というのは、いろいろな言葉や概念が出てきますが、あらゆる言語やハードをカバーしようとして抽象化されているため、どこで使われているのかわからず、きちんと理解するのが難しいのです。抽象的表現は本質を突いているのですが、具体的なことがわかっていないと抽象表現を理解するのは困難です。

ただ、概要を知っておく上で、基本情報処理試験のわかりやすい本に目を通しておくのがいいでしょう。そして1年あるいはそれ以上経験を積んでから勉強するのがいいでしょう。

コンピューターのアーキテクチャーについて学ぶ場合、次の本がお勧めです。

『CODE コードから見たコンピュータのからくり』Charles Petzold (著) 日経BPソフトプレス

電池とランプの説明からやさしく入っていき、加算回路、メモリ、カウンタと進み、ついには原始的なコンピュータへ行き着いていきます。情報処理試験の本を読むよりも、この本をじっくり読んだ方が本質的なことを理解できます。

またこの本にはコンピューターの歴史についても書かれています。現在のことだけでなく、歴史について知ると、より深く物事を理解できるし、体系的な理解が可能になります。

あとこのシリーズも結構わかりやすくていいですね。

コンピュータはなぜ動くのか〜知っておきたいハードウエア&ソフトウエアの基礎知識〜

言語

まずはどの言語でも構いません。プログラムを作るという点では、基本的なところではどの言語でも共通しています。

その中で、

といった言語の基礎について学びます。そして、

についてもマスターします。実際、アルゴリズムについては、サーチやソートなどの問題について、実際に自分でプログラムを組んでみることです。あるいは自分の作りたいプログラムがあるならそれもいいでしょう。そうすることでプログラムを作るとはどういうものかを実感します。

この部分については、どの言語を使ってもマスターすることができます。

とはいえ、自分がどの言語で食べていくのか、ということは慎重に検討したほうがいいかもしれません。Cにするか、Javaにするか、.NETにするのか、PHPにするのか。いかに自分が興味があったとしても、趣味でない限り、仕事がなければ仕方ありません。

また、一つの言語に固まりすぎるのも問題です。普通は、一つの言語をマスターしていれば他の言語をマスターするのも難しくありませんが、やはり言語間に違いがあるため、その違いを埋められず、自分の知っている言語の思想で理解しようとするとかなり習得につまづきます。Cのポインタの理解にも壁がありますし、手続き型言語からオブジェクト指向言語への転換も壁があります。Cobolの技術者がJavaに移行するのは難しいという話もよく聞きます。

得意な言語を身につける必要もありますが、同時に一つに固まらないように複数の言語を学んでみることも頭を柔軟にするために大切なことです。

プログラマ - SEという道をたどるにしろ、ネットワークエンジニアになるにしろ、社内SEになるにしろ、コンサルタントになるにしろ、簡単なプログラムは組めるようになっていた方がいいです。特に開発経験のないコンサルタントは、優秀なコンサルタントになるのは難しいのではないでしょうか。

各言語の勉強についての紹介は後で取り上げます。

総合的な勉強ページ

以下のページを使えば、本を買わなくても、かなり多くのことを学ぶことができます。ものによっては、下手な本よりはるかに充実しています。

まず、トップに来るのは、いわずと知れたアットマーク・アイティでしょう。入門的な内容から高度な内容まで様々な記事があり、月曜から金曜まで3〜5の新しい記事が投稿されるので毎日酔うチェックです。また知りたい内容を検索ボックスに入れて検索したり、各カテゴリーからたどっていくと、目当ての記事を読むことができます。

@IT - アットマーク・アイティ

以下のページは登録が必要(無料)で、ページの使い勝手が悪いですが、ハードウエアの製品情報について詳しいレポートを読むことができます。また、ネットワーク関係の入門的なページもあるので、いろいろと勉強になります。

トップページ [キーマンズネット]

以下のページも登録が必要ですが、キーマンズネット同様、いろいろと勉強になる記事があります。最新のトレンドやニュースも多いです。

IT Pro

IBMのdeveloperWorks。これも様々な造詣の深いライターが記事を書いていて、いろいろと勉強になります。

developerWorks

質問できる掲示板

Windows絡みでわからないことはここへ。人が多く集まっているだけあって回答の速さは驚くべきものがあります。

Windows.FAQ - ウィンドウズ処方箋

巨大匿名掲示板2chです。人は多く集まりますし、回答も早いですが、質は期待しないほうがいいかもしれません。まともな回答でも、言い方がきつかったり、単なる悪態・罵倒で終わったり、何のレスポンスもなく上に流れていってしまうこともあります。

プログラム技術@2ch掲示板

Oracle関係の質問はここへ

Oracle Technology Network - 掲示板

用語辞典

コンピュータ用語について調べたいときは以下のサイトが便利です。あるいはGoogleで、「○○とは」とか「○○というのは」で検索して見るのもいいでしょう。

情報・通信事典 e-Words

Insider's Computer Dictionary


リンク集

ITNAVI.com

Java的リンク

言語

C

C言語について長いこと業務で触っていませんが、一応紹介しておきます。

『C言語によるプログラミング 基礎編』内田 智史 オーム社

『C言語によるプログラミング 応用編』

私はこの本で最初勉強しましたが、もっとわかりやすい本もあるでしょう。入門の場合は、できるだけわかりやすい本を選びましょう。

超有名なカーニハンの名著です。容易とは言えないですが、Cプログラマになるのなら、知っていることが必須でしょう。

『プログラミング言語C』B.W.カーニハン (著),共立出版

『C言語ポインタ完全制覇』前橋 和弥 (著)技術評論社

この本は本当にお勧めします。C言語で最も重要でまたつまづきやすいポインタについて理解することができます。他の入門書で学び、ある程度慣れてからこの本を読むといいでしょう。

著者のページです。いろいろと参考になります。

そのほかいくつかのサイトを上げておきます。

Phinloda is HERE (C MAGAZINE, @nifty FPROG)

このなかの、「初級C言語Q&A」や「Cプログラミングの秘訣」は一読の価値があります。

『パソコン初心者の館』Hirofumi Fujiwara HomePage

これまた有名な藤原博文さんのページです。この中の

「Cプログラミング診断室」

は、よいプログラムを書く上で参考になるでしょう。(これでようやく「義務」を果たすことができた。ふ〜)。

Java

JavaはCなどに比べて入りやすく、またオブジェクト指向言語で需要も高いため、身に着けておいて損はないでしょう。Javaに関連する技術は、非常に幅広い技術で、日々新しい技術が出てきます。

まずは入門書でしっかりと言語をマスターし、サンプルを動かし、また自分でもいくつかのプログラムを書いてみます。

マスターすべきことは、

□変数・配列・制御文・メソッド

□クラスとインスタンス

□継承

□インターフェース・ポリモーフィズム

□例外処理

□スレッド

□基本的なクラスライブラリ

□ファイル入出力

□ソケット

□GUI・イベントモデル

まずは言語を覚えることです。初めてプログラムを学ぶ人がオブジェクト指向とは何かを学んだところで理解できません。オブジェクト指向は、手続き型の対比概念として現れたものなので、対比する手続き型について知らなければ、オブジェクトと言われても全くピンと来ないでしょう。

Javaを使ってプログラムを書けばオブジェクト指向なのではありません。ここは誤解しないようにしましょう。Javaを使っても、たいていの人は手続き型でプログラミングしています。そのことに気づけば、手続き型言語を知らなくてもオブジェクト指向がどういうものか理解できます。その段階で、オブジェクト指向について学ぶといいでしょう。

□オブジェクト指向

□デザインパターン

さらに、サーバーサイドJavaを始めとするJ2EEやその他の技術について学びます。また、開発環境について学ぶことも必要です。以前は、いろいろな開発環境が出ていても、エディタ+コマンドラインでのコンパイルというのが大半を占めていましたが、今ではEclipseがスタンダードになっているので、Eclipseについてはぜひともマスターすべきでしょう。

□サーブレット

□JSP

□フレームワーク(Struts等)

□統合開発環境(Eclipse)

□JUnit

□Ant

□CVS

□JDBC

□JavaMail

□Application Server(Tomcat, JBoss, Weblogic, WebSphere等)

□EJB Session Bean

□EJB Entity Bean

□EJB MessageDriven Bean

□JNDI

□DI

□OR Mapping

Javaの入門書としては、

『やさしいJava』高橋 麻奈 (著)ソフトバンクパブリッシング

がいいと思います。

それから、以下の本も勉強になります。

『Java逆引き大全500の極意』高橋 和也, その他 単行本 (2002/03) 秀和システム

『Javaの鉄則―エキスパートのプログラミングテクニック』
ピーター ハガー (著), その他 単行本 (2000/08) ピアソンエデュケーション

『Javaの格言―より良いオブジェクト設計のためのパターンと定石』
ナイジェル ウォーレン (著), その他 単行本 (2000/04) ピアソンエデュケーション

『独習Java』
ジョゼフ オニール (著), その他 単行本 (2002/07) 翔泳社

  私はこの本で最初勉強しましたが、はっきり言ってお勧めしません。用語の説明もないし、説明も全く不十分です。まだ勉強途中の人は他の本に切り替えたほうがいいでしょう。

Eclipseに関する情報

@IT:Java 連載 Eclipse徹底活用(6)

以下、個人あるいは企業サイトで役立つ小技等が掲載されています。

developerWorks: Java technology

Java Program Examples

Java自体のバグについてのレポートが掲載されています。自分で発見したバグを送ることもできます。

Bug Parade

Javaの言語規定:かなり難解です。

Java言語規定 目次

Jakartaのサイト

The Jakarta Site - The Jakarta Project

J2EE

@ITの記事で、sunで出しているpetshop storeを使ったEJBの説明が掲載されています。

連載:J2EEの基礎

サンのサイトでJNDIについてのチュートリアルです。

The JNDI Tutorial

DI

DIとAOPがサーバ・コンポーネント技術を変える

@IT:Spring Frameworkで理解するDI(1)

Seasarのサイト

Spring Frameworkの解説

コンポーネント指向

コンポーネントについて学びたい場合に

コンポーネント指向ソフトウェア工学グループ

IT Pro 技術の広場 先輩教えて!プログラミングのabc(オブジェクト指向編)---コンポーネントって,どうなってるの(上)

VB

VBの部屋

KOZの館

Office, VBA

Excel Word Access VBA! MOUG.Net

Hi.Ro.Ponのおうち(VB,Access,Excel,VBA,VBS,ASP,同人ソフト情報満載)

Hi.Ro.Ponのおうち

日経パソコンOnline

Perl, cgi

Perl入門

手ごろなcgiスクリプトを探すには

CGI RESCUE - ネットサーフレスキューWeb裏技

CGIスクリプト検索エンジン!CGIZOO

Windows上でのPerl実行ファイルの取得先

ActiveState - ActiveState ActivePerl free Perl open source binary language distribution

PHP

プログラミング言語資料 - SAK Streets

日本PHPユーザ会

Unix系シェル

AWKの第一歩

Cygwin

javascript

JavaScript1.3 abc順

アセンブラ

目指せプログラマー!

html

とほほのWWW入門

Academic HTML

レファレンスサイト

Welcome to OpenSpace !!

HTMLのチェック

Another HTML-lint gateway

gifアニメ

CGI RESCUE チャレンジCGI - 動画GIF

素材のリンク

xml,xslt

わかりやすいXML, XSLTのページです。

たのしいXML XML-XHTML入門ページです

XMLの仕様書

XML 1.0 日本語版

XMLパス言語 (XPath)

データベース

データベースについては、以下のマスターすべきことがあります。

1. SQL

2. 論理設計

3. 物理設計とチューニング

4. ストアドプロシージャ

1、3、4については、本から多くのことを学ぶことができます。SQLはアルゴリズムを組むときのようなパズル的な要素があり、正しく効率的なSQLを組むには訓練が必要です。2の論理設計については、RDB理論について学んだ上で、実際の開発経験の中でDBの役割について学んでいく中でマスターしていくことです。

RDBの理論やデータモデリングについては以下の本がわかりやすくて参考になります。

基礎からのデータベース設計

業務モデルとデータモデルの考え方

実践的データモデリング入門

以下は、Oracleについてですが、役に立つリンクです。Oracleは開発者にとっては非常に優しい会社です。インターネット上で全マニュアルを無料で手に入れることができ、サポートサイトもしっかりしています。

Oracle Technology Network Japan

Oracle Technology Network - 掲示板

OracleMaster講座

Index of -~rance-om-oracle

OLTP環境のOracleチューニング

Linux

『図解でわかるLinuxのすべて』西村めぐみ 日本実業出版社

ネットワーク

ネットワークについてマスターするには、まず何冊かの本に目を通すことです。TCP/IP、各種プロトコル、スイッチについては少なくとも押さえておきたいところです。あとはEtherealを使いこなし、実際のプロトコルの様子を観察します。

ネットワークのe本

『ネットワークはなぜつながるのか』戸根勤 日経BP社

『マスタリングTCP/IP』入門編 竹下隆史ほか オーム社

インターネット・プロトコルの世界

@IT:Windows TIPS -- Tips:netstatコマンドを使いこなす

戸根勤のネットワーク情報

サーバー

・OS

ディストリビューションと含まれるアプリケーションのバージョンの対応リスト

DistroWatch.com Put the fun back into computing. Use Linux.

・Web Server

JAPAN APACHE USERS GROUP

Apache + PHP + PostgreSQL laboratory

・QMAIL

qmailによるSMTPサーバの構築(1-3)

POP/IMAPサーバの構築と不正中継対策(2-3)

・Postfix

Postfix のぺーじ

メールサーバ( Postfix ) - Linux で自宅サーバ [ Home Server Technical. ]

・ProFTPD

ProFTPD - Professional FTP Daemon

・RealVNC

RealVNC - Download VNC 3.3.7

ゼロ円でできるXサーバ WindowsでLinuxをリモート操作・前編(2-3)

・ログ関係

daemontoolsによるロギングとプロセス監視(1-3)

@IT:サーバのログ監視ツールを使いこなそう(2-3)

・パスワードクラック対策

John the Ripper password cracker

・改ざん防止

Tripwire - Events

tripwireで改竄チェックする

Tripwireによるホスト型IDSの構築(2-3)

エンタープライズ:第3回 rootkit検出ツールによる検査 (1-6)

・ツール

ネットワーク便利ツール

オブジェクト指向設計

IT Pro 技術の広場 先輩教えて!プログラミングのabc(オブジェクト指向編)---オブジェクトって,何がすごいの(上)

羽生田栄一の「オブジェクト論」【前編】(上) IT Pro 技術の広場

以下のサイトもオブジェクト指向について知る上で参考になります。カプセル化やメッセージパーシング、再利用について、私も疑問に思いました。

オブジェクト指向再入門-なぜわからなくなってしまうのか

オブジェクト指向を哲学的な視点から分析しています。

『ゼロから学ぶオブジェクト指向設計』 日経ソフトウエアムック

特に、

これならわかるオブジェクト指向

Part4 構造化プログラミングには限界がある

では、手続き型とオブジェクト指向によるプログラミングの違いがよくわかります。実際のソースコードで見ると、どう違っているのかはっきりします。ソースコードはここからもダウンロードできます。

オブジェクト指向プログラミングにおける最も注目したい唱道者マーチン・ファウラーのページ

Martin Fowlerのページ

Martin Fowlerのページ(翻訳)

デザインパターン

Martin Fowler's Bliki in Japanese - パターンは新しいもんじゃない

デザインパターンFAQ

デザインパターンの骸骨たち

デザインパターン紹介

結城 浩 The Essence of Programming

テスト

故まさーるさんのページです。JUnitを使ったテストについて詳しく述べられています。そのほかのページも参考になります。

JUnit 実践講座

Software Testing - Symposium

@IT:連載:快適なXPドライビングのすすめ 第2回

ツールを使いこなす

技術以外にも重要なこととして、ツールを使いこなすことが挙げられます。

コードの作成にしろ、ドキュメントの作成にしろ、そこでは何らかのアプリケーションを利用することになります。便利な道具を知っていれば、それだけ仕事の効率は上ります。スキルの高い人間は例外なく、文書処理が早いものです。

・IDE(統合開発環境)

・文書Editor

・文書整形

・表計算ソフト

・コマンド

Javaのところでも述べましたが、エディタでゴリゴリ書くよりもIDEを使った方が効率的です。とはいっても使いこなしていないと、十分な力を発揮できません。使うツールに精通し、便利な機能を使いこなすことです。

例えばeclipseを使えば、

など便利な機能が豊富にあり、プラグインで様々な機能を追加できるのも魅力です。

一通りの機能を知り、右クリックやショートカットを覚え、カスタマイズをしたり、マクロの使い方を覚えます。

文字列を処理する必要が出てきたときには、エディタの機能を使ったり、あるいはsedやawk等のコマンドや、シェルスクリプトやperlなどを使って、効率化します。

ドキュメントを作成したり、集計処理をする際にはExcelが良く使われますが、これも使いこなしているのとないのとでは全然スピードが違います。Wordも、クセがあり嫌いな人が多いですが、文書作成のデファクトスタンダードになっているのでマスターしておいたほうがいいでしょう。ただし他人に見せる文書ではない場合は、エディタを使った方が、検索、置換、コピー&ペーストなどの速度は断然速いです。

便利なツール

お勧めのツールとしては

Javaクラスサーチ どのjarに目的のクラスが含まれているかを検索します。

めもりーくりーなー CPUやメモリの使用状況をリアルタイムに表示します。

Tail for Windows tailコマンドのWindows版です。

簡単ファイル日時変更 EzFileAge 右クリックに入れてファイルのタイムスタンプを統一するときに便利です。

VMWare 簡単に複数のOS環境をテストできるため便利です。これからの時代マスターするのは必須でしょう。

そのほかエディタですが、私はWZEditorを使っていますが、使い慣れたものが一番でしょう。キーボードショートカット、マクロ、GREP、アウトラインプロセッサ(メモ)など重宝して使っています。






この内容についてご意見をください

 
   役に立った    まあまあ    つまらない    難しい    疑問がある

コメント(質問・指摘・要望なんでもどうぞ)
  
メールアドレス: 

  

Copyright Dayan All rights reserved. Last Update: 2006.10.15 Create: 2004.08.31