完全未経験でもプログラミングを独学で覚えられる?就職できる?

2020年5月16日

プログラミング独学1

こんばんは、てぃってぃ(嫁)の夫です。

最近、「プログラミング」がどんどんメジャーになってきていますね!プログラミング業界(IT系)はこれからどんどん盛り上がると思います。小学校の必修化が始まったり、目まぐるしいスマートフォンやSNSという文化の進化が来ていたり、完全に時代の波が来ている分野になっています。

それに伴って、ネットでも「プログラミングを初めてみたい」とか、「独学でもプログラミングを覚えられるの?」とか、色々な声を目にするようになりました。ある意味、今みたいにすごく流行る前からプログラマーとして働けていた私はラッキーだったのかもしれません。

(手に職がつくので、こうしてブログにも書けますしね。)

本記事では、「これからプログラミングを始めてみたい」という方に向けて役に立ちそうな情報を、プログラミング歴10年以上で、IT企業でプロジェクトリーダーを勤めている筆者が惜しみなくお伝えしたいと思います!

分かりやすくするために、QA形式で書いていきたいと思います!他にもあれば、気軽にコメント欄で質問いただけたら、回答したいと思います。


プログラミングは独学で学習できる?

プログラミング独学2

A:PC1台あればだれでもできます。

基本的にプログラミングはPC1台さえあれば出来ます。最近だと、PCのほかにAndroidやiPhoneといったスマホ、組み込み開発用のラズベリーパイなどがあればなおよしですが、まずはPC1台あれば十分独学可能です。

注意してほしいのが、怪しげな情報商材を購入したり、プログラミングスクールとかに通う必要は一切ありません。というのも、プログラミングスクールで講師が教える様な内容は、基本的にネットに転がっているレベルのものと同じだからです。

ただし、独学でやる場合に、「覚える順番」と「覚え方」だけは、誰かに教えてもらった方がいいと思います。然るべき順番で学習していけばなんということはないのですが、順番を間違えると色々と遠回りになったりします。ということ後述します。


どのプログラミング言語から覚えたらいいの?

プログラミング独学3

A:「C言語」です。

検索1位の記事に書かれていたのですが、

案件の多さとか、給料の高さとか、難易度とか、ゲーム開発とか、そんな所から入ろうとしないでください

(なんであんな内容の記事が1位なんだ…って思うんだが・・・)。確実に遠回りになったり、挫折の原因になりますよ。

色々と意見があると思いますが、一応10年以上プログラミングをしてきた者の意見としては、「C言語を理解すれば、他の言語も大体全部触れる」です。

以下、理由です。

プログラミング言語は実に色々ありますが、すごーーーく雑に分けると、フロントエンドサーバーサイドに分かれます。そして、フロントエンドの低級言語(C言語等)を十分理解すると、サーバーサイドのプログラムも未経験でも簡単に書けるようになります。

逆にサーバーサイドから始めたエンジニアは、おそらくフロントエンドのプログラムは書くことが出来ません。

例えばこちらの「簡易版SNSを作成する」という記事を書きましたが、私はサーバーサイドの知識はほとんどありません。この10年の中で、PHPもjavascriptもほとんど触ったことがありませんでしたが、ちょっと調べるだけで、3日で簡易版SNSが実装できました。 

それはなぜかというと、サーバーサイドの高級なプログラムたちは、すべて低級言語の技術を組み合わせて作っているからです。

サーバーへの通信はまずHTTPを受信するWebサーバープログラム(Apacheなど)があって、WebサーバープログラムがきっとPHPを呼び出して、…みたいな流れが手に取るように分かるからです。やってなくても大体分かります。

他にRuby、Perlなども触ったことがないですが、たぶんすぐ触れる自信があります。

ということで、まず低級言語から覚えるべきなのです。そしてその代表がC言語なわけです。まずC言語を体系的に覚えきって、マスターしてください。

