09063517_5YP9

駆け出しのあなたは、まだインクの匂いが残る卒業証書を持って仕事の場に足を踏み入れるが、すぐに本に書いていないルールやさまざまな雑多な日常業務に面食らうことになる。こんな話は本当によくあることで、プログラミングの仕事も例外ではない。

自分の最初の本当の仕事に100%準備ができている学生はほとんどいない。もしあなたがその一人になりたくないなら、以下の、手取り足取りの指導なしで学べる10の基本スキルを身につけよう:

1、バージョン管理システム(VCS)

VCSはおそらくコンピュータコース最大の欠落だろう。これらのコースはコードの書き方を教えることだけを覚えていて、コードの管理方法を教えることをしばしば忘れている。すべてのプログラマーは、GitやSubversionを使ってリポジトリを効率的に作成し、コードを編集・コミットし、ブランチ作成とマージを行い、プロジェクトのワークフローを理解すべきである。

2、文章を書くことを学ぶ

プログラマーとして書くのはコードだけではない。プロジェクトのリリースノート、バージョン管理へのコミットメッセージ、システムへのバグレポートも書かなければならない。これらや多くの場面で、明確で効果的な文章によるコミュニケーションが必要となる—しかし、このスキルはコンピュータサイエンスではほとんど強調されていない。

3、正規表現

正規表現はそれ自体が一つの言語であり、すべての現代プログラマーが得意とすべきものである。すべての現代言語は正規表現をサポートしているか、関連する標準ライブラリを持っている。コードである文字列が5つの文字、1つのダッシュ、1つの数字を含むかどうかを検証する必要があるなら、すぐに /^[A-Z]{5}-\d$/ と書けるはずだ。

4、ライブラリの使用

もう2014年なので、URLからホスト名を抽出するために正規表現を使う必要がある人はいない。なぜなら、すべての現代プログラミング言語には、一般的な機能を実行するための標準ライブラリがあるからだ。

プログラマーは、開発・テスト・デバッグを経たコードは、通常、自分で書き直したコードよりも優れていることを理解する必要がある。さらに重要なのは、書く必要のないコードの方が実装がはるかに速いということだ。

5、SQL

多くの人のSQLは仕事の中で学ばれている。データベースがどうして選択科目なのか?データベースを使わないなんてあり得るだろうか?

データをフラットファイルに保存する時代は終わった。すべてのものはデータベースに出入りする必要があり、SQLはデータを格納・取得するための言語である。これは手続き型言語ではなく宣言型言語なので、SQLを使って問題を解決するには新しい考え方が必要である。すべてのプログラマーはデータベース正規化の基礎を理解し、SELECT(およびINNER、OUTER JOIN)、INSERT、UPDATE、DELETEを実行できるべきである。

6、IDE、エディタ、CLIツールを使いこなす

ノコギリの使い方しか知らない大工は永遠に一人前になれない。それなのに、コンピュータ専攻の卒業生がNotepadやpicoしか知らないのは驚くべきことだ。プログラミングツールはコードやその他のデータを操作するのに役立ち、プログラマーの生活を楽にする。だからすべてのプログラマーは、コマンドライン、シェルスクリプト、find、grep、sedの使い方を知っているべきである。

7、デバッグ

すべてのプログラマーは、インタラクティブなデバッガを利用するか、コードに出力文を散りばめてプログラムをデバッグする方法を知っているべきである。段階的に絞り込んで問題を追跡する能力は非常に重要である。

8、防衛的プログラミング

エラーは避けられないものであり、スタープログラマーであっても例外ではない。制御不能は世界の常態であり、エラーが発生しても不思議ではない。防衛的プログラミングはまさにこの事実を理解している。もし物事が絶対に間違わないのであれば、ファイルが正常に開けたかどうかを確認したり、顧客IDが有効な数字かどうかをチェックしたり、コードが正しく動作するかテストしたりする必要はないだろう。

プログラマーは、コンパイラの警告が、避けて遠ざけるべき面倒なものではなく、私たちの生活をより快適にしてくれる有用なツールであることを知る必要がある。すべてのプログラマーは、すべてのPHPプログラムがなぜこのように始まるべきかを知っているべきである:

set_error_reporting(E_ALL)

すべてのPerlプログラムには、これらの文を書くべきである:

use strict; use warnings;

9、チームコラボレーション

プログラミングの仕事で一人だけで完結するものはほとんどない。もし頻繁に一人でやっているなら、知性は損なわれ、パフォーマンスは低下するだろう。あなたのコードは他の人のコードと相互作用したり混ざり合ったりしなければならない。どんなに才能のあるプログラマーでも、他の人と協力できなければ、プロジェクトに悪影響を与え、すぐに組織の負担になる。

10、既存コードの活用

学校にいる間は、毎回の課題が新しいプロジェクトだった。しかし現実の世界はそうではない。働き始めたばかりの人にとって、最初に与えられるタスクは多くの場合、コードのバグ修正である。その後、既存のコードベースに基づいて、既存システムに小さな機能を追加する。新しいコードの設計は、運が良ければ数ヶ月後の話だ。

[本文はblog.newrelic.comから翻訳・編集されたものです]