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

初学者

プログラミング未経験の方のための
プログラミング学習講座を作成しました

その名も
「1時間で学べるPythonプログラミング」


講義動画はこちら




この講座は初学者の方が
短時間でPython言語を学ぶことのできる
プログラミング学習用の講座です

プログラミングが分からないない方は
Python言語を通じて
プログラミングの基礎を学習できます

講座は動画に加えてGoogle Colabを用いて
手元でコードを動かすことのできます
コードがどう動くのかを確認をしながら
進めていってください

資料はここ:
Google Colabの資料


00:00 1.はじめに
02:13 2.導入方法
02:55 3.GoogleColaboratoryの操作方法
06:19 4.Pythonの計算の基礎
27:27 5.Pythonの制御文
42:14 6.Pythonのクラス
49:11 7.Pythonのその他構文
64:30 8.まとめ

なおPythonチートシートを作成しています。

コーディングに迷った際に役に立ち

WEB検索する時間を無くして

作業時間を効率化できます。

note
Pythonチートシート


 

今回はKaggleの
マーケティング用データを
覗いてみました。

解説動画はこちら



マーケティングデータを使ってデータ分析してみよう


kaggle のサンプルデータを用いて分析をしてみよう


生成AI系の登場で、単純なプログラマーや
開発系エンジニアの需要が急落しています。

でも、マーケターの需要はまだ有ると思うので
データ分析とかが出来るようになった方が
仕事の幅が増えるんじゃ無い?

ということで、早速マーケティング用の
分析手法を体験するコードを動かしてみましょう。

ここから先は
Google Colab で実行する事ができます。
試したい方は、colabでコードをコピペして
試してみてください。



データセットのダウンロード先

Kaggleのリンク

こちらのサイトからダウンロードできます
Google アカウントなどでログインが必要ですが
ダウンロードしてCSVファイルを手元に保存してください。




サンプルデータの概要

架空の企業による
架空の広告キャンペーンの出稿データのようです


    企業情報: 複数の架空企業
    •    キャンペーン形式: メール・SNS・インフルエンサー・ディスプレイ広告・検索広告など
    •    ターゲット層: 年齢・性別で区分されたオーディエンス
    •    チャネル利用: SNS、YouTube、Google Ads、メールなど複数可
    •    成果指標:
    •    Conversion Rate(CVR):成果への転換率
    •    Clicks , Impressions(CTR):クリック・表示回数
    •    Acquisition Cost , ROI:獲得単価・投資利益率
    •    Engagement Score:1〜10段階のエンゲージメントスコア
    •    時系列データ: キャンペーン実施日あり
    •    地理情報・言語: 主要都市と多言語対応(英・西・仏・独・中)




ライブラリのインポート

データを読み込みするには以下のライブラリを
先に読み込みする必要があります。

pandas : データフレームというデータ型を扱うためのライブラリ
seaborn : 詳細な可視化をするためのライブラリ
matplotlib : 可視化用の基本ライブラリ

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt


データの読み込み

ライブラリを読み込みできたら
次はデータの配置です。

ダウンロードしたファイルをデータ置き場に置く

colabのメニューの左側に
「フォルダ」マークがあるので
フォルダを開いて、その中にドラッグで
データを配置できます。


配置できたら次のコードで
データを読み込みしましょう。


CSVファイルを読み込みしてPandasデータフレームにする


import pandas as pd
データフレーム変数名 = pd.read_csv(ファイルパス)

# サンプルデータの読み込み
import pandas as pd
file_path = "marketing_campaign_dataset.csv"
df = pd.read_csv(file_path)

データのプレビューは次のコードです
# データのプレビュー
df.head(3)


データを加工する

データ分析では正しい形にデータを補正する必要があります。

今回は下記のデータ加工を行います。

1.数値になっていないカラムを数値に変換
2.不要な数値IDカラムを文字列に変換

.astype(データ型)
.replace("正規表現検索" "変換後の文字列", regex=True)
.str.replace("変換前の文字列","変換後の文字列")

# データの加工を行う
df["Campaign_ID"] = df["Campaign_ID"].astype(str)
df["Acquisition_Cost"] = df["Acquisition_Cost"].replace("[\$,]", "", regex=True).astype(float)
df["Duration"] = df["Duration"].str.replace(" days","").astype(float)


今データに無い指標を作る

データから、別のデータを作成することもできます。
今回のデータにはCTR,CPAの項目がないので
新たに作成してみましょう。


・クリックレート(CTR)
クリック数 / インプレッション数

・顧客獲得単価(Cost Per Acquisition)
獲得コスト / クリック数

# 新しい指標カラムを作成する
df["CTR"] = df["Clicks"] / df["Impressions"]
df["CPA"] = df["Acquisition_Cost"] / df["Clicks"]


数値データの統計量を見る

pandasデータフレームでは
数値型の統計量を見るメソッド describe があります。

これで数値カラムの統計量を算出してみてみましょう。
# 統計量を算出する
df.describe()


ここから、データ分析用のサンプルコードを見ていきましょう
(おさわりだけが)



1.数値データをヒストグラムにする

