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

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

魔法にかけられる人にならないために。これからの働き方の考え方を見直す本を読みました!

今日kindleでこの本を買いました!

直接プログラミングは関係ないんですが。年齢層もちょっと近い落合氏の本が気になり読んでいます。

私自身もPCを触ったのは確かwindows95が最初かな?多分。

姉のPCを初めて触って、最初はソリティアゲームしてたくらいですけど

姉が大学を出て一人暮らしするようになってからは実家のPCは私専用になり、自分でhtmlを書いて簡単なホームページを作ってみたりすることもありました。その頃からプログラミングを知っていたなら今頃エンジニアになっていたかもしれませんね。

 

PCとの出会いは早かったけど10年以上使いこなせなかった

ぶっちゃけ、今でもシステムのことはほとんどわからないし、プログラミングもまだまだ全然だし。webデザインだってcssはコピペ貼り付けでやり切るということしかやってないです。

30の時にOLを始めるまでエクセルはほとんど使ったことがなかったし、検索するという癖がプログラミングを勉強する35歳までつかなかった!

SNSはかなり詳しい方だと思いますが(初期からFacebook使ってた)ここ数年のコンピュータの恩恵というのはすごいと思いましたが、それをうまく使えていない人がほとんどだなってこの本読んで感じました。

誰でも使える魔法の箱

プログラミングもビジュアルプログラミングというものがあったり、

アプリがあればスマホで簡単に画像を修正したりSNSでアップしたり。

ブログもブログサービスを使えば簡単に全世界に発信することができる。

でも、それは使い方を知っているだけで仕組みを知らないということですね。

落合氏は「魔法をかける人」になるか「魔法をかけられる人」になるか。

という表現をしています。

システムを設計する人がかける人

アプリを使う人がかけられる人

となればやっぱりただサービスを享受しているだけでは魔法をかけられる人だと思う。

プログラミングについても、プログラミングは手段である。設計することができて初めて役に立つということだとも言えます。しかもただコードがかけるってだけではこの先簡単にコンピュータに取って代わられたりします。

資格やスキルを取得することを目標にしていたら将来はコンピュータに使われる人

外国語の資格やスキルも、きっと将来はもっと精巧な翻訳機ができて、勉強が必要なくなる。

本の中でも今現在、中間管理職的な部分が将来はどんどんコンピューターに取って代わられ、その代わり末端の人と接する部分だけインターフェイスとして人間を配置する。

今、まだいい大学に入って、大手に就職する。。というルートでは従事する仕事自体がなくなってる場合があるんですね〜

まとめ

 これからの生き方(特に若い人に向けて)とてもヒントになる本だと感じましたし、

私自身はこれから中高年になっていくのでまるまる一切を参考することはできませんが

お子さんがいる人とか特に読んでみるといいのかもしれないなあと思いました!

横文字多いですけど、面白くて一気に読めてしまいます!

今更ながらSQL文ってなんのことだかわかりました。

f:id:simpledancer:20170620084117p:plain

simpledancer.hatenablog.com

 

SQL文とは

データベース。

これらの単語を聞くと勝手に脳がスルーしようと判断します。

難しそう。私にはわからなさそう。。と勝手に解釈してしまって

今まで手付かずだったのでこれを機に少し調べてみようと思いました。

SQL文とはSQL(言語)を使ったデータベースに対する命令文である。

ちゃんと読めば、イメージをつかめました。(できるできないかは置いておいて。)

苦手意識を持つと勝手なフィルターができてしまう!

これはプログラミングに限らずだと思いますが、

なんか難しそう。。

わからなさそう。。

私には向いてなさそう。。。

と考えると脳が理解したり取得しようとするのを妨げたりフィルターがかかってしまって本当はできることなのにできないイメージを持つからできなくなっちゃったりするんじゃーないかと。

