ゴリブロっ!

28歳元商社営業マンが完全未経験から3ヶ月でITエンジニアになれるのか!?毎日をリアルタイムでお届け。

エンジニアを目指して1ヵ月!暗中模索! 〜学習開始から31日目〜 実録!20代後半元商社営業が完全未経験からITエンジニアになれるのか。その④

どうも、ゴリ男です。

(学習を始めて31日目)

 

本日は、この1ヶ月・そして現在の、学習内容を断片的に紹介していきたいと思います。ゴリ男は何をしているのか、どんな思考なのか。自身のための記録としても書いていきたいと思います。

【本日の目次】

  1. HTML&CSS
  2. 基本情報処理技術者試験   
  3. 学習していく中で芽生えたマインド

 以上

 

1. HTML & CSS

現在は、プログラミングスクールにてRuby/Ruby on Railsコースの学習を進めています。3月から始まったカリキュラムには、以下の項目で課題をこなしていくスタイルです。

カリキュラム内容

基礎編

専門編

  • プログラミングのマインド
  • Linux
  • エディタ
  • Git
  • Ruby/Railsの開発環境
  • HTML&CSS
  • Ruby
  • Rails
  • Viewの構成およびBootstrap
  • MVC(+DB)
  • 各機能の実装(新規ユーザ登録、ログイン、投稿、コメント、いいね)
  • Heroku、テンプレ作成、メール送信、コールバック、フィルタ
  • オリジナルサービス作成

 

という感じで後半は大まかに書いてますが、専門編は写真投稿SNSを作りながら動きや機能の実装を学んでいます。またスクールの特徴としては、現役エンジニアに質問ができるところです。

オリジナルサービス完成まで3ヶ月を想定されているようですが、カリキュラムは1周目は60%理解で進めて、現在2周目に入り不明点だけに着目しています。

 

そして現在進行形で、力を入れているのはHTML&CSSの部分。

これらはマークアップ言語と言われ、「見た目の世界(View)」を司るための言語で、厳密にはプログラミング言語とはならないそうです。但し「見た目の世界」は非常に重要です。当然サービス内容が良くてもイケてないページであれば誰も使いません。読み易いメッセージの表示方法、フォント、誰にでも分かるボタンデザイン、導線、構造や色の統一感、・・・・・・。

 

マークアップ言語:文書の構造を記述するもの

プログラミング言語コンピュータに処理させる指示を書くもの

 

事実、Viewを専門に扱う「デザイナー」という職種が存在します。

ゴリ男の友人に、デザイナーが何人いますが彼らはマーケティングも学んでいます。ユーザーにウケるViewは何のかを研究しているんですね。アクセス数が伸びた、ユーザー層の変化、などのデータを取りながらトライ&エラーを繰り返しているようです。つまりは、見た目の分野に専門職が存在するほど奥が深いということです。

 

ここまで踏み込むかは別として「Viewは、サービスとユーザの接地面」なんですね。専門用語としては、UI(User Interface)というそうです。ちなみに、ユーザがサービス自体を利用して得られる体験をUX(User Experience)といい、UIはUXを高める重要な要素となります。

 

正直、何も知らないゴリ男はサービスを作ることが第一の目的であったため、カリキュラムにあったHTML&CSS部分は、事実ボリューム感も無かったですし、流していました。しかし、ViewはWebエンジニアにとって必ず必要と気づかされました。なのでカリキュラムとは別に、学習しています。

 

マークアップ言語もめちゃくちゃ種類があり、深掘りしすぎると抜け出せなくなります。今は、下記3つが最低限できるようになればいいのではないかと。

ゴリ男は、

  • HTML   文章構造そのものを記述
  • CSS      色や形、デザインを記述
  • JavaScript 動きを記述

を学習し、実際にいくつか練習ホームページを試作しています。(絶妙な編集が、本当にムズイ。。)

また、既存のホームページをChromeのDeveloper Toolを利用して閲覧しています。これで、表示されているページのソース(HTMLやCSSのコード)を見ることができますし、その画面でコードを書き換えたりして変化を確かめたりできます。本当にスゴイです。

一番最初に買った参考書は、これです。実際にカッコイイページを作りながら進めていけるので、すごく分かり易いと思います。

HTML&CSSとWebデザインが 1冊できちんと身につく本

HTML&CSSとWebデザインが 1冊できちんと身につく本

 

 

続いて、こんな本を購入しました。参考になるページデザインのまとめサイトを見ながら大まかな構造を把握したうえで、この本を活用して実際にページ作成に励んでいます。自身のテンプレートを増やすことが目的です。

HTML5&CSS3デザインブック (ステップバイステップ形式でマスターできる)
 

 

 

 

 

 

2. 基本情報処理技術者試験

これは、試験名の通り基本を学ぶために学習しています。スクールでエンジニアの方と話す際に出てくるワードも増えてきました。業界では、英検3級くらいの価値しかないらしく、わざわざ保有資格として書かない人も多いみたいですが。。未経験のゴリ男は真剣に取りに行きます。

 

下記の参考書を活用しています。絵が多くて、入ってきやすいと思います。

 また単純に、コンピュータの内部で起こっている処理を理解することは、楽しいです。

 

