今こそプログラミングを勉強する意義を考える

こんにちは。

今日はちょっと記事風に、プログラミングを学ぶことについて考えたいと思います。
※あくまで個人の意見ですので、こんな考え方もあるんだな程度で参考にしてください。

というのも、今日ツイッターのタイムラインで、
「(自分は)現役SEだけど、プログラミングできてもあまり役に立たない。管理職になるほど使わなくなる」
といった趣旨のツイートを見かけました。

これをツイートした人の真意は分かりませんが、今からプログラミングを勉強してエンジニアになろうとしている人から見れば、
「おいおいマジかよ、じゃあプログラミング勉強するのやめよう」
とか思ってしまうかもしれません。

でもちょっと待ってください。
もう少しよく考えてみましょう。

◼️えらくなるほどプログラミングしないって本当?

これは難しい質問です。
確かに会社の方針を決定するようなポジションや大きなプロジェクトのリーダーになれば、仕事でプログラミングする機会はほぼ無いかもしれません。

その人たちの中にプログラミングの知識がない人がいることも事実でしょう。

会社の方針を決める管理職ならともかく、プロジェクトのリーダーにもそんな人がいるのかと思われるかもしれませんが、います。(少ないかもしれませんが)

要は、そのシステムに必要なものの判断ができればいいのです。
プログラミングはあくまでそのシステムを実現する方法なので、その部分は他のメンバに任せておけばいいことです。

そういう意味ではプログラミングを勉強しなくても、設計さえ勉強しておけば、偉くなれるのかもしれません。

◼️じゃあなぜプログラミングを勉強するの?

確かにプログラミングはキャリアを築くのに必要条件ではないのかもしれません。
ですが、学んでおいて損になることは絶対にありません。

考えてみてください。たとえプログラミングを勉強せずにプロジェクトリーダーになったとしても、プログラマーと関わる機会は絶対にあります。
その時に、プログラミングを知っているのと知らないので、どちらの方がコミュニケーションを取りやすいでしょうか。

もちろんプログラミングを知らなくても上手くプロジェクトを進めることができる人はいます。
でも、下手をすれば無理な要求をしてしまいプロジェクトが炎上、なんてことも。。。
ほとんどのプロジェクトのリーダーはプログラマーを経験していますが、それでも炎上するプロジェクトはあります。
プログラミングを知らない人がプロジェクトを回せば、そうなる可能性はもっと高くなるかも。。
しかもなぜ炎上しているかわからない。プログラマーと衝突してしまう。最悪の展開が待っています。

また、プログラミングはエンジニア以外の人でも、普段の業務の効率化をするのに役立ちます。
仕事でExcelを使う人はかなりいるのではないでしょうか?
その人たちがVBAを少しでも使えるようになれば、かなりの業務が改善されると思っています。

VBAって何?って人は以下をみてみるといいかもしれません。

普段のちょっとした作業でも、プログラミングを使えることによって、やり方や考え方がかなり変わってくると思います。
これがプログラミングを勉強しておいて損はないという理由です。

というか、勉強しておいて損になることなんてありません。
そういう意味では、こんなの勉強しても意味ないよっていうのはナンセンスなのかなと思いますし、それを勉強している人に対して失礼ですよね。

私も歴史が嫌いで勉強しても意味ないなんて思うことがあるので、気をつけないと。。。

◼️迫りくるプログラミングの義務教育化

ここまでは今現在の社会の状況をみてプログラミング学習について考えてきました。

ここではもっと先の未来まで考えて、プログラミングを勉強することを考えていきます。
(ここからが一番言いたかったことです)

今話題のプログラミングの義務教育化や、新センター試験での採用、
世間では、本田圭佑選手がRubyの勉強をしていると話題になりました。
情報社会によるIT技術者不足の解消に向け、日本が着実に動き出しています。

今までプログラミングは「できたらいいよね」でしたが、義務教育となると話は変わってきます。
足し算や引き算ができないと「え、なんで出来ないの?」となるように、プログラミングができなくても同様の反応になります。

今エンジニアではない社会人には考えられないかもしれませんが、プログラミングが「常識」となる時代がやってきます。
そしてこれから教育を受ける子供達は、10年後、20年後、確実にその「常識」を持って社会に進出してきます。

その時、上司となったあなたが「Hello World」のプログラムも書けないとなれば、後輩たちはどんな顔をするでしょうか。
四則演算の出来ない上司についていきたいでしょうか。
時代のせいにしても仕方ありません。それが彼らの「常識」なのですから。

プログラミングは突き詰めれば奥が深いですが、少しプログラムを書くぐらいであれば、そんなに難しいものではありません。
今の内に何としても学んでおかないと、という気になりませんか?

余談ですが、今後はおそらくクイズ番組などでもプログラミングの問題とか出てくるんじゃないでしょうか。
それほど当たり前のことになると感じています。

ということで、使わないからと言ってプログラミングを勉強しない理由にはならないという記事でした。

長くなりましたが、思っていたことが書けて良かったです。
ではまた!

色々買いました

こんにちは。

仕事に向けて色々購入しました。

◼️エアコン

まずはエアコン。
今まで作業場にエアコンが無く、リビングで作業してましたが、流石に買いました。
安いのを求め、色々見に行ってたんですが、やっぱネットが安いですよね。

ヤマダ電機の下のやつ買いました。

ただ、取り付けは9/2になるということ。
まあ最初はお客さんのところで作業するのでいいですが。
もう涼しくなってそう。笑

◼️ロッカー

コーナンで買いました。
一般的な会社にあるようなグレーの鍵付きロッカーです。
配送してもらって組み立てないといけないんですが、まだ届いてません。

◼️PC

Windowsを使うということで、購入しました。

