【感想】udemyでフルスタック・Webエンジニア講座を購入した話【継続中】
はじめに
趣味でプログラミングをしていますが、副業にランサーズやクラウドワークスといったクラウドソージングを利用することができると見かけました。Web開発を学んでさらに副業にできたらいいじゃん!と思ったのでWeb開発の勉強をしてみることにしました。
調べてみるとudemyというサイトのオンライン講座なら幅広く学べそうだと分かったので購入してみることにしました。
そもそもudemyって?
「udemy(ユーデミー)」は個人が先生となってオンラインで講座を公開、販売できるサービスです。 学びたい人は、公開された講座を購入し、オンラインで動画を見ながら学習を進めることができます。 元々はアメリカ発祥のサービスのようですが、日本語の講座も数多く公開されておりたびたびセールもされています。
Webエンジニア講座について
購入した講座はこちらです。
https://www.udemy.com/share/1000IwCUMYcFdVQnQ=/
2019年8月に購入したためセールで1,200円という価格で購入できました。
内容紹介
本講座の紹介文はご覧の通りです。
25 のウェブサイトやモバイルアプリを開発しながらプログラミング( HTML5, WordPress, CSS3, Javascript, Bootstrap 4,PHP, Python, MySQL) を学び、Webエンジニアになろう!
Web開発に関して総合的に学ぶことができ、計168レクチャーで17時間28分ととてもボリュームがあります。
感想
導入部分
使用するソフトのインストールから丁寧に解説してくれます。ちなみに最初にインストールしたのは、
Chromeはすでにインストール済みで、使い慣れているブラウザです。開発ツールが優れているとのことです。
MAMPはサーバーを立てるためのプログラムのようです。フリー版とプロ版のインストーラーが一緒なことに最初戸惑いましたが、それ以外はクリックで進めていくだけでした。
Bracketsはテキストエディタです。初めて使いましたが、軽量で使いやすいですね。 コードの補完やライブプレビューなどの機能もひととおり揃っています。 当面これで困ることはなさそうな印象です。
また各チャプターでインストールが必要なものは適宜解説してくれるので、学習に集中することができます。
HTML
HTMLはなんとなくタグで囲う言語であることは知っていました。 inputやbuttonなどWebサイトで見かけるものが簡単に作れるのは楽しいですね。 特に難しいと感じる点もなくサクサクと進みました。 作成したサイトは数十年前のwebサイトみたいな作りですね。 見た目部分はCSSで書いていくのが通常なようです。
CSS
HTMLで作成したwebサイトがどんどん豪華な?見た目になっていくのは快感でした。 ただfloatやpositionといったレイアウトに関する部分はいろいろ自分で試してみないと理解出来なさそうです。 今はまだ完全には理解できていないと思います。 作りたいモノが定まってきてから適宜調べて進めるしかなさそうです。分からないながらも講座を進めることにしました。 こんなところでつまづいても仕方ないので1冊入門書も購入しました。
1冊ですべて身につくHTML & CSSとWebデザイン入門講座 [ Mana ] 価格:2,440円 |
どうやら現在はfloatよりもflexboxなるものを使用するようですね。こちらの入門書のレビューも後日書けたらと思います。
CSS以降
Javascript、jQuery、Bootstrap4、Wordpress、PHPまで進めました。 HTMLやCSSのチャプターにも言えることかもしれませんが、 どのチャプターも基本的に概要を説明、課題を制作の流れになります。 課題を制作する際に講座内で学習した内容だけでは分からないところがでできます。 これらは調べながら対応することになります。(あえてそういう作りにしているのかもしれませんね。)
分かってはいたことですが、講座を終らせただけではWebサービスやおしゃれなWebサイトを構築するのは難しいかもしれません。 ただ、全体の概要を知るための講座としては非常に強力でこの講座終了後は自分で調べながら学習を進められるようになると思います。
まとめ
私が主に知りたかったのはHTMLやCSSのフロントエンド部分だったので講座は途中で中断しています。 この講座を1200円で購入できたことは非常にラッキーでした。途中までしか進めていませんが間違いなく1200円以上の価値があります。(もちろん定価の24,000円でも十分にお得です) 現在は購入した入門書でCSSの学習を進めています。CSSである程度納得のいくWebサイトが構築できるようになったらWordpressやサーバーサイドについても深く学習してみようかと思います。
もう一度購入した講座を講座へのリンクを貼っておきます。
https://www.udemy.com/share/1000IwCUMYcFdVQnQ=/
お読みいただきありがとうございました。
Ideapad C340のFnキー動作がおかしい?
IdeaPad C340
つい最近、LenovoのノートパソコンIdeaPad C340を購入しました。 CPU がRyzen5、IPS液晶で6万円切ってましたので、購入に踏み切った次第です。 とても快適に使えていたのですが、Fnキーの動作がいつもと違うことに気づきました。
たとえば、カナに変換するためにF7を入力すると機内モードになってしまうといった具合です。
カナに変換するためにはFn+F7のように入力しなければなりませんでした。 いままで使用していたPCとは動作が逆になっているようです。
解決方法
調べてみたら同じ症状を解決されている方がおりました。 簡単に手順をまとめると、
- Shiftキーを押しながら再起動
- 『オプションの選択』画面から『トラブルシューティング』を選択
- 『詳細オプション』画面から『 UEFIファームウェアの設定』を選択し再起動
- 『Configuration』タブの『Hotkey Mode』を『Disabled』にする。
- 『Exit』タブの『Exit Saving Changes』を選び、終了する
とすることで解決しました。
LenovoのノートパソコンのキーボードにはNumLockが無いなど慣れるまでいろいろ戸惑うこともあるようです。 ひとまずまた何かあったら報告しようと考えています。
今回はまったくPythonに関係の無い話でした。
【Python3】Pythonインストール【Windows】
はじめに
Windows10PCを新調しましたので、さっそくPython3をインストールしてみます。
Python3のインストールでつまづいた記憶はございませんが、一度まとめておこうと思います。
なお本記事はWindows10で操作、動作の確認を行っております。
PC情報を確認する
使用しているPCのOSがWindows10であること、32bitか64bitどちらであるのかを確認します。
コマンドプロンプトからsysteminfo
コマンドを使用することで簡単に確認できます。
C:\ > systeminfo ホスト名: PC OS 名: Microsoft Windows 10 Home ~省略~ システムの種類: x64-based PC ~省略~
確認すべき箇所は、
OS名がWindows10であること
システムの種類がx64-based PC(64bit)なのか、x86-based PC(32bit)であるか
これら2点です。
Python本体のダウンロード
Python公式サイト(https://www.python.org/)へアクセスします。
32bitの場合
『Downloads』→『Download for Windows』からインストーラのダウンロードができます。
今回は『python-3.7.4.exe』というファイルがダウンロードできました。
64bitの場合
『Downloads』→『Windows』を選択します。
『Download Windows x86-64 executable installer』を選択しダウンロードを行います。
今回は『python-3.7.4-amd64.exe』というファイルがダウンロードできました。
Python本体のインストール
ダウンロードしたファイルを実行します。
ここから先は32bitも64bitも操作は共通です。
(画像が32bitなのは購入したPCが64bitであったにもかかわらず32bit版をインストールしてしまったからです。)
『Add Python 3.7 to PATH』の項目にチェックを入れ『Install Now』をクリックします。
このアプリがデバイスに・・・というメッセージがでたら『はい』を選択し進めます。
インストールが完了したらインストーラをCloseで閉じます。
次にコマンドプロンプトを開き、python -V
と入力し、Python 3.7.4
が帰ってくればインストール成功です。
C:\ > python -V Python 3.7.4
ここまで完了すればpipも使用できるようになります。
まとめ
こんなにすんなり終わってしまったことに驚きました。 プログラミングを始めるまでのハードルが低いのはすばらしいことです。 最後に手順を一覧でまとめて終わります。
【Python】Pillowで画像のEXIF情報から日付を取得する
画像のEXIF情報
スマートフォンのカメラなどで撮影された多くの画像ファイルには、日付やGPSの位置情報などが埋め込まれています。 今回はこの日付情報を取得し、表示するプログラムを作成しました。
作成したプログラム
作成したプログラムは下記の通り。日時情報のみ抜き出しprint()で
表示しています。
プログラム:
from PIL import Image from PIL.ExifTags import TAGS # 画像ファイルを開く im = Image.open('test.jpg') # EXIF情報を得る exif = im._getexif() # 一覧で表示 for id, value in exif.items(): if TAGS.get(id, id) == "DateTimeOriginal": print(value)
作成したプログラムと同じ階層にtest.jpgファイルを保存してください。 そして実行すると撮影した日時が表示されます。 いずれは取得した日時情報から画像ファイルのフォルダ分けバッチファイルを作成したいと考えております。
Pillow(PIL)を使用したプログラムならこちらもおすすめです。↓
【Python】Pillowで画像を比率指定で一括リサイズする
画像の一括リサイズ
カメラで撮影した画像などはサイズが大きくそのままでは扱いづらいです。画像の解像度を下げることでファイルサイズが小さくなり私の持っている非力なPCでも編集等行いやすくなります。 前回は画像の縦横ピクセル数を絶対値で指定することで一括リサイズしました。
今回は縦横を圧縮する比率で指定し一括リサイズしていきます。
作成したプログラム
わかりやすいようプログラム中にコメントを入れました。 フォルダ構成は下記のとおりです。
resize │ resize.py │ └─img 512x512org.jpg
プログラム:
import os import glob from PIL import Image # imgフォルダにある.jpgファイルリストをすべて取得 img_files = glob.glob('img/*.jpg') # 縦横をいくつで割るか proportion = 2 # 取得したすべての.jpgファイルに対して処理を実行 for f in img_files: # PILで画像を開く img = Image.open(f) # imgのwidthとheightをproporionで割りリサイズしたimg_resizeを生成 img_resize = img.resize((int(img.width/proportion),int(img.height/proportion))) # 保存するためのファイル名等を処理する fname, fext = os.path.splitext(f) # 保存場所とファイル名拡張子までsaveに渡す f_output = fname + '_resize'+ str(proportion) + fext img_resize.save(f_output) # 実行結果をprint出力 print(f + "\t----->\t" + f_output)
WordやPowerPointに貼り付けることを考えて、画像はいつも圧縮したものも保存するようにしています。
【Python】複数セルを行単位、列単位で取得する
複数セルの値を取得する方法の第二弾です。 前回は、最大行、最大列までの値を取得する方法を紹介しました。 salapy.hatenablog.com
複数セルを取得する
今回は範囲を指定し、行単位、列単位で複数セルの値を取得する方法を紹介します。フォーマットに沿って値を入力されたエクセルファイルから値を取り出す際に利用できそうです。前回よりもより実用的なプログラムです。
前準備
openpyxlのインストール
pipからインストールできます。
pip install openpyxl
使用するExcelファイルの準備
適当なExcelファイル(example.xlsx)を準備します。今回は事前に図のようなファイルをカレントフォルダに保存しました。
行単位でセルの値を取得する
行単位でセルの値を取得する場合、iter_rowsメソッドが便利です。 min_row、min_col、max_row、max_colの値を与えることで、範囲を指定できます。 max_row、max_colに値を与えない場合は、値の入っている最大行、最大列まで取得するようになります。 プログラム例:
import openpyxl # ブック取得 wb = openpyxl.load_workbook("example.xlsx") # シートを取得 sheet = wb["Sheet1"] # 行単位でセルの値を取得する A2~C5まで for rows in sheet.iter_rows(min_row=2, min_col=1, max_row=5, max_col=3): for cell in rows: print(cell.value) print("-------------------------------------") # 値の入っている最大行、最大列まで行単位でセルの値を取得する for rows in sheet.iter_rows(min_row=1, min_col=1): for cell in rows: print(cell.value)
実行結果:
A2 B2 C2 A3 B3 C3 A4 B4 C4 A5 B5 C5 ------------------------------------- A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4 A5 B5 C5 A6 B6 C6 A7 B7 C7 A8 B8 C8 A9 B9 C9 A10 B10 C10
列単位でセルの値を取得する
列単位でセルの値を取得する場合、iter_colsメソッドが便利です。 min_row、min_col、max_row、max_colの値を与えることで、範囲を指定できます。 max_row、max_colに値を与えない場合は、値の入っている最大行、最大列まで取得するようになります。
import openpyxl # ブック取得 wb = openpyxl.load_workbook("example.xlsx") # シートを取得 sheet = wb["Sheet1"] #列単位でセルの値を取得する A1~B7まで for cols in sheet.iter_cols(min_row=1, min_col=1, max_row=7, max_col=2): for cell in cols: print(cell.value) print("-------------------------------------") # 値の入っている最大行、最大列まで列単位でセルの値を取得する for cols in sheet.iter_cols(min_row=1, min_col=1): for cell in cols: print(cell.value)
実行結果:
A1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 B6 B7 ------------------------------------- A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
取得したセルに値が無かった場合
セルに値が無かった場合は、cell.valueはNoneを返します。Noneはnullのようなもので返り値が無い場合などに返されるようです。
【Python】openpyxlで最大行、最大列までの値を取得する
openpyxlのインストール方法
pipからインストールできます。
pip install openpyxl
最大行、最大列までの値を取得する
便利なシートオブジェクトのメソッドとして、max_row、max_columnがあります。 名前の通り、そのシートの最大行、最大列を返してくれるメソッドです。
例のようなexample.xlsx(シート名:Sheet1)を用意して頂き、下記プログラムを実行します。
example.xlsx例:
プログラム例:
import openpyxl wb =openpyxl.load_workbook('example.xlsx') sheet = wb.get_sheet_by_name('Sheet1') # B列を最大行までprint出力 for i in range(1,sheet.max_row + 1): print(sheet.cell(row = i, column = 2).value) # 1行目を最大列までprint出力 # 見やすいようにprintの改行は半角スペースに置き換え for i in range(1, sheet.max_column + 1): print(sheet.cell(row = 1, column = i).value, end=' ')
出力結果:
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 A1 B1 C1
行単位、列単位で値を取り出すときに使えそうです。
値の書き込み方法はこちらの記事で紹介しています。 salapy.hatenablog.com
【Python】pyperclipでクリップボードの文字列を利用する
pyperclipモジュール
pyperclipモジュールのcopy()、paste()を利用することで、コピー&ペーストを行うことが可能です。
インストール方法
pipからインストール可能です。
pip install pyperclip
windowsやMacをお使いの場合は、これだけでインポートし利用可能です。 Ubuntu(Linux)で行おうとした場合、エラーが出ましたので解決方法も併記します。
>>> import pyperclip >>> pyperclip.paste() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/ico/.local/lib/python3.6/site-packages/pyperclip/__init__.py", line 301, in __call__ raise PyperclipException(EXCEPT_MSG) pyperclip.PyperclipException: Pyperclip could not find a copy/paste mechanism for your system. For more information, please visit https://pyperclip.readthedocs.io/en/latest/introduction.html#not-implemented-error
URLのリンク先を読むと、下記プログラムのいずれかひとつをインストールする必要があるそうです。
sudo apt-get install xsel to install the xsel utility. sudo apt-get install xclip to install the xclip utility. pip install gtk to install the gtk Python module. pip install PyQt4 to install the PyQt4 Python module.
実行する
Hello Worldとコピーし、ペーストする方法は下記のとおりです。
>>> import pyperclip >>> pyperclip.copy("Hello World") >>> pyperclip.paste() 'Hello World'
pyperclipを利用するだけで色々な作業を効率化できそうな気がします。
【Python】OpenPyXLでセルに値を書き込み保存する
openpyxlモジュールのインストール
pipを使用してインストールできます。
pip install openpyxl
セルに値を書き込みワークブックを保存する
import openpyxl # Workbookオブジェクトを新しく作成 wb = openpyxl.Workbook() # 作成したWorkbookオブジェクトに存在するSheetを指定 sheet = wb.get_sheet_by_name("Sheet") # SheetのA1セルにHello Worldと書き込む sheet["A1"] = "Hello World" # SheetのB1セルにHello Worldと書き込む sheet.cell(row = 1, column = 2).value = "Hello World" # save()メソッドでファイル名を指定してワークブックを保存する wb.save("example.xlsx")
セルに値を書き込む場合、座標を文字列で指定する方法と、cell()メソッドで指定する方法があります。
【Python】OpenPyXLでExcelファイルからセルの値を取得する
openpyxlモジュールのインストール
pipを使用してインストールできます。
pip install openpyxl
セルの値を取得する
適当なexample.xlsxを準備し下記プログラムを実行するとセル(B1)の値を取得することができます。
import openpyxl # ワークブック(.xlsxファイル)を開く wb = openpyxl.load_workbook("example.xlsx") # シート名"Sheet1"の取得 sheet = wb.get_sheet_by_name("Sheet1") #セル(B1)の値の取得 val = sheet.cell(row=1, column=2).value print(val)
cell()メソッド
cell()メソッドに渡す、row、columnによりCellオブジェクトを取得できます。for文でrow、columnに値を渡すことで連続したセルの値を取得することもできます。
【Python】大量の画像を縦横サイズ指定で一括リサイズする
ファイルのリサイズプログラム
大量の画像をひとつひとつ圧縮するのが面倒ですので、フォルダ内の画像を一括リサイズできるプログラムをPythonで作成しました。 元画像を640×480の画像に変換し、別ファイルとして保存します。 事前にpythonの画像処理ライブラリPillowをインストールします。
pip install Pillow
下記プログラムを.py形式で保存します。
import os import glob from PIL import Image img_files = glob.glob('*.jpg') width = 640 height = 480 for f in img_files: img = Image.open(f) img_resize = img.resize((width,height)) fname, fext = os.path.splitext(f) img_resize.save(fname + '_640x480' + fext)
変換したい画像(.jpg)を事前にフォルダにまとめておきます</lそのフォルダ内で、上記プログラムを実行します。 "元画像_640x480.jpg"というファイル名で、リサイズされた画像が同フォルダに出力されます。 画像サイズやファイル名などは適宜設定もしくは、引数から取ってこれるようにしてもいいかと思います。
比率を使用してのリサイズは↓↓↓↓↓↓