お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

お役立ちコンテンツ

フリーランスの抱える税金や確定申告、社会保険や経費に関するお悩みを解決いたします。そもそもフリーランスになるためにはどうすればよいのか、現在正社員で働いているが、フリーランスになりたいと考えている方々にも必見です。役立つコンテンツ満載でお届けいたします。

該当コンテンツ数288件中37~48件を表示
働き方

保育園は継続可能?フリーランスに転身した場合

会社員からフリーランスとして独立する場合、既に子供がいれば保育園の継続可否は気になるところではないでしょうか。そこで本記事では会社員からフリーランスに転身した場合の保育園の継続可否や、継続するために必要な手続きについて紹介します。 テクフリでフリーランス案件を探してみる フリーランスになったら保育園の継続はそもそも可能なのか? 会社員からフリーランスになったとしても、保育園の継続は可能です。 もちろん名ばかりフリーランスで受注する案件もなく開業届も提出していなければ問題はありますが、きちんとした手続きを経てフリーランスとして独立するのであれば、基本的には継続できると考えて問題はありません。 しかしフリーランスに転身することで保育園の受入れ条件から外れてくるような場合は注意が必要です。 詳細は地域や保育園ごとに異なりますが、保育園では親の就業時間についての条件を定めている場合が少なくないからです。 一般的な正社員の就業時間は月~金曜日の1日8時間勤務ですが、仮に一週間の労働時間が40時間以上あることが定められていたとしましょう。 そのような条件の保育園に子供が通園していて、一日の労働時間が6時間程度の勤務予定表を提出してしまうとその時点で保育園継続の条件から外れるリスクがあります。 その一方で入所の条件が月間60時間程度の労働であれば、1日6時間程度の勤務でも条件を満たすことになります。 また保育園は市など地方自治体ではなく民間が運営している場合もあります。 同じ地域でも運営組織によって継続条件が異なる可能性もあるため、フリーランスに転身することが決まったなら早めに利用している保育園に相談することをおすすめします。 保育園の継続で必要な書類とは? 会社員を退職してフリーランスに転身する場合、保育園を継続するためにはいくつかの書類を準備して提出しなければいけません。 では次にフリーランスに転身して保育園を継続する場合に必要な書類を見ていきましょう。 開業届 フリーランスとして活動をスタートする場合、開業届の提出は必須ではありません。 しかし開業届を提出することによってフリーランスとしての活動を開始した日付が明確になり、保育園への説明もやりやすくなるというメリットがあります。 また地域や保育園によってはフリーランスには開業届の提出を求めてくる場合があります。 会社員から転身してフリーランスになるなら、開業届の提出についても検討することをおすすめします。 退職証明書 会社員からフリーランスに転身する際は、退職したことの証明として退職証明書の提出を求められることもあります。 しかし具体的にどのような項目が必要になるのかは、地域や保育園によって異なるため提出を求められた際は、具体的に必要な項目についても確認しておきましょう。 勤務実績を証明する書類 フリーランスとして常勤で勤務するなら、タイムカードの写しなどで勤務実績を提出できます。 デザイナーやライターなど勤務時間ではなくプロジェクト単位で仕事をしている場合、タイムカードはないかもしれませんが契約書の写しなどでも勤務実績の証明につながります。 勤務実績の証明が求められた際は、具体的にどのような書類が必要になるのか確認しておくことが大切です。 保育園へ提出する変更届 添付に必要な書類を準備できたら、保育園に変更届を提出しましょう。 変更届は保育園事や自治体ごとに用意されたフォーマットに従って作成します。 また変更届を提出する際は、できるだけ担当の先生とコミュニケーションをとってフリーランスとしての働き方の詳細を伝えておくことが大切です。 なぜならフリーランスはまだまだ新しい働き方であり、担当者によっては理解をするのに時間がかかる可能性があるからです。 そして一般的に会社員は安定している印象がありますが、フリーランスには不安定なイメージを持つ人が少なくありません。 保育園の先生からきちんと理解をしてもらうためにも、フリーランスに転身する際はコミュニケーションをとっておくことをおすすめします。 テクフリでフリーランス案件を探してみる 保育園の継続に成功した場合 ~来年も大丈夫? 会社員からフリーランスに転身した場合の保育園の継続方法は前述の通りですが、保育園の継続に成功したとしても来年も同じように継続できるとは限りません。なぜならフリーランスの仕事は会社員のように常に一定の報酬があるわけではないからです。最低限保育園や自治体が定めている労働時間以上は働けるだけの案件を獲得し続けなければいけません。 また申告した労働時間や業務内容と全く違うことをしていると、保育園からの信用を損なうことにもなりかねません。大きく状況が変わらなければ基本的に心配は不要ですが、来年も引き続き保育園を利用したいならフリーランスとしての活動にも努力を怠らないことが大切です。 フリーランスとして新規に保育園に入園する場合の注意点 フリーランスとして新規に保育園に入園する場合でも、基本的に求められる提出書類は変わりません。しかし会社員と違って注意しなければならないことがあります。それが就労証明書の提出です。会社員であれば、会社に依頼すれば在籍していることの証明書類は簡単に発行してもらうことができます。 しかしフリーランスとなると、雇用されているわけではないので就労証明書はそもそも準備することができません。そこで役立つのが開業届です。開業届を提出していて既に開業していることを証明できれば、就労証明書と同じように入所審査において評価される可能性が高くなります。 ではフリーランスとして開業届を提出していない場合はどうなるのでしょうか。その場合は開業届でも就労証明書でもない、それ以外の書類で就労しているもしくは就労見込みがあることを証明する必要が出てきます。仮に複数の企業から、複数のプロジェクト案件を受注していたとしましょう。その場合は就労証明として複数の企業との契約や収入見込みの書類の提出を求められる可能性も出てきてしまいます。 そして保育園は人気があるエリアになるほど入所における審査が厳しくなるという特徴があります。特に都内は地域によっては保育園が不足しているところが少なくなりません。そういった人気エリアに住んでいる場合は、早めに保育園の申込み条件について確認しておくことも大切です。 参考として東京都品川区の保育園の「申込できる方」の条件の項目を紹介します。 “”求職活動(起業準備を含む)を継続的に行っていること“” 上記は8つほどある条件のうちの1つですが、このような条件を含む地域であれば開業届を提出する前でも審査に通る可能性も期待できます。会社員からフリーランスに転身してその後保育園への入園の予定がある場合は開業届の提出など、事前にできることは取り組んでおくことも大切です。 参考:品川区「保育園のご案内(2019年4月版)」 フリーランスとして保育園を継続するなら保育園への相談は早めにしよう ここまで紹介してきたように会社員からフリーランスに転身すると、保育園の継続のために準備しなければならない書類が多くなる可能性があります。 開業届の提出がない状態で複数のクライアント企業との取引がある場合は特に、複数枚の証明書類の提出を求められる可能性が高いといえるでしょう。 ただし具体的にどのような書類が必要になるのかはフリーランスとしての働き方も関係してくるため、最終的には聞いてみなければ分からないものです。 しかし仮に多くの書類が必要になったとしても、時間に余裕があれば計画的に必要とされる書類を用意することができます。 また時間に余裕があれば「期間までに書類が準備できないかもしれない」と不安になる必要も減らすことができます。 これからフリーランスに転身して保育園の継続を希望するなら、保育園には早めに相談することをおすすめします。 フリーランスの保育園継続についてよくある質問 フリーランスになったら保育園の継続はそもそも可能? 会社員からフリーランスになったとしても、保育園の継続は可能です。きちんとした手続きを経てフリーランスとして独立するのであれば、基本的には継続できると考えて問題はありません。しかしフリーランスに転身することで保育園の受入れ条件から外れてくるような場合は注意が必要です。 保育園の継続で必要な書類とは? 主に「開業届」「退職証明書」「勤務実績を証明する書類」「保育園へ提出する変更届」の4つが必要となる場合が多く、書類を提出する際は保育園の先生からきちんと理解をしてもらうためにも、できるだけ担当の先生とコミュニケーションをとってフリーランスとしての働き方の詳細を伝えておくことが大切です。 テクフリでフリーランス案件を探してみる
freelance
スキル

フリーランスで仕事がない?今すぐできる6つの対策

