乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

学習

最近話題になっている
デジタルトランスフォーメーションについて
超ざっくり解説です。

解説動画はこちら



さてまず
デジタルトランスフォーメーション
とはなんでしょうか?

言葉の定義は
デジタルトランスフォーメーション
(DX:Digital transformation)の略

日本語だと「デジタル変革」が
近いかなと思います。

意味としては

企業がビジネス環境の激しい変化に対応し
データとデジタル技術を活用して
顧客や社会のニーズを基に、製品やサービス
ビジネスモデルを変革するとともに
業務そのものや、組織、プロセス
企業文化・風土を変革し
競争上の優位性を確立すること

引用:DX推進指標とそのガイダンス(経済産業省)

英語圏だと trans- を X と略記するから
DXなんですって!!!!

知らんかった
DTにならない理由はコレでした。

デジタル化の段階

DXにも段階があるようです。

デジタル化:紙媒体 
→電子書籍化(物やサービスの一部を電子化)


デジタライゼーション(Digitalization)
→ストリーミングやサブスクリプション制の導入

ビジネスプロセス全体をデジタル化して
新たな価値や利益を生み出すことを
デジタライゼーションと言うそうです。

DXはその先にあります。

何で必要なの?

経済産業省が出している理由だと

あらゆる産業において、新たなデジタル技術を
利用してこれまでにないビジネスモデルを
展開する新規参入者が登場し
ゲームチェンジが起きつつある。

こうした中で、各企業は、競争力維持
強化のために、デジタルトランスフォーメーションを
スピーディーに進めていくことが求められている

引用:「デジタルトランスフォーメーションを
推進するためのガイドライン」(経済産業省)


つまりは
・競争優位を確立するため
・いい感じでデジタル技術を活用する
・付加価値を生み出す

と言うことだと思います。

キーとなるデジタル技術

4つのデジタル技術が重要だそうです。
・クラウド
・ビッグデータ
・モビリティ
・ソーシャル


DX実現のためにはどうすれば良いの?

そもそものDXを実現させるには
次の二つが重要だと考えています。

・DX推進のための専門組織、専任者の設置
・業務の仕組み、システムの刷新

そして、既存のビジネスモデルが
通用しなくなってきているので
そもそものビジネスモデルの見直し
と言う点もあるかと思います。

立ちはだかる壁

DXについて.007
2つの問題があります。

まずはレガシーシステム
そしてもう一つがレガシー人材です。

レガシーシステムの方はまだ楽です。

システム改修を行う
新しいシステムを作る

コレで対応出来るわけで
お金と時間があれば出来ますね。

問題はレガシー人材です。

昨今のデジタル化について来れない人
40代以上に多くいます。

そして最も問題になるのは
デジタル化を阻害しようとする人たちです。

はんこ使いましょう とか
FAX使いましょう とか
言っちゃう人たちです。

本来必要なのはデジタル化と
それによって生まれる業務効率化
より付加価値の高い業務の創造です。

壁への対処法
DXについて.008

抵抗勢力によってそれが進まないのであれば
全員クビにするか

全く新しい組織を出来る人たちだけで
作ってそこに乗り換えるのが
良いのかなと思います。


海外の成功事例

こう言ったDXをいち早く
実現している会社があります。

Adobeと言う会社です。
DXについて.010

現CEOはシャンタヌ・ナラヤン氏

元々はIllustratorなどの
デザイン系アプリケーションを
販売する会社でした。

それを2012年にパッケージ販売を辞め
現在はadobe creative cloudと言う名前で
サブスクリプションでの
提供に切り替えています。

ここからAdobeの躍進が始まります。
おそらくこの決断には社内の仕組みを
相当変える必要があったと思われます。

今までにない価値を提供する
仕組みを1からつくり上げるには
相当な熱量が必要です。

DXについて.010

現在ではAdobe Marketing Cloudのような
マーケテイングツールも提供し
クリエイティブの作成から集客
EC支援まで幅広く事業展開をしています。

Adobe Senseiに代表される
AIツールも提供しており
最新のデジタル技術をいち早く
市場に投入している企業だと思います。

2012年の切り替えから
一度は売上高などは下がりましたが
そこからは鰻登りのようですね。

こう言ったプレイヤーが存在している以上
日本は世界と戦わなければいけません。

Adobeはまだまだ食指を伸ばしていきます。
日本の企業はただ傍観しているだけでは
世界企業に対抗する事は出来ません。

そのためには変革が必要です!!!

今ならまだ間に合います。
でも10年先では遅すぎます

変化を恐れずに
立ち上がるなら今なんです!!

いつDXするの???
今でしょ!!

