これは2021年10月に掲載された記事の更新版です。
フリーソフトウェアやオープンソースソフトウェアのキャリアは、満足度が高いだけでなく、経済的にもやりがいがあります。あなたは、激しく目標に向かうコミュニティの一員であることや、世界中の人々に利益をもたらすプロジェクトを推進することに興奮を感じるでしょう。
フリーソフトウェアは特定の会社に依存しないので、転職が必要になったときに新しい雇用主を見つけることができますし、地理的にも移動することができます。(たしかに、フリーソフトウェアのプロジェクトの中には、ひとつの企業によってメンテナンスされているものもありますが、そうした企業からの「国外追放者」は広く見つけることができますし、そのソフトウェアを知っている人には別の場所でもチャンスがあります)。
Linux Foundation が発表した「2020 Open Source Jobs Report」によると、採用担当者は、オープンソースのクラウド技術を知っていれば、コンピュータの専門家を採用する可能性が 70% 高まるという。一方、市場はオープンソースのスキルを持つ人材をもっと求めています: 採用担当者の93%は、オープンソースのスキルを持つ人材の確保が困難であると回答しています。
初期の頃、フリーソフトウェアの貢献者は、請求書を支払うだけの簡単に忘れられる会社のために1日8時間キュービクルで働き、夜はクールなフリーソフトウェア・プロジェクトを手伝う必要があった。ノンプログラマーがフリーソフトウェアで果たすべき役割はほとんどなかった。フリーソフトウェアのツールを使うことはできるかもしれないが、ほとんどのツールはプログラマーやシステム管理者のためのものだった。2000年代半ばになってようやく、マーケティングやコミュニティ管理など、ノン・プログラマの役割が認識され、報われるようになりました。
今日、フリーソフトウェアには多くの仕事があり、その種類は多岐にわたります。この記事では、フリーソフトウェアやオープンソースソフトウェアでキャリアを築くために人々がとる以下のステップを紹介します:
この記事では最初の4つのステップを取り上げ、残りのステップについてはシリーズ第2回で取り上げる。
ここで現実を確認しよう: フリーソフトには勉強が必要だ。なぜか?第一に、フリー・ソフトウェアの開発者は、プロプライエタリな企業がシンプルなユーザー・インターフェースやユーザー・エクスペリエンスを実現するために行っているような努力を、通常は行っていない。(KDEやGNOMEのようなユーザー重視のプロジェクトは、素晴らしい成果を上げていることをお断りしておきます)。いくつかの規約は、最初はあなたを困惑させるかもしれません。
ドキュメンテーションに関しては、プロプライエタリなソフトウェアもフリーなソフトウェアも、ドキュメンテーションは同じようにひどいものだと断言しておきましょう。信じてください、私は長いキャリアを費やしてそれらを改善しようとしてきました。公式ドキュメントのほかにも、ブログの投稿やホワイトペーパーはオンライン上にたくさんあり、中にはかなり良いものもある。しかし、そのほとんどは紛らわしい文章や気が散るような内容で埋め尽くされており、フリーソフトウェアに関するほぼすべてのリソースはすぐに古くなってしまう。
ですから、ケチらずに興味のあるトピックの本に投資しましょう。熱心に練習をしましょう。新しいことを試しましょう。
オープンソースのトピック(セキュリティ、Web 開発など)に興味を持ったら、LPI が提供する無料のオンライン学習教材をチェックしてください。これらのレッスンの目的は、LPIの認定試験の目的と一致しており、学習すべきトピックの優れた要約を与えてくれます。学習教材を読むだけで、試験に合格できるとは思わないでしょうが、各トピックについて知識を得るためには、どのようなスキルを練習しなければならないかを知ることができます。
あなたの目標の一つは、情報の消費者から生産者になることです。興味のあるツールのフォーラムに参加して、その文化や慣習を学び、会話にスムーズに参加できるようになりましょう。コミュニティ・メンバーシップの楽しさと利点については、後のセクションで説明する。
自由ソフトウェアの開発者や支持者たちと、彼らの用語や関心事に違和感なく話したいのであれば、GNU/Linuxオペレーティング・システムを知らなければなりません。他のシステム上で動く自由ソフトウェアはたくさんありますが、コミュニティは一般的にGNU/Linuxを中心に回っています。(この記事の残りの部分では、システムの略語としてLinuxを使うことにする)。
もしあなたが生涯WindowsやMacのユーザーであっても、心配する必要はない。ユビキタスで、誰にでも開かれている。Linuxのツール、コンセプト、コミュニティに徐々に慣れていけばいい。
Upgrade to Linuxのウェブサイトでは、Linuxが提供するオペレーティング・システムやツールに乗り換えるメリットを説明し、インターネット上のビデオや記事、その他の豊富なリソースを紹介しています。
もしあなたがコンピューターを全く持っていなかったら?Linuxはあなたのコンピューティングへの入り口となるだろう。多くの慈善団体が、Linuxやその他のフリー・ソフトウェアが動作するコンピュータ・システムを人々に提供している。アップグレードの準備が整った古いコンピュータを譲り受ける団体もある。熱心なハッカーたちは、廃棄されたコンピューターにフリーソフトをロードし、それを必要とする人々に提供する。その一例がアルゼンチンのHuayraプロジェクトで、学生に配布するノートブックにLinuxを搭載している。
Windowsが動作しているパソコンをお持ちなら、Windows Subsystem for Linuxをインストールしてください。マイクロソフトは何年も前にLinuxコミュニティーに参加した。彼らは、多くのWindowsユーザーがLinuxで利用可能なプログラムを実行したいと考え、(あなたのように)Linuxを学びたいと考えていることをよく知っていた。そこでマイクロソフトは、Linuxで遊べるこの仮想環境をリリースした。
もしあなたがAppleのコンピューターでmacOSを使っているなら、Linuxへの移行はもっと簡単かもしれない。AppleのmacOSオペレーティング・システムは、Linuxと同じUnixのルーツに基づいたDarwinと呼ばれるカーネル上で動作している。Linux上で動作する最も重要なツールはmacOSに移植されているが、macOS上で動作するバージョンはLinuxバージョンほど最新ではないかもしれないし、入念にテストされていないかもしれない。例えば、フリーのテキストエディタであるVimに慣れておくことは貴重であり、macOSとWindows Subsystem for Linuxの両方でそれを行うことができる。
しかし、できる限り早く、Linuxそのものを動かし始めることだ。Linuxユーザーや開発者が議論する活動の多く、特にシステムの管理に関しては、オペレーティング・システムごとに異なる特別なツールやプロセスを必要とする。Linuxの奥深くに手を突っ込まなければ、Linuxを理解することはできない。
それに、Linuxを毎日使うことで、フリーソフトウェア・コミュニティーに身を投じることになる。あまりバラ色の絵を描くのはやめよう: Linuxユーザーになると、友人や同僚が使っているプロプライエタリなサービスに接続できるフリー・ソフトウェア・ツールを探すような作業に慣れることになる。まあ、そのような苦闘は、あなたをさらに熱烈な自由の支持者にするでしょう。
1980年代には、フリー・ソフトウェアがプロプライエタリ・ソフトウェアを駆逐するだろうと多くの人が予測していた。しかし、ある分野ではプロプライエタリ・ソフトウェアがいまだにトップ・チョイスであり、その理由のひとつは、多くの人々がいまだにフリー・ソフトウェアに対する誤った情報に基づいた恐怖にとらわれているからである。私は最近、40年ほどの経験を持つ非常に知的で理想主義的なプログラマーと話したが、彼は、私たちがその同じ40年の間に戦ってきたのと同じ誤った情報(例えば、フリーソフトウェアのサポートは受けられないというような)を口にした。
フリーソフトウェアを使ったら、その経験を友人や同僚に話しましょう。重要なサービスがLinuxシステムからアクセスできないときや、機関がWordフォーマットの文書を要求するときには、変更要求を提出しましょう。(自由ソフトウェアのツールはWordフォーマットを作成できますが、原則としては、一般大衆を相手にする組織はオープンフォーマットを使うべきです)。
連絡先には正直になりましょう。あなたは、あなたが尊敬する自由ソフトウェアを擁護したいのですが、先ほど引用したような潜在的なつまずきのブロックを意識してもらいたいのです。人々は、自由は簡単には手に入らないということを理解しなければなりません。
専門的なプログラミングは非常に特殊な学問であり、多くの人は(私も含め、認めざるを得ないが)大規模なプログラムを設計するための適切な思考タイプに欠けている。しかし、自分の限界を理解している限り、多少のプログラミング言語の学習は危険なことではない。プログラミングのスキルは、目指すべき目標である。
プログラミングを学ぶ最良の方法は、クラス、出版された書籍、フリー・ソフトウェア・コミュニティの一員としての実践的な練習を組み合わせることだ。経済的な制約、地理的な場所、時間がないなどの理由で、授業や書籍を利用できない場合は、独創的な方法を探しましょう。たとえば、多くのコミュニティがGirls Who Codeのようなプロジェクトを立ち上げ、他の方法ではアクセスできないような人々を訓練しています。出版社は図書館や非営利団体にコンピュータの本を寄贈し、その本は関心のある読者に配布されている。
プログラミングについて知っていれば、自由ソフトウェアにかかる圧力や、自由ソフトウェアが開発者、テスタ、ユーザに課す要求をよりよく理解することができます。この知識は、あなた自身がプログラミングをするだけでなく、アドボカシーやアウトリーチ、文書化、プロジェクト管理に貢献するためにも有用です。
PythonやJavaScript(あるいはその時々で流行している他の言語)を少し手に取るだけでいい。プログラミングの基本的な規律を学ぶことができます。例えば、うまくいかない可能性のあるものを探したり、将来の機能拡張を計画したりすることです。何がソフトウェアのリリースを妨げているのか、なぜセキュリティ上の問題が存在するのかを理解することができる。
そして、表面的な知識に甘んじる必要はない。あなたが優れたプログラマになれば、どんなことが成し遂げられるかは、後のセクションで見ていきましょう。
この記事で取り上げた4つのステップによって、あなたは他の人々と協力し、自由ソフトウェアの世界に貢献できる立場に立つことができるのです。このシリーズの第2回目の記事では、フリーでオープンなソース・ソフトウェアでのキャリアに向けた、さらに4つのステップを紹介します。