今フリーランスとして活躍されている方、もしくはこれからフリーランスを目指す方の中には、コロナ禍に関わらず、「仕事がない」ことに対して大きな不安を感じている方も多いのではないでしょうか。フリーランスは案件を獲得することで収入を得るわけですから、フリーランスにとって手持ちの案件があるのと無いのとでは精神的な負担はかなり異なります。では、一体なぜフリーランスが「仕事がない」という状況に陥ってしまうのでしょうか。また、それを避けるためにフリーランスはどのような対策を取ればよいのでしょうか。 今回は、フリーランスとして働く方で仕事がない原因とその対策、案件の探し方などをお伝えしていきます。 テクフリでフリーランス案件を探してみる フリーランスで仕事がない!不安になる人の原因 フリーランスとして独立したとしても、成功するとは限りません。フリーランスとして成功し、長く働く方がいる一方で、しばらく働いてから会社員に戻る方もいるのが現実です。フリーランスを辞めることにした理由の一つに「仕事がないから」というのは多くあげられます。では、どのようなことが原因でフリーランスの「仕事がない」は起きてしまうのでしょうか。さっそく見ていきましょう。 営業活動不足 あなたが、多くのクライアントからひっぱりだこのフリーランスエンジニアでないのであれば、仕事を獲得するために営業活動をする必要があります。仕事がない原因は、営業活動が足りていない点かもしれません。 スキル不足 フリーランスエンジニアの仕事は、その内容によって求められるスキルが明確です。Rubyを用いてサーバーサイド開発をする仕事であれば、Rubyのスキルを持っているエンジニアが選ばれます。 Pythonのスキルを持っていないエンジニアには、Pythonを用いてデータ分析をする仕事は務まりません。仕事がない原因は、スキルが不足している点かもしれません。 実績不足 フリーランスエンジニアの仕事では、経験年数や特定の経験を求められることがしばしばあるでしょう。Rubyのスキルを持っていても、それが1年未満の経験であれば断られてしまう場合があります。 Pythonでサーバーサイドの開発経験を持っていても、Pythonでデータ分析を行う仕事では断られてしまう場合もあるでしょう。「実績」には学習やスクールでの経験が含まれないことが大半で、主に対価としてお金を頂いた経験のことを指します。仕事がない原因は、実績が不足している点かもしれません。 信頼不足 あなたは、単発での仕事が多いでしょうか。それとも、同じクライアントから継続して仕事を依頼されることが多いでしょうか。 一度参画した仕事でパフォーマンスを発揮したり、メンバーと良好な関係を築くことにより、「またあの方に依頼したい。」「また一緒に働きたい。」と思ってもらえれば、継続して仕事を獲得しやすくなります。 クライアントからの信頼が不足していると、新たな仕事依頼につながらないことがあります。 勤怠不良が続く。納期を守らない。成果物の完成度が期待を大幅に下回る。といったことが起きると、信頼度は落ち、継続して仕事を依頼されにくくなってしまいます。 仕事がない原因は、信頼度が不足している点かもしれません。 人脈不足 フリーランスエンジニアには、人脈も重要です。関係のあるフリーランスエンジニアや、企業担当者から直接仕事をもらうこともしばしばあるため、人脈は広いほうが仕事を獲得しやすいです。どんなに高いスキルや誇れる実績を持っていても、人脈が狭いと仕事を獲得しにくくなってしまう場合もあります。仕事がない原因は、人脈が不足している点かもしれません。 仕事がないフリーランスにならないための対策 ここまで、フリーランスエンジニアの「仕事がない」の原因を見てきました。では、どう対策すれば「仕事がない」の原因をつぶせるのでしょうか。その対策方法を6つご紹介いたします。 提案スキルや文章作成スキルを磨く 「営業職でもないのに、提案スキルや文章作成スキルなんて要らないよ…」なんて思っている方、いませんか?フリーランスエンジニアにとって、提案スキルや文章作成スキルはとても重要です。前章でもお伝えしたとおり、あなたが多くのクライアントからひっぱりだこのフリーランスエンジニアでない限り、仕事を獲得するためには営業活動をする必要があります。 そしてそこでより仕事を獲得しやすくするためには、自身の強みや能力を的確に売り込める「提案スキル」とそれを書面上でも明確に伝えられる「文章作成スキル」の向上が必要不可欠です。本を読むこと、ブログなどを書くこと、営業職を経験してみることなどにより磨けるので、さっそく向上させていきましょう。 対策できる原因:営業活動不足 常に最新のトレンドをキャッチアップする エンジニアのあなたにとっては周知の事実かと思いますが、IT業界のトレンドは目まぐるしい速さで変化し続けています。そのため、常に最新のトレンドをキャッチアップできないエンジニアは時代に取り残され、どんどん仕事がなくなっていってしまいます。 変化し続けるIT業界で、フリーランスとして仕事を獲得し続けるには、自分自身も変化し続けなければなりません。今の自分に満足せず、常に向上心を持って学習していきましょう。 対策できる原因:スキル不足 経験をスキルシートやポートフォリオにまとめておく あなたは、スキルシートやポートフォリオはしっかり作成していますか?スキルシートの情報が不足していたり、ポートフォリオが雑だと、自分のスキルや実績を正確に伝えることが出来ません。 逆に、スキルシートやポートフォリオに自分のスキルや実績を丁寧にわかりやすくまとめておくと、大きなアピールとなります。また、ポートフォリオサイトにお問合せフォームを設けておくのもいいでしょう。ポートフォリオサイトがいいものであればあるほどお問い合わせが増えるはずです。今一度、自身のスキルシートやポートフォリオサイトを見直し、スキルや実績を余すことなくアピールできているか確認してみてください。 対策できる原因:営業活動不足・スキル不足・実績不足 案件を選り好みしすぎない とくにまだ実績を積み上げられていない方向けですが、あまり案件は選り好みしすぎないようにしましょう。好きな仕事を好きなだけして生活するために、フリーランスになった。という方は多いと思いますが、そもそも仕事がないのであればそのようなことを行っている場合ではありません。 お金を稼ぎ生活をしていくため、実績を積み上げるため、仕事に困っているうちは、少し納得の行かない条件でも引き受けましょう。かといって、何でもかんでも引き受けているとフリーランスになった意味を見失ってしまうかもしれません。今一度仕事を引き受ける際の条件を見直し、譲れない部分や妥協できる部分を整理してみましょう。 対策できる原因:スキル不足・実績不足 コミュニケーションスキルを磨く フリーランスエンジニアにとって、コミュニケーションスキルはとても大事です。コミュニケーションスキルがあれば、初めて参画する仕事でも円滑にチームワークが取れますし、チームへとけ込むのも早くなります。 同じクライアントから継続して仕事を獲得するためには、その仕事でパフォーマンスすることが最も大切です。しかし、どんなにスキルが高くても「この人とは働きたくない。やりづらい。」と思われてしまうと、継続して仕事を獲得することが難しくなってしまう場合もあります。 継続して仕事を獲得するためにも、コミュニケーションスキルを磨いていきましょう。本を読むだけでなく、ビジネスマッチングサイトなどで実践を積むことも大切です。ビジネスマッチングサイトなどで知り合った方から仕事を獲得するケースもあるため、まさに一石二鳥ですね。 対策できる原因:営業活動不足・信頼不足・人脈不足 SNSを活用する あなたは、SNSアカウントを運用されていますか?近年はSNSを通じて仕事を探す求職者や、SNSを通じて求人を行う企業が増加してきています。SNSは普段の求職者や企業の様子をうかがうのに最適です。また、無料で不特定多数に自身の技術や思考をアピールできるため、リファラル採用などにも活用できると考えられます。 フォロワーが少ないうちはなかなか反応を得ることが難しいとは思いますが、継続することにより徐々にアカウントを育てていくことで企業はもちろん、同業者との繋がりを増やせます。「普段使っているアカウントではとても仕事探しなんて出来ない…!」という方は、ぜひこの機会にビジネス用のアカウントを作成されてみてはいかがでしょうか。 対策できる原因:営業活動不足・信頼不足・人脈不足 フリーランスの仕事がないときの案件の探し方 ここまで、フリーランスの「仕事がない」の原因と対策をお伝えしてきましたが、実際に「仕事がない」状況になってしまった時、不安を取り払うためにどのような方法で仕事を探せばよいのか。お伝えしていきます。 エージェントを活用する 最もオススメなのは、エージェントを活用することです。エージェントを活用することにより、フリーランスの仕事探しをサポートしてもらえます。 とくに、フリーランスのエンジニア・クリエイター限定で仕事情報を提供する「テクフリ」では、担当エージェントが仕事をご紹介するだけでなく、参画後のフォローアップまで一貫してサポートしています。 テクフリでフリーランス案件を探してみる クラウドソーシングサービスを活用する フリーランスの仕事探しのひとつとして、クラウドソーシングサービスが盛り上がっています。 自身で営業活動をする必要があるため、確実に仕事を獲得することは難しいですが、盛り上がっているため仕事の数も多く、仕事を獲得する方法のひとつとしてはかなり優秀であると言えます。 仕事がない時に注意すること 仕事がない時、その不安さから目の前に転がってきたチャンスに飛びついてしまいがちです。しかし、仕事がないときだからこそ、転がってきたチャンスを冷静に判断する必要があります。最後に、仕事がないときだからこそ注意したい点をお伝えしていきます。 単価を妥協しすぎない 仕事がない時、その不安さから単価を妥協しすぎてしまう場合があります。 しかし、単価を妥協しすぎてしまうと以下のようなデメリットが生まれます。 そもそも生活できないレベルの単価であれば仕事を引き受ける意味がない 同じクライアントから継続して仕事を獲得できた場合、継続して低い単価になりがち フリーランスで働く意味がわからなくなってしまう 不安に感じていち早く仕事を獲得したいという気持ちもあるかと思いますが、一度冷静になり、納得できないのであれば単価交渉に臨みましょう。 スキルアップにつながりにくいアルバイトをしない 仕事がない時、とにかく生活をしていくためにアルバイトをはじめる方は多いと思います。しかし、それが自身の今後につながりにくい仕事であれば避けましょう。もし今後もフリーランスエンジニアとして仕事をしていきたいのであれば、「仕事がないフリーランスにならないための対策」でお伝えした6つの対策方法に当てはまるかどうかを考え、アルバイトに望みましょう。 まとめ 仕事がないフリーランスの原因と対策、そして仕事を探す方法とやってはいけないことをお伝えしてきました。 最も効果的と言える方法は、「早めのうちにエージェントに相談しておく」ことです。 今回挙げたような、フリーランスが仕事ないことの原因、その対策を行ってくれるのがフリーランスのエンジニアやクリエイターのためのエージェント「テクフリ」です。 テクフリは以下のような特徴を持ちます。 担当エージェントによる仕事紹介 高福利厚生による参画後サポート オススメ案件をメールにてご紹介 業界最低水準!マージン10%案件 エンド直案件90%以上 仕事がないことに対して不安を感じているフリーランスの方はもちろん、フリーランスに転向したいけど個人で案件を獲得して活動することに不安を持つ方は、ぜひ登録してみてはいかがでしょうか。 テクフリでフリーランス案件を探してみる
freelance
フリーランス初心者

屋号と商号の違いは?フリーランスのためにわかりやすく解説します

せっかくフリーランスになったのであれば、個人名ではなく、商号や屋号といったビジネス上の名前で銀行口座を作るべし、という意見をよく耳にします。 しかし、そもそもとして、屋号とはナニモノなのでしょうか?また、屋号と商号は実は明確に異なるものですが、どういう風に使い分けされるのでしょうか?今回は、こうした疑問にお答えできるように、商号と屋号の違いについて、詳しく解説したいと思います。 テクフリでフリーランス案件を探してみる 商号と屋号の違いは? 商号と屋号について、簡単に解説すると、商号は「法律で定められた会社の名前」なのに対して、屋号は「個人事業主が名乗ることができる、お店の名前」です。もう少し、詳しく見ていきましょう。 『株式会社〇〇』や『〇〇合同会社』といった会社の名前、これが商号です。会社を設立した際には会社の登記を申請する必要がありますが、そこに書かれた会社名です。つまり、法的に「一つの会社には一つの商号」が絶対にあります。 また、商号には付け方のルールが法律で決められています。具体的には、株式会社ならば『株式会社〇〇』、有限会社ならば『〇〇有限会社』といった風に、会社の種類が正しく伝わる名前にすることです。株式会社なのに有限会社と名乗ったり、銀行ではないのに『〇〇銀行』など、会社の種類を誤認させるような名前にしてはいけません。 また、商号には「これは、うちの名前だから、同じ地域では他の人たちは商号として使わないで」と法律的に保護される、というルールがあります(同じ地域(同一所在地)ではない人が、同じ商号でビジネスすることは可能です)。 逆にいえば、後から商号を考える立場の人は、地域ですでに使われている商号は使えない、という制限にもなっています。 一方の屋号ですが、こちらは会社の登記をしていない個人事業主が、ビジネス上“使ってもよい”お店などの名前です。屋号の必要性を感じなければ、屋号を持たなくても良いのです。開業届を税務署に出す際に、屋号記入欄がありますが、空欄で出しても問題ありません。 屋号を付ける際のルールは基本的には商号と同じで、会社ではないのに、株式会社や有限会社といったキーワードを入れたり、NPO法人ではないのに「〇〇NPO法人」など、相手が誤認するような名前にしてはいけません。 逆に言えば、このルールさえ守れば、どのような屋号でも問題ありません。『フラン健史郎事務所』など、「名前+事務所・事業所」でも良いのです。常識を疑われると思いますが、隣のお店と同じ名前にしても、屋号であれば、法的には問題がありません。 さて、ここまでは基本形です。ここから、応用編に入ります。 実は、【商号登記】という法律上のテクニックを使うことで、屋号を商号へとランクアップさせることができます。 商号登記を行って屋号を商号へと格上げすると「これは、うちの名前だから、同じ地域では他の人たちは商号として使わないで」と法律的に保護される、というルールが適用されるようになります。 屋号であれば隣のお店と同じ名前にしても問題ありませんでしたが、商号の場合、先に商号登記を完了したお店しか、その名前を名乗れなくなります。このように、屋号を商号登記することで、他の人たちと差別化ができる反面、他の人がすでに商号登録している名前は使えない、という欠点もあります。 屋号をつけるメリットは? さて、屋号と商号の違いについて、分かったところで、フリーランスが屋号という“ビジネス上の名前”を持つメリットを整理しておきましょう。 屋号を持つメリットは、屋号で取引することで、ビジネス形態によっては取引で有利に立てる、という点です。 例えば、地元で弁護士を探している人は、インターネットで「大阪市 弁護士 事務所」と調べることが多いでしょう。この場合、「弁護士事務所」といったキーワードの入った屋号を持つことで、検索上位に表示される可能性が高まります。 クライアントと仕事の相談を行うことになった場合にも、メールの署名や名刺に屋号が入っているのと、入っていない場合では、クライアントが受ける印象が変わります。発注先として複数の候補がいる場合、屋号の有無が一つの選考基準となる可能性もあります。 関連記事:フリーランスエンジニアに名刺は必要?作成方法や記載項目を解説 そういう意味では、インターネットで不特定多数から仕事を受注するのではなく、人材会社経由で案件を獲得することの多いエンジニア系フリーランスの方にとっては、屋号は比較的、重要度の低いものかもしれません。 しかし、インターネット上で実名を公表せずにポートフォリオを公開している方や、クラウドソーシングで仕事を獲得する方が、インターネット上のニックネームやIDを屋号としている場合もあります。 なにより、屋号の場合「持つだけで費用がかかる」などのデメリットがないため、とりあえず開業届に書いてみた、という人も多いのではないでしょうか。 テクフリでフリーランス案件を探してみる 商号はフリーランスに必要なのか? フリーランスの方が屋号より格上の商号まで持つべきかどうかですが、これは個人の価値観次第だと思います。 商号を持つ一番のメリットは他の人とビジネス上の名前が被ってしまうことを防ぐことです。しかし、エンジニア系フリーランスの方にとって、普段の業務の中で、商号なのか屋号なのかが重視される場面は、滅多にありません。 その一方で、屋号と違って商号の場合、商号登記にコストがかかります。また、屋号であれば、一度決めたものを変更するのも自由でしたが、商号の場合、登記変更になりますので、やっぱりコストがかかります。 絶対に地域で唯一の名前にしておきたいだとか、ゆくゆくは法人化することを前提に、商号として屋号をほかの人が使えないようにしておきたいなど、特別な事情や思いがなければ、商号登記を行う必要は特にないと私は感じます。 ただ、私の知っている人でも、「“商号登記によって自分がビジネスを行っている、という事実が法的に証明される”ので、開業届を出しただけで商号登記を行っていない個人事業主よりも箔が付く。ぜひ、商号登記しておきたい」と商号登録を行った方がいらっしゃいます。これは本当に価値観の問題のように思います。 商号登記の仕方と注意点 最後に商号登記の行い方も、簡単ですがご紹介いたします。 商号登記も登記の一種です。管轄は法務省の地方支分部局(出先機関)である法務局となっています。法務局の担当窓口に、記入済みの商号登記申請書と印鑑証明書を提出する形になります。また、事務手数料相当の、登録免許税3万円の納付も必要になります。 ここで重要なのは、何度も繰り返している通り、商号のつけ方には制限があります。“個人事業主の場合、会社と間違われない名前にする”、というものと、“地域ですでに使われている商号を使ってはいけない”というものです。 すでに使われている商号の調べ方としておすすめなのが、国税庁の法人番号公表サイトを使う方法です。日本に存在する、すべての法人がデータベース化されているため、ある程度、重複を防ぐことができます。 ただし、法人ではない個人事業主が商号登記した商号までは登録されていないため、最終的に本当に使えるかどうかは、登記を確認するしかありません。法務局や商号登記に精通した法律家(行政書士など)に相談するのがベターです。 まとめ:商号と屋号は実は大違い 今回は商号と屋号について見ていきましたが、違いをご理解いただけたでしょうか? 繰り返しになりますが、フリーランスの方が「ビジネス上の名前」として屋号を持っておくことは、必須ではないものの、メリットがある一方でデメリットはありません。 しかし、商号登記することについては、メリットだけでなくデメリットも存在します。最初から商号を持つのではなく、最初は屋号だけにしておいて、状況に合わせて商号登記を考える、というのがセオリーです。 商号と屋号の違いについてよくある質問 商号と屋号の違いについて、よくある質問を3つまとめました。 商号と屋号の違いは? 簡単に解説すると、商号は「法律で定められた会社の名前」なのに対して、屋号は「個人事業主が名乗ることができる、お店の名前」です。 『株式会社〇〇』や『〇〇合同会社』といった会社の名前、これが商号です。会社を設立した際には会社の登記を申請する必要がありますが、そこに書かれた会社名です。つまり、法的に「一つの会社には一つの商号」が絶対にあります。 一方の屋号ですが、会社の登記をしていない個人事業主が、ビジネス上“使ってもよい”お店などの名前です。屋号の必要性を感じなければ、屋号を持たなくても良いのです。開業届を税務署に出す際に、屋号記入欄がありますが、空欄で出しても問題ありません。 屋号をつけるメリットは? 屋号を持つメリットは、屋号で取引することで、ビジネス形態によっては取引で有利に立てる、という点です。クライアントと仕事の相談を行うことになった場合にも、メールの署名や名刺に屋号が入っているのと、入っていない場合とでは、クライアントが受ける印象が変わります。発注先として複数の候補がいる場合、屋号の有無が一つの選考基準となる可能性もあります。 商号はフリーランスに必要? フリーランスの方が屋号より格上の商号まで持つべきかどうかですが、これは個人の価値観次第と思われます。商号を持つ一番のメリットは他の人とビジネス上の名前が被ってしまうのを防ぐことです。しかし、エンジニア系フリーランスの方にとって、普段の業務の中で、商号なのか屋号なのかが重視される場面は、滅多にありません。 一方で商号の場合、商号登記にコストがかかります。また、屋号であれば、一度決めたものを変更するのも自由ですが、商号の場合は登記変更になるので、コストが更にかかります。 テクフリでフリーランス案件を探してみる
freelance
Linux