って事で林先生の真似をして
終わりたいと思います。

それでは



今回は
未経験からエンジニアに転職する
ロードマップについてです。

解説動画はこちら


 
1.エンジニアになりたいかどうか

まず一番最初に考えるべきは
エンジニアになりたいかどうかですね。

ぶっちゃけ日本のエンジニアは
そこまで給与が高くないのと
扱いも良くないです。

お金を稼ぎたいなら
営業職をお勧めします。

でもそれでもエンジニアになりたいと
願うなら、この動画やブログを
見ていただいて何らかの参考に
なればと思います。

ここではエンジニアに
転職したい人のための
ロードマップについて
考えていきます。


エンジニアになるためには
何が必要なのか

どのような戦略を取るかを
考えていきたいと思います。


2.どのようなエンジニアを目指すか

まず、ここでのエンジニアとして
想定しているのは
WEBアプリケーションの
開発エンジニアです。

職種としては
フロントエンド
バックエンド
などと呼ばれている
職種が対象となります。

3.未経験者と言う名のハードル

まず最初のハードルは
開発現場で求められているのが

経験者

であると言う事です。

そもそも未経験の人を
開発現場が求めていない時点で
詰んでいます。

つまり経験を積まないと
いけないわけです。

一般的な経験者の多くは
新卒で開発系に行った人です。

未経験では開発現場に行けないのですから
新卒でしか未経験で開発に関わるチャンスは
滅多にないことになります。

エンジニア転職を目指す人にとっては
ここに大きなハードルがあるわけです。

4.自分が未経験から転職した方法

自分は開発未経験から
うまく転職することに成功しました。

その経験から行くと
未経験から経験者に
シフトする必要がありました。

まず最初のステップとしては
いきなり開発現場にプログラマーとして
入るのはハードルが高いので
テスターのような職種に
派遣で入ることから始めました。

と同時にスクールに通って
エンジニアに必要な知識を
身につけることにしました。

まずテスターからやれることを広げ
出来ることを増やしていきました。

そうして
テスターから時間をかけて
プログラマーの方へ
シフトすることが出来ました。

そうなれば経験者になるので
次の現場にも入りやすくなります。

そこから目当ての会社に
派遣で入り、契約社員を経て
正社員試験に合格

晴れてエンジニア転職を
することが出来ました。

5.エンジニアに必要な知識

当然、エンジニアになるためには
様々な知識を身につけておく必要があります。

エンジニアとして活躍するのに
必要な知識としては
次のようなものがあると思います。

・プログラム言語の知識(PHP,Java,Python,Javascript)
・環境構築の知識(OS、IDE、Git、Docker、ミドルウェア)
・データベースの知識(DB構築、操作、設定)
・サーバー作業の知識(Linuxコマンド、操作、設定)
・通信やセキュリティ、テスト、開発手法、クラウドetc

結構必要なものは多いです。
コレらを満遍なく身につけて
ようやくエンジニアとして
仕事をこなすことが出来ます。

6.未経験かつ知識0の場合

もし、未経験かつ知識0で行くとしたら
自分でWEBアプリを作って公開してみるのが
良いと思います。

何が必要になってどうすれば良いのか
調べられる力を付け
エンジニアリングに必要なものを
全て身につけられたら

WEBアプリ公開までいけると思います
それが自分のポートフォリオとなるわけです


数ヶ月間死ぬ気でやる覚悟が必要ですが
ここまで一人でこなせるなら
未経験でも受かる確率が高まるでしょう

7.まとめ

まとめると
011

こんな感じになるかなと
思いますね。

エンジニア職はうまくいけば
スキル職であるので
一生仕事に困りません。

転職するハードルは高くても
目指す価値はあります。

ただし、未経験が通用するのは
20代までだと考えます。

雇う側のことを考えれば
30代以上の未経験ハードルは
高すぎるかなと思うので
転職はお勧めできません。

それでも目指したい方がいれば
当方は応援しますので
コメントいただければ
アドバイスさせて頂きたいと思います。

今回はここまでです
それでは。

仕事に使えるビジネスフレームワークを
動画にしてまとめてみました。


動画はこちら


Noteに画像をまとめています。
参考にお使いください。



内容としては
・問題解決
6W2H
ロジックツリー
マトリクス

・分析
PEST分析
ファイブフォース分析
SWOT分析
パレート分析
4P分析
コアコンピタンス分析

・アイデア出し
マンダラート
オズボーンのチェックリスト
ジョハリの窓


・ビジネス
ビジネスモデルキャンバス
KPIツリー
STP

ビジネスフレームワークは多々ありますが

実際に仕事で使えるのは
数が少ないのではないでしょうか?

