DENXブログ

同志社大学 電気情報研究会(DENX)の活動や日常風景などを紹介します。

大学生から始めるwebアプリケーション開発

初めましてこんにちは。今出川1回生の桜です。髪色はやはり黒が一番落ち着きますよね。赤、オレンジ、シルバー、茶と色々冒険してきましたが、黒が一番かっこいいことに気づきました。さて、自分がプログラミング学習を始めて四ヶ月ほどたったので、これからプログラミングを始めてみようかなって思っている人たちに向けて色々と綴っていこうと思います。

プログラミングについての考え方

まず、ものすごく当たり前のことですが、プログラミングができるというだけでは全く誇れるようなことではありません。プログラミングはただの技術であり、ユーザが満足できるサービスを作り上げるための方法にすぎないのです。価値あるプログラム、サービスを提供して初めてその技術は価値あるものへと変貌するのです。まあ、要するに、口じゃなくて手を動かして結果を出すことが一番大切だということです。その”結果”というのはもちろん各自定義が異なるとは思いますが、自分はプログラミングは利益を生み出すためのビジネスツールだと考えて学習を始めた人間なので、ここでは”儲ける”ということを”結果”と定義して話を進めていきましょう。

言語の選び方

それを踏まえて、プログラミング言語の選び方を紹介していきます。大きく分けると二種類あり、フロントエンド系の言語とバックエンド系の言語です。といってもピンと来ない人が多いと思うので、簡単にいうと、フロントエンドでサイトの見栄えを作り、バックエンドでwebサービスの仕組みそのものをつくる。イメージとしては部屋のインテリアをデザインするのがフロントエンドで電気の配線をしたり水道管を張り巡らせるのがバックエンドです。

フロントエンド

最初はフロントエンドの紹介から。言語としてはHTML、CSSJava Scriptなどがあります。フロントエンドはコードと画面が一対一に対応しているといえこともあり、学習難易度は比較的低めです。プログラミングの事なんて何も知らないけど手っ取り早くエンジニアっぽいことしたいな!っていう人はフロントエンドをおすすめします。しかし学習難易度が低すぎるあまり、案件の単価は低めです。

バックエンド

バックエンド系の言語として、RubyJavaなどがあります。プログラミングといえば多くの人はこっちを想定すると思います。しかし、アプリケーションは言語一つでかでできているというわけではなく、多くの場合フレームワーク利用して開発しています。例えばRubyエンジニアであればRuby on rails。僕はこれを利用してアプリケーションを作っているのでこれについて説明していきます。実際に使われているところでいえば、クックパッドや初期のTwitterです。数多くあるrubyフレームワークの中でも最もメジャーで、学習難易度もバックエンドの中では比較的低めなので、今から学習を始めるならこれがおすすめです。最近の企業はたいていrailsで開発しているので、これさえできれば仕事に困ることはないとまで言われています。

学習の進め方

ちなみにrubyオブジェクト指向と呼ばれる言語なのらしいですが、そのへんはよくわかりません。何ならフレームワークってそもそも何なん?って感じです。しかし、冒頭に言った通り、プログラミングは目標物を作るためのツールに過ぎないので、目的のものを作ることができればそういう細かいことはなんでもいいのです。料理が趣味の人だって包丁の素材や鍋の製造方法なんて知りませんよね。ただの道具で、それ以上でもそれ以下でもありません。美味しいご飯が作れれば料理人も食べる人もみんな幸せです。これについては賛否両論あると思いますが、作品の完成に直接影響しないところにこだわりすぎるよりも、多少乱雑にでも作品を完成させた方がいいと僕は考えています。しかし決して細かい知識が必要ないといっているわけではありません。ある程度枠組みを理解してから、細かいところを学んでいけばいいのです。プログラミング学習に、というより、勉強全般に言えることですね。完璧主義が受験に失敗しやすいとよく言われているのはそういうことです。

まとめ

少し話が脱線したように思えますが、以上がプログラミングを四ヶ月学んだ僕が入門者に伝えられる事、及び学習への取り組み方です。少しでも参考になれば幸いです。