さまざまなソフトウェアエンジニアのお金と働き方の話(1)SES編

最近、他職種からソフトウェア・エンジニア(以下エンジニアと書きます)に転職したい人が増えているそうです。

その理由のうち、大きいのは以下の2点でしょう。

  • 収入(が高い?)
  • 働く場所と時間(を選べる?)

このあたりが本当のところどうなのか、それから実際に「転職できるものなのか」について、私の経験(とそれに基づく推測)から何回かに分けてお話していきたいと思います。

続きを読む

AIと、プログラミング必修化

2020年からプログラミング教育必修化!

AIの普及によって仕事がなくなる!

…など、早いうちにITスキルを身につけないと大変な事になりそうな不安を煽った記事を、よく見かけます。

本当にそうなのでしょうか。

今日は、ITの世界で20年以上活動してきた私の考えをお伝えしたいと思います。

続きを読む

プログラミング学習で、情報活用能力を向上する

※本記事は、文科省の調査:今の高校生には知識を活用するチカラが足りない の続きです。
文科省の調査で分かった、現代の高校生の情報活用能力の課題の幾つかは、プログラミング学習で身につけることができます。

機械に仕事をさせるための手順を考え,プログラム的に表現する

機械に仕事をさせるには、ちょっと独特の考え方が必要です。

人間にはわかりきった事でも、細かい手順に分解してならべていく必要があります。

たとえば、人間相手なら「ここにある数字を小さい順に並び替えてください」といえば済むことでも、プログラムを書くときは「まず最初の数字を見て、次の数字と比べます。最初の数字のほうが小さければ何もしません。そうでなければ2つの数字を入れ替えます。次に2番目の数字と3番目の数字を…」などと表現するのです。

面倒くさいでしょう?
ふだんの生活の中では、こんなふうな考え方はしませんよね。

ですので、このスキルを身につけるには、練習が必要になります。

プログラミングを学ぶと、こういった手順の考え方を、たくさん練習することになるので、すぐに身につきます。

アルゴリズムの基本になる条件分岐、繰り返し、変数などについては、教育用のプログラミング言語「Scratch(スクラッチ)」などでも十分に学ぶことが出来ます。

スクラッチは、高校生なら20時間もあればおおよその事はできるようになると思います。独学(記事の最後に書籍リストへのリンクを掲載)でもよいですし、3日間くらいの合宿に参加したりするのも良いでしょう。

著作権などを意識して情報発信できる

ブログやツィッターなどを使ったことがあるでしょうか。

最近は、コンピュータ(スマホ)とインタネットの普及によって、誰でも簡単に情報発信することができるようになりました。

電子情報というのは簡単にコピーができるところがメリットです。しかし、誰でも何でもコピーして良いかというと、そんなことはありません。最初にその情報をつくった人の権利として「著作権」というものが法律で保護されています。

インタネット等で情報を発信する際は、そのような著作権の取り扱いについて最低限必要なことを理解していないと、大きなトラブルにつながることがあります。
(不正コピー、盗用などといった事件として新聞に掲載されたりしますね)

プログラムを書くようになると、他者がつくった便利なプログラム部品や画像などの素材データを使うことがあります。

そのため、プログラミング学習では、著作権に関する基本的な事項や、他者が作ったプログラム部品の取り扱い方法についても学んでいきます。

ソフトウェアにまつわる権利をやりとりするために「ライセンス条項」というものがあります。
これは著作権よりも多岐に渡る条項が細かく設定されているものです(皆さんも、ソフトウェアをインストールするときに目にしたことがあると思います)

普通にソフトを使う分にはそれほど気にならないのですが、自分が作ったプログラムを公開したりするときは、こういったことも適切に考えていく必要があるので、良い勉強になります。

自分がプログラミングしたソフトウェアについても、自分の権利が発生します。
プログラミング学習は、著作権の当事者としても、良い勉強の機会になりますね。

不正請求の メールやサイト等に対処する

不正請求やメール、サイトもほとんどの物はプログラムで出来ているってご存知でしたか?

つまり何らかのアルゴリズムにしたがって自動的に動いているわけです。

プログラミングを学んでいくと、このようなプログラムと情報をやり取りすることの意味についても分かってきます。

  • 入力した情報がいつまで保持されるのか
  • 相手のプログラムが知っている情報は何なのか
  • 相手のプログラムが知らない情報は何なのか
  • プログラムに渡した情報でどんなことが可能になるのか
  • メールの差出人名を偽るのがどれくらい簡単なのか
  • ダブルクリックして実行したプログラムは、何ができるのか

攻撃手段(=プログラミング)のことを知っていれば、防御する方法も分かるようになるのです。

 

参考リンク

書籍紹介

 

オブジェクト指向って何?

プログラミングの学習について調べていると「オブジェクト指向」という言葉が出てくる事があります。
これは一体何でしょうか? プログラミングを勉強しはじめるときに、オブジェクト指向について知っておくべき事は何か、お話ししたいと思います。

続きを読む