アスリート系ですがプログラミング始めました。

プログラミング初心者三十路越えアスリート系女がフリーランスプログラマーを目指すブログ

初心者がインデントの重要性を知るにはPythonがいい

f:id:simpledancer:20171022180002p:plain

PyQを進めています。今日は仕事が休みなので筋トレしてプログラミングして筋トレしてプログラミングして。。。のエンドレスループです。

simpledancer.hatenablog.com

インデントエラーが連発したので改めて調べた

今までRubyもJavaも

「インデント気をつけて」と言われながらもやんわりとしか実行してなかったし

強いて言えばインデントなんて

「見栄えと言うかコードが読みにくいから綺麗にしてね」ってことだという認識でいました(yamlでちょっとその意識は変わったものの)

Rubyist Magazine - プログラマーのための YAML 入門 (初級編)

 

しかしPythonはインデントがちゃんと入ってないとそもそも実行さえできないんですよね(もちろん実行できる場合もありますがPyQの場合合格にならない!)。

さらにインデント「とりあえず入ってればオッケーでしょ」ぐらいの感覚で進めていたところこんなに厳密な縛りがあったとは!

Python入門 - 構文

Python ではインデント(行頭の空白文字の数)が重要な意味を持ち、同じ数の空白でインデントされた文がブロックとみなされます。

a = 3
if a == 5:
    print "AAA"    # if文の対象
    print "BBB"    # if文の対象
print "CCC"        # if文の対象ではない

インデントには通常、4個の空白文字を使用します。タブ文字は、インデントが8の倍数になるように1~8個の空白文字とみなされます。

[空白][空白][TAB]print "AAA"         # 8文字の空白とみなされる

 

知らなかったyo。

かっこでくくらない代わりにインデントでっていうのはもちろん把握していたものの

これって逆にエラーがわかりにくく感じてしまいます。(慣れだと思いますが)

ただし、熟練のプログラマーさんにいつも「コードが見にくい!」と言われていたので

インデントの意識を植え付けられるのでは??と思ったところ確かに書いていました。

codezine.jp

この記法の利点は、プログラマーにインデントを強要できることにあります。プログラミング言語の初学者には、インデントの重要性がわからずに全て左詰めでコードを書いてしまうようなことがたまにあります。しかし、Pythonではそれはできません。ifでブロックを書きたければ、インデントするしかないのです。そのため、Pythonのブロックは誰が書いても見やすい物になります。

 中括弧やendがないのも利点です。ソース中のノイズが少ない分、本当の処理に意識を集中しやすくなります

 

 確かにPythonのコードは他の言語に比べてすっきり見やすい気がする。整然としてるというか。(たとえ私が書いたとしても)

python.keicode.com

つい;を使ってしまったり とりあえずインデントなしでガーッと書いてしまったりしてエラーが出まくってなんだよそれ!で、だいたいindent errorが出てます。そういうわけでまだ全然慣れませんけど。

PyQは楽しく進めてます。

simpledancer.hatenablog.com

 

話題のPythonオンラインプログラミングサービスPyQを始めました!

f:id:simpledancer:20171018121050p:plain

先日から気になっていたPythonのオンラインサービス、PyQを始めました!

今月は仕事がバタバタしそうだったので、来月からにしようとは思っていたのですが

考えてみると移動時間も新幹線乗りっぱなし、とか長距離座りっぱなしが多いので

手元が空いている時間はあるな。。と思って見切り発車しました!

simpledancer.hatenablog.com

Python初心者は150時間でどこまでいけるのか?

pyq.jp

私のレベル

  • Pythonの文法はProgate,Udemyで少し学んだ
  • Rubyの文法はだいたい理解している
  • 自分では開発未経験
  • サンプルアプリならJavaScript,Ruby on Railsを作ったことがある

と、こんな感じです。

予定としては平均して4時間〜5時間勉強できたらいいなと思っているのですが。

150時間だと10日間で終了!

ただし前半の文法部分はすぐ終わるにせよ、後半はかなり進みが遅くなることを懸念して200時間と想定。

ざっくり見積もって1ヶ月で開発できるくらいになれたりするのかどうか。。。?

ちなみに私はサポートのついていない2980円のプランでスタートしました!

触ってみた感想

  • 細かくエラーの解説がしているのが助かる
  • 環境構築が入らないのでいきなりコードがかけるのでモチベーションがup
  • 模範回答があるのでどうしても困ったら見れる
  • レベルが上がったり細かめに問題が設定されているので飽きない