よく使うものとしては
仕事の優先度を決めたりするマトリクス

アイデアが出せない時に無理くりひねり出す
オズボーンのチェックリスト

顧客案件の対応時には
競合分析なども多いため
外部環境を整理したり
マーケティング方針を示唆したり
ビジネスモデルそのものにも言及したりします。

そんな時には
ちょこっとフレームワークにたよりますね。

フレームワークを使うと
仕事の効率化ができて
非常に便利な時があります。

是非参考にしてください。


はいどうも乙pyです

今回は
プログラミング初学者が押さえておくべき

プログラム言語の流行として

Githubというサービスが昨年公開した
プルリクエストの
プログラム言語ランキングを
お送りしたいと思います。

ちなみにプルリクエストとは
Githubで開発している開発者が
プログラムを修正しましたぜ!!
っていうのを知らせることです。

このリスエスト数を追うことで
世の中のプログラム言語の流行が分かるというわけです。


動画はこちら



さて早速10位から4位までを発表です。

10位 : Ruby
09位 : C言語
08位 : Bash Shell
07位 : TypeScript
06位 : C#
05位 : C++
04位 : PHP

10-4位までを見てみると
C系は多く入っていますね。

やはりCはプログラムの基本的な言語という位置づけで
必ず10位には入ってきます。

ゲーム開発では
UnityがC#
UnrealEngineがC++なので
スマホアプリの開発には
欠かせ無いものになって来ています。

自分も転職のために
一時期Unityでクソゲー開発に邁進していた時期があり
C#をガリガリ書いていました。


RubyやPHPは
WEBサイトを作るのに
人気のある言語で日本でも多くの会社で
採用されています。

開発者であればLinuxなどのサーバーで
作業をすることも多いと思うので
Bash Shellも当然使っているはずなので
ランキングに入って来ています。


さてここからはトップ3です!!!



03位 : Python
プルリクランキング.009

Pythonは近年での人気が急上昇している言語です。

特に機会学習やAI開発では
この言語の学習者がほとんどで
学んでいないエンジニアがいないです。

他にもWEBサイトやブロックチェーンなどの
アプリケーションを作ることもできるので
初めて学ぶには最適な言語かなと思っています。

こちらで無料講座も開いておりますので
ご参考にしていただければと思います。

Python講座はこちら


02位 : Java
プルリクランキング.010

昔から人気があり
幅広いエンジニアが採用している言語の一つです。

C,Python,JavaはGoogle三大プログラム言語なので
ここを押さえておくのは必須だろうと思います。

近年ではAndroid開発で多く用いられているので
2位に食い込んでいるのかなと思いました。

そして
栄えある流行トップの言語は・・・


01位 : JavaScript
プルリクランキング.011


Javascriptが去年の人気1位だったようです。

ちなみに2位のJavaとは響きは似ていますが
似て非なる言語です。

インドとインドネシア位違う言語です。
なぜこんな名称にしてしまったのだろうか・・・


WEBサイトでは
必ずJavascriptが動きますし
インターネットの世界では外すことの出来ない言語ですね。

近年ではNode.jsなどでサーバー側でも動きますし
Reactなどのフレームワークを用いた開発も盛んで
フロントエンドの開発と言えば
Javascript一択です。

自分はサーバーサイドの言語がメインであるので
UI開発はそこまでやりませんが
簡単なコードを書いたりは出来ます。

3つ巴オセロのコードは
Javascriptで作りましたし

中堅のエンジニアであれば
大体の人は押さえているのでは無いかと
思います。


さて
これからプログラミングを学ぼうと思っている人は
どうやってプログラム言語を選べば良いのでしょうか?

まずは
目的を決めることですね。

何をやりたいかで
学ぶべき言語を決めるのが
良いのではないでしょうか。

あくまでも
プログラム言語は
目的を達成するための手段であって
ただの道具にしか過ぎません。

ですので迷うのであれば
言語は目的を持って決めれば良いのです。


ざっくりと
目的別でプログラム言語を分類してみると

ゲーム開発なら
UnityがC#
UnrealEngineがC++

WEBサイト(WEBアプリ)開発なら
Javascript , PHP , Java , Python

アンドロイド開発とビッグデータ周り
Java

AI , 機会学習なら
Python一択です。



特に目的がなく
なんとなくプログラミングを覚えたい方であれば
PythonかJavaをお勧めします。

Rubyはあまりお勧めしません。
言語別の求人を見ても
求人が少ないからです。


Javascriptは
あとあと必然的に覚えることになるかと
思うので最初に選ばなくても
いずれはやることになるかと思います。