元々はWindowsPCは家にあったのですが、2008年製のPCでCore-i5、メモリ4GBですが動作が重すぎて仕事では使えそうになかったので購入しました。
なんかディスク100%問題が起きてるので、不要なソフト整理して消せばマシになるかもと思って色々消したんですが、解決しませんでした。
ウィルスバスターが重い気がします。。。
Nortonに変えたら軽くなるかなあ。また試してみます。

で、Amazonで買ったのが下のやつ

この値段でこの性能やばくないですか?
Corei7-8550Uでメモリ8Gってだけでも安いと思うのに、SSDが512Gってすごい。
さらに2.1kgという軽さ。素晴らしいです。
USBTypeCにも対応してるし、すごい。

ただDVD等の光学ドライブはついていないので注意ですね。
普段使ってるMacにもついてないので、必要になったらUSBTypeCのドライブ買おうかなと思ってます。
調べたら3000円ぐらいで買えそうなので、PCの値段と合わせても安いですね。

あとはOfficeが付いてないので、購入するか、元々使ってたPCのライセンスを使うか。
でも元々のPCも仕事以外で使える状態にしておきたいので、購入かなー。

金曜日に届いて少し使ってみたんですが、動作が軽い!!
今のところ文句なしです。これでひとまずやっていきます。

◼️タブレット

仕事用ではないですが、最近Amazonで本を購入することが多いので、電子書籍で読もうかと思い、Fire HD8を買いました。

まだ電子書籍は購入してませんが、本棚にも余裕が無いし、本を持ち運ぶのも重かったので便利になると思います。
今読んでる本を読み終えたら購入していきます。

色々お金使ってしまっているので、これから頑張って稼いでいきます。

今日のところは以上です。
ではまた!

案件決定!

こんにちは。お久しぶりです。
ようやく暑さがマシになってきましたね。

◼︎ページ更新

やっと見た目を更新しました。
WordPressのテーマを変えたので、投稿一覧からもコメントができるようになってると思います!
サイドバー(ウィジェット)のページ一覧にホームを追加しました。
自己紹介と開発したものを書いてます。
開発したものが多くなったらページを分けます。

※スマホからは右上の三本横線が入っているのを押すとサイドバーが見れます。

勉強の内容も投稿していくんですが、(今日すでに投稿したんですが)、日記と区別できるようにカテゴリを分けておきました。
サイドバーのカテゴリから選んでください。

テーマ変えるだけでだいぶ見やすくなった気がする!

◼︎仕事

ついに、ついに、受注できる案件が決まりました!!!
しかもすごく面白そうな案件!!

実はクラウドテックさん以外にも、ギークスさんにも案件を探して頂いていました。
ギークスさんはすぐに何社も面談を組んで頂き、いろんな案件の話を聞くことができ、とても良かったです。
その中でオファーを頂いた案件もあり、単価は今回の案件より高かったのですが、作る物の内容とか、今後Rubyの仕事が頂けそうとかを考慮して、今回はクラウドテックさんに紹介をして頂いた案件に決めました。

経験も浅い自分にオファーや面談して頂いたクライアント様と短期間でここまで動いて頂いたギークスさんには本当に感謝していて、同時に申し訳ないと思っています。
今後また機会があれば是非宜しくお願い致します。

決まった案件はリモートに移行していくので、ちょっと自宅の環境を整えます。
借りるものもあるので、鍵付きロッカーとか色々買い足さないと。
とにかく面白そうで、魅力的な案件なので、とてもヤル気が出てます。
8/22(水)から稼働開始です。頑張ります!!

◼︎次の開発

以前ちょっとふざけたもの作ろうと思っていると書きましたが、先送りにします。

というのも、まず勉強を進めたいと思っているのと、ちょこちょこ顔を出させて頂いている勉強会の開催者の方が、森林浴プログラミングというイベントを開催されるらしく、そこで開発するものの準備をしようと思います。
午前に開発して午後発表みたいな形になるらしいので、事前に基盤を作っておいてそれの拡張みたいなことをその日にできたらなーと思ってます。
あと1ヶ月ぐらいなので、簡単なものを作る予定です。
(今の所、おみくじのようなものを考えてます。)

夜にはBBQもあるので楽しみ!!!

今日のところは以上です。
色々軌道に乗ってきて嬉しいです。
ではまた!

RubyとJavaScript

こんにちは。

ただ本を読んで勉強するだけだと頭に残らないので、途中からですが、今日からブログで学んだことをアウトプットしていこうと思います。

◼Ruby

現在標準添付ライブラリのところを勉強しています。

Tempfile

一時的なファイルを作るには

require 'tempfile'
Tempfile.open do |f|
f.puts 'temp' # 一時ファイルにtempと書き込み
puts f.path # 一時ファイルのパスを表示
end

とするとできるみたいです。

一時的なファイルが削除されるのは以下の4つの場合です。
・Tempfile#closeの引数にfalse/nil以外を指定して呼び出す
・Tempfils#close!を呼び出す
・インタプリタ終了時
・GC(ガベージコレクション)実行時

上記のようにブロックを渡してcloseしても削除されないので注意ですね。
ブロック終了のタイミングで削除するにはopenではなく、createを使うとできるみたいです。

YAML

yamlファイルを下記のようにオブジェクトとしてロードできる

require 'yaml'
yaml_string = <<EOS
remote:
host: localhost
EOS
p setting = YAML.load(yaml_string)
# {"remote"=>{"host"=>"localhost"}}

◼︎JavaScript

ES2015ではclassが使えるけどそれ以前ではfunctionを使ってクラスを表現するのか。。。

ちょっと癖がありますね。

classでは全てpublicになるみたいだし、思ったより厄介そう。慣れないとですね。