牧場主のプログラミング道場

プログラミング初心者の戯言

無料でプログラミング教えます!!

どうもこんにちは!牧場主です! 突然ですが!!無料でプログラミングをわかる範囲で教えたいと思います 初めてプログラミングをするときには、わからないことやエラーで詰まることがたくさんあると思うので、未熟者ですが、すこしでもお力になれればと思い始めました。

手段

具体的には、教え方は次の通りです。

  • google hangoutなどの画面共有を用いた質問応答
  • LINE, メールなどによる質問

基本的にはどのような手段でも可能です。

対応言語

対応可能言語は、以下の通りです。 今後増やしていく予定です。その他の言語でも初級程度のものならば答えられると思うので、気軽に質問してください。

目標

わからないところがあったら、気軽に聞ける プログラミングが、わからなくて詰まることで嫌いになってしまうの人が少しでも減ると嬉しいです!! どなたでもご遠慮せず連絡してください。

興味のある方、質問のある方で初めての方は、このメールアドレスに連絡ください!!ご気軽にどうぞ!!

ryota9626[at]gmail.com

([at]は@に書き直してください)

Ruby on Rails 環境構築 〜夏休みの反省〜

大学三年の夏休みがほぼ終わった。この夏休みは、遊びつつ、プログラミングに取り組むことができ、充実していた。その反省、これからの目標を綴ろうと思う。

1. 製作物

これからやることを含めて、一つずつ振り返っていこうと思う

raspberry pi

適当に情報集していたらraspberry piというものが面白そうで、衝動買いしてしまった。

Raspberry Pi 3 Model B (Element14)

Raspberry Pi 3 Model B (Element14)

これです。小さいパソコン的なやつです。以下の用途で使いました。slack-botのサーバーにして、slackでつぶやいた単語を、家のスピーカから遠隔で流すことに成功しました。おすすめです。たのしいです。ぜひ買ってみてください。

Portfolio

自分のportfolio作っちゃいました。そんなに作ったもの多くないんですけどね。。。 でも、自分を見せるものがあるというのは、開発のモチベーションにもなりますし、とてもためになります。

よかった点

  • お名前.com vps, nginx, unicornでサーバーを構築し、そこにあげることに成功した。
  • html, cssの開発部分にあまり時間がかからなかった。

反省点

  • デザインにオリジナル性がない

改善点, 改修点

  • reactを用いて、サイトに動きをもたす

gif-qrcode

pythonのトレンドを毎日確認しているのですが、そこにgif画像を背景にした、qrコードをつくることができるライブラリがあったので、それをブラウザ上から実行できるサイトを作りました。みなさんも試してみてください。

gif-qrcode

よかった点

  • pythonrailsアプリ上にのせることができた
  • デザインはわかりやすくていいと思う
  • qiitaにそのライブラリの記事をあげ、情報発信した

反省点

  • エラーの際の反応
  • 内部ロジックの詰めの甘さ
  • サイトとしての必要な機能の追加(seoなど)

お名前.com vpsによるサーバー構築

ubuntuやめました!!centos6.5?で戦うことに決めました。

改善点

  • ssl通信
  • capstranoによる自動デプロイ

この本読んでいろいろ詰めていきたいと思います。

Ruby on Rails環境構築ガイド

Ruby on Rails環境構築ガイド

まとめ

いろいろ作ってみましたが、詰めが甘い。全体的によかった点は、一つ作るのにあまり時間がかかっていないことですかね。done is better than perfect がとりあえずのモットーです。細かい修正はここからですね。全体的に自分では悪くないと思っています。

2. プログラミング言語

 言語

language level
html ★★★☆☆
css ★★☆☆☆
javascript ★☆☆☆☆
ruby ★★★☆☆
python ★☆☆☆☆
sql ★☆☆☆☆

