非ITエンジニアがSwift学習をはじめてみる

未経験からのiOSアプリ開発 プログラミング

Swiftの学習記録をブログにしていくことにしました。
同じように非ITエンジニアや個人開発を志す方々の参考となれば幸いです。

今回は、「なぜ発信しようと思ったのか」や「発信によって提供できそうな価値」についてまずは整理しておこうと思います。

具体的な学習内容等は、次回以降に書きます。

Swift学習記録を発信しようと思った理由

これまで本ブログthanaism.comでは、「ある程度体系づけられた」情報に落とし込んでから記事を投稿してきました。

それを今回、あえてSwiftの学習記録という未完成段階を発信しようと思ったのは、大きく下記の2つの理由からです。

「過程」の発信理由
  1. 完成された情報だけでなく、過程の発信に大きな価値があることに気付いた
  2. 自分をよく見せようとすることに居心地の悪さを感じた

過程を発信する価値

過程を発信しようと思いつつも、後述の理由で少しためらっていた自分がいました。

そんな中で、たまたま見つけた下記のYouTube動画を見て過程発信の価値を再認識し、今回の記事作成に至っています。

【ブロガーは知ってるだけで得をする】「結果」だけでなく「過程」にも滅茶苦茶価値があるという話

私はこのヒトデさんという方、動画を見るまで全く知りませんでしたが、初見の私が実際にこうして行動に変化を起こしているので相当に訴求力のあるコンテンツだと思います。

基本的に私はコンテンツ発信のテク的な動画って見ただけで自分が強くなった気がしてそれで終わりという悪影響を懸念しており、あまり見ません。

「コンテンツを消費して、自分の今の状況で適用できる具体的なアクションプランに落とし込む」ってめちゃくちゃ思考と意思決定の労力が必要なので、無目的に見ると知識を得ているはずなのに実質は時間の浪費で終わるっていうのはある意味で必然的です。

自分をよく見せようとすることで生じる無理

以前、えらいてんちょうさんの『しょぼい起業で生きていく』を読んで、ブランディングのためにも自分の状況は「大本営発表」するのが基本だと学び、ネガティブな情報発信は基本的に避けることを励行してきました。

あなたの店がミッドウェー海戦で敗れたあとの太平洋戦争ほどに状況が悪くないのであれば、大本営発表を試みるのは悪い手段ではありません。我々は上場企業ではないのです。正しい決算をしなければいけないのは、税務署相手だけです。ウソばっかりついてるとバレて信用を失いますが、ウソにならない程度の「言い換え」をして、勢いを演出することは、悪いことではないばかりか、必要なことだと私は考えています。

『しょぼい起業で生きていく』えらいてんちょう著

ただ、一方で若干の居心地の悪さというか、『過程』を発信していくという点においては大本営発表が若干マッチしないのではという悩みも増えたのでした。

結論から言うと、私が本の内容を曲解していたと思います。

できないことをことさらネガティブに発信するのはダメというだけであって、意欲的な成長過程にあることを発信することは別に大本丸発表に背くものではないと最近ようやく気付きました。

そのキッカケとなったのは与沢翼さんの『お金の真理』を読んでいてブチ当たった以下の一節です。

隠しながら進む、実態よりよく見せて進むと思い切りやることができません。高くて大きい虚像と真実の自分との乖離に苦しみ、現実から目を背ける癖が付いていきます。結果、中途半端な人間のまま停滞が続くことになります。

『お金の真理』与沢翼著

この言葉を読んで、あまりに虚像を作りすぎるとハリボテのうえにハリボテを築くことになりかねないと感じました。

例えば、「Swift学習はじめましたが、意外と難しくない。これならすぐにアプリをリリースできそうですね」なんて吹聴してしまったとしたら、それ以降「え、プロトコルってなんですか?」みたいなマヌケな質問や発言はもうできないわけです。

大本丸発表はあくまで自分のベネフィットのために実施するものなので、「こんなこと言ったらしょぼいと思われるかな」だとか「これは言いづらいから隠してしまおう」というような臆病な自尊心尊大な羞恥心から来るものであってはいけません。

中島敦の山月記、大好きなんです。

どんな状況からのスタートか

未経験から学習を始めるといっても、これまでの人生の経験によって学習効率ってのは大きく変わると思います。私がどういうバックグラウンドでどの程度の学習スピードだったかという情報も、誰かが「これならできそう」というキッカケになるかもしれないので簡単に自己紹介をしておきます。

IT企業の経験は皆無

私は、まったくITに関係ない企業に院卒で入社して5年目のサラリーマンです。

そのため、本業への就業中にスキルアップすることはほぼなく、さらに妻と0歳の子供もおり、独身のころと比べると費やせる時間も大きく制約があります。けっして有利な環境ではないため、「この状況でもうまくいきましたよ」という事例をコンテンツにできれば多くの人の希望になると思っています。

そんな私がなぜSwiftを?という話ですが、いま勤めている会社に業界的な成長の限界を感じ始めたことが大きな理由です。

