プログラミング 自己啓発 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


関連記事

【Bootstrap】入力フォームを作成しよう!

概要 SpringBootチュートリアルで作成した各画面の入力フォームをBootstrapに置き換えます。 また、containerを使用することで容易にグリッドシステムを導入できます。 実装 検索画 …

ユニークなListを持つファーストクラスコレクションの例

概要 正確に言うとListではなくSetです。 自分の確認と備忘録なのでご参考までに。 実装 ユニークなリストとしてSetで保持します。 Item 保持するオブジェクトです。 [crayon-647b …

割引 ディスカウント 値引き

【Oracle】Java認定試験のチケットを割引で購入する方法

Oracle・Java認定試験のチケット代を安くする方法について私が実際に使った方法を紹介します。   対象試験 Java SE Bronze、SE 8 Silver/Gold、SE 11 …

SQL, Mybatis, OR, O/R

【MyBatis】IN句にパラメータを設定する方法

SpringアプリケーションにおいてMybatisを使用する状況を想定した実装例です。 期待値 IN句に複数のパラメータが設定されたSQL文が発行されること [crayon-647bb68c13622 …

【Javaサンプル】自動販売機(Level3) クラス分け

自動販売機(Level2)では、小さいメソッドに処理を切り出すことを学びました。 しかし、まだMainクラス1つの中で完結しているプログラムです。 オブジェクト指向言語であるJavaを使うなら、クラス …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

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

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