ラベル エンジニア の投稿を表示しています。 すべての投稿を表示
ラベル エンジニア の投稿を表示しています。 すべての投稿を表示

2020年8月26日水曜日

プログラマーでうつ病になる人が多いけど、何故そんなに多いのかな?

以前、知り合いから「プログラマーでうつ病になる人は多いですね?」と言われたことがあります。
私も7年ほど前にうつ病と診断されて治療中なので、
「プログラマーはうつ病になりやすいのか?」
「プログラマーは何故うつ病になるのか?」
について考えてみました。

結論を言ってしまうと以下になります。
  1. プログラマーでうつ病になる人は多いです。
  2. プログラミングは、動かないことがよくあるため悩みも多くなってしまいます。
  3. システム開発は、プログラマーに依存しているの原因かも。

私は、プログラマーとしての経験が10年以上あり、これまで多くのプロジェクトに携わって来ました。 そして、私自身うつ病で苦しんだ経験があり、現在でも治療中ですが心身ともに安定した生活が遅れています。

こんな私が、以下で詳しく説明していきます。

1.プログラマーでうつ病になる人は多いです。

ぶっちゃけ、IT系でうつ病になる人は多いです。

私が携わったプロジェクトにも多くのうつ病患者がいました。
大体、うつ病になるプログラマーは、責任感の強い方や、作業の早いプログラマーです。
仕事は、そのような方に集まるのです。

これは、プログラマーだけではないと思います。

2.プログラミングは、動かないことがよくあるため悩みも多くなってしまいます。

プログラマーがプログラミングすると、すぐに動くプログラムができると思うかもしれません。

しかし、結構動かないことが多いのです。

プログラマーは、何故動かないかを、ひとつひとつロジックを追いながら、正常に動くプログラムへ修正していくのです。
なので、何故プログラムが正常に動かないかが分からないと、ストレスも溜まっていくのです。

システム開発は、チームで行っているように見えますが、それぞれが異なる処理をプログラミングしています。

そのため、個人で作業しているのと同じなのです。

その様なところも、プログラマーにうつ病が多い原因なのではないでしょうか。

3.システム開発は、プログラマーに依存しているの原因かも。

システム開発は、プログラマーに依存しているため、うつ病になる方も多いのではないでしょうか。

上にも書きましたが、システム開発は、チームで行っている様で、実は個人で行っているのです。
特に作業が早いプログラマーには、予定以上の作業が流れて来ます。
その分、プログラマーへかかるストレスは大きなものになるのです。

チームで開発を行うと、チームメンバーには、プログラマーとして経験が長い方から浅い方までがいます。
なので、均等に作業を分配してしまうと、経験が浅い方が担当したプログラミングが遅れてしまいます。
それをカバーするために、経験のあるプログラマーへ多くの作業が流れてしまうんです。

私は、経験が浅いメンバーのチームで開発を行っているときに、うつ病になってしまいました。

この様な主張をすると、「チームリーダーが無能なんだ」と言った意見が聞こえて来ますが、チームリーダーのみに責任を押し付けるのはどうかと思います。

私も、チームリーダーをしたことがありますが、集められたメンバーの経歴などは、ほとんど知らされません。
特に大きなチームになると、パートナー会社からの出向だったりで、その人がどこまでできるのか分からないまま、開発を開始するのです。

つまり、システム開発がプログラマーに依存しているため、プログラマーはうつ病になり易くなるのでしょう。

では、どの様にすればプログラマーのうつ病は減るのでしょうか?

結論としては、以下の対応が必要だと思います。
  • 無理をして仕事をしない。
  • 1日5〜6時間で終わるタスクにする。
  • 適度に運動する。
  • 心療内科を受診する。
  • 休みをとる。

あなたが仕事をしなかったとしても、仕事は周ります。
逆に言うと、あなたが仕事をしないことで、仕事が回らない様なら、会社が社員に依存する風土があると言うことです。
その様な会社は、将来性がありません。
転職をお勧めします。

ストレスが溜まったら適度な運動が効果的です。
30分程度のウォーキングで十分です。

ストレスで心身に影響が出たら、心療内科を受診しましょう。
心療内科で医師と相談し、適切な薬などを処方してもらいましょう。

少し休暇を取るのも良いと思います。
収入が気になるかもしれませんが、会社員の場合は傷病手当が受けられます。

詳しく書くと、長くなるので別のブログに書こうと思いますが、基本、無理をしないことです。

まとめ

今回は、「プログラマーでうつ病になる人は多いのか?」「プログラマーは何故うつ病になるのか?」について考えてみました。

