むち打ちエンジニアおじさんのブログ

エンジニア1年目の本音を綴ります。。。

アメリカでは2020年までに人口の半分がフリーランスになるってさ。えええええええええええ

アメリカでは2020年までに人工の半数がフリーランスになるってさ。。

え、、、、想像できないなああ。。。

そんな記事を読んで、びっくりしました。そしてあくまで日本のフリーランス市場に関して少し調査をしてみました。

そもそもフリーランスの定義って何かというと、個人事業主とほぼ同義だそう(正確に言うと、結構な違いがあるけど)。フリーランスと言うのは個人で仕事を受注し、仕事をして報酬をもらい、それを単発的に行う人のことを指すらしい。例えば、Airbnbのホストとかはフリーランスに当たる。

日本におけるフリーランスの人口は約1300万人だそうで、思ってたより多い。。。

www.lancers.co.jp

サラリーマンとして働いているので、あまりこう言う世界が想像できないです。まあ、個人で財務管理しないといけない人が増えてきているってことは事実なんだろうな、と急成長しているfreee(会計クラウドシステム)とかみて思います。

で、ここからが日本のフリーランスにおける話の僕の持論になってきます。

フリーランスという業態は間違いなく増加していくと思います。特にこれだけネットというインフラが整備されてきた時代では様々な情報が行き交い、それをキャッチしていく。ただし、それらの情報は人並みだと淘汰されてしまう。なので、人と違うことや人並みはずれた技量を示したもので自己をアピールする必要が出てきます。つまりは、自己と他社の差別化が非常に重要な時代になってきます。

例えば、フリーモデル。ここ数年でそんなフレーズがバズりました。現状、モデルという言葉が一人歩きしてしまい、どんな人でもモデルを名乗れます。モデルという職業は誰にでもなれるんですね。(フリーモデルをディスってるわけではありません。)

また、youtuberでも同じことが言えます。動画を撮って、投稿するだけで誰でもyoutuberになれます。

つまり、ここで言いたいことは、フリーランスが流行る世の中では誰でもそれらの職種を名乗ることができます。それをチャンスだと捉えて、様々なフリーランスがそこに集中します。ただし、思ったように仕事が取れません。思ったように再生回数が伸びません。

その理由は簡単で、マジョリティーになってしまうと需要は分散されてしまいます。ここではマイノリティーになる必要がある、といったことを言いたいわけではありません。

マジョリティー化する職業に対して、しっかりと自己の能力を磨くことができる必要が大事です。

youtuberなら動画の画質を上げる、視聴者が求めるコンテンツを提供する。フリーモデルならターゲットを絞ってその人たちに向けたアピールをする。

当たり前のことかもしれませんが、そのような努力と工夫は今以上に必要になってきます。会社の財力やネームバリューがあるので、契約が取れる、受注できる時代はもう数年ごに終わると思っています。

それらに執着せずに、消費者が本当に求めているものを提供できる人のみが生き残っていく世界になっていくと思います。(※個人単位で)

 

少し長くなりますが、ここからはスタートアップの話にシフトチェンジします。

上記のフリーランスの話に共通することですが、スタートアップもネームバリューや財力も大手に比べるとありません。そこで重要なのは、アイデアとスキルです。大手勤務の誰よりもスキルがあり、誰もが思い浮かばないようなアイデアを持って進めるビジネル。そんなもののみ、生き残っていく時代になると思います。

スタートアップにおいて、こんな記事を見つけましたのでシェアします。

medium.com

 

 

 

フロントエンドの処理は軽くしちゃいなぁ

フロントエンドの処理は軽くしちゃいなぁ

 

最近はフロント側での処理に凝りすぎて、サーバーサイドに盲目になっていたのでメモ。

 

そもそもwebアプリケーションにおいて、レスポンス速度は本当に大切。そんな事も忘れてjsで複雑な処理を書いて満足していた。サーバーサイドでも出来るような事をも。

今日実感したのは、

 

サーバーサイドで出来ることはぜんぶそっちでしちゃって、フロントエンドでは最小の処理で済ませるべき。

 

