アラフォーからのプログラミングとデザイン

大人から始めたプログラミングとデザインについてのあれこれ

Railsコンソールについて(Railsチュートリアルtoy_app編)

Rails コンソールについて

Railsのconsoleとは、Railsアプリケーションを対話的に操作することができる便利なツールです。

ターミナルにrails console(rails cでもOK)打ち込む

f:id:simpledancer:20171204103458p:plain

ちなみに終了する時はexitと打ち込む

ちなみに今やっているRailsチュートリアルのToyappではrails consoleを使って何をするかというとユーザーとマイクロポストの関連付けを確認するだけです。

まあ、今までざっくり良くわからずにrails consoleって打っていました。

他にもいろいろな使い方があるので忘れないように参考ブログを貼っておきます。

参考

techacademy.jp

rails console は主に次のような場面で役に立ちます。

いろんなメソッドを試しながら実装したいとき

何かのロジックを実装するときにどういった処理を書けば良いのか試行錯誤したいときがあります。
そのとき、毎回 rails 内のコードを書いて動かして試してみるというのを繰り返すのは大変です。
rails console を使えば、すぐにコードを実行することができますし、色々なメソッドの動きを確かめながら実装することができます。

エラーが起こったが原因がわからないとき

rails console はデバッグにも役立ちます。
エラーが起きたけどエラー文を見ても原因がわからないときなどは rails console を使ってみましょう。
rails console を使えば、実装したコードを1行ずつ実行して結果を見ながらデバッグすることができます。そのため、どの行でなぜエラーが起きたのかという原因を突き止めやすくなります。

www.sejuku.net

 とりあえず、毎日勉強したらその内容をブログにアウトプットして脳内を整理する習慣をつけることにしました!まとまってませんが今回はこれだけ!

simpledancer.hatenablog.com

RailsのRESTful構造について調べてみた。

f:id:simpledancer:20171203100907j:plain

今日は昨日突き指した手でキーボードをカタカタしてます。

なんていうか、打ちにくいし包帯し直しましたが薬指のテーピングが他のキーを干渉氏まくって打ち間違いが多い。

Restってなんだろう

今までざっと呼んでいたから全く理解してませんでした。RESTって何よ。意味がわからない。読んでもわからないw

RESTは、コンピュータ科学者Roy Fieldingによって提唱された「REpresentational State Transfer」という概念に基づいています 

 謎です。ではREpresentational State Transfer とは?

インターネットそのものやWebアプリケーションなどの、分散・ネットワーク化されたシステムやアプリケーションを構築するためのアーキテクチャのスタイルの1つです。 

 

REST理論そのものはかなり抽象的ですが、RailsアプリケーションにおけるRESTとは、アプリケーションを構成するコンポーネント (ユーザーやマイクロポストなど) を「リソース」としてモデル化することを指します。これらのリソースは、リレーショナルデータベースの作成/取得/更新/削除 (Create/Read/Update/Delete: CRUD) 操作と、4つの基本的なHTTP requestメソッド (POST/GET/PATCH/DELETE) の両方に対応しています

Rails開発者にとっては、RESTfulなスタイルを採用することで、作成すべきコントローラやアクションの決定が楽になります。作成(C)・取得(R)・更新(U)・削除(D)を行うリソースだけでアプリケーション全体を構成してしまうことすら可能です。

まあ、Railsチュートリアルの説明読んでもなんかよくわからないのでRESTについていくつか検索してみました。

参考ブログ

qiita.com

wp.tech-style.info

  • HTTPの技術を最大限活用する、シンプルな設計方法
  • 「何のリソースを」「どのように」操作するかをURIやHTTPメソッドで表現する
  • リソース指向の設計

 

ちょっと砕けてきました!で、リソースっって?何に当たるの?

RESTは「リソース」を扱うための考え方であり、「リソース」とは、ブログの記事であったり、アップロードした写真であったり、もしくはWebページ全体のコンテンツであったりといった、ひとかたまりの情報を指します。