以前Javaをやっていた時にオラクルの試験を受けさせられそうだったんですが、しょっぱなこのデータベース。文字ばっかりだし、私にはわからない、無理!だったんですが、最初から絵入りのわかりやすいサイトをちゃんと調べて読んでおけばあそこまで苦手意識は持たなかったかな〜って。 

参考ブログ

ash.jp

SQLを覚えるメリットは、これさえ覚えておけば、どんなデータベースにも同様の方法でアクセスできることです。 

 だそうです。がむばる。

www.atmarkit.co.jp

wa3.i-3-i.info

 

改めてデータベースについて勉強してみる。Sqlite3とは?

simpledancer.hatenablog.com

 

SQliteとは?

www.ossnews.jp

SQLite(エスキューライト)とは、軽量コンパクトなリレーショナルデータベースシステムです。主に組み込み用途や、小規模システムのデータストアとして利用されます。

http://dotinstall.com/lessons/basic_sqlite/6401

ドットインストールも4つくらいは無料で動画レッスンが見られます!

データベース:アプリごとに作るデータが入ったもの

テーブル:

ーーーーーーーーーーーーーー
フィールド・カラム:列
レコード:行

そしてそもそもリレーショナルデータベースとは?

www.atmarkit.co.jp

RDBには2つの大きな特徴があります。

  • データは「二次元の表形式」で表現される
  • 表は結合(ジョイン)して利用できる

私のプログラミング勉強歴史において苦手な用語の1つはデータベースって単語ですね、それを克服したいので今回はあえてゆっくり立ち止まりながら勉強しようと思います。

今回作るアプリケーションはユーザが投稿した情報を保存する必要があります。
Railsアプリケーションではデータベースを使ってデータの保存を行ないます。
モデルはデータベースに含まれるテーブル毎に用意されます。

 SQliteってものを理解しよう

d.hatena.ne.jp

d.hatena.ne.jp

ググってみると、いろんな人がブログで書いてくれているのでそれを読んでみます。

ふつ〜にデータベースについては流してました。だから余計に理解しにくかったのかなああ。

www.rubylife.jp

SQLiteを使うべき10の理由と5つのデメリット - CPA-LABテクニカル

そもそもですが私、sqliteがmysqlと違うものだとかそういうのも知らなかったですよ。

(何をやっていたんだ1年間)

そしてsqliteについて調べてみたら、さらにそれの代わりとなるデータベースがあるというではありませんか。

developers.eure.jp

realm.io

Realmはさらに高速なデータベースだそうですが、もう意味がよくわかりません。追いつけないよ。難しいよ。勘弁してくれよ。

勉強に終わりがない

一個をググり出すと、さらにわからない用語があり、それについて調べてみるとさらに知らなかった用語が出てきて。。。。みたいな感じで終わりがありません。

でも勉強とはそもそもそういうものなのかもしれませんね。

やればやるほど、わからないことが増えていく。むしろ勉強をしないほうが平和でいられるんじゃないか?なんて思ってしまうくらいです。

今回の場合だと

「テックアカデミー復習するぞ〜」

「あれ〜結局データベースってなんだっけ〜」

「sqliteってそもそもなんだっけ?」

「mysqlとかと同じじゃないんだ?」

「Realm?聞いたことないんですけど?」

以下エンドレス。。

simplelifedancer.hatenablog.com

 

 

TechAcademyを再度学習中。Rubyの基礎を復習します。

 

f:id:simpledancer:20170501112721p:plain

 

 

もう気がつけばTechAcademy [テックアカデミー] を受けていた頃から5か月も経っていた!

大会だったり仕事だったりで冬の間はプログラミングを放置プレイしてしまいました。

半年もうちょっと頑張っていれば今頃は。。。

というタラレバ思考は辞めますね。

LESSON5/Ruby

ここでの内容はRubyの大まかな文法、ターミナルの入力方法、オブジェクト思考についてをざっくりのレッスンです。

プログラミング文法

ざっくりざっくりだと

  • 配列
  • 繰り返し処理
  • 条件分岐