改めて書いて見ると当たり前だし、恥ずかしくなるけどjsに夢中になり過ぎてこんな事も忘れてた。今では1つ1つの処理を引数に変数をおいてajax通信してたけど、この引数が確定してる事からそれらを配列に格納して引数として渡し、通信を一回きりに抑える。

たまには、codeigniterに夢中になってみるのも良いのでは??

 

あ、それと最近はコーディングの速度を上げるように意識してる。コードの行数で測るのはどうかとも思うが、1番定量的に見れそうなのでメモしておく。

 

12/19 327行

12/22 289行

12/23 380行

 

まぁ、会議とか話し合いとかあるし、改修作業なので書いた分減らしてるからこの程度かな、と。何よりも迷わず、バグも無しに書けるようになりたいなぁ。

 

意識している事としては、

  • 集中力
  • タイピング速度の向上
  • コーディング前にロジックを整理する

 

他にアドバイス等あればお願いします。

 

以上です。

 

 

『来週の部会で新人のプレゼンあるから、、』

今日上司から、『来週の部会で新人のプレゼンあるから、それが新人賞の一次先行になるよ』と。

唐突でびっくりした。僕の会社には、その年一番の新人を表彰する文化がありそれが新人賞というものだ。もちろんそれを目指して1年頑張ってきた。最近は意識せず、ただ目の前の目標や業務だけを追いかけていた。だから今日唐突に新人賞のプレゼンを知らされて驚いた。

 

流石に新人の中で自分の立ち位置くらい、わかる。僕が感じているレベルとしてはまぁ、真ん中くらい。資格も人より多く取ってるわけでも無ければ、これといった成果も残せていない、と思う。

今日上司からプレゼンのことを告げられた時、悟った。

 

新人賞とれないだろう、と。

 

そして少し悲しくなった。別に勉学をさぼっていた訳でもないし、むしろ他より勉強した方だと思う。電車の移動中は本やブログを読んで勉強し、業務も遅くまで残って取り組んだ。休日の2日に1日はサーバーを立てたり、プログラムを動かしてみたりしていた。

それでも同期との差はそこまで縮めることが出来なかった。

 

志半ばで退職した同期で、親友が僕には1人いる。そいつに言った事が頭の中に過ぎる。

 

『新人賞取れんかったら会社辞めるよ。』

 

やっぱり才能無かったのかな、、、。

そう思ってしまうと辛いから、少しでも自分の事を慰めることにする。

まず、レベルたけーよ。同期と言っても4年、6年プログラム書いてた理系にそんな簡単に追いつけるわけない。むしろ、そいつらのレベルまで近付いた事を褒めて欲しいくらい。まぁ、実力主義の社会でそんな事言ってられんけれど。

次に、僕だって一定の成長と成果残した。新人賞を取るという意味では運は悪かった。3ヶ月やってきたiOSの開発は頓挫して無くなったし、その後未経験のWEB開発にうつった。慣れるだけで時間かかるのに、直ぐに成果なんて出せないわ。そんな中でも、もう2つの機能は実装できた。しかも今では、チーム内で一番ロジックが複雑な機能の開発をしてる。実装スピードもチームのメンバーにだんだんと追いついてきた。スピード感でいうと、メンバーの0.8倍くらいだ。システムの構成も理解してるし、派遣社員さんの質問にも難なく答える事はできる。スキルはこの3ヶ月相当に伸びた。伸び代でいうと同期の中でもトップレベルだと思う。

最後に、好きには敵わない、とほんとに思う。周りの同期と比べて思うのが、コーディングが、システムのアーキテクチャを考えるのが大好きで、僕はそこまで好きではないという事だ。やっぱり好きなものには勝てないと、今になって思った。

 

この半年の学びを纏めようと思う。

・モバイルアプリのUI設計をした。

・基本、詳細設計を作成した。

iOSで一機能開発した。(swift)

・小売業界の知識に詳しくなった。

・バーチャルマシンの構築、開発機環境の移行を行えるようになった。

・機能から逆算してDBを設計できるようになった。

・GITでのバージョン管理を行えるようになった。

JavaScriptPHP環境でWeb側の2機能を作成した。

