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


関連記事

自分の限界の超え方

これは私がポスティング(チラシ配り)を仕事にしていたときの実体験です。 (※4年前の記憶を思い出して記載) 当時、1日に1万枚くらいを配るのが当たり前になっていて、(確か)7000枚くらいの案件を6時 …

【Bootstrap】共通ヘッダーをナビバーとしてデザインしよう!

概要 ヘッダーをナビバーとして実装します。 (SpringBootチュートリアルの共通ヘッダーを基に解説していきます) また、デザインはBootstrapのサンプルを基にしていますので、 そちらも一度 …

【Spring+Thymeleaf】リクエストパラメーターをControllerで受け取る方法

概要 Spring+Thymeleafにおいて、リクエストパラメーターをControllerで受け取るパターンを紹介します。 リクエストパラメーターのパターンは以下の通りです。 ・単一(inputタグ …

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

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは2つのオブジェクトを作成していきます。 成績オブジェクト:教科と点数などを保持 生徒オブジェクト:氏名と成績を保持 …

2進数を使うと判定がシンプルになる!(じゃんけんプログラム編)

概要 仕事で2進数を使った判定処理について学んだので共有したくて執筆しました。 仕事上で設計したロジックは本記事で紹介するものより複雑でしたが、本質的な部分は変わらないので使って頂けると思います。 説 …

SpringFramworkの良書

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

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