さとくみのプログラミング学習日記

プログラミングを学び始ます。復習のログとして更新します。

プログラミング言語Rubyへの一歩

こんにちは。さとくみ(@kumi53)です。

 

一昨日から名古屋、雪でした。

今もパラパラしていますが、お昼なので積もることないでしょう。でも地面はまだカッチカチに凍っていたりするので、歩くとき注意です。

 

さてさて、やっと!Rubyについて触れる機会がやってきました~。

 

プログラミング学習をしようと思い、直感的にRubyを学びたいと思っていたので、楽しみですー。好きなwebサービスRuby使っていたりするので、ちょっと憧れもあったんですよね。

 

という訳で、復習メモいきます!

 

Rubyルビーとは

プログラミング言語の1つ。日本人のまつもとゆきひろ氏が開発しました。その為、日本語の解説ページが多いのが嬉しい。

 

Rubyのサイト

https://www.ruby-lang.org/ja/

 

 

Ruby 4つの特徴】

  1. シンプルな文法
  2. 読みやすいコード
  3. プログラムを書いて、すぐ実行できる
  4. 書いていて楽しい

 

実際に1つの指示を、Javaといわれる言語で書かれたコードとRubyで書かれたコードを比較するとJava5行に対しRubyは1行でわかりやすかった。苦手意識が軽減されそうですー。

 

あと、個人的には3のすぐ実行できる、というのも魅力です。

 

Ruby on Rails

Rubyフレームワーク

 

フレームワークであって、プログラミング言語ではない。

・webアプリケーションを簡単に作れるようにするための骨組み。これを使うことで、より少ない労力(高度な技術や知識がなくても!)で開発できる道具みたいなもの。

 

f:id:satokumi7:20180126123228j:image

 

フレームワークというのは、枠組み、骨組み、構造と訳されます。でも、イメージがわかない。

 

たとえば、漏れなくダブりなくのMECE、自社のサービスを分析するためのSWOT、ビジネスモデルキャンパス、3C分析とか。。。こう書くと難しそうだけど、思考や物事を整理したり、組み立てたりするときに使う仕組みみたいなものかな。

 

このツールを使えば、ルール分けが予め決まっているので、みんな共通言語で話が進められたり、客観的に考えられたりしますからね。

 

という風に個人的に理解しました。

 

まずは、ぼやっとRubyに触れてみました。

webサービスの仕組み② サーバーとの通信だの巻

こんにちは。さとくみ(@kumi53)です。

 

名古屋、寒いです。でも東京を中心に関東は大雪で、甲信越、北陸もえらいこっちゃな大雪で心配です。

 

さて、ブログも学習も3日坊主は免れたけれど、今日はパスしそうになってしまいました。今の内からこんな状況ではいかんっ!と喝を入れ直したところです。

 

今日はwebサービスの仕組み その2で「webサービスはサーバーとの通信」である、です。

 

 

まず、webサービスは2つに分かれる。

■クライアントサイド

■サーバーサイド

 

ここで既に怖気ついている私がいる。なんのこっちゃ…よしまとめよう。

 

 

 

■クライアントサイド

ユーザーが見たり触れたりできる領域部分。

 

■サーバーサイド

ユーザーが実際に見ることができない裏の部分。サーバーとデータベースがある。

 

データベースはテーブルといわれるものがあり、それはエクセルのイメージで、1つ1つ細かく分解した項目。そしてそれをデータベースを動かすための言語がSQLといわれるもの。でっかいコンピューターに格納されているイメージ。

 

サーバーは、静的なデータベースをクライアント(ユーザー)のリクエストに応じて動かし結果を導くためのもの。それを指示するのがプログラミング言語で、サーバースクリプトと呼ばれる。サーバースクリプトにはJavaRubyphpなどがある。

 

そしてそれは、クライアント(ユーザー)が目に見えるようにhtmlとcssで指示される、という訳である。

 

f:id:satokumi7:20180122225026j:plain

 

