• GIZMODO
  • DIGIDAY
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • machi-ya
  • roomie
  • GIZMODO
  • DIGIDAY
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • machi-ya
  • roomie

itouitou  - ,,  07:00 PM

プロのプログラマーになるために本当に必要なスキルとは

プロのプログラマーになるために本当に必要なスキルとは

150127pro_program1.jpg


プロのプログラマーになりたいなら、コードを書けるだけでは足りません。チームでの問題解決やバージョン管理など、コーディング以外にも身につけるべき重要なスキルがいくつもあります。今回は、米Lifehacker読者のみなさまの声をもとに、プロの開発者として必要不可欠なスキルとは何かを見ていきます。


コードを学ぶための情報は世の中に溢れています。そのせいか、プログラミング言語さえ習得すれば、プロの開発者になれると思い込む人がたくさんいます。しかし、他の職業と同じく、優れたプロフェッショナルになるには、たった1つのスキルで足りるはずがありません。開発者に必要なスキルをここですべて列挙することはできませんが、以下に、本当に重要なスキルをいくつか紹介しておきます。


コミュニケーションを学ぶ


150127pro_program2.jpg


プログラマーは孤高の職人である、と喧伝するメディアもありますが、実際は、他者とのコミュニケーションや共同作業が欠かせない職業です。とくに、企業で働くなら、開発チームに所属し、同僚たちと協調して働くことが求められます。

ジェフ・バーグマン氏(米LHお気に入りの『Fences』『Bins』の開発者)は、明瞭かつ説得力をもって話したり、書いたりするスキルが、独立系の開発者にとっても重要だと話しています。



学校の授業だけではとても足りません。卒業後は、文書によるコミュニケーションが大量に必要となります。(学校ではひたすらコードを書いていただけでしょ?)プロフェッショナルなキャリアを歩み出せば(そして、上昇していきたいなら)、膨大な時間を、同僚、マネージャ、顧客、協力企業、そしていつの日か重役たちを相手にしたメールのやりとりに費やすことになります(それも、受け取る人の気持を考えながら) そして、ほかの人より2倍速く物事をこなしてきたあなたは(プログラマはずる賢いですからね)、このことに欲求不満を感じるでしょう。ちゃんとした文章を書くには、それだけの時間がかかるからです。独立系開発者にとって、このスキルは絶対的に必要不可欠なものですが、身に付けるには本当に苦労します。


ジェフは、コミュニケーション・スキルを磨くためのアドバイスもくれています。



このハードルをクリアするには、現実世界での実習あるのみです。(コーディングを学んだのと同じく!) 短い文章をたくさん書いて、メールを声に出して読み、批判を受け入れ、自分の力で経験を積み上げてください。あなたがこれまで個人的なプロジェクトに取り組んで、コーディングスキルを磨いてきたのと同じようにです。


現状、チームで開発する機会がないなら、学校でコミュニケーションや、スピーチ、ライティングのクラスをとりましょう。大学以外にも、オンライン教育プラットフォーム「Lynda.com」に、コミュニケーション関連の優れたクラスがたくさんあります。


問題解決スキルを磨く


150127pro_program3.jpg


開発者の多くが、プログラム言語を理解することは、コーディングの一部でしかないと言っています。初心者に欠けている重要なスキルのひとつは問題解決能力です。ソフトウェア開発はジグソーパズルにたとえられます。別々のプログラムをうまく組み合わせる方法を理解していなければなりません。これは、言うほど簡単ではありません。読者のJsimonさんが次のように説明しています。



私はかつて、プログラム言語のコマンドを完全に理解しているのに、目の前の問題を解決できない人たちを見てきました。例えば、大学のチームプロジェクトでのこと。チームメイトのひとりが、自分が担当しているコードをチェックしてくれないかと頼んできました。サーバーソケットに接続できないとのこと。調べてみると、ただポートが設定されていないだけでした。彼はトラブルシューティングに一週間も費やしていました。このように、問題を解決するのが、そのプログラミング言語をそれほど知らない人だったりするのは、よくあることです。