・スコープを意識して、クロージャーや即時関数等使えるようになった。

jQuery,その他ライブラリを用いて開発を行えるようになった。

・同期、非同期の違いを理解して、機能を設計する事が出来るようになった。

・同じ処理を1つに纏めたりしてコードの軽量化を考えれるようになった。

DHCPFTP等サーバーの役割を理解出来るようになった。

・まじ、わんちゃん等の非ビジネス用語を使用しないようになった。

・決算書を大枠で読めるようになった。

基本情報技術者資格を取得した。

・自宅でLAN環境を構築して、raspberrypi でwebサーバーを立てて、簡単なアプリケーションを動かした。

phpフレームワーク、codeigniter を使えるようになった。

・ライブラリーとフレームワークの違いを説明出来るようになった。

・最近のフロントエンドの流行り(リアクト、アンギュラーとか)を知っている。

・シェルコマンドを叩いて簡単なネットワークの設定等できるようになった。

 

 

 

配属されて7ヶ月。僕の成長はこんなもんか、、と思う。来週から新人賞プレゼンが始まる。不安、憂鬱になっても仕方がないので今日も仕事をする。

 

以上です。

 

今日の良記事まとめ

qiita.com

javascriptのthisの概念を簡単に4種類に分けてくれた。読んだけど、半分くらいしか理解できなかった。。 

qiita.com

やっぱりもともとの概念理解しないとコード書けない。クラスベースとプロトタイプベースの違いを勉強しなければ、、、。

 

即時関数のメリットと主な用途|もっこりJavaScript|ANALOGIC(アナロジック)

これは本当にそう。しっかりとメリットを理解して使い分けないと!まあ、javascriptみたいにスコープ定義が曖昧だからこそのコードだけども。

 

VScodeをまだうまく活用できていなかったので、、、。英語の説明書読みますか。。

 

qiita.com

グローバル変数減らそうと思ってクロージャーに書き換えようとしたけど、いたるところに散らばりすぎて結局断念。うまい方法ないのかね、、const,letも使えないし、、。

 

developer.mozilla.org

これは良記事!しっかり読み込みまする!

 

以上。

土日はNode.jsにでも挑戦しようかな!

javascript脱初心者を図るための記事一覧

chuckwebtips.hatenablog.com

これによると僕は完全に初心者でした。。。

 クロージャーやアロー関数の勉強になった。スライドだから凄いわかりやすい!

qiita.com

 禁止事項とかが書いてあってわかりやすい。なぜ禁止されてるのか、等の理由があればなお良かった。

 

何にせよ、jsは最近本格的に勉強し始めたばっかりだしわかんない事だらけ。関数式と関数宣言、クロージャーとかアロー関数の上手い使い分けも出来てない状況。スコープの範囲もあまり見れていないし。(最近になってやっとconstの定数定義をつかうようになった笑)

 

引き続き勉強続けます!

煩雑化したコードを整理してみる

JavaScript の煩雑化したコードを整理する手段をまとめてみた。

現在はjQueryで直接DOM操作を行なっている。ロジックが複雑化するほど、1つの関数内の記述が長くなったり、変数が多くなる。その頃にはもう、頭の中がぐちゃぐちゃになってしまう。ここでは、新卒エンジニアがその煩雑化したコードを整理するために実践している事を書いていく。

 

・紙に書く

とにかく何でも良いから紙に書いてみる。不思議と考えがまとまって何をすれば良いのか分かってくるようになった。ちなみに僕は4日に一冊のペースでノートを消費している。

 

・コーディングする前にロジックを日本語で書く

これも有効な手段だと思う。特に僕はコーディング力ゼロだし、書く前に日本語でロジックを整理しないと思考が停止してしまう。例えば、あるボタンを押した時の制御は以下のようになる。

ボタンを押す

選択された店舗を変数に格納する

その配列を回して店舗の種類の一致判定を行う

一致していなければエラーメッセージを格納する

格納されたエラーメッセージを表示する

処理を抜ける

 

・コードを短くする

