今プログラマーに求められる技術とは

世の中には様々な技術があります。例えばScrum。「柔軟かつ全人的なプロダクト開発ストラテジーであり、共通のゴールに到達するため、開発チームが一体となって働くこと」を目標とした開発手法です。

そして、2019年の開発言語のトレンドは1位 Go (37.20%)、2位 Kotlin (26.45%)、3位 Python (26.14%)です。

さらに、JavaScript Frameworkでは、React JSフレームワークのアングル構造とAngularが持つサーバーレンダリングに軽量の双方向データバインディングアプリケーションを開発する理想の選択肢であるVue.jsなどがあります。

不具合と向き合う

ただし、どんなに素晴らしい技術を持ってしても、無意味どころか被害を生み出してしまう。それは不具合です。

「不具合」関連の最新 ニュース・レビュー・解説 記事 まとめ

これだけ新しい技術が生まれても、未だに不具合は増える一方です。なので、不具合を先に見つける事に着目した、テスト駆動開発という技術があります。

作ったバグはすぐに潰す!テスト駆動開発のスタイルを学ぶ

設計と向き合う

しかし、不具合なく作ったとしても、そもそも設計が間違っていたら無駄になります。文章で書かれた設計に対して事前条件、事後条件、不変表明を明確にする「契約による設計」という技術があります。

とある契約の備忘目録。契約による設計(Design by Contract)で信頼性の高いソフトウェアを構築しよう。 – Bug Catharsis

納期と向き合う

これで、あなたは正しい設計で不具合のないプログラムを開発できるようになりました。ところが納期までに人も時間も足りません。こんな時は早く開発することが求められます。そのために過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化した「デザインパターン」という技術があります。

デザインパターン (ソフトウェア) – Wikipedia

なお「デザインパターン」はオブジェクト指向をベースとしています。よって事前にオブジェクト指向を理解する必要があります。ここでは一般的なJavaかC#で学んでみるのが良いかもしれません。

【10分でわかる】Javaにおけるオブジェクト指向を徹底解説 | 侍エンジニア塾ブログ(Samurai Blog) – プログラミング入門者向けサイト

オブジェクト指向とは – C# によるプログラミング入門 | ++ … – ++C++

余談ですが、オブジェクト指向は構造化設計から生まれました。これはソフトウェアに必要な機能と,それぞれの機能で使用するデータの流れを分析/設計する手法(構造化手法)です。構造化設計のように,機能(処理)に着目して開発する手法をプロセス中心アプローチ(POA:Process Oriented Approach)又はプロセス中心設計といいます。構造化設計には,処理効率の向上,保守の容易化,モジュール の部品化(再利用)などのメリットがあります。

C言語による構造化/階層化設計 入門講座

シンプルになる

おそらくは、この一連の技術は今も昔も、そしてこれからも求められるものだと思います。そして、これらの技術をより深く理解したプログラマーは、複雑で難解なロジックをシンプルなコードで解決します。
普段は目立たないものですが、プロジェクトによっては何十人もの人が何ヶ月も掛けて作ったものを、一人だけで僅か数週間で作ったりします。その磨かれた技術は芸術的な才能といった方が、近いかもしれません。

プログラマが知るべき97のこと

「文章にしろ、和音にしろ、リズムにしろ、美しく、優雅なもの、優れたものはすべて、シンプルである。」

プラトン

投稿者: 二本松 哲也

志を持った人たちと、夢に向かって共に働くことが私の誇りです。 セキュリティコンサルタント、キャリア(個人事業主 PG→SE→PL→PM→ 会社員 ITコンサル 兼 情シス)、資格(2級知的財産管理技能士、個人情報保護士)、IPCC 地球温暖化防止コミュニケーター