LAMP環境をプログラム初心者向けに解説します

Webシステム開発の基本形は、やはり「LAMP環境」です。 もちろん、ベテランエンジニアからすると、いやいや時代の先端は「MEAN環境」だ、とか、次世代言語の登場で「LAMP環境」は消滅、または変容する、という意見もあるかもしれません。しかし、実態として「LAMP環境」で動作しているWebシステムは多くあります。また、今現在、「LAMP環境」で開発進行中の案件もたくさんあります。 さらにいうと、「MEAN環境」を含めて、多くのWebシステム開発環境が「LAMP環境」との比較で語られることが多く、「LAMP環境」が分かっていないと、概念理解にも戸惑うことになりがちです。 という訳で、今回は、Webシステム開発、初心者の方を特に意識して、「LAMP環境」について詳しく解説したいと思います。 テクフリでフリーランス案件を探してみる そもそもWebシステムとは? LAMP環境とは、簡単に言えば「Webシステムの構成パターン」です。従って、LAMP環境について理解するためには、“Webシステムの仕組み”について知っておかなくてはなりません。 ところで、Webシステムの肝となるWebサーバがWebサーバとして動作するための“構成要素”ってなにがありますか? 真っ先に思い付くのは基本ソフト、いわゆる、“OS”ではないでしょうか? OSが入っていないサーバは、ただの鉄の箱でしかありません。OSがインストールされることで、初めてサーバはサーバとして起動することが可能となります。 次に重要なのは、ミドルウェアといわれるアプリケーション群です。サーバがサーバと言われるのは、「クライアント(パソコンやスマホ)からのサービス要求を処理するための仕組みを持っているから」ですが、OSがインストールされただけでは、サーバとしての役割を果たすことができません。なぜなら、素のOSには「クライアント(パソコンやスマホ)からのサービス要求には、こういう風に処理しなさい」という指示が入っていないのです。 では、「クライアント(パソコンやスマホ)からのサービス要求は、こういう風に処理しなさい」という指示はどうやってサーバに実装されているのか? というと、それがミドルウェアになります。WebサーバであればWebサーバ用のミドルウェアを、DBサーバならばDBサーバ用のミドルウェアをインストールしておく必要があります。 一つ勘違いして欲しくないのは、ミドルウェアは、あくまで仕組みを定義したアプリケーション群であって、Webページやデータ本体は含まれていません。つまり、Webサーバがクライアントに提供する、HTMLなどの“正味のWebページ情報”はミドルウェアに含まれません。ミドルウェアとはまた別に、用意・作成する必要がある、という訳です。 さて、長くなったので、いったんまとめると、Webサーバの構成要素は以下の通りになります。 ①OS(基本ソフト):これがないと、サーバはただの箱。 ②ミドルウェア: Webサーバの振舞い方を定義しているアプリケーション群。 ③正味のデータ:HTMLなどの形式で作られた、ページ本体。 ここまでは大丈夫でしょうか? 大丈夫だと信じて、次のステップに進みます。 実は、上記の三つの構成要素を持ったWebサーバを立てただけでは、Webシステム開発としては不十分です。なぜならば、Webサーバだけでは、静的ページと言われる“決まったWebページをクライアントの要求通り配信すること”しかできないためです。 例えば、「買い物かご」や「ユーザーログイン」など必要に応じて画面への出力結果が異なるページ(いわゆる、動的ページ)を持った、Webシステムを作るためには、Webサーバだけでなく、DBサーバも必要になります。DBサーバがユーザーID“XXX”の人のパスワードは“1234”で、その人の買い物かごには、“ミカンが三個”入っている、という情報を管理し、必要に応じてWebサーバに“協力”することで「ログイン成功です」や「ログインできません」と表示できるWebシステムになるのです。 そして、クライアントから送られたデータ、(例えば、ユーザー名とパスワード)をどういう風に処理するのか、DBサーバからもデータを貰って、突き合わせて確認するのか、それとも、送られたデータを検証して、DBサーバに保存してもらうのか、といったロジックを作成するのにプログラミングが必要になります。 つまり、実際のWebシステムの構成要素としては以下となります。 ①OS(基本ソフト):これがないと、サーバはただの箱。 ②Webサーバ用のミドルウェア:Webサーバの振舞い方を定義しているアプリケーション群。 ③DBサーバ用のミドルウェア:DBサーバの振舞い方を定義しているアプリケーション群。 ④プログラム:クライアントの要求(送られた情報)に応じて、WebサーバとDBサーバ間で協力させて、適切なWebページをクライアントに送れるようにする。 ちなみに、WebサーバとDBサーバは別の筐体・OSである必要はありません。別の筐体にするか、一つのOS上に併存させるかは、資源管理(CPUやメモリなどの筐体性能など)の観点で決めることです。ですので、Webサーバと呼ばれている筐体が、実はDBサーバとしても機能している、ということがよくあります。 LAMP環境とは? さて、前置きが長くなりましたが、Webシステムの構成要素がわかれば、LAMPについて、ほとんど分かったも同然です。 LAMPとは「Linux」、「Apache」、「MySQL(またはMariaDB)」、「PHP(今ではPerl、Pythonを含めた“P系言語”とも)」の頭文字ですが、それぞれ、OS、Webサーバ用のミドルウェア、DBサーバ用のミドルウェア、プログラミング言語です。 つまり、以下の通り、Webシステムの構成要素として、このあたりのソフトやプログラミング言語を使うと、ベターですよ、というモデルがLAMPという概念であり、そのモデルに従って開発されたWebシステムをLAMP環境と言います。 ①OS(基本ソフト)⇒「Linux」 ②Webサーバ用のミドルウェア⇒「Apache」 ③DBサーバ用のミドルウェア⇒「MySQL」or「MariaDB」 ④プログラム⇒「PHP、Perl、Python」 LAMP環境の構築 メリットとデメリットは? なぜ、LAMPの普及率が高いかというと、企業からみると単純にコストが安い、という点が挙げられます。 「Linux」、「Apache」、「MySQL(MariaDB)」、「PHP、Perl、Python」はすべてオープンソースです。つまり、ライセンス料がかかりません。定められたルールの下で使っている限り、無料で使えます。さらに、オープンソースで利用者が多いというところから、扱えるエンジニアも多く、人材の確保もしやすいのです。 エンジニアサイドからみても、LAMPがある種のデファクトスタンダードになっているため、様々な現場に経験者として入っていきやすい、抜本的なスキルセットの作り直しが必要にならないなど、LAMPにはメリットが多いです。 逆にLAMPのデメリットとしては、オープンソースであるが故に、サポート体制は安心とはいえない、という点が挙げられます。もちろん、「Linux」を無料の“Ubuntu”ではなく“Red Hat Enterprise Linux”にするなど、有料でサポートを提供している会社に関与させる、といった方法はありますが、限界があります。 他のデメリットとしては、かつてはクラウドサービス側の(オープンソースではなく、クラウドベンダー製のアプリケーションを強要!?)仕様のせいで、クラウドサーバではLAMPが使えない、ということもありました。しかし、現在では業界最大手のMicrosoft Azuruや二番手のAmazon Web Service以下、多くのクラウドサービスでLAMP環境が構築できるようになっています。 まとめ:LAMP環境はWebシステム開発の基本! クラウドサービスでもLAMP環境が組めるようになっていることをお伝えしましたが、これは、いかにLAMP環境が広く世の中に普及しているのか、わかりやすい証明だと言えるかと思います。 もちろん、LAMP以外のアプローチで開発されているWebシステムも存在するので、LAMPは絶対の存在ではありません。しかし、Webシステム開発の基本形としてLAMP関連の技術は、広く深く習得しておくべきでしょう。 テクフリでフリーランス案件を探してみる
BEM
freelance