が主な基本文法になるのかな?どの言語も。Javaもそうだったような気がする確か。

オブジェクト思考

これがJavaやってた時もなんなのさ、一体!?って感じでした。

私も久しぶりにやってなんだっけなって感じですもん。

私がtechを見ながらわかりやすく説明するのも難しいのでとりあえずしっくりきたブログ記事をリンクさせていただきます。

初心者向けに徹底解説!オブジェクト指向とは?

オブジェクト指向と10年戦ってわかったこと - Qiita

オブジェクト指向とは何か?わかりやすい例で説明してみた。 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

オブジェクト指向プログラミング(Object Oriented Programming: OOP)とは、プログラムを手順ではなくて、モノの作成と操作として見る考え方だ。オブジェクトとは「モノ」を意味する。

例が記事内に大変わかりやすくまとめられているので参照のこと。

 

クラス

メソッド、インスタンス、継承 などなど。。あまり聞きなれない単語がで出すと

さらに混乱してきます。クラスってあの学校のクラス?

ちょっとこの辺の説明がTechの教材は微妙に分かりにくいと思います。Javaのテキストにいい例えがあったんですがちょっと思い出せないのでいい感じのたとえの記事を探してみました。

Techでやる内容としては

久しぶりにこの領域に踏み込むと全然理解していないのを理解しました!

前途多難ですがTechAcademy [テックアカデミー] railsのアプリケーションを作りながらこの辺りは理解を深めていこうと思います。(メモ代わりに詳しいリンクを貼ってみました)

後日追記していきます。

 

【Ruby の復習】アクセスメソッドでつまづくので調べてみた。

また再び様々な復習をすることにしました。

simpledancer.hatenablog.com

ぶっちゃけ、ちょっとずつわかってきている部分もあれば、やったはずなのに忘れてる、もしくは全然理解できてなかったり、前は理解できたはずなのに全然意味不明だったりする。(痴呆症。。。??)

ということでrailsのチュートリアルを再度やる前に、TechacademyのRubyからまたやり直してみることにしました。

 

attr_accessorのところがいまいちよくわからない。

アクセスメソッドところでつまづきました。さらっと流してたところです。

"メソッド"という名前が着くと拒否反応が出ます。今更。

qiita.com

前も何度も読んだはずなんだけどいまいちわからなくていろいろ調べてみた。

www.rubylife.jp

対象となるインスタンス変数名に対して「attr_reader」「attr_writer」「attr_accessor」のいずれかを使って上記のように記述することでインスタンス変数の参照や更新用のメソッドを個別に定義する代わりとなります。

中略

「オブジェクト名.変数名」で参照したり更新したりが直接行えます。(クラス外からインスタンス変数が直接操作できるようになったわけではなく、参照や更新が行えるメソッドが自動的に作成されたと考えて下さい)

 その他参照した記事

Rubyのattr_accessor, attr_reader, attr_writerとは何か -- ぺけみさお

 

Techacademyの教材でやり直してみた

f:id:simpledancer:20170615115105p:plain

f:id:simpledancer:20170615115124p:plain

ここまでは大丈夫。

上記の追加したメソッドの代わりに、クラスにattr_accessorの後に変数を宣言することによって、自動的にインスタンス変数の値を参照したり、変更するメソッドを定義することができます。

”自動的にインスタンス変数の値を参照したり、変更するメソッドを定義することができます”

だそうなのです。(よくわかってない)

f:id:simpledancer:20170615115408p:plain

f:id:simpledancer:20170615115423p:plain

どうやら attr_accessorの後に変数を定義する

そうすると(この場合緯度を出すとすると)最初のスクショのようにいちいち宣言しなくても一気に値を返してくれる、ということであっているのでしょうか。

脳みそがちょっとわんわんしてきましたので中断してランチします!

 

プログラミングも筋トレも反復練習が大事ですね。

