プログラミング

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

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

 

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

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

 

最近注目されている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ポケモン(α)攻略wiki「最初のポケモン」
雑記
PHPポケモン,wiki,ポケモン
PHPポケモン(α)攻略wiki「最初のポケモン」

リリースから一ヶ月、遂にPHPポケモン(α)の攻略Wiki(仮)が公開です!   というのは大嘘で、内部の大幅変更の関係上、今回はPHPポケモンをプレイするにあたってのオススメなどをまとめて見た次第です。 ちなみに、バトルシステム自体は本家に沿って作成しているので、種族値や技性能に精通している人はブラウザ...

進化の石編(構成) PHPポケモン 102
プログラミング
PHP,PHPポケモン,ポケモン
進化の石編(構成) PHPポケモン 102

進化の石 ピカチュウさんもそろそろ進化したがっているので、β版の公開に向けて進化の石を実装していきます。しかし、イーブイなど特別な進化先や条件を持ったポケモンを考慮すると、少し実装が手間取りそうだったので、今回は構成部分のみのまとめとなっておりますので、ご了承ください。   アイテムクラスの作...

プレイヤー情報作成編 PHPポケモン72
プログラミング
PHP,PHPポケモン,ポケモン
プレイヤー情報作成編 PHPポケモン72

プレイヤー情報の作成 少し前よりプレイヤーをホーム画面に表示させるようにしましたが、ただイメージとして配置しただけでプレイヤー情報自体は設定していませんでした。なので、今回はプレイヤーとして持たせる必要のある情報を作成していきましょう。   クラスの作成 初代ポケモンではプレイヤー情報として閲...

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

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

【PHP】可変長引数とは「点(ドット)3つ」 多次元連想配列の検索
プログラミング
PHP
【PHP】可変長引数とは「点(ドット)3つ」 多次元連想配列の検索

可変長引数とは  引数の数が決まっていない、状況に応じて複数の引数を指定したいときに、関数の引数で指定する点(ドット)3つのことです。PHP5.6以降で使用することができます。  PHPマニュアル 可変長引数リスト https://www.php.net/manual/ja/functions.arguments.php#functions.variable-arg-list ...

会話スキルに自信がない人必見!会議やミーティングで失敗しないコツとは
雑記
Skype,Zoom
会話スキルに自信がない人必見!会議やミーティングで失敗しないコツとは

  話下手なので会議で置物状態 Zoomミーティングは発言しづらい 会議の時間が退屈で無駄   そんな悩みや不満を抱えている方はいませんか? 確かに会議は退屈ですし、話下手な人からすれば嫌な時間の1つかも知れませんね。 ですが、立ち回りのポイントを3つ押さえておくだけで、無駄・退屈だと感じて...

非公開ディレクトリ画像表示編 PHPポケモン 91
プログラミング
PHP,PHPポケモン,ポケモン
非公開ディレクトリ画像表示編 PHPポケモン 91

非公開ディレクトリの画像を表示する 今回は、β版に向けての取り組みの1つとして、表示させる画像のアクセス先を非公開ディレクトリに変更します。 現在は公開ディレクトリ(Public)内のAssetsフォルダ内に配置していますが、これをルート直下においているStorageに移動させるのが目的となります。   gifのbas...

【jQuery】移動式マルチプルフォームの作り方【sortable】
プログラミング
HTML,JavaScript,jQuery,jQuery UI
【jQuery】移動式マルチプルフォームの作り方【sortable】

  移動式マルチプルフォーム       htmlの標準マルチプルフォームは、選択したものに色が付く仕様ですが、数が多くなってくると選択しているものがわかり難いということや、並び順の変更がしにくいという難点があります。そういった条件も込みで再現するような選択要素移動式の...

カテゴリ

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 独立 神戸 福祉 秘密鍵 翻訳 自己啓発 英語 見積書 計算機 読書 起業 迷惑メール 配列 銀の弾丸 集客 雑学力