2020年5月5日火曜日

在宅勤務での課題



こんにちは。

久々の更新となってしまいました。

最近、SNSを見ていると「在宅勤務で疲れた」と言う意見がよく見られます。

実は、私も在宅勤務で疲れを感じていたりします。

まずは、現状について整理しますね。

2020年4月7日に、新型コロナウィルスによる緊急事態宣言が発令されました。

このブログを記載している2020年5月4日現在、緊急事態宣言が2020年5月31日まで延長がほぼ確実をなっていす。

ほとんどの企業に於いては、緊急事態宣言により在宅勤務を余儀なくされています。

つまり、ほとんど準備の時間がなく在宅勤務を行うようになった企業が多いと思います。

私が勤めている会社も、緊急事態宣言を期に社員全員が在宅勤務をするようになりました。

そして、みんな多かれ少なかれ疲れを感じているようです。

私は、プログラマーです。

IT業界で仕事をしているので、情報はほとんどがクラウド上で管理されています。

個人データは、社内のサーバーで管理されていますが、その他の情報は社外からでも取得できるように設定できるので、在宅勤務をするには最適な環境にいたのです。

つまり、作業時に必要な情報にアクセスできず、ストレスがたまることは、ほぼないのです。

では、何故疲れを感じてしまうのでしょうか。

新型コロナの終息には、まだまだ時間がかかりそうです。

なので、ここで個人として、企業として課題を整理してみたいと思います。

個人の課題


まずは、個人の課題です。

ストレスが溜まる理由は、個人の問題です。

結論を言うと以下になると思います。
  1. 運動不足
  2. ストレス管理
  3. 環境作り
個人の課題としては上の3点になるのではないでしょうか。

上の3点を上手く管理することで、少しは在宅勤務を快適に行えるようになるのではないでしょうか。

1.運動不足

在宅勤務をしていると、普段よりも運動量が減ります。

これまでは、通勤で知らず知らずに運動できていたものが、全くの0になるのです。

だからと言って、今は、ジムに行って運動することもできません。

「私は、ムキムキの筋肉は欲しくない」と言う人もいるでしょう。

しかし、在宅勤務をしていると、本当に運動する機会がなくなってしまいます。

運動をしないと、筋力が落ちますし、体力も落ちてしまいます。

なので、自宅でできる筋トレをするようにしましょう。

軽い筋トレをするだけで、筋肉の低下を防ぐことができますし、少なからずストレスの解消となります。

2.ストレス管理

では、次に課題となるのは、自分のストレス管理です。

自分のストレスと言うのは、あまり分からない場合があります。

隠れたストレスが溜まると、体調に異変が出てくることがあります。

そこまでくると、ストレスがストレスを呼び、悪いスパイラルに陥り、末には、適応障害やうつ病へとなってしまうのです。

私は、以前にもブログで書いたように適応障害を発症したことがあります。

未だに、私は薬を飲んでいる状態です。

私のことはさて置き、在宅勤務を行っていると、たくさんのストレスに晒されます。

誘惑に耐えるだけでも、大きなストレスになります。

もちろん、会社で仕事していても、多くのストレスに晒されますが、在宅勤務で働いていても、また違ったストレスに晒されます。

3.環境作り

残念ながら、私は、現在の状況は長期化すると考えています。

新型コロナウィルスの治療薬は、現在のところありません。

そのため、緊急事態宣言が今後、段階的に解除されたとしても、感染者を0にすることはできないでしょう。

感染者がいる以上は、今後、再拡大する可能性が残ってしまいます。

そうなると、在宅勤務ができる環境を自分で作る必要があります。

ソフト的な対応は、今回の在宅勤務で大体が整ったのではないでしょうか。

なので、今後は、自宅に快適に仕事できる場所を作れるように考えてみましょう。

少なくとも、ストレスを受けずに作業できる環境を作ることが課題となります。

もし快適に仕事ができる環境が自宅に作れると、新型コロナが終息したとしても、通勤して事務所に行って作業するメリットも減るのではないでしょうか。

企業の課題


では次に、企業の課題について考えてみたいと思います。

企業側としては、社員を新型コロナウィルスから守らないといけないので、在宅勤務できる環境を作り、社員のリスクを減らさないといけないですよね。

では、まだまだ新型コロナが終息しないとなったら、企業としてどのような課題があるのでしょうか。