結論として、プログラマーでうつ病になる人は多いです。

原因としては、プログラミングは、動かないことがよくあるため悩みも多くなり、ストレスも溜まりやすいのです。
また、システム開発は、プログラマーに依存しているため、プログラマーへのストレスも大きくなると思われます。

では、その改善方法としては、無理をしないで、適度に運動し、それでもダメなら、心療内科を受診しましょう。

プログラマーのみなさん、無理をしないようにしましょうね。

では、今日はこの辺で。

2020年8月14日金曜日

PHP初心者が勉強する方法は?


こんにちは。

最近、「プログラミングを勉強しています」という声をよく耳にします。

特にWebエンジニアを目指している方が多いようです。

Webエンジニアになるには、以下の技術が必要になります。
  • HTML
  • javascript
  • PHP
HTML、javascriptは、クライアント側で主にデザイナーが担います。

PHPは、サーバー側でエンジニアの仕事となります。

そこで今回は、PHP初心者へむけて勉強方法を書いていきます。

ちなみに、私は、組み込みエンジニアとして7年ほど、その後は、Webエンジニアとして10年ほど働いて来ました。

PHP初心者が勉強する方法は?


PHPを勉強する方法は、以下になります。
  1. 基礎を勉強する
  2. ソースコードを読む
  3. 実際に作業を行う
PHPに限らず、プログラム言語を勉強する方法は、上の3つになります。

では、詳細を以下で説明します。

1.基礎を勉強する


何をやるにも基礎は大事です。

なので、PHPの勉強も基礎からやっていきます。

まずは、Hello World からですね。

いろんなプログラム言語を習得している方でも、はじめはここから始めます。

理由は、使用する環境が正常に動作するかの確認です。

その後は、プログラミングの基礎の勉強をします。
  • 分岐
  • ループ
  • 関数
  • クラス
この辺ですかね。

PHPの基礎については、Webで「PHP 入門」と検索すれば、たくさん出て来ますので、そこで勉強すればOKです。

なので、ここでは細かく取り上げません。

2.ソースコードを読む


PHPの基礎が理解できたら、一旦、他の方が書いたソースコードを読んでみましょう。

この、「ソースコードを読む」を飛ばして、実際に作業をする方が多いですが、そういう方が書いたソースコードは、読み辛く、無駄な処理が多いです。

ソースコードは、同じ処理や同じような処理を、関数やクラスでまとめて重複しないようにするのが1番です。

そう言った方法は、他の人が書いたソースコードを読むことで身に着きます。

まずは、ソースコードを読んでいて読みやすいと思うソースコードを真似することで、自分でも読みやすいソースコードが書けるようになるのです。

また、プログラミング言語には、それぞれにコーディング規約があります。

PHPだとSRP-2ですかね。

コーディング規約を読むことも必要なのですが、いろんなソースコードを読んでいると、次第に身に着いてきます。

今では、githubなどで多くのソースコードが公開されています。

ここで必要なことは、ロジックを理解する事ではなく、ソースコードの書き方や、クラスのまとめ方を見るようにしてください。

3.実際に作業を行う


ここまで来ると、勉強はおしまいです。

実際に作業をしましょう。

最初は、難しいと思います。

実際の作業は、勉強とはレベルが違います。

しかし、勉強ばかりしていても、実績が着きません。

なので、実際に作業をしながら勉強するようにしましょう。

PHPには、標準でいろんな関数が用意されています。

Webで検索すれば出て来ますので、困ったときは検索するようにしましょう。

それでもない時は、ロジックから考えて作ることになります。

技術は本では身につかない


PHPなどのプログラミングもそうですが、技術と言われるスキルは、本を読むだけでは身につきません。

本で知識を習得したら、手を動かし実際にやってみる必要があるのです。

プログラミングを習得するなら、本を読みながら手を動かし、実際にソースコードを書いてみて動かしてみるのです。

最初は、動かないことが多いかもしれません。

でも、それを乗り越える事でスキルは身についていくのです。

そして、基礎勉強が終わったら、実際に作業をする必要があります。

上にも書きましたが、実際に作業としてプログラミングを行うと、壁に何度もぶつかります。

それを、一つずつ乗り越える事で、実績が積み上げられるのです。

まとめ


今回は、PHP初心者が勉強する方法について書きました。
  1. 基礎を勉強する
  2. ソースコードを読む
  3. 実作業を行う
この方法は、他のプログラミング言語を勉強する時も同じです。

