プログラマーでもエンジニアでもない私がエンジニア転職に向けた取り組みとして「これまでプログラミングの独学に使ってきた技術書の遍歴」を、Qiitaの練習も兼ねて記事を書いてみました。
採用担当者の方が目にしたときに「この人が独学でなにを学んできたのか」がまとまってる記事になるといいですね(誰得感...)
想定読者
開発実務未経験でプログラミングの知識ゼロでまともなSESとかに行きたい方あるいはSES採用担当者様向けな内容になっているかなあと思います。私の学習履歴を並べた自己紹介的な内容ですね。(私はまだ転職できていませんが... プログラマーとして正社員として転職できました)
私について
- Not プログラマー
- Not エンジニア
- 完全に独学のみです。エンジニア転職活動中の者です。(この記事を書いた当時の話です)
**「なぜプログラマー/エンジニアを目指しているのか?」**ですが、私は平日・土日問わず週3回は足繁くライブやイベントに通うような人間だったのですが(プログラマーを目指すと決めてからは引退しました。時間がないので)、そこでテクノロジーを使った音楽イベントを目の当たりにして(それはとてもインディペンデントでかつとても刺激的な体験の数々でした)、「自分もやってみたい、プログラミングやエンジニアとして仕事がしたい」と強く思ったのが動機でありきっかけです。
※巷に溢れる「未経験からエンジニアへ!」という謳い文句に踊らされ、プログラミングがやりたいわけでもないのに「何から始めればいいのかわからない」「言語はなにが稼げますか?」「macとWindowsどっちがいいですか?Linuxなにそれ美味しいの?」と言った類の疑問はこのエントリを読んでも一切参考にならないと思われるので予めご了承願います。
私が技術書での独学を選んだ理由
利用してきた技術書を挙げる前に、まずは簡単に「なぜ技術書をメインとした学習をしようと考えたのか?」についてざっと振り返ります。
私事で恐縮ですが、私は未経験エンジニア採用担当あるいは市況目線からすると、わりと高齢の部類に属するため、「学歴や職務経歴といった変えられない過去」とは異なる部分、つまり『「学習の量と質で他の求職者との優位性を獲得する」プラス「これまでの他業種での経験やヒューマンスキル的な部分」を足した総合力で闘うしかない。』という戦略をはじめから立てています。
で、その「学習面の部分」において「技術書での独学と個人的にウマがあった」ということです。
逆にいうと「どこの馬の骨ともわからん情報商材や、ググって検索上位に出てきたブログ記事の内容に誤りがある可能性を、自分自身で精査できるだけの習熟度と判断力がまだないと考えていた」ため、「技術書が一番信頼に足る安心感があった」ということでもあります。
※ 〜技術書以外をメインの学習教材に選ばなかった理由〜
技術書メインの独学を始める前に、Web上でプログラミングを学べるサービスもいくつか利用しました。
例えば Progate なら「HTML, CSS, Sass, JavaScript, PHP, SQL, Git」は2周ほどやりました。全くのゼロから掴みの部分をなんとなく理解したので、その後に「ローカルに開発環境を作ってからやろう」と思い技術書メインに切り替えました。
Recursionも少しだけやってみたのですが、「CS(コンピュータサイエンス)の基礎から学ぶ」内容で、基本情報技術者試験に合格できたらやろうかなと思ってます。(RecursionのCTOの方はリファラルなしでFaceBookの採用面談を突破されたそうで、凄いですね)
Udemy等の動画教材はセールで安価で利用しやすいですが、わりと入門的な内容のコースが多く、「動画は振り返りに不向き」で頻繁に振り返りたい私の学習スタイルとは合わないためほぼ利用していません。
PGスクールは、受講生のツイート等を拝見した感じだと「内容レベルが低そう」「受講料が高額」だったので自分としては触手が動かなかったです。(極一部ですが超ハイレベルかつ実践的で受講生の転職実績も高いスクールも存じてはいるので、十把一絡げに「スクールは低レベル」と言うべきではないですし、この記事での本筋ではないためここではこれ以上触れません)
私の技術書遍歴
では早速いってみましょう。手をつけた時系列順に書いていきます。
大別すると下記の構成となっております。
- Web制作系
- フロントエンド系
- バックエンド(サーバサイド)系
- データベース系
- ツール系
- テクニカル・思想系
- 基本知識系
- IT資格系
- デザイン系
「長そうだしもっとサクッとまとまってないかな」という方向けにはこちらの積読ハウマッチ(読了)をご覧いただければ幸いです。
「これのあとはこれ」と関連ある技術を自分なりに数珠つなぎのように考えて学習してきたので、時系列で辿る事で「なぜこういう流れで学習してきたのか?」がわかる内容になっていると思います。
ちなみにですが、
・1冊の技術書は最低2周する
・読むだけではなく実際にコードを書く。暗記が必要な知識系は声に出しながら紙に書いて覚える。
という進め方を取っています。
Web制作系
「プログラミングをはじめる前に、まずはHTMLとCSSといったマークアップ言語から」ということでやりました。
出版年が2015年と若干古いですが、2020年に増補改訂版も出ているようです。内容的にはHTMLとCSSのあしらいでの躓きポイントとその解決法が非常にわかりやすく書かれており、有用でした。
CSSあるあるな「あちらを直せばこちらが崩れ、こちらを直せばあちらが崩れ」を極力減らすためのクラス設計の概念や手法とその実践方法が記された技術本です。
「"レイアウト"と"モジュール"をクラスの時点でわけようぜ!流派はいろいろあるけど実際やってみようか」ってことで、BEMやPRECSSでのコーディングについて実際にどう書くかが紹介されています。(私はPRECSS派です)。個人的に出会えて確実にCSS書くのがラクになった本です。
おそらく日本で最も売れているであろうWordPressの本。「HTMLとCSSもやってコーディングもできるから、どうせならそれらをWordPress化するところまでやってしまおう」と思い取り組みました。(3本くらいは作ったかな)
ハンズオン形式で実際に動的サイトを作るのですが、この手の本にありがちなサンプルサイトのデザインがそこまでダサくないのもポイント高い。
挫折率が高いと言われているそうですが、結構簡単でした。
WordPressはPHPで書かれているCMSなのですが、Web制作に分類されるマークアップ言語やCMSは私が学び身につけるべき本筋ではないのでこの辺でやめました。
フロントエンド系
「HTMLやCSSのマークアップ言語で静的サイトが作れるようになったら、次はブラウザ上で動的な表現ができるJavaScript!」
「Vue.jsやReactといったJSの流れを組むモダンなフロントエンドのフレームワークもまずはVanilla JSからやらなきゃね」という諸パイセン方の薫陶を受けてやりました。
超絶わかりやすいです。ハンズオン形式なのでコードを書いて「具体的に動かせる」のが本書の良いところ。
最終的には「Ajax通信を使った非同期処理で天気予報アプリをブラウザベースで実装する」ところまでいきます。著者の方の「初学者が変な書き方を身に付けないように」といった配慮も行き届いており良書。
みんなから掌を返したように「オワコン」扱いされるjQueryです。
個人的にこの本ははじめて「直感的にコードが書ける!」と感じさせてくれたという点で非常に良書だと思います。
ハンズオン形式なので「コードを書いた結果、具体的に動くものを見れる」のでなにをやっているのかがわかりやすい。
後述しますが、「バックエンドを主軸にする」と決めておきながらも「『独習PHP
」も理解できたし、JavaScriptの中級本もイケるのでは?」と「やっぱフロントも...」という未練がまだあった時期にやり始め、結構ボリュームがあるので手が回らなくなって自分の学習優先順位的に「途中までやって一旦進めるのをやめた」本です。
内容的には初級本よりつっこんだ内容なので、やる価値はあると感じました。
フロントやるときが来たら振り返ってやってみようと積んでる本です。
見た目は薄くて軽い本ですが、本質をついてくるような技術書で、正直読んだ頃の私のJavaScriptへの理解が浅かったこともあり半分くらい読んで「一旦やめよう」と積読行きした本です。
モダンフロントエンドの雄ことReactの入門書として名著の誉高きこちら。買ったのですが全くやる暇がなく完全に積読です。転職したらやります。
バックエンド(サーバサイド)系
「バックエンドできないと、なにがどう動いてるのかなんもわからんくない?」と思い、「エンジニア転職においてはバックエンドを主とする。」という己の進むべき基本となる方向性を決めた時期です。「若くて粋のいい人を少数精鋭で採用する傾向の高いモダンフロントエンドでは(自分の年齢的に)闘う土俵にすら上げてもらえないだろう」という戦略上の打算もあります。あと、WordPressで書いたPHPのコードが予想してたよりかは難しくなかったのもあり、わりと苦手意識もなくスンナリと「まずはPHPをメインにしよう」と決めました。(とはいえ、後述しますがここから結構方向性は変わります)
上記2冊を選んだ理由「書店でパラパラめくった感じで、環境構築から最後のページまで、わりと簡単そうですぐできそうだったから」です。
環境構築はLAMPPですし、内容もめちゃくちゃわかりやすかったです。
「セキュリティ面でコードの書き方に不安がある」的なレビューも見かけますが、初心者が最初にやるPHP学習の入門書としてはまずはこれから入るのはいいんじゃないでしょうか?
いわゆる初級から中級に位置するPHPの良書としてあげられていたのでやってみました。
非常に学びの多い技術書で、「PHPでプログラミングのイロハ」というものをこの本を通して学べたと感じます。
データベース系
サーバサイド(バックエンド)と切っても切れない関係、それがデータベース。
ということでSQLの入門書です。データベース(RDBMS)やSQLとひと口にいってもMySQL(MariaDB)、Postgre SQL、SQLite、OracleDB、MongoDB他と種類は多岐に渡り、versionとの対応関係や環境構築も各々異なっていたりと「まず学習を開始するまでがめんどくさくかつハマりやすい」のですが、ブラウザでSQL文を実行できる環境も出版社が用意してくれていて、サクッと学習に入れるのがよいです。
ツール系
「Git使えないとかありえんやろ」ということで、ご多分に漏れず私が最初に手にしたGit関連書籍も大ベストセラーなこの本です。
サブタイトルにもある通り、実際には「CLIをつかったGit操作を学べる本」というよりも、「GUIツールであるSourceTreeを使ってGitHubのリポジトリを一通り操作する方法」が学べる本です。
とはいえGitの概念の説明やSourseツリーの使い方は大変わかりやすく、その点では非常に有用かと思います。ページ数的にもコンパクトで、「数時間で読み終え実践できる」のもポイント高いです。
はい、正真正銘Gitの本です
選定理由は「定評が高い」以上(笑)
章立ててGitの操作が一通り網羅されており、実際に「CLIでローカル環境でコマンドを打つ演習」と「GitHubといったリモートリポジトリへCLIでコマンドを反映させる演習」「さらにはコンフリクトを意図的に発生させて解決する方法」まで網羅されています。
そのためといってはなんですが、結構分厚いです。が、内容はわかりやすいです。翻訳調の文章とだんだん波長が合い始めるあたりから俄然いい感じでサクサク進み出す技術書だと感じました。
あと、個人的に手を出した『独習◯◯』シリーズが2冊連続でアタリだったので、「ひょっとして独習シリーズって想像以上にどれも結構いい感じなのでは?」と思うようになりました。確かCのやつが版によって著者が違った気がするのですがいつかCやるときがきたら独習シリーズのものをやってみたいですね。
こちらはGitHubの本です。「GitとGitHubって違うの?」はい、違います。紛らわしいですね。「Gitの基本はわかったので、次はGitHubを学ぼう」と手をつけたのですが、とはいえこの本、タイトルから想像するのと内容は若干異なり「CLIでのGit操作のコマンド」「CLIからGitHubと連携するコマンド」「GitHubを使う時の運用手法として知られるGitHub Flow」の3点が非常にコンパクトにまとまっており、正直「最初にこれやれば上の2冊は後回しでよかったな」と感じさせてくれる内容で、非常に良書だと思いました。
「ファーストチョイスかつ万能型のGit本」として私のイチオシ書籍です。
CLIでのGitコマンド操作に味をしめ、というと聞こえはいいですが、「AmazonEC2が1年間無料で使えるので、そのインスタンスにLaravel, Apache, MariaDB, Linux(CentOS 7.x系), WordPressを入れて課題として成果物を作ろう」という"GitHub上で架空のプログラミングスクールもどき"をやってる現役エンジニアの方がいて、そこに参加さえてもらった時に「もっとターミナルでの操作を覚える必要がある」と感じ手を出した本です。Macのターミナルでコマンド入力からあれこれ操作する基本的なことが一通り学べます。
UNIT TESTの手法を学べる本です。(Javaについては後述しますが、)Javaの入門書を1冊終えた時点で「テスター募集とかあったら応募できるようにとりあえず備えておこう」と思ってやったやつです。
Eclipse(Javaの統合開発環境)で設定してコード書いてカバレッジ測って、みたいな基本的なことのやり方がわかるようになりました。
テクニカル・思想系
- [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック]
(https://www.amazon.co.jp/exec/obidos/ASIN/4873115655/tsundoku-hm-22)
いわずとしれた大ロングセラーにして名著です。おそらく私が始めて購入したOREILLY本がこれです。
「PHPの中級本もやり終え、言語によらずここらで一旦汎用的なあるべきプログラミングのお作法を入れておこう」と思い立って読んだ本です。
CSSはマークアップ言語の範疇なためプログラミング言語とは一線を画しますが、『CSS設計完全ガイド』の読後に得られた納得感と近しいものを感じました。
これを読んでから、「他人が読みやすいコードを意識してコードを書くことの重要性」に対してより一層意識が高くなりました(書けるとは言ってない)。
プログラマーが常に念頭に置いておくべき原理原則について書かれた本。
「中級者以上の方にとっては具体的な状況が目に浮かびやすいのだろうな」と思いながら噛み締めて読みました。
オンラインの出版記念セミナーイベントの視聴者プレゼント(良かった質問に選ばれて当選)し、贈呈された和田卓人氏のサイン入り本。
『テスト駆動開発』の翻訳者としてもお馴染みのプログラマー和田卓人氏が編集に携わったVOYAGE GROUPの開発にまつわるエンジニアインタビュー。事案ごとに紹介されていて現場未経験の私のような読者にもとてもイメージしやすい内容でした。
こんなん頂いといて「プログラマーになれませんでした」とかダサすぎるので、「ああ、君があの時の、あの、、、」といつか言われるように頑張ります。
この本の存在は知っていたのですが、和田卓人氏が紹介していたのを知り「やっぱ読むべきだな」と強く思い買ったまま積本になってるので、時間を作ってちゃんと読みます!
IT技術系雑誌『WEB+DB PRESS』の過去20年分がPDFで収録されたDVDと、刊行に合わせて現在の言語の立ち位置の総括(紙の雑誌の方にのみ収録)された号。
「最新技術やフレームワークは必ず時代の要請があって生まれてくる」とは先駆者の言ですが、過去を知ることで見えてくる今の言語やフレームワークの役割というのもあるだろうと思い立ち購入。ポツポツと読んでいます。
基本知識系
「そもそも、Webってどういう仕組みなの?」という疑問と、「プログラマー・エンジニア足るもの、Web自体の仕組みを最低限知っておく必要がある」ということで参照した本です。
出版された頃の時代背景としてHTTP1.1時代の話がメインではありますが、HTTPやURI、RESTといった概念について非常にわかりやすく書かれている言わずと知れた名著で、「こんなことも知らなかったんだなあ」と大変勉強になりました。
いわゆる「徳丸本」です。**バックエンド(サーバサイド)**の欄にあげたPHP入門本の2冊、特に『気づけば プロ並み PHP 改訂版』の方でセキュリティ面でのアドバイザーとして紙面にも度々登場する徳丸浩さんが書かれたセキュリティを考慮したコードの書き方のバイブル的技術書です。
ボリュームがすごすぎてまだ全ては読み切れていませんが、ローカル環境構築をしたうえで実際にコード書いて確認しながら脆弱性について学べるので大変ためになる本であることはいうまでもないです。
この流れで当然考えるのは「ネットワークってどういう仕組みなのか知っとかないとあかんやろ」ということで、こちらです。
TCP/IPについてズブのど素人でもわかりやすい内容で読みがいがありました。
というわけで、引き続きネットワーク系の本です。
タイトルからもわかるように主なトピックが細かい章ごとに会話形式で解説されるスタイルで非常にわかりやすいです。
「TCP/IPやOSI参照モデル、ポートとはなんぞや」ということがコンパクトに言葉で説明されていて理解しやすかったです。
TPC/IPの鉄板技術書。まだ全部は読み切れていませんが、資格取得の勉強が落ち着いたら読みきります。
Webの仕組み、ネットワークの仕組み、とくれば次はそう「プログラムってそもそもなんで動くん?」という疑問です。
書いたプログラムがコンピュータ内でどういうメカニズムで動くのか、コンピュータのハードウェア的な側面とソフトウェア的な側面で解説してくれる良書です。
「パソコンのこと何もわかってなかったんだな」という気づきを得られるとともに「プログラマーの嗜みとして最低限知っておくべきことはなにか?」と、その姿勢も含めて気づかせてくれる点でも非常に学びがありました。
昨年第3版も出版されたロングセラーな良書です。
オブジェクト指向プログラミングにおける考え方を捉える上でまさにうってつけの本だとおもます。
オブジェクト指向を活用したドメイン駆動設計(DDD)についてわかりやすく書かれた本。
私自身DDDについては勉強不足でこれからですが、オブジェクト指向に対する理解が深まったのでとてもよかったです。
スマホアプリ系
転職活動で利用するポートフォリオのWebアプリ作成について「アイデアを具現化させる能力」と、「それを作り上げるまでに費やす時間」を秤にかけた時、「独学だけでクオリティの高いアプリを作成するには時間がかかりすぎるかもしれない」と思い始め、「バックエンドを主軸とする戦略」に一旦見直しが入ります。
「未経験からのエンジニア転職市況においてスマホアプリ開発の需要はライバルがそこまで多くなさそうだな」と思い立ち、「バックエンド」「基本技術」と並行して「スマホアプリ」にも手を出し始めます。プログラミングは沼ですね。(時を同じくして「設計手法」や「アーキテクチャ」といった上流への志向も芽生え始め、まだこの時点では沼の序章といった感じです)
「スマホアプリとC++になんの関係があるんだよ」というツッコミがきそうですが、スマホアプリ開発で使われるフレームワークであるFlutter(Dart言語ですね。DartはJavaScriptが元になってますが、ほとんどJavaみたいな書き心地であることはこの後でJavaを学習し始めてから知ることになります。)とSwiftを両方同時に学習しはじめてからほどなくして気づいたんですね、「オブジェクト指向でのプログラミングがよくわかっていないからコードが書けないし読んでもいまいちピンときていない」ということに。
というわけで、「OOP(オブジェクト指向プログラミング)がわかりやすそうだった」という理由でこの本を選びました。狙い通り、OOPでのプログラミングとはどう書くのかがなんとなく掴めたきっかけになりました。
導入部分として「Cのポインタと構造体」についても触れていて「ふむふむ」となってから「C++のクラスと継承」に関するコードにとっていく構成になってるのも、理解しやすかったです。
ぶっちゃけ本の装丁が好みでどうしてもこの本をやりたくなった理由はそこもあります笑
詳細かつ丁寧でわかりやすいです。が分厚いです。Flutter公式が出しているハンズオン形式のチュートリアルをやりながら、辞書的に使う本かなと思います。
正直まだ全体を理解したとは言い難く、長く付き合っていく本かなと。
実はこの頃から某スマホアプリ開発会社さまの主催するエンジニアコミュニティに参加させていただくことになり、毎週エンジニアの方と一緒にリモートでコミュニケーションをとりながら開発課題を進めたりレビューしたり、共同で開発したりといった経験をしており、テックリードの方も「これいいよ」と勧められて手に取った書籍でもあります。
- [SwiftUI 徹底入門]
(https://www.amazon.co.jp/exec/obidos/ASIN/4815604061/tsundoku-hm-22)
ハンズオン形式のSwiftの書き方を学べます。SwiftにもFlutter同様にWeb上で学べる公式チュートリアルがありそちらもやりましたが、「もう少し確認したい」と思いこちらでも学習しました。
IT資格系
「基本知識系で学んだことを証明するものを持つのは採用目線では評価しやすいのでは?」と思い、資格取得に目覚めました。
IPAの資格
基本情報技術者試験
ということで、まずはこれまで学んできたことがもっとも反映されやすく、なおかつ資格として最も有用性が高いであろう「基本情報技術者試験」です。
- [イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室] (https://www.amazon.co.jp/dp/B0821W2G51/ref=cm_sw_r_tw_dp_P1JJQS2V9TTP0PC6KQ88)
基本情報施術者試験の午後で必須問題となる「擬似言語」問題、いわゆる「データ構造とアルゴリズム」対策のテキストです。
トレースして解きながら身につけるスタイル
- [問題解決力を鍛える!アルゴリズムとデータ構造] (https://www.amazon.co.jp/exec/obidos/ASIN/4065128447/tsundoku-hm-22)
そのものズバリ「アルゴリズムとデータ構造」について書かれた本です。
基本情報対策でここまでやる必要はないと思います。一説によると「競技プログラミング(競プロ)対策本として有用」とのことですが、私自身競プロやる余裕は微塵もないのでその辺に関してはわかりません。
基本情報の午後試験対策として購入。よく出る問題パターンの分析とその解法といった内容です。午前試験突破できる実力がついたら、まずはこれをやってから午後試験の過去問を狙いを絞りながらも広範囲に解くと、相乗効果で安定した得点に結びつきやすいのではないでしょうか?(とはいえ試験は一発勝負なので対策は満遍なく行うのがセオリーかと思います)
基本情報技術者の午後試験の選択言語は「C/アセンブラ/Java/Python/表計算」の中からひとつ選択が必須です。というわけで私はJavaを選択しました。
「実務未経験者は表計算を選択するのが無難かつセオリー」という考え方も一理ありますが、
①これまですでに学んできたオブジェクト指向の知識を生かしやすい言語はJava
②基本情報技術者試験対策で学んだJavaの知識を他のベンダー資格で生かしやすいのもJava
という2点を鑑み、合理的にJavaを選択しました。(あと単純に「表計算」を選んだ場合、その習得に費やしたコストを基本情報・午後試験でしか回収できないのでコスパが良くないというのもあります。)
というわけでJavaの入門書です。「この2点セットでひとつ」な内容です。
ところで、基本情報技術者試験ですが、今春受験した結果なんと午後試験をあと数点というところで落としてしまいました...
事の顛末は下記のエントリをご参照いただければ幸いです。
情報セキュリティマネージメント試験
ITパスポート
はい、基本情報技術者試験の項で触れた通り、基本情報の午前試験は突破しましたが午後試験で合格に数点足りず落としてしまうという失態を演じてしまい(詳細は上のエントリをご参照ください)、保険として即申し込んで受験した資格です。
いずれも一発合格しましたが、テキスト等は特に使用しておりません。
ベンダー資格
Java SE Silver
基本情報・午後の言語選択とオブジェクト指向とJavaを総動員させた資格を取ろうという魂胆でJava Silverです。通称「黒本」とってもわかりやすい!
LPIC1
「GitやmacOSターミナルの学習で培った知識」と「バックエンドの現場でまず間違いなく使うであろう知識」となると、そう、Linuxです。というわけでLPICです。
LPIC資格は「最もグレードが下のランクの試験に合格しないと上位に位置する資格を受験できない」システムなため、まずはLPIC1の取得を目指します。そのための導入となる書籍です。
環境構築方法も掲載されていて、VirtualBox(仮想環境)にゲストOSとなるLinuxをインストールして、ホストOS(今使ってるこのmac)はそのままにLinuxをCLIで操作する感じです。
Linuxのコマンド自体はmacOSのターミナルコマンドと被る部分も多々あるのでサクッと終わりました。
LPIC1取得に必要な内容が網羅されていると定評のある書籍です。実際にLinux(CentOSとUbuntu両方)をローカル環境を構築し、テーマ別の各章で紹介されているコマンドをひたすら打って覚えていくといった内容です。
環境構築の方法も掲載されていて(上記の『1週間で〜』と同じくVurtualBoxとゲストOSのディスクイメージを使用)、実際その通りにやればできる感じなのでそこで躓く心配はないかと思われます。
掲載されているLinuxコマンドは上記で取り上げた『1週間で〜』よりもだいぶ突っ込んだ(とはいえレベル1)な内容で、「説明を読む」→「コマンドを打って挙動を確認する」→「合わせ技なコマンドを試して打ち込んでみる」とひたすら繰り返して慣れて覚えるしかないですね。章末に練習問題もありますが量が少ないので、別途『問題集』やPing-tといった『WEB問題集』で「試験に慣れる」対策も必要そうです。(まだ受験していないのですが近々受験します)
デザイン系
HTMLやCSSといったマークアップ言語の習得時に「そもそもデザインのセオリーを知らなさすぎでは?」と思い参考にしたテキストです。
個人的には「コンテンツを作る側に立つと、タイポグラフィやフォントに対する基礎知識は絶対に身につけなければならないな(ダサくなるから)」と感じています。
「モノやコトをデザインという視点で見る方法を具体的に学べる」入門書という位置づけかと思われます。普段何気なく捉えている広告や街往く人々の纏う服の色遣いまで、見え方と捉え方が変わると思います。
Webページにしろポスターにしろ名刺にしろ、「区切られた空間に画像や絵や写真や文字をいかに配置していくべきか」のセオリーを学べます。
これから学習予定の技術書
「まだ読み始めていない」または「読み終えてはいないが学習計画には入っている」技術書に関しては、こちらの積読ハウマッチ(積読) を参照していただけると幸いです。
主だったところですと
・『Java言語で学ぶデザインパターン入門』
・『レガシーコード改善入門』
・『ドメイン駆動設計入門』
・『Clean Code』
・『テスト駆動開発』
とかその辺です。
設計手法やアーキテクチャー等、上流工程で必要な知識にはずっと興味があるのですがなかなか手が回っていないのが実情でして、サクッと資格取ってさっさと先に進みたいですね!
後記
いかがだったでしょうか?
冒頭の想定読者の項でも述べた通り「自己紹介的な内容」なので「誰得...」感満載ですが、改めてまとめてみると「Javaの大規模案件をやってみたい」「FlutterとSwiftでスマホアプリ開発がしたい」「低レイヤー言語もいつかやってきたいが、Cのポインタと構造体の概念をサラッと学んだ程度なのでCやるにしても先は長い...」「MRやAR領域に興味があるが未経験から入れるところはなさそうなので、キャリアプランの一部として描いてはいる」人というのが基本的な路線としてありますね(MRとか本編には一文字も出てきませんが)。あとRustは個人的にいずれ書いてみたい言語です。
現代の未経験からのエンジニア転職者が手を出しそうなRuby on Rails(RoR)やPythonに一切手を出さなかったのは「小規模案件の募集に大多数から応募が殺到してそうなイメージがあり、意図的に避ける戦略を取ったから」です。弾かれる率もあがるので。
絶賛転職活動中です!
「未経験お断りだったけどこいつなら意外と研修とかいらなさそうだしすんなりイケんじゃね?」とお考えのエンジニア採用担当者は是非ご連絡いただけると幸いです。(TwitterのリプライからDMという流れがスムーズかと思われます)よろしくお願いします!
追記
2021年11月1日付けでSES企業にエンジニア採用されました。
早速初月1日からテスター案件にアサインされ、テストケース作成したりしています。
主な言語はJavaなのでいまのところ大きな混乱もなく、コードを読む機会もあり「実際の業務系アプリのコードってこんな感じなんだなあ。クラスや変数・定数の数も命名規則等もテキストとは異なっており、アプリ間の影響関係も複雑で、現場で実際のコードに慣れないとコードやドキュメント読めばすぐに理解できるってわけにはいかないなあ」となってるところです。
これからは一人前のプログラマー、そしてエンジニアとなるべくより一層精進したく存じます!
というわけで、最近はこちらを読んでいます。
JUnitによる単体テストコードの書き方ややり方を解説した技術書を以前触れましたが、こちらはテストの定義の仕方やドキュメントの作成方法といった、ソフトウェアテストという工程全般に関する技術書で、これを読んだおかげか実際に振られたタスクにも怯まずに挑めているので読んでよかったと思います。