こういう単語を理解しておかないと、プログラミング自体が苦手になったり、なんだか難しいものに感じてしまう。現に、エンジニアの人たちがいざ開発の話になると、途端に意味がわからなくなる、というのを目の当たりにしてきたので。

 

つまり、英語をしゃべりたいのに単語を知らなければ喋られないし、聞いてもわからないでしょ、という基礎的な部分なんですよね。

 

そのうち聞きなれてきますように!

webサービスの① webを構成する要素ってなぁに?

こんにちは。さとくみ(@kumi53)です。 

 

今日はwebサービスはどのように構成されているのか?という話。

会社員時代からシステム開発に関わったこともあったけれど、実は初めてきちんと学習したという内容でした。いや、お恥ずかしい。

 

webサービスを構成する3つの要素

  1. 見た目
  2. データベースとのやりとり
  3. フレームワーク(1と2を連動させて機能させる)

 

1.見た目

これはいわゆる、私たちがPCやスマホなど端末で目にする部分。この見た目を作るための言語はHTMLとCSS

 

■HTML

文章を構造化するための言語。例えば、「ココはタイトル部分です」「ココからココまでが本文です」「ココはポイントとなる重要な箇所です」とか、文章の並びをみたとき、人はパッと見て直感的に判別できる。これをコンピュータが判別、認識できるようにするための言語。タグ、記号など。

 

CSS

文字のフォントや大きさなどデザインを指示するために使われる。一般的にはスタイルシートと呼ばれるそう。

 

HTMLとCSSの違いを初めて知った。。。同じものかと思っていたので超恥ずかしい。

 

 

2.データベースとのやり取り

webサービスは何らかのデータベースがあって、そのデータベースを動かすことにより機能する。このデータを動かすための言語がサーバースクリプトといわれる種類のもので、JavaPHPRubyなどがある。どれも言語が異なるだけで、基本的な機能は変わらないらしい。

今回私が学習するのはRubyです。シンプルで推奨されているため。

 

 

3.フレームワーク

1の見た目と2のデータベースのやり取りをうまく連動させてアプリケーションとして機能させるためのもの。RubyにはRuby on Railsがセットらしい。

 

 

この基本的な構造がわかるだけでも、だいぶ見え方、捉え方が変わってくるなぁ。プログラマーの人は、いわゆる2のデータベースのやり取りだけにたけているのかと思いきや、その他にも付随する言語や仕組みの理解が必要なんだと。

そしてこの構造がわかれば、分業をうまく進めることもできるんだなーと気付いた。

 

f:id:satokumi7:20180121150446j:plain

 

プログラミング学習で挫折しない3つのコツ

こんにちは。さとくみ(@kumi53)です。

本日、プログラミングの学習をいよいよスタート。

 

プログラミングは挫折する人も多いという。それは100%、完璧を求めてしまうからだそう。なので、挫折しないための3つのコツを教わった。

 

  1. 6割程度の理解で次に進もう
  2. 0から自分でコードを書くのは無理だ
  3. 悩み続けるのは無駄。早く解答にたどりつきコードの理解に全力を注ごう

 

以下、補足説明を書いておこう。

 

1.6割程度の理解で次に進もう

最初から100%理解することは不可能である。そこで6割くらい、ぼんやりと分かった状態で、まずはとにかく次に進もう。進めるということが大事。進めていく中で、全体像が見えてきて、わからなかった部分が見えてくるそうだ。

 

気持ち的にも「進んでいる感」というのは大事だと思うので、まずはとにかく前に進めていこうと思う。

 

2.0から自分でコードを書くのは無理だ

天才でない限り、いきなり0からコードを書くことな無理だということを思い知ろう。該当するコードをみて、その構造を理解して覚えること。

自分なりの解釈としては、結果や回答はつまり成し遂げたい目的であって、コードは目的達成のための過程=どのようにして組み立てられているのかを因数分解して理解することなのかと。知らないことはマニュアルやテキスト、説明がないとできないわけで、その過程をまずは覚えようということだ。

 

 

