
働き方
SES契約とは?請負契約や派遣契約との違いを解説
人手不足が慢性化しているIT業界では、人材確保の手段として「SES」という契約が使われることがあります。派遣契約や請負契約とよく似た契約内容ですが、厳密には大きな違いが存在しています。 では、SES契約と契約・請負との違いはどんなところにあるのでしょうか? SES契約を結ぶにあたっての注意点や、年収アップのためにどんなことができるのかについて解説していきます。 テクフリでフリーランス案件を探してみる SES契約とは SESとは、System Engineering Service(システムエンジニアリングサービス)から頭文字を取った略称です。クライアントとなるIT企業に向けて、自社が保有するエンジニア人材を派遣し、システム開発やインフラ構築に従事してもらうビジネスモデルを指します。 エンジニア一人ひとりが雇用契約を結ぶのはSES企業(ベンダー)ですが、実際に作業に従事するのはクライアント企業のオフィスとなります。クライアントとベンダーが契約を結び、「この業務に関して、うちのエンジニアの労働力を提供しますよ」という約束を取り交わします。 SES事業を手がけるベンダーは、常に大量のエンジニア人材を確保しています。自社で求人広告を出したり、勉強会などのイベントを開催することによって優秀なエンジニアを採用しているのです。 そしてこのエンジニア人材を経営資源として、クライアントに労働力として提供するのがSES事業の基本的な流れです。クライアント企業が自身で採用活動を行うと、求人サイトに広告を出す費用や、面接スケジュールを組む時間など、多大なコストがかかります。 しかしSESを通じて優秀な人材を確保できれば、圧倒的に割安なコストで労働力を整えることができるようになります。したがってIT業界でもSESの需要は大きく、大手企業ならSESを利用していない会社の方が珍しいくらいです。 なお、SESと混同されがちな存在として「SIer」(エスアイヤー)があります。SIerはSystem Integration(システムインテグレーション)を行う者(-er)のことを指します。このシステムインテグレーションとは、いわばシステム開発全般を請け負う事業のこと。 システム構築の際には、クライアントの業務内容や課題を分析し、一社一社に最適なシステムを企画・設計し、構築していく必要があります。さらには構築後の運用・メンテナンスも重大なポイントであり、これらすべてを一挙に担うのがSIerという存在なのです。 SIerはIT業界におけるシステム導入のコンサルタントとも呼べる業種です。契約方法や事業内容を表すSESとはまったく異なる言葉ですので、間違って使用しないように注意しましょう。 また、「SE」という言葉もSESと混同してしまいやすいかもしれません。SEはシステムエンジニアという1つの職種のことを指します。求人広告などで「SE・PGを募集!」などと書かれている場合には、システムエンジニアやプログラマー(PG)を採用していると考えるとよいでしょう。 請負契約・派遣契約・委任契約との違い SES事業は、いわば人材が欲しい企業と仕事が欲しいエンジニアをマッチングする契約です。こう聞くと、まるで派遣や請負契約と同じようなものと考えがちですが、実は3つの契約には明確な違いが存在します。 具体的には、「指揮命令権」「約束内容」がそれぞれ異なってきます。 まずSES契約の場合、指揮命令権はベンダー側にあります。実際にはクライアント企業のオフィスに常駐して作業を行いますが、仕事の指示を受けるのはクライアント企業の担当者ではなく、ベンター企業の担当者になるわけです。 SES契約における約束内容は、労働力の提供になります。クライアント企業のオフィスでの業務に10時間従事したとしたら、10時間分の時間給が支払われます。SES契約ではエンジニアが成果物に責任を持つことはなく、仮に納品したシステムの品質が十分なものでなかったとしても、報酬が未払いになることはありません。 次に派遣契約についてですが、こちらは指揮命令権がクライアント側にあります。クライアント企業のオフィスに常駐し、そのオフィスの担当者から仕事の指示を受けます。距離の離れたベンダー側から指示を受けるSESとは異なり、派遣契約は勤務先のオフィスで直に指示を受けることが特徴です。 派遣契約における約束内容は、SESと同じく労働力の提供です。SESと派遣を比べると、派遣のほうがやや時間給は高めになります。 そして請負契約は、指揮命令権がベンダー側にある点はSES契約と変わりません。 ただしSESや派遣と大きく違うのは、約束内容が成果物の納品にあることです。請負契約の場合、時間給で報酬がもらえるのではなく、成果物に対して報酬が支払われるということです。つまりクライアントが求めるシステムを納品しさえすれば、10時間働こうが、100時間働こうが報酬は同じということになります。 ちなみに、法律の世界では「委任契約」と呼ばれる契約形態もあります。委任契約は指揮命令件がベンダー側にあり、労働力の提供を約束内容と定めます。ただし、その仕事内容は法律行為を行うこと。通常はエンジニアが法律行為を手がけることはありませんので、IT業界にはそもそも委任契約は存在しない点に注意が必要です。 偽装請負とは SES契約や請負契約の場合、派遣契約とは異なり指揮命令件がベンダー側にあることをお伝えしました。実際にはクライアント企業のオフィスで働くにもかかわらず、具体的な仕事の指示はベンダーから与えられるというわけです。 普通に考えれば、クライアント企業からすれば自分たちの指示のもとでエンジニアたちが働いてくれるほうが都合がいいはずです。だからといって、SES契約や請負契約で働くエンジニアに、クライアント側が仕事の指示を出すと、「偽装請負」として違反行為に該当してしまいます。 もし派遣されたエンジニアに直接指示を出したいのであれば、派遣契約を結んでいなければなりません。しかし労働者派遣を手がける場合、ベンダー側が「派遣業の許可」を取得しなければならないという法律上の取り決めがあります。 この派遣業の許可を取得するためには一定のハードルがありますし、責任者の選任や、管理台帳の作成など業務負担も増えてきます。「そんな面倒なことは避けたい」と思うあまりに、SES契約や請負契約で派遣契約のようにエンジニアを働かせてしまうトラブルが起こるのです。 偽装請負が判明した場合、ベンダー企業には「社名公表」「最大で1年間の懲役または100万円の罰金」というペナルティが科されます。ただし、実質的な指揮命令権がベンダー側にあったのか、それともクライアント側にあったのかを客観的に証明するのは難しく、違反行為が表沙汰になることはあまり多くないのが実情です。 しかし実際に働くエンジニア側からしてみれば、実質的には派遣契約にも関わらず、割安な報酬額でSESまたは請負として働かされることになるため、正当な対価が支払われないリスクが出てきます。 そのためSESや請負として働こうと考える際には、そのベンダー企業が法令・契約内容をしっかりと遵守する会社なのかどうかを見定める必要があるのです。 こうした偽装請負などの問題が起こりやすいために、SESはブラックだと考える人や、法律的にグレーゾーンにあると意見する人も少なくありません。しかし派遣契約と比べるとクライアントの指示を細かく聞く必要がない点や、請負契約と比べて安定して報酬がもらえる点などを考慮すると、実際に働くエンジニアにとってもメリットの大きい契約といえます。 1つの会社に腰を据えて働くよりも不安定になりますが、その分だけさまざまな職場を見て回ることができ、スキルアップやキャリアアップにつなげられる側面もあります。エンジニアとして働くあなた自身の性格次第では、SES契約が最も適した働き方になる可能性も十分あるのです。 テクフリでフリーランス案件を探してみる SES契約のメリットとデメリット クライアント側の立場になって考えてみると、SES契約によって得られる大きなメリットがあります。それは採用活動に関するコストを抑えられる点です。自社でイチから人材を募集し、社内で教育して一人前に育てるまでには、莫大な費用と時間がかかります。 そうした採用活動や教育に必要なコストよりも、SES契約で人材を揃えるコストのほうが安くすむため、IT業界の会社にとっては欠かせない契約形態となるわけです。「このプロジェクトの間だけ、エンジニアを増員したい」「システム開発が終わったら、保守・運用は自社でできるので大量のエンジニアは必要ない」など、細かなニーズにも柔軟に応えられる点も、SESが重宝される理由になっています。 また、ベンダー側からしてもSES契約にメリットが存在します。SES契約は指揮命令権がベンダー側にあるため、残業時間や作業分担を管理しやすく、報酬額の計算が用意になるという側面があります。 ベンダー企業が自社のオフィスで社員を働かせなくてすむため、広いオフィスやビルが必要ないこともメリットです。究極的には、SES事業はエンジニア人材さえいれば成り立つビジネスモデルのため、エンジニアからの転身を考える人にも相性の良い事業となっているのです。 では、エンジニアとしてSES契約で働くメリット・デメリットはどんな点にあるのでしょうか? まずSESで働くメリットとして、幅広い経験を積める点があげられます。1つの会社に入社して働き続ける場合、基本的にその会社のオフィスでしか働くことはできません。プロジェクトの内容は移り変わるでしょうが、一緒に働く人や開発環境はほぼ変わらないのが普通です。 一方でSES契約で働くとなると、一人で何社、何十社という企業のオフィスを訪れることになります。「あの会社ではこんなやり方だったけど、この会社のやり方のほうがいいな!」など、それぞれの職場のいいところだけを吸収していくこともできますし、いろんな人との出会いにより刺激を受けることも多くなるでしょう。 エンジニアとしてやりたいことがまだ明確に決まっていない人の場合、SES契約によってさまざまな開発現場を見て回ることで、「これだ!」と思える目標が見えてくることも考えられます。 SESで働くメリットの2つ目として、労働時間をコントロールしやすい点があげられます。SES契約は請負契約とは異なり、成果物に責任を持つ契約内容ではありません。請負契約の場合、納期に間に合わせるために徹夜して働かなければならないシーンも出てくるでしょう。 しかしSES契約なら決められた時間内でだけ働いていれば問題ありません。仮に残業が発生したとすると、それはSES契約を結ぶクライアント企業の負担となるため、人件費の増大を嫌う企業からすれば残業をさせない方向へモチベーションが向かいます。 つまりSES契約で働くエンジニアは、構造的に残業が発生しづらく、プライベート重視の人にとっては大きなメリットが生まれることになるのです。もちろん、バリバリ残業して残業手当で稼ぎを増やしたいと考える人には向かない契約といえます。 続いてSES契約で働く場合のデメリットですが、第一に帰属意識が薄れてしまう点があげられます。次々に職場が変わって携わるプロジェクトも異なるため、1つの会社に対して愛着を持ったり、帰属意識を持ったりすることが少なくなります。 実際に自分を雇っているはずのベンダー企業に対してさえも、用事がなければ会社に立ち寄ることもないため、ほぼ帰属意識は生まれません。SES契約のエンジニアの大半はクライアント企業のオフィスと自宅との往復となるため、「自分はどこで働いている人間なのか?」という悩みも抱えがちです。 いくつもの職場を渡り歩き、何度も転職を繰り返しているような感覚にもなるので、安定を目指したいと考える人にとっては大きなストレスになる可能性もあります。 SES契約の2つ目のデメリットとして、自分が関わったプロジェクトを最後まで見届けられないリスクもあります。SES契約はプロジェクト単位で結ばれるものではなく、一定の業務内容へ対価が支払われるものになります。 するとプロジェクトが完成する前に職場を離れなければならなくなることもあり、人によっては不完全燃焼な感情を持つことも出てくるでしょう。技術力に自信を持つエンジニアからすれば、自分の成果が最後まで見届けることができない点に、不満を感じることも多いかもしれません。 もちろんこれは「プロジェクトが失敗したとしても、自分の責任は問われない」というメリットの裏返しではあるのですが、仕事にやりがいや充実感を求めるタイプの人は、SES契約にはあまり向かないかもしれません。 SES契約の平均年収 SES契約で働くエンジニアの平均年収は、およそ300万円〜800万円ほどとなるようです。スキルや経験に応じて年収は上下し、希少なスキルや豊富な経験を持っている人ほど高く評価されるのはどこの世界も同じです。 相対的に見てみると、IT業界の中ではやや低めの報酬水準となります。これはSESの性質上、報酬が低く抑えられがちという特徴が関係してきます、もしこれ以上の報酬を目指そうと考えるなら、別の働き方を検討したほうがよいでしょう。 年収アップを目指せる優良SES企業の見分け方 ここまで読んできた人の中には、SES契約で働くことに不安を覚えるようになったという人もいるかもしれません。たしかにSES契約にはいくつかのデメリットがあり、ブラックと呼ばれても仕方がないような企業も一定数存在します。 では、SES契約でもスキルアップ・キャリアアップを叶えることができて、ホワイトな職場で働けるSES企業はどうやって探したらいいのでしょうか? 結論から先に言えば、優良SES企業を見分けるポイントは「自社が抱えるエンジニアの成長を支援しているかどうか」にあります。エンジニア人材こそが最も重要な存在であると認識し、さまざまな制度や福利厚生を整えている会社なら、ホワイトな企業の可能性がぐんと高まります。 SES事業は、エンジニアの数が増えて契約数が伸びるほど業績が伸びていくビジネスモデルになります。そのため積極的に人材を募集する企業は多くありますが、雇ったエンジニアに十分な教育を受けさせたり、充実した福利厚生を用意しようと考える会社はあまり多くありません。 自分たちの利益重視でビジネスを展開するのではなく、エンジニア一人ひとりのことを考えた仕組みづくりを行っている会社こそ、私たちが安心して働けるSES企業と言えるのです。 最後に SES契約は、派遣や請負とよく似た契約内容であるため、混同してしまう人は多くいます。しかし指揮命令権の所在や約束内容の面で大きな違いが存在しているため、これらの違いをはっきりと理解しておく必要があります。 それぞれの契約内容を理解し、自分にあった契約方法を選んでキャリアを歩みましょう。 テクフリでフリーランス案件を探してみる

