プログラミング

プログラミングとは?現役システムエンジニアが教える裏事情

システムエンジニア プログラマー
プログラミングとは?現役システムエンジニアが教える裏事情

 

プログラミングってよくわからない?

実際に何をやっているの?

 

最近注目されているSE(システムエンジニア)やPG(プログラマー)という職業ですが、「そもそもプログラミングとは?」といった疑問を抱えている方も多いですね。

今回は、そういった方へ向けて「プログラミングの基礎知識と裏事情」についてを現役のシステムエンジニアが、わかりやすくご紹介します。

 

 

なんのためのプログラミング

 

そもそも、プログラミングは何のためにするのでしょうか?

私たちのようにエンジニアであれば、「そんなの決まってるじゃん・・・」と思うかも知れませんが、今までそういったことに縁がない人からすれば、何をどうすればどういったことができるのか、検討がつかないものです。

 

プログラムという言葉は、IT関係意外でも幅広く使われています。例えば、小学校の運動会や文化祭へ行くと、プログラムを配られますね。実はこれと役割自体は同じで、その対象が人間ではなく機械だということです。そして、プログラミングはそのプログラム(指示書)を作るための行為そのものを指していると考えてもらえば良いでしょう。

 

 

機械に対する指示書

 

では、どうやって機械にプログラミングで指示を出せばよいのでしょうか?

これは、プログラミング言語によっても違いますし、機械の種類によっても異なります。ここも人間世界に置き換えると、すんなりと理解できるでしょう。

 

日本語の学習をしたことのない、生まれも育ちもフランスで、両親もその両親もフランス生まれフランス育ちの人に対して、日本語で指示を出すのは難しいですね。おそらく指示を出すためには英語かフランス語を選択することになりますよね。

環境やその相手によって指示の出し方は異なるように、プログラムも言語やその対象によって異なります

 

また、指示書を作ったは良いものの、それをそのまま自分の机の上に置いていれば、その指示に従う人はいませんね。見てもらうためには手渡しをしたり、メールで送ったり、決められた場所へ置く必要があります。

プログラミングをしても同じで、コードを書いたからといって、いきなり機械は動いてくれません。その機械が読める場所に置いてあげることで、初めて成立するのです。

 

 

単純なことを機械頼み

 

では、実際にどういったことができるのでしょうか?

基本的には「なんでもできる」と言われています。もちろん、物理法則を無視したようなことなど実現不可能なものはありますが、人ができる作業のほとんどを機械化することは可能なのです。

 

最近の企業であれば、単純な作業やデータの管理はシステム化しています。ここにももちろんプログラミングが用いられています。

新しい社員さんが入ってきて、履歴書をファイルへ入れたりする業務がありますね。少数精鋭の会社であればそこまで負担では無いかも知れませんが、100人、1000人と増えていけば、紙ベースの場合だと管理することだけで精一杯になります。

それを、パソコンでデータ入力をして保存ができれば、検索するのも簡単ですし、在籍年数を自動で計算してくれたり、その人の出勤状況なども連携させれば、わざわざ給与計算をせずとも月末になれば給料計算を自動でさせることも可能です。

 

このとき、機械からすれば作られたプログラムを元に作業をしているだけに過ぎません

 

  • 名前が入力されたら保存をする
  • 退勤入力がされたら、その日の出勤時間の差を勤務時間とする
  • 月末になったら、その人の勤務時間と基本給を使って計算をする

 

簡単に言えば、こういった指示をプログラミングしておくことで、機械は忠実に守ってやってくれるのです。

しかし、機械は臨機応変に対応することができませんので、指示がなければ動いてくれません

例えば、基本給が1円で設定されていた場合人であれば「おかしい」と感じて正しい基本給を確認してから給与計算をするはずです。ですが、機械は基本給が1円ということに対しては「おかしい」と判断してくれません。そう判断してもらうためには、「基本給が〇〇円以下の場合はおかしい」という指示をしておかなければならないのです。

 

それらを踏まえると、本当に機械頼みで良いのかと議論されることもありますが、指示さえ的確に与えられていれば、人間が1日でやるような作業も数秒で終わらせてくれることもあります。

単純作業であればあるほど機械へ与える指示書は簡潔になるので、機械からすれば得意分野です。プログラミングができれば、あなたに機械という部下ができ、あなたが知識をつければ付けるほど、その部下は優秀になるということです。

 

 