コツコツと勉強することができれば、数ヶ月で実際に作業ができるまでに成長できます。

でも、モチベーションが保てなくて挫折する人も多いです。

そんな時は、お金を払ってプログラミング講座を受講するのも良いと思います。

お金を払って勉強しても、実際にプログラマーになれば、すぐに元が取れますし、勉強するモチベーションも保てると思いますよ。

では、今日はこの辺で。

2020年8月1日土曜日

ITエンジニアのスキルアップ



こんにちは。

今回は、ITエンジニアのスキルアップについて書きます。

新卒でITエンジニア会社の内定をもらっても、これからどのようなスキルアップがあるのだろうと不安に思うでしょう。

私も、新卒で内定を貰った時は、嬉しさと同時に不安が込み上げて来たのを覚えています。

結論を言うと、ITエンジニアとして就職した人の一般的なスキルアップは以下になります。

  1. テスター
  2. プログラマー
  3. 機能リーダー
  4. システムエンジニア 
  5. プロジェクトマネージャー

これは、理想的なスキルアップで、人生は理想的にはいきません。

1.テスター



新人でITエンジニアとして就職すると、まずはテスターとしての仕事をすることになるでしょう。

開発中のシステムを試験仕様書に基づいて試験していくのですが、結構、大変だったりします。

テスターの仕事って、同じ作業を何度も繰り返すことになります。

最初は楽しいのですが、数週間で飽きてくるんですよね。

それに、不具合を見つけると、プログラマーの先輩からウザがられるんですよね。

私もそうでした。

不具合を見つける数が多かったため、先輩プログラマーからよくウザがられていました。

なので、私は、不具合が発生すると、本当に不具合なのかを仕様書や設計書、プログラムを調査した上で、先輩プログラマーへ報告するようにしました。

そうすることで、プログラマーへのスキルアップを成し遂げたのです。

2.プログラマー



プログラマーは、多くのITエンジニアが目指すポジションだろうと思います。

しかし、プログラマーの作業範囲は、思った以上に広範囲です。

基本設計から詳細設計書を作り、製造、単体試験を行う事が仕事です。

プログラマーは、動くものを作るのが仕事です。

ですが、正常なデータで動くものだけを作るのではなく、異常データや想定外のデータでも動くものを作る必要があります。

なぜこのようなことを書くかと言うと、正常なデータ、異常なデータで動くものは作っても、想定外のデータで動くものを作るプログラマーは少ないのです。

想定外を想定でいるようになると、プログラマーとしては上級と言えるでしょう。

3.機能リーダー


上級のプログラマーとなると、部下を着けてさらに大きな機能を任されるようになります。

機能リーダーは、自分で作業する事がなくなります。

代わりに、期間内で最大の物作りの戦術を考え、実行する事が仕事となるのです。

つまり、マネージメントです。

どのようにすればチームの力を最大化できるのか、どうすればチームの負荷が下がるのかを考えるのが機能リーダーの仕事になるのです。

4.システムエンジニア


次のステージは、システムエンジニアになります。

システムエンジニアの仕事は、お客様との打ち合わせで、お客様が求めるシステムの要件をまとめることです。

システムの仕様書を作成するのはお客様です。

しかし、中小企業のシステム開発では、仕様書作成もシステムエンジニアが担うことになる事がよくあります。

そのためには、お客様のビジネスを理解し、必要とされている要件を検討する必要が出て来ます。

5.プロジェクトマネージャー


プロジェクトマネージャーは、ITエンジニアとして、最上級のポジションと考えている人が多いかもしれません。

プロジェクトの責任者であり、最終決定権を持つことになります。

なので、常にコストとリスクについて検討する必要があります。

中小企業のシステム会社の場合


中小企業のシステム会社は、機能リーダー、システムエンジニア、プロジェクトマネージャーがいない事が多いです。

その代わりの業務を、プログラマーが担っています。

そのため、プログラマーの仕事の負担は、もっと上がってしまいます。

なので、プロジェクトに遅延が発生する可能性が高いのです。

まとめ


一般的にITエンジニアとしてのスキルアップは、上に書いた5つです。

  1. テスター
  2. プログラマー
  3. 機能リーダー
  4. システムエンジニア 
  5. プロジェクトマネージャー

1、2は物作り、3、4、5はマネージャーとなります。

中小企業のシステム会社では、3、4、5を専門でやる人材を持つのは難しいです。

なので、マネージメントを目指すのであれば、大手のシステム会社へ就職するのいいでしょう。

中小企業でプログラマーまでの経験を積み、大手へ転職すると言う方法もあるでしょう。

