C
環境構築
ATOM

大学を合格してから始めるwindowsでプログラミング 1日目

自己紹介と記事の紹介

どうもこんにちは、この度某コンピュータ系の大学に進学することになった しゃーまん (twitter -> oinori_man ) です。

なんでこんな記事を書こうと思ったの?

今回から、私が大学に進学するまでにプログラミングを始めるということで、父からの勧めでこのような記事を書くことにいたしました。父は私が生まれたころに某IBMで働いており、現在も現役バリバリでコードを書いているような人間です。

父の背中を負うというわけではありませんが、父の羽田頼している姿に少しあこがれを持っていて、実際にこの大学に入ろうと志したわけです。

無事入試も合格し、父親にPCを買い替えてもらったということで、実際にプログラミングについて学ぼうと思いました。

そこで父に聞いたところこういうところでアウトプットを重ねて行って、実際にプログラミングをしていく方がためになる(間違っていたら怖い人がコメントを書いてくれたりするから)ということで、実際にプログラミングを学ぶためにこの Qiita に投稿をして見ようと思いました。

使っているPC

使っているPCなのですが ThinkPad X270 で、OSはwindows10です。
僕が小さい頃は父親がIBMに勤めていたとかなんとかでこれになりました。父親がX1カーボンとかいう薄くて軽いやつを使ってますが、僕的に厚みよるこの武骨な感じが好きです。

父親が「お前を育ててくれたPCだ、大切に使え」とか言ってました。

環境構築

父親が現在勤めている企業は、大きいというわけではありませんが、新人研修用にマニュアルが存在するようです。父親がそれを持ってこようとしましたが、さすがに会社のものなのでやばいということで、父親にやることだけを書いてもらって、あとは全部自分で調べるということになりました。

父親曰く「あれをこうしろとか細かすぎると、何をするためのソフトなのかというものも知らずにソフトを入れていくことになるから、あとで辛い」そうなので、これくらいの立ち位置のほうが一番楽なものだと思います。

本日のメニュー

  • C言語について調べる
  • エディタのインストール
  • コンパイラのインストール
  • 最小限の環境構築

こんな感じになります(父親の書いたものをほぼそのまま書いてきただけ)

C言語について調べる

僕自体、プログラミングというものがどういうものかも分からないので調べるところから始まりそうです。ちなみに、これから環境構築していくのはC言語になります。大学側が「一年生はC言語から始まります」と言っていたので、やはり最初にやる言語はCのほうがいいっぽいですね。

自分が調べたこと

自分がC言語について調べたことを少しまとめていこうと思います。

  • C言語というのはとても古い言語、1972年にOSを書くために作られた言語
  • そのためにマシンのリソースの良さを極限まで引き出すことができる
  • 汎用性も高く、パソコンだけではなく、車やゲーム機などに入っているマイコンまで動かすことができる
  • パソコンがそのままプログラムを認識して、動かすことができないので コンパイル という翻訳的なことをしなければならない

こんな感じでした。どうやらC言語というのは元はOSを書くための言語だったなんて知らなかったです。あと、人間が書いたプログラムをそのまま実行できないということが分かったので、この後やるコンパイラのインストールの糧になりました。

エディタのインストール

そもそも「エディタってなんだ?」というところから始まりました。というわけでwikipedia

 テキストエディタとはコンピュータで文字情報(テキスト)のみのファイル、すなわちテキストファイルを作成、編集、保存するためのソフトウェア(プログラム)である。一般的に、文字情報の入力、削除、コピー、貼り付け、検索、置換、整形などの機能を備えている。Windowsのメモ帳や、macOSのテキストエディット、UNIXのvi、Emacsなど、多くのオペレーティングシステム (OS) やデスクトップ環境に最初から装備されている。

読んでわかりましたが、どうやらプログラムを書くためのソフトでした。そりゃこれがなかったらプログラミングができないですね。

父親曰く、おすすめなのはこれらだそう

  • Atom ... 後でやるgithubというものを作った会社が作ったエディタ、おすすめ
  • Emacs ... 君の行きたい大学だとこれで書くらしいよ
  • Sublime text ... 別名 恋をするエディタ
  • Vim ... お父さんが使っています、使いこなせるとかっこいいです
  • VSCode ... microsoftが作ってます、けっこう重いけど使いやすいです

