【論】未経験からIT業界へ。プログラミング勉強のコツ。
少し前に、建設業界からIT業界への転職する考え方を書きました。
今回は、建設業界を問わず未経験の人が、仕事で使えるプログラミング技術を学ぶのに抑えるべきコツと言うものを書いて行こうと思います。個人的な経験則にはなります。
[土塔えんじ:ご覧の提供でお送りします]
どのプログラミング言語を学ぶべきか?
一言でプログラミング言語と言いましても、色々とありますよね。どのプログラミング言語を学べばよいか?というのは、初めてプログラミングを学ぶ人からすると気になる所だと思います。
結論から言うと、『初めての人であれば、どの言語でも良い』と思います。これは、先に挙げた記事でも書きました。とにかく、プログラミングが動く楽しさを感じて欲しいと思うからです。
ただ、仕事で使おうとする人にとっては、流石にそれでは不十分ですよね。そこで、以下にプログラミングで勉強すべきコツをお教えしようと思います。
ちなみに、そのコツとは・・・フロー図を書けるようになるということ。そして、これを勉強するのは、プログラミング言語を知らなくても行えます。
フロー図を書けるようになること。
『フロー』=『流れ』という意味です。簡単な英語ですよね。キャッシュフローとか使われることもあり、ピンとくる方も多いかと思います。
プログラミングを行う上での『フロー』は、『処理の流れ』という事になるかと思います。少し、簡単な例を挙げてみます。
信号を渡るプログラミング
例えばロボットを作るとして、信号を渡らせようとします。その時、ロボットに投入するプログラムは、以下のような流れになるかと思います。
- 信号があることを認識する。
- 進行方向の信号が青の場合、交差点を渡る
- 進行方向の信号が赤の場合、止まる。
ちょっと、煩雑になるので黄色(あるいは点滅)の条件は外します(笑)そして、フロー図を書くとこんな形で書くことができます。
(本来、フロー図にも正しい書き方も色々あって、上記は最低レベルの書き方ですが(苦笑)フロー図の書き方が趣旨ではないので、そこはご容赦ください。)
この程度の内容であれば、容易に想像は付きますよね。でも、プログラミングを行う上でこのフロー図を書けるということは大きな武器になります。なぜなら、
プログラミングはこのフロー図の通りに書いて行けば良い
と言えるからです。
当然、使うプログラミング言語によって、その言語のルールに沿って書く必要がありますが、言語のルールは後からでも学べます。というよりかは、1つの言語を覚えてしまえば、他の言語にも共通するルールは存在します。そういう意味で、言語のルールは応用を利かせることがでると言えます。
ここのフロー図を書ける、あるいは頭の中で想像できないと、プログラミングのスキルは成長しません。
その辺を少し、実例を挙げて紹介してみます。
[土塔えんじ:いったん、CMです]
Python歴 2時間の作品
手前味噌ですが、僕の例を挙げてみます。僕は、システムエンジニア歴で20年弱です。現在は、主にシステム全体の設計業務がメインで、業務レベルのプログラミングはしてません。ただ、趣味でプログラミングは続けてます。
そんな僕が、作ったシステム。
これ、コントローラーとして使用したRaspberry Pi で、導入が簡単だったから・・という理由で使用した言語がPythonでした。
ちなみに、この時まで、Python は全くの未経験でした。でも、2時間程のPythonの言語を勉強してここまでのモノは簡単に作れます。フロー図はしっかり頭の中にあり、それに即してPythonのルールでプログラミングをした結果です。(えらそうに書いてますが、30行程度のコードで上のシステムは組めたりします(笑))
僕は、C言語がメインのプログラミングを多くやってましたが、そこで使われていた条件分岐やループ文(繰り返し処理)とかは、Pythonでも応用が利かせられた・・・という事になります。
でも、フロー図を描けていないと、何から書いて行って良いか?が分からないですよね。
フロー図の重要性
プログラミング言語のルールを覚えるより、フロー図を書ける方が良い理由を少しでも理解頂けましたでしょうか?
何れにしろ、上の信号の例で挙げたような条件分岐とか、同じ処理を繰り返す構文とか、基本的なプログラミングは覚える必要がありますが、上でも書きましたが、そこは1つ言語をマスターできれば他の言語にも応用は効いてきます。
それ(それも重要ですが(笑))より、フロー図を頭に描けらるようになってくれば、1つレベルの高いエンジニアになれると思います。
フロー図は、パソコンを使わずとも勉強できます。色々なフロー図を書いて、頭を鍛えてみてください!
プログラミング・スクールでもフロー図を意識して
上のリンクの記事でも書いていますが、僕は建設業界出身でIT業界に進みました。そこで、プログラミングを勉強するために、プログラミング・スクールを活用しました。
実際、この時はプログラミング言語のルールを覚える事を重視してしまってました。この時は、無知だったからです。もし仮に、プログラミング・スクールに通い直すのであれば、フロー図を意識して、先生の授業を受けてみたいな~と考えます。
当時、通っていたスクール(マルチメディアスクールWAVE)は既に無くなっているようですが、当時、WAVEとどちらに行くか?を悩んだ老舗の学校を紹介しておきます。
もし、プログラミング・スクールに行くようなことがあれば、フロー図を意識して勉強してみてください。