【プログラミング】独学で挫折しない方法とおすすめの入門書5選

2022年7月25日(月)

プログラミングの勉強で挫折しないコツ

プログラミング教育が2020年から小学校で必修化され、2025年には大学入学共通テストの科目に「情報(プログラミングやデータサイエンスの基礎)」が加わる今の時代。自分もプログラミングスキルを身に付けねばと考える人は多いだろう。

新卒エンジニアの求人倍率は2022年1月時点で3.2倍。全職種平均の求人倍率が1.2倍であるデータを踏まえると、どれだけエンジニアが市場で求められているのかがよく分かる(厚生労働省「一般職業紹介情報(令和4年1月分)」より)。

専門スキルが求められるエンジニアは、他の職種より未経験転職が難しいと思うかもしれない。しかし手を動かしてプログラミング経験を積むことで、エンジニアへの転職は実現可能である。

今プログラミングに興味がないあなたも、いつプログラミングを学びたくなる「きっかけ」に出会うか分からない。

下の記事で取り上げた川俣涼さんは、消防士から一転、エンジニアにジョブチェンジした1人だ。

彼も最初は転職のためではなく、家族の仕事の手伝いのためにホームページを作り始めた。しかし家族に喜ばれたことをきっかけに、プログラミングの勉強にのめり込み、転職を決めたという。

消防士からエンジニアへ、究極の「未経験転職」3つのポイント

だが、プログラミングと一言で言っても、Python、C言語、Java、C++......などたくさんある言語の中で、どれが自分に合うかは分からないもの。

そんな状態でプログラミングスクールに通い授業を受講するのは、少しハードルが高いだろう。まずは向き・不向きを確かめる意味でも、「本」から独学で勉強を始めてみたいという人が多数派のはずだ。

そこで今回は、JobPicksに経験談を投稿してくれたソフトウェアエンジニア・システムエンジニアが勧める「独学に必要な学びの姿勢」と「初心者が読むべき本」を見ていこう(注:ロールモデルの所属・肩書は、全て本人が投稿した時点の情報)。

独学で失敗しない「学び方」とは

最初に紹介するのは、独学でプログラミングを学んで就職・転職に成功した人の「学び方」だ。

ジュエリーデザイナーからエンジニア、UXデザイナーに転身した経験を持つ黒崎由華さん。彼女はジュエリーデザイナーの仕事をしながら、独学でプログラミングの勉強を始めたという。

IT関連のカンファレンス(会議)に顔を出してみたり、海外の書籍を買って翻訳しながら読んでみたり。コードの勉強には、本やインターネットを活用したりして、一心不乱に知識の吸収を続けた。

SNSを活用して5職種マスター、20代で実現する変幻自在キャリア

注目すべきは、その中で得た学びをSNSで発信し続けたこと。自然とプログラミング初心者の人をサポートしてくれるコミュニティとつながっていったそうだ。

そこでのやり取りで、おすすめ本や、自分に合ったプログラミング言語を教えてもらえた結果、途中で折れることなく勉強できて、未経験転職も成功させたのだ。

実は前述した川俣さんも、転職のきっかけはプログラミング勉強会で出会った人たちだったという。SNSや周りのコミュニティに発信・発表して、周囲のサポートを求めることは、有効な勉強法の一つなのだ。

また、下の記事で取り上げているDMM.comの石垣雅人さんは、就活の時期までプログラミング経験がなかったが、新卒でエンジニアに採用されている。

彼は就活直前にPHP(プログラミング言語の中でも初心者向きと言われる言語)の勉強本を読み、1カ月かけて「ECサイトもどき」を作った。それを使って面接で「問題解決力」をアピール。結果、たった1カ月のプログラミング経験でDMMのエンジニアとして入社できたのだ。

未経験エンジニアが20代部長に。DMM石垣雅人の成長支えた5つの掟

何でもいいので、簡単なサービスやゲームを作りながら学ぶというのは、多くのエンジニアが駆け出しの頃にやっているものだ。

実践しながら学ぶのが、一番効率が良い独学法なのだろう。

以上のことを前提として、プログラマー初心者が読むべき本を見ていこう。

スキルと思想法が学べる入門本

プログラミングを身に付けるには、基礎知識を効率的に把握する必要がある。

まずは、実際にコードを書くこと(コーディング)を通じて、コンピュータの根本的な理解を促すことができる本を見ていこう。

SansanのソフトウェアエンジニアShogo Arakawaさんは、初心者へのおすすめ本として『コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方』(オライリージャパン)を挙げている。

コンピュータシステムの理論と実装 - モダンなコンピュータの作り方

コンピュータの根本的な仕組みを実際にプログラミングで作ってみることで

> Amazonページはこちら

プログラムを書いて作る多くのソフトウェアは、ハードウェアを動かすためにある。だからこそ、まずはコンピュータの仕組みを理解しておくことが大事ということだ。

これは、プログラミングを習得したところで、インターネットの仕組みを知らなければWebサービスを開発・運営することができないのと同じ。基礎の重要性を軽んじてはならない。

