プログラミング 自己啓発

プログラミングスキルを向上させる3ステップ

投稿日:

プログラミングスキルを向上させるための3ステップです。
私自身が実践していることであり、向上を実感している方法です。

写経

本をベースに写経します。
写し書きをして動いたらOKではなく、以下のような問いかけを常に頭に置きながら行います。
・なぜこの書き方で動くのか?
・本当にこの書き方が良いのか?

写経しても構築した環境の違いでエラーが発生したりするので、
最初は動くようにすることを最優先します。

次に、上記の問いを確かめるべく公式ドキュメントを見て確かめたり、
自分で少し書き方を変えてみて、同じ動作が保証されるかを確認したりしてみます。

改良

写経はすぐに飽きます。
簡単なものが多く、真似すれば大抵動いてしまうからです。
なので次にやることは、写経して学んだことを応用して、自分で何かを作ります。

例えば、for文を学んだのであれば、for文を使った事例を自分で何個か作って
実際に動かしてみます。

Javaで例を挙げるなら、String、Integerの配列で回してみる。
ArrayList、HashMap、HashSetで作ったオブジェクトでfor文を回してみる。
ArrayList、HashMap、HashSetをラップした独自オブジェクトで回してみる。
など。

一つ何かを覚えたら、他の応用方法が無いか探し、
どのように応用できるかを追求してみます。

教える

人に教えることでより深い理解を得ることができます。
教えるとき、自分の知識にあいまいな部分があると、「あれ?どうするんだっけ?」となります。

そのとき、自分で詳しく調べなおしたり、
相手がわかるように更に詳細化してあげたりすることで理解が深まります。

私はJava研修の担当者を経験したことがあります。
元々はPHPerで、Javaは独学で数か月学んだだけで実務経験が無い状態でした。
なので基本的なことでも調べながら教えていましたが、結果的に私自身がより詳しくなりました。

今はこのブログを執筆したり、以前の会社の後輩にプライベートで教えたりしています。

まとめ

・写経は、スキルを身に着けるきっかけ。
 ただし、「なぜ?」という問いは持ち続けることが大事です。
・改良は、応用力を身に着けるよい方法です。
 自分で調べてより良いコードを書く習慣を持つことが成長につながります。
・教えるのは、より理解を深めるきっかけ。
 教えることで自らがより学ぶことにつながります

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, 自己啓発
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

Redmineでリンクにできない場合にチェックすること

リンクにできない場合のチェック項目 前後に文字列がくっついている。 前後に全角スペースがある。 リンクの#が全角になっている。   リンクにするには? 以下のルールで記述すればリンクにできま …

Springでバリデーションがimportされていないときの対処法

状況 SpringF/Wでバリデーションを実装したいが、@NotNullや@Minといったアノテーションが使えない。 @NotNullを使おうとすると、import com.sun.istack.No …

PHPerがJavaを学ぶ5つのメリット

PHPerである私が会社でJavaの研修担当となり、私自身も大学生以来のJavaを勉強しなおして感じたことを書いていきたいと思います。 対象読者 ・PHP初心者 ・なんとなくPHPで動くプログラムを書 …

AbstractFactoryパターンをenumで生成するメリット

AbstractFactoryパターンの説明には、実行時引数に文字列を渡したり、フラグでif-else判定する例をよく見かける。 しかし、どんなFactoryが生成可能を知らない担当者がFactory …

【Java】オブジェクト指向の練習題材(会員オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。   仕様 以下の会員クラスを作成し、Mainクラスで表示する。 会員クラスには、「会員」という単位で持つことできる …

記事を探す

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。