時折、ちゃんとコードを書いているつもりでもAssertion Errorが出てしまう。。これがちょと解決するのに時間がかかってしまいます。

参考

assert:エラーが出た箇所でプログラムを無理やり途中で止める - code snippets

アサーションエラーが発生しました。どうしたらよいでしょう? (SQL Anywhere 5, 6, 7) | SAP SQL Anywhere

表明 - Wikipedia

 

その他のオンラインレッスン

Udemy

simpledancer.hatenablog.com

Udemy みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 。こちらでもPythonの文法学習が含まれています。

環境開発のやり方なども細かくレッスンがあり、環境整えたい方にはお勧めのレッスンです!

Progate

f:id:simpledancer:20171018123103p:plain

一部有料ですが、文法の基礎部分は無料でできます。

環境開発不要。

prog-8.com

ドットインストール

Pythonのコースは有料ですが1~5までは無料公開されています。

https://dotinstall.com/lessons/basic_python_v3

ドットインストールは様々なレッスンがあって充実しているのですが、

とにかく早口。。

 

まずはPyQを1ヶ月でどれくらいまでいけるのか。。。?時間をなるべく作って手を動かして成長していきたいです。頑張るぞ〜!

Progateはやっぱり優秀なサービスだと実感しました!

なぜ、急にこんなにアクセスが上がったのかな??なんて思っていたところ。

 先日書いた記事がはてなブックマークをたくさんいただいてました!

simpledancer.hatenablog.com

このブログはサブブログなので私の勉強ログとして使っていますが、

誰かのためになったらもっといいなあ〜

初心者ならではの解決ももしかしたら役に立つかもしれないし、今後も地味に更新します!

f:id:simpledancer:20171017114505p:plain

今日は最近改めてProgateを復習してみたので感想です。LV155です今!最高どれくらいいくんだろう。。

しかもイラストが癒されるんです。。可愛い。。

prog-8.com

Progateを改めてやってみた

 SQLのコースすごくわかりやすかったです!!↑

無料のプログラミングレッスンProgate!

私もプログラミングを始めた頃からやってます(一部有料があります)

最近は全く触ってなかったのですが久しぶりに見てみると新しいレッスンが加わっていたり、前のレッスンのリニューアルバージョンも加わっていたりで久しぶりにやってみることにしました!

 

たくさん書籍があるけれど、まずはProgateの無料のところをザーッとやってから本に入るといいかもしれない。

無料でこんな素晴らしい教材を作ってくれてありがとう。。。(有料の買わなくてごめなさいw)

進んでいないようで確実に進んでいることを実感

去年やったhtmlコースなどが新しくなっていたので、そちらもやったり他の言語の最初の方もさらっとおさらいしてみたら。。。

前は暗号にしか見えなかったものが普通に理解できている!!(もちろん至極当たり前な内容ばかりなのですが)

ちょっと感動すら覚えました。

全然前進してない(しかも後退している気もする)と思っていても着実に何も知らなかった頃よりも身についていることがわかる。。そんな自分を褒めてやろう。(自分を甘やかせまくってます)

ついつい「あの人はあんなにできてるのに」ってプログラミングに限らず思ってしまうけれど、他人と比べたり自分ができないできないってせめても仕方ないですから

それよりも過去の自分よりもちょっとでも進歩した!って褒めてあげましょう!

そんなわけでProgateはいろいろ教材をやった後に再度確認のためにやるのもオススメです!

simpledancer.hatenablog.com

 

Pythonの学習サービスが気になる!初心者には書籍よりもオンラインレッスンの方が向いていると思う。

f:id:simpledancer:20171014120634p:plain

今月は出張続きでなかなかプログラミングの時間が取れていません。Railsチュートリアルを久しぶりにちょっとやり直してみよう!と思ったりしていたのですが、滞り中です。。

simpledancer.hatenablog.com

いくつかサンプルは作ったものの。。。自分で開発できる気がしない

先日、Rubyで作る! ビットコイン自動売買システム !を作成した迫さんのブログでPyQが紹介されていました。

 

実はUdemy でもPythonのレッスンはたくさんあって、私も一つ買いました。

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習  

これ買ったんです、で大まかには終わったんですが、私のPCだけでしょうか?他の方もそうなのでしょうか?他のUdemyのレッスンよりも動画が止まるんです。。(なぜだ。。)