英語や数学は必要か

 

プログラミングというと、多くの人が「英語は必要?」「数学は必要?」という問いを投げかけてきます。真っ黒の画面に英語や数字を打ち込んでいる姿を見れば、そう思うのは無理ありませんね。

もちろん知識があれば役立ちますが、必要だと言うレベルではありません

 

 

税関で止められました

 

私はシステムエンジニアという職業ですので、ほぼ毎日のようにプログラミングをしています。ですが、英語は全くと言っていいほど喋れませんし、英語の本を読んでも9割何が書いているのか理解できません

私は初めて海外へ行った時に、入国審査で問われる質問(英語)の意味がわからなすぎて15〜30分ぐらい税関で止められたぐらいの英語力です。ですが、そのときも私はバリバリのプログラマーをしていました。

 

プログラミングでは確かに英語を使います。ですが、使う単語のほとんどが生活で使わないものであり、そこまで数が多いわけでもありません。

なので、drink(ドリンク)やworld(ワールド)といったような単純な英単語を覚えるぐらいの要領で、やっていれば身につきます。そして言語と大きく違うところは、会話としては使わないので、わからなければ調べながらで事足りるのです。

 

ですが、英語ができればかなりのアドバンテージになります

なぜなら、世の中には他の人が書いたプログラムがネット上に数多く公開されており、それを見て参考にしたり、勉強することがほとんどです。日本語の説明がついたものより、英語で書かれた情報の方が何倍も多く、プログラミング言語は国に関係ないので、それらを参考にする際に英語が読めるのと読めないのでは大きな差があるのです。

 

 

体育科出身です

 

では、数学についても考えてみましょう。

確かに、プログラミングで計算を用いるケースは多くありますが、そのほとんどが四則演算ができれば十分対応可能なレベルです。中には、複雑な数式を用いて組まれるものもありますが、その割合は多くありませんし、そういった計算が必要になったタイミングで覚えれば十分です。

私は普通高校に通わず、体育科という専門の高校に通っていました。そのため、数学Ⅰと数学Aは学びましたが、高校2年生になれば数学の授業はなくなり、そこから全く数式と縁の無い生活をしてきました。

もちろん、それまでの数学に関しても、決して点数が良かったことはありませんし、数学Ⅰと数学Aでどういった内容があるのかどころか、中学でやった数学の内容すらほとんど覚えていません。

ですが、数式を使ったプログラムも書けますし、複雑なものであってもそのタイミングで覚えれば十分に使いこなすことができます。

 

プログラミングでは論理的思考が求められるので、数学が得意であればきっとプラスになりますが、「文系だから」「数学は苦手」ということはほとんどハンデになりません

 

 

知られていない意外なコト

 

仕事でプログラミングをやっている」と言えば、多くの人が「毎日黒い画面に向かってコードを打ち込んでる」といったようなイメージを抱いてくれます。

ですが実際は、書類を作ったり、打ち合わせをしたり、開発する環境を準備したり、地味な作業の割合がほとんどだったりします。

今回は、その中でも意外と割合の多い書類作業について触れてみましょう。

 

 

書類作りをやってます

 

プログラムを組むといっても、いきなり黒い画面に向かって英数字を打ち込んでいくわけではありません

どういったプログラムにするのか、そのためには何が必要か画面はどんなものにするのか必要な機能は何かどういった組み方をすれば良いかなど、仕様を決めたりプログラムや画面の設計書や定義書を作ったりする作業が、プログラミングを始める前の大部分となります。

中には、そういった書類作業は別の人がやって、出来上がった仕様書通りにプログラミングをするだけのポジションを与えられた人もいます。よくプログラマーと呼ばれている人がそれに該当します。ですが、少数精鋭でやる場合には書類作業も各自で担っているケースは多く、そこそこの時間を要しています。

 

また、プログラムを組み終わったら、それが正常に稼働しているかをテストしたり、使い方の書類を作成したりしなければなりません。

規模によっても異なりますが、プログラミングの時間以外にもそういった作業が多く存在しているのです。

 

 

アップデートが欠かせません

 

プログラマー、システムエンジニアは技術職ですが、手に職つけたからと言って一生安泰とはいかない世界です。