freelance
派遣
エンジニアの派遣 ブラック企業の見分け方
エンジニアの派遣とは、企業に就職して直接雇用されるのではなく派遣会社と契約を結び派遣先で就業する働き方です。 派遣エンジニアとなると基本的は時給で働くことになり、また期間の定めがあるのが一般的です。 これらの特徴は大企業の正社員と比較すると福利厚生が劣っていることが多く、雇用が安定していないため派遣のデメリットとされてきました。 しかし近年では大手企業でも45歳以上には早期退職を推奨するケースがあるなど、正社員であったとしても雇用が安定しているとはいえない社会になってきています。 このようなことを考慮すると派遣エンジニアなど派遣として働くことのデメリットは以前よりも少なくなっていると考えることができます。 またエンジニアの派遣には一般派遣と特定派遣があります。 登録派遣は派遣先ありきで派遣会社から報酬を受け取る働き方ですが、特定派遣の場合は社員として派遣会社に雇用されてから派遣先で就業します。 テクフリでフリーランス案件を探してみる そもそもエンジニアの派遣とは? SESとはどう違うのか ではエンジニアの派遣とSESにはどのような違いがあるのでしょうか。 エンジニアの派遣とSESの違いの一つは、指揮命令権がどこにあるかです。 エンジニアの派遣の場合、指揮命令権は派遣先の担当者にあります。 エンジニアの派遣として働く場合、日々の業務の指導は派遣会社の担当者から行われるのではなく派遣先の担当者から指示を受けます。 その一方でSESの指揮命令権はクライアント企業ではなく、SESを提供している会社側にあります。 このように指揮命令権がSESを提供する企業側にあるのは、準委任契約も共通しています。 それ以外の責任についてはは派遣契約もSES契約も共通して決められた業務を遂行することが責任であり、請負契約のように成果物に責任を持つ必要はありません。 参考: 厚生労働省「労働者派遣事業・職業紹介事業等」 想定されるブラック環境や案件とは? 派遣とSESは現場に派遣されるという意味では近いといえる就業形態ですが、このような現場に派遣される働き方をする場合気をつけなければいけないことがあります。 それはブラックな環境の現場に派遣されることです。 ブラックな案件で就業することが決まってしまうと、それだけで心身が疲弊してエンジニアとしてのキャリア構築の弊害となる可能性があるからです。 実際にブラックな労働環境で長く働くことで心身を病んでしまうケースは珍しくありません。 では具体的にブラックな案件とはどのような案件なのか、事例と共に見ていきましょう。 給与が極端に低い 給与が極端に低い案件で働いていると、生活に余裕がなくなりストレスも溜まりやすくなります。 また給与水準が極端に低い現場の場合、エンジニアを使い捨ての駒のように考えている可能性もあるため職場の空気も殺伐としていることが少なくありません。 実際に生活するだけで精一杯の給与だと蓄積されたストレスも解消されにくくなります。 たまの休みに旅行に行ける余裕があれば日々の業務が多少ハードでも乗り越えられるものです。 もちろん給与が高いことがホワイトな現場を必ずしも意味するわけではありません。 しかし提示される給与は現場がブラックかどうかを見極める一つの参考情報となります。 サービス残業を強いられる 短納期や度重なる仕様変更、人手不足など開発の現場では様々な理由で、残業が発生するケースが少なくありません。 その残業もきちんと報酬が支払われるならいいですが、ブラックな現場だとサービス残業を強要される可能性が高くなります。 サービス残業が続くと心身にストレスがたまり疲労も蓄積されやすくなります。 また残業代がなければ生活費にも余裕が少なく、ストレス解消のためのレジャーにも手を出しづらくなってしまいます。 パワハラやいじめの蔓延 ブラックな労働環境ではそこで就業している人の心も歪みやすくパワハラや陰湿ないじめが横行している場合があります。 実際にハイスペックなエンジニアのみを優遇して、見せしめのように他の従業員には無給の休日出勤を強要している企業もあります。 客観的に見れば法令も遵守していない異常な労働環境ですが、長くそこで働いている人にとっては、それが当たり前と認識されている場合がほとんどです。 このような労働環境でも慣れてしまえば働くことはできますが、長期的には心身に不調を招く、またはエンジニア業務やIT業界そのものに嫌気がさしてしまうなど、将来が明るいとはいえません。 テクフリでフリーランス案件を探してみる ブラック案件や環境を回避するには このようにエンジニア派遣ではブラックな労働環境に遭遇してしまうリスクマがありますが、ある程度は有用だと考えられる回避策があります。 大手または信頼のおける派遣会社を利用する 国内の派遣会社数は世界一であり、様々な企業が存在しています。 また法令遵守を重視しているのか、それともひたすらに利益を重視しているのかによって派遣会社が保有する案件には違いが生じます。 たとえば法令遵守を徹底して、新規で派遣先企業と契約する度に入念なリーガルチェックを行う派遣会社であれば先に述べたような明らかな法令違反をする派遣先に派遣されるリスクは少なくなります。 その一方で派遣先のグレーな部分には目をつむり、利益を優先する派遣会社も存在します。 そういった派遣会社に所属するとブラックな派遣先を提示される可能性が高く、就業してから事前に聞いていた話とは違うことが発覚するなど派遣されるエンジニアにとってのリスクが高くなります。 そのため派遣として働く際は、就業先を選ぶ前にまずどの会社に所属して派遣されるのかを慎重に選ぶことが大切です。 派遣先に関する情報のリサーチを徹底する 派遣でブラックな労働環境を回避するためには、徹底したリサーチも有用です。 口コミサイトやSNSなど徹底して派遣先に関する情報はリサーチしておきましょう。 しかしネットの情報は情報が古い場合があり、実情とは異なっている場合があります。 そのため情報のすべてを鵜呑みにするべきではありませんが、参考情報として見ることに損はありません。 エンジニアの横のつながりがある場合は、直接リサーチすることも検討しましょう。 このようにリサーチを繰り返すと雰囲気が悪い職場の情報は漠然とでもわかるようになるものです。 ブラックな派遣先へ派遣されることは派遣エンジニアとして働く限り100%回避できるものではありませんが、ある程度は努力次第でブラックな派遣先への遭遇率を下げることができます。 離職率の高さをチェックする 離職率が高い、または離職率が高そうな派遣先を避けましょう。 そういった注意を向けることでブラックな現場を回避できる可能性が高くなります。 なぜならブラックな労働環境では離職率が高くなりやすいからです。 人がすぐに辞めている、頻繁に案件情報が出ている派遣先は離職率が高くブラックな労働環境である可能性があるので注意が必要です。 またこのようなブラックな派遣先の特徴から人がなかなか辞めずに離職率が低い派遣先はホワイトな現場である可能性が高いと考えることができます。 ブラック案件や環境から脱出する方法は? ブラックな案件や現場に派遣されてしまった、または既にブラックな労働環境で働いている場合、脱出する方法は二つあります。 派遣元に労働環境について相談する ブラックな労働環境は派遣元に相談することで解消できるケースもゼロではありません。 もちろん改善要望がすぐに実現されることは稀ですが根気強く何度も派遣元の担当者に相談することで少しずつでも労働環境は改善することがあります。 派遣先を変えてもらう いきなり退職するのではなく派遣元に今の現場で働くことに不満があり、他の派遣先に変えて欲しい旨を相談するのも一つの対処法です。 保有している案件数が多い、比較的大きな派遣会社ならこれまでの実績や信頼によっては他の派遣先を紹介してもらえる可能性があります。 しかし同じ派遣元から他の派遣先を紹介してもらう場合、ブラックな労働環境であったとしても派遣期間を満了して辞めるなど円満な終了を迎えることが大切です。 すみやかに退職する 心身に不調をきたした場合や身の危険を感じた場合など、ブラックな労働環境からの脱出に緊急性がある場合は迷わず退職しましょう。 退職の引き止めなど理不尽な交渉が入った場合は労働基準監督署への相談など公的機関を利用することも有用です。 次の就業先を決めてから退職したいと考えるのは一般的ですが、身の危険を感じた場合はまず退職してアルバイトで生計を立てながら慎重に転職活動をする、という選択肢もあります。 まとめ:対策次第で、ある程度回避できる ここまで紹介してきたように、派遣でエンジニアとして就業する場合、ブラックな現場のリスクをゼロにすることはできません。 しかしそのリスクを減らすための対策はほんの少しの注意を向けることで可能となります。 エンジニアとして派遣での就業を目指す際は派遣先だけでなく、派遣元の会社選びから慎重に見極めることをおすすめします。 テクフリでフリーランス案件を探してみる ご支援実績8,000人以上!フリーランスエンジニア・クリエイター専門の案件情報サイト「テクフリ」 テクフリでは、10年以上の業界経験を活かし、ただのお仕事紹介ではなくバリューアップをコンセプトに手厚いサポートでご支援しております。 正社員からフリーランスになろうと考えている方は、開業手続きから税金のご相談を親身に対応。 逆にフリーランスから正社員になろうと考えている方は、マッチした企業・求人をご紹介。 親身にご要望に耳を傾け、あなたにピッタリの案件をご提案いたします。 ・フリーランスで挑戦したい! ・より単価の高い案件に入りたい! ・スキルアップしたい! ・安定稼働したい! そんな方におすすめです。 チャットでの無料相談も受け付けております!

