文系非エンジニアのPython最短習得ルート

python プログラミング
python

おはようございます。今週はあたたかくなりそうです。

気温の変化が大きいと体調も崩しがちになります。

お体ご自愛下さいね^_^

 

———————————
それでは今日の日記へと。徐々にブログの機能が分かってきたので色々使ってみよう♪

プログラミング言語の中でPythonに今はまっている。

その理由は

・ライブラリが豊富で様々な用途に使う際に環境設定があまり必要でない。

・機械学習に向いているのでデータを蓄積させて分析するという自分の用途にマッチしている。
(株式投資やFXはもちろん、経済産業省、厚生労働省、財務省など、行政機関が出すデータを解析しやすい)

・記述する際に「インテンド4つ下げ」などのルールがあるので他人が書いたコードも見やすい。

・それに付随して他人のコードから学ぶべき要点を把握しやすい。

 

Pythonは機械学習やディープラーニングにも用いられることから難しいと思われがちだが、実はそうではない。むしろプログラミング言語初心者が手をつけるのに最適な言語である。
(色々とプログラミング言語関連の本を読んでいると「最初に学ぶのに最適な言語」としてPythonは取り上げられることが多いのも、うなづける。)

 

スポンサーリンク

Pythonの歩き方

 

文系非エンジニアの私がどうやってPythonを学んでいったのか、を記すことは、
これから学ぼうと思っている人に向けて、
一定の価値があると感じている。

早速はじめていこう。

(なお、Pythonは2 と3のバージョンがある。Python2での記述が広く浸透した為に、未だにこちらも使われているが、仕様がかなり異なるので注意したい。これから始める人は新しい方のPython3を選んでおけば大丈夫であろう。)

 

学ぶといっても手法は色々ある。

「オフライン(対面)での学習」

「オンラインでの学習」

「書籍」

順にメリットデメリットを考えてみよう。

 

「オフライン(対面)での学習」

これはいわゆる教室に通うこともあれば、Skypeなどのオンラインであるが対面つまり1:1で受講できるものも含んでいることに注意してほしい。

(メリット)

講師がその場にいるので疑問がわけばすぐに質問し、解消できる。

オーダーメイドのカリキュラムで学習が進められる。

プログラマーしての転職を視野に入れたサポートが厚い。

(デメリット)

どうしても対面という性質上、ある程度高額になりがちである。

 

おすすめのサービス

 

DMM WEBCAMPビジネス教養コース(旧:WebCamp)

1ヶ月でプログラミングをマスターできる教室&オンライン講座である。

オーダーメイドのカリキュラムが魅力で
質問体制をしっかり整えるで「分からないからやめる」ということを減らすことに注力し、継続しやすさを追求している。
まさに「本気でスキルを習得させること」を追求した”Webスキルのパーソナルジム”であるといえるだろう。

特徴としては

1. 通い放題
・毎日11:00~23:00までいつでも通える
・常に講師がいるのでいつでも質問できる

2. オーダメイドカリキュラム
・受講前に担当講師による個別カウンセリングを行う。
・自身の学習ペースに合わせて学習内容、スケジュールをオーダメイドしていく
・生徒に合わせて最も効率の良い学習方法で学ぶことができる

3. 集中講座
・人気のあるスキルや独学が難しい分野を教えるため、集中講座を開催している
・カリキュラムに応じた集中講座を受けることができる(先着予約制)

 

DMM WEBCAMP(旧:WebCamp Pro)

 

また、未経験からプログラミングで転職を考えている人に最適な、DMM WEBCAMP(旧:WebCamp Pro)というコースも用意されている。
フリーランスを目指す人にとっても良いサービスではないかと感じている。

こちらの特徴としては

1.3ヶ月で即戦力エンジニアを目指すカリキュラム

DMM WEBCAMPでは、3ヶ月間の学習期間において基礎知識の習得から、より実践的なチーム開発を経て、最終的には1人でオリジナルサービス開発まで行う。
より実務に近い形での開発経験を積むため、転職に直結したスキルを身につけることができる。
教室は土日祝日に関わらず毎日AM11:00〜PM11:00の時間帯を開放しており、常駐講師がいるのでその場で質問をすることができる。

学習期間と学習内容

1ヶ月目 自社の教材コンテンツを用いた基礎知識を学習
2ヶ月目 チーム開発を行うことで、より実践的な開発経験を積む
3ヶ月目 学んだスキルを活かし、1人でWebサービスを開発する

2.フロントエンド/サーバーサイド/データベースをカバーするカリキュラム

HTML/CSS/Javascriptとったフロントエンドから、Ruby/Ruby on Railsのサーバーサイド、そしてMySQLやAWSまで学習していく。
転職に向けて3ヶ月間の学習で即戦力スキルが身につくカリキュラムとなっている。

 

3.自社開拓の求人と濃密なキャリアサポート

キャリアサポートを重視。
受講期間中は、キャリアカウンセラーとカウンセリングの機会を設け、受講生の卒業後のキャリアビジョンをともに描く。
企業をオフィスに招待した説明会の開催や、非公開求人の紹介など、理想のキャリアを実現するサポート。

