Linux 関連技術を独学で学ぶときのポイントをキーワードでまとめておきます。
機械学習まで視野に含めています。
背景 独学で Linux 関連技術を習得しよう!
最近は、Linux に代表されるようなオープンソースが市場に浸透してきており、GAFA のようなウェブサービスの成長も著しいです。
Linux は、最近の先端技術の基盤技術の1つになっていると思います。オープンソースという観点でみると、最近の機械学習もオープンソース化が著しく、Linux や Python などの技術の延長線上にあるといえます。
ところで、Linux 関連技術の習得方法についてネット検索すると、プログラミングスクールが多数(というか大量に!)出てきて、少しミスリードされる印象があります。
機械学習を含むこうした先端技術は、基本は独学で学ぶものかなと思うのですが、独学で Linux 技術を習得しようとしている人にとっては、うまくまとまったサイトがあまりないようです。(基本、英語になってますし。)
独学向けのロードマップやガイドラインといったものが見える化されていないと、方向性を間違えたり、停滞してしまったりする原因となります。
そこで、Linux に関連する技術についてキーワードレベルでまとめてみます。
加えて、習得にあたっては、自由に Linux が動かせる環境がないと着手自体がなかなか難しいです。また、日頃から手を動かしていないと身につきません。そこで、ハードウェア環境についてもまとめてみます。
自分が独学で勉強していて、もう少し早くからやっておけばよかったと思う項目も加えてみます。
Linux 関連技術 キーワードを並べてみる
Linux に関連する技術を列挙してみます。
ウェブ系とハードウェア系の2つの方向性がありますので、この区分けでキーワードを並べてみます。
分野 | 技術 |
Web サーバ、サービス | ・ CentOS、レンタルサーバ、クラウドサーバ、AWS ・ LAMP: Linux、Apache、MySQL/SQL、PHP/Python … ・ Web制作: JavaScript、CSS、PHP、WordPress、… ・ Webアプリ: Ruby on Rails、Laravel、Django、… ・ 機械学習: Python、Tensorflow |
組み込み系、デバイス、ハードウェア | ・ Ubuntu、Debian、エッジ ・ C言語、C++、Java、Python ・ 自動化、ウェブスクレイピング ・ 機械学習: Tensorflow lite、物体検出、物体認識 ・ メカトロニクス、ロボット、制御 |
・ 特に資料を参照せずに書き出しています。ロジカルではありませんので、随時、更新します。
・ 上記の表で、重点領域、攻略する順番を決め、知識の抜けを埋めていくことになると思います。
・ たとえば、専門が機械工学でロボットから参入するのであれば、下から攻めていくことになると思います。
・ 情報系であれば、上段をまず攻略しよう、となると思います。
・ また、技術に深入りしないのであれば、Web 制作、マーケティング、コンサルあたりから参入するのもアリです。
・ 昔から、プログラミング言語を学ぶとき、どれを習得すべきか、という議論があります。機械学習を視野に含めるなら Python、余裕があれば、Python と C言語系あたりという感じになるのではないかと思います。
ウェブサービスや Web系エンジニアに重点を置くのであれば、PHP や Ruby あたりの言語とプラットフォームのどれかでもよさそうです。
・ 最新技術の分野ではつねに、技術や仕様が乱立して淘汰が起こる前の状態、デファクトスタンダードが決まる前の状態となるといえます。上記の表をもっと発展させた感じで、全体マップが整備されていると方向性が明確化でき、有用だと思います。
開発環境(ハードウェア環境)の観点でみるとどうなるか
独学で学ぶ際のハードウェア環境について、一例をまとめてみます。
環境 | 内容 |
Raspberry Pi | ・ Raspberry Pi を購入して Debian 等に習熟する ・ ハードウェア制御をやってみる ・ vi エディタ、Ruby、Python、C 言語を習得する ・ 機械学習をやってみる |
Linux PC | ・ Linux PC が家電量販店などで購入できれば検討したいのだが ・ Macbook Pro などを購入し、Unix (≒ Linux)、Python、Ruby などを学ぶ |
無料サーバーサービス | ・ Google Colaboratory などを使ってみる |
レンタルサーバー (ConoHa VPS など) |
・ CentOS などでサーバー OS に慣れる ・ Web サーバーでサイトを作ってみる ・ Webアプリケーションフレームワーク(Djangoなど)に習熟する ・ Webサービスを作ってみる |
少し考察してみます
・ 大学や企業の業務で Linux が動かせる環境にあるなど、恵まれた環境にいる場合は、サーバーやデバイスなどを比較的自由に購入・レンタルできると思いますので、技術を習得する上でのハードルは低いと思います。
・ ところが、独学で上記の項目を学ぼうとすると、最初は経験がゼロで、関連業界に就職した経験もゼロですので、全く環境自体がありません!
すると、Mac で Unix を習得するか、Windows 上に Linux を構築するか、あるいは、少額で購入できる Raspberry Pi あたりから参入するのがよさそうです。
つぎに、いくつか環境設定やプログラミングをやってみて、コンソールの操作がある程度できそうかなと思ったら、レンタルサーバーを借りてしまって、サイトを立ち上げてみる、サービスを作ってみる、とするのがよさそうです。(あるいは転職?!)
・ また、技術系出身者で自分に自信があったら/いきなり海に飛び込むのであれば、レンタルサーバーなどにサーバー代を投入してしまってサービスをリリースする、でもよいと思います。この場合は、よく状況を見極めておいて、タイミングが来たら決行する!となりそうです。
まとめ
Linux 関連技術を独学する際のキーワードについて簡単にまとめてみました。
こうやってまとめてみると、やはり、オープンソースというキーワードがポイントになっていますね。
関連リンク
・ オープンソースに関するまとめ 【ライセンス戦略】
・ レンタルサーバーの比較まとめ
・ 初期設定のまとめ 【OpenCV & Raspberry Pi】
・ Raspberry Pi でローカルWebサーバー 【Python 活用】
・ ConoHa の株主優待の設定をやってみた 【GMOインターネット】
・ おすすめ書籍ピックアップ 【サーバー&ネットワーク関連】
・ おすすめ書籍ピックアップ 【Python&機械学習】
外部リンク
独学プログラマー Python言語の基本から仕事のやり方まで 新品価格 |
・ 株式会社 日経BP 〒105-8308 東京都港区虎ノ門4丁目3番12号
※ そういえば、プログラミングの分野で独学を推奨している書籍としては上記がありました。著者が独学で学んだエッセンスをまとめた内容になっています。前半はオーソドックスな Python 言語の説明になっています。後半では、SVN、Git などによるバージョン管理、Googleニュースのスクレイピングなどにも触れられています。