プログラミングすることを職業とする上で、どのような心構えを持ち、どのような技術スキル、またどのレベル以上の技術的スキルを身に付けておくべきだと先生はお考えでしょうか?
プログラムを書くということは次第に、設計の済んだものを言われた通りに書くことは重要ではなくなって、発注者のニーズを把握しながら書くとか、自ら世の中にサービスを提供するために書く、という方向になって来ていると思います。ただ単に言われた通り作るだけだと、人件費の安い海外にかなわないでしょうから、きちんと技術を持ちながら、顧客のいうことも分かって、創造的に書くとか、変化に迅速に対応できる、などの事が付加価値になって初めて、国内でやることに意味があるようになるのではないでしょうか。
アメリカであれば、社内に専門のIT担当者がいるという構図があると思います。日本では受託開発という形でIT部門を外出ししていて、IT企業として存在することが、IT業界における階層的な下請け構造を形成する原因となっているのではないか?と私は考えています。社内にIT担当者がいることは、経営的観点から見れば固定費が上がることではありますが、日本の企業経営者はその分野における専門家が社内にいることの価値をあまり高く評価していないように思います。これについて、どのような具体的な改善策があると先生はお考えでしょうか?
日本では、「形のないものにお金を払わない」「サービスはタダ」という悪しき文化の影響か、ソフトウェアは「ハードウェアのおまけ」から始まり、ハードよりソフトの方がよっぽどお金を必要とする今日であっても、ソフトがいまだに重視されていません。専門家がいることの価値をわかっている経営者が経営するようにならないとダメだと思いますが、そのためには結局「すべての国民がソフトやソフト開発とはどういうものかわかってから様々な職業につく」事しかないと思います。今は(専門家以外の)すべての国民が「ソフトって自分にはよくわからないけど金さえ払えばITドカタが作ってくれるもの」だと考えています。そんなままでいたら国が亡びると思うのですが。
公文式のように、基本自学。そしてプログラミングを学んだ内容をうまく定期的に確認するような仕組みはつくれないものでしょうか?プログラミング学習におけるコツのようなものがありましたら、合わせてお話いただけないでしょうか?
仕組みそのものは別に難しくないと思います。レベルに応じてさまざまな問題を出して、その問題に対するプログラムを回答する、回答されたプログラムをチェックしてOKならそう記録する。それだけですよね。大切なのは、それが楽しくないと続かないので、楽しいようなカリキュラム、言語、環境をきちんと準備して行くことじゃないでしょうか。
まずとにかくコードを書いてみることからはじめてみるべきだと思うのですが、その時代時代において求められる能力は代わるように思います。情報学の分野がまさしくうってつけの人、逆にやってみたがあまりそこでの活躍は望めないと感じた両者に対して、どういった職業選択や立ち振る舞い方ができるかについて先生個人のお考えをきかせて頂けないでしょうか?
すべての人が「経験」を持つべきだと思います。持った上で自分に向かない、ある程度以上のプログラムは作れなかった、という人であれば、専門家をもっと尊敬してくれるのではないかと思います。そして、「ある程度」というのも様々で、多様な職業につく人がそれぞれ自分の立ち位置で役に立つものを作れる、本当に難しかったり大規模なものは専門家に頼む、という形になってほしいです。