・医療系公務員から上場企業への転職
・営業職から急成長ベンチャーに転職
・農業関係者から受託開発会社に転職

 

「オンライン学習」

ここでオンライン学習とはドットインストール、Aidemyなどネットブラウザを通じて学習できるものをさす。

(メリット)

場所を選ばずどこでも受講できる。
講師1:受講生N の場合が多いので受講料が安くすむ(無料の場合も多い)

(デメリット)

一方通行になりがちなので質問がし辛い

おすすめのサービス

Aidemy

 

 

Pythonや機械学習系に特化したオンライン学習サービス。
(基礎的な部分が無料でそれ以上学ぶ場合には有料)

 

udemy

 

オンライン教育のUdemy

シリコンバレー生まれのオンライン動画サービス。有料。
割引率はいつも多めになっているので「お得だ!」と思って飛びつかないようにしたいw
コースの評価を見れば分かるが、評価の良いサービスも多くサービス内容も有料なだけはあるなと思えるものが多い。

参考までに。私は酒井さんの下記講座を受講したが、初心者でも環境構築から説明してくれているのでスムーズに理解していける作りになっている。

 



 

ドットインストール
ドットインストール - 3分動画でマスターする初心者向けプログラミング学習サイト
3分動画でマスターする初心者向けプログラミング学習サイトです。HTML, CSS, JavaScript, PHP, Rubyをはじめ、iPhoneやAndroidアプリの作り方も学べます。豊富な動画を見ることで、はじめての人でも無理なくスキルを身につけていくことができます。

こちらではPython3はPremuumプランとして有料になっており、私は試したことがない。
ただし、それ以外のHTML,CSS,JavaScriptなどの基礎部分は無料で受講できるのでプログラミング言語初心者で一度どのようなものかを見てみたいという人にはオススメである。
私が一番最初にプログラミング言語を学ぶ際に使ったのもこちらのサイト。

 

Paiza
paiza転職とは? | ITエンジニア向け転職・就活・学習サービス【paiza】
ITエンジニア・プログラマ専門の転職サイト「paiza転職」の詳細紹介ページ。プログラミングスキルチェックを軸にしたコーディング転職の仕組みや入社までの流れについて解説しています。|ITエンジニア・プログラマ向け総合求職・学習サイト【paiza】|ITエンジニア・プログラマ向け総合求職・学習サイト【paiza】

paiza(パイザ)は、コードを書いて書類選考なしで面接・カジュアル面談に進める、
全く新しいカタチのコーディング転職サービスです。実務経験がない分野、言語でもコードが書ければ面接可能!
たとえば「 業務経験はないが、趣味で週末にRubyを書いている 」という場合でもチャレンジ可能です。

プログラミングコーディングテストの対応言語は Java、PHP、Ruby、Python2、Python3、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift に対応しており、より実務に近いプログラムを書く問題になっています。

引用:Paizaとは:https://paiza.jp/guide/career

プログラマーの就職や転職用サイトなのだが、それを目的にしなくても登録すればプログラミング言語が無料で学べるのが特徴である。(有料もあり)

ちなみに私はPaizaを使い始めたばかりなのだが、いわゆる萌える系(?)、表現が適切なのか分からないが可愛らしい女の子のキャラが出てくるので、そういうのが好きな人はこちらが向いているかもしれないw

サービス面から考えると Python , C言語 ,C# ,JaveScriptが完全無料となっていて、
しかも実際に手を動かすことで進めていくので習得できるスピードも早くなる作りになっている。

 

Progate
Progate(プロゲート) | Learn to code, learn to be creative.
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

イラスト中心で実際にコードを書いていくタイプなので実践寄りです。
内容も若干高度なので、入り口としては難しく感じるかもしれません。
ただ、理解が進んできてからProgateに取り組むと、プロダクト制作のスピードは向上します。
無料で各言語のさわり部分を体験出来るので、それで相性が良いと思えば有料コースへ切り替えればよいと思う。

 

Coursera
Coursera | Online Courses & Credentials by Top Educators. Join for Free
Choose your #CourseToSuccess! Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google ...

こちらはミシガン大学、カルフォルニア大学、プリンストン大学などアメリカの一流大学や
Googleなどの有名企業の講義がそのまま受けられる画期的なシステムである。

私が一番下のリンクで紹介した
仮想通貨の教科書(日経BP社)
もCourseraの「Bitcoin and Cryptocurrency Technologies」と完全に連動している(というか著者が喋っているw)ので英語がわかる人はそちらも活用してみるといい。

 

 

Bitcoin and Cryptocurrency Technologies | Coursera
Bitcoin and Cryptocurrency Technologies from Princeton University. To really understand what is special about Bitcoin, we need to understand how it works at a t...

 

基本的には無料であり、
修了証をもらう場合には49$程度の費用がかかるが
LinkedInに資格として登録できるのが大きなメリットである。

グローバルに活躍したいと思っている人にとってはJob Chanceを得るにも一役買うことだろう。

Courseraで機械学習を受講された方の記事が参考になりそうなので載せさせてもらった。

 

