プロのプログラミングには、コードを書くこと以外にもたくさんのことがあります。チームと協力して問題を解決することからバージョン管理に至るまで、他の重要なスキルのツールキットがなければメジャーリーグに進むことはできません。私たちはあなたと他のプロの開発者に、それらのスキルとは何なのかを尋ねました。そして、私たちが学んだことは次のとおりです。
コーディングの学習についての話題が飛び交う中、プロの開発者になるにはプログラミング言語を知っていれば十分だと思われがちです。ただし、他の仕事と同様、本当に優れた仕事をするには複数のスキルが必要です。すべてのプログラマーに必要なすべてをリストすることはできませんが、本当に開発者になりたい場合に取り組むべき最も重要なスキル (コーディング以外) をいくつか紹介します。
コミュニケーションを学ぶ
一部のメディアソースはプログラミングを孤独な仕事であるかのように描いていますが、実際には多くのコミュニケーションと他の人との協力が必要であるということです。会社で働いている場合は、開発チームの一員となり、コミュニケーションやコミュニケーションをとることが期待されます。他の人とうまく働く。
ただし、ライフハッカーのお気に入りの開発者であるジェフ・バーグマン氏は、フェンスそしてビンは、明確かつ説得力を持って話したり書いたりする方法を知ることは、独立した開発者にとってさえ重要であると強調しています。
学校では、今後膨大な量の書面によるコミュニケーションを準備できるものは何もありませんでした。 (私たちはただコードを書くだけですよね?) あなたの職業上のキャリアでは、いつか昇進したいと思っているのであれば、受信者の視点から考えて、明確、簡潔、そして説得力のあるコミュニケーションを図るために、電子メールで多くの時間を費やすことになるでしょう。同僚、マネージャー、クライアント/パートナー、そしてできればいつかは経営幹部にも。そして、あなたは他の人の 2 倍の速さで物事を行うことに慣れているので (私たちはずる賢いですよね?)、これを正しく理解するには 2 倍の時間がかかるため、イライラするでしょう。そして、独立者として、このスキルは成功するか失敗するかに左右されますが、必然的に、やっていくうちに難しい道を学ぶことになります。
Jeff は、コミュニケーション スキルを伸ばすためのヒントもいくつか紹介しています。
外出先で学習するのではなく、このハードルを少しずつクリアするには、現実世界での練習が必要になります (コーディングが上達するのと同じように!)。短い記事をいくつか公開し、電子メールを読み上げ、批判に直面し、さらには自分自身の経験を作成します。あなたがペットのコーディング プロジェクトでやったのと同じように。
今チームで開発する機会がない場合は、大学のコミュニケーション、スピーチ、ライティングのクラスを受講して、正しい方法で開発する方法を学ぶことを検討してください。Lynda は素晴らしいコミュニケーション コースを豊富に提供しています教室の外で学習している場合。
問題解決スキルを磨く
多くの開発者は、プログラミング言語を理解することはコーディングのほんの一部にすぎないと言います。問題解決は、新人開発者に欠けがちなもう 1 つの重要なスキルです。ソフトウェア開発をパズルを組み立てることと比較してください。プログラムの 1 つの部分を別の部分に接続する方法を見つけ出す必要がありますが、それは必ずしも簡単ではありません。リーダージシモン説明します:
私は、プログラミング言語全体を完全に使いこなしているにもかかわらず、紙袋から抜け出す方法を解決できなかった人に会いました。最良の例は、大学でチームプロジェクトに取り組んでいたときです。サーバーソケットに接続できなかったため、他の人が担当したコードの一部を見てもらうように頼まれました。彼は決してポートを設定しませんでした。彼は一週間にわたってトラブルシューティングを行っていた。また、問題を解決できるのに言語をまったく理解できない人もいます。
ただし、問題解決は習得するのが難しいスキルです。ここでは練習が鍵となります。小さなプロジェクトを引き受けるたとえば、メモを取るアプリケーション、電卓、または興味のあるものを開発するなどです。これを行うときは、コードの背後にあるロジックに焦点を当て、コンピューターのように考えることを学ぶ、単に言語を理解するのではなく。
事前にコンピュータの仕組みを学んでおくことも役立ちます。このヒントは読者からのものですヤコブ001:
問題解決は私たちの活動の最大の部分です。コンピューターは奇妙なものであり、通常、問題についてどのように考えるかを学び直す必要があります。効果を発揮するには、コンピュータがどのように動作するかを真に学び、CPU が情報をどのように処理するかを理解する必要があります。私は個人的に組み立てが大嫌いですが、組み立てに焦点を当てたコースを受講できたことに非常に感謝しています。少なくとも少しのアセンブリを経験しているプログラマーは、物事を適切に実装する方法について、より優れたアイデアを持っています。
Jsimon が言ったように、コードを作成する方法と問題を解決する方法の両方を知って、部分を接続することが重要です。実際のプログラムの開発を始めるときは、次の点に焦点を当ててください。直面する問題を解決するための体系的なアプローチを開発する。
バージョン管理の学習を今すぐ始めましょう
大学にいる場合は、すぐにプログラミング クラスのチームと協力してプロジェクトを開発し始めるでしょう。 WindowsSVN と GitHub は、開発チームが協力してオープン ソース アプリケーションを作成および更新するために使用するツールの 2 つの例です。これらは誰でも利用できますが、企業は特に Subversion や Apache SVN を使用します。新しいチームメイトと一緒に仕事を始めることができるように、これらのシステムの仕組みの基本を理解して新しい仕事に取り組む必要があります。習得するにはある程度の時間と練習が必要なので、少なくとも 1 つの使い方を知らないまま仕事に就くと、遅れを感じることになります。幸いなことにGitHub を使用するための手順をすでに詳しく説明しました、そしてあなたにも見せましたそれをマスターするのに役立つチートシート。
このシステムを本当にマスターする唯一の方法は、練習することです。大学生であれば、授業でかなり大規模なチーム主導のプロジェクトに取り組む時期が来るでしょう。その場合は、講師が必要としない場合でも、GitHub またはその種のリポジトリを使用する許可を求めてください。独学で学習している場合は、すでに GitHub 上にあるプロジェクトに参加するか、人のグループを見つける一緒に仕事をしたり、新しいものを始めたりしたいと考えています。
学習のコツを養う
テクノロジーは常に進化しており、それに伴って開発者の知識ベースも進化する必要があります。あなたがしたい場合は自分の分野での関連性を維持する、新しく更新されたプログラミング言語、ソフトウェア、ハードウェアを常に把握しておくことが重要です。リーダーウェイカーズ01説明します:
。 。 .新しい言語、テクノロジー、ツールを、フェーズシフトできるほどの頻度で学習することになります。新しいテクノロジーを検討し、その利点と落とし穴を分析し、迅速に吸収する意欲がなければなりません。 「学ぶ」ではなく「同化する」と言ったことに注意してください。つまり、物 x がどのように機能するかについての新しい知識を取得するだけでなく、この新しい物を完全に吸収し、理解し、自分のスキルセットに組み込む必要があります。ソフトウェア言語やツールだけでなく、ビジネスがどのように運営されているか、そしてビジネス ユーザーがそのビジネス内でどのように働いているかについても学ぶことになります。新しいことを学ぶことへの興奮を維持できれば大丈夫です。
新しいスキルを素早く習得しやすくするためにできることはたくさんあります。例: 時間をかけて行うと、記憶をより効率的に使用できるようになります。まずは仕組みを正確に理解する。学習には理解も含まれるため、先ほど説明したコミュニケーションのヒントに加えて、読解力を高めることに集中するそのため、技術ドキュメントやその他の文書リソースを比較的簡単に読み進めることができます。すべてを暗記することはできないことを理解してください。優れたメモを取るシステムを持っているそして紙の本のアイデアインデックスを作成する整理整頓し、参照する必要がある情報をすぐに見つけるのに適した方法です。
基本から始めましょう。学習を、習得に集中すべきスキルとして捉えます。一度実行すれば、テクノロジーのパンチを活用し、自分の分野で競合他社の先を行くことが容易になります。
プログラミングには、ただ机に座ってコードを書くだけではありません。それを早い段階で理解できれば、雇用主や顧客が必要とする、より重要なスキルを習得するチャンスがはるかに得られるでしょう。
写真提供者アラン・アジフォ、セバスチャン・テル・ブルク、リザ、ラクラン・ハーディ。