自分はこの言語ランキングのうち
RubyとTypeScriptをのぞいた
8つの言語に触れたことがありますが

メインで使っているのは
現在はPythonです。

自分がプログラミングを始めた時は
Javaを学んでいました。

それでJavaならある程度なんでも
書ける所までやり、
その後Pythonに移行しました。

まずはメインで書ける言語があると
他の言語への移行はスムーズに進みます。

基礎が出来ていれば
他のプログラム言語の
学習コストが大幅に下がるため
まずは一つなんでもできる言語を
身に付けるのがいいかと思います。

一番驚いたのは
Pythonはコードを書く量が
圧倒的に少なくなるので
コードを追いやすく
初学者にはとても向いているのでは
ないかと思っています。

Javaと同じコードを書いても
10から3分の1程度のコード量で済むのと
学習コストが圧倒的に少なかったです。

求人で見るとPythonの求人は
玄人向けの求人が多いので
その点ではJavaに劣るかもしれませんが

どのみちエンジニアであれば
複数の言語は使えて当たり前かと思うので
今ある仕事を変えたい方は
その目的に合った言語を学ぶのがいいかと思います。


ということで
こういった言語の流行を押さえておくと
これからプログラミングを学びたい方の
プログラム言語の選択に一役買うのでは
無いかと思います。

参考になれば幸いです。

それでは

ディープラーニングを活用した
AIの社会実装事業を展開する株式会社ABEJAの主催する
カンファレンスイベント

ABEJA SIX 2019

こいつに行ってきました。

場所は品川駅徒歩五分くらいのところにある
グランドプリンスホテル新高輪の国際館パミール

会場には12:40分くらいに着いたものの
かなりの人で受付もすっごい並ぶ

基調講演はサテライト会場だったのだが
これもほぼ満員

まず最初は
株式会社ABEJA 緒方 貴紀 氏 

ABEJAのこれまでの振り返りと
今後のロードマップや展望について

2012年のディープラーニングの
ブレイクスルー以降
世界中でDL周りの研究開発が進み

今では主要な大会社では
ほぼほぼ実装が済んで
サービス展開されてる感があるが

様々な会社向けにAIの実装を手助けする
プラットフォームという印象のABEJA PLATFORM
を展開してますよ、ということだそうです。

近年のトピックの話

いくつかのワードが紹介された


イメージネットの分散学習による高速なモデルの生成
分散学習の民主化がなされたとのこと


3億枚の画像と512個のGPUで作られた
敵対的生成ネットワークだとか
生成された画像を見ても
区別がつかないな



2018年10月11日にGoogleからArxiv公開された論文で
汎用言語表現モデルだそう。

文中の単語の穴埋め問題などが解けるとか
自然言語処理の
デファクトスタンダードになるそう。

最近はこういうトピックが
ありましたとのことでした。

ここら辺はgithub にコード類も公開されているらしいので
情報はすぐ手に入りそうですね。

ABEJA PLATFORMでは
1.データ取得
2.データ蓄積
3.データ確認
4.教師データ作成
5.モデル設計
6.学習
7.評価
8.デプロイ
9.推論
10.再学習

ここら辺をサポートするよう
システム化したんだそうです。

いろいろ機械学習をする上では
手間のかかるところ多いですね。

学習はあっちゅうまだけど
データの整備と前処理で
死ぬほど時間かかってますから
それが軽減されると仕事は捗るよねーー。

リリースから6年ほど経つみたいで
現在では

600アカウント
データレイク 10TB
データセット170万
トレーニング 1万ジョブ
モデル500モデル 2千万バージョン
4000を超えるエンドポイントが
存在しているのだとか

うーーん、かなりのボリュームです。

スポンサーに
AWS , GCP , NVIDIA
とあるのでここら辺のクラウドやGPUで
達成されているのでしょう。

気になったのは
アノテーションの部分

ABEJA PLATFORM ANNOTATION

恐らくAI開発にとっては
アルゴリズムは民主化され、誰でも
同じアルゴリズムで学習や推論が行えるようになっているため

AIの差別化がはかられる部分としては
学習データの質とボリュームの部分での競争になる。

ゴミデータが大量に有っても
結果ゴミだし
そうなると質の高い学習データを揃えるのには
それなりのコストがかかる。

それをサポートするツールということで
UIも素早くアノテーションでき使い勝手がすごく良さそう。

これはAI関連サービスの中でも
いい所を突いたサービスだと思われる。

これにより、人間の目で補正をすることで
より質の高いデータを素早く生成できると・・・

画像や動画だけでなく
テキストや単語、文章へも対応と
よく出来ています。