中小企業でプログラマーまでの経験を積むには1、2年で十分です。

なぜかと言うと、結構ハードな仕事を経験することになるからです。

その経験を持って大手に転職するのが、一番早いやり方ではないかと私は思っています。

では、今日はこの辺で。


2020年4月3日金曜日

企業で働くエンジニアが注意しないといけない言葉


こんにちは。

今日は、企業で働くエンジニアが注意しないといけない言葉について書いていこうと思います。

結論から言うと以下になります。
  • できません
  • 簡単です
  • すぐできます
この3点については注意しましょう。

お客様とミーティングしていると、つい言ってしまいそうになる言葉です。

しかし、このような言葉に注意しないと、無駄な作業が増えることになりますよ。

私も、何度もこのような言葉で失敗してきましたので、その経験も含めて書いていきます。

できません

お客様からしてみると、企業で働くエンジニア はプロです。

なので、欲しい機能をどんどん言ってきます。

簡単な機能ならばまだしも、難しい機能になると、つい「それはできません」と言ってしまいそうになります。

でも、よく考えてください。

論理的な機能であれば、手間がかかるかもしれませんが、ほとんどが作り込むことが可能なのです。

私の場合、つい「できません」とその場で言ってしまったばかりに、仕事を失注してしまったことがあります。

あとで知ったのですが、そこまで手間をかけずに作ることができたのです。

論理的な機能なら作り込む事もできますし、一般的な機能ならばWebで調べると簡単にロジックやプラグインがあったりします。

なので、「できません」と言う言葉は控えるようにしましょう。

では、難しい機能の場合どう対応するかと言うと、「難しいです」と言うことを正直に行った上で、「検討させてください」と伝えましょう。

あとは、必死に調べる、または、聞き回ることで、簡単に作り込む方法を考えましょう。

簡単です

システムを発注する企業は、ITの知識が低いことがよくあります。

そのため、どうでもいいような機能をどんどん追加してきます。

その大半は、エンジニア にとっては簡単に作り込むことができます。

ただし、企業でエンジニアをしているということは、自分がプログラミングしている時間はビジネスの時間なのです。

作っているシステムは、企業の商品なのですよね。

私も、「その機能簡単にできるので追加しましょう」と言って、最終的に時間が足りなくなったことがあります。

そしてどうなったかと言うと、開発チームから外されることになりました。

結局、開発チームの利益を使ったことになるんですよね。

ただ、個人的には、お客様が欲しいと言っている機能は、できるだけ組み込みたいと思っています。

すぐできます

この言葉も気をつけた方がいいです。

自分の裁量で判断できるくらいの簡単な機能なら、私もこっそりと組み込んだりもします。

ただ、企業でエンジニアとして働いていると、スケジュールがありますよね。

スケジュールって、他の機能との兼ね合いもあるので、遅れると結構怒られます。

それが自分の技術不足によるものなら、まだスケジュールが悪かったと言えるのですが、こっそりと機能を組み込んだばかりに遅れると、かなり問題になります。

これは、私の経験です。

その時は、隠すことができずにバレてしまい、大目玉をくらいました。

なので、こっそり機能を追加するのであれば、スケジュールとの兼ね合いを十分に考えてから行いましょう。

企業で働くエンジニア としては、これも御法度なのですけれどね。

まとめ

企業でエンジニアとして働いている人は、このような言葉は使っていないと思います。

この3つの言葉、「できません」「簡単です」「すぐできます」は、結局企業の利益を潰しちゃうんですよね。

個人で仕事しているのであれば、普通に使っていいのかもしれません。

でも、企業でエンジニアとして働くのであれば、この3つの言葉には注意しましょう。

では、今日はこの辺で。

おまけ

エンジニア で働くのに役立つ過去の記事を紹介します。



2014年5月17日土曜日

エンジニアとビジネス

私は、サラリーマンのエンジニアです。
ある企業に所属し、その企業から給与を得ています。
なのでサラリーマンなのです。

しかし、エンジニアである以上、何かを創りだし、収入を得たいを思うのは当然です。

エンジニア仲間の中には、サラリーマンであることを忘れて、自分で作り上げたものと勘違いする人もいます。

でも、やはり、企業に属し、何も創りださなくても、収入を得ることができる以上、サラリーマンなのです。

そう考えると、自分で何かを作り出すには、企業から飛び出す必要があるのかもしれません。実際、企業を飛び出し、フリーランスとして活躍している人も多くいます。

一度、そういう環境へ身を置くのも、いい経験になるのかもしれないな。