Apache HTTP Server
freelance
chownなど Apacheのパーミッション(権限)の設定
Apacheにプロジェクトをアップロードし起動したら、ファイルのアクセス権がいろんなところでなく、大変な思いをしたので記載。 自分のローカルではroot権限でファイルの読み書きをしているので、Apach環境になると権限がなくエラーになる。Apacheでのユーザーにも正しく権限を付与する必要がある。 まず、Apacheの設定ファイル内にApacheの実行ユーザーが指定されているので確認する。 $ vi /etc/httpd/conf/httpd.conf\// file内User apacheGroup apache ここに記載されているのが実行ユーザーと実行グループ。これがDemonになっている場合があるので、apacheに変更。その後、apacheを再起動する。 $ service httpd restartStopping httpd: [ OK ]Starting httpd: [ OK ] 次に、コンテンツディレクトリの所有者と所有グループをapacheに変更する。 chown -R で指定ディレクトリ以下の全てのディレクトリファイルを全て変更することができる。 $ chown -R apache:apache /実行させるフォルダのパス 今後のコンテンツディレクトリ以下に作成されるファイルの所有グループをapacheに固定する。 方法としてはSGIDを使う。SGIDについては割愛。 $ chmod -R 2770 /実行させるフォルダのパス コンテンツディレクトリ以下のディレクトリのパーミッションを770に、ファイルのパーミッションを660にして、その他のユーザーがアクセスできないようにする。 $ find /実行させるフォルダのパス -type d -exec chmod 770 {} \;$ find /実行させるフォルダのパス -type f -exec chmod 660 {} \; Web開発用ユーザーをapacheグループに入れる。 以後、そのユーザーグループを使用して開発を行う。 $ usermod -g apache グループ名 ファイルをアップロードするスクリプト使用する場合、ファイルの保存場所の所有者をapacheに、所有グループをapacheにする $ chown apache:apache /var/uploads$ chmod 755 /var/uploads httpdの実行ユーザーを独自に作成して(上記ではapache)、Webで公開するディレクトリやファイル以外のapacheの権限をちゃんと設定することで、悪意のあるスクリプトがきても被害を最小限に抑えることができる!! テクフリでフリーランス案件を探してみる

ネットワークエンジニア
GNS3とPacket Tracerを比較 ネットワークの勉強法
スマホやパソコンはもちろんですが、いまどきネットワークと無縁の機器、そしてシステムは、ほとんど存在しないと言っても良いのではないのでしょうか。 それどころか、IoT(Internet of Things/モノのインターネット)化を目指して、さまざまなモノ、従来はネットワークに繋がっていなかったモノまでもが、ネットワークに繋がろうとしています。 もはや、ITシステムにとってネットワークは、人間にとっての水道や電気と同じで、使えて当たり前です。エンジニアにとっても、ネットワークの知識は持っていて当たり前と言っても過言ではありません。 そこで今回は、ネットワークを勉強する方法をお教えしたいと思います。 テクフリでフリーランス案件を探してみる ネットワークを学ぶことの意義 ネットワークを学ぶ意義は、冒頭に書いた通りです。ネットワークと無縁のITシステムは基本的には存在せず、ますます様々なものがネットワークに繋がる時代になっています。 もちろん、ネットワークの知識がなくてもプログラミング自体はできるでしょう。 しかし、ネットワークの知識、例えば“ポート番号”や“UDP”“TCP”、あるいは“ステートフル・インスペクションとステートレス・インスペクションの違い”など、ネットワークを使って情報をやり取りする仕組みや、通信経路上にあるネットワーク機器の動作を知らないと、システムの全体像が見えず、良いシステムを作るのが難しくなります。 さらに、“頑張って作ったのに、なぜかシステムが動かない”、“外部からの不正接続が可能になっていて、サイバー犯罪に巻き込まれた”ということにもなりかねません。 実際、筆者はネットワークエンジニアですが、アプリケーションエンジニアのネットワーク知識が不足していたために、機器間の通信がうまく成立せず、システムが想定通り動かない、という事態を何度も経験しています。 もちろん、アプリケーションエンジニアやプログラマーがネットワークエンジニアになる必要はありません。インフラ担当で、ネットワーク分野にも手を出したい、という方でなければ、スイッチやルータ、ファイアウォールなどのネットワーク機器の操作や設定方法まで基本的には知る必要はありません。 しかし、TCP/IP(インターネット・プロトコル・スイート)に始まる、ネットワークの基本的なところは、ITのエンジニアを名乗る方であれば、すべての方が知っておくべきことだと考えています。 おすすめの本は? ネットワークに関する書籍は様々なものがあり、結局は本屋で「これが分かりやすい」と思った本を買っていただくのが良いかと思います。が、おすすめの本を一冊挙げるとすれば『マスタリングTCP/IP 入門編』です。 浅く広く、ネットワーク技術の基本を、図表なども使って分かりやすく網羅的に解説しており、大学の教材などでも使われることがあるそうです。 ちなみに、この本は適宜、更新されており、2020年現在の最新版は2019年12月に出版された第6版です。 おすすめのサイト 専門書を購入して知識を体系的に学ぶのも重要ですが、隙間時間を使ってスマートフォンなどで知識をつけるのも決して悪いことではありません。 そこで、ネットワークについて学習するのに参考になるサイトを二つご紹介いたします。 ①ネットワークエンジニアとして ネットワーク分野で最高峰の資格と言われるCCIE保有者の管理人が、ネットワークエンジニアはもちろん、ネットワークエンジニアではないITエンジニアにも分かるように、ネットワーク知識を体系的に紹介しているサイトです。 具体的なネットワーク機器の設定方法など、コアなページも多く、ネットワークエンジニアではない人が、すべてのページに目を通す必要はありません。一通り目を通しておくと良いかと思います。 ②ネットワーク入門サイト その名の通り、ネットワークの基礎から丁寧に説明してくれているサイトです。 こちらの管理人さんは、専門書籍の執筆経験もある方のようで、柔らかい表現が多く、上の『ネットワークとして』が難しい、とっつきにくい、と感じた方は、こちらのサイトを読んでいただくと良いかと思います。 テクフリでフリーランス案件を探してみる おすすめのソフトウェア 次にご紹介するソフトウェアは、少し上級者向けです。実際にネットワークエンジニアも利用しているネットワーク・エミュレーターを二つご紹介いたします。 ネットワーク・エミュレーターとは、パソコン上で仮想的にネットワークを構築して、想定通り通信が可能かテストするシミュレーターのことです。実機をそろえてテストができれば一番良いですが、ネットワーク機器も高価です。実験のために一式そろえることは現実的ではありません。 そこで、想定通りできるかどうか確認する方法、あるいは若手の教育教材として、ネットワーク・エミュレーターが愛用されているのです。 今回紹介するソフトは、どちらも画面にネットワーク機器やパソコン・サーバーなど周辺機器を配置し、それぞれの機器に設定を投入し、環境を構築していきます。 ①Cisco Packet Tracer ネットワーク機器のベンダーとして世界最大の企業であるシスコシステムズが開発、配布しているネットワーク・エミュレーターです。Ciscoの純正ソフトで、しかも無料で利用可能ということもあり、個人で学習のために利用しているネットワークエンジニアも多いです。 弱点は新製品の登場に合わせて更新される訳ではないようで、新機器の機能の確認などには使えない、という弱点があります。また、Cisco以外の製品はエミュレート対象になっていません。 上記のような欠点はありますが、日本語情報も多く出回っている、という点もあり、ネットワークについて知見を広げたい非ネットワークエンジニアの方にお勧めです。 ②GNS3 GNS3はオープンソースのネットワーク・エミュレーターです。Cisco以外のベンダー製品、例えばジュニパーネットワークス (Juniper Networks)製品もエミュレートできるということで、Cisco Packet TracerよりもGNS3を好むネットワークエンジニアが多いのかな、と思います。 Cisco Packet Tracerに比べて日本語情報が少なく、環境設定がやや面倒なので、より様々なネットワーク機器に触ってみたい、という上級者向けです。 おすすめの資格 情報技術者試験の一つである、ネットワークスペシャリストが取れれば、並みのネットワークエンジニアと同程度か、それ以上の知識があると言えます。 ただ、ネットワークエンジニアのではない方が、周辺知識としてネットワークのことを理解しておきたい、ということであれば、情報技術者試験の一つで、ネットワークスペシャリストより一つ格下とされる応用情報技術者試験まで取れれば十分なように思います。 なお、応用情報技術者試験ではネットワーク以外にも、幅広いIT知識を問われます。 ちなみに、ネットワークスペシャリスト取得の学習だけでは、実際のネットワーク機器の設定方法が学べません。この試験に合格したからと言って、すぐにネットワークエンジニアとして案件に入れるかは、また別問題です。 もし、ネットワークエンジニアになる道も持っておきたいという方は、情報技術者試験ではなく、Ciscoが実施するCCNAの取得を目指すと良いかと思います。 CCNAは「ネットワークエンジニアの登竜門」と言われることも多いですが、Cisco Packet Tracerのようなシミュレーション環境で、実際にCisco製のネットワーク機器に設定が入れられるかどうかも試験で問われます。 よくある質問 なぜネットワークを学ぶ必要があるの? ネットワークを知らなくてもプログラミングができますが、ネットワークの知識がないと、システムを正しく理解することができず、サイバー犯罪の被害者になる可能性があります。被害者にならないためにも、ネットワークを学ぶ必要があります。 おすすめのネットワークの勉強方法は? おすすめの書籍は「マスタリングTCP/IP 入門編」です。幅広いネットワーク技術の基本を、グラフなどを使い分かりやすく解説しており、大学の教材としても使われています。 おすすめのサイトは、「ネットワークエンジニアとして」と「ネットワーク入門サイト」です。 まとめ:ネットワークは水道や電気と同じ 繰り返しですが、現代のITシステムの多くがネットワークと繋がっています。もはや「ネットワークはあって当たり前」なのです。 ネットワークを知らなくてもプログラミングができる、という意見もあると思います。しかし、ネットワークがわからないと、システムの全体像が正しく理解できず、最悪、サイバー犯罪の被害者にもなりかねません。 最初はとっつきにくいところがあると思いますが、スキルアップ・キャリアアップのためにネットワークを学習する価値は大いにあります。 テクフリでフリーランス案件を探してみる