BEMとは?なぜBEMを使うべきなのか

大きいチームでプロジェクトを進めていく際、CSSをメンテナンスすることは困難がつきまとうものです。その困難を解決すべく、この記事ではBEM (Block Element Modifier) について述べていきたいと思います。 テクフリでフリーランス案件を探してみる BEMとは BEMはBlocks-Elements-Modifiersの略で、HTMLおよびCSSのクラスに名前を付ける方法です。BEMは Yandexで開発されました。 BEMを使うと、プロジェクトコードが読みやすく、理解がしやすくなり、CSSを操作するときに拡張および保守が容易になります。命名基準は、フロントエンド開発者がそのコードの意味と機能を理解できるものとなります。その後他の開発者が、あなたが書いたコードを読むとき、開発者はあなたが何を意図してコードを書いたのかを理解できるので、後の分析・変更・管理が簡単になります。 なぜBEMを使うべきなのか 小さなプロジェクトではBEMは使用されないかもしれませんが、大きなプロジェクトやチームではBEMは非常に重要になります。その理由は以下になります。 チーム全体が簡単に連携できる チームでプロジェクトを進めて行くと、全員が独自のクラス名を持ち、互いに競合することがあります。そこでBEMを使用することで、構造が明確になり、使用時に簡単に追跡できるため、この問題が解消されます。 モジュール 各ブロックのクラスは他の要因の影響を受けないため、あるクラスのCSSが別のクラスに影響を与えることを心配する必要がなくなります。 再利用できる ブロックを互いに独立して作成し、それらを使いやすく再利用することで、CSSコードの量を減らすことができます。 BEMの基本的な構成 ・Blockブロックは、新しい要素の主要なクラス名です。ブロックの主な機能は、ページ上のどこでも再利用できることです。また、これらのブロックは他のブロックに配置されている場合があります。ブロック名は要素に応じて明確に設定されています。・Elements(要素)ブロックのコンポーネントであり、ブロック内に配置され、その親ブロックに依存しているため、ブロックなしでは独立して存在しません。 BEMでは、要素は二重下線「__」で示されます。・Modifierモディファイアは、ブロックまたは要素の表示タイプを変更するために使用されます。モディファイアは個別のコンポーネントとして使用されます。モディファイア名はブロック名または要素名で構成され、「-」で区切られます。 /* Block (ブロック) */ .btn { } /* Element (要素),上のブロックによって異なります*/ .btn__price { } /* Modifier (モディファイア)はブロックの状態を変更します*/ .btn--orange { } .btn--big { } このクラスの命名により、コンポーネントを表すブロックがあり、この例では.btnがあります。ブロックは、1つ以上の子要素が関与する親としても機能します。 Elementのクラス名とそのBlockとの関係は、Blockの名前、2つの下線、最後にElement .btn__priceの名前で表されます。 BEMの3番目のコンポーネントは、ブロック/要素の状態またはその他の派生物の調整に役立つ修飾子です。修飾子の名前は、前のブロック/要素の名前と2つのダッシュ .btn--orangeで結合されます。 結論 BEMはCSSのクラス命名規則であり、多くの利点がありますが、開発者が適切で未使用の名前を考えないようにすることが重要です。これにより、クリーンで保守しやすいコードを記述できます。クラス名が長くなるためにBEMを嫌う人や、BEMを置き換える他の方法がを利用する人はたくさんいます。 参照リンク http://getbem.com/ https://css-tricks.com/bem-101 https://webuild.envato.com/blog/chainable-bem-modifiers/ https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/0
freelance
Shell script

プログラミング言語の歴史 <Shell script(シェルスクリプト)編> 

Shell script(シェルスクリプト)の概要 メジャーなものからマイナーなものまで、さまざまなプログラミング言語が世の中にあり、プログラミング言語ごとに歴史や物語があります。 今回は、身近だけど奥が深いShell script(シェルスクリプト)の世界について見ていきたいと思います。そもそも「Shell script(シェルスクリプト)とはなにものか?」という話をしたいと思います。 テクフリでフリーランス案件を探してみる ”shell”とは まずは“Shell script(シェルスクリプト)”の前半部分であるShell(シェル)について考えていきたいと思います。 Shellというのは“基本ソフト(OS)に対して指示を出すためのインターフェイスを提供するソフトウェア”のことです。 この文章だけではピンとこない方も多いと思うので、具体的に言えば、Windowsのcmd.exe(コマンドプロンプト)はまさにシェルです。 cmd.exeを起動して、ipconfigと入力してエンターを押すと、そのコンピューターが持っているIPアドレスなどネットワーク関連の構成情報が出てきます。 このように、cmd.exeなどのシェルには“利用者がOS内部の情報にアクセスするためのインターフェイスとして機能があり”、“利用者のうち込んだコマンドに対する応答機能がある”のです。 ちなみに、Windowsのシェルにはcmd.exeという名前が付いていますが、UnixやLinuxのシェルは単にシェルとしか呼ばれません。 ”script”とは 前半のShellの意味がわかったところで、“Shell script(シェルスクリプト)”の後半部分であるscriptについても確認しましょう。 scriptとはスクリプト言語のことです。 スクリプト言語とはなにかということですが、ざっくり言ってしまうと、「プログラマーにとって取り扱いが簡単なプログラミング言語」の総称です。 スクリプト言語と認められているプログラミング言語には、JavaScriptやVBScriptなど名前にscriptが入っているものだけでなく、PHPやPythonやGo言語などscriptという名前が入っていないものもあります。 さらに言うと、 スクリプト言語の定義は“プログラマーにとって取り扱いが簡単な言語”のことですが、なにをもって、プログラマーにとって扱いやすいとするか、その基準は曖昧だったりします。 では、Shell script(シェルスクリプト)の場合どういうところがプログラマーにとって扱いやすいかというと、記述が比較的簡単かつ、コンパイルの必要性がないため実行も簡単だからです。 ※コンパイルとは、人間がプログラミングしたソースコードを、0と1しかわからない機械でも理解できるように、翻訳することを言います。 つまるところ、Shell script(シェルスクリプト)とはシェルに対して動作する取り扱いが簡単なプログラミング言語ということです。 ところで、みなさん、バッチファイル(.bat)を見たり、使ったことがありますか? 実は、バッチファイルはWindows版Shell script(シェルスクリプト)なのです。 そのため、本来“Shell script(シェルスクリプト)”はUnixやLinuxなどのシェル向けに書かれたもののことを言うのですが、同じ役割を持つWindowsのcmd.exe向けに書かれたバッチファイルのことを含めて“Shell script(シェルスクリプト)”と呼ぶ人もいます。 Shell script(シェルスクリプト)は記述が比較的容易とお伝えしましたが、実はShell script(バッチファイル)のコードというのは、ipconfigのような、Shellに打ち込むコマンドで構成されています。 Shell script(シェルスクリプト)の歴史《黎明期》 ここから、いよいよShell script(シェルスクリプト)の歴史について、見ていきたいと思います。 まず理解していただきたいのは、Shell script(シェルスクリプト)の歴史はShellの歴史と紐づいており、それはつまるところOSの歴史でもあるのです。 そもそも、“シェル”はUNIXの前身にあたるOSであるMulticsで登場したものであり、Multicsのシェルにもシェルスクリプトの概念があったようですが、Multics自体が商業的には大失敗に終わったため、シェルスクリプトが一般的になったのはMulticsの後進であるUnix登場以降です。 世界初のUnixシェル“Thompson Shell”が1971年に登場しますが、すでにこのシェルはシェルスクリプトに対応しており、実際に“Thompson Shell”向けにシェルスクリプトが書かれていたようです。 ただし、この最初のUNIXシェルはMulticsのシェルの延長線上にあり、スクリプトの本格的な利用には向いていないという批判が沸き起こり、1975年には改良型の“PWB Shell”(“Mashey Shell”とも)が登場しています。 Shell script(シェルスクリプト)の歴史《成長期》 “PWB Shell”は“Thompson Shell”の改良版ですが、互換性を維持するために限定的な改良であり、依然として扱いにくさが残る状況でした。 そこで1979年に登場したUNIX Version 7 に搭載されたのが、根本的に設計を見直し、シェルスクリプトの利用性が格段に向上した“Bourne Shell”です。 この当時、シェルスクリプト以外のプログラミング言語といえば、C言語などコンパイルが必要な言語など、手軽に使える言語がないこともあり、シェルスクリプトの利用が劇的に広がりました。 1985年には時代のニーズに応える形で『UNIXプログラミング環境』という、シェルスクリプトに言及した初の商業書籍も出版されています。 ちなみに“Bourne Shell”は2000年以降においても、Unix・Linuxシェルのデファクトスタンダードとなっています。 このようにUnix・Linuxシェルの完成に伴い、シェルスクリプトの利用が広がったわけですが、同時にシェルスクリプトの問題点も浮き彫りになってきました。 具体的には以下の二つです。 ①シェルスクリプトは結局のところ、“シェルのコマンド集”であり、複雑な処理には対応できない。 ②“PWB Shell”用に書かれたシェルスクリプトは“Bourne Shell”では動かないなど、互換性の問題がある。 その問題点の解決策とし1987年に開発されたのが、プログラミング言語Perlです。 PerlはC言語のようにコンパイルする必要はないけれど、コマンド集であるシェルスクリプトより簡単に高度なことができるうえに、シェルの互換性だけでなく、LinuxだとかWindowsだといったOSの違いすら意識しなくて良いのです。 結果、Perlが大人気になりましたが、それはまた別の話なので、ここではこれ以上触れません。 Windows版Shell script(シェルスクリプト)、バッチファイル ついでなので、Windows版シェルスクリプトである、バッチファイルの互換性問題についても言及しておきましょう。 MicrosoftのOSは1981年登場のMS-DOSに始まり、WindowsやIBMと共同開発していたOS/2へと派生していきますが、いずれのOSにおいてもバッチファイルが利用できます。 ただし、上ではWindowsのシェルはcmd.exeと書きましたが、正確に言えば“Windows2000やWindowsXPから始まり現行のWindows10にも連なるWindowsNT系のシェルは”であり、MS-DOSやOS/2、Windows98やWindowsMeなどいわゆるWindows9x系OSのシェルはcommand.comです。 WindowsNT系とWindows9x系ではカーネルと呼ばれる、OSのコアとなる部分が大きく異なるため、シェルも変更になったようです。 一応、Microsoftではcmd.exeに対してcommand.comへの下位互換を付与しているとうたっているため、command.com用のバッチファイルも動作するようですが、あまり期待しない方が良いと思います。 少なくとも、私はお客様のユーザー部門に「バックアップ作成用にずっと使っているバッチが急に動かなくなったから見てくれ」と頼まれて確認したところ、Windows98時代に作られたバッチファイル(command.com用バッチファイル)をWindows8上で動かそうとしており、「それは無理ですよ」と説明したところ、WindowsXPやWindows7では動いたのに、とがっかりされた記憶があります。 Shell script(シェルスクリプト)の歴史《現在》 昨今の状況として、その性質上、あまり高度なことができるわけではないため、案件にて“システム開発言語”としてShell script(シェルスクリプト)が採用されることはまずありません。 しかし、ちょっとしたことに手軽に使えるプログラミング言語として、もっと言うとプログラマーの三大美徳「怠惰(Laziness)、短気(Impatience)、 傲慢(Hubris)」を満たすためのツールとしてよく使われています。 例えば、logファイルなどを特定のファイルをフォルダーに集めてバックアップしたいだとか、パソコンのIPアドレスの設定をクリック一つで決めた値にできるようにしたいだとか、そういった“システムというには大げさだけど、あると便利な仕掛け”を作るのによく使われています。 まとめ:Shell script(シェルスクリプト)現場で重宝される 今回はShell script(シェルスクリプト)についてみていきました。 定常作業などは「Shell script(シェルスクリプト)やバッチファイル一つで、楽になる」ということも多いので、アプリ系(フロントエンド)エンジニアであっても、インフラ系(サーバエンド)エンジニアであってもShell script(シェルスクリプト)ができると、結構、現場で重宝されます。 案件がないので、一最初に覚えるプログラミング言語としてはまったくお勧めしませんが、ある程度扱えるようになっておくと、なにかと役立つプログラミング言語です。 テクフリでフリーランス案件を探してみる
freelance
クライアントエンジニア