3.悩み続けるのは無駄。早く解答にたどりつきコードの理解に全力を注ごう

10分かけて課題がわからなかったら、回答を確認。上記2と重なるね。

自分の脳みそで考えることは良いことだけど、答えをわからず悩み続けていたら、それは時間の無駄。それなら、解答つまりコードを読み理解することに、まずは全力を注ぐべき。どうしていいのかわからずオロオロした時間を過ごしていてはもったいないよね、だったら聞いて覚えてアクションしようよ、ってこと。

 

 

というわけで、今日はざっとカリキュラムの全体について目を通しました。覚えられることが沢山あるって嬉しいね。

 

f:id:satokumi7:20180120224737j:plain

ノートメモ

 

方眼ノートThink NOTEを買った

プログラミングの学習用にノートを買った。

 

無地ノートが好きなんだけど、今回は方眼ノートにしてみた。「ロジカルシンキングができる」というフレーズに惹かれたからだ。

方眼ノートもブームなのか、色んな種類があって思った以上に悩んだ。薄くて手軽さをキーワードにチョイス。

  

 

罫線が青色とグレーの2種類があったのが嬉しい。無地ノートになれている私にとって違和感を感じない方でグレーを選んだ。

 

f:id:satokumi7:20180119173950j:plain

 

f:id:satokumi7:20180119173506j:plain

裏表紙に使い方とか書いてあります。便利かも。

 

f:id:satokumi7:20180119173510j:plain

 この落ち着いたトーンが気に入ったのと、タイトルをしっかり書くスペースがあるのがいい。後で読み返すのにわかりやすそうだから。

 

プログラミングなのになぜアナログアイテムを使うのかって?

 

それは、ペンとノートでの学んだことのアウトプットをするといい、ということを勧められたから。普段からひとり会議でノートを使っているので、そのやり方はあっていそう!と思うしね。

 

どんどん活用していくよ。

 

 

図解 頭がいい人はなぜ、方眼ノートを使うのか?

図解 頭がいい人はなぜ、方眼ノートを使うのか?

 

 

 

頭がいい人はなぜ、方眼ノートを使うのか?

頭がいい人はなぜ、方眼ノートを使うのか?

 

 

 

 

はじめまして。

はじめまして。

さとくみ@名古屋です。

 

今日からはてなブログをはじめることにしました。2018年はプログラミング学習をはじめるので、その復習ログを残すため用として開設しました。

 

宣言しておかないとサボってしまいそうだし、挫折しそうになった時にブログを読み返すことで、プチ達成感を得て頑張れると思うからです。学んだことの振り返りに便利だな!と。

 

 

さて、なぜ今更プログラミング学習を始めるのか、自分の中でも整理しておこうと思います。

 

webサービスはそこそこ好きな方で、自分でも立ち上げたり、受託することもあります。会社員時代に社内のIT化に携わったり、業務改善のために手書きレベルの仕様書を作ったりしたこともあります。ほんの少し、砂粒ほどかじったことがある程度です。コードは書いたことありません。

 

そんな程度なので、一旦は完成したwebサービスやサイトを改善したいなーと思っても、自分では触れず頼むしかない。すると、時間がやたらかかったり、思うように修正できなかったり、ヤキモキすることが多いんです。結構日々ヤキモキしてます(苦笑)

それと、新しいサービスを考えてもモックすら自分で作れないのはダメだとわかったんですよね。何よりも、エンジニアの人たちと知り合いたいし、考え方とか学びたいんですよ。

 

どんどんAIが発達していってて、プログラミングが小学生の必須科目になるということは、これから生きていくためには絶対学んでおくべきだと思ったんです。今更感あるかもしれないけれど、思い立ったが吉日、気づいた時に始めることは重要だと思うので!スキルのレベル感はさておき、入り口に立つことって大切ですしね。

 

というわけで、「2月中に初級編をマスターする」ことを目標に頑張ります。