ABEJA インサイト for リテール
店舗内行動のダッシュボード化
行動の定量化とデータドリブンな経営の支援をするためのツール

日々10TBトラフィック解析
700店舗のインストール
2億人のビジターを計測ということで
すでに我々もトラッキングされているでしょう。

雑貨、アパレル、商業施設の導入が多い。

顔認証によるリピート推定と
TOFセンサーによる店舗トラッキングの様子が
なかなか印象的だった。
店舗内回遊はこんな風に捕らえられているのね。


今後のロードマップ

データサイエンティストの不足で
初期検証を行えないというニーズに対して
初期検証の支援を行うmlaas
というのを出す?そうです。


あとは
アベコインとかいうものを作って
会場を巡ったりするともらえたりするそう。

深センへのツアーでの
キャッシュレス社会の体験をヒントに
コインを作ったそうで
今後このコインでいろいろ実験するそうです。

ここまでが基調講演



株式会社ディー・エヌ・エー 
AIシステム部 副部長
内田 祐介 氏 


DeNAの事業や組織、AI関連の研究成果の話

DeNAではkaggler制度があり
kaggleの成績が社内にも反映されるそうで
高成績を残せると、労働時間を多くkaggleにさけるそうです。

kaggleのメリットとしては
1 問解くだけで
1案件回した時と同じくらいの学習体験と
様々なお題に対応するために多様な手法、アプロート方法を
学ぶことによるスキルアップの効果が大きいということでした。

まあ、懸賞金付きのやつとかは
リクルーティングにも使われているわけで
kaggleマスターを抱えるているという
ブランディング効果も見込んでいるのだとか。

これはkaggle大好きな皆さんは
DeNA行くしかないですね。

DeNA社内は
データサイエンティスト
MLエンジニア
インフラエンジニア
AIエンジニアがいて
それぞれ作業分担されている組織構造

AIの検証、プロト開発から実装まで
行える体制が整っているのは大分強いですね。

DeNAでは
様々な事業基盤があり
そのなかでもAI開発が進んでいるのが
オートモーティブ事業

交通事故低減に向けた
AI技術活用の取り組みをしているだと。

レーン検出と危険運転察知アルゴリズムの開発
物体検出や消失点の計算
3D地図を用いたパスプランニング

自動運転系の技術は結構奥深いですよね。

次にゲーム事業

「逆転オセロニア」

におけるユーザーの離脱防止策についてのお話

ゲーム初期に離脱してしまう原因として
ゲームのデッキの組み方が分からないとかが有り、
おすすめデッキを導入したら比較的離脱が防げたと。

こういった序盤のサポート機能を追加する部分で
いろいろデータ分析と検証を進めているそうです。

最後が
アニメの生成技術への取り組み

GANを用いて
アニメのコマとコマの間を生成し
ぬるぬる動くように
中間コマを作ったのだとか。

従来のGANでは全身を作るのが難しかったが
パーツごとに少しづつ作ってゆく手法を取り
徐々に小さな画像からつなげるようなアプローチで
画像生成しているそうです。

確かにヌルヌル動きますね。


次の講演は
株式会社サイバーエージェント 
AI Lab Research Scientist
山口 光太 氏 


機械学習による広告クリエイティブの制作支援と生成

まあ同業者なので
同じようなことやってます。

デジタル広告は
マス広告と違って、同じ素材、同じ図柄ではなく
一人一人にカスタマイズした広告であることが求められる。

広告バナーそのものを
どれだけクリックされるのかを
事前予測して作ることができるとか。

手法としては
広告の画像そのものと
広告の配信条件を学習データとして
クリック率を出す単純な回帰のモデルを組む

これにより配信前に
ある程度の品質保証ができ
適切な入稿対象の選択と結果予測が可能になると・・・

まあ
みな考えることは一緒ですね。

面白かったのは配信メディアで
クリックに効く要素が違うということ

FBは画像やテキストの品質
TwitterとLINEは広告の配信設定だったと。

あとは機械学習のモデルも
画像とかを使わないのであればDLを用いずに
デシジョンツリーなどの方が結果が良いとか
逆にDLが効果を発揮するのは
高次元のデータを取り扱う際だとか。

ここら辺も広告業界では
共通認識ですね。

こういう予測を元に
クリエイティブ制作の支援として
ストック素材の画風変換
バナー人物の自動差し替え
レイヤーの配置予測や
キーワードの生成

などを行っているそうで
クリエーターの作業軽減につながっているそうです。

やはり、同じ業界だと
同じデータで同じ手法に収束するのだなーと
改めて感じた1日でした。


明日も開催されますが
行けないかなーー・・

松尾豊先生の講演は聞きたい。

このページのトップヘ