javascriptが本当に苦手。 残りの数日間でdotinstallの無料で観れるやつを全部見ようと思っている。 1ヶ月後までに、★三つくらいまでにはしたい。 pythonは始めたばっかなのでしょうがない。 pyQtを使ってみようと思っている。 sqlは使う時があまりなく、成長しない。 一ヶ月後までに、★三つ分増やしたい。

フレームワーク

framework level
ruby on rails ★★★★☆
react ★☆☆☆☆

ruby on railsは、割とわかってきた。と思ったら、以外とそうでもなかったりもして困っている。他のやつよりはできるので★4にした。 reactできるようになりたい。jqueryがいらなくなるとかなんとか。今はこれをやっている。

入門 React ―コンポーネントベースのWebフロントエンド開発

入門 React ―コンポーネントベースのWebフロントエンド開発

まとめ

ここから一ヶ月、javascript周りを一気に学ぼうと思う。また, ruby on rails も一回復習したい。

適当になってしまったがここら辺で終わろうと思う。気が向いたらqiitaの記事をストックしてほしい。。。

3分でできる!動くQRコード(GIF)の作り方! - Qiita

新人プログラマが知るべきプログラミングの原則6選! - Qiita

この復習系の記事は毎月書こうと思う。次は10/31

新人プログラマが知るべきプログラミングの原則5選!

この記事について

この記事は筆者がプリンシプルオブプログラミングを読んで、備忘録的にまとめたものです。 これから紹介する5つの原則を用いて、「よいプログラマ」に近づきましょう!

新人プログラマが知るべきプログラミングの原則5選

KISS

Keep It Simple,Stupid シンプルにしておけ、愚か者よ

コードを書くとき、「単純性」や「簡潔性」を最重要項目ということ。

コードは、自然に任せて修正していくと、無秩序になり、複雑になる。その結果、読みにくく、修正しにくくなっていく。コードをシンプルに保つことで、修正に容易にすることができる。

具体的には、プログラミングをする際に、「動作させるために、もっともシンプルなものは何か」と常に問いかけることが必要である。

DRY

Don't Repeat Yourself. 繰り返すな。

同じコードを重複して書くなということ。

なぜかというと、コードの改善が難しくなるからである。まず、同じコードが複数あると、量的に「より多く」、質的に「より複雑」になるため、コードを読む作業が難しくなる。また、修正するときにも、一つ直すときにも、重複して書いたコードに対しても漏れなく直さなければならないので大変である。

具体的には、処理のまとまりには「関数化」「モジュール化」をし、データは名前をつけて定数を定義することで重要である。

YAGNI

You Aren't Going to Need it. それはきっと必要にならない

コードが必要最低限にしろということ。

あらかじめ、いろいろな事態に備えてコードを盛り込んでおいても、結局は利用されないことが多い。そして、それによってコードに「余計な」複雑性を盛り込んでしまうことになり、KISSに思想にも反することになる。つまり、予想が外れた場合、時間が無駄になるどころか、邪魔にもなってしまうのである。そして、単純なコードの方が、汎用性が高いことさえある。

具体的には、汎用性よりも、単純性を考えることが重要。コードは「今」必要なものだけにすること。

PIE

Program Intently and Expressively 意図を表現してプログラミングせよ

コードは意図を明確に表現するように書くということ。

コードが「人」が読むためのものであり、コードだけがソフトウェアの動作を「正確に」「完全に」知るための手がかりである。よって、ソフトウェアの動作を把握するには、わかりやすいコードを書いて、コードで意図を伝えるしかない。

具体的には、コードを書くときには、「書きやすさ」より「読みやすさ」を重視すること。コードは「書かれること」よりも「読まれること」の方がずっと多いものであるからである。

SLAP

Single Level of Abstraction Principle 抽象化レベルの統一

コードを書くとき、高いレベルの抽象化概念と低いレベルの抽象化概念を分離するようにすること。

