見出し画像

僕にとってプログラミングとは 〜人生を変える魔法〜

こんにちは、広大です!
日々様々な方とコラボしながら仕事をさせていただく中で、気づいたことや発見したことを発信しています。

今回は、僕にとって人生を変えたと言っても過言ではない「プログラミング」について、感じていることや捉え方についてお話しします!

プログラミングとの出会い

僕が初めてプログラミングに出会ったのは、大学入学して間もない頃です。
高校生の時までパソコンそのものに苦手意識があり、キーボードは両手の人差し指でポチポチ押しながら入力をしていました。

大学入学後、一浪したのもあり何か取り返さなければという思いで、ビジネスコンテスト運営の学生団体にあり、その中でも団体のホームページを作る部署に所属しました。ホームページが作れれば、パソコンが苦手な状態から普通のレベルにはいけるかなという思いがありました。

そこで先輩に教えていただきながら取り組むと、「あ!文字の色が変わった!」「面白い動きを追加できた!」と感動することがたくさんありました。
プログラミングのすごいところは、コードを書くとそのコードの通り動作することです。正しいコードを書けば正しく動きますし、間違っているとエラーになり、すぐに結果が現れるのでハマるとのめり込んでしまいました。

そこからプログラミングの魅力に取り憑かれた僕は、友人と一緒にアプリ開発をしたり、先輩と一緒に起業してシステム開発をする経験を経て、現在は独立してプログラミングでご飯を食べています。

プログラミングは魔法の呪文

僕にとってプログラミングとは、想いを叶えることのできる魔法の呪文のようなものだと思っています。
プログラミング言語はあくまで言語なので、言葉で説明ができるものは表現することができます。

例えば、WEBページを表示する時に、
「ここの見出しの文字は大きくして、赤くしたいなー」と思ったら、
HTML/CSSという言語(※厳密にはプログラミング言語ではないですが)で以下のように書くことができます。

HTML↓

<h1>見出し</h1>

CSS↓

h1: {
  color: #ff0000 ;
}

結果↓

HTML/CSSの実行結果

他にも、例えばドローンを
・離陸
・50cm前方に進む
・着陸
と動かしたいとすると、

Pythonという言語では一例として以下のように書けます。
※動作は保証しません

# 必要なライブラリをインポート
import time
from drone_controller_library import DroneController

# ドローンコントローラーを初期化
controller = DroneController()

# ドローンの離陸
controller.takeoff()

# ドローンを50cm前方に進ませる
forward_distance = 50  # 進む距離(cm)
controller.forward(forward_distance)

# 指定した距離を進んだら着陸
time.sleep(5)  # 例: 5秒間進む
controller.land()

# ドローンコントローラーをクリーンアップ
controller.cleanup()

やりたいことがわかれば、それを表現する手段の一つがプログラミング言語なのです。

プログラミング言語はあくまで「言語」

よくプログラミング言語は難しい、という声を聞きますが、
大事なのは、プログラミングを通じて「何を実現させたいのか」です。

例えば、100個の数字を足すというお題があったとします。
このお題を解くには、
・紙に書いて計算する
・電卓を使って計算する
・エクセルの表に書き出して SUM(A1:A100) をする
・プログラミングで自動計算する
などいろんな手段をとることができます。

実現させたいことがわかっていれば、その手段は極論なんでもいいのです。

プログラミング学習で何が何だかわからなくなった時は、
実現したいことをまず言葉にして考えると良いです。

プログラミングを学ぶ上で大事にしている前提

何度も挑戦すること

プログラミングはあくまで言語です。
赤ちゃんから成長する時に、何度も言葉を聞いたり発する練習をする中で少しずつ言葉が話せるようになります。
プログラミングも一緒で、初めは何が何だかわからず写経しているだけの時期もあると思いますが、何度も繰り返していくうちに、「あ、そういうことか!」「こことここが繋がっているのか!」と発見が見つかり、どんどん理解が深まる瞬間がきます。
プログラミングは失敗するとエラーという形ですぐに気づくことができるので、何度も繰り返すうちに覚えて行きます。

積極的に他から学ぶこと

プログラミングの特徴は、同じコードであれば別の環境でも実行ができる「再現性」があることです(※環境に応じて若干挙動が異なることもあります)。
そして、あなたがプログラミングで悩んでいることは、おそらく他の人も悩んだことがあることです。
一人で問題を解決したい気持ちもわかりますが、5分悩んでわからなかったら他を頼りましょう。周りに詳しい人がいるのであれば質問をしましょう。聞ける人がいなければ、Google検索などで検索をしてみましょう。最近流行りのChatGPTに質問してみるのもありです。

プログラミング言語はあくまで言語であり、作者や熟練者が存在します。
また言語そのものの開発も進んでいるため、常に情報が更新されています。
なので、自分だけで問題を解決するという発想そのものがナンセンスです。(ぶっちゃけ僕は結構一人で悩んでしまいますが笑)

学ぶ時にはあきらめることも肝心です。
あきらめるとは「諦める」と、物事を明らかにする「明らめる」という意味もあります。

課題を解決することが目的なので、プライドは捨てて積極的に他から学びましょう(自戒の念を込めて)

まとめ

プログラミングは僕にとって人生を変えた魔法のような存在です。
今後の活動を通して、プログラミングを学ぶことで選択肢を増やして、自立した人を一人でも多く輩出して行きます!