スキップしてメイン コンテンツに移動

インターン(その13)

実務訓練としてお世話になっています、
豊橋技術科学大学の近藤です。

本日、2月25日をもって、インターンが終了となります。
今回のインターン中に学ぶことができた、コーディングの習得の方法についてまとめてみました。

コードリーディングの重要性

当初、私はDjangoはおろか、Pythonすらあまり理解していない状態で
Djangoチュートリアルを一通り行い、アプリケーションの開発を始めました。
しかし、チュートリアルや簡単なアプリケーションだけでは、実際に
使用するような美しいコーディングのアプリケーションの開発を行うことは、
非常に難しいと思います。
 今回、Django本体のコードを読む必要があり、コードリーディングを行うことで、
「どのような記述方法があるのか」、「各処理の正しい手順」、
「Djangoでのプログラミングの考え方」が学べたのではないかと思います。
 初心者が他人のコード、ましてや複雑な処理を書いている本体のコードを読むのは、
非常に抵抗があります。しかし、嫌々でもコードを読み、理解できるようになれば、
ある程度のコーディングができるようになります。初心者だからこそ、
しっかりと書き込まれたコードを読むことが重要であると感じました。

「何がどうしてダメなのか」を知る

コードリーディングを行い、ある程度のコーディングができるようになりましたが、
書くコードはまだまだ無駄が多く、美しいとは言えませんでした。
コーディングしている際は、とりあえず動くコードを記述するので精一杯で、
知識不足であるため、「実はもっと楽な方法がある」ということを知らずに書いて
いました。
 今回、私が書いたソースコードを見て頂き、「どこが直すべき点か」、
「どうしてダメなのか」、「どのような記述にすべきか」という点の方向性を
教えて頂くことができ、改めて自分でリファレンスなどを調べ、
楽なコーディング、きれいなコーディングをすることができるようになりました。
 ダメ出しをして頂ける方がいて、方向性だけを教えるということが、自分で調べて
解決するということにつながり、結果きれいなコーディングが身に付くのではないか
と思います。

プログラミングに取り組む環境

新たなプログラミング言語を学ぶ際に重要になる点は、
  ・ある程度の期間、しっかり集中して取り組める環境
  ・そのプログラミング言語を習得する動機
  ・良き先生の存在
であると感じました。
 今回、インターンでこちらに来て2か月ほど学びましたが、来る前の数か月間と
比較しても、明らかに大きく成長できたと実感しています。
短期間で言語を取得するということを体験して得たことは、今後の人生において
新たな言語を学ぶ際に大きく活用できるであろうと思います。
 今後も、「楽なコーディング」をするために、どんどんコードを書いて失敗し、
成長していきたいと思います。

以上です。
2か月間お世話になりました。ありがとうございます。

コメント

このブログの人気の投稿

INTEROP Tokyo2015

6月11日(木)Interop Tokyoへ行ってきました。 私の目当ては、CITRIX社 ブース会場で行われた クラウド・エバンジェリストの北瀬公彦さんと常田秀明さんの講演です CITRIX社のロードバランサーであるネットスケーラーの活用事例を IBM社のクラウドサービスSoftLayerを例に説明されていました。 CITRIX社は、IBM社のグローバル提携企業だから、 CITRIX社のロードバランサーであるネットスケーラーと SoftLayer は、セットで説明されていました。 SoftLayer は、データセンターをプライベートにつなぐネットワークだっていう話でしたので、 IBM社のSoftLayer の物理サーバーを使えば、 データセンターをクラウド化ができる。 (オンプレミスの環境をそのまあ維持してデータセンターへ移行できる) 従来のオンプレミスユーザー最適だってことでした。 そのため、仮想化とか、クラウドがどうかとか説明必要ないということになり、 企業の情報システム担当者は、安心して使えるし、経営者にも説明しやすいと思いました。 自前で仮想化システム研究できる余裕はなく、 PaaSは不安という感じがあれば、 SoftLayerのIaaSサービスって、選択しやすいし、わかりやすい。 最適なクラウド基盤を選択できるっていいなと思いました。

はじめまして!

はじめまして! 株式会社MNUで新しくブログを始めます。 主に、プログラムに関する技術的なことを中心に社員が持ち回りで書いていきます。 皆様のお役に立てれば幸いです。 どうぞ、これからよろしくお願いします。 ここから下はコードを表示するサンプルです。 int x = foo(); /* This is a comment This is not code Continuation of comment */ int y = bar(); // This is line 4. foo(); bar(); baz(); boo(); far(); faz(); sh for target do WORKDIR=$(mktemp -d "$EXTRACTHOMEDIR"/XXXXXX) case "$target" in *.[Tt][Gg][Zz]|*.[Tt][Aa][Rr].[Gg][Zz]|*.[Tt][Aa][Rr].[Zz]) tar vzxf "$target" -C "$WORKDIR" move_to_currentpath "$WORKDIR" "$target" ;; *.[Tt][Bb][Zz]|*.[Tt][Aa][Rr].[Bb][Zz]2) tar vjxf "$target" -C "$WORKDIR" move_to_currentpath "$WORKDIR" "$target" ;; *.[Gg][Zz]) gzip -d "$target" move_to_currentpath "$WORKDIR" "$target" ;; *.[Zz][Ii][Pp]|*.[JjWw][Aa][Rr]) check_required_pro