結論から言うと以下の3点になると思います。
  1. タスク管理
  2. 新しい働き方の検討
  3. アフタコロナ
上の3点は、私が考える課題です。

でも、これまで在宅勤務を行ってこなかった企業に取っては、検討が必要となる課題ではないでしょうか。

1.タスク管理

これまで、事務所へ社員が出社して作業すると言う一般的な企業では、社員の作業時間を管理していたと思います。

でも、在宅勤務となると、作業時間を管理する意味ってなくなってくるのが分かるのではないでしょうか。

必要なのは、社員がどの作業をしているのか、今どのくらいの進捗なのかといったことだと思います。

在宅勤務でも作業時間を管理することは可能です。

例えば、作業時間中は、zoomやskypeでビデオ通話を有効にしておくことで、社員が作業しているかを監視することができます。

でも、zoomやskypeはサードパーティのサービスなので、サーバーが止まることも考えられます。

また、ネットワークの不調で接続できなことあるでしょう。

監視されている社員も、常に監視されているとストレスを溜めてしまうかもしれません。

つまり、作業時間を管理するのは、在宅勤務では非効率なのです。

それよりも、作業を小さなタスクに分割して、その進捗を管理する方が効率的だと思いませんか。

直接ミーティングが必要な場合のみ、zoomやskypeを繋げば十分だと思います。

ただ、これまで作業時間を管理していた企業が、すぐにタスク管理に切り替えることは難しいかもしれません。

でも、長期で在宅勤務が続くことを考えると、タスクを管理する方向へシフトする検討が必要になると思います。

ちなみに、IT業界では、タスクで作業を管理するやり方を長年してきました。

もし、タスクで作業を管理する導入する方法が分からないのであれば、知り合いのIT業者に相談してみてはどうでしょうか。

いろいろと良いアイデアを貰えると思いますよ。

2.新しい働き方の検討

次は、新しい働き方の検討です。

在宅勤務と言うのは、新しい働き方の1つですが、それ以外の働き方と言うのも検討する必要が出てくるのではないでしょうか。

次の、アフタコロナにも繋がるのですが、在宅勤務が可能となると、新型コロナウィルスが終息したからと言って、社員はこれまで通り、事務所で働きたいと思うでしょうか。

毎朝、満員電車に乗り事務所で作業することの意味が、なくなるのではないでしょうか。

そうなると、事務所を構える意味も違ってくるのではないでしょうか。

それどころか、社員が事務所に通勤可能な地域にいる必要なくなるのではないでしょうか。

つまり、全国から社員を受け入れられると言うことです。

もっと言えば、世界から社員を受け入れるのも難しくないかもしれません。

世界からとなると、時差の問題などがあり、いろいろと考える必要があるとは思うのですが、極論で言えば、世界中の優秀な人材を受け入れることが可能になるのです。

なので、現在だけでなく、将来に目を向けて、新しい働き方と言うのを今検討しておいた方が良いのではないでしょうか。

3.アフタコロナ

では、最後に企業として最も大事なアフタコロナの対応についてです。

現在、新型コロナの影響で経済も低迷していますよね。

新型コロナが終息したからと言って、経済がそれまでのように上がってくるかと言うと、私はそうは思いません。

つまり、経済はそのまま低迷状態が続くのではないでしょうか。

そうなると、金融崩壊やリーマン・ショックの時のように、それまでの売り上げは期待できなくなるのではないでしょうか。

なので、今のうちから、新型コロナの終息後の事業を検討する必要があると思います。

企業にとって、事業のシフトと言うのは、結構大きなことだと思います。

でも、新型コロナが終息するのを待っていると、本当に手遅れになりますよ。

特に中小企業にとっては、景気の低迷は、大きな影響を受けてしまいます。

少しの間は、政府の助成金などがあり、やっていけるのかもしれませんが、助成金が長期に渡って支援してくれるとは思いません。

なので、今のうちに、新型コロナが終息した後の事業について検討しておきましょう。

もし、新型コロナが終息した後に景気がV字回復したとしても、景気が低迷する時期は必ず来ます。

それが直ぐでなかったとしても、先に検討しておくことは重要だと私は思います。

まとめ

今回は、プログラマとしての意見ではなく、現状から考えらることについて書いてみました。

個人として、快適に在宅勤務ができるように考えておくことは、今後の働き方にも影響してくると思います。

また、同じような、世界的な疫病や景気悪化などが起きた時の準備にもなると私が考えています。

