ITエンジニアのYukiです。
今回は、新人エンジニアや未経験者向けに、プログラミングができるようになった後に学ぶべきことを書きます。
一応、プログラミングはできるようになった。
でも、次は何をすればいいの?
という悩みがあるかもしれません。
そこで、プログラミングの基本を覚えた人向けに、次に身に着けるべき知識やスキルを紹介します。
結論からお話しすると、以下の4つです。
- 読みやすいコードを書く
- ソフトウェアテスト
- ロジカルシンキング
- 基本情報技術者
順番に説明します。
更新履歴
- 2022/5/29 2023年4月からの基本情報技術者試験の変更について追記
Photo by Green Chameleon on Unsplash
読みやすいコードを書く
プログラムは動けばよいというものではありません。リリースした後も、自分や他の人が引き継いで、メンテナンスする必要があります。
あなたが仕事で書いたプログラムは、少なくとも数年間は、本番の環境で動き続けます。その中で、新しい機能を追加したり、不具合が見つかったりで、修正が必要になるでしょう。そんなとき、そのコードが読みにくかったらどうでしょうか?
きっと困りますよね。きちんとレビューしてくれる職場なら、書いた時点ですぐに指摘をもらうかもしれません。
では、どうすれば他の人が読みやすいコードが書けるようになるのでしょうか?
そのための本を2冊ご紹介します。
リーダブルコード
「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」Dustin Boswell (著), Trevor Foucher (著), 須藤 功平 (解説), 角 征典 (翻訳)
[PR]<『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)』をAmazonで探す>ご存じの方もいるかもしれません。新人エンジニアにおすすめの定番です。
動けばよいというプログラムを卒業して、読みやすいコードを書くためのテクニックが学べます。ただ、翻訳なので少し読みにくいところがあるかもしれません。
まずは、本の概要をまとめた記事を読んでみましょう。
「新卒エンジニアが 『リーダブルコード』 を読んで感じたこと」 (UZABASE for Engineers)
プログラミング歴2年、新卒エンジニアの崔(チェ)さんが、内容を簡単にまとめられています。
「リーダブルコード要約とリーダブルコード要約の活用方法」 (Qiita)
こちらはQiitaの記事です。崔さんの記事より、各テクニックが具体的にあげられています。
コードは、コンピュータだけでなく人が読むものです。自分で書いたコードでさえ、3か月もすれば、なんでこんな風に書いたのかということがよくあります。読みやすいコードが書けるテクニックを身につけましょう。
リファクタリング
読みやすいコードの書き方を知って、自分のコードを直したくなったかもしれません。
いきなりきれいなコードが書けるかと言うと、そんなことはなくて、後で少しずつ直しながら、メンテナンスしやすいコードにしていきます。この処理の名前はこのほうがよかったかなとか、ここの処理は切り出した方がよいかもといった具合です。それがリファクタリングです。
リファクタリングとは、処理結果を変えずに、コードを読みやすく、メンテナンスしやすくする作業です。あらかじめ自動の単体テストを書いておいて、コードを修正した前後で結果が変わらないように修正していきます。
リファクタリングについては、以下の本が参考になります。
「リファクタリング(第2版): 既存のコードを安全に改善する」Martin Fowler (著), 児玉 公信 (翻訳), 友野 晶夫 (翻訳), 平澤 章 (翻訳), 梅澤 真史 (翻訳)
[PR]<『リファクタリング 既存のコードを安全に改善する(第2版)』をAmazonで探す>第1版は、約20年前に出された名著でした。それが2019年の第2版で、サンプルコードがJavaからJava Scriptに書き変えられました。現代のWeb技術に対応して、内容もアップデートされています。
「Java言語で学ぶリファクタリング入門」結城 浩(著)
[PR]<『Java言語で学ぶリファクタリング入門』をAmazonで探す>Javaで書かれた第1版については、結城浩さんの入門書がおすすめです。結城さんの入門書は、非常にわかりやすいです。結城さんの本は、デザインパターンも良いのですが、それはまた別の機会に。
ソフトウェアテスト
リファクタリングの話をしたので、次にソフトウェアテストの話をします。
リファクタリングの肝は、自動テスト→修正→自動テストでしたね。
あなたが書いたプログラムは正しく動くでしょうか? 普通の操作をしたときは当然動くとして、ちょっと変わった操作をしたらどうでしょう?
数字を入れる部分に数字以外を入れてみたり、画面を行ったり来たりしてみたり、ボタンを連打してみたり。どんなときも、後続の処理に正しくデータを渡せているでしょうか? 画面が固まったりしませんか? ユーザは、開発者が思ってもみない操作をするものです。
アプリストアで星1つのアプリがならんでたりしますね。まともにテストされていないから、ちょっと環境が変わったり、すこし変わった操作をしたりで動かなくなります。
プログラムは、正しく動くことを確認するためにソフトウェアテストを行います。
すでに単体テストは書かれた経験があるかもしれませんね。
ソフトウェアテストについて、一度、体系的に学んでおくことをお勧めします。品質の高いソフトウェアを開発できてこそ、一人前です。
「知識ゼロから学ぶソフトウェアテスト 【改訂版】」高橋 寿一(著)
[PR]<『知識ゼロから学ぶソフトウェアテスト 第3版 アジャイル・AI時代の必携教科書』をAmazonで探す>こちらの本がお勧めです。著者の高橋寿一さんは、MicrosoftでWindowsのテストをされていた方です。
2013年に改訂版が出ています。
本当に知識ゼロから学べます。私も、初版の方を新人1年目で読みました。
バグの少ないソフトウェアを開発する上での基礎になっています。
ロジカルシンキング
読みやすいコードの次は、読みやすい日本語です。
日本語くらい書けると思うかもしれません。でも、ちょっと待ってください。仕事で書く文章と、日常で書く文章は違います。たとえば、結論を先にとかですね。
口頭で報告するときも同じです。日常会話では、結論は最後だったりしますが、ビジネスの場でそれをやると、聞いている相手がイライラします。時間がかかりますし、聞くのに余計なエネルギーがかかります。結局何が言いたいのかわからないからです。
日本の学校教育では作文は教えますが、ライティングはあまり教えません。感想文はよく書きますが、論理的な文章を書く方法はあまり教えられてきませんでした。
ITエンジニアとして働くと、仕事で多くの文章を書きます。設計書はもちろん、メール、報告書、プレゼン資料と、もしかしたらプログラミングをしている時間より長いかもしれません。口頭で報告する機会もたくさんあるでしょう。
そこでロジカルシンキングを身につけましょう。すっきりわかる文章を書けるようになります。
「入門 考える技術・書く技術――日本人のロジカルシンキング実践法」 山崎 康司 (著)
[PR]<『入門 考える技術・書く技術』をAmazonで探す>1995年発売の名著「考える技術・書く技術」(バーバラ・ミント著)を翻訳された山崎康司さんが書かれた入門書です。書く技術の本だけあって、この本自体わかりやすいです。
これまで文章を書くトレーニングを受けてなければ、この本で練習すると見違えるでしょう。
「やさしいロジカルトレーニング」(パーソル)(PDFファイルへのリンクです)
パーソルが派遣者向けの資料を公開してくれているようです。。13ページほどで簡単に説明されているので、ロジカルシンキングって何という人は、最初に見るとよいでしょう。
基本情報技術者
最後に、基本情報技術者です。こちらもご存じの方は多いでしょう。すでに持っているという方もいるかもしれません。
基本情報技術者とは
ITエンジニアの登竜門となる資格試験です。春と秋の年2回試験が行われます。
基本情報技術者は、IT業界ではほとんどの人が知っている資格です。
日本中どこに行っても通用します。
試験範囲は、基礎理論からハードウェア、OS、ネットワーク、データベース、セキュリティ、開発技術等、ITの全分野を網羅しています。
基本情報技術者のメリット
試験勉強することで、幅広い知識を浅く学ぶことができます。IT技術はそれぞれ専門分化していますが、繋がってもいます。広く浅く学んでおけば、確かな基礎になるでしょう。
まずは、試験合格を目指すことがちょうどよい目標になります。そして資格取得後は、ITの基礎的素養を持っていることの証明になります。
経験2~3年目までは、この資格を持っているかどうかで評価が違うでしょう。
基本情報技術者試験の勉強方法
試験対策本や問題集で独学が可能です。パソコンに詳しくて、周りから頼られるレベルの人なら、1か月、試験対策本や問題集で準備すれば、合格できるかもしれません。そうでない人は、半年くらいじっくり勉強することになるかもしれません。
対策本1冊におさまる分量ですから身構えることはありません。
本を読んでわからないことがあっても、ググればいくらでも解説が出てきます。
どんな本を選べばよいかは、以下の記事が参考になります。各参考書と問題集について、網羅的なものから頻出範囲に重点を置いたものまで、特徴ごとに紹介されています。
「基本情報技術者試験に独学で合格できるお勧め参考書と勉強方法【2022年版】」 (資格屋)
ちなみに私は技術評論社の対策本で勉強しました。(年を追って改訂されているので、大昔の版ですが……)
「令和04年 基本情報技術者 合格教本(情報処理技術者試験)」(技術評論社)
[PR]<『基本情報技術者 合格教本』をAmazonで探す>体系立てて網羅的に解説されているのが良いところです。一方で説明が簡便なため、初心者の方には受けが良くないようです。わかりにくいところはググって自分で調べると良いと思います。
どうしても独学は難しいという人は、専門学校や通信教育もあるようです。また、失業中の人なら、職業訓練校で資格取得をサポートしてくれるところがあります。専門学校や職業訓練校の良いところは、就職まで面倒を見てくれるところですね。
基本情報技術者試験は2023年4月から変更に
なお、2023年4月から基本情報技術者試験が変わります。以下のように大きな変更です。
- 春・秋の年2回開催から、いつでも受けられるようになります。
- 試験時間、問題数が減ります。試験時間は午前・午後合わせて300分から190分になります。
- 午後の選択問題のプログラミング言語(C、Java、Python、アセンブラ言語、表計算ソフト)がなくなり、疑似言語の問題に統一されます。
印象としては簡単になるように見えます。時間的な余裕があれば、変更後に取るのもよいかもしれません。ただこればかりは変更されてみないとわかりませんね。
(参考)「情報処理技術者試験における出題範囲・シラバス等の変更内容の公表について(基本情報技術者試験、情報セキュリティマネジメント試験の通年試験化)」(IPA)
(参考)用語辞典
『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』
用語を分かりやすく解説しています。図解やたとえ話を使われているので、知らない言葉で全然イメージがつかないときにお勧めです。途中の用語からもリンクを張らせていただきました。
まとめ
プログラミングができるようになった後、身に着けるべき知識とスキルについて書きました。以下の4つですね。
- 読みやすいコードを書く
- ソフトウェアテスト
- ロジカルシンキング
- 基本情報技術者
まとめると、メンテナンスしやすくバグのないプログラムが書けて、コミュニケーションもしっかりとれる、IT技術の基礎も一通り理解している、こんな技術者ならどこへ行っても大丈夫です。
いきなり全部は難しいと思います。1,2年かけて身に着ければ問題ないでしょう。今、課題と感じていることや、面白そうと思ったことがあれば、一つずつ学んでいけばよいと思います。
最後まで読んでいただき、ありがとうございました。
こんなことも知りたいといったご質問や間違ってるよといったご指摘、ご感想などありましたら、ページ一番下からお気軽にコメントください。
この記事が役に立ちましたら、下のボタンからシェアしていただけると嬉しいです。
それでは。
お薦めした本(PR):
[PR]<『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)』をAmazonで探す>
[PR]<『リファクタリング 既存のコードを安全に改善する(第2版)』をAmazonで探す>
[PR]<『Java言語で学ぶリファクタリング入門』をAmazonで探す>
[PR]<『知識ゼロから学ぶソフトウェアテスト 第3版 アジャイル・AI時代の必携教科書』をAmazonで探す>
[PR]<『入門 考える技術・書く技術』をAmazonで探す>
[PR]<『基本情報技術者 合格教本』をAmazonで探す>
コメント