具体的には以下のコーディング技法を身に着けてみて下さい。

  • 開発環境の用意
  • 変数の型(整数、文字列、小数、…)
  • include
  • 標準入出力(getchar、sscanf、printf、…)
  • 関数
  • ファイルI/O(fread、fwrite、…)
  • 制御文(if、for、while、…)
  • 構造体(struct)
  • ポインター
  • 通信(TCP/UDP)

これらが全て理解できれば、VBだろうが、C#だろうが、javaだろうが、javascriptだろうが、PHPだろうがHTMLやCSSだろうが、大抵の言語は覚えなくてもちょっと調べるだけでプログラミング出来るようになります。

ただし、中々体系的に学べるサイトが無いので、特化ブログでも書こうかな?と思っていたりします。需要あるかな。


どうやって覚えたらいいの?

プログラミング独学4

A:実際に物を作りながら覚えましょう。

プログラマーの世界では、できあがったプログラムのことをよく「物(もの)」って言うので覚えておいてください。

独学するにあたって覚え方も重要で、実際にSEが開発現場で開発しているのと同じように、PCに開発環境(コンパイラ)を構築して、そこでプログラムを動かすべきです。

具体的にまずC言語を学習したいのであれば、VisualStudioというコンパイラを無料でダウンロードしてきて、そこにプログラムを書いて、実際に動かしてみるべきです。

間違っても「Pro○ate」みたいな、Web上で勉強できる風なのは止めた方がいいです。

あれを勧めている現役のエンジニアはいるのか?甚だ疑問です。。ネット上にはびこる情報商材を売っているエセプログラマー(詐欺師)達はこぞって進めていますが、現役エンジニアの私からすると「はぁ??」って感じです。

あれは勉強できるんじゃなくて、させられているだけです。例えばあれでWeb上で学習した後に、Windows上で「チャットプログラム作ってみー」って言われて、作れる人がどれだけいるんだろうか?という感じですね。

コード書くのだけがプログラミングじゃない。実際に開発環境を構築でき、動くアプリケーションを作れる人が、プログラマーですよ。

車の運転と同じで、ゲーセンでいくら車の運転をシミュレーションしても、公道では確実に運転できません。プログラミングも同じです。開発環境はしっかり用意して、本物のプログラムを作ることをオススメします。

そして何より、実際に動くもの(アプリケーション)が作れると楽しいですよ!


プログラミング未経験でも就職できる?

プログラミング独学5

A:会社によります。半々ですが、やる気が伝わればできる可能性が高いです

これは私個人の意見ですが、最近どんどん未経験者歓迎になってきていると思っています。というのも半年の研修期間があれば、大体実務に必要なプログラミングスキルは身に着けられるんですよね。

個人的にはプログラミングスクールに通うぐらいなら、まずは未経験OKで働きたい会社が無いか?を探してみるべきだと思います。誰でも半年間研修を受ければ戦力になりえるので、大事なのはやる気だと思います。私の会社でも、学生時代プログラミングをやっていたという人が優秀かというと関係なく、2,3年も勤めれば、結局やる気のある人が勝ち残っています

なので、もしやりたいことをやっている会社が未経験OKであれば、いっそ飛び込んでみてはいかがでしょうか?お給料をもらいながら手に職も尽くし、最高だと思いますよ!


お給料はいいの?

プログラミング独学6

A:会社と能力によりますが、結構いいです。

一応はIT系と呼ばれ、時代の最先端技術を開発している仕事ですから、お給料はまぁまぁ良いです。会社、能力などにもよるので一概には言えませんが。

以前同じようなことをこちらの記事に詳しく書いているので、良かったら見てみて下さい。


まとめ

プログラミングはこれからもドンドン発展していくこと間違いないの成長分野なので、趣味としてでも覚えておいて損はないスキルになると思います!フリーランスの案件もプログラミングの案件はかなり多く、手に職をつけておくとかなり重宝しますよ。

何か分からないことがあったらお気軽にコメントで聞いてくださいね。

ご購読、ありがとうございました。