テックアカデミー

最短4週間で未経験からプロを育てるオンライン完結のスクールである。

 

特徴としては
・受講生に1人ずつ現役エンジニアのパーソナルメンターがつく
・チャットで質問すればすぐ回答が返ってくる
・オリジナルサービスやオリジナルアプリなど、開発までサポート

 

 

「書籍」

(メリット)

書籍になるぐらいなので情報源が確実で、正確な知識を入手できる

(デメリット)

プログラミング言語という性質上、手を動かして試行錯誤して分かることが多い。
その為、書籍では学べるものはあまりないというのが実感である。
使うならば上記のオンラインでの学習と組み合わせるのが吉。

 

おすすめの書籍

私はオンラインでの学習にメリットを感じていたのであまり書籍について語れるものはない。

しかし10冊ぐらい斜め読みした中でこれはいいと思ったのもがあったので紹介させてもらおう。
(これは結果的に実際に購入したので下記にレビューをしている)

実践力を身につける Pythonの教科書(マイナビ出版 著者:クジラ飛行机)

 

 

 

こちらの書籍は何が分かりやすくておすすめかというと、

コードだけでは分かりにくいプログラミング言語を

ときには
順を追った丁寧な文章で、
またときには
直感的な図表
にて説明してくれている。

そのバランスが非常に適切なのである。

初心者がつまづきやすくなるところをよく分かっておられて、その部分に説明を注力しているのが感じられる。

全くの初心者から始めるなら間違いなくおすすめできる書籍である。

 

なお、他の書籍はざっと立ち読みしたものの、購入していないから言及を控えることとします。
これが一番分かりやすいと思ったから購入した、という単純な理由に基づきます。

 

おわりに

本日はPythonの学習についてまとめてみた。
自分が学習した過程もある程度網羅できたので満足w

プログラミング言語をやってみて思うのは思ったよりハードルは高くないということである。
もちろん個人の資質は関係していると思う。
(それは私が頭がいいといっている訳では決してなくw、集中して物事に取り組めるか、細かいことに気付けるか、という資質である。)

しかし「適切な学習ルート」で一定以上時間をかければ、
自分の臨んだプロダクトができるものと信じている。

 

私が実践から学んだ「適切なルート」についてもお話しておきましょう。
Pythonに絞るなら

Aidemy」 or「 Paiza 」+「 実践力を身につける Pythonの教科書」で分からないところを補完
→あとは Python を実際動かしてみて、どんどんプロダクトを作っていくこと。
分からなければネット情報、書籍そしてPython3.6.5 公式ドキュメントを参考にしましょう。
3.6.5 Documentation

ドキュメントはどの言語を学ぶ際にも大事になってきます。
プログラマーはプログラミング言語をコーディングする際はドキュメントを参照していますので
どの言語を学ぶときにもまずチェックしておきましょう。
(辞書的存在です。迷ったときに参照する感じ)

 

ネット情報ではプログラミングに関しての知識共有ができるQiita(キータ)がおすすめ。
分からない状態を書き込めば何らかの答えが載っているはず。
(多くの人は同じ箇所でつまづくケースが多いため)

About - Qiita
Qiita is a technical knowledge sharing and collaboration platform for programmers.

 

 

GitHubも共有知といった感じがいいですね。(読み方はギットハブです)

GitHub
GitHubはソフトウェア開発のプラットフォームです。GitHubには8000万件以上ものプロジェクトがホスティングされており、2700万人以上のユーザーがプロジェクトを探したり、フォークしたり、コントリビュートしたりしています。

リポジトリの「Issues」にコードを公開すればレビューを貰えたりします。

チーム開発を変える「GitHub」とは?〜Issuesの使い方〜【連載第3回】
リポジトリ管理サービスGitHubの入門記事、連載第3回目です!前回はGitHubの主要機能「Pull Req…

私は、それをTwitterにあげることでレビューを受けやすくしています。
(もちろん公開できる範囲で)

 

 

楽しみながら頑張りましょう。私も頑張ります(^_^)

 

あとがき

 

Pythonではブロックチェーンを作ることもできます。私も現在、隙間時間に手をつけているものの、やはり中々難しいですw
まぁ難しいほど燃えるのが私の性格なので、スローペースにはなるだろうが作っていこうと思ってます!

 

ブロックチェーンについては、私のおすすめ書籍も含めて書いた記事があります。
よかったらご参照ください(記事後半)

マルチタスクと一点集中どちらがよいのか?
世の中を見渡せば堀江貴文さん(@takapon_jp)の「多動力」が大ブームとなっている。 多動力 (NewsPicks Book) posted with ヨメレバ 堀江 貴文 幻冬舎 2017-05...

 

(2019/02/5 追記)

プログラミング学習を効果的に進めていく上で、数学的な考え方は欠かせません。

プログラミングに役立つ数学的考え方が分かりやすく解説されている、結城浩さんのプログラマの数学に関する書評を書きましたのでよかったらこちらもどうぞ。

https://naokishiho.com/2019/02/04/programming-math-yukihiroshi/ ‎

 

それでは!

コメント