freelance
Nginx
Nginxでstatusの確認など 基本コマンド15選
Nginxを直接実行 service コマンドやsystemctl コマンドを使用せずに、Nginxを起動させるには、コマンドラインから直接「Nginx」を実行することで起動させることができる。 $ /usr/sbin/nginx nginxのパスはインストールされている環境に依存するので注意が必要。パスを通しているのであれば、nginxだけで起動することができる。 設定ファイルを指定して起動 デフォルトの設定ファイル以外を使用する場合は、-cオプションを使用して設定ファイルを指定する。 下記の「/etc/nginx」ディレクトリにテスト用の設定ファイル(test.conf)が作成してあって、それを設定ファイルとして指定しNginxを起動させる例。 $ /usr/sbin/nginx -c /etx/nginx/test.conf systemctl start nginx(CentOS7) yumを使用してインストールしたCentOS7であれば、systemctl コマンドでNginxを起動させることができる。 $ systemctl start nginx systemctl start nginx(CentOS6以前) CentOS6以前をyumでインストールしているのならば、service コマンドで起動させることができる。 $ service start nginx テクフリでフリーランス案件を探してみる Nginxを直接停止 systemctl コマンドやservice コマンドを使用せずにNginxを停止させる方法は2つある。 リクエスト処理完了後に停止 クライアントと通信をしている処理を完了させてから停止する方法。 クライアントとの通信を完了させてからの停止なので、通信が強制切断されることがないので安全。 $ /usr/sbin/nginx -s quit 直ちに停止 クライアントとの通信を強制切断して停止する。 $ /usr/sbin/nginx -s stop systemctl stop nginx(CentOS7) CentOS7でsystemctl コマンドを使用してNginxを停止する方法。 $ systemctl stop nginx service stop nginx(CentOS6以前) CentOS6以前でsystemctl コマンドを使用してNginxを停止させる方法。 $ service stop nginx Nginx案件を探してみる nginxを直接再起動 systemctl コマンドやservice コマンドを使用せずにNginxを再起動させる方法。 $ /usr/sbin/nginx -s reload systemctl stop nginx(CentOS7) CentOS7でsystemctl コマンドを使用してNginxを再起動させる方法。 $ systemctl restart nginx service stop nginx(CentOS6以前) CentOS6以前でsystemctl コマンドを使用してNginxを再起動させる方法。 $ service restart nginx バージョンのみの表示 $ /usr/sbin/nginx -v 詳しいバージョンの表示 $ /usr/sbin/nginx -V 再起動しても設定ファイルが反映されない場合など $ sudo nginx -s reload 状態の確認 $ sudo systemctl status nginx テクフリでフリーランス案件を探してみる

BASIC
freelance
BASICの歴史についてどこよりも分かりやすく解説
BASICは初心者向けのプログラミング言語とも言われており、プログラミング教育や入門者向けとして扱われていることもあるプログラミング言語です。 1970年代から利用されてきたプログラミング言語ですが、メーカーごとに独自開発されたこともあり仕様の統一がされていないという時期がありました。 そのため当初のBASICはメーカーの機種によって仕様を変える必要があり、効率的な開発を目指すためには課題を抱えているプログラミング言語でもありました。 またMicrosoftが開発したBASICをベースにしたプログラミング言語としてはVisual BASICがあります。 Visual BASICは同社が提供するWindowsをOSとしたPCなど、様々な製品にも組み込まれています。 その他富士通のパソコンの一部シリーズではF-BASIC、NECのパソコンの一部シリーズではN-BASICとして様々なパソコンでBASICは組み込まれています。 ではそんなBASICはどのような歴史を経て発展したプログラミング言語なのでしょうか。 本記事ではプログラミング言語BASICの歴史について紹介していきます。 テクフリでフリーランス案件を探してみる BASICの誕生について BASICが誕生したのは、1964年。ジョン・ジョージ・ケメニーとトーマス・カーツによって考案されました。 ジョン・ジョージ・ケメニーは、ユダヤ系アメリカ人であり数学者。 陸軍に入隊していた時期もあり原爆研究ではコンピュータ運用の技術で貢献したという実績があります。 またアインシュタインの助手を努めた経験もあるため当時の米国の研究者として輝かしい経歴を持った人物だといえるでしょう。 そしてBASICはその扱やすさからプログラミング教育のハードルを下げることにも影響したと言われています。 このような教育への影響を考慮するとジョン・ジョージ・ケメニーは教育者としてプログラミング言語の発展にも多大な貢献した人物であることが分かります。 では共同開発者のトーマス・カーツとはどのような人物だったのでしょうか。 トーマス・カーツは米国のダートマス大学の在学中にジョン・ジョージ・ケメニーと出会います。 そして二人はタイムシェアリングシステムの開発に取り組みます。 タイムシェアリングシステムとは今では一般的になっている一台のコンピュータに複数の端末からユーザがアクセスできる仕組みのこと。 コンピュータが各端末からアクセスした情報を細かい時系列に分けて処理するため、それぞれのユーザは自分だけの端末を操作しているような感覚でコンピュータを利用することができます。 このタイムシェアリングの開発を通して誕生したのがBASICです。 このような背景がありトーマス・カーツはジョン・ジョージ・ケメニーとの共同開発者としてその存在を知られるようになりました。 またBASICはタイムシェアリングシステムで利用できるのは当然のこととして、変数宣言を省略できるという特徴もありました。 このような特徴がプログラミング入門者でも比較的取り扱いやすく、当初は教育用のプログラミング言語として注目を集めました。 BASICの黎明期について(1960年代) BASICは前述の通り1964年代に開発されたプログラミング言語ですが、当時のコンピュータはまだまだ多くの人にとって馴染みがないものでした。 そのため1960年代はコンピュータの黎明期でありBASICにとっても黎明期だったといえるでしょう。 また1960年の国内はようやく情報サービスが産業として成立した時期です。 しかし当時は現在のように個人がパソコンを持つという状況とは程遠く、一つの大きなパソコンを複数のユーザがアクセスして利用するというのが一般的でした。 またその用途も現在と比較すれば限定的であり、大企業や政府機関による利用が主となっていました。 その一方で1960年代当時の日本は高度経済成長期であり、国内のあらゆる産業が発展を遂げていました。 その経済成長率は10%を越えており、2019年現在からは考えられない成長率だったといえるでしょう。 そして1964年には国内で初のオリンピックが開催されています。 日本は女子バレーボールで「東洋の魔女」と称されるなど様々な結果を残し、スポーツの分野でも世界的に注目を集めました。 そんな華やかな1960年代とは裏腹に国内の情報サービス産業はまだまだ黎明期でしたが、BASICは1970年代後半からは徐々に利用される機会が増えていきます。 テクフリでフリーランス案件を探してみる BASICの成長期(1970年代後半〜1990年代前半) BASICの成長期として注目すべき時期は主に1970年代後半〜1990年代前半にかけてです。 特に1980年代にはスタンドアロンBASICが開発され多くのパソコンに内蔵されました。 スタンドアロンBASICとはBASICプログラミング環境を意味しますがOSを必要しないという特徴があります。 BASIC環境を利用すればデータの入出力管理など、パソコンの主となる機能を担うことができたためです。 そしてスタンドアロンBASICは内蔵されるだけでなく、フロッピーディスクから起動するという操作をすることもできました。 またプログラミング実行環境を支える技術として、スタンドアロンBASICは当時多くのコンピュータに取り入れられました。 その理由は当時のパソコンでは主記憶容量の課題などがあり現在のようなOSを動作させることはできなかったことが関係しています。 また同時期にマイクロソフト社によるMicrosoft BASICというBASICの処理系が開発されています。 高機能な処理系が開発されることによってプログラミング環境が整うことにもつながっていったと考えることができます。 Microsoft BASICのコンパイラ系としては、Microsoft BASIC CompIlerやQuickBASICがあります。 そして1991年からはMicrosoft Visual BASICが提供されています。 Microsoft Visual BASICはVBと呼ばれ開発環境はその後2008年まで提供されました。 さらにマイクロソフト社は同時期にBASICから派生させたプログラミング言語であるVisual BÀSICを開発しています。 Visual BASICはマイクロソフトのアプリケーションのマクロ環境としても実装されているため、Windowsユーザにとっては馴染みやすいプログラミング言語でもあるといえるでしょう。 そして1980年代のIT業界で注目すべき変化の一つに、TCP/IPが標準化されたことがあります。 これによりネットワークを世界規模で接続することが可能になり、徐々にインターネットという言葉が使われるようになっていきました。 現在では当たり前に存在しているインターネットサービス・プロバイダが増え始めたのも1980年代です。 BASICの現在(2019年) 2019年現在のBASICは他にも様々なプログラミング言語が開発されたこともあり、主流のプログラミング言語ではありません。 しかし開発から数十年が経過した現在ではBASICから派生した様々なプログラミング言語が利用されています。 そのうちの一つが、マイクロソフト社の開発したVisual BASIC .NETです。 Windows用のプログラミング言語ではありますが、初心者でも学びやすいという点はBASICと共通しており、2019年現在でも一定の人気を誇っています。 またVisual BASIC .NETは「.NET Framework」上で動作するだけでなくオブジェクト指向も取り入れています。 このようにBASICから派生していったプログラミング言語は現在でも活用されて続けており、プログラミング言語の歴史から見ても存在感があるプログラミング言語だといえるでしょう。 【まとめ】BASICはプログラミング学習にも有用なプログラミング言語 現代においBÀSICを学ぶことは実用的とはいえません。 BASICを用いた開発のニーズは現代では主流ではないからです。 しかしプログラミング言語そのものを学ぶという目的において、BÀSICを学習することは有用だといえるでしょう。 BASICは開発の背景からもわかるように、変数宣言を省略できるなどプログラミング初心者にとって馴染みやすい特徴を有しているからです。 またBASICから影響を受けて開発されたプログラミング言語が存在していることを考慮しても学習そのものが無駄になることはないと考えられます。 またBASICの歴史について知ることは、IT業界やプログラミング言語の歴史の理解を深めることにつながります。 歴史を知ることは、今後のIT業界やプログラミング言語のニーズの予測にも役立ちます。 これから新たなプログラミング言語を学習するならその開発ニーズや他のプログラミング言語への影響を知ることにも関心を持ってみてはいかがでしょうか。 テクフリでフリーランス案件を探してみる