simpledancer.hatenablog.com

それでちょっとしたフラストレーションが。。ただし説明などは聞き取りやすく前半は大変わかりやすかったと思います。私はもともと理系ではないので、かなり後半は???が飛び散りますが。。

Rubyも中途半端なのになぜPython?ってなりますよね?単に興味が沸いただけです。

そこでPyQのことを知りました。

pyq.jp

私の場合、文法はJavaとかRubyをやったので割と把握だけはできているように感じますが、自分でアプリを作ったり設計をすることがよくわからないのです。本を読んでその通りに作ることやエラーもなんとなく解決をすることができるようになったのですが全く実践レベルにならない。。。

それをPyQだとこういう感じで段階が踏めそう。。

f:id:simpledancer:20171014120538p:plain

プログラミングは環境開発が面倒だ

私はJavaから入ったので、それに比べたら他の言語の環境開発はすごく楽な気がします。実際Pythonも環境開発自体はできてますし、Rubyもローカル開発環境は人に聞きながらやることができました。

だけど、最初に何もない環境から開発ってすっごくハードルがアガると思うんです。

今はcloud9とかあるので随分楽ですが環境開発は追々でもいい気がする。。

ちなみに以前受講したテックアカデミーもローカル開発環境ではなくてcloud9で進めて行きました。

techacademy.jp

それよりも言語の文法をだいたい把握して、どういう風にこれが動くのか?とかわかるように手を動かして行ってそのあとに環境を整えても遅くないんんじゃないの?と思うわけです。

なのでこのPyQとかはそのままブラウザでプログラミングできるので最初はとっかかり安い!

simpledancer.hatenablog.com

UdemyもPyQも本1冊分の値段で学べる

私がよく利用していUdemy は買いきりで安いもので1200円くらいから(無料のものもありますが、有料の方がやっぱりわかりやすいです)

しかも書籍って意外と誤植が多かったり、バージョンが対応してない(情報が古いまま)ということもしばしば。もしすでにプログラミングをかじってる人にとっては書籍のほうがメリットがあることもあるかもしれませんが、初心者にとってはちゃんとアップデートしてくれるオンラインの方がわかりやすいと思います。

 

プログラミングスクールはちょっと高価で手が出にくいけれどこういったオンラインサービスなら本1冊分の値段から始められるのでハードルがぐっと下がると思いました!

私もこの出張月が終わったらPyQやってみたいと思います♪

 

simpledancer.hatenablog.com

 

propoko.com

エラーのエンドレスループからひとまず脱却しました!rails5のエラー

f:id:simpledancer:20170924144741p:plain

オリジナルのアプリを作ろうと思い、以前利用していたテックアカデミーのカリキュラムをたたき台にして作っていたところ途中からエラーのエンドレスループに突入し

肝心のコードを書いても

バージョンが違うからrubyのなになににアップグレードするとか

コマンドがnot foundだとか

require jquary でsprockets error とか

今までサンプルサイトを作った際には全く出てこなかったエラーがバンバン出てきて

エラーが出てきては調べ、さらなるエラーが出て全く進みませんでした!

コード自体はサンプルサイトと特に変えていないにもかかわらずエラーがでまくっていたのは今回はrails5で作っていたので諸々違うのですね。。

rails5にして陥ったエラー

今後も確実にエラーは出てくるでしょうが、なんとかエンドレスループから抜け出たので今の所忘れないうちに覚書をしておこうと思います。

rubyのバージョンのアップグレード

cloud9で作っていますが、rails5に対応するのがrubyのバージョンをアップグレードしなくてはいけないようで、それのやり方を色々ググりました。

無事アップグレードはできたようです。

 

command not foundエラー

コマンドをターミナルに打ち込んでもエラーが出まくる!

そんなこと言われましても。。。どうすればいいんだ?ということでググりまくり

teratail で質問してみました

f:id:simpledancer:20170924183332p:plain

pathを通してないからだと回答がきた

f:id:simpledancer:20170924183420p:plain

Pathってなんだよ、とさらに調べてなんとかcommandが打てるようになりました。

Rails Girls - Japanese

「指定されたパスが見つかりません。」と表示される場合があります。これはインストーラがrailsコマンドのパスを正しくセットアップできていないときに起こりますが、簡単に直すことができます。以下のコマンドを実行してください。

gem install rails bundler --no-document

作業完了後に、もう一度以下のコマンドを実行してください。

