こんにちは、マクロロです。
今回は非情報系出身者はプログラミン学習が困難なのかを考察したいと思います。
今まで全くパソコンいじったことないけど、プログラミングってやっぱり難しいのかな。
「プログラミング」って言ってもサービスや言語などによって難易度も上から下まであるから、自分ができそうな領域を見つけることがまず大事だよ!
僕自身、文系未経験でwebエンジニアをやってきたので数年やってきて思うこと今回紹介するよ。
目次
プログラミングの難易度
結論:プログラミングの難易度はサービスやどの技術領域を勉強するかで様々です。
なので現在どんなサービスや技術領域があるのかを知って、自分が出来そうだと思う技術領域を勉強していけば良いと思います。
しかし、その前に現在コードを書いてサービスやシステムを開発する業界でどんな種類があるのかを知る必要があります。
なのでまずはそちらから!
web系
まずはweb系です。
こちらは現在一番人気が出てきている領域で、おそらく皆さんが思い描いているエンジニアはweb系エンジニアです。
こちらは、webブラウザやアプリなどで利用できるサービスを開発してリリースしていく業界です。
上記のようなサービスをコード書いてコツコツ作っていくイメージですね。
基幹系
こちらは、巷で言われているSI(システムインテグレーション)と呼ばれている業界です。
下記のような生活に欠かせないITインフラを作っているイメージですね。
データサイエンス・機械学習
こちらはweb系、基幹系、研究職全てに当てはまると思いますが、数学的なロジックを用いて統計分析やAIのアルゴリズムモデルを作ったり、研究したりします。
結局どの業界が良いのか?
ざっと分けると上記のような感じですが、非情系の方が大学生や社会人になってからエンジニアを始めるなら確実にweb系企業一択だと思っています。
以下の理由
詳しい、web業界で働くメリットは今回か書きませんがざっと上記のような理由でおすすめです。
現在のweb業界の技術領域
業界がある程度わかったところで続いては、どんな技術領域があるかみていきましょう。
今回はモダンなweb業界に絞って紹介したいと思います。
フロントエンド
フロントエンドは、見た目の部分を作るエンジニアです。
デザインが好きな方や、プログラミングでもあまりギークなことはやりたいくない方はフロントエンドがおすすめです。
そして、web系でフロントの部分は主に二つに別れます。
それぞれの特徴を以下で見てみましょう。
webフロント
webフロントはそのままですが、webブラウザ上で動作するアプリケーションのフロントです。
ブログのような静的ページだとHTMLやCSSが使われます。そこに動的な要素をJavaScriptを使ってさらに装飾していきます。
しかし、上記単体だけだとエンジニアではよく巷ではコーダーと呼ばれます。
最近のフロントエンドエンジニアでいうとReactやVueなどのJavaScripyフレームワークを使用するのが一般的です。
さらに最近だと、フロント側でも型安全なTypeScriptやバックエンド開発との共同開発を効率化するGraphQLなど新しい技術が出来ています。
ネイティブアプリ
ネイティブアプリはスマホアプリのフロント側です。IOSやアンドロイドアプリのUIを実装します。
最近の言語としてはKotlinやSwift、Dartを用いたFlutterなどが主流でしょう。
バックエンド
バックエンドは、主に2種類の言語に分けれます。
スクリプト言語はプログラミング逐次機械語に翻訳して、コードを実行していく言語です。文法も直感的にわかりやすいので、初学者でバックエンドエンジニアを目指すのであればスクリプト言語がオススメです。
主なスクリプト言語
そしてもう一つがコンパイラ言語です。こちらは、変数宣言時に型を必ず決めなればいけません。初学者のうちは「型」の有無の重要性があまりピンときませんが、本格的に開発に関わるとその違いがよくわかってくると思います。
基本的に文法などはスクリプト言語に比べて難しいので、何か一つスクリプト言語を覚えてからコンパイラ言語を勉強するのが良いでしょう。
主なコンパイラ言語
基幹系の大規模システムはほとんどJavaで作られています。最近ではGolangの人気が出てきてます。そして、今後おそらく一番技術的にも優れていて、市場価値も高くる言語なると予想されます。
バックエンドでこれから生きていく方は勉強必須の言語であると言えますね。
インフラ
インフラは実際に上記のフロントやバックエンドのコードを実行するさせるサーバーや、アプリケーションで使用するデータなどを保存しておくデータベースなどのリソースを組み合わせて、アプリケーションを動作させる環境を設計するエンジニアです。
端的に言うとアプリケーションの実行、提供環境を設計する役割です。
現在では、アプリケーション環境をPaaSやIaaSと呼ばれるクラウド(AWS、GCPなど)を使用して構築していきます。
また、現在では下記のような技術がインフラレイヤーの流行りですね。
インフラ周辺はかなりギークな領域なので、やはり情報系出身者が多い傾向があります。
どの領域を勉強するか
上記でweb界隈の技術領域の概要を簡単に説明しました。
しかし、説明だけ見ても正直どのレイヤーが自分にとって一番向いているのかわりません。
なのでまずは軽くプログラミングがどのようなものか触ることが一番です。
学習方法
プログラミング学習方法は上記のように沢山あります。しかし、おすすめはやっぱり動画やオンラインサービスを使うことです。
いきなり本とかで勉強すると多分途中でしんどくなると思います。現在では、たくさんプログラミングを無料で学習できる環境がいくらでもネットに落ちているので上手く活用しましょう。
以前、詳しいおすすめプログラミング学習方法に関する記事を書いたので是非見てください。
まとめ
プログラミング未経験だけど、勉強したりエンジニア転職したりしたい人は多いと思います。
まず最初は簡単にプログラミングやってみて、自分の出来そうな技術領域を探すことが大事ですね!
あんまり自信のない方はまずはフロントエンドエンジニアを目指してみるがおすすです。
この記事へのコメントはありません。