thinkit.co.jp

 

まとめRESTとは

WEB上のひとかたまりの情報を扱うための考え方

これでどうでしょうか??砕いてみると。

本当、理解に苦しみます。でもってすぐに理解できるものでもないのでしょうが。。

REST (API)が理解できないのでまとめてみる:株式会社サブスレッド

simpledancer.hatenablog.com

simpledancer.hatenablog.com

プログラミングブログが100記事を超えました!

f:id:simpledancer:20171202111438p:plain

等プログラミングブログが100記事を超えました。(ちなみに試しにCanvaを使ってみました)

www.canva.com

このブログあまり有益な情報がかけてないのと、メモ代わりってのもあって

さらに私自身よく心が折れたり

時間がないとか、眠たいとかしんどいとかの理由で

結構勉強をサボってます。

だらだら書いていましたがそんなこんなでも100記事を超えました。

プログラミングを知って2年が経ちました

何気にプログラミングの存在を知って2年が経ちました。

最初はいけあやさんの本をたまたま手に取ったところから始まりましたが

そこから独学でJavascript(挫折)→就職前提の0円スクールでJava(挫折)→独学Ruby→テックアカデミーRuby(コンテスト間に合わず)→デザインにはまる→Pythonに浮気(飽きる)→Rubyに戻る(イマココ)

就職活動はやめてしまいましたが一時期PHPの仕事をするかもしれない。。という話になったのですがそれも流れ、とりあえずコーダーの仕事でもしようかと思ったけれどあまり興味がわかず、やっぱりやりたいことやりたいし作りたいもの作れたらいいかな。。なんて割と甘い考えのイマココ状態です。

で、ややこしいけどやっぱり今の所Rubyが一番いいな〜と思ってます。

Javaは一生やりたくないです。

Pythonはまたそのうちかじるかもしれません。

個人的にはリンダリウカスさんのようなオシャンティな女性に憧れます。

www.huffingtonpost.jp

北欧ってなんでこんなにおしゃれなんでしょうか。。

一押しのプログラミングスクールはテックアカデミーだと思う

なんとTechAcademy [テックアカデミー] オンラインブートキャンプ全12コースの「ウケ放題」 でお安くなっているメールが届きました。

大学生の人は受験シーズン学校休みになるからこの機会に受けたりするといいかもしれませんね。私ももし大学生に戻ったならば迷わずプログラミングの勉強をしてるとお思います。

f:id:simpledancer:20171202104128p:plain

ちなみにいろんなオンラインスクールを調べましたが、私が受けたTechAcademy [テックアカデミー] が一番評価が高いです。

simpledancer.hatenablog.com

実際メンターに質問したらフィードバックが秒速で帰ってきます。

時々時間外でも返信くれます。(これは有り難かった!)他のオンライン受けた知人に話すとテックアカデミーにすればよかった。。と言われました。

ちなみに無料体験1週間もできるのでかなりオススメです。

 オンラインブートキャンプ 無料体験

 今後の予定

先日某ブログでお世話になってる人経由でコンサルを受ける機会がありました。

ブログの方向性についていろいろ相談に乗っていただいたのですが

このプログラミング×パフォーマー という掛け合わせはかなり希少性が高いということで少し内容を絞って集中することを勧められました。

simplelifedancer.hatenablog.com

そういうわけでパフォーマンスの仕事もしますがプログラミング(特にRuby)を集中することにしようと思ってます。そもそもの勉強時間が少ないのと今月は鬼のように出張が入ってしまったのですが、出張先でも勉強できるように有線Lanの接続コネクタもゲトしたのでwifi繋がらないいわけを出来なくしました。

  • ブログのリライト
  • Railsチュートリアルを引き続き
  • Udemyで買った教材アプリを再度勉強
  • 1月末にテックアカデミーのコンテストがあるのでそれに向けてのアプリを考える(テックアカデミーは受講終了していてもコンテスト応募できます)

