みなさん、フリーランサーの収入が気になりませんか。
同じエージェントに所属するエンジニアの「前職の収入」と「フリーランサーになった時の収入」を一例としてあげてみました。

年齢 前職年収 現年収 スキル 主な役割 経験工程 業界歴
26 480万円 540万円
(↑60万円)
Java,Oracle,
SQLServer,MySQL
PL PG,評価 2年
26 330万円 650万円
(↑320万円)
Java,Oracle PL PG,評価 4年
28 360万円 650万円
(↑360万円)
Java,C#,
VB,Oracle,
SQLServer,MySQL
PG 内部,PG,評価 6年
28 400万円 730万円
(↑416万円)
Java,Oracle,
PostgreSQL
PL 要件定義,外部,
内部,PG,評価
5年
31 390万円 810万円
(↑510万円)
Java,Oracle PG 要件定義,外部,
内部,PG,評価
9年
32 400万円 540万円
(↑110万円)
C#,VBA,
Oracle,SQLServer
PL 外部,PG,評価 6年
33 600万円 710万円
(↑100万円)
C#,Access,
Oracle,SQLServer
PL 要件定義,外部,
内部,PG,評価
12年
36 500万円 810万円
(↑310万円)
Java,C#,
PHP,VB.net,
Access,Oracle,
SQLServer,PostgreSQL,
MySQL
PL 要件定義,外部,
内部,PG,評価
13年


どのエンジニアの方も、結構、収入が上がってますね。
ちなみに、各エンジニアの方は、前職で残業45h(中にはそれ以上)ほどやっていましたが、現職での残業は0hに近いです。
また、ここには書きませんでしたが、フリーランサーは節税が出来るので、手取り収入はもっと上がります。
以下の登録フォームから、みなさんがフリーランサーになったとき、いくらの報酬がもらえるか査定していますので、ぜひ試してみてください!

月額収入査定のお申し込み(※エージェントの案内もしています)


◇◇◇◇◇◇◇◇◇◇


お知らせ

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について





1. はじめに

筆者が忘れるシリーズのSpark版です。
どうも、JavaでのDataFlameのJoinの仕方を忘れてしまいます。

2. 環境

本記事は、以下の環境で動作は確認しています。

・Amazon Linux
・Ubuntu


3. いつも忘れてしまう方々

コーディングが止まってしまい、困っちゃいます。

Import

以下をインポートしましょう。

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row


Filter

条件を絞って、行を出力します。

Dataset<Row> dfResult = dfSource.filter("{列名}='{条件}'");

もちろん ANDしたり、

Dataset<Row> dfResult = dfSource
	.filter("{列名}='{条件}' AND {列名}='{条件}'");

ORやNOTしたりもできます。

Dataset<Row> dfResult = dfSource
	.filter("{列名}='{条件}' OR {列名}<>'{条件}'");


Join

Joinです。

Dataset<Row> dfResult = dfSource1
	.join(dfSource2,
	      dfSource1.col("{列名}").equalTo(dfSource2.col("{列名}")))


列名の変更

Joinして列名が同じになったりした時に、列名を変えれます。

Dataset<Row> dfResult = dfSource1
	.withColumnRenamed("{旧列名}", "{新列名}");


重複列の削除

JoinするとID項目なんかが二重になっちゃいますが、それをひとつにしてくれます。

Dataset<Row> dfResult = dfResult.dropDuplicates("{新列名}");

もしくは

Dataset<Row> dfResult = dfResult.distinct();


4. 終わりに

個人的にですけど、Spark は Pythonで使うのが良いですかね。


◇◇◇◇◇◇◇◇◇◇


お知らせ

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について





0. 良いエージェント

みなさんは、フリーランサーとして仕事をする上で、技術職と営業職を全部自分で行わなければならないと思っていませんか?
それは大きな間違いです。
よく、フリーランサーになって失敗する人は、全部の仕事を自分でやろうとする人です。
体はひとつしかないので、営業はエージェントに任せませましょう。
だって、我々はエンジニアなんですから。
と言うわけで、良いエージェントを見つけるために、以下の条件に注意しましょう。

  1. 営業力がある
  2. 営業手数料が安い
  3. 自分の希望する案件を見つけてくれる
  4. エンジニアを守ってくる
  5. 節税・確定申告のフォロー
  6. フリーランサーと繋がれる