クライアントエンジニアとは?業務内容や年収など徹底調査

「○○エンジニア」「○○プログラマー」という名前がたくさんあって、どれを選んだらいいのかわからない。または自分がどの職種に当てはまるのかピンとこないという方は多いでしょう。分業化が進むIT業界では、仕事内容や役割ごとに細かくエンジニアの職種名が分かれているため、転職先探しにも苦労するはず。 そこで、この記事では「クライアントエンジニア」または「クライアントプログラマー」と呼ばれる技術者たちが、どんな仕事をしていて、どんなスキルを必要としているのかを深掘りしていきます。 テクフリでフリーランス案件を探してみる クライアントエンジニアとは クライアントエンジニアは、主にスマホ向けゲームアプリに携わり、UI・UX、開発支援ツールの開発などを手がける職種です。スマホゲームの開発全般に携わることが多く、いわばゲームアプリエンジニアと呼ぶこともできるでしょう。 iOS・Androidを問わず、昨今では毎日のように新たなゲームアプリが配信されています。その開発の基幹業務に携わるだけあって、需要は急速な高まりを見せていることが特徴。特にUnityの知識・スキルがあるエンジニアは重宝される傾向にあり、都内のIT企業を中心に多数の求人広告であふれています。 いわゆる「ソーシャルゲーム」を手がけることが大半で、勤務先はIT企業に限られます。UnityやC#言語のスキルはもちろん、ゲームというクリエイティブ作品をつくるための創造性も求められる仕事です。 ネイティブアプリに携わることがほとんどのため、ダウンロード数や課金額といった数字でフィードバックが得られやすいことから、業務の中でやりがいを感じるシーンは少なくないと考えられます。ただし、中にはコストカット重視の方針から、作業負担が多くなったり残業が長くなったりしてしまうことも予想できますので、職場選びには注意を必要としそうです。 具体的な業務内容 クライアントエンジニアの仕事内容は、ソーシャルゲームを中心とするスマホゲームアプリの開発です。プログラミングやコーディングに携わるだけでなく、基本設計や企画段階から手がけることもしばしば。 中には据え置き型ゲームの開発に携わってきたゲーム会社が、市場規模を見込んでスマホゲームの分野に進出するという例も少なくありません。そのような現場では、アプリの企画・設計に関するノウハウはあっても、開発・配信については明るくないというところもあるため、専門技術と知識を備えたクライアントエンジニアは非常に重宝されます。 クライアントエンジニアの仕事は、アプリの開発だけにとどまりません。リリース後の運営・保守業務もその一部ですし、ユーザーからの要望やゲームバランスを考慮し、適宜調整を施していく作業も含まれます。 新たなアプリを開発するだけでなく、既存のアプリのチューニングも担当する可能性があるということです。こちらに分類される業務の場合は、アプリの配信開始やダウンロード数の伸びといった直接的なフィードバックがないことから、モチベーションを保ちづらいという側面も考えられます。 必要な技術/資格/言語 クライアントエンジニアに必要とされるのは、ゲーム開発に必要とされるスキルとほぼ同様です。遊び心を忘れず、ユーザーの立場になって、誰でも長く楽しめるゲームをつくることが、クライアントエンジニアの基本的な素質です。 また、Unityなどのツールを用いた開発経験は、どんな会社に転職するのであっても必須とされます。もしUnityに触れたことがないけどクライアントエンジニアを目指したいという場合には、独学でツールの扱い方に慣れるなどの対策を必要とします。 プログラミング言語で言えば、Objective-C、Javaのスキルが多用される職種です。さらにUIも担当する部署であれば、uGUIやNGUIの実装経験もあると採用されやすくなるでしょう。近年ではLive2Dを用いた立体的なアニメーションを加味するタイトルも多くなっているため、この分野に詳しい人も市場価値が高い人材と言えます。 クライアントエンジニアになるために必要な資格は特にありませんが、日頃からゲームアプリに親しんでいる人だと、経験不足や実績不足の場合にもアピールポイントになりやすいと言えます。多数のゲーム作品に触れた人であれば、そのバックグラウンドを生かして業務への貢献度も高くなると考えられるからです。 学ぶべきスキル クライアントエンジニアを目指すのであれば、まずはObjective-C、Javaのプログラミング言語をマスターしましょう。いずれもスマホアプリ開発に必須の知識ですので、この分野を目指したいと考えるのであればまず習得しておきたい言語です。 さらにスマホゲーム開発を主眼に置くのであれば、Unityの扱い方も一通りマスターしておきたいところです。独学でオリジナルゲームをつくるという方法も考えられますし、オンライン講座や書籍を利用するという手もあります。 さらにLive2Dを用いた開発や、uGUI・NGUIなどを用いたUI実装の経験も評価されやすい職種ですので、余裕があればこれらに手を出してみることもおすすめです。 また、学ぶというより触れるべき事柄として、スマホ向けに配信されているゲームアプリの人気タイトルを一通りインストールしてみることもおすすめです。無料ランキングや課金ランキング上位のアプリに触れててみて、売れるゲームアプリや人気を誇っているタイトルの傾向を知ることは、今後のキャリアを考えれば決して無駄にはなりません。 予想される年収水準 クライアントエンジニアを中途採用で調べると、経験者募集で年収300〜500万円程度が、平均的な年収水準となりそうです。3年、5年と経験を積めば、これ以上の報酬を手にすることは可能でしょう。 ただし、身につけるために何年もの経験を必要とするような専門性の高い職種とは言えないため、1000万円に到達するにはそれ相応のスキルを習得する必要があります。具体的には、開発スキルに加えてチームをマネジメントする実績や、後進を指導した経験などです。 プロジェクトマネジメントや人材教育にも携わることができるクライアントエンジニアなら、単なる開発スタッフよりも高水準の待遇が用意されていることは間違いありません。そうしたヒューマンスキルも携えてIT企業の門戸を叩くことで、やりがいと待遇を一挙に手に入れることができる可能性もあります。 活躍できる業界 ほかのエンジニア系職種とは異なり、クライアントエンジニアの活躍の場は限られています。主にゲームの制作会社・アプリ開発会社が就職先となるでしょう。ゲームアプリ開発に特化しした職種であることから、IT業界以外の領域では活躍しづらいという特徴があります。 ただ、いったんIT業界に身を置けば、その後は一つの会社に勤め上げたり、協力会社やクライアントの紹介で同系統の会社へ転職したりすることは容易と考えられます。 チームで仕事をすることが多いだけにフリーランスの中には少ない職種と言えますが、この先長く活躍できる将来性に魅力が隠されたポジションです。 まとめ クライアントエンジニアは、主にスマホ向けゲームアプリの開発に携わるエンジニアです。求人の数が豊富で需要が多いため、転職先には困ることがないでしょう。 ただし、ゲーム開発にとどまらずマネジメントの経験を積んだり、教育担当を務めたりといった付加価値を提供できないと、いつまでも低水準の年収しか得られないことになりますので、スキルアップを欠かさないようにしましょう。 テクフリでフリーランス案件を探してみる
freelance
汎用系エンジニア

汎用機系エンジニアとは? 仕事内容や年収について解説

IT業界には「○○エンジニア」という名前の職種が数多く存在し、それぞれが微妙に異なる分野を担当して仕事に取り組んでいます。各分野の専門家として活躍しているエンジニアも多くいますが、初心者からするとエンジニアの職種名と仕事内容が一致せず、ピンと来ないこともあるかもしれません。 そこで今回は、エンジニア系職種の中でも「汎用機系エンジニア」と呼ばれる職種について詳しく見ていきます。 テクフリでフリーランス案件を探してみる 汎用機系エンジニアとは 職種名にもなっている「汎用機」とは、IT業界における「汎用系コンピュータ」のことをさします。汎用系コンピュータというのは、大企業や官公庁などで使われる、大型で高性能なコンピュータのこと。映画やドラマでよく登場するような、四角くて黒い大きなコンピュータが何台も並んでいるシーンを想像するとわかりやすいかもしれません。 汎用機はマルチタスク処理が得意で処理能力も段違いのため、大量のデータ処理を行うのに向いています。金融業界や流通業界をはじめ、さまざまな業界の大手企業で導入され、日々膨大なデータ処理を行っています。 IBMや富士通、日立製作所などのメーカーが汎用機の制作を行っていますが、私たちが普段使っているPCとは異なり、内部設計もハードウェアも、OSも含めてメーカー独自のものを利用しているという特徴があります。 WindowsPCであれば、たとえメーカーが違っても基本的な操作は同じで、画面の大きさやキーボードの配置が違うだけ…というのが私たちがパソコンに対して抱いているイメージだと思います。 しかし汎用機の場合、Windowsのように統一されたOSを用いているわけではないため、汎用機を扱う際には特殊な知識や技能を必要とします。 また、汎用機は私たちが普段使っているPCと比べて、販売価格や維持コストも段違いという特徴もあります。導入費用やランニングコストの高さから、なかなか中小企業で導入するというのは難しく、ほとんどが大企業で用いられています。 そんな汎用機上で動作するシステム開発を行うのが、汎用機系エンジニアの役割です。COBOLを始めとする開発言語を用いて、専門知識と技術を活かした開発を行うのが特徴です。 クライアントになるのが各業界を代表するような大手企業ばかりですので、エンジニアに対する責任が大きく、求められる技量も高まります。個人情報を扱うことも珍しくありませんし、自治体や省庁で使われたりすることから、社会的な意義も大きいポジションです。 大企業の内部で意味ある仕事に携われるという意味では、エンジニア系職種の中でもやりがいはトップクラス。自分の技術をフル活用して、社会に貢献したいと考える人に向く仕事といえます。 ただし、技術の進歩によってコンピュータの小型化・高性能化が進んでおり、大型コンピュータではなくパーソナルコンピュータ(PC)が用いられるシーンも珍しくなくなっています。汎用機が完全に姿を消すことは考えにくいですが、今後需要が減る可能性があることは考慮しておかないといけません。 気になる年収は 汎用機系エンジニアの年収は、20代で約500万円、30代で約550万円、40代で約600万円弐達するというデータがあります。汎用機系エンジニアとして活躍するには欠かせないのがCOBOLという言語ですが、COBOLを習得する若い人材はそれほど多くありません。 したがって、COBOLの開発経験を持っているというだけで、企業から重宝され好条件を提示されるということもあるようです。汎用機系エンジニアの数は減少傾向にありますが、企業からの求人は横ばいを続けています。 今後高齢化した汎用機系エンジニアが退職して、人材が不足することになればこれ以上の年収を得ることも可能になるでしょう。汎用機系エンジニアとしての技術は長く通用するスキルでもあるため、安定して稼ぎ続けられることも魅力です。 また、汎用機系エンジニアは開発を請け負う企業の業務内容を深く理解することが求められます。経験を重ねれば重ねるほど業界についての知識が蓄積され、クライアント企業の事業を理解するスピードも向上していくはずです。 したがって、汎用機系エンジニアの場合は若手よりもベテランのほうが転職では有利とされます。年を取ってもエンジニアとして活躍し続けられるというのは、長く安定して働きたいと考える人には大きなメリットとなるでしょう。 テクフリでフリーランス案件を探してみる 必要な技術/資格 汎用機系エンジニアとして活躍するために不可欠なスキルとして、まずは開発言語であるCOBOL・Java・FORTANをマスターする必要があります。また、汎用機はメーカーによってハードウェアもOSも異なってきますので、メーカーごとの汎用機の特徴や長所・短所を踏まえて開発を行うスキルも求められます。 1つのメーカーの汎用機で開発経験があっても、次のプロジェクトでは別のメーカーの汎用機を扱うとなった場合、またそのメーカーについての勉強から入る必要があります。それぞれの開発環境に応じて、柔軟性ある開発を行うスキルがなければ、市場で評価されるエンジニアになることは難しいでしょう。 なお、「これがなければいけない!」という資格はありませんが、経験がものをいう職種のため、経験年数が長ければ長いほど評価されます。ですので、これから汎用機系エンジニアを目指したいと考えているなら、開発言語の習得に力を入れることももちろん大切ですが、少しでも早く実務経験を積むことをおすすめします。 将来性は? 汎用機系エンジニアが扱う汎用機は、PCが普及し始めた数十年前から「もうすぐ需要がなくなる」といわれてきた存在です。「もうすぐ不要とされるだろう」と予想されていましたが、今なお現役で動き続けています。 オープン系が主流となっている現在において、汎用機系のエンジニアの需要は減少しつつあります。しかし、それ以上のスピードで汎用機系エンジニアの供給が減少しているのも事実です。 全体として市場は縮小傾向にあるものの、やや供給が少なくバランスが取れていない状況となっているわけですね。ということは、今から汎用機系エンジニアを目指して勉強すれば、職場は選び放題となる可能性も十分あります。 また、長く使われてきた汎用機には、高い堅牢性と信頼性が備わっているため、今後完全に世の中から消失するというのは考えにくいです。今からキャリアを積んでおけば、長く安定して稼ぎ続けることもできるでしょう。 汎用機系エンジニアは普段の業務を通じて、大手企業の業務を理解し、クライアントとのコミュニケーションを重ねる機会があります。その経験はコンサルタントとして独立する際に役立ちますので、将来はITコンサルに携わりたいと考えている人が最初のキャリアとして選ぶ職種としては、高い将来性が期待できるといえるでしょう。 まとめ:市場は縮小傾向 汎用機系エンジニアは、主に大手企業で使われている大型コンピュータにおけるシステム開発を行う職種です。クライアントに大企業が多く、官公庁とも多く取引を行うためやりがいがはっきりと感じられる仕事でもあります。 その一方で、汎用機系エンジニアが活躍できる市場は縮小傾向にあり、もしかすると近い将来に汎用機が消滅し、汎用機系エンジニアの需要も消失してしまうかもしれません。もし汎用機系エンジニアとしてのキャリアを積みたいと考えるなら、今すぐに行動を起こすことが賢明といえます。 テクフリでフリーランス案件を探してみる
freelance
Webデザイナー

