プログラム 習得 順序1 概要

イントロダクション

プログラミングのススメと自分の経験からこの学習順序(学習フロー)が良いであろうと言う学習順序を記載します。

<初めに>

今現在、学生の方は将来に向けて「あーしたい、こーしたい」と言う気持ちを大切にして欲しいと思います。

そして、成人して社会人の方、特に若い方は目標、夢などを具体的にイメージ出来るようにイメージを具体的に持ってください。少しずつ、ゆっくり具体的にしていく感じです。

「火事場のクソ力」と言う言葉があります。本当は「馬鹿力」らしいですが…、早い話が「人間やる気になれば何でも出来る」と言うことを言いたかったのです。なので、次の「動機」について自問自答してみてください。

1.動機について

元々自分はイベント屋とか音響屋さんになろうと思っていました。が「これはいつまでたっても生活が出来ない!」(まともな収入が得られない)と気が付き「IT業界へ行くべきだな!」と意を決して異種業界へ行く事にしました。

丁度良く「未経験者歓迎」と言う求人があったので、そこに食いつきました。

自分の動機としては「まともに収入を得て働きたい」と「手に職をつけて将来的に独立したい」と言うのがありました。

2.学習開始!

会社で学習しながら、アルバイトして生活する感じでした。パソコンやプログラムとは無縁の仕事をしていたので「プログラムとはなんぞや?」から入りました。パソコンは学生の頃にバンドの音を録音するのに使った程度。ワードやエクセルの存在も知りませんでした。

とりあえず会社からのミッションは「指定の課題をクリアする」でした。

課題をクリアしたら正社員として働けるので、収入も入ります。

ガテン系の人間なので「とりあえず手を動かす」事で「わからない」を「そーゆーこと?」に変えて行きました。

3.課題をこなす

課題と言うのは、プログラミングの教本にあるような問題を解いて、プログラムを実行して起動確認するものでした。やっぱり「ハローワールド」に始まり、文法→アプリ作成とやって行きました。

ハローワールドは、頭ごなしに覚えました。メインメソッドの書き方は常に決まっているからです。

足し算〜四則計算をするプログラムを作りコンソールに表示したりしました。

この時に、変数の型について理解が深まったと思います。ビルドエラーが出るので「なんでエラーになる?」を解決していく事で「データ型」に対する理解が深まったのです。ドキュメントには「この型は〜」と書いてあるけど実際にはいじってみないとわかりませんでした。

4.作ったもの

  1. コンソールアプリ(配列の並べ替え)
  2. ユーザ登録削除(ユーザ管理アプリ)

ここまでが自分が研修としてやった事です。

初めのコンソールアプリはC言語で作りました。構造体とか配列とか初めは訳がわからんになっていましたが、作り終える頃には、なんとか理解したかな?って位になってました。

A.振り返り

実際にやってみて、かなり時が経っているけど、今思い返してみて、思うのは以下の点です。

<やると良い事>

  1. 実際に手を動かして、プログラムを書いて理解する事
  2. 学習(プログラムを組む)の後に理論的に理解する事
  3. 作ったプログラムをいじって思い通りにカスタムする事→ちゃんと理解していれば難しくないし、ちょっと面白い(笑)

<やると悪いこと>

  1. コードも書かないで理論(頭)だけで理解する
  2. 「説明が出来た」=「理解した」と解釈する
  3. 理解が出来ないのに人に相談しない
  4. 理解(実装)した事を起動確認しない

まとめ

次のような手順で学習するのが一般的な手順になります。

  1. ハローワールドをやる
  2. そのプログラムの文法を理解する
  3. とりあえず、何か作る

ここまでは良いのですが、やった後に「理解」する様に各ステージをクリアしていくと効率的かつ実戦的だと思います。理想としては、簡単な操作の出来るアプリを作るのが良いのですがいっぺんには出来ません。

なのでプログラムを書き、起動して、各処理が何をしているのか?を理解しながら学習、そしてアプリではどんな風に使うか?をイメージ出来ると素晴らしいと思います。

ポイント

ゆっくりでもいいので確実に一歩ずつ進む事です。

これが一番の近道だからです。

あと「こんなものを作りたい。」という感じで夢を膨らますとより「やる気」になります。

自分は「何を作ろうか?」から入ったので少し出遅れた感じです。インターネットもよく知らない状態だったので…

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す