freelance
プロンプトエンジニアとは?必要なスキルや将来性について解説
ChatGPTなどの生成AIが普及している近年、プロンプトエンジニアという新たな職種が注目されています。 プロンプトエンジニアという言葉を聞いたことはあっても、具体的な仕事内容や必要なスキルなどについてはあまり知らないという方も多いのではないでしょうか。 本記事ではプロンプトエンジニアの仕事内容や必要なスキル、将来性についてわかりやすく解説します。本記事を読めば、プロンプトエンジニアという職種について理解を深めることができます。 すでに生成AIを利用している方はもちろん、生成AIの活用に興味があるという方にも役立つ内容となっていますのでぜひ最後までご覧ください。 テクフリでフリーランス案件を探してみる プロンプトエンジニアとは プロンプトエンジニアとは、文字通りプロンプトを作成するエンジニアを指します。 さまざまな技術や専門知識を駆使して、他の人には生み出せないプロンプトを作成してAIを理想通りに動かし、アウトプットのクオリティを向上させるのが仕事です。 プロンプトエンジニアという職種が登場したのは、ごく最近のことです。OpenAI社が開発したチャットボットであるChatGPTが登場したことが、プロンプトエンジニアが注目されるようになったきっかけのひとつです。 ChatGPTは従来のチャットボットにくらべて遥かに性能が高いことが特徴です。対話を重ねることによって、徐々に対話の精度を高めることができます。 しかしながら、ChatGPTもまだ完全というわけではありません。人間側が工夫して質問を投げかけないと、求めている答えが返ってこないというケースも多くあります。プロンプトエンジニアは、AI生成のクオリティを担保するために最適な指示を出すプロフェッショナルとして注目されているのです。 ChatGPTを始めとするチャットボットは、単純に人間と対話を行うだけでなく、さまざまな場面で活用することができます。例えば、ChatGPTは以下のような場合に活用されることがあります。 検索エンジンの代わりとして使う 小説や漫画のプロットを作成する メール作成や資料作成などの定型業務を行わせる 新しい企画のアイデアを考える際にヒントを出してもらう これらの用途以外にもさまざまな活用方法が考えられるでしょう。また、ChatGPTはビジネスシーンにおいても活用することができ、業務効率化や生産性アップに貢献してくれる可能性もあります。 総務省によると、生成AIをはじめとする世界のAI市場規模は今後さらに大きく伸びていくと予測されています。 参考:総務省【令和5年 情報通信に関する現状報告の概要】 プロンプトとは プロンプトとは一般的に、コマンドプロンプトやターミナルなどの画面に表示される、コマンド入力待ちを示すマークを指します。ただし、AI関連でプロンプトという言葉を使用する場合は、別の意味で使われていることが多いです。 AI業界におけるプロンプトという言葉は一般的に、AIに対する指示文のことを指します。AIにプロンプトを読み込ませることで、何らかの動作を行わせることが可能です。たとえばAIに「メールの本文を作成して」というプロンプトを送ることによって、AIにメール文を作成させることができます。 プロンプトエンジニアの仕事内容 プロンプトエンジニアの主な仕事内容は以下の通りです。 プロンプトの設計 AIモデルの分析 プロンプトの改善 それぞれの仕事内容について、詳しく見ていきましょう。 プロンプトの設計 プロンプトエンジニアは、AIモデルに与えるプロンプトを緻密に設計します。より精度の高い出力を得るためには、AIモデルに対して明確かつ詳細なプロンプトを伝える必要があります。 与えるプロンプトが少し違うだけでも、生成される回答が大きく異なる場合もあります。 例えば、テキスト生成モデルに対して「映画のあらすじを作成してください」というプロンプトを与える場合、映画のタイトルや主要キャラクターを示し、期待される出力形式(要約、詳細説明など)を明確に指定することでさらに精度の高い出力が得られます。 これはほんの一例ですが、実務においては解決したい課題やその背景に応じて、さらに詳細なプロンプト設計が求められるでしょう。プロンプトエンジニアリングの具体的な手法やコツについてはこちらの記事で紹介していますので、興味のある方はぜひチェックしてみてください。 ChatGPTでのプロンプトエンジニアリングのコツとは?代表的な例を紹介します AIモデルの分析 プロンプトエンジニアは、与えられたプロンプトに基づいてAIモデルがどのように応答するかを詳細に分析します。この分析作業には、モデルの生成結果や応答の品質を定量的および定性的に評価することが含まれます。 たとえば画像生成モデルに対して分析を行う場合は、特定のプロンプトを与えて生成された画像の品質や内容の適切さなどを評価します。 また、異なるプロンプトを使用してモデルをテストすることによって、それぞれのプロンプトが生成結果に対してどのような影響を及ぼすかを検証します。このような分析を繰り返し行うことによって、モデルの強みや問題点を把握して改善の方向性を見出していきます。 プロンプトの改善 生成結果のクオリティを向上させるために、プロンプトの改善を行うのもプロンプトエンジニアの役割です。プロンプトの内容や構造を慎重に検討し、モデルがより適切な応答を生成できるように調整します。 過去に実行したプロンプトやユーザーからのフィードバックを分析しながら、改善点を特定します。プロンプトは一度設計したら完成ではなく、定期的な評価を通じて長期的な視点で精度の高いものへ改良していく必要があるのです。 プロンプトエンジニアに求められるスキル プロンプトエンジニアに必要なスキルは次の4つです。 AIや自然言語処理に関するスキル プログラミングスキル ドメイン知識 英語力 プロンプトエンジニアとして活躍するためには、おもにこれらのスキルを掛け合わせて活用することが求められます。より細かいスキルが求められる場合もありますが、プロンプトエンジニアに求められるスキルとしてひとまずこの4つを理解しておくといいでしょう。 AIや自然言語処理(NLP)に関するスキル プロンプトエンジニアには、AIや自然言語処理に関するスキルが求められます。AIがどのように文章を理解しているのか仕組みを理解しておくことで、より的確な指示(プロンプト)を与えることができます。 また、プロンプトエンジニアは単純にプロンプトを作成するだけでなく、社内におけるAIの活用方法の提案など、AIの専門家としての役割を期待されることも多いです。そのため、AIに関する最新知識は常にキャッチアップしておくことが望ましいでしょう。 プログラミングスキル プロンプトエンジニアは、プログラミングスキルが求められることもあります。 ChatGPTにプログラムのソースコードを書かせる場合、プロンプトエンジニアがその修正も行わなくてはいけない可能性があるためです。また、AIへの命令にプログラミングのコードを用いたほうが適切な場合などもあります。 プログラミングのスキルを持っているプロンプトエンジニアであればAIの能力をより効果的に引き出すことができるため、欠かせない能力と言えるでしょう。 プログラミング言語の中でも、AI分野で多く使われている言語であるPythonを優先的に取得することをおすすめします。すでにPythonの経験のあるエンジニアの方は、プロンプトエンジニアとしてのキャリアを検討してみるのもいいでしょう。 ドメイン知識 プロンプトエンジニアには、ドメイン知識も求められます。 ドメイン知識とは特定の業界や職種に関する専門的な知識のことであり、課題解決においてより効果的なプロンプトを設計するために不可欠となります。 例えば医療分野においてAIを活用する場合、医療用語や治療プロトコルなどに精通していることが求められるでしょう。 特定の業界のニーズや課題に理解を深めることによって、プロンプトの改善やAIモデルの適用範囲の拡大などにも大いに役立ちます。 プロンプトエンジニアは常に最新技術トレンドや業界の動向に注意を払いながら、ドメイン知識を継続的に学習・更新していく必要があるのです。 英語力 英語力のあるプロンプトエンジニアは、より市場価値の高い人材として重宝されるでしょう。 AIへ与えるプロンプトは、日本語よりも英語で書いた方が精度の高い解答を得られる可能性があります。英語で執筆された情報の方が日本語の情報よりも多いため、AIは多くの情報を参考にしやすいのです。 また、英語は単語ごとに区切られているため、AIが読解しやすいというメリットもあります。 高い英語スキルを持ち合わせているエンジニアの数はまだそれほど多くないため、市場価値の高いプロンプトエンジニアを目指すのであれば、英語力も合わせて伸ばしていくといいでしょう。 プロンプトエンジニアのキャリアパス プロンプトエンジニアに転職後、どのようなキャリアを描いていけば良いのか分からないという方も多いでしょう。あくまで一例ですが、プロンプトエンジニアとして実績を積んだ後は、以下のような職種にキャリアアップする道があります。 データサイエンティスト AIエンジニア これら2つの仕事内容や必要なスキルについて詳しく解説していきましょう。 データサイエンティスト データサイエンティストとは、主にビッグデータの分析を行い、企業にとって有益な結論を導き出す仕事です。 プロンプトエンジニアとして働くことで培ったAI知識やプログラミング知識などは、データサイエンティストの仕事でも活かすことができます。そのため、キャリアアップ先の候補として挙げられるでしょう。 データサイエンティストは、企業の事業課題の解決方法に関する仮説を立て、その仮説が正しいかを検証するためにデータ分析を行います。 たとえば、「ECサイトの商品の売上が伸びない」という課題がある場合、ECサイトのユーザーの行動履歴などを分析してサイトのどこに問題があるかを突き止めていくということもあります。 データサイエンティストには統計学などの専門性の高い数学知識が求められるため、キャリアアップの選択肢としては少しハードルが高いと感じるかもしれません。 将来データサイエンティストになることを見据えるのであれば、早い段階から統計学などの専門的なスキルを身につけておくことが望ましいでしょう。 AIエンジニア AIエンジニアは、AIが搭載されたシステムやアプリを開発する仕事です。AIが搭載されたシステムとはたとえば、レコメンド機能があるECサイトや画像認識機能がある防犯カメラシステム、といったものがものが挙げられるでしょう。 AIエンジニアもやはり、プロンプトエンジニアとして培ったAI知識を活かせる仕事であり、キャリアアップの選択肢として考えられるでしょう。 ただし、AIエンジニアはシステムやアプリを実際に開発する仕事であるため、より高度なプログラミング知識が求められます。 AI開発において現在もっとも使われているプログラミング言語はPythonなので、Pythonを優先的に勉強すると良いでしょう。 Pythonには機械学習ライブラリが豊富にあり、各ライブラリの使い方を覚えることでAI開発がしやすくなります。 プロンプトエンジニアの需要 プロンプトエンジニアの求人は、現状ではそこまで多くはありません。というのも、まだまだこれからの仕事であるためです。 また、AI活用以前にそもそも日本ではIT化が遅れているのもあって、ChatGPTまで手が伸びる企業は多くないと思われます。 ただ、一部のベンチャーやスタートアップ企業などでは、プロンプトエンジニアを募集していることがあります。 そのため、プロンプトエンジニアに今すぐ転職したい方はベンチャー企業などに目を向けてみるのが良いでしょう。 プロンプトエンジニアの将来性 プロンプトエンジニアの求人数は現在それほど多くありませんが、今後さらに増えていく可能性が十分にあります。ChatGPTの有用性が一般企業にも広まれば、自社でもプロンプトエンジニアを採用したいと考える企業が出てくると予想されるためです。 また、日本では少子高齢化が進んでおり、今後の人材不足に悩む企業が出てくるのも、プロンプトエンジニアの将来性が高い理由と言えます。人材不足を補うためには、AIによる業務の自動化が必要になることが考えられるため、プロンプトエンジニアを採用してChatGPTを自社で有効活用できるようにして業務効率化を図りたいという企業は多く出てくるでしょう。 ただし、プロンプトエンジニアという仕事が今後どのような形になっていくかを予想するのは難しいです。たとえば、誰でも簡単にプロンプトが作成できるようにAIが進化したり、プロンプトすらAIで作成できるようになったりしたら、状況が大きく変わるかもしれません。 そのため、プロンプトエンジニアを目指す方は、プロンプトエンジニアという職種だけで食べていくと考えるよりも、AI関連の幅広いスキルを身につけてフルスタックに活躍していく方向を目指す方が、安定したキャリアアップを実現できるでしょう。 まとめ 本記事ではプロンプトエンジニアについて解説しました。プロンプトエンジニアに必要なスキルや仕事内容、将来性などがお分かりいただけたかと思います。 今後はAIを業務で活用することの重要性が高まることが予想されており、プロンプトエンジニアの需要が高まる可能性も高いです。 プロンプトエンジニアの仕事に興味を持っている方は、今のうちに英語力やプログラミング力などを磨いておくと、将来転職できる可能性を高めることができるでしょう。ただしAI分野は変化が非常に激しく、将来プロンプトエンジニアという仕事がどういった形になっているかを予想するのは難しいです。 プロンプトエンジニアの仕事内容や求められるスキルが5年後、10年後、大きく変わっている可能性もあります。そのためプロンプトエンジニアを目指す方は、AI業界の最新動向に常に目を向けておくことが大切です。 最新動向を知っておけば、次に需要が高まると思われる技術分野も知ることができ、先回りしてスキルを習得することができます。エンジニアとしての市場価値を下げないためには、こういった工夫が必要になるのです。 テクフリでフリーランス案件を探してみる