時間の余裕があればこれもやるべきだと思う。ここで言うコードを短くするとは、余分な変数を使用しない、関数の再利用性を高める、繰り返し文は纏める等ということ。特に関数の再利用を図ることはコードを簡略化する有効な手段で、僕が書いたコードを見返す度に簡略化できる箇所が見つかる。何度も考えが変わりながら書いてきたコードはそんなもので、修正が非常に大変だ。なので可能であれば機能を画面ベースまで落とせる設計をしてから実装に移るのが望ましい。

 

以上。

 

ド文系新卒エンジニアが考えるキャリア論【前半】

ド文系新卒エンジニアが考えるキャリア論

今回の記事では、ド文系の新卒エンジニア(僕)のこれからのキャリアに関してと、そのために意識している事を書こうと思います。

ちなみに、技術力、文章力は非常に低レベルなので寛大な心を持っている方のみ以下を読み進めていってください。あと偉そうに書いていますが、ご了承ください。もし誤字脱字、間違った事を言っていたらお気軽にご指摘してください。

 

今僕はwebアプリケーションエンジニアとして社会人一年目のキャリアを過ごしています。今後数年システムエンジニアとしてキャリアを積んでいくわけですが、どうやったら価値のあるエンジニアになれるのか、自分の考えを書いていこうと思います。ちなみにここでは、何を実践するとどのランクのエンジニアになれるか勝手な想像で書いています。ランクはC〜Sまで4段階で分けています。*1

※ここでのランク分けは独断と偏見で決めています。まあ年収で図ると価値判断が分かり易いのかなと思ったので、C(~500万)、B(500~700万)、A(700万~1000万)、S(1000万~)と分けました。

 

まずは、エンジニアとしてモノの仕組みを理解する必要があります。ここでのモノの仕組みとは、例えばPCってどうやって動いてるの、インターネットってどういう仕組みで繋がっているのとかです。そして、今の僕にとってはそれがシステムにあたります。

 

1、システムがどのように動いているか理解する

会社ではwebアプリケーションエンジニアとしてがっつりコーディングをしています。そこで気をつけていることが、そのアプリが動いている仕組みを理解しようとすることです。日々の業務を何の疑問を持たずにこなすのではなく、例えば僕はPHPのデバックにxDebugという拡張モジュールを使用しているのですが、その中でも一つ掘り下げて「このデバッガってどうやって動いているんだろ?」と疑問を持ち、調べ理解することが大切だと考えています。フレームワークやライブラリが変われど、大きな仕組みは変わらないはず、と思っています。それこそ、毎日のように、googleで「○○○ とは」で調べたり、画像検索で図解してるものを探してノートに書き写したりしています。あとは、ブログ書いたり、実際に自宅でサーバー立てたりネットワーク構築したりですね、、。多分これを実践し続ける事で並弱のエンジニアにはなれるような気がします。

※これを実践してエンジニアレベル C

 

2、情報のキャッチアップは素早くinput&output

次に、何よりも新しいサービス、ニュースなどはできる限り早くキャッチアップしようと心がけています。可能ならば実際使ってみます。最近興味を持って勉強として始めたものは、ビットコイン(仮想通貨)の運用やrasberryPi3でのセンサー系の電子工作等(少し前だとUberEats、かなり前だとAirbnb等試してみた)。

bitcoin.org

https://www.ubereats.com/tokyo/

www.airbnb.jp

情報収集はqiitaとかブログとかまとめサイトとかです。ごく在り来たりなものばかりですが、以下に示しておきます。

qiita.com

gigazine.net

newspicks.com

itpro.nikkeibp.co.jp

また情報をinputするだけでは意味がないと僕は思っています。仕事に通じるように持っていく、例えば実際使用してみたフレームワーク等をプロジェクトに導入してみるとか、ブログやLTで発表してメンバの意識や知識の底上げを図るとか。。。。outputに使用しているツールは以下に示します。※これを実践してエンジニアレベル B

やっと東京でも飯を食っていけるようになれるはず、、。

rinatozz.hatenablog.com

www.slideshare.net

 

ド文系新卒エンジニアが考えるキャリア論【前半】終了

 

 

*1:エンジニアレベル C<B<A<S