【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
2018-04-02 19:40 2018-04-13 02:33
みやびです。
3月上旬から構想を練ってきたMIYABI Labのホームページを本日公開しました。
WordPressなどに頼らず、AWSネットワークの設計からWebデザイン、コーディング、プログラミング等の作業をすべて手作りで作ってきたため、既に愛着が湧いています。
自作したこのブログでWordPressのように記事を書いているのも、何だか不思議な感じがします。
公開初日の今日はおそらくTwitterからアクセスいただいているかと思います。まだSearch Consoleにも登録していません。
これから技術ブログを中心に記事執筆を行い、これまで学んできたことを少しずつアウトプットして行きたいと思います。
独学でプログラミングを勉強してきた自分だからこそ書けること、独学だからこそ躓いてしまった部分など、教科書的にならないように注意しながら解説していく予定です。
Googleからのオーガニック検索経由でもお目にかかれるようアウトプットの質も高めてまいりますので、引き続きどうぞよろしくお願いいたします。
本記事では、
について、ご紹介します。
『これからプログラミングを学ぶ学生や社会人を応援しながら、仲間と一緒にWebサービスを作り上げるチーム』
これが私たちの目指す組織です。
もっと平たく言うと、『みんなで教え合いながら勉強した方が楽しいよね』と言う感じです。
プログラミングにもっと気軽に触れて、勉強していて楽しいと思えるをしていきたいと思える仲間作りをしていきたいと考えています。
いつも怪しまれます。それも歳を重ねるごとに...笑
全く本名では無いのですが、名前に雅という漢字が入っているので、中学生くらいからずっとこのあだ名で呼ばれています。
僕は生物学系の大学院を修了した後、新卒で製薬会社に入社したのですが、中学時代からの友人である現在の会社の社長が起業するタイミングで、設立メンバーとして転職・参画しました。
当時、立ち上げ直後のベンチャー企業(株式会社PLAN)でメディア事業を運営していましたが、私を含む全員がWeb系の技術を持ち合わせていませんでした。
曖昧な知識と脆弱な技術基盤の上に成り立つ月間数百万PVの巨大メディアと、そこに完全に依存した社員の生活。ぼんやりとした不安から、自身の執筆活動の仕事量を減らし、プログラミングを含む技術全般の勉強にシフトするため社長に許可をいただきました。
そこから数ヶ月後、『共用サーバーへの負荷増大に伴う強制停止』を経験して大慌てでサーバーの引っ越しおよびデータの移行を実施しました。早急に回復しないと1日15万円ほどの機会損失で、小さなベンチャーにとっては大打撃です。
幸い、その数ヶ月前から勉強を始めていたのでパニックに陥ることはありませんでしたが、技術的には貴重な経験でした。
そんなこんなで、会社を技術的な面で支えながら新しいWebサービスの製作に挑戦するなどして、独学での勉強を続けてきました。
プログラミング経験は3年程度ですが、HTML, CSS, JavaScript(jQuery)PHP(Laravel5, FuelPHP), Python3, MySQL, AWS, Linux, Apacheなど、得意不得意はありますが、特に不自由は感じていません。
とはいえまだまだなので、これからも勉強しながらこの技術ブログでアウトプットしていきますので、どうぞよろしくお願いします。
今回の立ち上げの動機については、
この2点に集約されます。
独学で最も辛いところは、『答え合わせができないこと』です。
単純な計算を行う関数など、他に書き方が思いつかないようなものもありますが、Webサービスのように様々な機能が混在するような少々複雑なプログラムの場合、明確にこれが正しい方法だというものは少なくなってきます。
その中で、より良い方法(セキュリティ的により安全とされるものや、エラーが生じにくいような設計など)を模索しながらプログラミングしていきますが、独学の場合はどれだけ考えても自分が書いたコードに不安が残ります。
例えば、フロントエンドの比較的簡単なところでいうと『idやclassの命名規則』など。独学でやってると『キャメルよりスネークの方がいいのか?CSSとJSでクラスを分けている人もいるけど、実際にはどうなんだ?』など、答えの無いところに答えを求めようとして混乱してしまいます。
バックエンドでいうと、例えば『MySQLにてカラムにNULLを許可するか否か?』など。これについても賛否ありますが、将来的にどっちに統一しておいた方が良いのかなど、実際に判断することは非常に難しいものです。
これらは本当に単純な疑問のごく一部ですが、先輩や会社の方針で教え込まれればそれで終わりなことを解決するのに、膨大な時間を費やしてしまうような疑問が沢山あります。
これが個人情報の取り扱いなどに発展していくと、一人で曖昧な知識のままやっていては不安に押しつぶされそうになります。
そんな時に、もし誰かに相談できたら。相談して、もしその人が答えを知らなかったとしても、一緒に考えて出した結論の安心感はかけがえの無いものです。
渋谷界隈で血眼になって活動しているとそんなことは忘れてしまいそうですが、そうした孤独と戦っている初心者は少なくありません。
プログラミングに興味のある学生などと話をしていると、
といった類の相談を受けることがよくあります。
また、就職活動のために実績を作りたい人や、Webサービスやブログ、アフィリエイトサイトなどを製作して学生のうちに安定した収入源を得ておきたいという強者もいます。
これらの悩みや希望をまとめて解決できる場所は滅多にありません。
しかしありがたいことに、今の僕は自身の会社の空きスペースを活用することができる上に、プログラミングを始めてからの期間が比較的短いので、初心者の気持ちが手に取るように分かります。
ついでに会社の本業がWebメディア運営なので、SEOを含め、そちら方面での相談にも乗ることができます。
僕自身がこれまでに蓄えてきた知識と、今のこの環境を最大限に活用すれば、過去の自分のようなプログラミング初心者の助けになれると痛感しています。
現時点での分類は、
の4種類いになります。
そのまんまです。MIYABI Labの概念や勉強仲間の募集の旨、他のページの抜粋、メンバー紹介などを掲載しています。
スマホからだとなかなか良い感じなのですが、レスポンシブで製作したので、PCページがどうものっぺりしてしまっています。もう少し見やすく改善していきます。
これまでに僕やメンバーが製作したWebサービスを公開し、どのようなところが難しかったのか、どんなところを工夫したのかなどを記載していきます。
また、特筆すべき技術内容については、こちらの技術ブログに逐一まとめていきます。
現時点(2018年4月2日)ではアリナシというWebサービスしか紹介していませんが、まだいくつかありますで、そちらも随時追加していきます。
ここです。僕やメンバーが勉強した内容を技術ブログとしてまとめて公開していきます。
ちょっとしたコマンドからLaravel5の面白い使い方など、テーマは絞らず幅広くやっていこうと思います。
直近では、『AWSネットワークの構築からセキュアなEC2サーバー(ここw)を立てるまでの全学習プロセス』を執筆して公開する予定です。
↓こんな感じで自分で作ったコードもバンバン貼り付けていきます。より良い書き方とかはぜひ教えてください。
public function buildIndexList()
{
// init
$heads = [];
$h3 = 0; $h4 = 0; $h5 = 0;
$pattern = '/<h([3-5])(.*?)>(.*?)<\/h\\1>/';
$index_lists = "";
// check
if( $this->content != '' ){
// match
preg_match_all($pattern, $this->content, $heads);
// check
if( !empty($heads) ){
$index_lists = "<ul>" . PHP_EOL;
// set id for each head to make direct link
foreach($heads[0] as $idx => $head_html){
// init in loop
$new_head_html = "";
...
...
...
そのあとは...どうしよう。この手作りブログの作り方とか書いていくかもです。
そうそう、Python3で『変顔に点数をつけるプログラム』を遊びで作って見たので、それも公開しますね。
こちらもそのままです。技術的な相談から、一緒に勉強してみたいという方、メディア関係のお話、引き抜きの交渉、エラーやバグ報告などいただけると嬉しいです。
Twitter(@miyabi_lab)の方も併せてよろしくお願いします。
ここまで読んでくださってありがとうございます。
最近ではProgateやQiita、teratailを代表するWebサービスの浸透により、プログラミング学習への参入障壁が格段に低くなっています。
しかし、どれだけインターネットが進化しても、実際に人と会って一緒に何かをするという行為を再現するまでには至っていません。
もし私たちの活動が少しでも助けになるようであれば、ぜひお気軽にご相談ください。
様々な理由で躊躇している未来のエンジニアさん、ちょうどいい勉強仲間 がここにいます。
Webエンジニア PHPエンジニア HTML CSS JS jQuery PHP Laravel Python SQL WordPress AWS Linux Apache
【名前】 "みやび"
【関連】 株式会社PLAN / MIYABI Lab / JAPAN MENSA /
【MIYABI Lab】平日オフィスを勉強用に解放中!みんなで楽しくプログラミングを学べる環境を作る!詳しくはコチラ(https://miyabi-lab.space)◆HTML, CSS, JS, PHP, Python, SQL, AWS◆生物学系修士→製薬会社→Webエンジニア(株式会社PLAN)・MENSA会員
【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
【AWS】Auto Scalingする前に知っておくべき7つのこと
Amazon EC2 Auto Scaling(オートスケール)を使用すると、CPU使用率等に応じてEC2の台数を自動的に増減できます。ここでは、初心者の持つ疑問を通し...
WordPressの基本構造を理解してオリジナルテーマを作ろう(後半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやstyle.css)の役割やファイル構造を理解して、どのようにオリジナ...
WordPressの基本構造を理解してオリジナルテーマを作ろう(前半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやfront-page.php)の役割やファイル構造を理解して、どのようにオ...
【Heroku入門】無料枠サーバーを24時間スリープさせない方法
フリープランのHerokuサーバーでは、30分以上アクセスがないと自動的にスリープしてしまいます。ここでは、Herokuサーバーを寝かせない方法につい...
【入門編】Laravelのディレクトリ構造とMVCの処理の流れを理解する
Laravel初心者が学習する際にわかりにくいLaravelのディレクトリ構造を具体的な例を交えて解説します。MVCの基本であるビュー、モデル、コントロー...
【初心者向け】PythonによるHeroku環境で簡単LINEBot開発
誰でも簡単にLINEBotをpythonを使ってHeroku環境で開発できる方法を解説します。ここでは、LINE Messaging APIを用いることでおうむ返しをするBot...
AWSでWebサーバー構築!踏み台サーバーでセキュアなネットワークを構築する(第5回)
連載の第5回です。メインEC2に対して直接SSH接続できる状態というのは、セキュリティの観点からあまり望ましくありません。MySQLやEBSが紐づいたメ...
AnacondaでのTensorFlow環境構築と基礎的な使い方
Anaconda(アナコンダ)のインストールからJupyter notebook(ジュピターノートブック)とTensorFlow(テンサーフロー)の基本的な使い方を初心者...
脱初心者!MNIST beginnerに隠れ層を加えたニューラルネット解説
TensorFlowのチュートリアルであるMNIST beginnerの応用して、隠れ層と活性化関数を加えたニューラルネットワークで手書き文字識別を解説します。...
AWSでWebサーバー構築!Apache2.4, PHP7, MySQLの導入と初期設定(第4回)
連載の第4回です。今回は作成したEC2インスタンスにWebサーバーとしての機能を持たせるため、Apache2.4のインストールおよびhttpd.conf等の各種設...
AWSでWebサーバー構築!EC2を作成してSSH接続する(第3回)
連載の第3回です。前回作成したVPC・サブネットにおいて、セキュリティーグループに保護されたEC2インスタンスの作成・設定およびSSH接続の確立ま...
初心者必読!MNIST実行環境の準備から手書き文字識別までを徹底解説!
Pythonによる機械学習をプログラミング初心者にもわかりやすいように、TensorFlowチュートリアルのMNIST beginnerを使って、手書き文字(MNIST)識別...
AWSでWebサーバー構築!専門用語の解説とVPC環境を構築する手順(第2回)
連載の第2回です。AWSにてVPCネットワークを構築してWebサーバーを設置・運用するためには、AWS内で利用される重要単語について正しく理解しておく...
知識ゼロで機械学習・AIを理解するために必要なニューラルネットワークの基礎知識
機械学習・AIを理解するために必要なニューラルネットワークの基礎について、これから機械学習を勉強したい人、プログラミング未経験の人にもわか...
Canvaで簡単におしゃれなアイキャッチ画像を作ろう!使い方を徹底解説!
PhotoshopやIllustratorを使えなくてもCanvaなら誰でも簡単におしゃれなアイキャッチ画像が作れます。豊富なデザインテンプレートを組み合わせるだ...
プレビュー機能付きの記事編集画面の作り方(Laravel5)
記事編集フォームにはプレビュー機能の実装が必須です。記事を保存する処理とプレビューを表示する処理を共存させるにあたり、ボタンをクリックし...
AWSでWebサーバー構築!VPC設計に必要なIPアドレスとサブネットの基礎知識(第1回)
連載の第1回です。AWSのVPCネットワークを設計して実際に構築するためには、IPアドレスの基礎を理解することが非常に大切です。EC2 Webサーバーを...
MIYABI Labホームページを製作しました
様々な理由でプログラミングの勉強を困難だと感じてしまっている方のお役に立てれば嬉しいです。これからも小さなWebサービスを作り続けていき、技...
ゆざ、株式会社PLANを卒業します。
2年間インターンとしてお世話になった株式会社PLANを卒業します。AWS,Laravel,Pythonなどの技術的なことだけではなく、エンジニアとして、社会人と...