Java
PlayFramework(Java)で開発環境と本番環境の違いで苦労した
今回の苦労した点は conf/内のファイルが読め込めない!! というもの。 やりたいこととしては、conf/内に何かしらのファイルを置いておいて、application.confに記述したパスを参照して、Javaで読み込むというもの。(PlayでJava?という気持ちは内にしまっておいてください。。。) 開発環境で動作させるrunやstartですと問題ないのですが、本番環境で運用する為のstageやdistをして実行すると読め込めないという状況が起きました。 まずは、 開発環境で動作したコード //application.confを読み込みにいく Config config = ConfigFactory.load(); //ファイルパスを取得 String filePath = config.getString("filePath"); //ファイルパスからFileインスタンスを生成 File file = new File(filePath); //NullPointerException このコードで実行すると、ファイルが見つかりません。 ConfigFactory.load()を利用するとデフォルトでapplication.confを読みにいくのですが、runやstartと違ってstageやdistしたパッケージ内にはconf/が存在していないのでパスが違ってエラーになります!! ではどうしたものか・・・色々調べてみると、 便利なものが存在しました!! play.Application.getFile(String relativePath)このメソッドはアプリケーションのルートパスからの相対ファイルを取得するというもの。アプリケーションのルートパスの参照ならconf/も存在するので、ファイルも取得出来る!!それでは、 本番環境でも動作したコード //application.confを読み込みにいく Config config = ConfigFactory.load(); //ファイルパスを取得 String filePath = config.getString("filePath"); //ルートパスからファイルを取得 File file = Play.application().getFile(filePath); これでファイルを取得出来ました!!因に、application.confに記述するパスはconf/pathとなります。 フリーランス案件を探す

働き方
ユーザー系SIerになるメリットは? 実態を徹底調査
独立系とは? IT業界の方が“独立系”と言えば、それは独立系システムインテグレーター(SIer)を指していると考えて、まず間違いありません。そして、独立系システムインテグレーターとはなにかというと、ユーザー系システムインテグレーター、メーカー系システムインテグレーターと異なり、資本的に独立性のあるシステムインテグレーターということになります。 もう少し、具体的に見ていきましょう。ユーザー系システムインテグレーターとは非IT企業の子会社・グループ企業のシステムインテグレーターです。有名どころでいえば、三菱UFJ銀行の〈三菱総合研究所〉など、メガバンクの〇〇総研や、総合商社である伊藤忠商事の〈伊藤忠テクノソリューションズ〉、住友商事の〈SCSK〉、大阪ガスの〈オージス総研〉などが挙げられます。 メーカー系システムインテグレーターは、富士通・NEC・キヤノン・日立など機器メーカーのグループに所属するシステムインテグレーターです。 〈富士通エフサス〉や〈NECソリューションイノベータ〉、〈キヤノンITソリューションズ〉、〈日立システムズ〉などグループ名を社名に冠していることが多いです。 そして、独立系システムインテグレーターはユーザー系システムインテグレーターでもメーカー系システムインテグレーターでもない“その他”と言えるかもしれません。有名どころとしては、東海道新幹線に乗ったことがある方なら一度は目にしたことがあるではあろう藤原竜也さんの広告で有名な〈Sky〉やERPパッケージ大手の〈オービック〉、カタログ通販サービスの“たのめーる”のCMをよく見る〈大塚商会〉などがあります。 独立系のエンジニアのメリット①【資本関係上の配慮が要らない】 ユーザー系やベンダー系のシステムインテグレーターで働くよりも、独立系システムインテグレーターでエンジニアとして働くメリットは、縛るものがない、ということでしょう。ベンダー系システムインテグレーターのエンジニアたちがシステム構成を考える際、どうしても“グループ企業から調達すること。グループ企業で調達できないものだけ、ライバル企業以外からなら調達しても可”が前提になりがちです。 もちろん、グループが持つ圧倒的なリソースが活用できる、という意味では、必ずしもデメリットだけではありませんが、エンジニアのできること・行っていいことに一定の枠組みがあるのは間違いありません。 親会社やグループ企業の意向で制限を受けるという意味では、ユーザー系システムインテグレーターもベンダー系と同じです。筆者自身、ユーザー系システムインテグレーターでプロパー社員として勤務したことがあります。 その時に実際にあったエピソードをご紹介します。 ある時、システム更改で親会社からA社とB社の同等パッケージ、どちらを選択するべきか比較するように指示されたので、示された方針に従って比較し「A社のパッケージの方を導入すべし」という報告書を作成し、親会社の担当者に提出しました。ところが、親会社とB社の“お付き合い上の理由”で、結局、導入されたのはB社製品でした。 ここまで極端な例は少ないと思いますが、非IT企業の親会社から、IT以外の観点で口出しされていまい、途方に暮れた経験の一つや二つ、ユーザー系システムインテグレーター勤務のエンジニアなら、みなさんあるのではないでしょうか?それに対して、独立系システムインテグレーターは親会社がそもそもないので、ベンダー系やユーザー系の抱える“政治的な問題”を気にする必要がありません。 サーバーやパソコンといったハードウェアはC社、その上で動くパッケージはD社と言った風に、自由に組み合わせを考えられることが多いと思います。 独立系のエンジニアのメリット②【昇進・給与に天井がない】 ベンダー系・ユーザー系システムインテグレーターの位置づけは基本的に“子会社”です。社長や役員クラスの半分、ひょっとするとほとんど全員が親会社から降ってきている会社も多いのではないでしょうか? ちなみに、私がユーザー系システムインテグレーターにいたときの私の部署の担当役員は、親会社でキャリアを積んできた方で、親会社の役員も兼務しており、切れ者との評判でした。ところが、システム開発については素人同然で、そんな方がある大規模案件でレビュアーとして参加してしまったのが運の尽き。 あらぬ方向に話が進んでいって、一向にレビューが前進せず、担当役員の横に座っていた生え抜き出身の部長が苦虫を嚙み潰したような顔をしていて、説明する側が笑いを堪えるのに必死だった思い出もあります。 また、特にユーザー系システムインテグレーターで起こりがちなのですが、システムエンジニアは割と年収が高い職種とされていますが、親会社に準じた給与テーブルになっているせいで、世間一般のシステムエンジニア職の年収より年収額が低い、というケースもしばしばあります。独立系のエンジニアであれば、親会社から人が降ってくるせいで昇進が難しいということもないですし、親会社と同じかそれ以下になるように給与にリミッターがかかる、ということもまずありません。 独立系のエンジニアのメリット③【様々な現場を経験できる可能性が高い】 ユーザー系システムインテグレーターの中には取引先は100%グループ企業という会社も多いです。ベンダー系のシステムインテグレーターだと、金融関係の案件はE社、官公庁関連の案件はF社、ただし、ネットワークインフラはG社が担当といった風に分業制になっていることも多いです。しかし、独立系システムインテグレーターには、そのような仕事の範囲がなく、様々な現場を経験できる可能性が高いです。 また、特にユーザー系だとどうしても上流工程が中心になり、エンジニアと言いつつ、実際の作業では手を動かさない、もっというとプログラミングをほとんどしない、という事も多いです。しかし、独立系システムインテグレーターであれば、会社の規模などにもよりますが、上流工程から下流工程まで様々なポジションにて参画できる可能性がります。 どんなエンジニアが向いている or 求められている? 独立系システムインテグレーターに向いているエンジニアは一言で言えば「チャレンジングなエンジニア」でしょう。日本を代表するような企業グループに連なるメーカー系・ユーザー系は、その立ち位置だけでも独立系に大きな優位性を持っているのが現実です。 更にいえば、ユーザー系は営業活動をしなくても親会社や関連会社から優先的に仕事を割り当ててもらいがちです。その前提に立ったとき、独立系がどうやれば、メーカー系やユーザー系から仕事を奪えるかと聞かれたら、答えは単純で「メーカー系やユーザー系に勝さる技術力を付けて、彼らができないことをやってのける」だけです。 個人的な感覚ですが、所属エンジニアの技術力平均は独立系≧ベンダー系>ユーザー系のように感じています(あくまで平均です。上位10%のエンジニア比較だと、ベンダー系の方が圧倒的に上だと思います)。 また、ベンダー系やユーザー系と違って、親会社などの意向による制限がないということは、「自由の怖さ」も併せ持っているといもいえます。“本当に良いものを選ぶ”というのは口で言うのは簡単ですが、比較対象の特性を理解し、クライアント企業の真のニーズを読み取れなければ、まず無理です。 ベンダー系・ユーザー系システムインテグレーター勤務のエンジニアにも必要ですが、独立系システムインテグレーター勤務のエンジニアには輪をかけて「向上心」が必要だと思います。 まとめ:現状と今後の展望をよく見定める 今回は、独立系システムインテグレーターについて見ていきました。 なにを持ってシステムインテグレーターと呼ぶか、その定義は難しいところがありますが、ユーザー系やベンダー系のシステムインテグレーターはそうポコポコとあるものではなく、システムインテグレーターの大半は独立系であり、独立系同士の競争も厳しくなっているように思います。 今後、システムインテグレーターへの就職を目指す方は、その会社の強み弱み、そして現状と今後の展望についてもよく見定めるべきでしょう。