私がプログラマーとなるのはきっと当分先だとは思いますがこれからもじわりじわりとプログラミングを続けます(多分)

 

simpledancer.hatenablog.com

 

復習中:Railsチュートリアルを細かく見ていきます。

先日からの復習Railsチュートリアル

simpledancer.hatenablog.com

細かく細かく:ルーティングの文法など

f:id:simpledancer:20171129201419p:plain

表示したい文字列を定義

def hello
render html: "hello, world!"
end

 

root 'controller_name#action_name'

ルーターはコントローラとブラウザの間に配置され ブラウザからのリクエストをコントローラに振り分ける (=ルーティング) 役割を果たします

 root コントローラ名#アクション名

 

gitについてももう一度

gitはバージョン管理システムですがgitってなんとなくはわかるけどあまりちゃんと使いこなしていないと思う。そういうわけで改めてちょっと読み込もうと思いました。

GitについてWeb上で読める本

Git - Book

これを読み込む!

 

GithubとBitbucketの違い

どちらも登録しているのGitリポジトリを管理するサービスですが

Github→リポジトリを一般公開する場合は無料、公開しない場合は有料

Bitbucket→共同作業者が一定数以下ならリポジトリを公開しなくても無料、共同作業者が一定数を超えると有料 

基本的にGitHubを使ってますがこうしてみるとBitbucketの方が自由度が高いのかなあ??

どっちもリポジトリを管理するというのは同じなのでどちらを使ってもいいようです。

GitLabと言うサービスもあるそうですが日本語の情報が少ないのだとか。

qiita.com

無料プログラミングサービスを使う

無料でもたくさんプログラミングを学べるサービスがありますが

去年有料のテックアカデミーをやった時は結構手取り足取り教えてもらえたので

有料is betterです。

でもできることならば無料ほどお得だしなということで

有名どころのドットインストール、Progateの他に動画学習だとPaizaラーニングとかSkillhubとかがあります。特にskillhubは動画の説明の仕方がわかりやすかったです

skillhub.jp

できるところまで無料でやってほんわかわかってきたあたりで有料に移行するのがいいのかしら?と思ってます。でもプログラミングもやってないと全然忘れてます。去年あんなにやったのにテックアカデミーの内容忘れちゃったよ。

 

simpledancer.hatenablog.com

Railsチュートリアルを復習して気がついたこと:Hello app編

f:id:simpledancer:20171127125722p:plain

先日から久々にRailsを復活しました。

で、Railsといえば、やっぱりとりあえずはRailsチュートリアルでしょう!

ということで久々に最初からRailsチュートリアルを始めることにしました。

で見落としていた部分をメモ代わりに記して行こうと思います。

railstutorial.jp

simpledancer.hatenablog.com

設定編

Railsチュートリアル他、わたしはだいたいCloud9で行っているのですが

インデントの設定を変えられるんですね、かなり見落としていました。

Rubyの世界では、インデントに2つのスペースを使うのがほぼ常識になっているので、このエディタのインデント設定もデフォルトの4から2に変えておくことをおすすめします。インデント設定を変更するには、右上の歯車アイコンをクリックして [Code Editor (Ace)] を選択し、[Soft Tabs] 設定を開いて編集します (図 1.4)。設定の変更はその場で反映されるので、[Save] ボタンをクリックする必要はありません。 

 ワークスペースの設定が終わったので、設定の歯車ボタンからインデントを変更します。4→2に変更しました!

f:id:simpledancer:20171127122033p:plain

 

理解して使ってなかったコマンドライン

コマンドラインをあまり理解せずに使っていました。

割と簡潔に書かれているのでちゃんと読めばよかった。。

知ってて使っていたのは上半分くらいでした。(反省)