なぜなら、日々言語は新しくなり、フレームワークやライブラリなど開発を便利にサポートしてくれるようなものもどんどん登場することで、新しいユーザーは自分たちよりも新しい技術を備えて乗り込んでくるからです。

 

ですが、過去学んだことが無駄になるようなことはほとんどありません。ベースとなる知識があれば、新しいものを導入するのに時間や費用といったコストが掛からなかったり、新しいものを使う上でも過去の知識が必要だったりすることがほとんどだからです。

ですが流行がある以上、常にアップデートしながら新しいものを取り入れなければ置いていかれてしまうため、日々仕事と隣合わせとなって勉強がついてまわります。

 

プログラミングができれば便利な半面、それを仕事にする場合は常に勉強するという前向きな姿勢が求められるのです。

 

 

まとめ

 

いかがだったでしょうか。

今回は「プログラミングとは?基礎知識と裏事情」についてご紹介しました。

もしプログラミングというものが分かり、興味を持ってくれた方は、ぜひ学習を初めてみてはいかがでしょうか?

そういった方は、短期間で稼げるシステムエンジニアになる方法についてもまとめていますので、一度目を通してみてください。

 

1ヶ月で未経験から『稼げるシステムエンジニア』になるための3つの手段 1ヶ月で未経験から『稼げるシステムエンジニア』になるための3つの手段

  将来のために手に職をつけたい   終身雇用が危ぶまれている今、システムエンジニアやプログラマーというIT技術職の需要は年々高くなってきました。ですが、思うようになれないということも事実です。   今回は、これからIT関係の仕事に転職を考えている人や、将来エンジニアとして独立・起業を志している人...

 

IT社会となった現代では、プログラミングスクールや書籍、独学など色んな方法でスキルを習得して、多くの方が活躍しています。

将来プログラミングをする仕事についてみたい、趣味や副業でプログラミングを勉強したいという方は、ぜひ参考にしてみてくださいね。

 

パーフェクトPHP パーフェクトPHP

ワイがPHPを勉強した一冊や! というより、書籍はこれしか読んでないで! ちなみに、最初からこれに挑むとほぼ100%挫折するので、ある程度PHPを理解してからの方がいいぞ   オブジェクト指向がよく分かってなくて、関数がなんとなく理解出来てたあたりで読み出して、理解を深めた一冊や。 古い本やけど、...

 

注目の記事

ゆびをふる編 PHPポケモン 69
プログラミング
PHP,PHPポケモン,ポケモン
ゆびをふる編 PHPポケモン 69

ゆびをふるとは 今回PHPポケモンで実装する技は「ゆびをふる」です。  ゆびをふる(ポケモンwiki) https://wiki.ポケモン.com/wiki/ゆびをふる   「ゆびをふる大会」というゆびをふるのみを使った大会なども開催されているということもあり、ポケモンの技の中でも初代から長く愛されてきた1つです。で...

SEO対策で役立つ!ライティングスキルを向上させる3ステップ
ライティング
SEO,ブログ
SEO対策で役立つ!ライティングスキルを向上させる3ステップ

  ブログやメール、SNSなどライティングスキルが問われる場面が多く、それは質に直結しています。各プラットフォームによって特徴はありますが、基礎的な文章力自体がついていれば多様な場面で役立つことは間違いありません。 文章の質が高くなれば、ブログであればSEOに強い価値のあるサイトになりますし、SNS...

【Laravel7】バリデーションメッセージの日本語化【6系対応】
プログラミング
Laravel,Linux,PHP
【Laravel7】バリデーションメッセージの日本語化【6系対応】

  Laravelのバリデーションメッセージは標準だと英語で返ってきてしまいますね。 1つずつ変更する方法もありますが、言語ファイルを作成して一括変更するほうが開発時間の短縮に繋がります。   今回は「Laravel7のバリデーションメッセージを日本語化する方法」をご紹介します。Laravel6系でも同じ方法ででき...

SEOで強いURLとは?安易に決めると危険だった!「よく分かるSEO対策」パーマリンク編
SEO対策
WordPress,ブログ
SEOで強いURLとは?安易に決めると危険だった!「よく分かるSEO対策」パーマリンク編

  パーマリンクの設定ってSEO対策に関係あるの?   意外と気になっているポイントではないでしょうか。実は、URLとSEO対策には全くの無関係ではなく、安易に決めてしまうとせっかく積み上げた資産的価値を台無しにしてしまうかも知れない危険なポイントでもあるのです。   今回は、ブログの収益化を目指...