これに近い文脈で、プロダクトマネージャーからソフトウェアエンジニアに転身したBASEの東口和暉さんは、『パターン、Wiki、XP ——時を超えた創造の原則』(技術評論社)を初心者におすすめしている。

パターン、Wiki、XP ―― 時を超えた創造の原則 WEB+DB PRESS plus

ソフトウェア技術は日々変化をしていて、目の前の技術的トレンドを追っていくのも大変です。 しかし、ある程度これまでのソフトウェア開発の歴史の流れの中で結び付けられると、「木を見て森を見ず」にならず、全体像の中で各個別技術に向き合うことにつながるでしょう。 本著では、現在に至るまでのソフトウェア開発の変遷、建築の世界からどのように影響を受けたのかを知ることができます。ソフトウェア開発の世界のロマンを感じられるかもしれません。

> Amazonページはこちら

歴史を知れば、その後「なぜ進化したのか」が分かるようになる。

著しく速いスピードで進化していく技術トレンドをキャッチアップし続けるためにも、プログラミング学習と同時にソフトウェア開発の変遷を学んでみるのが良さそうだ。

次は新卒でSlerになり、金融機関の文書管理システム開発やSFAシステム保守運用などを担っていた田井中 友裕さんの推薦書を紹介しよう。

『ロジカル・プレゼンテーション』(英治出版)という、プログラミングとはジャンルの異なる本を紹介しているが、なぜ初心者に「ロジカルシンキング」が必要なのか。田井中さんはこう述べている。

ロジカル・プレゼンテーション

前提として、僕は文系で全くITに関する知識が無い状態で入ったので、そのような方におすすめする書籍というテーマで考えました。 かなり悩んだのですが、ロジカル・プレゼンテーションが最初の一冊にはおすすめだと思いました。 個人的な考えですが、人が物事を処理するには、何よりも思考力という土台と直感的にアクションできる経験が必要です(右脳と左脳の処理に近い考えだと思います)。 多くの人は新しい業界に入るにあたって、まず最初にITの複雑な知識について学ぼうとすると思います。しかし、最初に必要なのはどのような情報も抽象的に解釈できる思考力だと思います。 その点で本書のロジカルシンキングの知識は、思考力の土台を構築してくれると思います。僕はロジカルシンキングが苦手なのですが、この本のおかげで最低限には考えられるようになったと思っています。 なので、まずはこのような思考力や抽象化力を高めてくれる書籍を数冊読んでから、専門書で学びを深めるステップがおすすめです。

> Amazonページはこちら

情報を抽象的に解釈できる思考力を付けることが、プログラミングやシステム設計の上達につながるということだ。

プログラミングは問題解決の手段であるという基本を忘れないためにも、合わせて読んでおきたい。

就・転職後のチーム開発で役立つ本

最初は1人で独学していた初心者プログラマーも、いざ就職・転職してプロジェクトに参加したら、チームでプロダクトを作るようになる。

その時に特に大切な力は、「自分以外のメンバーに伝わるコードを書く力」だ。

森田和樹さんのおすすめ本は、『CODE COMPLETE 上 完全なプログラミングを目指して』(日経BP)。

プログラミングの基礎部分の概念だけでなく、チームメンバーに伝えるコードを書く必要性を学びとることができる本のようだ。

CODE COMPLETE 上 完全なプログラミングを目指して

ソフトウェアエンジニアとしてプログラミング能力は必須能力ですが、 この本はプログラミングの基礎的な部分の概念が学べる本となっています。 プログラミングは機械に命令を与えるために記述しますが、 それと同時にチーム内で一緒にプログラミングをするメンバーへ向けても書く必要があります。 ソフトウェアはその名の通り「柔軟」にアップデートできることが非常に重要で、そのためにシンプルでわかりやすいソースコードを維持し続けなければなりません。 メンバーにわかりやすく、機械にもわかりやすく書くためにはどうしたらよいのか? そういった観点について新たな気づきを与えてくれたのが CODE COMPLETE でした。

> Amazonページはこちら

またソフトウェアエンジニア歴11年の山田圭一さんも、コードを「未来の自分や仲間」にも読みやすい状態にするのに役立つ本として『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』(オライリージャパン)を挙げている。

リーダブルコード

コードを書いている時に、誰が書いたか分からないと思っていたら、実は数

> Amazonページはこちら

自分目線の虫の目だけでなく、仲間目線の鳥の目を持つことが、プログラマーには求められているのだ。

この話に関連して、下のインタビュー記事にはGoogleでYouTubeやChromeの開発に携わっていた安田絹子さんが語る「Google流チーム開発のポイント」が数多く載っている。合わせて読んでみよう。

ソフトウェア開発の最重要スキルとは?グーグルのエンジニアに聞く

文:藤原環生、編集・デザイン:伊藤健吾、バナーフォーマット作成:國弘朋佳、バナー写真:iStock / Lightcome