「プログラミング研究会資料置き場」へようこそ!
ここはMIS.Wサークル員が作成した、主に初心者向けの資料をまとめた場所になります。
ここでは、どこから資料を読めばいいかわからないあなたのために、資料の概要と分野ごとのオススメ資料をご紹介します。
「プログラミングを始めたけど、まずは一体何から初めていいのか分からない」という方のために、ここでは、MIS.Wでプログラミング初心者がまず何をすればプログラミング研究会に参加できるのかをご紹介します。
MIS.W公式ブログで開催される新歓ブログリレーの2019年度版にも、同じ趣旨の内容が書かれた記事が挙げられているのでそちらも併せてご覧ください。
みすでの過ごし方(プログラム初学者編)【新歓ブログリレー2019 2日目】
こちらでは、上の記事よりも具体的に何をすればよいのかを説明できればと思います。
プログラミングを始めるとき何を学べばよいかをプログラマに聞けば、十中八九「何がしたいのか?」を聞かれるでしょう。ここではまず、何かしたいものがある人に向けて何を学ぶべきかをご紹介します。
注意:ここで述べるのはそれぞれの分野のほんの触り程度です、ここで紹介されている勉強をした後は、学んだことをヒントに自分で学ぶ課題を見つけていきましょう(もちろん、先輩に何を学ぶべきか聞くのも大いにありです)
Webページを作れるようになりたい
Webページの情報は、HTMLという言語で記述され、その見せ方はCSSと呼ばれる言語で記述します。MIS.Wでは、これらの言語をProgateというサービスを使って無料で学ぶことが出来ます。Progateにこちらの手順に従って申請をして、「HTML & CSS」のレッスンを始めてみましょう。
インターネット、Web関連の技術を習得したい
まずは、公式ブログに投稿されているこちらをご覧いただくと良いかもしれません。Web開発の手法は多くありますが、MIS.Wでは現在でも主要な開発環境の一つであるRuby on Railsを、Progateというサービスを用いて無料で学ぶことが出来ます。Progateにこちらの手順に従って申請をして、「Ruby on Rails 5」のレッスンを始めてみましょう。
ゲームが作りながらプログラミングを勉強したい
こちらの資料置き場にインストールガイドのあるOpenSiv3Dでは、ゲームに限らず広く使われている言語のひとつであるC++を用いてゲームや簡単なソフトウェアを開発できます。インストールガイドや公式リファレンスを参照しながら学んでみましょう。
本格的なゲームが作りたい、VRのコンテンツが作りたい
ゲームエンジンUnityを用いれば、アマチュアでも本格的なゲームやVRのコンテンツが制作できます。インストールガイドを参照しながら環境構築を行い、Unity講座や公式チュートリアルでUnityを学んでみましょう。
AI、機械学習について学びたい
2019年現在、多くの機械学習プログラムはPythonというプログラミング言語を用いて書かれています。Python, JavaScriptの始め方を見ながらPythonの基礎を学び、書籍などで機械学習の基礎を学ぶとよいでしょう。
ソフトウェア開発やモバイルアプリケーション開発がしたい
C#を用いれば、PC用のソフトウェアだけでなく、モバイル端末ようのアプリケーションまで開発することが可能です。通常Android端末はJavaやKotlin、iPhoneはObjective-CやSwiftを用いて開発を行うのですが、C#のXamarinという開発ツールを使えば、様々な環境で動くソフトウェア、アプリケーションを作成することが可能になります。C#を始めるときには、C#入門(サイトリンク+α)などを参照すると良いでしょう。
コンピューターについて学びたい
C言語は、数あるプログラミング言語の中でもコンピューターと関係が深く、C言語を深く学んでいく中で、コンピューターの重要な概念を学ぶことが出来ます。C言語を学ぶには、C言語講座2017年度資料などがオススメです。
授業のプログラミングを先取りしたい
早稲田大学基幹理工学部では、C言語を初めに学習するため、C言語講座2017年度資料などの資料が役に立つでしょう。また、基幹理工学部の情報系学科に進むと、JavaやPythonを学ぶことになるので、Python, JavaScriptの始め方やJavaの書籍などで勉強しておくと後から楽になると思われます。
次に、特にやりたいことがない人向けのガイドラインです。以下の条件に当てはまる人は、その後に説明されているものを勉強してみてはいかがでしょうか?
数学が好き
数学と関連の深いアルゴリズムなども登場する競技プログラミングを始めてみてはいかがでしょうか?競技プログラミングに関しては、公式ブログに投稿されているこちらを読んでみると良いかもしれません。また、ロジックそのものが面白い、LispやHaskellなどの関数型言語を学んでみるのも面白いかもしれません。
流行ってることがやりたい
2019年現在の流行りといえば機械学習です、上述の通りPythonを始めてみるのが吉です。Python, JavaScriptの始め方を見ながらPythonの基礎を学び、書籍などで機械学習の基礎を学ぶとよいでしょう。
RPGのレベル上げが嫌いじゃない
Progateでは、自分のアカウントのレベルを上げながらプログラミングの学習をすることが出来ます。Progateにこちらの手順に従って申請をして、適当なレッスンを始めてみましょう。
Twitterが好き
おしゃべりBotを作ろうを参照しながら、Twitterのbotを作ってみてはいかがでしょう?TwitterAPIの使い方も分かるので、これからのTwitterライフがより面白いものになる可能性大です。
どれにも当てはまらない
とりあえずC言語講座2017年度資料などでC言語をやってみて飽きないようであればそれで十分だと思います。どうしてもつまらなく感じるのであれば、Progateなどで、コツコツレベルを上げていきながら、自分に馴染むプログラミングを探してみましょう。
記事の概要とどんな人にオススメの記事なのかをご紹介していきます。
Gitは、今やプログラムのバージョン管理や複数人での開発で欠かすことのできないツールとなっています。
その中でも、Gitの仕組みを利用できる最も有名なサービスがGitHubです。
この資料では、GitHubのアカウント作成から、Gitでプロジェクトを管理するためのリポジトリを作成する方法までをご紹介しています!
最近は就活でGitHubのアカウントを書かされたりするので、アカウントを作っておいて損はないかも!
こんな人にオススメ:複数人でプログラムを書こうとしている人、自分のソースコードを公開しようと思っている人、Gitを使い始める人
上述した通り、Gitは現在プログラマーには必要不可欠なツールの一つです。
しかし、Gitの使い方は初心者には少し複雑です。普通はコマンドラインから操作をする必要があるのですが、それはそれで敷居が高いものです。
そこで、この資料ではGitを扱う便利なソフトウェアであるSourcetreeの使い方の基本と、Gitを学ぶためのオススメサイトなどが書かれています。
この資料を読んで、あなたもGitライフを始めてみてはいかがでしょうか?
注意点として、この記事はSourcetreeのインストールを前提にしています。まだインストールしていない方はインストールガイドの方を先に読みましょう。
こんな人にオススメ:複数人でプログラムを書こうとしている人、Git何だこれ意味わからんって人、Sourcetreeをインストールした人
Gitを操作するソフトウェアの中でも、もっとも有名なものの一つがSourcetreeです。
Gitの機能のほとんどをGUIで使うことが出来るので、初心者にもオススメです!
これらの資料では、OSごとのSourcetreeのインストール方法をご紹介しています。
こんな人にオススメ:コマンドラインをあまり使ったことがない人、Gitを使い始めたい人
プログラミングの勉強法の一つとして、ゲームを作るというのはとても有効な手段の一つです。自分の書いたコードが、実際に動いているのを目で見て確認しながらプログラミングをするのは、やはり楽しいものです。
OpenSiv3Dは、現在も広く使われている人気のプログラミング言語C++を用いて簡単にゲーム制作やデジタルアートを作ることが出来るフレームワークです。
これらの資料では、OpenSiv3Dで開発を行うために必要な環境構築の方法を丁寧に解説しています。
こんな人にオススメ:ゲームを開発したい人、ゲーム開発を通してプログラミングを学びたい人、PC上で動くソフトウェアを簡単に作りたい人
趣味でゲーム制作をしようと思っても、3Dオブジェクトを動かすような本格的なゲームを制作するのはとても大変です。
しかし現在は、誰でも簡単にゲームが作れるように、ゲームエンジンなるものが開発されました。Unityは代表的なゲームエンジンの一つで、誰でも無料で利用することが出来ます。
これらの資料では、Unityのインストール方法と、複数のUnityのバージョンを管理できるUnityHubのインストール方法が開設されています。
こんな人にオススメ:ゲームが作りたい人、3Dゲーム・VRゲームに興味がある人
プログラムを書く際の心強い味方の一つが、プログラマを助ける様々な機能が詰まったIDE(統合開発環境)でしょう。
XcodeはMacOSの最も基本的なIDEであり、多くの用途で用いられます。上述したOpenSiv3DやUnityでももちろん 用いることが出来ます。
こんな人にオススメ:UnityやOpenSiv3DをMacOSで使いたい人、MacOSで開発を行いたい人
PythonやJavaScriptなどの言語はスクリプト言語と呼ばれ、プログラムの実行が容易にでき、書き方も比較的簡単なところが特徴です。
Pythonは特に書き方が簡単になるように設計されており、Webアプリケーションやデスクトップアプリケーションの開発だけでなく、理工学や統計など幅広い分野で使用されています。最近特に注目を集めているのは、機械学習(いわゆる流行りのAI)やWebページを探索して情報を抽出するスクレイピング、ビッグデータを扱うデータ分析などです。
JavaScriptはウェブページに組み込んでブラウザで動かすことが出来るスクリプト言語で、Web業界では不動の地位を築いています。最近はNode.jsなどの登場で、その影響力はWeb全域に及ぶほどとなっています。Web関連の分野に興味があるのであれば、学んでおいて必ず損はしない言語と言えるでしょう。
この資料ではこれらの大人気言語の環境構築から勉強の始め方が簡単なサンプルコード付きで解説されています。また、簡単なサーバープログラムやシューティングゲームのサンプルコードもついています。
こんな人にオススメ:Web関連のプログラミングを始めたい、機械学習やデータサイエンスに興味がある、C言語が何となく肌に合わない人
C言語は現代のプログラミング言語の始祖となる言語のひとつで、その思想や仕組みは多くの言語に受け継がれています。さらに、様々な環境で動作するため汎用性が高く現在も人気は衰えていません。
この資料では、MIS.Wで過去に用いられていたC言語学習のための記事や練習問題を閲覧することが出来ます。
情報系の学科では広く学ばれているC言語をここで学んでいけば、他の学生たちに大きく差をつけられること間違いなしです!
こんな人にオススメ:授業でC言語を学ぶ予定である、プログラミングをしっかり基礎から固めていきたい
この資料では、MIS.Wで過去に用いられていたC言語の学習資料でC言語を学ぶことが出来ます。正直書籍にできるくらいのクオリティの記事です。
注意点としては、「インストールと新規作成」で紹介されている環境構築のお話は少し古いので、そこは留意しておいてください。
早稲田の基幹理工学部で学ぶC言語の授業1年分の範囲は収まっていると思うので、この記事を読んで他の学生たちにマウントを取っていきましょう!
こんな人にオススメ:授業でC言語を学ぶ予定である、C言語の基本的な知識を一通り知りたい、プログラミングをしっかり基礎から固めていきたい
この資料では、2018年次の講座で用いたC言語の解説資料が閲覧できます。C言語の基礎の基礎となる概念の解説をしています。
こんな人にオススメ:プログラムを初めて書く人、C言語を学び始める人
C#はかの有名なMicrosoftが開発した言語で、主にWindowsでのソフトウェア開発やUnityでのスクリプト記述に使われています。癖のない充実した言語仕様と開発環境(VisualStudio)のバックアップもあり、現在では広く使われている言語のひとつです。
この資料では、C#の基本事項やオススメのサイトを紹介しているだけでなく、C#を学ぶ際のStepやキーワードなども知ることが出来ます。
こんな人にオススメ:ソフトウェア開発がしたい、Unityで使うC#がよく分からない
この資料では、MicroSoft Excelで自動処理や分析を行うのに便利な、Microsoft Excel VBAを学ぶことが出来ます。
Excelでのファイル作成からプログラム記述までの流れが丁寧に解説されており、プログラミングを書いたことがない人でも分かるようにVBAの書き方の基礎を学ぶことが出来ます。
こんな人にオススメ:Excelを多く使う、Excelでの処理を自動化したい
R言語は、プログラミング言語の中でも少し特殊な言語で、統計解析に特化した言語として設計されています。ビッグデータなどでデータ解析の需要が高まる中、R言語は注目の言語のひとつとなっています。
この資料では、R言語の開発環境の説明や図やグラフの出力に関して解説しています。
こんな人にオススメ:統計学やデータサイエンスに興味がある、身近なデータを解析してみたい
OpenProcessingはブラウザ上で環境構築無しで書けるプログラミング環境で、その場でじっくや共有ができ、携帯上でも動作するのでとても便利です。
この資料は、2019年の新入生向けに作成された資料です。実際の作品を作りながらOpenProcessingを学ぶことが出来ます。
こんな人にオススメ:手元にプログラミング環境がない、デジタルアートに興味がある
OpenSiv3Dは現在も開発が進んでいるプログラミング環境であり、人気言語のひとつであるC++を用いてゲーム開発を行うことが出来ます。
Unityのようにソフトウェア上で操作を行うことは出来ませんが、プログラム上で簡単にゲームやデジタルアートなどを作ることが出来ます。
この資料では、プログラミング初心者向けにOpenSiv3Dの使い方やC++の基本を解説しています。
OpenSiv3Dの環境構築には、OpenSiv3Dインストールガイド(Mac版)及びOpenSiv3Dインストールガイド(Windows版)の情報をご参照ください。
こんな人にオススメ:プログラミング初心者、ゲーム開発を通してプログラミングを学びたい人、PC上で動くソフトウェアを簡単に作りたい人
この資料では、DXライブラリというWindows向けのゲーム開発環境を用いてブロック崩しを作成する流れを解説しています。
C言語の基本的な文法を一通り学んだ人向けに、DXライブラリの基礎から、当たり判定などのゲームプログラミングの基礎まで多くのことが学習できる資料となっています。
注意点として、part0の環境構築部分は非常に古いものになっているので、実際に開発をするときにはDXライブラリのインストールガイド(公式)などを参照して環境構築を行ってください。(VisualStudio2017も入手するのが少し難しくなっているのですが、こちらのぺージ下の方からダウンロードできます(2019/4/7現在))
こんな人にオススメ:C言語の知識を使ってゲーム開発がしたい
この資料では、ゲームエンジンUnityを用いて簡単な3Dゲームを開発しながら、Unityの基礎知識を学ぶことが出来ます。
ゲームを制作し、実際に遊べる形にするまでの流れを知ることができ、Unityでゲームを開発するための基礎知識を身につけることが出来ます。
Unityのインストール方法などは、Unityインストールガイド(Mac版)及びUnityインストールガイド(Windows版)をご参照ください。
こんな人にオススメ:3Dゲームを開発してみたい、Unityでゲームが開発できるようになりたい
プログラミングのをするということは、同時にデバッグをするということでもあります。デバッグとは、思った通りに動かないプログラムのバグの原因を特定し、修正することです。
プログラムを書く際の心強い味方の一つとして、デバッグを格段にやりやすくする、デバッグツールがあります。
この記事では、C言語のデバッグをする際に使えるデバッグツールの使い方を解説しています。
デバッグツールを上手く使えれば、C言語の講義がとてもストレスフリーなものになるはずです!
こんな人にオススメ:C言語は分かったけどデバッグに時間がかかる人、講義のC言語がつらい人
この資料では……今は亡き統計班の活動内容や、学習内容を知ることが出来ます。
こんな人にオススメ:統計班の復興を志すもの
この資料では、RubyとTwitterAPIを用いて実際におしゃべりをするbotを作成する方法を学ぶことが出来ます。
定型文のツイートから、おみくじ、リプライへの反応など様々な機能の実装方法を学びながら、実践的にRubyやTwitterAPIの使い方を知ることが出来ます。
LINE版もあるようですが、まだ書き途中のようです。続きが読みたい人は記事中の連絡先までご連絡を。
こんな人にオススメ:Rubyを使ったプログラムを書きたい、TwitterAPIを使いたい
この資料は、新歓の一環で行った競技プログラミングミニ講座の際に使用したものです。
競技プログラミングを始める人用に、基本情報や便利なサイトをご紹介しています
こんな人にオススメ:競技プログラミングを始めたい人、レートを上げながらプログラミングを勉強したい人
プログラミングで最も重要なことの一つに、情報収集があります。常に最新の情報や高度な情報を取り入れることが、プログラミング上達の近道です。
この資料には、その情報収集の方法としてTwitterを用いるための情報が書かれています。MIS.WはTwitterを利用している人間が多いので、知っておいて損はない情報だと思います。
こんな人にオススメ:プログラミング始めたけど何をすればいいのか分からない、Twitter始めたけどフォローする人がいない
プログラミングを学ぶときには、知っておくと便利なことがたくさんあります。
この資料には、プログラミングにおける汎用的な基礎知識や、ツールを紹介しています。また、それらについて述べられているWebページへのリンクが紹介されています。
こんな人にオススメ:プログラミングの始めたけど何をすればよいか分からない人、どこで調べものをすればよいか分からない人
この資料では、プログラミングを学ぶためのサイトがいくつか紹介されています。
こんな人にオススメ:プログラミングを学ぶためのサイトを見つけたい人
Progateは、ブラウザ上でプログラミングの学習ができるサービスです。HTML, CSS, jQuery, Python, Java, PHP, Ruby on Rails, Gitなど様々な講座が用意されており、実際に自分で書きながらプログラミングを学ぶことができます。全てがブラウザで完結するので、難しい環境構築も必要なく、初心者にとても優しい構成となっています。
無料プランと有料プランがあり、無料プランでは受けられる講座が制限されます。しかし、MIS.Wではアカデミックプランというものに加入しており、「HTML & CSS」と「Ruby on Rails 5」の二つのコースが無料で利用できます。
利用したい方は以下手順で申請して下さい。
MIS.Wに入会した後に案内があると思いますが、MIS.WではKibelaというサービスを利用しており、だれでも簡単にブログのようなものを書いてサークル内で共有することが出来ます。
プログラミング研究会は、専用のグループがあり、記事を投稿するとSlackのプログラミング研究会窓にも通知が飛ぶようになっています。プログラミング研究会で共有されている様々な記事を読むことが出来ます。(言語の入門やおすすめのUnityアセットなど)
MIS.Wには、専用のGitHub organization(グループのようなもの)があり、そこでは、過去の企画のソースコードなどが閲覧可能になっています。参加するためには、GitHubのアカウントを作成し、すでに所属しているサークル員から招待を受ける必要があります。(先輩に頼めばやってくれるはず)
企画やゲームジャムで使うことも可能ですが、利用規約が設定されているので、必ず目を通すようにしてください。