とりあえず5個おすすめされました。なんか父親が使っているソフトもあるみたいです。試しにvimというものを調べてみたのですが、なんかこれを使いこなせるか心配になりました。あとEmacsと血を血で洗う戦いをしているそうなので、この二つを使うのはやめようと思いました。

というわけで残ったのが Atom, sublime text, VSCodeの3つです。

結局色々調べましたが、結論として Atom を使うことにしました。

なぜAtomにしたの?

調べると、Atomというのは、プラグインを入れることで機能を拡張することができるそうです。
何か不満があったらプラグインでそれを解決できるというのは面白いですし、なおかつ外見がかっこいいです。最終的に自分で拡張機能を作ることもできるので、当分の間はそれを目標にしたいなとも思ったので、今回はAtomを使うことにしようと思いました。

インストール

Atomをインストールするときに参考にしたのはこちらの投稿です。

https://qiita.com/oyan29/items/f55642c95d311d15c03c

とはいっても、すぐに終わるやつですね。

atom_DL.jpg

こんな感じでインストールが終了して、Atomが立ち上がりました。

とりあえずはエディタのところは終了です。

コンパイラのインストール

コンパイラをインストールします。さっきC言語を調べた時に、コンパイルするというところでこのコンパイラの存在を知りました。

どうやら人間が書いたコードをコンピュータが理解できるように翻訳してくれるやつみたいです。

compile.jpg

図的にはこんな感じ...? 絵がめっちゃ下手なのは許してください。

とりあえずインストール。どうやら WindowsというのはMacとかと違い少し設定をしないとコンパイラが動かないそう、そこも調べた。

どうやら ** MinGW ** というものを入れる必要がある

入れる手順はこう

  • MinGWのホームページで「Downloads」をクリック
  • Download Latest versionで最新バージョンをダウンロード
  • 必要なパッケージをインストール

みたい。とりあえずダウンロードして、インストールが終わったらこんな画面が出てきた。mingw.jpg

必要なのはC言語用なので、こんな感じでいいらしい

mingwinstall.jpg

ほかのやつは今回関係ない言語らしい。

マークが終わったら左上の Installation から Apply changes で実際にインストールがされる。

これが終わったら今回の一番の鬼門だった 環境変数 の設定になる。

環境変数が分からない

環境変数というものが分からなかった、全然。なんかデータを共有するための仕組みと言われたけどぴんと来なかった。色々調べていたらこのイラストで理解ができた。

https://twitter.com/RIORAO/status/856181377686847488

どうやら環境変数というのはAという環境とBという環境をつなげる橋のようなもの。これが設定されていないと、二つの間を何も行き来できないし、どうすることもできないということで納得がいった。

環境変数を実際に設定した

まずはコンパイラの gcc の場所を調べる、多分何もなければ C:\MinGW\bin にあるっぽい、とりあえずそこにあった。

あとはそれを環境変数のところに書いてあげればすべてが解決だったが、ここで問題が起きました。

環境変数設定を開こうとしたら「お前にはアクセスする権利がない」的なことを言われました。しかし、環境変数の設定はここからじゃないとできない...

error.jpg

こんなのが出てきました。

色々調べた結果、 直接システム設定を起動させてあげるということで解決しました

環境変数の話

環境変数はユーザーとシステムの二つに分かれています。最初はどちらに書けばいいのかわからなかったのですが。

  • ユーザー ... ログインしている人だけに適用される
  • システム ... このパソコン自体に適応される

という違いがありました。結局僕はユーザーのほうに入れました。

というわけでこれで環境変数の設定もおしまいです。

再起動したら終わり終わり。

これで父親の言っていた最低限の環境構築までは終わりました。今日はこれだけでも一日を使ってしまい、先が思いやられます。しかしくじけず頑張ろうと思います。

どしどしコメントなどよろしくお願いします。

2日目の記事です -> 大学を合格してから始めるwindowsでプログラミング 2日目