今は、初めてばかりのことで戸惑っているかもしれませんが、自分が社会人になって直ぐの頃のことを思い出してください。

おそらく、同じ心境だったのではないでしょうか。

今は辛い時期かもしれませんが、この世界的な疫病にみんなで頑張っていきましょう。

この経験は、必ず良い経験になると私は信じています。

では、今日はこの辺で。

















2020年4月17日金曜日

SESのメリット・デメリット


こんにちは。

今日は、SESのメリット・デメリットについて書いてみます。

私は、プログラマーとして社会に出てからずっと派遣でお客様の事務所に常駐して開発を行っていました。

当時は、特定派遣でしたが今はもうないですね。

今は、SES(システム・エンジニアリング・サービス)としてお客様先に常駐して開発するスタイルになっています。

SESの契約形態は、準委任契約になります。

私も、最近までSESでお客様先に常駐していました。

経験年数でいうと、10年以上自分の会社ではなく、お客様先にいたことになります。

もちろん、同じお客様ではないですけど、自分が勤める会社の中で開発するという経験の方がトータルでは少ないです。

SESの経験は十分にあるので、そのメリットやデメリットは十分に理解しているつもりです。

これから、プログラマーとして働きたいと考えている方や就職活動中の方には、SESは選択肢の一つになるとなる業務でもあると思います。

なぜかと言うと、中小のシステム企業は、ほとんどがSES業務を取り入れているからです。

これから、プログラマーを目指すのでしたら、以下の記事でIT業界について理解を深めてからの方がいいかもしれません。


前置きが長くなってしまったので、早速説明していきますね。

デメリット

「いきなりデメリットかよ」と言う声も聞こえてきそうですが、実際に長くSESでお客様先へ常駐しているプログラマーに聞くと、デメリットしか聞こえてきません。

なので、先によく聞かれるデメリットを説明しておきます。

結論を言うと以下の3点です。
  1. 技術力が偏る
  2. 自分のポートフォリオとして公開できない
  3. 契約更新が近づくと不安
この他にもデメリットは聞かれるのですが、デメリットとしてのよく聞くのはこの3点です。

1. 技術力が偏る

まず、長期でお客様先に常駐すると、その企業の開発手法はできるが、他では通用しないようになります。

よく使われる開発手法は、ウォータフォールモデルとアジャイル開発です。

以下の記事でそれぞれの詳細を書いてますので、読んでみてください。



企業は、上の開発手法をベースに、いろいろと改善を繰り返し、独自の開発手法を持っています。

そのため、SESとして長期で同じ企業に常駐すると、その企業の独自の開発手法に慣れてしまい、他の開発手法での開発が難しくなったりします。

特に、ベースとなる上の2つの手法が異なると、プログラマーとしては、その開発手法に慣れるのに苦労するでしょう。

と言うか、私は両方とも経験してきたので、ベースとなる開発手法が変わった時の苦労はよく分かります。

技術力が偏ると言うと聞こえが悪いですが、その企業での開発には精通していることになるので、その企業での開発に必要なプログラマーになっていると言うことなので、そんなにデメリットではないと私は思っています。

ただ、SESのデメリットとしては、一般的によく聞かれることです。

2. 自分のポートフォリオとして公開できない

SESで常駐する企業は、大手のシステム企業、もしくは、大手のシステム開発を請け負っている企業が多いです。

そうなると、業務につく際、守秘義務契約を結ぶ必要があります。

契約内容には、システムに関する一切の口外が禁止されています。

この契約は、契約終了後も有効になるように記載されていることが多いため、自分のポートフォリオとして公開できないのです。

大きなシステムの開発や有名なシステムの開発に携わったとしても、そのことを公開できないのです。

できるのは、そこで培ったプログラム言語能力のみとなります。

自分のポートフォリオに公開することができないのですから、「そのプログラム言語使えますよ」としか言えないのです。

守秘義務契約を結んでシステムの話を口外すると、大変なことになりますので注意してくださいね。

数年に1度程度ですが、守秘義務違反で問題になるケースを耳にしますので、これからプログラマーになる人は、しっかり注意してください。

3. 契約更新が近づくと不安

同じお客様先に長期で常駐していると、お客様とも仲良くなり、契約満了で次のお客様先へ移動となるのが不安になる人がいます。

それに、SESでシステム開発をした場合、納品までそのシステムに関われずに移動となることが多いです。