Webデザイナーは人手不足?今後の需要を徹底調査

Webデザイナーとは,Webサイト制作のデザイン性を向上させるために欠かせない職種です。 具体的な役割としてはコーディングやWebサイトのレイアウトの取り決め、ロゴやアイコンなど画像の作成だけでなくその配置まで担当します。 そのためイラストレーターやPhotoshopなどデザイナーとしての定番のソフトに関するスキルだけでなく、マークアップ言語の習得も求められます。 基本的に必要となるプログラミング言語としてはHTML、CSS、そしてJavaScriptなどがあります。 現場によってはPHPなど他のプログラミングスキルがあることで重宝される可能性も高くなりますが、基本的に高度な作業はエンジニアが担当します。 そのため一般的なWebデザイナーとして転職を目指す場合は、そこまで高度なスキルは必要とされません。 しかしWebデザイナーとしてスペシャリストを目指すなら経験や実績に合わせてJavaScriptやCSSも一定以上のスキルが必要です。 またWebデザイナーはコミュニケーションスキルも求められます。 なぜなら一般的にWebサイトの制作はクライアントや営業、エンジニア、マーケティング担当などプロジェクトに関わる様々な職種の人々とコミュニケーションをとりながら進めていくものだからです。 そしてWebデザイナーはエンジニアほど人手不足な職種ではないため、独立するとなるとクライアント企業との信頼関係の構築が重要です。 日々の業務と通して高いコミュニケーションスキルを身につけることができれば、将来Webデザイナーとして独立する際にも活かすことができる強みの一つになるでしょう。 テクフリでフリーランス案件を探してみる Webデザイナーの需要がある業界は? Webデザイナーの需要が最もある業界はIT/Web業界です。 Webサイト作成は企業がコーポレートサイトを作成するだけでなく、キャンペーンや企画、新規事業の立ち上げなど様々なタイミングで必要です。 そのためWebサイト制作やWebコンサルティングなどの事業に関連するWeb業界は、Webデザイナーの一定の需要があります。 そしてWebデザイナーは広告業界でも一定の需要を見込むことができます。 なぜならWeb業界の広告代理店や制作会社にとってWebデザインはデジタル広告の制作に欠かせない技術となるからです。 美容・健康業界や建築業界などその他の業界でも、web制作部門を内製化しているケースもあるため、Webデザイナーが活躍できる業界は多岐にわたります。 しかし大手企業でもキャンペーンページのWebデザインなど専門的なWebサイト制作は外部のIT企業に委託しているケースが少なくありません。 このような背景からもWebデザイナーの需要が一定以上保たれている業界はIT/Web業界になるといえるでしょう。 Webデザイナーの将来性は? 需要は今後も続くのか 経済産業省の資料「IT関連産業の給与等に関する 実態調査結果」によると、2020年のIT人材の需要は92.3万人。 それに対して不足する人数は36.9万人とされています。 そして2020年から10年後の2030年にはIT人材の需要は85.7万人、それに対して不足する人数は78,9万人とされています。 この数字から分かることは、2030年は現在よりもIT人材として必要とされる人数は減少することです。 しかし不足する人材の人数は約40万人増える予測となっています。 需要は供給とのバランスとなるため、人口減少社会となっている国内の状況から考えても、IT人材の需要は高くなっていく可能性が高いといえるでしょう。 そして5Gの開始など2020年はIT業界にとっては追い風となる社会的な変化もあります。 このようなことを考慮すればWebデザイナーは将来性があり、今後も需要は続く可能性が高いと考えられます。 参考:経済産業省 商務情報政策局 情報処理振興課「IT分野について」 Webデザイナーの需要を高めるスキルとは? Webデザイナーは将来性がある職種であることは前述の通りですが、年齢を重ねても社会から必要とされ続ける人材になるためには高いスキルを身につけることが欠かせません。 実際にWebデザイナーのフリーランスとして独立した場合、案件を受託するためには過去の実績や人間関係も重要ですが、その前提にはWebデザイナーとしてのスキルを有していることが必要となるからです。 ではWebデザイナーの需要を高めるスキルにはどのようなものがあるのでしょうか。 ここからは、Webデザイナーの需要を高めることに有用なスキルについて見ていきましょう。 コーディングスキル WebデザイナーにとってWebページのレイアウト調整に関するコーディングスキルは欠かせないスキルです。 コーダーとWebデザイナーで職務内容を明確に分けている現場も存在していますが、Webデザイナーとして長く活動すればコーディングに携わる機会は少なくありません。 HTML、CSSを駆使したコーディングスキルはキャリア形成の早い段階で身につけておくことをおすすめします。 Photoshop、Illustrator の操作スキル PhotoshopとIllustratorの操作スキルはWebデザイナーとして活動する上での最重要ともいえるスキルの一つです。 PhotoshopとIllustratorは上級者向けの機能も使いこなせることができれば、表現の幅を広げることにもつながります。 Photoshop、Illustratorの新しいバージョンや機能が公開された時は、情報をチェックしてスキルの向上に励みましょう。 UI/UXとデザインに関するスキル Webサイトのデザインは、ただオシャレであることやコンセプトを表現するだけでは意味がありません。 特にネットショップやキャンペーンサイトは商品の購入や会員登録など明確な目的を持って運営されます。 そのためWebデザイナーとして活動するなら、UI/UXに関する理解とデザインスキルが大切です。 UIとはユーザーインターフェースのことで、主にユーザーが操作する(触れる)ことを意識したデザインをすることを意味しています。 例えばボタンのサイズや色、位置やデザイン、フォントなどをユーザーの立場になって考えるようなことも含まれています。 UXとはユーザーエクスペリエンスのことであり、ユーザーがWebサイトに訪れて体験すること、経験すること全般を意味します。 そのため前述のUIも含まれた概念となっており、ネットショップであればトップページから商品紹介ページ、購入ボタンから決済までの操作のしやすさや分かりやすさなど。操作性まで考えてデザインを作ることを意味しています。 UXを高めるためには商品購入までの顧客の心理状態や関心について考えることも必要となるため、コピーライティングや販売に関連した心理学を学ぶことも、スキルを高めることに役立つといえるでしょう。 JavaScriptなどフロントエンドに関するスキル JavaScriptはWebサイトの動的なデザインを表現する際には欠かせないプログラミングスキルです。 またその他フロントエンドに関するプログラミングスキルを身につけることができれば、Webデザイナーだけでなくフロントエンジニアとしての役割も担当できるようになるため、より市場価値が高いIT人材を目指すことができるようになります。 JavaScriptは近年、オンラインスクールや動画コンテンツ、学習サイトなど学習環境が整ってきているため、プログラミング未経験者でも習得を目指すことは難しくありません。 【まとめ】高い報酬の案件の需要があるのは一定以上のスキルを身につけたWebデザイナーに限られる Webデザイナーの需要が今後も見込めることは間違いありませんが、スキルがなければ満足な報酬を期待できません。 実際に東京など大都市以外の求人に目を向けると、非正規雇用として低い単価でWebデザイナーが募集されているケースは少なくありません。 そのためWebデザイナーとしてある程度の高い単価の案件を受注する、もしくは転職するためには一定以上のスキルを身につけることが欠かせません。 実際にコーディングスキル、JavaScriptなどプログラミングスキルの有無やWebサイト制作におけるディレクション経験の有無は、提示される報酬や転職を目指せる求人・案件に大きく影響します。 Webデザイナーとして今後も長く活躍することを考えるなら、スキルアップは重要なテーマのひとつだといえるでしょう。 独学だと少し不安だという場合には、デザインスクールなどを活用してみるのもおすすめです。 参考:日本デザイン|WEBデザインの知りたい!知りたかった!が見つかる情報サイト テクフリでフリーランス案件を探してみる
freelance
iOSエンジニア

iOSアプリの開発にはどの言語を使うのがベスト?

