独断と偏見に満ちた,ちょっとしたプログラミング言語経験の雑記

こんにちは,14みやび(@miyabi3180)です.四月から大学院に入学するので,実質新入生です.
今回は新歓ブログリレー7日目の記事ということで,新入生に向けて何か書くという趣旨です.
内容に関して色々と迷ったのですが,今回は自分が学部4年間で触ってきたプログラミング言語の感想でも書きたいと思います.

ロボット技術研究会にはたくさんの人が集まってくるので,当然化け物のように強い(技術力が高いの意)人が同期や後輩として入ってきます.
そのような人を見ていると,「自分には難しいかな…」と一線を引いてしまうことがあります.
少なくとも自分はそう感じてきたのですが,そんな自分でもぐだぐだ4年間ものつくり活動を続けていると,
「まぁ少しは技術力がついてきたかな?」と思えるようになってきました.
ソフトウェアにせよハードウェアにせよ,やってみたいと少しでも思ったら飛び込んでみるのが吉です.
今回はソフトウェアに触れ合うきっかけになればと思い,この記事を書きました.

この記事で伝えたいことのまとめ

  1. エラーは怖くない
  2. 最初は何でもいいから一つプログラミング言語を経験すると良い
  3. 慣れてきたら,やりたいことに合わせてプログラミング言語を選べると強い

 

以下使ってみた言語別の体験談や感想です.(個人の意見です)(間違ってたらごめんなさい)

C言語

恐らくもっとも基本的だと紹介されることが多い言語.
ゲームとかPC上で動くソフトを作るというよりは,マイコンなどハードを動かすためのソフトを作るために使うことが多い気がする.

C言語は高校生の時に学校の授業で少しやって,基本的なプログラムの構文を勉強しました.
初めてのコンパイルエラーではよくわからないエラーがもりもり出てパニックになりましたし,
実行したら無限に数字が表示されて止まらないプログラムにビビり倒しました.
何回かそんなことを繰り返すと,

  • 英文を読めば結構ヒントがある
  • エラーメッセージでググると大体答えがある
  • 止まらんかったら焦らずctrl-d
  • エラーが出てもPCは爆発したりしない(少なくとも今のところPCを壊すようなエラーを踏んだことはない)

みたいな重要な知見を深めました.

ロボット技術研究会では,C言語講習会で基本を一通り勉強することが出来ます.
これをこなしていると,マイコンでロボットを動かすプログラムなんかを書くときにすんなり入れます.マイコン講習会もあります.

VC++

Windowsが提供するC,C++,C++/CLI用の統合開発環境(Wikipediaより)らしい.詳しくはよく知らない.
C言語ではせいぜいテキストが表示されるようなプログラムくらいしか作ったことがなく,ボタンとか入力欄があるようなソフトや,絵が動くみたいなグラフィカルなソフトを作りたいと思い使ってみた.

個人的にはちょっとしたプログラムを作りたくても,統合開発環境という性質上色々よくわからないファイルが生成されるので苦手だった.
開発環境がよしなにしてくれるのを許せるのなら馴染めるのかなぁ.

Windowsフォームアプリケーションとか,DXライブラリとか,初めて文字が表示される以外の出力があるプログラムを作った言語.
迷路生成&探索シミュレータとかを作った.

C++

クラスとかテンプレートとか,使いこなせると強い言語.
簡単なプログラムを書くとき,もっと全貌を掴んでちゃんとプログラムを書きたいと思い始めた言語.それまではWindowsで開発を行ってきたけど,この時点からLinuxを開発に使うようになった.Qtライブラリを使ってウィンドウを生成したり,USBやBluetoothを介してロボットと通信したりした.
クラスやテンプレートなど,学ぶのにかなりコストが高いように思えたけど,
使えるようになると感動.
もちろんC++完全に理解したなんて口が裂けても言えない.

Bluetoothを用いたアンドロイド端末のセンサモニタ&コントローラとかを作った.

Java

色々な端末で動く言語で,Windowsでも開発環境構築は割と楽.
オブジェクト指向でプログラムを書くので,コードを綺麗にまとめやすいかなという印象.
ただし,どんなクラスを作るかなど,構造の設計に頭を悩ませる時間が長くなる.

アンドロイドアプリを作るのに使った.
mbed(マイコンボード)とスマホの有線通信によるモータ制御アプリを作って,
上記のセンサモニタ&コントローラを組み合わせて,アンドロイド端末を使った水上移動ロボットを作った.

Ruby

国産言語.スクリプト言語.コンピュータサイエンスという学部1年生の時の授業で使い始めて,以降ちょくちょく使った言語.
それまでコンパイル言語を使っていたので,スクリプト言語は新鮮だった.
あと,型という概念が適当でいいのは新鮮だった(語弊がある言い方)

とりあえず,文字列を扱うのが簡単で楽だなという印象があり,mecabという文章を形態素解析するライブラリを使ってtwitterのbotとかを作ってみたり,
webサイトのhtmlを引っ張ってきて単語の意味を検索して表示するプログラムとかを作っていた.

JavaScript

ブラウザで動く言語.Javaとは別の言語.
もっと開発環境の構築が簡単な言語をやってみるかという気で始めた言語.
ブラウザがあればとりあえず動くのは簡単でいいなという感じ.
ブラウザを介して実行するとPCのマイクとかUSB,webカメラと連携するのが難しいのかと思いきや,案外簡単に使えたのでびっくり.

webカメラとLeapMotionを用いたソフトを作って今遊んでいる最中です.

MATLAB

数値解析言語と呼ばれていて,私が所属する制御システム工学科(システム制御系)ではなくてはならない存在です.(たまに祈りを捧げる)
MATLABでは色々なことが可能ですが,得意なことはデータの可視化や解析です.
たとえばロボットのログファイルをグラフ化して表示,コントローラを設計したりが簡単にできます.ほかにもハードとの連携も強くて,webカメラを使って画像認識をしたり,とにかく楽しい.
MATLABは有料のソフトなのですが,東工大には学生ライセンスがあり,
無料で使うことができます.
MATLABの配布について

終わりに

まだまだたくさんのプログラム言語が存在しますが,あまり長くなってもあれなので一旦終わりにします.色々気になったらぐぐってみてください.
4年間でたくさんの言語に触れてみましたが,どの言語にも特徴があります.
まずは恐れずに一つプログラミング言語をやってみて基本的な考え方を身に付けた後は,やりたいことに応じてその都度色々なプログラミング言語を試してみるのがいいと思います.
その際,先輩や同輩など,他の人に相談してみると近道になります.
そんなものつくりを楽しむ仲間を作るために,興味がありましたらロボット技術研究会まで!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です