ガッツリそのシステムの開発に携わると、システムに情がわくこともあります。

「えっ!」って引かれるかもしれませんが、自分で作り上げたシステムは可愛いのですよ。

そのシステムが社会へ投入されるとことを見れないと言うのも、不安になる原因の場合があります。

私がSESで常駐していた頃も、契約更新の時期になると不安になってました。

特に、プロジェクトの工程の境目の時期は、次の工程がどの程度の規模かで人を入れ替えるお客様が多いので不安になってましたね。

ブラックな企業だど、契約更新の数日前に継続が決まったり、契約更新を忘れられたりします。

通常は、1ヶ月前までに継続するのか、移動するのか決まります。

契約更新が数日前にならないと分からないような企業は、ブラックな企業と思って問題ないと思いますので、ちょっと考えた方がいいかもしれませんね。

メリット

実は、SESでお客様先へ常駐してシステム開発することには、結構メリットがあります。

私が、ずっとお客様先で常駐してシステム開発していたのも、メリットが大きいと思うところがあったからです。

先に結論を言ってしまうと、以下の3点になります。
  1. 経験を積める
  2. いろんな人に会える
  3. いろんなシステム開発に携わることができる
この3点は、私が長年お客様先に常駐してシステム開発をやっていて、メリットだと思ったうちのトップ3です。

1. 経験を積める

SESの1番のメリットは、これでしょう。

プログラマーの経験が浅いうちは、いくらプログラミングができると言っても、経験が浅かったらあまり仕事をもらえません。

まずは、経験を積むことです。

自分が勤める会社で請負開発をやっているのなら、そこで経験を積めると思います。

しかし、請負開発って結構リスクがあるんですよね。

システムの品質の問題とか、セキュリティの問題とか、考えないといけないことがあるので、それなりに経験を積んだ人がいないと難しいと思います。

それに比べて、SESでお客様先へ常駐してシステム開発していると、その企業には、開発するシステムに精通した人がたくさんいます。

つまり、自分が経験の浅いプログラマーであったとしても、聞ける人がたくさんいるんです。

経験者がたくさんいるって安心しますよね。

そこで、経験者の知識を吸収しながら経験を積むと言うことは、経験の浅いプログラマーには格好の環境だと思います。

SESで常駐し3年もシステム開発を行っていると、結構な経験を積むことができます。

経験を積むと、自分のできる範囲が広がるので、だんだんと面白くなってきます。

ただし、長期で同じ企業に常駐していると、次第に上に書いたようなデメリットが目についてくるので、ある程度できる範囲が広がったところで常駐先の企業を移動することをお勧めします。

2. いろんな人に会える

SESでプログラマーを入れている企業は、ある程度の規模を持った企業です。

そのため、同じようにSESで集められたプログラマーがたくさんいます。

経験を積んだ人や、経験が浅い人、それに、面白い経験を持った人などがたくさんいます。

そういう人たちと会えると言うのは、SESのメリットの一つだと私は思っています。

特に、いろんな経験を積んだ人の話を聞くのは面白いですよ。

いろんな人たちに囲まれて作業していると、開発経験だけでなく、人生経験も学べたりします。

私の場合だと、フリーランスのプログラマーに多く会いました。

フリーランス のプログラマーには、結構苦労している人や、月に結構な額を稼いでいる人もいました。

私は、大手の企業へ常駐していたので、たまに有名な方とばったりと言う経験もありました。

いろんな人と会えると言うことは、いろんな意味で刺激になるんですよね。

将来、どんなプログラマーになりたいとか、どんな人生を送りたいとか、結構参考になることが多いです。

また、いろんな人と知り合いになっておくと、仕事がその方を通じて入ってくることもあるので大事にした方がいいと思います。

3. いろんなシステム開発に携わることができる

長期で同じお客様先に常駐していると、上に書いたようなデメリットが顕在化してきます。

そのため、私は、長くても1年程度で常駐先の企業を移動するようにしていました。

でも、常駐する企業によっては、開発のスパンが短くて、いろんな開発に携わることができます。

そう言う場合は、少し長くいてもいいかもしれません。

私も、開発スパンが半年とか3ヶ月とか回転の早い開発を行っている企業にいたことがあるのですが、その企業には5年ほどお世話になりました。

でも、やはり、長期で同じ企業に常駐するのはお勧めできません。

