GitとGitHubの違い

昔、GitとGitHubの違いがよく分かりませんでした。

働きはじめて、あーそういうことかと理解してスッキリした覚えがあるので

同じ疑問を持った人がいればということで書いておきます。

 

Gitは「バージョン管理ツール」とよく言われていますが、いまいちどんなものかイメージしづらいのではと思います。差分管理ツールと言ったほうがイメージしやすいかもしれません。

ソースコードの変更履歴を一定の単位(コミット)で記録して、過去の変更を一覧で見れたり、特定の過去の変更を打ち消したりすることができるツールです。

ゲームしてて一旦ここでセーブしたい!っていうのと同じで、

今プログラムが正しく動いてるから、あとで動かなくなったときにここまで戻れるようにしたい!ってときに使えます。(もちろん、他にも用途はいろいろあります)

 

一方GitHubとは、各個人がGitで差分管理しているソースコードを、他の人と共有するためにみんなが見れる場所(リポジトリといいます)に置けるようにしたサービスです。

GitHubを使うと、他人のアップロードしたソースコードが見れる上に、そこに変更を加える事もできるので、チームで一つのプログラムを書くときに、誰かが変更を加えても常に全員で同じ状態のソースコードを共有できるというメリットがあります。

Gitのデータを他人と共有するためのツール、という感じですね。同じようなサービスでGitLab、Bitbucketなどがあります。

 

以上、GitとGitHubの簡単な違いでした。

結局、プログラミングはどの言語から学べば良いのか

タイトルのような話題よくあると思います。

僕もプログラミングを学び始めのときは同じようなことで悩んでいました。

それから2年半ほどたった今、言えるのは

「どの言語でもいい。どれかひとつの言語をある程度マスターしてしまえば、その知識は他の言語に応用できるから、他の言語を学ぶときにすぐマスターできるようになる」

ということです。

具体的に言うと、以下のような概念はほとんどのプログラミング言語に存在します。

  • 変数
  • 関数 or メソッド
  • if文
  • for文
  • 配列
  • 辞書 or 連想配列 or ハッシュ
  • クラス ←ない言語もありますが...

どれか一つの言語がある程度書けるようになれば、これらを記述する方法が言語ごとに異なるだけなので、他の言語もすぐにマスターできるようになります。(厳密に言えば概念から違いがあったりしますが、初学者対象なのでここでは触れないことにします)

なので、なんとなく名前がかっこいいから気に入ったみたいな動機でいいので好きな言語を一つ選び、本のサンプルコードを一行一行写していく作業などで、上記の概念を理解していくと良いでしょう。

 

 

Vue.js、Reactおすすめツール紹介

Vue.jsやReactなどの最近のJavaScriptフレームワークを始めようとすると、

WebpackやGulp、Babelなどビルド関連に必要なツールが多すぎて何がなんだか分からん!!

という状態になるかと思います。

 

そこでおすすめするのが以下。

  • Vue.js: vue-cli
  • React: create-react-app

 

これらのツールはnpm からインストール可能ですので、インストールしてしまえば

あとはコマンドひとつで、面倒なWebpackやらの設定なしにHello WorldレベルのVue.js/Reactのアプリができている状態になります。

あとは自分の作りたいアプリに必要なライブラリをnpm installしていけば、自分の好きなアプリを作っていけます。

 

知らなかった方はぜひ。

github.com

github.com

PHPプログラマが簡単に生産性を爆上げするたったひとつの方法

完全釣りタイトルですが、これは伝えたい。

その方法とは、

  • PHPStorm(または、IntelliJ IDEA)を使う

以上。

 

特に、AtomVSCodeなどのエディタを使ってる人で、Xdebugを使っていない/入れようとしたけど諦めた方っていると思います。

 

var_dumpデバッグもいいんですが、Xdebugを使ったステップ実行があるだけでかなり生産性上がります。PHPStormだとその設定が簡単にできますし使い勝手も良い。

 

さらに、強力すぎるコード補完機能やプロジェクト全体にわたる検索機能、シンタックスエラーの警告、PHPUnitとの連携など語り尽くせないほどの強力機能が組み込まれています。

 

1年あたり数千円程度の課金が必要ですが、その何倍もの価値があると僕は感じました。無料エディタを使っていた時代と比べるとコーディング時の不要なストレス(typoを探すのに○○分使ってしまった...など)は激減しましたし、速度も早くなったと感じます。

 

少しでも気になった方は30日の無料体験あるのでぜひ試しましょう!

ここではPHPを例としましたが、JetBrains社は他の言語のIDEも作っていますので、他の言語で使いたい場合は以下から探してみてください。

www.jetbrains.com

※JetBrains社の回し者ではありません笑

 

近況

お久しぶりです。

ついにお盆休みも終わりを迎えましたね。。

 

最近は仕事でVue.jsを始めました。過去にReactを触った経験があるので、似たような概念が多く、理解がしやすいので楽しいです。

 

最近ではReact Nativeなどで、スマホネイティブアプリをJSで書けるようになっていますし、IonicというWeb, iOS, Androidを同時にJSで開発できるフレームワークが出てきたりしていて、もうJSだけやってればいいんじゃないかと思ってしまいますね。サーバーも書けますし。

アプリ界隈でSwift, Kotlinがそれらに取って代わられるのかどうかは今後注目していきたいところです。

ちなみにTwitter情報によると、海外IT企業の求人でよく見かける言語はJSだそうです。

 

自分もいつか、海外に挑戦できるように日々精進していきたい。

夏休み1カ月とか羨ましいわあ。。w

AtCoder Beginner Contestを埋め始めた

あけましておめでとうございます。

去年は競技プログラミングをかじってみたものの、灰色コーダーから脱出できず放置となっていたのですが、C問題以上を解けるようになりたいので再開。

AtCoder Problemsがリニューアルということでやる気も上がり、過去のABCをB-D問題を中心に埋めていくことにした。

現状ではC問題が自力で解けそう問題な問題がまれにある、といった感じ。

D問題は問題文を読むのがしんどい。

さて、いつまで続くのか...

 

f:id:Htena77:20180105110815p:plain