iPhoneやiPad向けのアプリ開発といえば、長らくMac提供の公式開発言語であるObjective-Cまたは、Swiftでした。 しかし、ここ数年、クロスプラットフォームアプリの開発技術が次々と確立し、Objective-CやSwift以外のプログラミング言語でiOSアプリ開発するのが当たり前になりつつあります。 今回は、改めて、Objective-CとSwiftの特徴を整理すると同時に、この二つ以外の、iOSアプリ開発が可能なプログラミング言語(クロスプラットフォーム環境)についてもご紹介したいと思います。 テクフリでフリーランス案件を探してみる iOSアプリとは? 改めて説明することではないかもしれませんが、iOSアプリについて、確認しておきましょう。 iOSアプリとは、その名の通り、iOS上で動くアプリのことです。iOSが搭載された機器は、Macから発売されたiPhone・iPad・iPod touch・Apple TVなどが挙げられます。ライバルのAndroidは様々なメーカーのスマホに搭載されていますが、iOSはMacから発売されたハードウェアにしか搭載されていません。 ちなみに、パソコンでもまったく同じことが言えます。Windowsが様々なメーカーのパソコンに搭載されているのに対して、macOSはMacBookやiMacなどのMac製品にしか搭載されていません。iOSもmacOSも純粋なシェア率だと、ライバルに負けていますが、一部の熱心なファンを獲得することに成功しています。 さて、話を戻すと、iOSはいわゆるUnix系OSで、実はパソコン用のmacOSをスマホ用に最適化したものです。ところが、長らくiOSアプリはmacOS上で動作できませんでした。 しかし、2019年秋にリリースされた、『macOS Catalina』から、ついにmacOS上でiOSアプリの動作が可能になりました。そして、2022年秋にリリースされた最新の『macOS Ventura』でも同じく動かすことが可能です。つまり、2023年現在、iOSアプリは、macOSアプリと呼ぶこともできるのです。 関連記事:iOSエンジニアの仕事内容や必要なスキルとは?【年収や将来性・案件情報を徹底解説】 iOSアプリの種類 一口にiOSアプリと言っても様々な種類があります。iOSアプリは大きく次の3つに分類されます。 ネイティブアプリ ハイブリッドアプリ クロスプラットフォームアプリ ネイティブアプリは最も一般的なiOSアプリであり、主にiOSのみでしか動かないアプリを指します。AndroidやWindowsなど他のOSでは動かすことができません。 ネイティブアプリはiOS専用に作られるため、iOSの機能をフル活用できるのがメリットです。反面、Androidアプリも別に作らなくてはいけないため、開発の手間がかかるのがデメリットです。ほとんどの場合、iOSアプリとAndroidアプリは両方リリースするため、片方ずつ作るというのは効率が悪く、ネイティブアプリ開発を避ける企業も多くあります。 一方でハイブリッドアプリは、Webアプリを開発する技術によって、iOS・Androidアプリを開発しています。OSごとに開発を行う必要がないため、開発工数を減らせるのがメリットです。反面、iOS用に最適化させていないため、iOSで動かした場合動作が遅くなる可能性もあります。 クロスプラットフォームも同じく、OSごとに開発を行わなくても、1種類の言語で全て開発できる技術のことです。ただ、ハイブリッドアプリとはやり方が異なります。 クロスプラットフォームアプリの場合、1種類の言語で開発し、それをiOSやAndroid用の言語に変換することで、複数OSに対応させているのです。こちらのやり方の方が、アプリの性能を落とさずに済みます。そのため今後は、クロスプラットフォームアプリが主流になると予想されます。 iOSアプリ開発に必要な環境 iOSアプリ開発を行う際に必要なものは次の通りです。 Macパソコン ネット環境 Apple ID iOSアプリの開発言語 iOSアプリの開発環境 Macのパソコンは必須です。WindowsではiOSアプリの開発は難しいです。 iOSアプリの開発言語は、次のようなものが該当します。 Objective-C Swift JavaScript Python Kotlin Objective-C・Swiftはネイティブアプリ、その他はクロスプラットフォームアプリ開発に活用されています。iOSアプリ開発を行う際にはいずれかの言語を習得しなくてはいけません。 各言語にはそれぞれメリット・デメリットがあります。後ほど詳しく解説しますが、先に結論だけお伝えすると、JavaScript・Python・Kotlinのいずれかがおすすめです。 iOSアプリの開発環境の中で多く使われているのはXcodeです。XcodeはApple社公式の統合開発環境であり、ネイティブアプリを開発するなら必須と言えるでしょう。初心者でも使いやすいように設計されているうえに、コード編集機能・テスト機能なども充実しています。無料でこれだけの機能が使えるのが、Xcodeが広く普及している理由でしょう。 ただし、Xcodeではクロスプラットフォームアプリは作ることができません。クロスプラットフォームアプリを作るなら、FlutterやReact Nativeなど他の開発環境が必要です。FlutterやReact Nativeの詳しい仕様についても後述します。 開発にはどの言語がいいのか Objective-C まずは、基本の基本である、Objective-Cから見ておきましょう。 Objective-Cは、その名前があらわす通り、「オブジェクト指向を取り入れたC言語」です。C言語にオブジェクト指向を取り入れたプログラミング言語としてはC++もありますが、オブジェクト指向への対応法が異なるため、コーディング方法に差異があります。 C言語の後継として生まれたので、本来、汎用プログラミング言語として、多様な環境で利用できるだけのポテンシャルを持つObjective-Cなのですが、残念なことに、macOSとiOS、そして、それらのご先祖様にあたるNeXTというOSの専用プログラミング言語と化しています。 筆者はObjective-Cを悪い言語だと思いません。しかし、1984年リリースと歴史が長い分、いまどきのモダンなプログラミング言語よりも、習得難易度が高く、しかも、macOSとiOSの専用プログラミング言語状態のため、応用が利かないという、どうにもならない弱点を抱えています。 2023年現在Objective-Cは新規のアプリ開発でほとんど使われていません。また、Objective-Cで稼働している既存アプリも、他言語に改修する動きが広がっています。 iOSアプリ開発のためにObjective-Cを極める必要は薄くなったと感じます。 Objective-Cの案件を探してみる 開発にはどの言語がいいのか Swift Swiftは歴史あるObjective-CにかわるmacOSやiOSの公式標準開発プログラミング言語として、2014年にMacから発表されたプログラミング言語です。 従来のObjective-Cと共存ができるのですが、世代が異なるため、Swiftにあって、Objective-Cにない機能があるなど、共存させようとして苦労している開発者が多数です。また、SwiftとObjective-C間のデータのやり取りのところで、バグを起こしてしまった、という話もよく聞きます。基本的には併用しないのがベターです。 伝統のObjective-Cと革新のSwift、どちらを選択するかですが、Swiftの方がObjective-Cより習得難易度が低いため、いまからプログラミング言語を学ぶのであれば、Swiftの方が良いという意見が多数です。 ただし、Swiftは毎年バージョンアップが行われており、今後、Python2.0とPython3.0のような「破滅的な仕様変更」が起きる可能性もあります。また、iOSアプリ開発分野では、後述するその他の言語も注目されており、Swiftを使わなければいけないことはありません。 iOSアプリ開発でSwiftの利用が必須でなくなった今、やはりiOSアプリ開発のためだけにSwiftを極める必要は薄くなったと感じます。 Swiftの案件を探してみる 開発にはどの言語がいいのか その他の言語 繰り返しになりますが、長らくiOSアプリの開発は、公式開発言語であるObjective-Cまたは、Swiftでしたが、現在は、クロスプラットフォーム開発環境を整えることで、Objective-CやSwift以外のプログラミング言語で、iOSアプリとAndroidアプリを同時開発できるようになっています。 という訳で、クロスプラットフォーム開発環境と、その開発環境で利用できるプログラミング言語をご紹介いたします。 ①React Native Facebookが公開しているオープンソースのモバイルアプリケーション用フレームワークです。iOSアプリとAndroidアプリの両方の開発ができ、開発元のFacebookはもちろん、メルカリも採用しているようです。 対応プログラミング言語としては、JavaScript, Java, C++, Objective-C/Objective-C++, Pythonになります。オープンソースということで、インターネット上での情報も多く、利用がしやすいクロスプラットフォーム開発環境です。 ②Visual Studio Microsoftの統合開発環境(IDE)であるVisual StudioでもiOSとAndroidのクロスプラットフォーム開発が可能です。iOSとAndroid以外にはWindowsアプリにも対応できます。 Visual Studioは対応言語が多く、C/ C++、Visual Basic、C#、F#、JavaScriptさらには、プラグインを適用することでPythonやRubyにも対応しています。 ちなみに、MicrosoftはXamarinというクロスプラットフォーム用のライブラリやフレームワークを開発していた会社を2016年に買収しています。 ③Kotlin/Native Androidの公式開発言語である、KotlinでiOSアプリとAndroidアプリを同時開発することができる技術がKotlin/Nativeです。 Kotlin/Nativeの概要としては、Kotlinで作成したソースコードをiOSアプリ、Androidアプリ向けにコンパイルする技術です。この二つ以外にも、macOSアプリ、Windowsアプリなどにもコンパイルすることができます。 ④Flutter(Dart) Flutterは2018年にGoogleがリリースしたフレームワークです。 Flutterでは同じくGoogleが開発したDart(ダート)という言語が使われています。Dartは元々マイナーな言語でしたが、Flutterで動かせる言語として注目されるようになりました。文法はJavaScriptに似ており、JavaScript履修者なら習得は容易です。 Flutter(Dart)を使うことで、iOS・Android・Webアプリ全てが作れてしまいます。以前はドキュメントが少なく勉強しにくいのが難点でしたが、最近は優秀さが認められるようになったことで、日本語のドキュメントも充実してきました。 結局何がいいの? 自身のスキルや、キャリアプランにもよると思いますが、プログラミング初学者の方が、これから、iOSアプリ開発のためにプログラミング言語の学習を始めるのであれば、習得難易度と、将来性の観点から次の三つのプログラミング言語がベターだと思います。 ・JavaScriptまたはPython(React Native) ・Kotlin(Kotlin/Native) 公式開発言語であるSwiftやObjective-Cはどうなの?と聞かれると、正直、イマイチです。 理由としては、どちらのプログラム言語も上の三つより習得難易度が高く、実質、iOSアプリとmacOSアプリ開発専用プログラミング言語にとどまっているからです。それでもあえて、公式開発言語で開発したいとお考えであれば、Objective-Cの方がおすすめです。 Objective-Cは習得難易度という意味で、iOSアプリ開発ができるプログラム言語の中で、もっとも難しいプログラミング言語だと思います。特に、モダンなプログラミング言語なら、自動で行ってくれるメモリ管理も、自らで行わなくてはならないのは、初心者には難しいことだと思います。しかし、技術の幅を持たせるために、苦労して学ぶ価値があります。 まとめ:クロスプラットフォーム開発が当たり前の時代に クロスプラットフォーム開発されていない純粋なiOSアプリは、iOSのシェアと命運を共にすることになります。 そう考えたとき、近年、iOSのシェアがAndroidに押されつつあるうえに、中国のスマホメーカーであるHUAWEIが新たなスマホ用OS『Harmony OS(鴻蒙OS)』を開発・市場投入するなど、iOSの先行きに暗い影を落としそうな、ネガティブなニュースが続いているのが実情です。 もちろん、多くの新機能が追加され作業効率化に貢献してくれる『macOS Ventura』の登場や、毎年盛り上がりを見せる新型iPhoneSEの登場など、暗いニュースばかりではありません。iOSは一定の人気を保っているのは間違いありません。 しかし、今後は、Objective-CとSwiftで「Androidでは動かない純粋なiOSアプリ」を開発することは、まず推奨されないでしょう。特にビジネスでスマホアプリを開発するのであれば、なおさら、効率アップのためにクロスプラットフォームでの開発です。 テクフリでフリーランス案件を探してみる
freelance
LISP

LISP(プログラミング言語)の特徴を歴史から紐解く

