もしも過去の自分にアドバイスできるなら。〜4年生プログラマの視点〜
4年生のプログラマです。小学校だと卒業まであと2年残っていますが、学んできたこと、学ぼうと思うこと、考え方等をまとめておこうと書いてみます。
コマンドラインで動くプログラムを作る。
できればshell等で。
パイプとかストリームとかオプション引数とか。バッチ処理とか。
Cを学び続ける
Cで作る必要はないですが、Cに関することを学び続けるのはコンピュータを学ぶ上で最良だと思います。
なぜCで作るのか。なぜCでつくらないのか。
WEBで会員登録の仕組みを作る。
ログインとかセッションとかパスワードのハッシュ化とかデータベースとか。本格的に作りこむとWEBの脆弱性が学べると思います。
cronとタスク・スケジューラを使う。
linuxでもwindowsでも定期バッチが使いこなせます。
Redmineを構築する
プロジェクト管理+バージョン管理+バグトラッキング+情報共有に。
お金を出してサーバを借りる。
自分でお金を出してサーバを借りることは大事。触らなくちゃもったいないという衝動に駆られます。
借りるなら、さくらのVPSか、amazonEC2で。
はてなダイアリーの有料登録をする。そしてGoogle Adsenseの広告を張る。
お金を払うことで不定期なりともOUTPUTを必ずします。良い記事を書き続けることができれば、必ず有料分のお金は取り戻せるはずです。
お金をだして技術書を買う
身銭を切るからこそ身につくことは沢山あると思います。
テストコードを書く
負債のコードを資産のコードに変えるためにはテストコードを書くのが一番。
プロトコルとかフォーマットを意識する。
HTTPとかPOPとかSSLとかYAMALとかCSVとかTSVとかJSONとかXMLとかCSSとかiniファイルとか。
システムの挙動を変えるためのファイルだったり、システム間の電文だったりクラサバの間だったり。
シリアライズだったり。ファイルシステムのフォーマットだったり。ファイルの圧縮方法だったり。SSHだったり。
アプリを作る前に把握しておくべき。
ネットワークプログラミングを意識する。
DNSとかHTTPとかソケットとかストリームとか。curlとか。wgetとか。XML-RPCとかSOAPとかRESTfulとか。
RDBとKVSを学ぶ。
RDB(リレーショナルデータベース)と、KVS(キーバリュー型のデータストア)それぞれ使いどころ、役割があると思います。スキーマについても考えさせられる。
AWSのオンラインセミナーの資料を見る
AWSを用いた耐障害性の高いアプリケーションの設計
クラウドのためのアーキテクチャ設計 - ベストプラクティス -
AWSを用いたWebホスティング
まだまだ勉強することばっかりだ・・
こうやって書いてみるとやるべきことって沢山あるね。。まだまだ勉強あるのみだ。