rails -v

以下のように、インストールされたRailsのバージョンが表示されればOKです(バージョンの番号は違うかもしれません)。

Rails 5.1.4

もしもRailsのバージョンが5.1よりも小さい場合は 以下のコマンドを実行することでバージョンアップできます。

gem update rails --no-document

sprocketsエラー

エラー画面にsprocketsなんたら。。と書いている。

さらにターミナルにはActionView::Template::Error (couldn't find file 'jquery' with type 'application/javascript'
Checked in these paths:以下略

エラー画面にもrequire jquary のところがエラーになっている。

ググりました。

teratail.com

こちらを参考に、gem fileにgem 'jquery-rails'

を追加し、bundle installしたところ、エラーが消えました!

サンプルアプリから脱却するのは難関であるが、自分で調べてエラーが消えると嬉しい

テックアカデミーとか他の書籍のコードを真似てそのままを作るのはエラーが出ても割と解決がしやすかったりしたのですが(回答があるから)

ちょっとでも仕様を変更したりするとエラーが出てしまって、もう全然進まなくてイライラする!そして調べたやつがヒットすることもあればなかなかバージョン違いでうまくいかないことがあります。ただ、自分で調べてエラーが解決したときはめちゃくちゃすっきりして嬉しいです!

身近に聞く人がいればいいのですが、そうではない場合、自分でググったりteratail は役に立つなと思いました。

まだまだ続きますがここからさらに設計をして進めていく予定です。

 

エンジニアに英語が必要?エンジリッシュに登録してみました。

f:id:simpledancer:20170918145022p:plain

エンジニアの人って理系出身の人、実は英語苦手な方が多いのですね!

よくそれでコードとかいやになんないのかなーなんて思っていました。

私はプログラミングスキルも英語スキルもあまりないですが、英語に関しては

あまり拒否反応というのはないんです。英語昔から好きで。

でもすごいできる!ってわけではないので、コードエラーが出た時はよくわからない単語にイラっとします。。

そういうわけでプログラミングと英語どちらもできればいいな〜と思って色々調べたところこんなアプリを見つけました!

エンジリッシュ

e-lish.io

登録は簡単で、ユーザー名・メールアドレス・パスワードを設定するだけで始められます。無料のアプリです。

IT系の英単語を覚えながら理解する単語帳みたいな感じ、かな?レベル別に分かれていて勉強ログが残るのでモチベーションが保てるかも。

f:id:simpledancer:20170918145357p:plain

ちょっとした空き時間とかにできるのでいいかも!

まずは必須のIT英単語から私は始めてみたいと思います。

1日1回はやってみようかな。

Udemyのビットコイン自動売買アプリ制作完了!しました

f:id:simpledancer:20170913091045p:plain


今日約1週間ほどでUdemy Rubyで作る! ビットコイン自動売買システム カリキュラムを終えました!

simpledancer.hatenablog.com

simpledancer.hatenablog.com

ということでなんだかんだ1週間かかってしまいました!

作り終わった感想

プログラミング以上にビットコイン自体が私にとっては未知のものだったので

それに触れられたのがまずは新たな発見でした。

自分はまだ保有はしていないので、実際売買自体はやってないですが!

ビットコインについては今後少しずつかじっていこうと思います。

この教材についてはとっても秀逸にできていて、Rubyを全く触ったことのない人でも大丈夫な内容だと思います。

というのは、最初いざ、Rubyなりプログラミング言語の勉強を始めようとすると、文法の部分が一通りやろうとするとかなり長くなってしまうので、そこで飽きてしまったりするけれど

こちらの教材は文法部分がかなりまとまってるので、初心者にも、また学んだことがある人には復習にもなるし丁度良い量だと感じました。

実際ビットコインを扱う後半は、私自身が全くビットコインについて無知だったので

APIのキーを発行するのに本人認証が必要だとかが全くわからず、その辺の手続きに数日費やしてしまいました!

そうでなければ1日〜2日でも十分にできるボリュームかと思います。

私がもしかしたらもともとRubyプログラミングをかじっているから余計わかりやすかったのかもしれませんが、難しい説明とかはあまりなかったように思いますし(かなり噛み砕いた説明してくださってました)、実際学んだ文法がアプリケーションのどこに必要だったかなども気づきやすいレッスンでした!

 

何か一度アプリケーションを作ってみたいと思ってる人は是非チャレンジしてみてはいかがでしょうか?