プログラミングの入門者には伝統的に変数やif文、for文などが教えられてきました。
昨今ではJavaやってGoogle Play Storeでアプリをリリースするのが目標になるのかもしれません。
開発環境は年々高級になっており、以前より人の思考に近い感覚でコーディングできるようになってきました。
とはいえ、かつてWindowsのGUIプログラミングがそうであったように、
スマホにはスマホの流儀があり、いくらアイコンを右クリックしたいといってもスマホには右クリックの概念が無いという、
様々な流れに翻弄されつつもプロダクトを開発し世にリリースしていくことは、
プログラマが選択できる使命の一つとして今後も世界中で支持されていくと私は信じています。
プログラミングをとりまく状況はこの30年で大きく変化したと言えます。
それでも基本的な部分は変わりがありません……などというのが通例ですが、
だからといって基礎練を素直に続けることが正しいとも思いません。
今の新しい世代の人なら、まずはスマホアプリかWebアプリ、Webサイトを目指すべきでしょう。
ハードウェアに興味があるなら、ラズベリーパイやArdinoを組み合わせても面白いですね。
アプリならJavaかSwift。(Unityを使うならC#ですね)
Web系ならphp。(ruby on railsもいいかと思います)
(15年前だったらC++でかっこいいwincdowsゲームを作りたい若者で溢れていました)
何かを作るにあたり、まずは1ボタン1機能から始めると良いと思います。
それはメール送信だったり、画面に文字を表示したり、ショップではがねのつるぎを購入したりと様々です。
ボタンを押すとボタンが増えたり減ったり、違う画面に移ったりしたくなります。
途端に難しくなります。
それらを整理するためにオブジェクト指向とやらを使わないといけなくなります。
何かを作る際に、機能が多くなると、それらを整理する手間が発生します。
グローバル変数はやめようとか、goto禁止というのはそういう活動の一環として生み出されてきたハウツーです。
そして自分の作りたいものは往々にして自分の実力を超えた所にあります。
幾多の困難を乗り越え、今の自分ならどの程度の規模のものを無理なく作れるかということがわかる場合があります。(わからない場合の方が多いんですけど)
最終的に何を作るか、何を作れるかというものを見据えながら、本当に必要な機能を選別しないといけないのです。
欲しいものは全ては手に入りません。
全部じゃないと意味が無いなら、即座に全てをあきらめるか、考え方を変えなければ生き残れません。
プログラミングをする上で、夢を実現する技術を学ぶわけですが、
それには、何を実現したいと願うか、何を夢とするか、をコントロールする術も含まれます。
そしてそれこそが、プログラミング、ひいては