1. 営業力がある

当たり前ですが、取引している企業が多く、その取引先の企業にエージェントが信頼されているかが大事です。
一度、大手のエージェント(電車やネットの広告で1度は目にしたことがある大手)を使おうと話を聞いたのですが、40代後半の筆者に、「50代になると紹介できる案件が減り、単価が下がります」といったエージェント側の逃げの話をされ、ため息をついた過去があります。
大切な案件紹介の話で、「契約したからといって、仕事を渡せるかわかりません。」などと営業からは聞きたくないです。
こういう企業は、取引先にも自社の保身のために逃げの一言を使うので、相手企業からの信頼も薄くなり、面談成功率が下がります。
安請け合いは良くないですが、契約をした以上、エージェントには案件紹介という仕事に妥協をせず、良い仕事を紹介してもらわないと困ります。
良いエージェントは、その点、取引先との信頼性が高いので、年齢が高かろうが、経験が少なかろうが、取引先ではしっかり仕事をしてくれる人材を紹介してくれると信じているので、面談の成功率が上がります。
また、取引先との信頼性の高さから、案件の引き合いが多いため、エージェントに案件の紹介を依頼してから、1週間程度で仕事が決まります。

2. 営業手数料が安い

エンジニアがエージェントに案件を紹介してもらうと、営業手数料を毎月エージェントに支払うことになります。
この営業手数料は、取引先からエンジニアへ支払われる単価の何割かとなります。
ですので、この営業手数料が安いほど、我々の報酬は上がります。
営業手数料は、大体単価の2割程度ですが、3割と多めに取るエージェントや、4割・5割と最早ボッタくりの悪質なエージェントも多いので、気を付けましょう。
ちなみに、前に話を聞いた大手エージェントは、単価の1~2割とのことで、これもかなり安いですが、さらに優良エージェントが存在します。
筆者の所属するエージェントが、まさにそれで、1割固定の業界最安値となっています。
この、筆者の所属するエージェントは、「エンジニアの紹介でエンジニアを確保」しており、広告宣伝費をかけないため、エンジニアへの単価還元率が高くなるとのことです。

3. 自分の希望する案件を見つけてくれる

業界歴の短い方やスキルチェンジをしたい方などの初心者であっても、無理をせず働ける案件を探してくれることが大事です。
1.の条件を満たす優良エージェントは、大体、初心者OKの案件を持っていて、取引先でしっかりとOJTをしてくれます。
また、マネージメントをしたい・プログラマーだけしたい・開発環境・通勤場所・通勤時間・残業はしないなど、いろいろと要望を出せます。
悪質なエージェントは、「歳をとっているからマネージメント」と決めつけたり、「Javaの経験を半年から5年に詐称」などと無茶をさせるので、注意しましょう。

4. エンジニアを守ってくる

どんなに良いエージェントでも、以下のようなハズレ案件は持っています。

・面倒ごとを押し付けてくる
・プロジェクトが炎上している
・PM・PLのスキルが低すぎる

また、みなさんが、取引先の担当エンジニアと気が合う・合わないといった問題は、エージェント側も把握できません。
このように、みなさんに困ったことが起きたとき、優良エージェントは、すぐに案件を変えるなどの対応をしてくれます。
しかし、一般のエージェントは、相談しても、そのまま放置されるケースが多いので、注意しましょう。

5. 節税・確定申告のフォロー

フリーランスエンジニアになって収入が上がっても、税金・保険料などを多く払っては意味がありません。
会社員時代は、税金・保険料などの計算は会社が行ってくれましたが、フリーランスになると、自分で行う必要(確定申告)があります。
会社員からフリーランスになる人は、何の教育も受けていないので、経費計上をしくじり、大抵は多く税金・保険料を支払ってしまいます。
優良エージェントでは、このようなことを防ぐために、税理士などを呼んで勉強会を開催したり、相談を受け付けてくれます。
しかし、一般のエージェントは、フリーランサーの確定申告については放置なので、注意しましょう。

6. フリーランサーと繋がれる