開発手法は同じなので、やはり技術力に偏りが出てしまいます。

経験を積んでいろんなシステム開発をしていくと、たまに、すごく大きなシステム開発に携わることができる時があります。

詳しくは書けないのですが、大手企業の有名なシステムの開発とか、みんなが普通に使っているアレの開発とかですね。

有名なシステムの開発に携わって、そのシステムを使っている人を見たりすると、結構嬉しかったりします。

自分が作ったこの機能が、今目の前の人が使ってるとかなると、微笑んでしまっていたりします。

つまり、SESでお客様先へ常駐してシステム開発をしていると、いろんな経験ができるのです。

まとめ

SES業務には、確かにデメリットがあります。

でもそれは、長期で同じ企業に常駐した場合の話です。

経験の浅いプログラマーにとっては、経験を積めて、いろんなシステム開発で、経験を積んだ人とコミュニケーションをとることができるのです。

そう考えると、デメリットだけに目を向け、SES業務を避けるのではなく、ある程度の経験を積む間、SESで経験を積むことは、今度、プログラマーとして働くための十分な経験になると私は思っています。

これからプログラマーを目指す人や現在就活中の人は、中小のシステム企業で、あえてSESで常駐することを考えてもいいと私は思います。

現在は、転職をすることは、普通にあることです。

SESで十分に経験を積んだ後で、転職をして大手のシステム企業へ入ることも選択肢としてもいいと私は思います。

最終的に自分の人生を選択するのは、あなた次第です。

このブログがあなたの選択の参考に慣ればと思っています。

では、今日はこの辺で。










2020年4月10日金曜日

プログラマーに向いている人は?


こんにちは。

数年前、新卒で入社した新人プログラマーに「私はプログラマーに向いてないみたいです。」と相談されたことがあります。

私も、プログラマーとして働き出したばかりの頃は、「自分にはプログラマーという仕事は向いてないな」と思いながま働いていました。

そして、気づけば約20年プログラマーとして働いています。

約20年働いていても、たまに、「自分には向いていない」と思うことがあります。

では、プログラマーに向いている人は、どういう人なのでしょうか。

結論を言ってしまうと以下になります。
  • PCを使うことが好きな人
  • 物作りが好きな人
  • 諦めないで続けられる人
おそらく、この3つを持っている人が、プログラマーに向いているのではないかと私は思います。

では、以下でそれぞれについて詳細に説明しますね。

PCを使うのが好きな人

私が初めてPCを使ったのは、大学に入ってからです。

もう20数年前のことです。

当時は、windows95で大学内にある情報室でWebサイトを見るのが大好きでした。

時間があれば、情報室に行ってWebサイトを見ていました。

今では、生まれた時には、すでに家にPCがあって、小さい頃からPCを触ってきた世代なんですよね。

人によっては、小さいことからPCでゲームをしていて、ゲームのチャットで仲間と話すことでタイピング力を磨いてきた人もいます。

つまり、最近の新人でPCを使うのが苦手という人は少なかったりします。

もう少しすると、PCを使うのは苦手だけど、携帯やタブレットなら抵抗がないという世代が入ってくるようになるのでしょうね。

ただ、プログラマーとして働くとなると、携帯やタブレットではなく、PCが好きでないと結構辛い作業になってしまうかもしれません。

実際の作業は、PCを使ってプログラミングする作業なので、キーボードに慣れていないとプログラミングするだけでストレスになるかもしれません。

物作りが好きな人

次に必要となるのは、物作りが好きかどうかではないでしょうか。

プログラマーの仕事は、結局、今ないシステムを開発する作業となるので、物作りが好きな人が向いているでしょう。

ただ、プログラミングができないと向いていないのかというと、そうは言えません。

結論を言ってしまえば、プラモデルを作るのが好きな人でもいいのです。

私も、小さい頃から何かを作るという作業は好きでした。

父親が大工だったので、作業場で端材をもらって釘を打ったり、ノコで切ったりしていました。

また、ミニ四駆を作ったり改造したりするのも好きでしたね。

そのような環境で育ってきたので、そもそも物作りが私に取っては楽しいものだったのです。

プログラマーが物作りを好きでないといけない理由は、システムを作るだけでなく、その先を考えられるかということにつながると思います。

物作りが好きな人は、作ったものでどう遊ぶかまで考えて作ります。

