見出し画像

おすすめしたいプログラム勉強法 [ちょっとしたコツ]

こんにちは、プログラムしてますか?!
え、まだしてない?
これから始めようかと??

ナイーーーース!

はい、、じつはあなたの為に書きました(ウソ)


1. 必要なメンタルは「どうなるかな?」


はじめに約束 「正しい/間違い」で考えるのは忘れましょう。 

プログラムは学校で教えるのに相性が悪いと言われていて、未だに良いカリキュラムやコーチングの手法が確立されていません。40年以上もパソコン少年が毎年生産され、GAFAMと言われるように主要な大企業はITやそれ関連になって久しいのに?です。

そんな中、常々思っているのは学校の「正解」がある、間違いを探すテストのような考え方とプログラムの相性の悪さ。 (どちらが良いかではなく相性です)

そもそもコンピュータ・サイエンスとか言っても、本質は科学じゃなくて道具。
鉛筆でどんな絵を書くと正しいか、というのと同じヘンテコさにつながりやすいです。

本来道具は、こうしたら「どうかな?」「おお、OOOだった!」という事が出来る単なる「モノ」です。 また、実際にこの分野で成功している人はドラッグヒッピーだったスティーブン・ジョブズを始めとしてアウトローと言うか、自由な人が多いんです。

プログラミングでは頭を使いますが、頭を使うにはまず自分が自由であることが大切です。
どうか「正しさ」から開放されて、「どうなるかな?」の気分で進めていただければと思います。 

※今回は例えばPythonをこれから勉強しようかな?という例で解説します。

目次

  1. 「どうなるかな?」でやろう

  2. github を使おう

    1. カウント作成

    2. リポジトリを作成

    3. readme.md とプログラムファイル1つでもOK

  3. sandbox でお試しを残そう

2 Github を使おう

Githubは主にソースコードを保存するための無料でも使えるサービスです。
sdカードやGDRIVEのように単に保存するのではなく、同じファイルを更新すると「此処が変わったよ?」と差分を記録してくれます

入門の時点では差分とか、Githubのモロモロの昨日は気にしなくて大丈夫です。
検索をすると「正しい使い方」が「猿でもわかる….」といった大げさな見出しで出てくるかと思いますが、目立ちたいとか広告収入のためなので無視してください。
Githubは単なるツールです。道具の機能は使う人が使いたいだけ使えばよいのです。

2-1  アカウントを作成

上記のgithub.com にアクセスすると画面に (Sign up) というボタンが有るのでそれを押して必要事項を入力すれば無料アカウントが作成できます。


最近はSFっぽい演出が入ってますね


2-2 リポジトリを作成

アカウントを作ってログインすると画面左上に(NEW)ボタンが有るので、そこから自分専用のリポジトリ(ファイルを格納する場所)を作成します。
じ 


今回は mySandbox としてみましょう

Public/Private は自由ですが仲間や就職先に見せるのであればpublic にしておくと良いかも。

✅ Add a README file   をチェック。 READMEファイル単なるテキストファイルです。 ↓などを参考にしてください。 
(これも使いたい範囲で機能を使えばよいです)


.gitignore の選択では Python を選びます(重要)
各プログラミング言語やフレームワーク(特定の用途向けに少しの手間で作れるように作成済みのプログラムの集合体)は、プログラム以外のファイルを作ることがありますが共通部品を全てリポジトリで管理するとファイルが無駄に多くなるため、そうした共通ファイルを入れないように予めだれかが定義してくれた .gitignore のテンプレートが選択できます。コレは書き換えて良いので、例えばテストで使う動画ファイルは入れたくないな、と思ったら *.mp4 などと追加すればOK 

自動で作ったREADMEはすぐにgithubのweb上で編集も出来ます。
なにか書いて始めましょう!

2-3  readme.md とプログラムファイル1つでもOK

試しに作成したリポジトリをパソコン上に clone したのがこちら

先ほどリポジトリを作った段階で、自動で4ファイル作られています。

github のリポジトリは何を入れるとかルールはないので、例えばREADME と プログラム1つ、ということもあるかもしれません

が、この作業を毎回、ラーニング用のためにするのは面倒なので例えば試したい事が有るたびにフォルダを作り、その中にラーニングや実験で作るプログラムを入れると1つのリポジトリで便利に使えます。