エンジニアではなく、フリーランサーと繋がれるかです。
いくら、優良エージェントに所属しても、聞いていた仕事の内容と違うとか、仕事に厳しい人がいるなど、この現場はどうなんだろうと、いろいろ思うことがあります。
こんな時にフリーランサー仲間がいれば、意見を聞いたり、現場の比較をしたりできます。
広告などを使ってエンジニアの募集を行っているエージェントに単身で飛び込みこむと、なかなかフリーランス仲間ができません。
一応、飲み会などもエージェント側で開催してますが、ある程度フリーランサーの中でグループが出来ているので、輪に入れず、ぼっち確定です。
解決策として、かなりピンポイントですが、筆者と同じエージェントに入れば筆者とは繋がるので、節税・現場・単価などといった裏話はできます。

7. おすすめエージェント

筆者の所属するエージェントは、上記の条件を満たしているといえます。
以下の登録フォームの一番下に、エージェントの案内があるので見てみてください。
また、みなさんがフリーランサーになったとき、いくらの報酬がもらえるか査定していますので、ぜひ試してみてください!

月額収入査定のお申し込み(※エージェントの案内もしています)


◇◇◇◇◇◇◇◇◇◇


お知らせ

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について





1. はじめに

MacやWindowsなどのGUIメインのOSに慣れ、急にLinuxのターミナルに戻ると、なかなか頭の中に出てこないコマンドやパラメータがあります。
筆者がよく使うのに忘れる(?)コマンドを、必要かつ忘れる順に紹介していきます。

2. 環境

本記事は、以下の環境で動作は確認しています。

・Amazon Linux
・Ubuntu


3. いつも忘れてしまうLinuxコマンド

大事なのに、なんでいつも出てこないんでしょう(笑)
忘れたときに、さっと思い出すことを目的としているので、各コマンド・パラメータの説明は割愛しています。
また、よく使われるパターンと思うもののみを載せています。

圧縮・解凍

tar.gz形式で圧縮します。

tar cvzf {圧縮ファイル名}.tar.gz {圧縮したいフォルダ}  

tar.gz形式で解凍します。

tar xvzf {圧縮ファイル名}.tar.gz

zip形式で圧縮します。

zip -r {圧縮ファイル名} {圧縮したいフォルダ}  

zip形式で解凍します。

unzip {圧縮ファイル名}.zip


ファイル・ディレクトリの検索

ファイル・ディレクトリを曖昧検索します。
検索名に、*(ワイルドカード)を使います。

find {検索対象PATH} -name "{検索名}"

例:ルートディレクトリ以下から、「abc」の文字列を含むファイル・ディレクトリを検索する。

find / -name "*abc*"

ファイルのみを曖昧検索します。
検索名に、*(ワイルドカード)を使います。

find {検索対象PATH} -name "{検索名}" -type f

例:ルートディレクトリ以下から、拡張子が「txt」のファイルを検索する。

find / -name "*.txt" -type f

ディレクトリのみを曖昧検索します。
検索名に、*(ワイルドカード)を使います。

find {検索対象PATH} -name "{検索名}" -type d

例:ルートディレクトリ以下から、「123」の文字列を含むディレクトリを検索する。

find / -name "*123*" -type -d


デーモンの起動

バックグラウンドで起動するプログラムを実行します。
操作は、ディストリビューションによって違います。
動いたほうが正解です(笑)

デーモンを起動します。

systemctl start {デーモン名}
or
service {デーモン名} start

デーモンを止めます。

systemctl stop {デーモン名}
or
service {デーモン名} stop

デーモンを再起動します。

systemctl restart {デーモン名}
or
service {デーモン名} restart

自動起動の設定です。

systemctl enable {デーモン名}
or
chkconfig {デーモン名} on


screen(仮想端末)

screenを使うと、SSHクライアントを中断しても、操作が再開できます。

screenを開始します。

screen

開始したscreenを中断(デタッチ)します。

Ctrl + a → d
※ Ctrlキーを押したまま、aキー → dキーの順番で押下する。

デタッチしたscreenの一覧を表示します。

screen -ls

デタッチしたscreenを再開(アタッチ)します。

screen -r [{ID}]

screenを終了します。

exit


CPUの使用状況

CPUの使用状況を確認できます。
Ctrl + c を押すまでトレースします。

top


メモリーの使用状況

スワップ領域を含めた、メモリーの使用状況を確認できます。

free -wht

メモリー状況をトレースしたい場合は下記を使います。

free -wht -s {何秒おきに表示} -c {繰り返し数}

例:3秒おきに10回表示する

free -wht -s 3 -c 10


ディスクの使用状況

ディスクの使用を状況できます。

df -h


