
- Bluesky ページを見る (新しいタブで開きます)
- Instagramページを見る(新しいタブで開きます)
- Facebookページで見る(新しいタブで開きます)
- YouTubeページを見る(新しいタブで開きます)
- Twitterページを見る(新しいタブで開きます)
- コピーしました
目次
プロのプログラミングには、コードを書く以上の多くのスキルが必要です。チームで協力して問題を解決することからバージョン管理まで、様々な重要なスキルを身につけなければ、メジャーリーグで活躍することはできません。私たちは、あなたや他のプロの開発者に、それらのスキルとは何かを尋ねました。そして、その答えがこちらです。
コーディングを学ぶことへの関心が高まっているため、プログラミング言語を習得すればプロの開発者になれると考えがちです。しかし、他の職業と同様に、真に優れた開発者になるには複数のスキルが必要です。すべてのプログラマーに必要なスキルをすべて網羅することはできませんが、真に開発者になりたいのであれば、コーディング以外で磨くべき最も重要なスキルをいくつかご紹介します。
コミュニケーションを学ぶ
一部のメディアではプログラミングは孤独な仕事のように描かれていますが、実際には多くのコミュニケーションと他者との協力が求められます。企業で働く場合は開発チームの一員となり、他者と円滑にコミュニケーションを取り、協力することが求められます。
しかし、Lifehacker のお気に入りである Fences と Bins の開発者である Jeff Bargmann 氏は、明確かつ説得力のある話し方や書き方を知ることは、独立した開発者にとっても重要であると強調しています。
学校で学んだことは、これから先、書面でのコミュニケーションを大量にこなすことになるという準備には全く役に立ちませんでした(だって、私たちはコーディングするだけでしょ?)。将来、プロとしてキャリアアップを目指すなら、同僚、上司、顧客/パートナー、そして将来は経営陣にまで、メールで、相手(受信者)の視点に立ち、明確かつ簡潔で説得力のあるコミュニケーションをするために、膨大な時間を費やすことになります。しかも、普段は他の人の2倍の速さで物事を進めることに慣れているので(私たちは器用ですよね?)、これを正しく行うには2倍の時間がかかるので、イライラすることもあるでしょう。そして、独立系企業にとって、このスキルは成功か失敗かの分かれ道ですが、必然的に、経験を積みながら、苦労して学ぶことになるでしょう。
ジェフはコミュニケーションスキルを伸ばすためのヒントも提供しています。
このハードルを、行き当たりばったりの学習ではなく、着実にクリアするには、実社会での実践が不可欠です(コーディングが上達したのと同じように!)。短い記事をいくつか公開し、メールを声に出して読み、批判に立ち向かい、さらには、お気に入りのコーディングプロジェクトでやったように、自分自身のために経験を積んでみましょう。
現時点でチームで開発する機会がない場合は、大学のコミュニケーション、スピーチ、ライティングのクラスを受講して、正しい方法を学ぶことを検討してください。Lyndaでは、教室外での学習に最適なコミュニケーションコースを豊富に提供しています。
問題解決能力を磨く
多くの開発者は、プログラミング言語の理解はコーディングのほんの一部に過ぎないと言います。問題解決能力も、新人開発者がしばしば欠いている重要なスキルです。ソフトウェア開発をパズルの組み立てに例えてみましょう。プログラムの各ピースを別のピースとどのように繋げるかを考える必要があり、それは必ずしも簡単ではありません。読者のJsimonは次のように説明しています。
プログラミング言語を完璧に使いこなせるのに、問題解決がまるでできないような人に出会ったことがあります。一番良い例は、大学時代にチームプロジェクトに取り組んでいた時のことです。ある人が担当していたコードの一部を見てみるように言われました。サーバーソケットに接続できないというのです。その人はポートの設定すらしていませんでした。1週間もトラブルシューティングに取り組んでいたのです。一方、問題を解決できるのに、言語を全く理解していない人もいます。
しかし、問題解決能力は習得が難しいスキルです。ここでは練習が鍵となります。メモアプリや電卓の開発など、興味のあるものなら何でも、小さなプロジェクトに取り組んでみましょう。その際、言語を理解するだけでなく、コードの背後にあるロジックやコンピューターのように考えることに集中しましょう。
事前にコンピューターの仕組みを学んでおくのも役立ちます。このヒントは読者のJacobm001さんから寄せられたものです。
問題解決は私たちの仕事の最大の部分を占めています。コンピューターは奇妙なもので、問題に対する考え方を改めて学ぶ必要があることがよくあります。効果的に機能させるには、コンピューターの動作原理を真に理解し、CPUがどのように情報を処理するかを理解する必要があります。私は個人的にアセンブリ言語が大嫌いですが、アセンブリ言語に特化したコースを受講できたことに非常に感謝しています。少しでもアセンブリ言語を扱った経験のあるプログラマーは、物事を適切に実装する方法について、はるかに優れた知識を持っています。
Jsimonが言ったように、コードを書くことと問題を解決することの両方を理解し、それらを繋げることが重要です。実際のプログラムを開発し始める際には、直面する問題を解決するための体系的なアプローチを構築することに重点を置いてください。
今すぐバージョン管理を学び始めましょう
大学に通っているなら、プログラミングの授業でチームを組んでプロジェクトを開発することになるでしょう。WindowsSVNとGitHubは、開発チームが共同でオープンソースアプリケーションを作成・更新するために使用するツールの例です。これらは誰でも利用できますが、企業ではSubversionやApache SVNなどが使用されています。新しい仕事に就く前に、これらのシステムの基本を理解しておく必要があります。そうすれば、新しいチームメイトとすぐに仕事に取り組めるでしょう。習得には時間と練習が必要なので、少なくとも1つの使い方を知らないまま就職すると、取り残された気分になるでしょう。幸いなことに、GitHubの使い方を詳しく説明し、使いこなすためのチートシートもご紹介しました。
これまでのところどう思いますか?
システムを真に習得する唯一の方法は、実践です。大学に通っているなら、授業でかなり大規模なチーム指向のプロジェクトに取り組む機会が来るでしょう。その時は、たとえ講師が使用を要求していなくても、GitHubなどのリポジトリの使用許可を得てください。独学で学ぶ場合は、GitHub上に既に存在するプロジェクトに参加するか、一緒に作業したい仲間を見つけて新しいグループを立ち上げるなど、一緒に作業するチームを見つけましょう。
学習能力を養う
テクノロジーは常に進化しており、それに伴い開発者の知識基盤も進化していく必要があります。自分の分野で活躍し続けるためには、新しいプログラミング言語、ソフトウェア、ハードウェアの最新情報を常に把握しておくことが重要です。読者のWakers01さんは次のように説明しています。
. . . 新しい言語、テクノロジー、ツールを、フェーズシフトに対応できる頻度で学習することになります。新しいテクノロジーを精査し、そのメリットとデメリットを分析し、迅速に吸収する意欲が必要です。「学ぶ」ではなく「吸収する」と言ったことに注目してください。つまり、物事xの仕組みに関する新しい知識を習得するだけでなく、この新しいものを完全に吸収し、理解し、自分のスキルセットに統合する必要があるということです。ソフトウェア言語やツールだけでなく、ビジネスの運営方法や、ビジネスユーザーがそのビジネスの中でどのように働いているかを学ぶことも必要です。新しいことを学ぶことへの熱意を持ち続けられる限り、きっとうまくいくでしょう。
新しいスキルを素早く習得するためにできることはたくさんあります。例えば、まず記憶の仕組みを正確に理解する時間を取れば、記憶をより効率的に活用できます。学習には理解も含まれるため、先ほどご紹介したコミュニケーションのヒントに加えて、技術資料やその他の書面資料を比較的容易に理解できるよう、読解力を高めることに重点を置きましょう。すべてを暗記することはできないことを理解し、メモを取るための適切なシステムを構築したり、紙の本のアイデア索引を作成したりすることで、情報を整理し、必要な情報を素早く見つけることができます。
基礎から始めましょう。学習は習得に注力すべきスキルだと捉えましょう。そうすれば、テクノロジーの進化に適応し、自分の分野で競争相手に差をつけやすくなります。
プログラミングは、ただ机に座ってコードを書くだけではありません。早い段階でそれを理解すれば、雇用主やクライアントが求めるより重要なスキルを習得する機会が大幅に増えます。
写真:Allan Ajifo、Sebastian ter Burg、Liza、Lachlan Hardy
毎日のニュースレター すべてをより良くする準備はできていますか?
ジョーダン・カルフーン 編集長
Jordan とチームから毎日のヒント、コツ、技術ガイドを入手してください。
毎日のニュースレター すべてをより良くする準備はできていますか? Jordan とチームからのヒント、コツ、技術ガイドを毎日お届けします。
次の記事へスクロールしてください