Search for:
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方
うずらのヤドリギ(旧Uzublo) - 海外移住して起業した自由人エンジニアのブログ
うずらのヤドリギ - 海外移住して起業した自由人エンジニアのブログ
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方

Blog

プログラミングの学び方(8) – どの言語から学び始めるのがいいのか?

access_time2020年5月22日
perm_identity Posted by Hisashi
folder_open プログラミング学習

いざ、プログラミングを始めるとき、どの言語から学び始めればいいのか?考えこんでしまう人もいるだろう。

今回は、実際にプログラミング言語をどのように取捨選択すればいいのか?についてお伝えする。

はじめに、プログラミングで何を実現したいか?から逆算する

プログラミング言語を新たに学ぶときは、「何を実現したいか」から逆算するのが一番の近道だと思う。

例えば、

  • WordPressを使って、サーバーサイドのカスタマイズを行いたい
    →PHPを学習する。
  • フロントエンドを柔軟にカスタマイズできるようにしたい
    →Javascriptを学習する。将来的にはReactやVue.jsも学習する。
  • IoT(インターネットとモノの融合)のため、ドローンに埋め込む処理を開発したい
    →C#を学習する。
  • 傾向分析や機械学習を行い、未来予測を行いたい
    →PythonやR言語を学習する。

といった形で、目的によって学ぶべき言語は変わってくる。

実は、他にも選定時の条件がある。

エンジニアとして、プログラミング言語を実際に選んだ際の体験談

実は、私は学生時代に情報工学やプログラミングを専攻しなかった人間だ。学生時代に学んだのはExcelのマクロくらいでしかない。

一応、最初に入社した技術者の派遣会社では、Javaを3か月ほど研修で学んだが、それほど多くの勉強を積んだわけではない。

そのような私が、どうやって複数の言語を学んだのか?体験談をお伝えしようと思う。

データセンター内の課題解決

最初に、プログラミングを駆使したのは、最初に入った会社から前職の会社に紹介予定派遣で正社員になりたてのころだ。

その時、データセンターの運用でいくつか大きな課題があったが、その中でも直近に解決したいと思ったのが、

「HDD容量のチェックを、目視確認から脱却したい」

という課題だった。

現実として、

  • 500台近いサーバのHDD容量を曜日ごとにふるい分けし、夜勤者が毎日50台以上サーバにリモート接続してHDD容量チェックをしていた
  • 調べた結果を記帳し、日勤者に引き継いでいた
  • 日勤者は、ある一定の閾値を越えたサーバのHDDを確保していた
  • サーバの新規追加や解約の際、監視リスト(紙)に追記していた

といった運用を実施していた。その結果、

  • サーバの新規追加や解約時に、監視リスト(紙)への反映漏れがしばしば発生した。その結果、HDD容量の監視漏れが発生し、システムが止まったことがあった。
  • サーバOS(Windows / Linux)ごとに接続方法や認証情報(ユーザー名、パスワード)が異なるため、非常に手間のかかる作業だった。

ということがわかってきた。

では、実際にどうやって解決したのか?

課題の整理と解決の道筋の策定

まず、プログラミングを始める前に、どのような情報処理が課題解決になるかを検討した。

  1. 毎日HDD容量をチェックしないと、システムダウンにつながる恐れがある
    →毎日のHDD容量を集計し、保存できるデータベースが必要だ。
    →データベースに接続しやすいプログラミング言語が望ましい。
  2. 毎日集計したHDD容量を、レポート化し運用担当者に知らせてあげる必要がある。
    →レポート化が容易なプログラミング言語が望ましい。
    →メールの送信が容易なプログラミング言語もまた望ましい。
  3. サーバにリモート接続して、HDD容量を取得する必要がある。
    →Windows / Linux問わず、リモート接続が容易なプログラミング言語が望ましい。
  4. 万一開発者の自分が辞めてしまったり病気になったとき、社内の他の人でも保守できる体制を作る必要がある。
    →社内で頻繁に使われているプログラミング言語が望ましい。