4. 終わりに

筆者がよく忘れるのは、tar.gzの圧縮・解凍パラメータです。
ちょっと、圧縮したいだけなのに、おろおろします。


◇◇◇◇◇◇◇◇◇◇


お知らせ

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について





0. 記事一覧

初心者のためのAWSの使い方① - 初期設定編 -
初心者のためのAWSの使い方② - S3構築編 -
初心者のためのAWSの使い方③ - EC2構築編 -
初心者のためのAWSの使い方④ - Cloud9導入編 -

1. はじめに

無料で始められるAWSですが、いざ始めようとすると、「まず何をすれば良いの?」となったりします。
そこで、初期設定・S3・EC2・Cloud9の設定について、まとめた記事を作りました。
1.初期設定編2.S3構築編3.EC2構築編と長編記事ですが、上から下へと手順通り進めていけば、AWS環境が出来るかと思います。
また、4.Cloud9導入編は、お好みでどうぞ。
なお、本記事は「とりあえず、AWS環境を構築したい!」を目的としているため、各設定項目の説明は割愛させてもらってます。

では、4.Cloud9導入編の開始です!

2. 前提

本記事は、AWS 無料利用枠を利用しています。
本記事の手順を実施するには、以下の記事で設定した環境が必要です。

本記事の手順を実施にあたり、以下の知識が必要です。

  • ターミナル・SSHクライアントの操作
  • linuxコマンド(ls, cd, viなど)

この記事では、Java・Pythonといった開発言語やDBMSの構築は行いません。

3. 環境

本記事は、以下の環境でAWSを構築しています。

  • PC:macOS Mojave 10.14
  • ブラウザ:Google Chrome


4.Cloud9の導入

Cloud9は、アプリケーションの開発などをクラウド環境で利用できるIDE(統合開発環境)サービスです。
これがあると、同一の開発環境が、どのPCでも使えるという便利なものです。
それでは、本記事の手順に従いCloud9の導入を行ってください。

Node.jsのインストール

Node.jsを使うのでインストールする。

SSHでEC2に接続

$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}


Node.jsのインストール

$ curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
$ sudo yum install -y nodejs
$ npm -v
6.10.2


Cloud9のインストール

ログインを行ったら、「サービス」をクリックし、「Cloud9」を選択する。



環境作成の開始

「Create environment」をクリックする。



Cloud9環境名の入力

「Name」に、Cloud9で使用する環境名の入力を行い、「Next Step」をクリックする。



Configure settings

以下の通りに設定する。

  • 「Environment type」は、「Connect and run in remote server (SSH)」を選択する。
  • 「User」に、ログインで使用するユーザ名を入力する。
  • 「Host」に、3.EC2構築編の「SSH接続」で作成した、パブリックDNSを入力する。
  • 「Port」に、3.EC2構築編の「セキュリティグループの設定」で作成した、「SSHのルール」の「ポート範囲」を入力する。


  • 「View public SSH key」の「Copy key to clipboard」をクリックし、SSH keyをコピーする。
  • SSHでEC2に接続する。
$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}
  • viコマンドを使用し、「authorized_keys」を開く。
$ sudo vi ~/.ssh/authorized_keys
  • viコマンドで、コピーした「SSH key」を「authorized_keys」にペーストし、ファイルを保存する。
  • SSHサービスを再起動する。
$ sudo systemctl restart sshd.service
  • SSHから、ブラウザの「Configure settings」に戻る。
  • Cloud9の環境ファイルを保存するフォルダ「Environment path」を入力する。
  • Node.jsの実行ファイルがあるパス「Node.js binary path」を入力する。

「Next step」をクリックする。

確認

内容を確認して「Create environment」をクリックする。



インストールの開始

「Next」をクリックする。

「Next」をクリックする。

わかりにくいが、何回か「インストールをして良いか」を聞いてくるので、都度「enterキー」を押す。

「Next」をクリックする。

「Finish」をクリックする。



5. 終わりに

お疲れさまでした!
4.Cloud9導入編の導入を含め、AWSの構築は以上となります。
この環境を使って、Webサービスをたてるもよし、Java・Pythonを入れて開発環境を作るもよし、どこでも繋げるファイルストレージ環境を作るもよしです。

6. 引用・参考元

https://aws.amazon.com/jp/


◇◇◇◇◇◇◇◇◇◇


お知らせ

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について