以上、既にエンジニアの方にとっては、初級すぎて話にならないレベルの内容かと思いますが、初心者のゴリ男にとっては莫大な量の情報と対峙している感覚です。

 

 

3. 学習していく中で芽生えたマインド

そんなこんなで基礎を固めている間に1ヶ月が経過した訳ですが、スクールに通うことで、現役エンジニアの方にヘルプしてもらえる環境がなければ、今の吸収スピードは実現できていないと断言します。ニート状態で時間もある中、のめり込んでいることもあり、吸収スピードは自分では早いと思ってます。)

 

実際、挫折するプログラミング独学者や初心者が多いようです。ゴリ男にとっては挫折者が多い分野であることは、逆にチャンスと思えるのですが、実際に学習を進めていくと挫折者が多いのは納得です。

基本うまくいかないので。

完全独学は非効率の極み?

 

できる人は良いですが、ゴリ男は天才じゃないので無理ですし、時間をダラダラ使っている場合でもありません。

 

そしてゴリ男は、学習していく中で今後重要になるであろうマインドに行き着きました。現役のエンジニアからの実際のアドバイスも含まれています。現時点では、これらを大事にしていこうと考えています。

  1. とにかく、手を動かせ
  2. 覚えるな、引き出しを作れ
  3. 目標(物)を定める
  4. トライ&エラーの繰り返せ
  5. 30分以上悩んでも、時間の無駄

 

1.とにかく、手を動かせ

 言葉の通り、スポーツと同様に「考えるより慣れろ」。この1ヶ月ですら、1ヶ月前から比べればだいぶ身になってきました。とやかく言わず、淡々と書きまくることが未経験にはなおのこと大切と思います。

 

2. 覚えるな、引き出しを作れ

 全て頭に入るに越したことはないですが、それよりも理想とする動作やバグ修正に対処する引き出しを作っておく方が重要です。総合的な問題解決に必要な時間は短くなると思います。一回遭遇した問題に対し、「実際に問題解決した処理のみ」を記録していきます。ゴリ男は、対処法・実装法をEverNoteやメモ帳に記録しキーワードで呼び出せるよう自分なりの「エラーバスター辞典」なるものを作成しています。そうしていく中で、何度も遭遇するバグには、辞典を開かなくても対応できるようになってます。

 

3. 目標(物)を定める

 成果物をイメージしないと、ただ公式を覚えているような感覚になり「理解」とは異なると思っています。先述した目標逆算マインドです。特にRuby/Railsには、開発を容易にする為、頻出する機能を予め想定し、その処理を「簡略化された記述方式」だけでコーデイングできるように設計されています。何が問題かというと、最終的にどのような仕組みで・どう動作するかを知らないと「Rubyの簡略化された記述方式」の有難みが分かりません。むしろ「簡略化された記述方式」はStep by Stepの要素の成立ちをすっ飛ばすことにもなるため、目標逆算で考えないと分かりにくくなり逆効果です。

 

4. トライ&エラーを繰り返せ

 手を動かせとカブりますが、とにかく、ちょっと修正しては確認、戻しては確認。根気の話です。これにアレルギーがあると、厳しいんではないでしょうか。

エラーがエラーを呼んでいるような複合的なエラーはしんどいです。。ただ一個ずつ、修正なのか追加なのか、押しては引いて、問題の芽を潰して諸悪の根源にたどり着けるか。

 

5. 30分以上悩んでも、時間の無駄

 経験を自分の血肉とするため、最低30分は真剣に調べて、試して、確認すべきと思います。しかし、それ以上かかるのであれば、誰かに聞いた方が良いと思います。知識の有無になるので悩んでも仕方無いです。誰も知らない先端技術の開発者じゃ無い限り、教えてもらうのが効率的かつ精神衛生を保てます。

 ゴリ男が例えば、ごくごく一般的な機能の実装に「知らない」というだけで3時間かけても、知っている人は「知っているというだけ」で3分で完了です。両者とも出力結果は同じです。これは商社営業時代にもモットーにしていましたが、"頑張っている"は残酷な程に無価値、むしろ悪です。"頑張らずに(早く)できる"ことこそが存在意義だと思います。であれば、今回は聞いて覚えて、次の場面で10分かけて実装できるようになった方がはるかに価値があると思います。そのためにお金を払ってスクールに通っているわけです。

 

上記5箇条を守り、今日も走り続けます。

 

 

 本日は以上!

 

余談ですが、今ゴリ男は一人ライザップに励んでいます。

商社勤務時代には飲み食いの嵐で、入社から3年で約20kg増量しましたF◯ck。高校時代からゴリゴリ系で68kgくらいあったのですが(身長は175cm)、社会人になってからはピーク時は88kgありました。

どげんかせんといかん!

ということで退職したと同時に、食事制限とジム通いでを1ヶ月を続け、現在8kgダウンの80kg。食事制限しながら永遠と出続けるエラーコードと戦っていると白目向きそうになります。せめてあと10kg。。

 

ふとエンジニアは、食べていけるかは別として「フリーランス」という働き方の選択肢があるのは有意義だと感じました。自分の時間を管理できるのは自由な生き方に直結します。ゴリ男は深夜にエンジンがかかる完全夜行性のクローンタイプだそうで、そもそも朝社会である日本には不適合ですね、はい。

 

以上