説明 コマンド コマンド例
ディレクトリ内容の表示 ls $ ls -l
ディレクトリの作成 mkdir <ディレクトリ名> $ mkdir workspace
ディレクトリの移動 cd <ディレクトリ名> $ cd workspace/
上のディレクトリに移動   $ cd ..
ホームディレクトリに移動   $ cd ~ もしくは $ cd
ホームディレクトリ直下のworkspaceに移動   $ cd ~/workspace/
ファイルの移動やリネーム mv <移動元> <移動先> $ mv foo bar
  mv <現在の名前> <変更後の名前>  
ファイルのコピー cp <コピー元> <コピー先> $ cp foo bar
ファイルの削除 rm <ファイル名> $ rm foo
空のディレクトリの削除 rmdir <ディレクトリ名> $ rmdir workspace/
中身のあるディレクトリの削除 rm -rf <ディレクトリ名> $ rm -rf tmp/
ファイルの内容の結合と表示 cat <ファイル名> $ cat ~/.ssh/id_rsa.pub

 

gemの~>について 

あまり意味を考えずにとりあえず消したりたしたりしてたgemの内容ですが

gem 'coffee-rails', '~> 4.0.0'

このように指定すると、coffee-rails (これもAsset Pipelineで使うgemです) のバージョンが4.0.0より大きく、4.1より小さい場合にインストールされます。つまり、以下のコードを実行すると、>=という記法では常に最新のgemがインストールされ、~> 4.0.0という記法ではマイナーバージョンの部分に相当するアップデート済みのgem (例: 4.0.0から4.0.1) をインストールします。後者の場合、メジャーバージョン (例: 4.0から4.1) のリリースはインストールされません12。残念ながら、経験上ちょっとしたマイナーアップグレードですら問題を引き起こすことがあります。このため、Railsチュートリアルでは基本的に事実上すべてのgemでバージョンを「ピンポイントで」指定し、がっちり固定してあります。ベテラン開発者であれば、Gemfileで ~> を使って指定し、最新のgemを使って進めてもらっても構いません。ただし、バージョンが異なると本チュートリアルに記載されている挙動と異なる可能性がありますので、その場合は各自でご対応願います。

 

 ~> に関して全く気にしていなかったのです。

固定するために~>を消します。今知りました。今初めてこいつ→~>

の存在意義を知りました。

f:id:simpledancer:20171127124421p:plain

railsサーバーの実行

cloud9の場合は

rails s -p $PORT -b $IP

でサーバが立ち上がります。

が、普通に今まで何も考えずにこれを打ち込みサーバーを立ち上げていました。

ちなみにローカル開発環境ではただ rails s でオK。

$IP・PORT→ 環境変数 (IPアドレスとポート番号のこと)

全然気にしてませんでした。

Hello world を出すだけでここまで今まで無視していたとは自分でもびっくりです。

(最初はでも何もわからなくてもとりあえずやってみる方がいいのかな)

とりあえず引き続きチュートリアルを最初からゆっくりじっくり進めて行ってみようと思います。

simpledancer.hatenablog.com

 

プログラミング勉強を一旦整理する。やりたいことは全部やりたい!

f:id:simpledancer:20171021143155j:plain




プログラミングを始めたりデザインを学んだり、人工知能について調べたりブログのカスタマイズにはまったり。。。

 

最近自分の方向性がわからなくなってきました。

あれ、就職するんじゃなかったっけ??

と、自分自身でも突っ込みたくなるくらいですが就職活動休止中です、というかむしろ今は就職じゃなくて在宅でなんとかなるように行動中です。

なぜなら会社に毎日通うのがいやということと、自身のパフォーマンスでやりたいことがどんどん出てきてしまって時間がないんですよね〜(という言い訳)

 

なのでこの先やりたいこととかをまとめてみようと思いました。

プログラミング

f:id:simpledancer:20171104033510j:plain


プログラミングをやり始めて、フリーランスに憧れて勉強したはいいが、若干迷子

結局何をやりたいんだっけ私?