Seabornライブラリの histplot でヒストグラムを描画する

# 数値型のカラムのみ抽出
numeric_cols = df.select_dtypes(include='number').columns

# カラムごとに個別プロット
for col in numeric_cols:
    plt.figure(figsize=(8, 4))
    sns.histplot(df[col], bins=30, kde=True)
    plt.title(f"Histogram of {col}")
    plt.xlabel(col)
    plt.ylabel("Frequency")
    plt.tight_layout()
    plt.show()



2.チャネル別パフォーマンス分析

チャネル別でConversion_Rate,ROI,Acquisition_Costを集計して
matplotlob で棒グラフで描画する

# チャネルごとの平均CVR・ROI・Acquisition_Costを集計
channel_stats = df.groupby("Channel_Used")[["Conversion_Rate", "ROI", "Acquisition_Cost"]].mean().reset_index()

# 可視化(棒グラフ)
plt.figure(figsize=(12, 5))
sns.barplot(data=channel_stats, x="Channel_Used", y="Conversion_Rate")
plt.title("Chanel AVG Conversion Rate")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()


3.キャンペーンタイプ別のROI比較(箱ひげ図

Seabornライブラリの boxplot で箱ひげ図を描画する

# ROIの分布をキャンペーンタイプごとに比較
plt.figure(figsize=(10, 6))
sns.boxplot(data=df, x="Campaign_Type", y="ROI")
plt.title("Campaign_Type ROI distribution")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()


4.ターゲット × セグメントごとのCVR比較

Seabornライブラリの heatmap でヒートマップを描画する


# ピボットテーブルで平均CVRを可視化
pivot = df.pivot_table(values="Conversion_Rate", 
                       index="Target_Audience", 
                       columns="Customer_Segment", 
                       aggfunc="mean")

# ヒートマップで表示
plt.figure(figsize=(12, 6))
sns.heatmap(pivot, annot=True, fmt=".2f", cmap="Blues")
plt.title("Target ×Segment Conversion Rate")
plt.tight_layout()
plt.show()


5.CTR・CVR・CPAの統合評価

Seabornライブラリの scatterplot で
散布図を描画する


# 散布図でCTRとCVRの相関を視覚化(CPAでサイズ分け)
plt.figure(figsize=(10, 6))
sns.scatterplot(data=df, x="CTR", y="Conversion_Rate", size="CPA", hue="Channel_Used", sizes=(20, 200), alpha=0.7)
plt.title("CTR vs Conversion Rate(dots=CPA)")
plt.tight_layout()
plt.show()


おわりに


マーケティング活動もプログラミングができると
より大量のデータ量を扱え、もっと多彩な分析手法も
取り入れる事ができるようになります。

もっとマーケティング X プログラミング を学びたい方は
この先の講座を検討中につき、それをお待ちください!!!

それでは。

 

今回は主にPython初学者の方のための
ハマりポイントの解説動画です


解説動画はこちら



Python言語は他のプログラム言語に比べ
比較的分かり易く簡単で、学ぶのに時間が掛からない言語です

ですが、初めての方だと
どうしても引っ掛かりやすいポイントが有るので
そこを重点的に解説していきます

次のコードを実行するとどうなるでしょうか?
答えや解説は解説動画の方をご覧ください


文字列型のポイント

### 文字列のインデックス代入

a = "12345"
a[3] = "a"
print(a)


### 文字列のスライス操作

a = "abcdefghi"
print(a[::-3])


### 文字列の展開とセパレーター

a = "abcde"
print(*a , sep=' a ')


小数点型のポイント
### 小数点型の定義

a = .1_2_3
print(a)


タプル型のポイント
### タプル型の引き算

a = (9 , 8)
b = (1 , 2)
print(a - b)


### タプル型の代入

a = 123 , 
print(a)


リスト型のポイント
### リスト型の代入と参照

a = [1,2,3]
b = a
b[0] = 99
print(a)


### リストのコピー

import copy

a = [[9, 2], [5, 8]]
b = copy.copy(a)
b[0][1] = 12345
print(a)


辞書型のポイント
### 辞書型への代入

a = {}
a.add(1)
print(a)


### getメソッド

a = {1:2 , 3:4}
print(a.get(9))


IF文のポイント
### None or 0

if None or 0:
    print(1)


FOR文のポイント
### FOR文後の変数参照

i = 10
for i in range(5):
    pass

print(i)


関数のポイント
### スコープ外の変数操作

a = 3

def sample_def():
    global a
    a += 5
    return a

print(sample_def())


### try - finally - return

def sample_def():
    try:
        a = "おっぱい"
        print(a)
        return a
    except:
        print(a * 2)
    finally:
        print(a * 3)
    
print(sample_def())


どれもこれも
癖の有るコードになっています

ハマりやすいポイントでもあるので
結果がどうなるか
分からない部分は
確認しておくと良いと思います

それでは


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

解説動画はこちら


 
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代以上の未経験ハードルは
高すぎるかなと思うので
転職はお勧めできません。

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

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

はいどうも乙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に劣るかもしれませんが

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


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

参考になれば幸いです。

それでは

このページのトップヘ