例えばtuto_fileには以下のようにREADME と3つのサンプルプログラムを入れました。

こんな形で学んだことがファイルとして残り、作業方法として定着すると大きな力となります。

2-4 Github desktop でまずは簡単に

上記はターミナル(コマンドライン)で行っていますが、GUIの便利なツールも用意されているので、最初はこうしたアプリを使う事をおすすめします

ターミナルについてはこんなものです。 mac/widows/linux どれも同じようなものです。 Pythonの初学ではターミナルは必要なのでぜひ慣れてください

ターミナル( CLI , command line interfacce )は車で言えばマニュアル車です。
AT車とMT車では運転方法は違いますが、車の内部ではだいたい同じことが行われています。 CLI/GUIが車と違うのはコスト無く両方共存できる点です。 
GithubでもCLE・GUIを両方使って作業することが出来ます。 目的は同じなので適宜、便利に使い分けると良いです。

2.5  余裕が出来たらCLIもトライ

コマンドは5つ覚えればまずはOK

git pull (リポジトリのお名前モロモロ)
git add (file名)
git commit -m "ここを変えたよ"
git push
git pull

詳しくはサイトなどで確認して「どうなるかな?」とやってみてください。

3 sandbox でお試しを残そう

これでGithubを使って作業する準備ができました。

プログラムを生部時に重要なのは「慣れる」「親しくなる」です。
ぎりぎり動くようにチョット書く、だと親しく慣れません。スポーツの試合に練習をしないで挑んでコテンパンに負けたら親しめません。プログラムも練習が必要で、それを楽に行うのが Playground ツールや sandboxという考え方です。

Playground はWebで使える実行環境です。 遊び感覚で「どうなるかな?」と試しに使えます。

python は 前述のターミナルで python と入力するとCLIの対話モードでもコードを実行できます。(こちらが本来の方法)
playgroundサービスはpythonがインストールしていなくてもブラウザで実行できるのが便利な点です。  どちらでも良いので機会があるごとに「お試し実行」をしてみてください。

こんな風に気軽に書いて実行できます

実際に続けていくと数行のお試しは上記の方法でも良いのですが、モジュールをインストールして利用するケースなど、実際にファイル書いて実行する必要が多くなるでしょう。 そんなときには先程作ったリポジトリのようにフォルダやファイルを作ってそこにまずは試し書きのプログラムを作成して「どうるなるか」やってみましょう。
こうした本来の目的とは別の場所を作ってコードを試す方法を sandbox といいます。 仕事では当然コレをする必要があります。 
学習中は全てsandboxコードを書いているようなものです。 ぜひリポジトリを作り、こそに実験コードを書き溜めるようにしてください。

何がメリット?

勉強中のコードを残してなにか意味があるでしょうか?

これはYesでありNoです。そのコードが役に立つ事は無いかもしれません。
しかし、この方法はプロになったときには抜群に役に立つのです。

力になる要素の1つは「面倒臭がらず、ササっと実験してめどを立てる」仕事スタイルの確立。もう1つは独立したプログラムを作って実行確認する「客観性」の視点です。

仕事でコードを書くからと言って何もかも覚えることは不可能です。とくにPythonやnodeなどを使うと無数にライブラリ(モジュール)が公開されていて、試しに使う=>駄目だった、というのを繰り返して作業を進めることになります。

この時に、面倒臭がって実験せずに直接使うと作業効率が実はすごく悪いのです。
ナット1つ試すのに巨大な船のマストのある部分に取り付けて様子を見る、というような無駄なエネルギーを使います。

お試しは最小限のほうが楽!

また、その「お試し」をした最小限の仕事をgithubに入れておけば「あれどうだったっけ?」というのが動くコードの形で残るのです。READMEなどに何かメモを書けば完璧です。

また、お試しでAという機能とZという機能を別の人が試した時に比較したり、協力が容易になります。「こんなだったよ?」と説明しなくても話が進みますので。
プログラムは思うより複雑な背景がありますので、コレは重要な利点です。

ぜひプログラムを学ぶために、「遊び場」を先に用意し、のびのび「どうなるかな?」と楽しんで見てください。


サポートありがとうございます😊 ベトナムにお越しの際はお声がけくださいね🌻