プログラミング 自己啓発 Java

プログラミングを上達させるために私がやってきたこと・やっていること

投稿日:

私の上達過程

写経

自分のレベルに合う本をもとに写経しては、コードの意味を調べて理解し、少しづつ体に染み込ませるように身に着けていきました。
とにかく初心者のころは右も左も分からず、ちょっとしたエラーでも解決に何時間もかかったりして、全く学習が進まない時期も多々経験してきました。
今(執筆時点:2021年5月3日)のように、書籍やブログの記事が充実しているわけでなかったり、教えてくれる人を探すのが簡単ではなかったので、独学が基本だったのはきつかったです。

今ではUdemyでわかり易く動画学習できたり、Mentaのようなメンタリングサービスがあったりと随分充実してきているので、学習環境は良くなったと思います。

<今まで読んできた書籍>

※Javaを主言語として使うようになってからは、オブジェクト指向技術の習得がもっぱらの関心時になりました。

書籍以外では、ドットインストールSchooを活用してきました。

リファクタリング

写経をしていると、ここはもっとわかり易く書けないだろうか?
処理を共通化するともっとメンテナンスしやすくなりそうだ。
など、自分で改良できそうな箇所がみつかったり、何らかの改善をしたくなってくる気持ちが出てきます。

それはちょっとしたブレイクスルーの前触れです。
「まだ自分は初心者だから・・・」
「改良したコードが本当に正しいのかわからない・・・」
など、自分の声を打ち消すような思いが出てきたとしても、プラスの気持ちを信じましょう。

プログラミングに興味を持ったということは、技術に興味があるということです。
わずかでも向上する余地があるのであれば、その芽を自ら摘み取るようなことはせず、自分自身の成長した姿を追い求めましょう。

自作アプリケーション

いろんな本を写経し、自分なりの改善もできるようになってきたら、自分で何かを作ってみたくなります。
「自分には大したものは作れないだろうな・・・」
「素晴らしいアプリケーションはもっとすごい人が作っているから自分がいまさら作る必要なんてないんじゃないか・・・?」
というのは間違いです。

作るという経験はとても大変ではありますが、自分自身の成長を楽しめる素晴らしい行為です。
そして、写経するだけではわからなかった難しさと、それを乗り越えること得られるやりがいがあります。
本当に成長できるのが、自分でアプリケーションを作ることなのです。

<作ったアプリケーション>

今どのくらいできるようになったか?

1年目(初心者レベル)

私は2017年3月(34歳)にIT業界に復帰しました。
当時、PHPの不動産開発案件に参画させて頂きましたが、開発経験は独学のみで業務経験はありませんでした。
SQLと基本的なCRUDがわかるだけで、フレームワークは全くわからない状況でキャリアを再スタートさせました。

業務ではJavaScript(jQueryも)やCSSも学びながらだったので、結構大変でした。
PHPも何となくできるようになったつもりでしたが、別の業務システム開発では巨大なロジックの実装になかなかついていけず、何時間も悩みながらやっと小さなロジックを組み立てられるという状況でした。

この時期にこなしたことは、会社のJava研修課題(Webアプリケーション)と、とにかく1000行以上のコードを書くことでした。(業務外)

2年目(初級者レベル)

VBAを主とした業務に携わっていました。
SQLをこねくり回してレポートを出力するツールの開発などをしており、言語+DBの扱いに慣れてきたのがこのころです。

このころはVBAで楽天APIから書籍情報を取得して、会社の書籍管理システム用のマスターデータを作るということをしていました。(業務外)

3年目(中級者レベル)

Pythonで機械学習のデモアプリを作ったり、業務パッケージの機能追加の受託案件(Java)をこなせるようになってきました。
正直、Javaの業務経験はありませんでしたが、基本的なことは独学しており、新入社員の研修担当をできるようになっていたので、まったくわからずに困るということはありませんでした。
また、このときTypeScriptにも初めて触れましたが、なんとかこなせていました。

このころになると、不慣れな言語であってもなんとかプログラミングできるような応用力がついてきていました。
もちろん、元々PHPerなのでPHPが得意ですし、今はJavaも好きで使いこなせるようになっています。

言語の壁が無くなってきたことを境に、設計に関して興味がわいてきて、デザインパターンを勉強し始めました。
そこからテスト駆動開発やドメイン駆動設計にも興味を持つようになりました。
(もちろん、勉強は業務外)

私の場合、業務外でも常に自分をレベルアップさせるための学習を続けてきたことが今につながっています。

どのように上達したらよいか?
という答えは、「今の自分を成長させることのできることは全部やる」だと思います。
もちろん、時間というリソースには限りがあるので優先順位は必要ですが。

まとめ

  • 自分の成長した姿を期待すること。ネガティブな自己意識より、ポジティブな自己イメージを持つことが大事。
  • 業務外でも学び続けることが必要である。
  • プログラミングの上達には、今の自分を成長させることのできることを全て行う。

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

ランキング評価する

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

執筆者:


comment

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

CAPTCHA


関連記事

【JdbcTemplate】Queryの書き方(更新系)

  前提 以下のテーブル(users)を持ち、格納するのはUserクラスという想定で説明していきます。 usersテーブル

【Java入門】繰り返し処理(while, for)

概要 繰り返し処理の制御構造について学んでいきましょう。 繰り返しには以下があります。 while(条件に一致する間だけ繰り返す) do-while(一度必ず実行し、その後は条件に一致する間だけ繰り返 …

Javaで数値(int)を部分一致判定する

文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

【JUnit5】基本的なAssertionまとめ

概要 JUnit5における基本的なAssertionをまとめました。 検証方法 等価性 値が等価であるかを検証するメソッドです。 以下はorg.junit.jupiter.api.Assertions …

【Java】モジュールシステムの概要と実装例

概要 Javaのモジュールシステムについて、概念的なイメージと実際のコード例で理解を深めるための記事です。 読者はJava Silverの資格勉強中の方やJava入門者を想定しています。 内容は以下の …

記事を探す

SpringFramworkの良書

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

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