未経験からプログラミング学習は難しいのか?

こんにちは、マクロロです。

今回は非情報系出身者はプログラミン学習が困難なのかを考察したいと思います。

今まで全くパソコンいじったことないけど、プログラミングってやっぱり難しいのかな。

「プログラミング」って言ってもサービスや言語などによって難易度も上から下まであるから、自分ができそうな領域を見つけることがまず大事だよ!

僕自身、文系未経験でwebエンジニアをやってきたので数年やってきて思うこと今回紹介するよ。

プログラミングの難易度

結論:プログラミングの難易度はサービスやどの技術領域を勉強するかで様々です。

なので現在どんなサービスや技術領域があるのかを知って、自分が出来そうだと思う技術領域を勉強していけば良いと思います

しかし、その前に現在コードを書いてサービスやシステムを開発する業界でどんな種類があるのかを知る必要があります。

なのでまずはそちらから!

web系

まずはweb系です。

こちらは現在一番人気が出てきている領域で、おそらく皆さんが思い描いているエンジニアはweb系エンジニアです。

こちらは、webブラウザやアプリなどで利用できるサービスを開発してリリースしていく業界です。

  • Netflix
  • Twitter
  • progate
  • ブログ、サイトなど
  • 上記のようなサービスをコード書いてコツコツ作っていくイメージですね。

    基幹系

    こちらは、巷で言われているSI(システムインテグレーション)と呼ばれている業界です。

    下記のような生活に欠かせないITインフラを作っているイメージですね。

  • 銀行の決済システム
  • 駅の改札システム
  • データサイエンス・機械学習

    こちらはweb系、基幹系、研究職全てに当てはまると思いますが、数学的なロジックを用いて統計分析やAIのアルゴリズムモデルを作ったり、研究したりします。

    結局どの業界が良いのか?

    ざっと分けると上記のような感じですが、非情系の方が大学生や社会人になってからエンジニアを始めるなら確実にweb系企業一択だと思っています。

    以下の理由

  • 働き甲斐がある
  • モダンな技術が使える
  • リモートなどの柔軟な働き方ができる
  • 将来性がある
  • 詳しい、web業界で働くメリットは今回か書きませんがざっと上記のような理由でおすすめです。

    現在のweb業界の技術領域

    業界がある程度わかったところで続いては、どんな技術領域があるかみていきましょう。

    今回はモダンなweb業界に絞って紹介したいと思います。

    フロントエンド

    フロントエンドは、見た目の部分を作るエンジニアです。

    デザインが好きな方や、プログラミングでもあまりギークなことはやりたいくない方はフロントエンドがおすすめです

    そして、web系でフロントの部分は主に二つに別れます。

  • webフロント
  • ネイティブアプリ
  • それぞれの特徴を以下で見てみましょう。

    webフロント

    webフロントはそのままですが、webブラウザ上で動作するアプリケーションのフロントです。

    ブログのような静的ページだとHTMLやCSSが使われます。そこに動的な要素をJavaScriptを使ってさらに装飾していきます。

    しかし、上記単体だけだとエンジニアではよく巷ではコーダーと呼ばれます。

    最近のフロントエンドエンジニアでいうとReactやVueなどのJavaScripyフレームワークを使用するのが一般的です

    さらに最近だと、フロント側でも型安全なTypeScriptやバックエンド開発との共同開発を効率化するGraphQLなど新しい技術が出来ています。

    ネイティブアプリ

    ネイティブアプリはスマホアプリのフロント側です。IOSやアンドロイドアプリのUIを実装します。

    最近の言語としてはKotlinやSwift、Dartを用いたFlutterなどが主流でしょう。

    バックエンド

    バックエンドは、主に2種類の言語に分けれます。

  • スクリプト言語
  • 静的型付け言語(コンパイル言語)
  • スクリプト言語はプログラミング逐次機械語に翻訳して、コードを実行していく言語です。文法も直感的にわかりやすいので、初学者でバックエンドエンジニアを目指すのであればスクリプト言語がオススメです。

    主なスクリプト言語

  • Ruby
  • Python
  • PHP
  • そしてもう一つがコンパイラ言語です。こちらは、変数宣言時に型を必ず決めなればいけません。初学者のうちは「型」の有無の重要性があまりピンときませんが、本格的に開発に関わるとその違いがよくわかってくると思います

    基本的に文法などはスクリプト言語に比べて難しいので、何か一つスクリプト言語を覚えてからコンパイラ言語を勉強するのが良いでしょう。

    主なコンパイラ言語

  • Java
  • Golang
  • C言語
  • 基幹系の大規模システムはほとんどJavaで作られています。最近ではGolangの人気が出てきてます。そして、今後おそらく一番技術的にも優れていて、市場価値も高くる言語なると予想されます

    バックエンドでこれから生きていく方は勉強必須の言語であると言えますね。

    インフラ

    インフラは実際に上記のフロントやバックエンドのコードを実行するさせるサーバーや、アプリケーションで使用するデータなどを保存しておくデータベースなどのリソースを組み合わせて、アプリケーションを動作させる環境を設計するエンジニアです。

    端的に言うとアプリケーションの実行、提供環境を設計する役割です。

    現在では、アプリケーション環境をPaaSやIaaSと呼ばれるクラウド(AWS、GCPなど)を使用して構築していきます。

    また、現在では下記のような技術がインフラレイヤーの流行りですね。

  • SRE
  • DevOps
  • CI/CD
  • コンテナ技術
  • クラウド
  • インフラのコード化
  • インフラ周辺はかなりギークな領域なので、やはり情報系出身者が多い傾向があります。

    どの領域を勉強するか

    上記でweb界隈の技術領域の概要を簡単に説明しました。

    しかし、説明だけ見ても正直どのレイヤーが自分にとって一番向いているのかわりません。

    なのでまずは軽くプログラミングがどのようなものか触ることが一番です。

    学習方法

  • 動画
  • オンラインサービス
  • 勉強会
  • プログラミング学習方法は上記のように沢山あります。しかし、おすすめはやっぱり動画やオンラインサービスを使うことです。

    いきなり本とかで勉強すると多分途中でしんどくなると思います。現在では、たくさんプログラミングを無料で学習できる環境がいくらでもネットに落ちているので上手く活用しましょう

    以前、詳しいおすすめプログラミング学習方法に関する記事を書いたので是非見てください。

    初心者におすすめなプログラミング学習教材

    まとめ

    プログラミング未経験だけど、勉強したりエンジニア転職したりしたい人は多いと思います。

    まず最初は簡単にプログラミングやってみて、自分の出来そうな技術領域を探すことが大事ですね!

    あんまり自信のない方はまずはフロントエンドエンジニアを目指してみるがおすすです。

    chromeオススメ拡張機能前のページ

    Saas, Paas, Iaasとは次のページ

    関連記事

    1. 自己啓発

      プログラミングを勉強するメリット

      初めまして、まくロロと申します。私は現在プログラミングを勉強…

    2. 自己啓発

      エンジニアとしての働き方

      もうすぐ4月ですね。本当に一年あっというまです。。私はこの一年でプロ…

    3. 自己啓発

      やることがない文系大学生こそプログラミングを勉強すべき理由

      文系出身の大学生って就活で苦労する人が多いですよね。やはり文…

    4. 自己啓発

      自己投資と勉強で未来を変える

      今回は、初めて自己啓発系を書きたいと思います。自己投資をする…

    5. 自己啓発

      プログラマーになるために必要なこと

      こんにちは、まくロロです。3記事目ですが今のところ順調にブログを続け…

    6. 自己啓発

      IT業界就活に成功するために

      こんにちは、まくロロです。最近は就活が一段落ついたので、また…

    コメント

    1. この記事へのコメントはありません。

    1. この記事へのトラックバックはありません。

    最近の記事

    PAGE TOP