【連載】エンジニアになるための教科書1
こんにちは、株式会社ジェネストリームの佐野です。
実は僕がスタートアップに転職し、ゼロからエンジニアを開始してまだ1年も経っていません。 しかしすでに、Webサービスを1つとAndroidアプリを1つ、ゼロから創り上げリリースしています。
この1年間、わからないことが多すぎるので手探りでがむしゃらに自分なりに動き勉強していきたのですが、最近急にバラバラと散らばっていた知識が点と点がつながって線になり、やっと円になり始めました。
そこで解ったことは、 「初心者の頃の自分がなぜ理解できなかったのか? 」 ということです。
そこで僕が学んだことを整理し、初心者向け(業界未経験含む)の方々がエンジニアになるための教科書をつくることにしました。
エンジニアを目指している方の助けとなり、エンジニア一年目の方の技術力向上に貢献できれば幸いです。
概要
このブログは全くの初心者(業界未経験)の方から1年目のエンジニアの方々向けの教科書です。
内容はコンピューターの基本からプログラミングの基本、インフラ、データベースなどの知識です。 また知識とは別に考え方や慣習も記載しているので、これらの知識を身につければエンジニアとして仕事ができるようになることを最終目標としています。
週1回程度で連載していく予定ですので、気長にお付き合いください。
目的
エンジニアになるための教科書を作ることです。
作ろうと思いたった理由は以下の2点です。
- 基本情報技術者やデータベーススペシャリストなど、資格を取るための教科書や技術書は多々あります。 しかし、「エンジニアになるための教科書」は実は存在していないため。
- 優秀なエンジニアの人数が足りないため。
1について
まず大前提を。 賛否両論あると思いますが、僕は「資格を取ることを目標にしてはいけない」と考えています。
その理由として、資格はそれを活かした仕事を獲得するなり就職するなりし、はじめて意味をなすと考えているためです。
現在、様々なシーンで誤ったエンジニア教育がされていると思います。
例えば資格については、エンジニアとして仕事をしながら、さらなる知識の習得や復習を兼ねて資格を取っていると思います。 また学校の教育では、プログラミングを学習させたりしているが、本当に初心者のことを考えた学習方法ではないと思います。
僕は仕事柄インターン生や近くの学生達の話はよく聞きますが、聞いてもプログラミングなどは無理だと口をそろえて言います。 これはまさに、間違った教育がIT技術の習得は難しいという先入観を与えている影響ではないでしょうか。
2について
基本的にエンジニアの数が不足している中、優秀なエンジニアはさらに不足しています。
その結果、優秀なエンジニアは仕事が山のようにあるので仕事を選べるため、単価の高い仕事や、自分がやりたい仕事だけを請け負う傾向になるのは仕方のないことだと思います。
そうすると僕たちのようなスタートアップにリクルーティングしようとしても、すぐに環境を変えて同じ仲間として仕事をするのは難しい状況だと実感しました。
しかし優秀なエンジニアは獲得したい。 そこで、自分たちで優秀なエンジニアを1から育てていく方がコストが低く、かつエンジニアが増えれば世の中のためにもなると思い、どうやったら優秀なエンジニアをゼロから育てていくことができるのか?という視点に切り替えました。
連載していくこと
以上を踏まえ今日から、優秀なエンジニアを育てるための手順を僕たちなりの視点でまとめていきたいと思います。
まず学ぶべきこと
まず学ぶべきこと、それは「コンピューター」についてです。
エンジニアにならない、またはなれない方々に共通な点があります。
それは、 「コンピューターに苦手意識がある」 ことです。
パソコンの操作がわからない人や機械を見ただけで、拒絶反応が起こる人も多いですよね。
身近にある家電でも、最近のものは高機能になってきています。 電子レンジや冷蔵庫ですら完璧に使いこなせる方も少なくないと思います。
そんな激しい変化に取り残されたまま、パソコンやIT技術に興味を持った人たちがプログラミングを覚えたり、データベースやネットワーク、情報セキュリティなどを学習し始めているのが現状です。
コンピューターに興味があり、また好きな方ですら、いざIT技術者になろうとすると路頭に迷ってしまうのです。
「何をどこから勉強したらいいのかわからない」
「仕事ができるレベルってどれくらいなの?」
「本当に自分がエンジニアになれるのかな?」
今この記事を読んでいるあなたも、まさに頭の中でこういったことを考えていることと思います。
エンジニアはほぼ毎日パソコンを使って作業をし、様々なツールを使いこなしながら仕事をする必要があります。
コンピューターを知ることは地図を手に入れること
コンピューターの操作に慣れることも重要です。 しかしそれ以上に大切なことは、 「そもそもコンピューターってどうやって動いているのか?」 といった根底となる部分を知ることです。
「今自分はコンピューターのどこの部分を何を使ってどうしようとしているのか?」 という、今自分が学んでいる位置や場所がわかるだけでも迷子にならなくなります。
さらに、コンピューターの基本をわかっていることにより、その後の勉強の理解度も全然違ってきます。
何事も基本が大事です。
基本や概念や目的といった根底にあるものはどんな仕事をするにしても大変重要です。 つまり、コンピューターを知ることは、プログラミングの原点(=地図)を持つことになるのです。
これから分からないことや理解しづらいことなどが多々出てくると思います。 そういった時は、まず概念や仕組みなどの基本的なことから調べて理解を試みるようにしてみましょう。
次回予告
それでは次回から本格的にコンピューターについて学んでいきましょう。
エンジニアになるための教科書2へ