Webサービスを作ってみたい

マッチングサービスとか作ってみたい、というのが当初の目標でした。

しかし、勉強すればするほどマッチングサービスってめっちゃ難しいやん!

例えばRailsで作ってるサイトが確かPairsみたいなサイトなんだけど

そういう大きい規模じゃなくていいんだけど。

ブログサービスみたいなのとか掲示板のサンプル作るだけでも結構大変。

できるだけ簡略化した設計図を作ってオリジナルサービスを作ってみようとは思っている。

simpledancer.hatenablog.com

機械学習・Python

Udemyで購入した機械学習の教材。

なぜかこれだけがやたら音声がプツプツ切れるんですよね〜後半部分。

で、ちょっと集中してPython勉強するか!と思いPyQという有料オンライン教材を初めて見ました(1ヶ月)

simpledancer.hatenablog.com

確かにわかりやすいのですが、レベルアップすることを目標としてしまって

あれれ、結局Pythonで何やりたいのよ。って感じ。

教材の量が膨大なのでついついこなすことに注力してしまい、このままだともったいないなと思い先日レッスンを一時中断することにしました(ただし料金は日割り計算で返ってきます!)

ただPythonをやったおかげで、rubyのコードを見たときに今までいかにインデントを適当にやっていたかに気がつけました!

それが一番の気づきかもw

基本的な文法は書き方が少し違うだけでどの言語も同じような感じですね!

需要は今後かなり増えるようなのでプログラミングまずはじめにやるならもしかしたらPythonの方がいいのかもしれないなあ〜なんて思います。

simpledancer.hatenablog.com

戻ってきたRails

そんな感じで久々にこの間Rubyのコードを書いたら

結構忘れてたけどPythonやったおかげでインデントを気にしながらコードを書いたら

なんかわかりやすくなっていた(気のせい?)気がする。

あと、やっぱりやっててRubyの方がなんとなく好きな気がする(気のせい?)

私はまあ、あまり深くやっていないので今後もいろいろ浮気をすると思うけど

エラーで挫折して放り出す癖をやめたいです。

この本プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)が気になるので、今やってる課題が終わったら買ってみようかな〜と

結局文法を覚えたり勉強したりしても自分で開発できなければ意味がないわけで

なんだろう、ここを超えたら楽になるのに、みたいな通過点とかがきっといくつもあるのだろうけど、それを越える前に休憩したりとかしてるからなかなか前に進まないのかなあ〜うーん。

でも、その割には地味にやめずに続いてる私ってすごいかもしれない。(ここだけ自分褒め)

私はこのブログは技術メモにしようと思っていたけど、今後は弱音をどんどん吐くことにしました!

simpledancer.hatenablog.com

圧倒的にかけてる時間が短いというだけの話

f:id:simpledancer:20171021142929j:plain


と、ここまで書いてきて

ちょっと勉強したくらいでプログラマーになれるとか、よっぽどの天才じゃない限り無理ですよね。そんなことはわかっているはずなのに

「私には才能がないんだ。。」なんて思ってしまいます(いや、確かにあまり向いているタイプではないと思うけれども)

冷静に考えて今の仕事(ダンサー)なんて何十時間どころか練習も本番も含めてどんだけやってきたんじゃい!って話なわけで。

それをプログラミングに当てはめてみると、いや、少なすぎでしょ!って。

まあ、生きていくためには仕事もするし、ダンスの仕事自体はやめたくない。ということは時間を作り出すしかないわけです。

そういうわけでちょっとくらいはストイックにプログラミングに時間をさく時がきたようです。テックアカデミーをやっていた時は10時間以上1日やってましたけど(太りましたけど)なぜできたかというとやっぱり「作ろうとしてるもの」があったからだと思うんですね。あと、プレッシャー。

なので年内に何かこれっていう課題を決めて(レッスンに行くのもあり)一つ取り組んでみようと思います。