同じように、プログラマーも、システムを作りながら、そのシステムをどう使うと面白いか、どれくらいの速度で動作したら面白いか、といったことを考える必要があります。

プログラマーの中には、システムを作ることよりも、既にあるシステムの使い方を考える方が面白くなって、営業へ転職していく人もいます。

まあ、それも分からないわけではありません。

自分でプログラミングして作るよりも、既にあるシステムを組み合わせて新しいものを作って売った方が利益にもなりますし、システムの改修も自分でする必要がないですもんね。

諦めないで続けられる人

ここまで、いろいろと書いてきましたが、結局は、諦めないで続けられる人がプログラマーには向いていると思います。

これは、プログラマーに限らずどの業界でも同じですよね。

私も、冒頭で書いたように、今だに「自分には向いていない」と思ってしまうのですが、結局は、諦めないで続けてきたというのが、今の自分がある理由だと思っています。

向いてる、向いてないというのは置いといて、諦めないで続けられる人ってどの業界でも一人前になっていくものです。

なので、向いてる、向いてないを考える時間があるくらいなら、目の前の仕事をどんどんこなしていきましょう。

目の前の仕事に集中していると、時間はすぐに過ぎていきます。

気づけば、経験が積み上げられて、いつの間にかプロになっているものです。

諦めて辞めてしまうことはいつでもできます。

いつでもできる事は、あとでもいいじゃないですか。

まずは、今積み上げられる経験を積み上げていけば、転職したとしてもやっていけると思うのです。

逆に、経験を積み上げる前に辞めてしまう人は、どの業界でもやっていけないのではないでしょうか。

そういう人って、人から仕事が与えられるのを待っている人が多いんですよね。

本気でプログラマーになりたいと思っている人は、仕事を与えてもらうのではなくて、自分から取りに行ってるんですよね。

まとめ

上でも書いたように、プログラマーに向いている人は、諦めないで続けられる人なのです。

諦めないで続けていれば、知らないうちに一人前になっているのです。

ちなみに、私に相談してきた人は、今でもプログラマーとして働いています。

今では、プログラマーとして独り立ちして、現場でバリバリ働いています。

では、今日はこの辺で。

2020年4月8日水曜日

プログラマーになるのに資格を取る必要はない


こんにちは。

よく後輩などに、「仕事できるようになるには、何か資格を取った方がいいですか?」みたいな質問をされます。

このような質問をしてくる後輩は、大体、ある程度のプログラミングができるけど、独り立ちにはまだ早い人が多いです。

たまに、ベテランの人でもこのような質問をしてくる人がいますが。。。

ということで、今日は、プログラマーに資格は必要かについて書いてみようと思います。

結論から言うと以下になります。
  • 資格を取る必要はない
  • 机上で勉強するくらいなら毎日PCを扱いましょう
  • どんどん挑戦すると独り立ちも早くなります
と言うことになります。

ベテランから「資格を取った方がいいですか?」なんて聞かれても、正直「知りません」と言う感じなんですけれど、後輩とかだと上の3つをよく説明しています。

資格を取る必要はない

プログラマーとして仕事をするのに資格は必要ありません。

就職や転職するときに、面接で「資格何か持ってますか?」と聞かれますが、これって資格を持っている人がいると営業しやすいからなんですよね。

「うちには、こういう資格を持っている人がいますよ」って言うことで、資格を持ってない人と持っている人では、営業の仕方が違ってくるんですよね。

それに、会社のアピールにもなるんですよ。

IT企業のサイトとかを見てみると、「この資格持っている人が何名」とか書かれていて、有名な資格だと結構アピールにもなるんです。

でも、実際の作業で資格の勉強で得た知識が使えるかというと、ほとんど使えないんですよ。

特にSES(システム・エンジニアリング・サービス)とかで、客先に常駐して作業するプログラマーとかは、マニュアルに沿った開発をすることが多いので、資格がなくても作業を進められるんですよね。

そういう企業じゃないとSESで人を入れて開発なんてできないですもんね。

社内SEとかで仕事する場合も、現状動いているシステムに対して改修をしたり、機能を追加したりという作業が多いので、そうなると全く資格で勉強した知識を使わないというようなことになります。

じゃあ、全く意味がないかというと、そうとも言い切れないです。

システムの基礎については、机上で勉強しておく必要があるので、資格を取る勉強というより、必要な知識を身に付ける勉強をすればいいと思います。