とはいえ、問題解決スキルは簡単には身につきません。とにかく実践が重要です。メモアプリや計算機アプリなど、小さな開発プロジェクトに取り組んでみましょう。興味があることなら何でもかまいません。そのとき、コードの背後にあるロジックに注目してください。コンピューターのように思考することを覚えましょう。コンピューターのメカニズムを理解することも大切です。読者のJacobm001さんは次のように話しています。



問題解決は私たちがやっていることの最大のパートを占めます。コンピューターには独特の動作様式があるので、それに合わせて問題を捉え直す必要があります。コンピューターがどのように動くのか、CPUがどのように情報を処理するのかを理解していなければ、効果的なコードは書けません。私は、個人的にはアセンブリ言語が好きではありませんが、アセンブリ言語の授業を受けておいて本当によかったと思っています。アセンブリ言語の知識があれば、適切なプログラムを構築する助けになります。


Jsimonさんが言うように、コードでも、問題解決でも、ピースをうまく組み合わせることが鍵となります。プログラム開発とは、問題をシステム的に捉え直し、システム的な解決策を作り出すことに他なりません。


今すぐバージョンコントロールを学び始めること


150127pro_program4.jpg


あなたが学生なら、プログラミングの授業でチーム開発に取り組むはずです。『WindowsSVN』と『GitHub』は、オープンソースアプリを共同開発するための2大ツールです。同様のツールがいろいろありますが、企業は『Subversion』や『Apache SVN』を好んで使います。新しいプロジェクトに参加するとき、これらのバージョン管理ツールの使い方を理解していれば、スムーズに共同作業に入れます。ただし、ツールを学ぶにはそれなりの時間と実習が必要です。チーム開発に参加する前に、少なくとも1つのツールは使えるようにしておきましょう。そうでないと、みんなから遅れをとることになります。

とにかく実践が重要です。学生なら、授業で大人数のチーム開発に取り組む機会があるはず。その際、指導教官に指示されなくても、GitHubなどリポジトリの使用許可を求めてください。学校以外で独習するなら、まず参加する開発チームを見つけましょう。GitHubのサイトで参加したいチームを見つけるか、自分でチームを作ってください。


学びのコツをつかむ


150127pro_program5.jpg


技術は常に進歩しています。それに合わせて、開発者の知識ベースも進歩しなければなりません。自分の専門分野で遅れをとりたくないなら、最新のプログラム言語やソフトウェア、ハードウェアの情報を常に取り込む必要があります。読者のWakers01さんは次のように説明しています。



あなたは新しい言語、技術、ツールを学び続けることになります。変化に対応するにはそれが必須です。新しい技術を試し、その技術の長所と短所を分析し、素早く吸収する習慣を身につけねばなりません。ポイントは、「学習」ではなく「吸収」することです。たんにその技術がどういうもかという知識を得るだけでは足りません。新しい技術を完全に吸収、理解し、自分のスキルセットに統合する必要があります。このことは、ソフトウェア言語やツールだけに限りません。ビジネスの仕組みや、ユーザーの動向についても常に学び続ける必要があります。あなたが新しいことにワクワクするタイプなら、きっと大丈夫です。


新しいスキルを素早く学ぶコツがいくつかあります。例えば、記憶の仕組みを理解しておけば、効率的に記憶できます。また、学習とは読解でもあります。上述したコミュニケーション・スキルのほかに、読解力を強化すれば、技術書やその他の関連文書を理解する助けになります。また、すべてを記憶する必要はありません。ノートアプリの正しい使い方を覚え、書籍のアイデア・インデックスを作成しておけば、頭もスッキリして、必要な情報を素早く見つけられます。


学習を、熟達すべきスキルだと考えてください。そうすれば、新しい技術を身につけるのが楽になり、自分の分野で常に抜きん出た存在になれるでしょう。

机に向かってコードを書くだけがプログラミングではありません。そのことに早く気づけば、重要なスキル(雇用主や顧客が本当に求めているもの)を身につけるチャンスも広がります。


Tori Reid(原文/訳:伊藤貴之)

Photos by Allan Ajifo, Sebastiaan ter Burg, Liza, Lachlan Hardy.

MORE FROM LIFEHACKER

powered by
    
    
    
  

Kotaku

Recommended

© mediagene Inc.