やりたいことは全部やりたい!!

ということで今日からその環境作りを始めます!効果が出たらまたブログにします♪

simpledancer.hatenablog.com

Pythonの学習サービスPyQを一旦やめることにした理由

f:id:simpledancer:20171022180002p:plain


先月から始めたPython学習のPyQですが一旦学習を中止して購入をやめることにしました!

simpledancer.hatenablog.com

教材としてはとても優れているし(だんだん難しくなってきたけど)

レベルアップしていくので達成感もある。

しかしやっていて思ったことを書きます!

やめた理由

教材としてはとっても素晴らしいしお値段もリーズナブル!

ただしやめた理由は私の性格の問題です。

というのも、私のざっくりとした性格のため、説明をほとんど読まずに流してしまったり(模範解答があるので)写経ばかりで考えることを難しいレベルになるとついつい後回しで「こなす」というのを重視してしまったがために

全く理解できていないのにガンガン進めてわけわからなくなってきました。

それはそれでありなのかもしれませんが、もう少し丁寧にしなければ結局なんだかやっている意味ないかな〜なんて思ってしまいました。

あとPyQは途中でやめても日割りで返金してくれるという、優しいサービスです!

昨日2回目の請求で支払いが終わったんですが、残りの日数分は日割りで返金されるそうです。

あと、物理的に今月〜来月は仕事の関係であまりPythonが勉強できなさそうなので月単位なのもあってちょっともったいないな〜と思ったのです。なんとか時間を捻出することもできたとは思いますが優先順位を考えて一旦やめることにしました。

PyQのいいところ

やめてはみましたがPyQのサービス上のいいところは

  • やめても復活した時に学習履歴が引き継げる
  • 日割りの返金がある
  • ヘルプが丁寧(カジュアルに始めたり、やめたりできる)

だと思います。

結構サービス系ってやめるときの手続きがめんどくさかったりしますが、すごく簡単に中止することができました。こういうのありがたいし、またやりたいなと思ったら簡単に始めることができます。

月単位なので余裕があると見越して始めないとちょっともったいないかな?と思います。

simpledancer.hatenablog.com

今後の予定

年内はやたらと仕事が入ってしまったのでそれをこなしつつ

隙間時間にrailsを少し復活したり行けるか微妙だけど勉強会など参加できるものは参加していきたいと思ってます。

なかなか進まないし、私には向いてないんじゃないだろうかって悩むこともあるけどエラーが解決した時は嬉しいし、やっぱりアプリとか開発できたら楽しそうだし。

マイペースでも今後も続けて行こうと思ってます。

あと、買いきりタイプのUdemyはそういう意味でも復習するにはとってもいいなと(半永久的に教材が見れるので)。購入した教材を再度ちょこちょこ復習します。

simpledancer.hatenablog.com

いちいち調べるのがめんどくさい。。意外と躊躇する特殊文字の入力の仕方

f:id:simpledancer:20171112183818p:plain

特殊文字、これプログラミングをしていてもブログを書いていても

あ。。あれどうやって入力するんだっけ、しかもなんて読めばいいかもわからない。。。毎回調べるのってめんどくさいなあ〜

そんな時Macだとキーボードビュアーを使ってカンニングすることができます!

参考にさせていただいたサイト

miki73.com

久しく使ってなかったんですがˆ  「 ˆ 」とか、しかも読み方わからないし!!

Pythonだと集合の演算のところで出てきました!

f:id:simpledancer:20171112183734p:plain

キーボードビュアーの使い方

詳しくは上記のブログに詳しく書いてくださっています。

流れ的には

システム環境設定

キーボードを選択

右上の文字マークのところをクリックしキーボードビュアーを表示を押すと

キーボードが出てきてくれます。

そしてoptionキーを押すとキーボードビュアーのキーボードの押す部分がオレンジ色に変わりますので、そこに該当するキーボードを押せば特殊文字の入力が可能となります!

 