資格まで取ろうと頑張ってしまうと、必要のない知識も頭に入れないといけないので、正直、時間と労力の無駄遣いになってしまいます。

机上で勉強するくらいなら毎日PCを扱いましょう

本を読んでもプログラマーとしての資質にはなりません。

それよりも、毎日PCを扱いましょう。

「プログラマーとして毎日仕事でPC扱っているから、大丈夫でしょう」と思うかもしれませんが、ここでPCを扱うというのは、日常生活でということです。

仕事とは別にプログラミングするのもいいですし、ブログを書くのでもいいです。

つまり、仕事とは別にプライベートでもPCを扱いましょう。

今では、PCさえあれば、動画も音楽も聞けますし、情報も収集することができます。

常にPCを扱っていると、実際、仕事でプログラミングする時に、情報の収集とかでも断然差が出ます。

常にPCを扱っていると、自分が使っているソフトウェアにどういう機能があるのかも分かってきます。

一般的な機能というのは、どのソフトウェアも統一されていたりします。

そのため、実際にソフトウェアを作るときにも、「こういう機能は普通についてるよね」と組み込むことができます。

実際、ソフトウェアを使い慣れている人が作ったソフトウェアと、使い慣れていない人が作ったソフトウェアでは、使いやすさに大きさ差が出てきます。

その辺を意識できるかどうかが、初心者プログラマーが独り立ちできるかどうかの境目になっていたりします。

どんどん挑戦すると独り立ちも早くなります

結局、最終的には、これが大事なことになります。

初心者でプログラミングに自信がない人って、自分から作業をしようとしていないんですよね。

でも、勉強ばかりしていても、実際に仕事としてプログラミングをして、経験を積んでいかないとプログラマーとして独り立ちすることは無理なんです。

任されるのを待っていても、できる人に仕事は集まっていくんですよね。

時間があるプロジェクトや大企業なんかだと、先輩と一緒に作業することで経験を積むこともできるかもしれませんが、ほとんどの企業ではそこまで余裕はないですよね。

だから、自分から作業を取りに行かないと、経験なんて積めないんですよ。

じっと待っていても、経験の浅いプログラマーにくる仕事なんて、雑用に近い仕事だったり、プログラミングとは程遠いテスターとしての仕事しか来ないんです。

逆に、自分から作業を取りに行くと、ベテランのプログラマーは、「大丈夫かな。。。」ってちょこちょこと見に来てくれたりします。

なので、詰まっていても、すぐに聞けたり、自分の知らないようなことを先輩から学んだりと、その作業が終わる頃には、かなり成長できていると思うのです。

そうやって、何度も挑戦していくうちに、先輩からも信頼されるようになり、独り立ちできるのです。

初めて作業を取りに行く時は、怖いと思います。

自分に自信もないので、できないんじゃないかと言った不安が出てくるのは当たり前です。

でも、そこを乗り越えることで、プログラマーとして独り立ちできるのですから、ちょっと勇気を出して「その作業やらせてください」と言ってみましょう。

先輩も、本当に無理と思ったら渡しませんから大丈夫です。

でも、その場合は、別作業をもらえると思いますよ。

まとめ

まとめると、経験の浅いプログラマーが独り立ちするには、資格勉強ばかりしていても意味がないのです。

PCを使い慣れて、一般的なソフトウェアに着いている機能に慣れておくこと。

仕事は、自分から作業を取りに行くこと。

これを繰り返すことで、プログラマーとして独り立ちしていくのではないでしょうか。

つまり、今回紹介した3点を繰り返すことで、周りよりも早くプログラマーとして独り立ちできると思いますよ。

では、今日はこの辺で。

2020年4月5日日曜日

コーディング規約の重要性

こんにちは。

今日は、コーディング規約の重要性について書いてみようと思います。

結論から言うと以下になります。
  • コーディング規約を無視したソースコードは読み辛い
  • フレームワークを使う場合はフレームワークのコーディング規約を使う
  • 独自コーディング規約よりも公式のコーディング規約を使おう
個人でWebサービスやソフトウェアを作っている時は、コーディング規約なんて気にしないと思います。

でも、チームで開発する時は、コーディング規約はとても重要です。

この辺を、私の経験を踏まえながら書いていきますね。

コーディング規約を無視したソースコードは読み辛い

チームで開発をしていると、コードレビューをします。

私も何度もチームメンバーのコードレビューをしてきました。

