これからプログラミングの基礎力を付けたい方へ
プログラミングを始めて力を付けたいって方、しかし、どんなことができるか分からない、どんなことをしたいか分からない方
情報工学の基礎を楽しく学ぶ方法を伝授します。
この文章は、情報系新入生やパソコンギークになりたい方にお勧めです。(特に競技プログラミングを始めたい方にお勧めかも)
内容自体は、競技プログラミングやるといいよって話です。はい。
競技プログラミングとは
世の中には競技プログラミングと呼ばれるものがあります。数多くの問題が存在し、情報系の基礎力となるプログラミングやアルゴリズムのスキルが身につきます。
ソフトウェアのプログラミングの競技大会のこと。
主に、コンピュータ アルゴリズムに関する問題が数問出題されて、それを数時間以内の制限時間で解く。正しく解けたかどうかは、出題者側が用意したテストデータに対して、正しい答えを返すかどうかで判定されることが多い。
はてなキーワード
最大値はいくつ?とか 最短距離はいくつ?とか
そんな感じの問題ですねー。
オンラインジャッジ
さて、そんな競技プログラマの一般的な練習の場としてオンランジャッジと呼ばれるサービスがいくつかあります。
私の周りではAOJを使って練習している方が多いですね。とりあえずアカウント登録してVolume100をいくつかやってみるといいですよ。
おすすめ書籍(入門編)
プログラミングの宝箱 アルゴリズムとデータ構造
基本文法が終わったら、データ構造とアルゴリズム!下記は分かりやすくて、面白い題材のある本です。
プログラミングコンテストチャレンジブック
基礎力が整ったら実践を交えて勉強しましょう。競技プログラマ必携です!
おすすめ書籍(ステップアップ編)
Effective C++
中規模以上のソフトウェアを開発するために。C++のルールとマナーについて。
アルゴリズムクイックリファレンス
ただのリファレンスではなく詳しい解説もあり、どのような時にどのアルゴリズムを使うべきか参考になります。
おすすめ書籍(闇の軍団編)
Modern C++ Design
闇のC++er軍団への入門書。実に技工に富んだ面白い本だと思います。学部1年の時は読みふけりました。
おすすめ書籍(その他)
vimテクニックバイブル
宗教戦争が起こりそうなのでその他に。Linuxやエディタについての知識を深めると効率上がりますよ。
このように基礎力をしっかり身に付けたあとに、ウェブ系だとかゲーム系だとかやるといいんじゃないですかね。