序文:人工知能の研究と共にLISP(リスプ)も進化 今回はLISP(リスプ)というプログラミング言語に関して歴史を交えて、ご紹介します。LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案された高級言語の一種です。当時は低水準言語であるアセンブリ言語が開発として中心的に使われており、高級言語はメインとして使われてはいませんでした。LISP(リスプ)は高級言語としてFORTRANに続いて2番目に出てきたプログラミング言語です。 このLISP(リスプ)はFORTRANと似て計算処理を得意としたプログラミング言語で、計算機科学などの計算処理が重い分野で主に使われることになります。また、計算処理を得意としているので、人工知能などの先進的な分野でも使われるプログラミング言語となります。 LISP(リスプ)の考案者であるジョン・マッカーシー氏はアメリカ合衆国で活躍した計算機科学および認知科学の分野で活躍した科学者です。実は人工知能研究の第一人者であり、人工知能(Artificial Intelligence)という言葉を1956年のダートマス会議で初めて提唱した方です。 ジョン・マッカーシー氏はカルフォルニア工科大学で数学の学士号を取り、その後はプリンストン大学へ入学し、数学のPh.Dを取得しました。その後にダートマス大学の助教授になり、マサチューセッツ工科大学に移り、その後にスタンフォード大学で教授になりました。 その後は人工知能の研究を主に続け、その研究にはLISP(リスプ)が用いられていました。そうして、人工知能の研究と共にLISP(リスプ)も進化していきました。 LISP(リスプ)の特徴として計算処理を得意としたプログラミング言語と述べましたが、他には型を定義しなくても良い動型言語である・コンパイルなしで実行ができるという特徴があります。 テクフリでフリーランス案件を探してみる LISP(リスプ)の誕生:数学におけるラムダ計算をするためのプログラミング言語 LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案されました。LISP(リスプ)が考案された目的は数学におけるラムダ計算をするためのプログラミング言語を開発するためでした。 その後に実際に開発が進み、1960年にLISP(リスプ)内で様々な方言が生まれました。方言がたくさん生まれるということは多くの開発者にLISP(リスプ)が支持されているということになります。しかし、当時のLISP(リスプ)は言語に関する仕様が数多くあり、汎用性が失われてしまうので、一度書いたプログラムがコンピューターによっては実行できないというリスクがあります。そこで、LISP(リスプ)を標準化するための動きが出始めます。 まず1975年にLISP(リスプ)の方言であるSchemeが出ます。マサチューセッツ工科大学のAIラボにてジェラルド・ジェイ・サスマン氏とガイ・スティール・ジュニア氏によって設計がなされました。このSchemeは静的スコープであることが大きな特徴となっています。 また、もう一つのLISP(リスプ)の方言としてCommon LISP(リスプ)が1984年、1994年にANSIによって標準化されました。1994年の標準化では、「ANSI X3.226-1994 American National Standard for Programming Language Common LISPCommon LISP」というCommon LISPの標準仕様が出版されました。 ただ、1984年の標準化に比べて、1994年ではその他のプログラミング言語が台頭したこともあり、LISP(リスプ)はあまり使われなくなってしまいました。 ▼ LISP(リスプ)の特徴 Common LISP(リスプ)は提案された機能は原則すべて盛り込むといった方針なので、多機能であることが大きな特徴となっています。Schemeは逆に本来のLISP(リスプ)の機能を元にしているので、シンプルさが特徴となっています。 そして、実際に開発に用いるとなった場合に、手軽に開発がしやすいのがScheme、様々な機能を元に実装をしたい場合はCommon LISPといった使い分けがなされています。 LISP(リスプ)2大方言であるCommon LISPとSchemeは現在でもメインで使用される方言です。これら2つの標準化された方言を軸として、LISP(リスプ)は発展をしていきます。 LISP(リスプ)の黎明期:一部の開発者から支持される 1980年代以降はCommon LISPとSchemeが標準化としてLISP(リスプ)内の主流な方言となっていましたが、同時に数多くの方言が登場しました。LISP(リスプ)は1980年代以降、他のプログラミング言語の台頭があり、あまり使われなくなってきましたが、2000年代や2010年代に入っても新しい方言が登場しています。 それだけ一部の開発者からは支持されているプログラミング言語であり、実際に方言が開発されています。実際にCommon LISPとScheme以外の方言だと1994年に登場したRacketや2007年に登場したClojureが有名です。 RacketはLISPの方言であるSchemeから派生して登場した方言です。Webアプリケーション開発や統計解析、データベースなどのライブラリも豊富にあり、現在もバージョンアップを続けている方言です。 また、Clojureは関数型プログラミング言語であり、マルチパラダイムプログラミング言語であることが大きな特徴です。インタラクティブな開発がしやすく、マルチスレッドプログラミングを支援する方言です。また、Webアプリケーションを開発する場合の開発速度が早く、早めの開発を要しており資金力がない企業にも採用されている方言です。 これはClojureで開発した場合に、他のプログラミング言語に比べてコードが短くなるという特徴があり、開発速度が早くなります。大規模開発には向いていませんが、小規模のプログラムを開発するときには向いているプログラミング言語です。 このように2000年代に入っても新たな方言が出てきており、LISP(リスプ)としての進化は止まりません。 LISP(リスプ)の成長期:2000年半ばに人工知能の第3次ブームで注目 LISP(リスプ)の成長期についてです。2000年半ばに人工知能の第3次ブームとしてディープラーニングという技術が話題になりました。これを機に人工知能が注目され、人工知能開発に使うことが出来るLISP(リスプ)も同時に注目を浴びました。 LISP(リスプ)の特徴として実行と定義の区別がなく、また関数とデータの区別がありません。プログラムの実行時には新たな関数を作り出し、そしてそれを保存することができます。 これは人工知能のディープラーニングによって自らプログラムを拡張していくという性質と似ており、人工知能と相性が良いプログラミング言語としてLISP(リスプ)が取り上げられています。 このように、LISP(リスプ)は人工知能のブームと共に取り上げられるようになり、成長を遂げました。 LISP(リスプ)の現在:人工知能分野で今後も注目 LISP(リスプ)は現在、AIの開発を中心に使用されています。そして、そのAI開発の現場ではシンプルさが売りのSchemeよりも、多機能さがウリのCommon LISP(リスプ)がメインに使用されています。 最近ではトレンドとして、関数型プログラミング言語が取り上げられています。LISP(リスプ)も関数型プログラミング言語として有名なプログラミング言語であり、人工知能分野で使われているプログラミング言語であるので、今後も注目され続けることは間違いないでしょう。 まとめ:LISP(リスプ)は今後も注目され続ける プログラム言語の歴史 <LISP(リスプ)編>というテーマで今回はお伝えしました。いかがだったでしょうか? 今回お伝えしたかったことは以下のとおりです。 LISP(リスプ)は1958年にジョン・マッカーシー氏によって考案された高級言語の一種LISP(リスプ)は計算機科学などの計算処理が重い分野で主に使われ、人工知能開発にも使われているLISP(リスプ)は関数型プログラミング言語として有名なプログラミング言語であり、人工知能分野で使われているプログラミング言語であるので、今後も注目され続ける LISP(リスプ)はそこまで有名なプログラミング言語ではないので、馴染みが無いと思いますが、人工知能開発などで注目されているプログラミング言語の一つです。是非LISP(リスプ)に触れて、LISP(リスプ)の凄さを体感してみてください。 今だけ!登録で最大1,500円相当もらえるお仕事探しサービス「テクスカ」 「テクスカ」は、報酬をもらいながらお仕事探しができる新体験のスカウトサービスです。 【テクスカの4つの特徴】 1.面談するだけで、3,500円相当のAmazonギフトカードを獲得できます 2.優秀な貴方に仲間になってほしいと真に願うとっておきのスカウトが企業から届きます 3.貴方の経歴・スキルを見て正社員のオファーだけでなく副業オファーも届きます 4.転職意欲がなくとも自分のスキルが通用するか各社のCTOに評価してもらうチャンスがあります 忙しさのあまり、企業との新たな出会いを逃している… スパムのように届くスカウトメールにうんざりしている… 自分の市場価値がわからない… 社外の人からの評価が気になる… 副業の仕事が見つからない… そんなあなたにおすすめです! テクフリでフリーランス案件を探してみる
Cobol

COBOLの歴史から現在を解説!

Cobol(コボル)が誕生したきっかけは? Cobol(コボル)はアメリカ国防総省の提案によって誕生しました。 アメリカ国防総省は事務処理用のプログラミング言語を全て一致させたいということで、新しくCobol(コボル)の開発に乗り出しました。実際にアメリカ合衆国政府のシステムはCobol(コボル)誕生以後、全てにCobol(コボル)が使われています。Cobol(コボル)が使えないコンピューターは導入しないという時期があった程です。 Cobol(コボル)は誰が開発したの?と気になる方もいると思いますが、グレース・ホッパーという当時53歳の女性プログラマーの手によってCobol(コボル)は開発されました。彼女は名門イェール大学の大学院に進み、数学と数理物理学を専門に勉強をしていました。 卒業後は母校で教授をしていましたが、第二次世界大戦と同時に軍隊へ入隊することになりました。彼女はもちろん最前線で戦うこと無く、ハーバード大学が行っていた船舶計算プロジェクトに配属されました。 その際に最新鋭のコンピューターシステムに触れて以来、プログラマーとして活躍し、民間企業に入社した後にCobol(コボル)の開発を行いました。 ペンシルベニア大学とアメリカ国防総省が開いた標準化委員会にて、Cobol(コボル)が特定のコンピューターに依存しない言語として公式に認められ、その後にアメリカ国防総省のシステムに使われることになりました。 彼女はプログラマーとして活躍するのみならず、生涯軍人として軍人の仕事を全うしました。最終的には准将になり、プログラマーとしても軍人としてもプロフェッショナルであり続けました。 こうしてCobol(コボル)が誕生し、その後はアメリカから世界にも広がっていき、全世界に普及しました。 日本では1963年からCobol(コボル)が使われ始め、特に金融機関や製造業のシステムを中心に使われ、現在でもCobol(コボル)が使われている企業も多くあります。 テクフリでフリーランス案件を探してみる Cobol(コボル)の黎明期・成長期について Cobol(コボル)は誕生した後は実際にどのように使われていたのでしょうか? Cobol(コボル)の黎明期や成長期についても気になる方は多いと思うのでご紹介していきます。 Cobol(コボル)は誕生した後に世界中に広がり、日本でも多くの企業が現在も使っていますが、時代を経るにつれて、仕様拡張や変更がなされています。 特に日本では1965年に富士通が最初のコンパイラを発表し、Cobol(コボル)のコンパイラはほぼ全てのコンピューターに搭載されていきます。 この時代では今のように個人がコンピューターを持つことは一般的ではなかったですが、オフコンと呼ばれる中・小型機が普及し、Cobol(コボル)がメイン言語として使われ、Cobol(コボル)を使ったシステムが普及していくようになりました。 第1次規格「ANSI68,ISO72,JIS72」、第2次規格「ANSI74,ISO78,JIS80」、第3次規格「ISO85,ANSI85,JIS88,JIS92」、第4次規格「ISO/IEC 1989:2002」、第5次規格「ISO/IEC 1989:2014」といったように規格の改定がなされました。 それぞれの規格はアメリカ規格(ANS)、国際規格(ISO)、日本工業規格(JIS)となります。 これらの規格があるため、Cobol(コボル)はあまりコンピューターのOSに依存しないようになっています。あるOSで書いたコードをそのまま他のOS内でペーストしても動くようになっています。 最新の国際規格である第5次規格「ISO/IEC 1989:2014」は2014年に行われたため、Cobol(コボル)は今でも日々日々成長しています。 そして、最初は事務処理用としてビジネス向けに使われていましたが、汎用プログラミングにも広がるようになりました。 Cobol(コボル)は現在どのように使われている? Cobol(コボル)は企業の基幹システム、行政システムに使われていることが多いです。特に金融・証券のシステムはCobol(コボル)で書かれていることが多いです。 IPAソフトウエア開発データ白書(2016-2017)によると、対象プロジェクト3895件のうちCobol(コボル)は2位である15%を獲得しています。 一位はJavaの32%ですが、開発規模が1Mstep以上のプロジェクトでは100%Cobol(コボル)が使われています。このようにCobol(コボル)は大規模プロジェクトにおいて使われる傾向があります。 ただ、小・中規模のプロジェクトでCobol(コボル)が使われることはそこまで多くはなく、Ruby,C,Javaなどの他のプログラミング言語が出てきたことによって、今までCobol(コボル)で構成されていたシステムが他の言語で改めて構成されることもしばしばあります。 また、それに伴いCobol(コボル)をメインで書いているプログラマーが少なくなっています。Cobol(コボル)をメインで使っていたプログラマーが高齢化し、現役引退をするケースも珍しくないです。そのため、Cobol(コボル)を使える人間が少なくなっており問題視されています。 とはいえ、Cobol(コボル)を使う人や仕事が完全に無くなったわけではありません。現在も金融・証券会社を中心に使われている言語なので学んでおいて損はないと思います。 まとめ:Cobolには50年以上もの歴史がある 今回はプログラミング言語であるCobol(コボル)の歴史について見てきました。 Cobol(コボル)が誕生した背景やその後の歴史についてなかなか興味深い話が多かったでしょう。 今回の内容をまとめると Cobol(コボル)は事務処理用に作られた英語に近い書き方ができる言語 Cobol(コボル)は50年以上もの歴史がある Cobol(コボル)は現在も大規模プロジェクトを中心に使われている となります。 プログラミング言語の歴史については様々な話があり、常に人々の手によって進化しています。Cobol(コボル)もその言語の一つで変化をしながらも従来の信頼度の高さは変わらずに、不動の地位になっています。 今回でCobol(コボル)に興味を持った方はまずCobol(コボル)を使ってみてください! テクフリでフリーランス案件を探してみる
<span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
TOP