macを長年使っていながらこの機能は使っていませんでした!これで特殊文字の度に調べるという手間が省けます!

simpledancer.hatenablog.com

 

 

Pythonで頻発するエラーの種類

f:id:simpledancer:20171104033510j:plain


頻発するエラーがAssersion Error

これ調べるとPythonではなくてJavaの説明がたくさん出てきました。

そもそもAssersion Errorってなんなんだよってことで(Rubyの時は出てこなかった)

 

Java 入門 | アサーション

アサーションは、プログラムの仕様をソースコードに明記するものです。具体的には、プログラムの実行時には発生し得ない場合を false とする boolean 式を含み、仮に false になるようなら java.lang.AssertionError を発生させます。AssertionError が発生する場合は、プログラムが予期しない動作を実行していることを示しています。当該行に制御が渡るまでに、なんらかのバグが作り込まれているということです。

Python入門 - 制御構文

Pythonの方で調べてみると

assert はテストの際に値が期待通りに設定されているかを確認するための仕組みです。__debug__ が True の時のみ動作し、式を評価して偽であれば、AssertionError例外を発生させます。python を -O オプション付きで起動することで、__debug__ の値は False になります。

こっちのほうがちょっとわかりやすいですね。

simpledancer.hatenablog.com

写経しても出てくるエラーの対処

とにかく、最初は意味わからなくても写経をしまくります。

なんかそのうちに文のリズムというか。あ、なんとなくこういう法則で書かれているのかっていうのがわかってきます。(もしかしたらこれって遅い学習方法かもしれないけど)

でも写経しても出てくるエラーが冒頭のアサーションエラー。

あとはinvalidって出てきます。

だいたいが{}とか回答の日本語が違う、とか spaceが一個足りないとか。

PyQでやると、一応実行はできるものの、判定を押すとエラーが出て先に進めない!

コードをコピーして貼り付けるのが一番早いので、問題の意味がわかれば、先に進めない時はこれで行ってしまいますが、コードをコピペすると結局どこが悪かったのかわからないので最終手段にします。

そしてインデントエラーが頻発します。これはとにかく他の言語では経験できないくらい頻発。ただ今までインデントってあまり意識せずにきてしまったので癖付けるっことができるのでいいのかな。(Pythonは;で括らずにfor文などはインデントがカッコ代わりになるのです。スペースがインデントで決まるというか)

simpledancer.hatenablog.com

いかんせんまだまだ勉強が滞りますが地道に。地道にやっていこうと思います。

あと、圧倒的に勉強量が少ないのでもう少しプログラミングの時間を増やしてあげないとと。。(思いながらもなかなかねえ。。。)

 

 

 

当ブログのデザインを変更しました!デザインをカスタマイズせずとも割といい感じ。

f:id:simpledancer:20171021142753j:plain


ちょっとこのブログのデザインに飽きてきたのでテーマを変更してみました!

カスタマイズはまだやってませんが、追い追い直していこうと思っています。

simpledancer.hatenablog.com

ブログのサムネイルとタイトルが表示されるので見やすいし、このテーマが結構好きです。ワードプレスっぽい。

そしてこのテーマはカスタマイズしなくても結構出来上がっているのでオススメです!

ブログカスタマイズのオススメ記事

simpledancer.hatenablog.com

simpledancer.hatenablog.com

simpledancer.hatenablog.com

simpledancer.hatenablog.com

デザインについて

プログラミングのPythonの勉強とパフォーマンスの練習が忙しいのにかまけて、デザインの練習が一向にできていませんが

Photoshopの勉強を独学でするならUdemy Webデザイン入門オンライン講座 はボリュームが結構あるのでオススメです!

基本的なところからかなり突っ込んだ内容まで網羅してます!

 

なんかいろいろ手を出しすぎて回ってないんですがとりあえず地道にPythonの勉強をぼそぼそやってます。

 

初心者がインデントの重要性を知るには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