なぜなら、コードがレベルに揃った関数に分割されることで、「要約性」「閲覧性」を同時に満たすことができる。同じところには、同じ抽象度の処理といったように、コードが統一されることで、コードはよどみなく流れ、理解しやすくなる。

具体的には、関数を構造化することが重要である。一つの関数で、ある部分ではデータベース接続という低水準の処理を行い、他の部分ではビジネスロジックの実行という高水準な処理行うという書き方はしないことが重要である。

参考文献

上田勲 『プリンシプルオブプログラミング』 秀和システム

レンタルサーバーを借りてみた(お名前.com VPS)

9月10日。お名前.com VPS を借りました。そこまでの経緯を。。

1.これまで

以前からサイトやbotherokuで借りていたのです、プラン変更に伴い、無料では24時間活動できなくなってしまいました。とりあえず、hobbyプランで月額700円程度でやってました。なんか、弱そうという適当な理由で、heroku以外のサーバーに憧れていました

2.サーバー借りたいんです

インターン先の社員の人にサーバーを借りたいと相談したところ、

安いし借りちゃいなよ。GMO PVSおすすめだよ!!

とのことで、調べてみたところ確かに安くて、パーフォマンスもよいらしくよさそうでした。しかし。。。初期費用が4000円程度だったのです。とりあえず、お試しで一ヶ月くらい触ってみようと思っていた僕には、その初期費用が高く感じ、他のVPSを調べてみました。

3.どうもこんにちは、お名前.comVPSさん

決め手は、月額安い初期費用無料です。パーフォマンスも悪くなく、いろいろなレビューでもオススメされていたので、ここにしました。これから宜しくお願いしますお名前.comVPSさん。

4.OS(Ubuntu)

OSどれがいいですかね?

先輩A < まあ、普通にcentOSじゃない?

先輩B < え、Ubuntuじゃないですか、ruby使ってるならUbuntuですよー。

centOSは、いろいろとインストールがめんどいことや、できないことがあるらしい。Ubuntuのほうが、いろいろアップデートがあるとのこと。詳しいことはわかりませんでした。日本では, centOS > Ubuntu。世界では, centOS << Ubuntuらしいですね。日本でも, Ubuntuのシェアが拡大しているらしいです。そんなこんなで, Ubuntuに決めました。今、OSインストール中に書いています。楽しみです。

IPhone7

IPhone7 ブラック 256GB 予約しました。発売日にゲットできます。うれしいです。

プログラミングを1年してみて(自己紹介編)

私は、大学3年生である。去年の夏からはプログラミングばかりしている。主な開発言語は、ruby, pythonである。はじめはとっつきやすそうな、rubyから始めたが、今流行っている機械学習の多くはpythonで書かれていて、これからも伸びそうなので、pythonを始めた。仕事は、スタートアップ企業で主にruby on railsを用いて、サイトの運営や改修をしている。

 

去年の夏からプログラミングを始めたので、約1年が経った。そこでブログを開設したのだ。いつも何かをやっているのかと聞かれれば、bot製作と答えることになるだろう。botは面白い。なんでもしてくれる。(いつかは本当になんでもできるようになると信じている)そろそろbotで遊んでばかりいるわけにもいかないので、なにか開発しなければならないな、というところです。

 

昨日、今日と二日間あったので、やっと真面目に、python3を勉強した。読んだ本は、こちらだ。

https://www.amazon.co.jp/入門-Python-3-Bill-Lubanovic/dp/4873117380www.amazon.co.jp

内容は、とてもわかりやすく、細く描かれていて良かったと思う。しかし、後半は並行処理なども扱っていて、いきなり全てを理解するのは難しかった(飛ばした)。pythonを勉強して、噂には聞いていたが、やはり、for,for,for,forといった感じであった。使いこなすにはもう少し時間がかかりそうだ。今はpaizaのスキルチェックをpython3でこなして、pythonに慣れようとしている。おすすめの、勉強法があれば是非教えて欲しい。