働き方
エンジニアがゲーム業界で活躍するには? 扱う言語や業務内容など
「エンジニア」「プログラマー」と名前が付く職種は世の中に多くあります。当サイトでは中でも混同しやすい21職種に限定して、その仕事内容や扱う言語、活躍できる業界などを紹介・比較しています。この記事で取り上げていくのは、「ゲームプログラマー」という職種です。このポジションでは、どんな仕事に取り組み、どんな言語を扱うのでしょうか? その将来性とともに見ていきましょう。 フリーランス案件を探す ゲームプログラマーとは ゲームプログラマーは、ゲーム制作会社やプロダクションに勤務し、ゲームソフトのプログラミングを担当する職種です。扱うのはC++やC言語が主流。仕様書通りにゲームが動作するよう、キャラクターの言動やBGM・SEをプログラムし、ユーザーに最高のゲーム体験を提供することが使命です。 ゲームプログラマーという名前の通り、主にプログラミングに携わることが多いです。ゲームが完成するまでには、シナリオライターやゲームデザイナー、あるいはゲームクリエイターといった人の手が加わりますが、ゲームの土台をつくるという意味では非常に重要な役割を担っているのが、ゲームプログラマーという仕事であると言えます。 一般にゲームプログラマーが顧客との折衝や打ち合わせに参加することは少ないですが、ゲームプログラマーを担当しているエンジニアがゲームクリエイターを兼務することは珍しくありません。土台づくりに携わっているからこそ、「これは実現できる」「それはゲームバランスを損なう」といった判断ができる立場にあるからです。したがって、ゲームクリエイターとしての仕事も担当する可能性がある職場に転職すれば、ゲームづくりの中核メンバーとしてチームを率いる経験ができることも予想できます。大きな重責をともなうものの、「自分がこのゲームを世に送り出しているんだ」という強い実感のもとで働ける魅力もあるでしょう。 具体的な業務内容 昨今ではスマホアプリにおけるソーシャルゲームのシェアを伸ばしていますが、ゲームプログラマーが担当するのは従来の据え置き型ゲームのソフトです。オフライン環境下で動作するものが大半ですので、後からバグの修正プログラムを当てる…といったことが基本的に不可能な点に注意しなければなりません。 したがって、ゲームプログラマーに求められる一番の要素は、バグを早急に発見し、発売時までに可能な限りゼロに近づけることと言えるでしょう。プログラムの実行速度が遅くなることで、ユーザビリティの低下にも直結します。いわゆる「重い」ゲームです。 そうならないよう、高速に実行できるプログラムを生成し、ハードウェアとなるゲーム機本体に負担をかけないゲームづくりが優先されます。単にプログラムを書けるだけではなく、完成度の高いコードを生み出す高度なスキルを必要とするわけです。また、オンライン通信に対応するゲームソフトであれば、サーバーを介して常にデータのやり取りが行われることも考えられます。その時にも遅延やデータの競合が発生しないよう、細心の注意を払ってプログラミングすることが重視されます。 近年では、物理的なフィギュアと連携するゲームソフトや、イベント特典によりアイテムがもらえるタイトルも珍しくありません。複雑化・多様化するゲームソフト業界に対応し、柔軟な姿勢で業務の幅を広げていけるプログラマーこそ、今後生き残っていく人材と言えるでしょう。 必要な技術/資格/言語 ゲームプログラマーとして働くためには、C++をはじめとするC系統のプログラミング言語を習得している必要があります。Java・PHPといった言語を使用するシーンも少なくありませんので、これらの言語もマスターしておくと仕事の幅が広がるはずです。また、意外に思われるかもしれませんが数学・物理の素養もあると役に立ちます。ゲーム内のキャラクターの動きは数学・物理の知識を応用したものなので、知っていると素早く仕事を完成させられる可能性が高まります。 とはいえ、人材不足を背景に未経験OKの求人を出している会社も少なくありませんので、初心者でも採用してもらえる確率はゼロではありません。それでも、基本的なIT技術やプログラミングの知識は身につけておく方が、入社後に「こんなに難しい仕事だと思わなかった」などといったミスマッチが生じるのを防ぐことができるでしょう。 なお、求人によっては英語力を求めるケースもあり、TOEICの点数が尋ねられることもあるようです。というのも、ゲームの制作会社によっては海外進出を狙っているところも珍しくないため、海外の協力会社とのコミュニケーションが取れる人材を優先したいという考えがあるからです。積極的に英語の勉強をする必要はありませんが、せめてプログラミング関連の専門用語は覚えておき、余裕があったらコツコツと英単語を覚えるなどの学習を続けてもよいでしょう。 学ぶべきスキル ゲームプログラマーになりたいと考えるなら、2通りのキャリアパスが考えられます。まず一つは、未経験OKのゲームの制作会社に転職し、給料をもらいながらスキルを身につけていく方法。もう一つが、ゲームプログラミングを専門とするスクールに通って、お金を払って技術を学ぶ方法です。 未経験からこのポジションを目指そうとする場合、多くの人は専門学校に通う道を選択することでしょう。ですがせっかくならお金をもらいながらスキルを身につけていきたいところ。特に20代前半の若い世代であれば、新卒と同等の扱いで指導を受けさせてもらえる会社も少なくありません。実務の中で学んだ方が身につきやすいですし、経済的な余裕も生まれてきます。できるだけ未経験可の求人を探し、働きながらスキルアップできる方法を考えてみましょう。 すでにシステムエンジニア・プログラマーとして働いている人がこの職種を目指そうと考えるなら、まずはC言語をマスターすることが先決です。さらにソーシャルゲームにも対応できるよう、SwiftやObjective-C、Javaのスキルもあるとなおよいでしょう。日常的にゲームソフトで遊ぶことでトレンドに触れつつ、初対面の人とも気軽に話せるコミュニケーション力や、チームメンバーやクライアントと協調して仕事を進める対人折衝能力を鍛えておくと、高待遇の求人を目指せそうです。 予想される年収水準 コンシューマーゲーム業界で活躍するゲームプログラマーの場合、IT業界で働く一般的なエンジニア・プログラマーと比べてやや低めの年収水準となることが予想されます。コンシューマーゲーム業界自体の市場が縮小傾向にあり、スマホで遊べるソーシャルゲームのシェアが大きくなっていることが理由です。 未経験からのスタートでクリーク・アンド・リバー社の調べ(26歳第二新卒者平均年収例)によると年収200〜300万円程度、経験者募集なら400〜500万円前後が相場と考えられます。ソーシャルゲーム業界にも携わるようになれば、これ以上の年収も期待できます。 活躍できる業界 ゲームプログラマーが実力を発揮するのは、主にコンシューマーゲームの業界です。オフライン環境下で遊ぶ据え置き型ゲームに向けて、ゲームソフトを開発することが主流です。 しかし近年ではソーシャルゲームのシェアが拡大していることから、スマホアプリ会社へ転職するプログラマーが少なくありません。コンシューマーゲーム開発で培ってきた経験や知見を活かすことで、業界でも数少ないソーシャルゲーム開発者として活躍できる可能性があります。IT業界でも活躍できるという意味では、幅広いフィールドで働ける職種と言えます。 まとめ:将来性にも期待できる ゲームプログラマーは、主にコンシューマー向けゲームソフトを手がけるエンジニアです。スマホ向けゲームアプリに携わるクライアントエンジニアとは区別され、主に据え置き型ゲームの開発が主戦場です。 ただし、ゲームプログラマーとして培った経験を活かし、需要が拡大しているソーシャルゲーム業界に転職することで、稀有な存在として好待遇を得られる可能性も考えられます。人々の娯楽に密着する職種なだけに、これからの将来性にも期待できる仕事の一つです。 フリーランス案件を探す

freelance
スキル
RPAフリーランス案件の求人動向や単価相場を徹底解説!
RPAの仕事内容 RPAとは RPAは「Robotic Process Automation」の略で、人の手で行っている業務や作業を自動化する技術のことです。キーボード入力などの定型業務や、クリックなどの繰り返し行うルーティーンワークを自動で行うことから、仮想知的労働者(デジタルレイバー)とも呼ばれています。 また、業務をこなすソフトウェアを「RPAロボット」と呼び、業務に合わせてさまざまな種類のロボットを作成することができます。 RPAロボットが代替する代表的な業務は、「会員登録」「勤怠管理」「交通費確認」などの業務です。これらの業務は単純なので、AIなどの技術を使用せずに、RPAシステムの開発だけで対応することができます。 RPAシステムを実行するソフトウェア(RPAツール)にはさまざまな種類のものがありますが、最も有名なものは「UiPath」でしょう。 「UiPath」とは、RPAのグローバルリーディングカンパニーであるUipath社が提供しているRPAソフトウェアです。「UiPath」のRPAにおける国内シェア率は1位で、割合は全体の30%を超えています。 導入 RPAシステムの「導入」工程では、顧客の業務プロセスを理解する必要があります。そのために、顧客へのヒアリングや、使用されている業務システム・ツールのなどの情報収集・分析を行います。そこから、RPAロボットで代替する業務要件を定義します。 開発 「開発」工程は、導入でRPAの業務要件を定義し、システム構築の方向性を確定してから行います。開発工程における主な業務は、システム要件の業務をRPAロボットが代替するためのシナリオの作成です。 シナリオとは、顧客が行っている業務に合わせて作成されたRPAの動作プロセスのパターンのことです。顧客によってRPAの活用要望は違うので、「導入工程」と同様に「開発工程」でも、顧客の業務プロセスをしっかりと理解していることが大切です。 運用・保守 RPAを導入し、顧客が利用を開始した後は、「運用・保守」工程に移ります。主な業務内容は、エラーが発生した際の対応や、顧客から追加の要望があった際のソフトウェアのアップデートが挙げられます。 使いづらいRPAシステムは、業務の効率を阻害します。そのため、運用・保守における対応もRPAの業務において、とても重要な仕事だと言えます。 RPAのフリーランス案件 求人動向 近年、業務効率を高めるために、大手企業を中心にRPAを導入する企業が増えています。それに比例して、RPA導入や開発、運用・保守を行う人材の需要が高まり、フリーランスの案件数も増えています。 RPAの関連職種には、エンジニアやコンサルタントなどがあり、求人の多くはコンサルタント会社やIT企業などのRPAの業務委託案件です。 RPAは比較的新しい分野で、人材が不足しているため、エンジニアを目指している方や、フリーランスとして独立を考えている方におすすめの分野と言えるでしょう。 単価相場 RPAに関連するフリーランス案件の単価相場は、月額約40~60万円と言われています。また、職種別に見ると、RPAエンジニアが月額約約30~60万円、RPAコンサルタントが月額約80~120万円です。 フリーランス案件の単価は、経験やスキル、担当する業務内容によって大きく変わります。RPA導入後の運用・保守業務だけの場合では案件の単価は低くなり、RPA導入前のコンサルタント業務の案件では単価が高くなる傾向があります。さらに、RPAの導入から運用・保守までの一連の業務を担当する案件の中には、月額単価が80万円を超えるものも存在します。 RPAの需要・将来性 結論から言うと「RPAの需要は高い」と言えます。RPAは金融、サービス業、商社など、幅広い業界や企業で導入されていれ、その割合も年々増加しているからです。 その背景には、日本では少子高齢化により労働人口が年々減少しており、多くの企業が人手不足の問題に直面しています。就業支援や外国人労働者受け入れなどの対策を行なっていますが、それだけでは解決できません。 その深刻な人手不足の問題を改善することができるだけでなく、業務の生産性を上げられることができることから、RPAの需要は増え、多くの企業に導入されています。 まだ、RPAを導入していない企業も多く、今後も人手不足の問題によりにRPAの需要は増え続けることが予想されることから、RPAは需要だけでなく将来性も高いと言えるでしょう。 RPAに必要なスキル・知識 システム開発 システム開発のスキルは、RPAエンジニアとして働くときにも役に立ちます。 RPAの開発は、定義された業務要件から仕様書を作成し、RPAロボットのシナリオを作成します。この作業が一般的なシステム開発の設計〜製造、テストの業務と似ているからです。 業務分析 RPAを導入し効果を出すためには、RPAが適用しやすい業務や類似した業務などを、業務分析し見つけ出すスキルが必要です。自動化が向いていない業務に対しRPAを導入しても、大きな効果が出ないでしょう。RPAの効果をしっかりと出すためにも、業務分析スキルが必要です。 RPAツール RPAを導入する際にはRPAツールを使うので、RPAツールの知識やスキルが必要です。ツールの使い方は業務の中で覚えることもできますが、あらかじめ身に付けておけば、RPAの案件獲得がより一層しやすくなるでしょう。 ExcelマクロやVBA RPA業務では、Excelマクロ・VBAのスキルを求める場合があります。ExcelマクロはExcelの処理を自動化するもので、VBAはマクロの処理などを記述できるプログラミング言語です。 RPAの業務工程の理解やシナリオ作成業務には、VBAやExcelマクロのスキルが有用なので、必須ではありませんが身に付けておくといいでしょう。 RPAに関連した職種 RPAエンジニア RPAエンジニアは、所属する企業によって異なりますが、「開発」「保守・運用」の全ての工程、またはその一部の工程を行います。 「開発」はRPAエンジニアが担当する主な業務で、顧客が求める自動化したい業務をRPAツールを使用してロボットを構築していきます。 「保守・運用」の主な業務は、RPA運用中に起きたトラブルやエラーの対応やソフトウェアのアップデートです。 RPAコンサルタント RPAコンサルタントは、RPAの導入の要件定義や効果予測、計画策定などの「導入」部分にあたる業務を担当します。 RPAコンサルタントの業務は、一般的なシステム開発で上級SEや営業SEが行うシステム導入提案に似ています。しかし、経営に直結する提案を行うので、名前の通り、エンジニアよりもコンサルタント寄りの業務と言えるでしょう。 RPAプリセールスエンジニア RPAプリセールスエンジニアの主な業務は、RPAツールの提案・販売です。 提案力やコミニケーション能力などの営業面のスキルだけでなく、提案するためのRPAの知識や、デモンストレーションも行う際の技術力も求められます。 プロジェクトリーダー/マネージャー(PL・PM) RPAに関連した職種として、プロジェクトリーダー・マネージャーを上げることができます。 プロジェクトリーダー・マネージャーは一般のシステム開発も行うため、RPAの知識やスキルだけでなく、一般のシステム開発のスキルや知識も求められます。 まとめ 今回は、RPAについて「仕事内容」やフリーランス案件の「求人動向」などをまとめました。 人手不足などの問題を改善できるRPAの需要が高まっているとともに、RPAのフリーランス案件数も年々増加してきています。 この記事を通して、RPAに対する理解を深めるために、少しでもお役に立てましたら幸いです。