PHPポケモン「アクション制御編」27
プログラミング
JavaScript,jQuery,PHP,PHPポケモン,ポケモン
PHPポケモン「アクション制御編」27

  今回のPHPポケモンでは主に画面の作り込みをしていきます。 とは言っても、ガッチリCSSを書いてよりゲームらしい見た目にするわけではなく、あくまで「ゲームシステムを再現するため」だけに整えていくのが目的です。   ということで、今回はPHPよりもBootstrapさんとjQueryさんに活躍してもらいます。   ...

SNSだけじゃダメ!PV数アップのためにSEO対策する理由とは
SEO対策
Twitter
SNSだけじゃダメ!PV数アップのためにSEO対策する理由とは

  「SNSで集客しているけど中々伸びなくなってきた」 「たまにPV数がアップするけど安定しない」 「本当に月何十万も稼げるぐらいPVは伸びるの?」   PV数を稼ぐためにSNSを駆使したり、中には広告を使って集客しているサイトもあるでしょう。ですが、それだけでは疲弊しながらユーザーを獲得しているに...

AIが人類にもたらす驚異!深層学習が与える影響とは
ネットワーク
AI,ディープフェイク,深層学習
AIが人類にもたらす驚異!深層学習が与える影響とは

  海外の記事でAIについて記述した興味深いものが掲載されました。   今回は「AIが人類にもたらす驚異!深層学習が与える影響とは」について、上記サイトを参考にまとめましたのでご紹介します。 ※直訳ではありません、あくまで記事の内容を参考にして自らの考えを記述したものです     AIの驚異と...

PHPポケモン「バトルシステム実装編〜ランク補正〜」22
プログラミング
PHP,PHPポケモン,ポケモン
PHPポケモン「バトルシステム実装編〜ランク補正〜」22

ランク補正とは  ポケモンでは通常ステータスとは違い、バトル中にのみ変化するステータスが存在します。初代仕様であれば、「なきごえ」や「かたくなる」といった変化技により「こうげき」や「ぼうぎょ」の強化や弱体化をさせるものです。これはバトル中であれば引き継がれるものですが、交代やバトルが終了すればリ...

カテゴリ

SEO対策 イベント デザイン ネットワーク ビジネスモデル フリーランス プログラミング マーケティング ライティング 動画編集 雑記

タグ

5G Adobe AfterEffects AI ajax amazon Animate api artisan atom Automator AWS Bluetooth CSS CVR description EC-CUBE4 ECショップ ESLint Facebook feedly foreach function Google Google AdSense Honeycode htaccess HTML IEEE 802.11ax Illustrator Instagram IoT JavaScript jQuery jQuery UI keyword LAN Laravel Linux MacBook MAMP meta MLM MySQL NoCode note OS OSI参照モデル Paypal Photoshop PHP phpMyAdmin PHPポケモン PremierePro rss SEO SEO対策 Sequel Pro Skype SNS SSH Symfony TCP/IP title Toastr Trait Twig Twitter UCC V系 WAN WebSub Wi-Fi wiki Windows WordPress XAMPP xml Xserver YouTube YouTuber Zoom アーティスト アウトプット アクセス層 アニメーション アフィリエイト イーブイ インターネット インプット エンジニア オブジェクト指向 お金配り クリック単価 クリック数 コミュニケーション能力 コロナ コンサルティング サムネイル システムエンジニア スタートアップ スタイルシート スパム データベース ディープフェイク デザイナー デザイン テレワーク ナンパ ニュース ネットワークモデル ノマドワーク バナー ピカチュウ ビジネス フィード フリーランス ブロガー ブログ プログラマー プログラミング プログラミング学習 プログラミング教育 プロトコル ホームページ制作 ポケモン マークアップ マーケティング メール リモートワーク レンダリング 三井住友 三宮 仕事依頼 児童デイ 児童デイサービス 児童発達支援 公開鍵 初心者 助成金 勉強法 営業 広告 広告収入 必勝マニュアル 放課後等デイサービス 朝活 楽天 深層学習 無線LAN 独立 神戸 福祉 秘密鍵 翻訳 自己啓発 英語 見積書 計算機 読書 起業 迷惑メール 配列 銀の弾丸 集客 雑学力