f:id:simpledancer:20170504091840p:plain

反復練習って大事だな〜と思いながらも

ついつい一回やったら放置。「できたし、いいか」と思ってしまう。

ちなみに1〜2回目はほとんど考えずに写経してるだけだから

実際のところはあまり身についてないんだよな〜ってつくづく思います。1回目は

謎の言葉に耳を慣らしながら。2回目はファイルのつながりなどなどを理解しながら。

3回目あたりからようやくちょっとは考えながら進めていけているのではないだろうか?と、私の超筋肉脳は考える。

筋トレも一回や二回やっただけじゃ身につかないのと一緒。でも勉強もそうですよね。

 

1つのチュートリアルをやりながらドットインストールで復習

そもそも、私の脳みそがプログラミングがわからないようにプログラミングされているのか?とさえ考えるほど、なかなか理解できません。

そもそも費やす時間自体が少ないとは思いますがそれ以前の理解力というのがどうも私他の人に比べて低いんじゃないかなと改めて思ってしまいます。

というか、それでもやり続けている私を褒めてあげたいなとさえ思います。

で、先日出たエラーがまた、ちょこちょこ出たのでドットインストールでhamlをサラーっと見てみましたところ、

なんだよ。最初からやればよかった。。ってくらい説明してくれてました。

http://dotinstall.com/lessons/basic_haml/10105

インデントでエラー出るのはこれ知ってたら理解できたのに。

スペース開けるのとか、早く言ってくれよって感じです。

わからないことは割とググりながら進めてはいるのですが、

一つのサイトでサンプルアプリを作る際にひっかりがあるもの、理解が出来ていないと感じるものはドットインストールを都度復習。それくらい繰り返しの反復インストールをやってみたらちょっとは理解度が増すかなと考えています。

simpledancer.hatenablog.com

 

テックアカデミーのコンテストを出したい

techacademy.jp

卒業生が提出するコンテストなのですが、前回も前々回も間に合わなかったので

今回の夏には出したいと考え中です。

ただしアイディアが全くもって浮かばないんです。

ひとまずテックアカデミーを再度おさらい(の間にドットインストール)しながらアイディアを練ります。

simpledancer.hatenablog.com

テックアカデミーは卒業後も教材が見れます

TechAcademy [テックアカデミー] の良いところは卒業後も教材が見れるところですね。

他のオンラインスクールでは期間が終わってしまうと見られなくなってしまうらしいです。あと、受講中はslackで先生とチャットできるんですが、返信がめっちゃ早いです。

某プログラミングスクールだと、学生の人が先生をやっているそうなので、的確な答えがあまり得られない。。とちょっと愚痴ってました。

あ、slackのチャットは期間が終了すると一定期間をすぎると見られなくなります。

サポートの延長も追加料金で続けることができるので、卒業してからまたわからないところとか考えても考えても出てこなければ1週間くらいオプションでつけることもできるのです。(私はやってませんが)

simpledancer.hatenablog.com

gitについて初心者に超丁寧なサイト

f:id:simpledancer:20170529162120p:plain

 

シラバスやっとエラーが消えて、なんとかサンプルアプリが途中までできた。

simpledancer.hatenablog.com

ちょっと気分転換に他のページを見てみるとgitについての説明がすごくわかりやすく乗っていたのでご紹介します。

cyllabus.jp

書いていることはどのblogやサイトでも同じなんですけどね。後半はまとめサイトみたいになってるからあれですけど。用語の説明とかが簡潔でいいなと思いました。

www.backlog.jp

このサイトもわかりやすい。

ところでこの「サルでもわかる」シリーズ。とかの〇〇でもできるとかわかるシリーズでわからなかったりできなかったときの悲しさよ。

ちなみにここ半年以上githubも使ってるけど全然慣れません。

勉強量が足りないということでしょうか。そういうことだと思います。

今からショーの練習と仕事に向かいますので勉強はまた明日にします。