【じっくりSw1ftUI】ちょいコラ〜失敗しない技術書の選びかた
また10記事くらい書いてちょうどシンタックス(基本文法)編もひととおり終わったので、ここら辺で久しぶりに💦前回のちょいコラ
の最後で、
じゃあ、良い技術書ってどんな本👀?
を書いてこ🕺また、10記事くらい書いた後に、、、
て書いてたので、今回は簡単に、
まずは、技術系の本選び
Swiftの学習に特化した本の選び方を紹介
もちろん毎度同じように
言われなくてもそんなこと当たり前
ってことを、
自分の持論や経験談
で書いてるだけなので、あくまでも一意見と書評くらいに考えて気軽に読んでね(てか、それ以上の何物でもない藁🤣)
まとめ:結局、良い技術書とは(結論先出し)
前提:
自分の学習目的とレベルに見合った本の中で、
1冊の本で
ひとりの作者が
SwiftやiOSの概要
本全体で使うSwiftの基本文法
SwiftUIの実際の組み込み
アプリの公開申請
までを網羅(=網羅性)してて、しかも
カラーの図
実際に動くサンプルコード
が充実してる=(充実性)
本を買うってだけ。それを
で書いてるとおり、
自分の進度に合わせて、3冊くらい繰り返せば
寝ててもお釣りが来るだろうな。
ま、実は、
自分のレベルに見合った本を見つける嗅覚を身につける
までが一番難しかったりするんだけどね。
それは流石にいくつか何回か失敗してみないとわからないからね🧐
技術書は紙よりはデジタルで買うことをオススメするや
10年以上、いろんな技術書を買った経験から、紙の本は
検索しにくい
置く場所に困る
年数が経てば粗大ゴミになるだけ
スマホと違って持ち歩くときに結構な大荷物になる
ってデメリットしかないので〜〜〜〜!
さらに追記
ま、実は開発作業で一番大事なのは、
テスト・カバレッジ=網羅性
だったりするんだけど、以下に書いてる
カバレッジがない本ばかり読んで学んだ人に、
カバレッジて考え方が身につくと思うかい?
何かあるたびに、
あれもしなきゃこれもしなきゃ、
努力が足りない、学びが足りない
て
自分で思ったり、指摘して悦に浸るのを是とする風習=空気を当たり前としてしまう
👉レジティマシー
を鵜呑みにして盲信し、駄本ばかり発行する暇があったら、
元々、必要最低限な素養が一冊で身につく本
👉当たり前を当たり前に、何が当たり前かを学べる本を作った方が誰にとっても有益だと思うけどね👀
日本の技術書には、木を見て森を見ずな本しかない。
ここにも国民性が現れてる
一冊でまとめられることを、
わざわざ複数の本に分けて複雑化し、
本の本来の役割を忘れて、
簡単なことをわざわざ難しくしかできず、
却って社会に不利益しか残さない
てゆーね笑😆ま、やらないだろうけど、ホントに常に最先端の技術を学びたきゃ、
技術書やる前に
英語を辞書なしで8割読めるようになりな!
に行き着くんだが🥱
鉄則①自分の学びの目的に合った本を選ぶ(Swiftに限らず技術系全般)
ま、これは当たり前の話なんだけど、技術系の本を買うって時点で、
何かしらの目的
例えば
職場でマイクロソフトオフィスを使わないといけなくなった
就活や転活でJavaやVBAの資格を取得したい
スマホアプリを作りたい、WEBを作りたい、興味があるので学びたい
現在の業務でやったことがないスマホアプリでビーコンやAIを導入したサービスをやることになった
などなど、技術書を買うとか手にする時点で何かしら、必ず目的があるはず。
あるプログラミング言語の特化した一部のだけを学びたい人やスマホアプリを作りたいだけの人が、MOS資格の本を買って学んでも、
(全く意味がないとは言わないが、)
費用対効果の面で即効性は少ない
し、まずは先に学ぶことが学び終わってから、他に興味があることは学べば良いので、あまり意味はないし、
挫折しやすい
まずは自分の目的に合った本選びをしよう
こーゆーことを書くと
で書いた
プロスペクト理論
で、
「全ての学びに意味のないことなんてない」
「学ぶことに意義がある」
みたいな
美徳論
を振りかざす輩が必ず一定数いるんだけど、脳科学的にも、
人間は、行動の結果で何かしらの報酬(見返り)を求める生き物
だし、
見返りもないのに続けられる人なんてまずいない。
異次元の少子化対策で出生率を増やすって言いながら、
すでに子供のいる世帯の支援を拡充する
みたいな官僚的な答弁をやる思考で学ぶわけじゃないでしょ?
今までいろんな人を見て経験からもだけど、
WEBやりたいのに、官僚的な思考でわざわざ遠回りして、
なぜかMOSから始めてしまうような人で、長続きした人を見たことはない
WEBをやりたいなら最初からHTMLやらCSS、JavaScript、PHPなんかを学ぼう
iOSをやりたいなら、Macをまず買おう!
①のまとめ
さっき出した例で解説しとくと
職場でマイクロソフトオフィスを使わないといけなくなった👉MOS資格を取ろう
就活や転活でJavaやVBA、MOSなんかの資格を取得したい👉資格の本をやりながら、ゼロから簡単な作品を作ってみよう
スマホアプリを作りたい、WEBを作りたい、興味があるので学びたい👉アプリならSwiftかKotlin、WEBならHTMLやCSS、JavaScript、PHPをやろう
現在の業務でやったことがないスマホアプリでビーコンやAIを導入したサービスをやることになった👉一部の機能(CoreMLなど)に特化した本を買おう
鉄則②今の自分のレベルに合った本を選ぶ(Swiftに限らず技術系全般)
これも結構多い。
人と比較して、見栄ばかりを張ろうとして自分と向き合っていないのか
プログラミングはおろかPCに触ったことすらなかった人がいきなり、
みたいな本だけを買ってしまうようなケース。しかも、
素直に分からない
って言えず、
「これが分からないのは自分がまだ未熟だから」
て人も多いし、
で書いたような、開発RPGをやってるだけの自称、プロエンジニアさんからどの現場でもよく聞くのが、
「それを読み解ける=行間を読めるレベルまで自分が達してないだけ」
って言葉。
実際、オイラがSwiftUIまでひととおりSwift全般の知識に触れて、自分で記事を書くようになってから確信に変わったけど、
エンジニア、特に日本のエンジニアさんはあくまでも、
開発とか保守、メンテナンスなどの情報工学の専門知識を学んでるだけな人
であって、
デザインとか教育、育成、トレーニング、資料作りに関しては素人
👉よく言われる「自分が分かってることは説明しなくても分かって当たり前」=理系思考
で、自分の説明力の無さ、ミニマル(最低限)な表現が悪いことに気づいておらず、
自分の力不足を棚に上げて、生徒とか受け手の努力不足を責める傾向が強い
実際に、動かしながら読んで行っても、
サンプルコードがバージョンアップとかコードの破壊的な変更なんかもない部分で明らかに間違ってるコードを頭の中だけで書いて載せていたりね💦
(日本の書籍では本当に、多い)
それが、日本でプログラミングとかITの学びが普及しない最大要因
オイラは、30歳まで旧司法試験を受験してたバリバリ文系から今の職種に転職した人なので
文系では
行間を読ませる書き方しかできないのは、
作者に正確に簡潔にわかりやすく物事を表現して伝える力=表現力
がないから
って思うのは常識だし、
行間を読むなんて言葉を多用してる時点でそいつは自分に表現力がありませんて豪語してると思っていい
って思われるのが普通なんだが、そーゆー文芸的な教育をきちんと受けてない人が圧倒的多数な理系ではなぜか、
「言わなくてもこれくらいは自己判断で理解して当たり前」
「理解できないのはそいつの力不足」
が普通に罷り通ってるからね〜〜〜〜🧐
まさに、
プログラミングやIT=努力、職人芸
と勘違いしてる
努力教の信者か職人気取りの巣窟
プログラミングやITなんて、そもそも
ユビキタス=どんな人でも勉強なんかしなくても、デジタルの恩恵にあやかれる社会👉職人芸とか努力なんか不要になる便利な社会
の実現を目指して、作られてるものなのに、そこに努力とか職人みたいな信念みたいなものを持ち込んでる時点で、そいつ自身がそもそも、
デジタルとかプログラミング、ITってものを実は分かっていない
👉お前がわかりやすく伝える術を身につける方が先だろ
ってだけの話。
実際、そーゆー余計な美徳論をITに持ち込んでる人が多い現場ほど、
育成ができてない👉慢性的な人材不足
短絡的に思い込みでロジックを組み、バグが多発して事故と障害のオンパレード👉炎上
必要最低限(ミニマル)な要件の定義や連携、改修しやすいコードなんかも組めてない👉炎上と納期遅れ
になってるからね藁🤣
にも関わらず、最近の「○○という病」と付けたげる病の出版業界で、すっげ〜昔からよく出される本の技術書のタイトルなんだけど、
「〇〇入門」
「○日でマスター」
「独習○○」
「やさしい○○」
系のタイトルの本は、あくまでも、そーゆー教える力や伝える力、表現力がない、行間を読ませるような表現しかできない人達が、
専門学校〜大学院なんかで、情報系の基礎教育を受けてる人にとって
って枕詞が付く、そーゆー人たち向けって前提で書いてるだけなので、鵜呑みにしない方がいいし、オイラもプログラミング言語をやり始めた十数年まえに買い漁ったことがあったけど、
プログラミングを開発現場でやったことがない人とか学校で基礎を学んだことがない人は手に取らない方がいい。
などなど。
オイラのこれまでのSwiftUIの連載を見てもらってもわかると思うけど、
この本、何をもってマスターって言ってんの?
の話。オイラは、Swiftをやり始めて今年で8年目になるけど、未だに自分がマスターしたなんて思ってことすらないし、特に最新のプログラミング言語は常に進化して毎年新しいアップグレードが行われて、新機能(今年だとVisionOSかな)が追加されたりなので、
この本だけでマスターなんてできるわけないのに、
なんでマスターなんて言葉付けてんの?無責任だし、詐欺じゃね?
としか思わない。詳細な書評は次章以降で書くけどね👀💦
②のまとめ
伝説のSEにして研究者であるドナルド・クヌース
が、
を提唱して、
を出版して早、30年経つのに、日本では未だに
文芸的にきちんと書けてる技術書を見たことがない
母国語で文芸的な書籍を書けてないてことは、
普段の現場なんかで書いてるコードも確実に、
可読性(読みやすい)コードを書けてない
👉バグや高コスト=脳筋なシステムの温床
ってことに他ならないからね。
ここからはこのマガジンが【開発iOS】ってこともあるし、あくまでも、【じっくりSw1ftUI】てシリーズの合間のコラムとして書いてるので、
Swiftの学びに特化した内容に入ってくね〜〜〜
鉄則③作る系にのみ特化した本は買わない(Swift)
2019~2021年当時にやってた教材を書評も兼ねて〜〜〜
すでに数年経ってて確かiOS12~13くらいでほとんど化石レベルで内容は止まってるのであくまでも参考として挙げておくので、
早とちりして買わないでね〜〜〜
全く他の人にお勧めしてる本ではないので。
これ買ってやって理解した気にはなれても、いざ自分で作ろうとするのには
かなりな遠回りになる=お金の無駄
◆たった2日でマスターできるiPhoneアプリ開発集中講座シリーズ
作る系の本。この本で、
何をもって、たった2日でSwiftUIをマスターできると豪語してるのか不明。
3周くらい回してみたけど、これでSwiftUIてかSwift自体をマスターできるって人がいたら、逆に大丈夫かな?って思われるくらい内容が薄い。
◆SwiftUIではじめるiPhoneアプリプログラミング入門
最初にあげた本と同じく作り系の本。おみくじとかスライドショーみたいな実際にアプリやWebサイトなんかでよく見る機能の実践例を8つくらい動かしながら学べる。
ただし、動かす以外の解説が薄すぎる。
◆詳細!SwiftUI iPhoneアプリ開発入門ノートシリーズ
結構、UIKit時代から売れてるシリーズの一つで、SwiftUIでも同じ構成って感じなんだけど、ケーススタディな感じで、実際に作るところから入って、章末とか間に、関連するSwiftの基本文法とか補足の説明なんかが載ってる感じ。
確かにSwiftがどんなものかをさらっと理解した気になる=イメージする程度では、良い本なんだけど、いざ自分で作ろうとするには、Swiftの基本文法の解説が薄すぎる上に、動かした後で解説に入っているので理解しにくいか読み流す人が多いと思われる。
◆SwiftUI徹底入門
徹底入門って銘打っているだけあって、上述した本に比べて、非常に内容は詳しいし、④で紹介する本に比べて、SwiftUIに特化したメソッドなんかの解説も充実。
ただし、一番の問題は、著者に表現力がないのか前置きもなく、メソッドの解説なんかがいきなり分かってる前提で、読み方を書いていなかったり、最大の問題点は、
15章くらい確かあるんだけど、全般を通して作ろうとしてるタピオカのアプリが、実は後半(たしか13〜14章の機能)がDLした完成サンプルをそのまま実行しても実は動かないので、
徹底入門で入門って銘を打ってるのに、全然入門レベルではない
ってところ。
③のまとめ
作らせて、なんとなくイメージだけで理解させた気にさせるだけで、
基本文法と繋がらない構成とかサンプル自体が動かないのであれば、結局解説したことにはならない。
そこは読んだ人間の理解力に任せるとか繋げるのは読書の仕事ってゆースタンスならば、入門とかマスターとつけない方がいい。
正直、買わなくていい本が殆ど。
鉄則④作る系が載っていない=基本文法だけしか載っていない本は買わない(Swift)
◆詳解Swiftシリーズ
本自体が端書きで銘打ってるんだけど、あくまでも辞書がわりで使う、文法を徹底解説した本👉SwiftUIフレームワークを使って実際のアプリを作ることは最終章の数ページ以外全く取り扱っていない。
基本文法の詳しい解説を知りたい人は辞書がわりで作業台の近くに置いとけば程度。
ただし、文章に癖があり過ぎて、理系のあの独特の言い回し
「〇〇できます。」でいいのを、「〇〇することができます。」連発
(洋書の文章をGoogle翻訳かなんかの翻訳アプリを使って、そのまま訳したものをベタ貼りしただけの時に多い表現)
で非常に読みにくいし、何が言いたいのか伝わらない。
しかも、詳しく解説をしてるようで、前提理解を促す解説は端折ってる(「分かっていて当たり前」感)ので、この本だけを読んで、実際に動かしもせずに、Swiftを理解したとか豪語してる人が非常に危険。
ちなみに帯に、「SwiftUIに備えよ!」みたいなことを書いてて、SwiftUIの内容が充実してるように見せかけて、読んでも最終章の数ページ以外はSwiftUIフレームワークのことはほぼ何も載っていないって優れもの。
SwiftUIフレームワークで実践するサンプルも示さずにマニアックにライブラリで公開されてるプロトコルなんかを羅列だけして何の意味があるんだろう🧐
って感じ。
プロトコルなんて自分で作ることもできるのに。。。
文法のみの本では他にも、
みたいなシリーズもあるんだけど、さっき書いた本と同じで、実際のフレームワークを使った例がないので繋がらない。
④のまとめ
あくまでも、大学の研究室でSwiftって文法自体を極めたいって人がやればいいだけの本ばかり。
いくら文法だけをやっても、実際にそれを使ってアプリを作れるようにならないのであれば殆どの人にこれだけを買う意味はない。
⑤で書いてる本でやれば正直、実践で使う基本文法の理解は十分
鉄則⑤1冊の本で、ひとりの作者がSwiftやiOSの概要から入り、その本全体で使うSwiftの基本文法、SwiftUIの実際の組み込み、アプリの公開申請まで網羅して、カラーの図や実際に動くサンプルコードが充実してる本を買う(Swift)
すまないが日本語の本でSwiftUIについて、ここまで充実してる本はオイラは見たことない。断言してもいいが、おそらくない。てか、日本の出版業界全体が、
で書いた
コンピテンシートラップ:目先の売上げとか収益
でしか動けてないし、
本=紙ってレジティマシーに縛られてる
せいか産業界からの需要も少なく、本を出してもヒットしない=高収益が見込めない
SwiftUI
の本なんて、最近は、2日でマスター以外、毎年出してる本を見たことない。
日本の本で唯一良かったのは、UIKit時代の7年くらい前に買った本で、
この人の本が良かったし、これを全般しっかり学んだ上で、あとはたまたまその後で、
のプロットに使った
てサイトを見つけて、時間があるときにゆっくりじっくり学べたくらい。そんな状況なので、
でも書いた
と現在、毎週くらいで記事にしてる
を使って学び直しも兼ねてやってるくらい。
⑤のまとめ
章見出しの項目を箇条書きにして書き出すけど、
1冊の本で
ひとりの作者が
SwiftやiOSの概要
本全体で使うSwiftの基本文法
SwiftUIの実際の組み込み
アプリの公開申請
までを網羅(=網羅性)してて、しかも
カラーの図
実際に動くサンプルコード
が充実してる=(充実性)本を買うってだけ
以上なんだけど、見ていてわかると思うけど、これって、本を読む読者側からしたら、
必要最低限できていて
当たり前
じゃね?👀裏を返すと、その必要最低限すら備わっていないような、本ばかり出していて、
Swiftの本は出しても売れない
みたいな感じで、そもそもその前に、自分達で、
読者=学ぶ側が何を求めてるか
👉ニーズとウォンツ
すら知ろうとしてないんだから、そんなクズ本を出しても
売れなくて当たり前
でしょ。まさに、
結果には必ず原因があるし、火のない所に煙は立たない
を地で行ってるだけ。本が売れないのではなく、正確には、
日本の出版業界で売れる本を作ろうとすらしてないだけでしょ👀
ま、だからこそ、
オイラはそんないつ出るかも分からない本を待つより、
自分の学びをnoteで公開した方が裾野が広がる
って考えて、
プロットだけ拝借しながら、全てサンプルコードも自分で起こして書いてるんだけどね💦もちろん、自分の記事がいずれ本になるなんて考えてるわけもなく(てか、1記事であの文字数を紙の本にするのは無理だろ藁🤣)
そんな当たり前のことをやれずに、
「基本文法を見返したいときはあの本を使って、実際の組み込むコードで行き詰まったら、別のこの本を使って、公開のときはまた別の本(日本にはまずこんな本はないけどな)を使ってって感じで、何冊も本を使い分けないといけない上に、内容も古く、解説も充実してないって本でしか学べない環境で開発する」
のと、
「最新の内容で、きちんと解説が充実してる一冊の本だけを使って開発できる環境で開発する」
のどちらがより充実したアプリができるだろうね。
(ま、文章に起こしてるだけでも、どちらがデザインみたいな他のことに神経を使えるか明らかだとは思うけどね。)
前者と後者で差がつかないわけないだろっと!
日本のSwift系の技術書には碌なものがなかったし、これからも碌なものがないって分かってたので、
で、敢えて、半年〜1年くらいSwift自体をお休みしても、洋書をスラスラ読めるようになればお釣りが来ると踏んで、やってた次第。そして、今に至るってゆーね。
(ま、これも目先のタイパだのコスパ、他者との競争ってゆー
で目先にばかり反応して、立ち止まる勇気もない人には無理だろうし、そんな人がゼロからプログラミングをやろうとしても、文法とかを理解せずに実践だけやって作れた気になって終わるだけだろうから、習得は無理だろうけどね💦)
さてと、次回からは、
いよいよ、SwiftUIフレームワークの実践編
で、まずはSwiftUIフレームワークを使った開発環境であるXcode自体の概要を説明した
第16章:SwiftUIの概要
に入ってく🕺