といった感じで、学ぶプログラミング言語をあれこれ、というのではなく、現場の課題と解決の筋道に応じた言語選定を行った。

その結果・・・

前職との秘密保持契約(NDA)の絡みもあるので、これ以上の詳細はお伝え出来ないが、開発したこのシステムによって5年以上データセンターの運用が軽減されたのは事実だ。

言語選定に関しても、4を除いてはほぼ達成できたので、少なくとも失敗ではなかったと自負している。

最初のうちは、PHPがいいのかも・・・

ただ、上記の例はあくまで一例でしかなく、読者の皆さんがおかれた状況と異なるケースの方が圧倒的に多いだろう。

だからこそ、これから先エンジニアとして稼いでいくには、

「仕事でプログラミングを使って何を実現したいのか?」

という視点が非常に重要だ。

そして、その点ある程度のことを簡単に実現できるプログラミング言語の1つが、PHPだと私は思っている。

実際に、

PHPで作られたWebサービスの事例10選!他言語との比較も解説

これだけの有名なサイトがPHPで実現できているし、

  • プログラミングしやすいフレームワークが数多くある(CakePHP / Laravel / Symfony)
  • PHPベースのシェアが高いオープンソースが多い(WordPress / EC-CUBE)
  • composerを使って容易に拡張機能(ライブラリ)の導入が可能
  • WindowsやLinux、MacとあらゆるOSに対応し、それぞれ親和性が高い
  • 軽量で使いやすい開発環境(IDE)であるVisual Studio Code(VS Code)と親和性が高い
  • バックグラウンド処理も実装できる

と、PythonやRubyの様な他の言語と比較しても遜色ない特徴を有している。

一方、スマホアプリの開発は出来ないといっても過言ではないので、もしスマホアプリを開発するのであればJavaやFlutterを勉強すると良いだろう。

本気でエンジニアを目指すのであれば、プログラミングの登竜門として、PHPを勉強するのはありだと思う。

関連

Tags: ソースコードプログラミングプログラミング学習
Newer 【起業したい人向け】失敗に謙虚であれ!事例から学ぶ起業失敗の法則
Older 【起業したい人向け】失敗しても諦めるな!薩摩の教えに学ぶ起業家マインド
プロフィール

Hisashi

インフラメインのIT屋。一応某社Founder & Director & CEO。現在は時間場所に依存しない悠々自適な引きこもり生活を実現。
 
>>> 詳しいプロフィールはこちら

★Twitter☆
@freelife_man007

★LINE☆
友だち追加

Search for:
カテゴリから探す
  • ブログ
    • IT・プログラミング
      • AWS(Amazon Web Service)
      • ITインフラ・ネットワーク
      • Laravel(PHP)
      • Wordpress
      • デジタルマーケティング
      • プログラミング学習
    • 会社設立
    • 政治・社会
    • 自由気ままな移住と生活&働き方
    • 起業・スタートアップ
タグから探す
5G Amazon LightSail Amazon Web Service Instagram ITリテラシー PDCA PHP SEO SNS Web Webマーケティング Wordpress きっかけ アフィリエイト インフルエンサー インフルエンサーマーケティング エンジニア カリブ キャッシュフロー キャリア キラキラ起業女子 クアラルンプール コンテンツマーケティング コンバージョン システムエンジニア セキュリティ ソースコード デザインパターン ノマドワーカー ノービザでいける国 ビザ(査証) フリーランス フルスタックエンジニア プログラミング プログラミング学習 マレーシア マレーシア移住 リモートワーク 仕事の自由 場所の自由 時間の自由 海外移住 物販 独立 起業
Menu
  • プロフィール
  • プライバシーポリシ
  • 免責事項
About me

日本と東南アジアを往来しながら、
プログラミングしたり、
ネットワーク構築したり、
AWSをもてあそんでいます。

ブログは、気が向いたら更新。
晴耕雨読の生活を楽しんでいます。

オンラインサロンも立ち上げる予定なので、興味のある方は是非のぞいてみてください。

Ads
Twitter
Tweets by freelife_man007
Uzula Business All Rights Reserved.
keyboard_arrow_up