昔からコンピュータとか電子機器は好きなので、これからの人生で新しい技術にキャッチアップできないということが我慢なりませんでした。少なくとも今後しばらくは世界の中核を担うであろうITテクノロジーに追いついていかないと、自分もいずれ「パソコンを使いこなせないポンコツ管理職」的な存在に成り下がることは想像に難くありません。IT原始人になってしまうことは、自分として耐えがたい屈辱です。

そのため、Swiftに限らず以下の言語やフレームワークは並行して学習する予定です(または、すでに始めています)。

対象としている言語・フレームワーク等

VBA、Ruby on Rails、JavaScript、Swift、TypeScript、jQuery、Node.js、React、BootStrap、PHP

プログラミングの完全未経験ではない

ここで正直に申し上げると、私はITエンジニアとしての経験はないものの、大学時代は数値計算(コンピュータシミュレーション)関係の研究をしていて、Fortranで独自ソフトの開発を行っていました。これは一般より有利な点です。

とはいえ、研究系の数値計算で組むプログラムってそこまで複雑でもありません。複雑な運動方程式から微積演算をやらせるような複雑怪奇なプログラムはほぼないと言ってよく、実際の処理内容は離散化され単純な四則演算に落とし込まれています。

身も蓋もないことを言ってしまうと、数値計算は「いかにシンプルかつ実際の物理現象からみて妥当なアルゴリズムを構築するか」という数学的な能力の方が重要で、プログラミング能力という観点ではちょっと賢い中学生でもいける程度の内容しか使いません。

もっと具体的に言うと、配列とループ処理と入出力だけ理解していればいけます。競技プログラミングに少し近しいものがあるかもしれません。

VBAはすでに成功パターンを体験した

これを書いてしまうと、「全然未経験じゃないやんけ!」と言われそうなのですが、Excel VBAはそこそこ得意で収入を得られるレベルにまで到達した経験があります。

というのも上述のとおり、(非常にベーシックな知識しかないとはいえ)多少のプログラミングの心得はあったため、会社勤めが始まってからも業務で使えそうなExcel VBAについてはコツコツ独学を継続していました(真面目にやったのは4年くらい)。

完全に独学でしたが、相応に程度スキルアップできたと感じたので、2020年3月ごろからランサーズで案件をもらうようになりました。私の場合は、(かなり運がよかったのですが)ニッチなカテゴリで初っ端から高額な直接依頼が入ったためサービス内で一気に認定ランサーという最高ランクまで上がりました。

これにより、仕事を序盤から獲得しやすくなったという経緯があります。結果的に2020年4月は単月で40万円くらい発注をいただくことができたので、(IT未経験からという観点では)VBAは成功したと言えるのかなと思っています。

noteコンテストでランサーズ新しい働き方LABに優秀賞をもらった記事に詳しく書いています。

VBAという古臭い言語の経験があるからこそ提供できる価値

ITエンジニアは未経験でありつつも、プログラミングは未経験ではないので、私の記事は完全に未経験の方にとって共感性ある記録を提供するものではないかもしれません。

一方で、運の要素はあったにせよ、一定の成果をすでにVBAで出しているということから、再現性を追求した案件獲得までのプログラミング習得方法を模索可能なのではないかと思っています。

ベーシックな部分の勘ドコロを押さえた状態で、効率よく学習することを目指しているので、最短で成果を出したいという方が後から見て有益なものであることが重要です。

また、VBAは非常にレガシーな言語なので、いま流行りのモダンな言語とはだいぶ仕様が異なります。そういう意味では私はまだまだこれから自分の知らない概念的な理解を重ねていく必要がありますし、初心者と経験者の入り混じったちょうどいい塩梅の立ち位置かな、と。

プログラミング学習で最も大事だと感じること

プログラミングを志す過程で行き詰まるほとんどは、基本の繰り返し処理などは難なく理解できるものの、その先をどうすればいいのかということだと思います。

結局、プログラミングで大事なのは、実際にどう活用するのかに尽きる気がします。

たとえばクラスなどの抽象的な概念を理解するなら、単純にどう記述するかを理解するだけではほとんど意味がなくて、実務的にどういうシチュエーションで活用されるのか、というところにつながらないと漠然とした知識だけがあって成果物が生まれない状況になると思います。

今後はそういう部分をメインに書いていけたらいいなと考えています。今回は、だいぶ長くなってしまったのでこの辺りで締めます。


タナイ
タナイ

肝心のSwift学習ですが、とりあえず今朝、解説書を1冊ポチったところです(ポチっただけ)。

詳解 Swift 第5版
SBクリエイティブ
¥3,267(2020/08/25 16:33時点)
サッサと読んでレビューしますが、一応ネットの評判を十分に調べた上でチョイスしました。

ドキュメントの選定って地味に時間吸われる部分なので、積極的に私が人柱となりレビューすることで時短に繋げていただけたら嬉しいです。

コメント

タイトルとURLをコピーしました