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


関連記事

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

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

オブジェクト指向でじゃんけんを作ってみる

最近、プログラム自体を書いていない時間を多いので、再勉強がてら少しコードを書いてみました。 何を作ったか? テーマ:じゃんけん(1対1) 言語:Java OOPで考慮したこと ・ゲームを管理するコント …

正規表現で複数の箇所を入れ替える方法

複数の特定の箇所を入れ替えるテクニックです。 確認環境 Sakuraエディタ 置換方法 ここでは例として、:区切りの前後の文字列を入れ替えてみます。 置換前データ メニュー:AAA メニュー:BBB …

【Java】HashSetの使い方(順序なしSet)

HashSetの使い方をまとめました。 HashSetに関する使い方のサイトは他にもありますが、 それらのサイトには書かれていないメソッドについても書いてあります。 HashSetの基本情報 ・重複す …

メソッドを切り出すメリット。リーダブルなコードで行こう!

概要 大きなクラス、長いメソッドを書いたり読んだりしていて、ロジックが追えなくなってきています。 私の周りではすごく理解が良く、長い処理でも追っていける人がいますが私はそうではありません。 私はごくご …

記事を探す

SpringFramworkの良書

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

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