でも、コーディング規約を無視して書かれたソースコードは本当に読み辛いです。

コーディング規約を無視してコーディングする方は、大体がソースコードは動けばいい、くらいにしか考えていない方が多いです。

でも、考えてください。

システムは、一度作ってしまえは終わりと言う時代は昔の話です。

今は、システムは、育てていく時代です。

つまり、自分が書いたソースコードは、いつかは修正されるのです。

読み辛いソースコードを書いていると、修正をする方がとても苦労します。

苦労するだけじゃなくて、修正に時間がかかってしまい、修正する方へ大きなストレスを与えるのです。

私も、プログラマとして働き出したばかりの頃は、コーディング規約を重視していませんでした。

でも、時間がたった後で、自分のソースコードを修正する時、自分ソースコードなのに読み辛く、修正に多くの時間が必要でした。

自分の作ったソースコードに対して、「誰だこんなソースコードを書いたのは」と突っ込んでいたくらいです。

なので、チームを持つようになってからは、コーディング規約に沿ってないソースコードは、時間がなくても書き直してもらうようにしています。

若いプログラマの中には、不平・不満を言う方もいます。

そういうプログラマには、コーディング規約の重要性と、今のシステムを育てて、今後もっといいシステムにしたい意思を伝えるようにしています。

フレームワークを使う場合はフレームワークのコーディング規約を使う

仕事としてシステム開発をしていると、フレームワークをよく使います。

最近では、いちからスクラッチで開発することはほぼありません。

フルスクラッチで開発する時も、laravelやreactなどのフレームワークを使用します。

その場合は、laravelやreactのコーディング規約に沿ってコーディングを行うことで、読みやすいソースコードになります。

例えば、Wordpressのプラグイン開発をする場合を考えてみましょう。

Wordpressのプラグインを開発する場合、Wordpressで公開されている関数をよく使います。

そんな時、Wordpressのコーディング規約を知っていると、公開されている関数や変数を探しやすくなります。

また、他のプラグインと連携するのも容易になります。

これが、全く違うコーディング規約を使ったらどうなるでしょうか。

まず、Wordpressで公開されている関数を見つけるのに時間がかかってしまいます。

もしかすると、同じような処理をする関数を1から作ることになるかもしれません。

でも、自作した関数は、セキュリティ的に大丈夫か、想定外のデータを取得した場合の処理は適切かなど、検討しなければいけないことが増えてしまいます。

他のプラグインとの連携でも同じことが考えられます。

Wordpressのコーディング規約に沿って開発するだけで、少しでも手間が省けるのです。

以下にワードプレースのコーディング規約へのリンクを貼っておきますね。

Wordpressコーディング規約 (外部リンク)

独自コーディング規約よりも公式のコーディング規約を使おう

大手のシステム企業では、独自のコーディング規約を設けている所もあります。

でも、これからコーディング規約を作るのであれば、公式のコーディング規約を使いましょう。

何故かというと、コーディング規約を作ることが、あなたの企業の業務ではないからです。

そこに、時間をかけるくらいなら、システム開発をすることに注力した方が充分に利益につながります。

何度も同じコーディング規約を使用していると、少しずつ足りないなと思う点が見えてきます。

足りない点を既存のコーディング規約に追加していけばいいだけなのです。

私が勤めている会社でも、数年前に独自のコーディング規約を作ろうとした時期がありました。

いろんなコーディング規約のいいとこ取りをしようと考えていたのですが、結局、公式のコーディング規約を使用することになりました。

理由は簡単で、いろんなコーディング規約を読んでまとめる充分な時間が取れないというのが理由でした。

また、公式のコーディング規約には、基本的なことは定義されています。

基本的な規約に沿ってソースコードをコーディングするだけでも、読みやすいソースコードになりますし、システム全体の統一性も保たれます。

以下に、私が勤める会社で使用しているコーディング規約のリンクを貼っておきますね。

PHP Standards Recommendations(外部リンク)

まとめ

コーディング規約は、チームで開発する時には、とても重要です。

でも、ベテランのプログラマでも、コーディング規約を軽視している方が結構いるように思います。

ただ、自分が書いたソースコードを、後々、誰かが読んで、もっといいソースコードに書き換えてくれると考えると、コーディング規約に沿ってコーディングする大切さが分かるのではないでしょうか。

では、今日はこの辺で。

おまけ

システム開発ついて書いた過去のブログを以下に紹介します。