freelance
Rust
Rustの言語 Rustの有用性を全方位で検証
Rustとは? Rustは速度、安全性、並行性の3つのゴールにフォーカスしたシステムプログラミング言語です。 2010年7月にMozilla Summitにて公開されました。そのため、比較的新しいプログラミング言語と言えます。 Rustが開発されたきっかけですが、2006年にGraydon Hoare氏が趣味でRustの開発を始めました。その後にソフトウェアデベロッパーであるMozillaが開発チームを編成し、本格的な開発が始まりました。 Mozillaは世界中で使われているブラウザであるFirefoxを開発している企業であり、FirefoxはRustによって開発されています。Firefoxはブラウザのシェア率が7.52 %(2018年8月)となっており、世界で3番目に使われているブラウザになっています。 Firefoxを使えばサクサクと高速にアプリケーションが動作することがわかるでしょう。使ったことない方はぜひFirefoxを使ってみて下さい。Rustの凄さが実感できます。 速度に関しては、ネイティブに近い形で実行されるので実行速度が高速です。安全性に関しては変数に寿命や所有権を与えることで担保されています。並行性に関してはマルチスレッドと呼ばれる1つのプロセスを複数のスレッドに分割して実行する方法が取られています。 また、プログラミング言語にはC++のようなコンパイル言語とRubyのようなスクリプト言語があります。コンパイル言語では人が理解できるコードをコンピューターが理解できるように変換しますが、スクリプト言語ではこのような変換はありません。Rustはコンパイル言語の仲間に入ります。 Rustは同じコンパイル言語であるC++で不可能であったメモリ管理を簡単にしながらも、高速でアプリケーションを動かせるということを実現するために開発されました。 続いてRustの特徴をもっと見ていくと、Rust公式ホームページに以下がRustの特徴として挙げられています。 ・ゼロコスト抽象化 ・ムーブセマンティクス ・保証されたメモリ安全性 ・データ競合のないスレッド ・トレイトによるジェネリクス ・パターンマッチング ・型推論 ・最小限のランタイム ・効率的なCバインディング かなり難しい用語が並んでいるため、わからない方はスルーして頂いて大丈夫です。最初にRustの特徴で挙げた速度、安全性、並行性に全て通じています。 Rustの言語 習得難易度は? 続いてRustについて習得難易度がどうなっているのか見ていきましょう。結論から言うと、Rustの習得難易度は高いと言えるでしょう。 理由はRustがコンパイル言語であること、Rustは比較的新しい言語であり、学習教材が他のプログラミング言語よりも少ないことが挙げられます。 まず、Rustがコンパイル言語であることに関してですが、RustはC言語やC++、C#、Javaなどのコンパイル言語に属しており、これらの言語と同じく習得難易度が高くなっています。 コンパイル言語は高速で動作がすることがスクリプト言語に比べて大きなメリットとなっていますが、一方で記述が面倒となっており、記述が短くて済むスクリプト言語と比べると記述面では大きなデメリットとなっています。 同じくRustも動作が早いというメリットはあるものの、記述が面倒な部分があり、その分習得は難しくなっています。 続いてRustは比較的新しい言語であり、学習教材が他のプログラミング言語よりも少ないことに関してですが、Rustは2010年に公開された比較的新しいプログラミング言語であり、その他の有名なプログラミング言語と比べると多くのユーザーには使われていません。 そのため、他のプログラミング言語よりも学習教材が少なく、自分自身での学習が難しくなっているプログラミングの一つとなっています。英語ができる方は海外サイトを利用して自分に合った学習サイトを見つけることができると思いますが、日本にRustを学べる学習サイトは少ないです。 Rustで活躍できる業種と年収 今まではRustについてとRustは習得しやすいのかどうかについて見てきました。ただ、Rustを使う職場に転職した場合に「どのくらいの年収を貰えるのか?」「そもそもどういう職場に転職できるのか?」ということについてここではお伝えしていきます。 IT業界ではインターネット・Web業界、情報処理サービス業界、ソフトウェア業界、ハードウェア業界の4つに分類することができます。Rustを使えるとインターネット・Web業界、ソフトウェア業界の2つで活躍することができます。 まずインターネット・Web業界はWebメディア・ショッピングサイトなどの自社サイトを運営している企業が多いです。Rustの場合はベンチャー企業で使われていることが多く、仮想通貨取引所などのFintech系サービスで使用されていることが多いです。 ソフトウェア業界ではプログラマーかSE(システムエンジニア)としてiOSアプリ開発の下流もしくは上流工程に加わることになります。Rustの場合はデータ収集機器のソフトウェア開発や認証基盤のソフトウェア開発などのお仕事があります。 年収に関しては500万円以上のものが多く、年収1000万以上の求人案件もいくつかあります。 求人案件の絶対数は少ないものの、Rustを使えるエンジニアが少ないので年収は他のプログラミング言語よりも高くなっています。 特に仮想通貨取引所のシステム開発など最新の技術が必要になる求人案件は年収が高く設定されています。 Rustは将来性もあるので、狙い目かもしれません。 実際にRustはどのように使われているか?:Mozilla Firefox、Dropbox 等 最後に実際にRustはどのように使われているのかということに関してMozilla FirefoxとDropboxを例に挙げて見ていきます。 Firefoxは世界的に使われているインターネットブラウザの一つであり、Mozillaは世界中で使われているブラウザであるFirefoxを開発している企業です。この企業がRustを開発しました。 Firefoxの開発にはRustが使われているわけですが、2017年末に公開されたFirefox57ではRustによる開発のおかげでFirefoxブラウザの動作速度が約2倍も早くなりました。 Rustの3つの特長である速度、安全性、並行性が存分に生かされたインターネットブラウザがFiredoxであるので、是非皆さんも利用してみてください。Firefox公式ホームページにはRustの技術ブログもあるため、そちらも是非ご覧になってみてください。 続いてDropboxに関してですが、Dropboxのバックエンド・インフラのほとんどのプログラムはGo言語によって開発がされていました。 ただ、一部の重要なコンポーネントではメモリ・フットプリントや、詳細な制御を欠いており、こちらではRustを採用することでこれらの問題を解決することにしました。 Dropboxは世界的に有名なオンラインストレージサービスですが、このような世界的に有名なサービスにRustが使われており、今後もますますRustは有名なサービスに使われていくでしょう。 まとめ:高い将来性 Rustの言語 Rustの有用性を全方位で検証 というテーマで今回はお伝えしました。いかがだったでしょうか? 今回お伝えしたかったことは以下のとおりです。 Rustは速度、安全性、並行性の3つのゴールにフォーカスしたシステムプログラミング言語Rustの習得難易度は高いRustは今後もますますRustは有名なサービスに使われていく可能性があり、将来性は高いと言える Rustについて聞いたこと無い方も多かったと思いますが、今回の記事を参考にして是非Rustの学習に繋げてみてください。 今だけ!登録で最大1,500円相当もらえるお仕事探しサービス「テクスカ」 「テクスカ」は、報酬をもらいながらお仕事探しができる新体験のスカウトサービスです。 【テクスカの4つの特徴】 1.面談するだけで、3,500円相当のAmazonギフトカードを獲得できます 2.優秀な貴方に仲間になってほしいと真に願うとっておきのスカウトが企業から届きます 3.貴方の経歴・スキルを見て正社員のオファーだけでなく副業オファーも届きます 4.転職意欲がなくとも自分のスキルが通用するか各社のCTOに評価してもらうチャンスがあります 忙しさのあまり、企業との新たな出会いを逃している… スパムのように届くスカウトメールにうんざりしている… 自分の市場価値がわからない… 社外の人からの評価が気になる… 副業の仕事が見つからない… そんなあなたにおすすめです!