Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

LSSのプログラミング歴

 どうも!LSSです!

 

 

 ブログを書き始めてから一か月を過ぎ、なんとか毎日更新を継続しています。

 ちょっと慣れてきたところで、最近は他の方のブログを見に行ったり、興味のあるジャンル面白い記事を書かれている方のところで「読者になる」ボタンをポチったりしています。※多分、もっと早い段階でやるべき事だったんだろうな、と思いながらw

 

 興味のあるジャンルとしては、例えば

  • プログラミングの学習系
  • 恋愛婚活
  • 逆境
  • 多忙だけどパワフル
  • ほんわか
  • 発想がぶっとんでる

など。※例として挙げてるのに表現が分かりづらい言葉でスミマセン^^;

 

 それで、同じくプログラミングを学習中の方(これはkotlinに限らず、他の言語でも)のブログをいくつか見ているうち、なんとなく自分の拙い「人生のうちでのプログラミングとの関わり歴」を書き出しておきたくなりました。

 

 今回はそんな記事です。

 

 先に羅列しておくと、触れた事のある言語は
BASIC,CASL,COBOL,FORTRAN,HTML,CSS,Perl,PHP,JavaScript,VisualBasic,SQL,JAVA,Kotlin

 って感じです。(赤字は特に真面目に触れたもの、それ以外はちょっと触ってみただけのものも含みます)
 また「ちょっと触ってみただけ」にすら含むのを躊躇われるレベルでC言語、言語といっていいか分からないところに「RPGツクール2000」があったりします。

 

※2019/11/10追記 念のため…羅列しているうち、HTMLとCSSは装飾言語であってプログラム言語ではないです。
(プログラム言語=計算できる言語、って定義に基づいた場合。個人的に思うのはSQLも怪しい気はしますが、計算はできるし手続き型ではないが故に独特な感じのするプログラム言語、なんでしょう。)

 

 

 

 

小学生の頃(BASIC)

「パソコン」への憧れはありましたが、買ってもらえるなんて事はなく、もちろん自分で買う財力もなかった時代。

 

 そんな中、「夏休み 小学生向けのプログラミング体験学習」に一度だけ参加させてもらった記憶があります。

  BASIC言語を用いて、ラインアートなんかをやったような気がします。

 ラインアートっていうのは、FOR文とLINEコマンドを組み合わせて実行すると、思いもよらない図形が描かれる、というもので、小学生の心をプログラミングに惹きつけるには必要十分なものでしたね。

 

 

中学生の頃(前半) ファミリーベーシック(BASIC)

 このへんから、年がバレるような(笑)内容になっていきますw

 小学生の頃に、一応ファミコンは買ってもらっていました。

 中学生になる頃、世間はファミコン ディスクシステムが出た頃、お年玉を握って中学生のLSSが、おもちゃ屋さんで買い求めたものはファミリーベーシックでしたw

 ファミリーベーシックって何??って方も多いと思うので、簡単に説明すると、

ファミコンに接続するキーボードと、専用カセットのセット」

 です。

 保存できる容量が少なすぎるとか、
バッテリバックアップだけど保存の際にカセットについているON/OFFスイッチを切り替える必要があって、触り方次第でフリーズしそうだとか、
ファミコン本体と同じぐらいの値段するとか、
画面描画できるのが文字と、あとはあらかじめ用意されたキャラクタ、背景ブロックだけでLINEとか自由に描く要素がないとか、

そういった問題も色々ありましたが、

  • デフォルトで作曲機能がついている 
  • デフォルトで占い機能がついている
  • デフォルトで日記機能がついている
  • マリオやルイージ(他にも車や戦闘機等)が用意されていて、思い通りに動かせる

とか、良い面も色々とあり、子供がプログラミングの道へ入門する要素としては結構いいものだったんじゃないかと思います。流行りませんでしたがwww 

  購入の際も、おもちゃ屋さんからディスクシステムじゃなくて??」と念を押されましたねぇw

 

 

中学生の頃(後半) ポケコン

 これはかなり衝撃的な出会いでした。

 当時、塾に通っていたんですが、そこで同じ塾に通う人から見せられたポケコンという、見た事も聞いた事もなかった機械。
 例えるなら「パソコンと電卓の間に位置する存在」で、種類も様々。

 例えば画面も「1行12桁の文字表示できるだけの画面」から「240×32ドットの単色描画可能画面」までといった具合。

 で、その「1行12桁の文字表示画面」の中で記号とかをうまく使って、横スクロールアクションゲームを表現していました!

 BASIC言語を搭載しており、ポケコンを取り扱った雑誌に一般から投稿されたゲームプログラムが掲載されていて、そのコードを打ち込むと
「ソフトを買わなくてもゲームが遊べる!!」
という、中学生にはすごく分かりやすいメリットもありましたw
※パソコンやスマホ、そしてインターネットが普及した今なら、フリーゲームいくらでも遊べますが、そういったものが全く普及していない、けど家庭用ゲーム機は爆発的にシェアを伸ばしていた時代のお話です。

 とはいえ、その時は少し遊ばせてもらって「うおおおお!いいなぁこれ!!」と羨ましがるばかりで、自分が手にするのはもう少し後の話になります。

 

※一応、書いておきます。
 近年、アニメ「ROBOTICS;NOTES」で「ポケコン」というモノが登場するものがありましたが、それは全くの別モノですw

 また、旧実写版の電光超人グリッドマン(これも永い時を経てアニメリメイクされたようですね)という特撮モノの終盤に突然「ポケコン」というモノが登場しましたが、ソレはコレですw
 グリッドマンに出てきた時は「おお!マイナーな存在なのにTVドラマに!」と嬉しかったものですが、ROBOTICS;NOTESに関してはポケコンが製造されなくなってから時が過ぎ、ついに完全に忘れられた存在となって、知らずに名称が全く新しいモノとして使われてしまうんだなぁ」と思ってしまいました。見てはいないんですが^^;

 

 

高校生の頃 ポケコン購入(BASIC)

  やっとポケコンを購入したのは、高校生になってからでした。

 買ったのは1行12桁表示のほうの機種、CASIOのPB-120という端末です。

 ポケコン本体を買うより前に、ポケコン専門誌「PockecomJournal」という雑誌を買ったりし、前機種の10倍以上の容量を持ち、高性能機種よりはお財布に優しい、という事でPB-120にしました。8000円ぐらいだったかな?

 取説のサンプルプログラムで遊んだり、雑誌掲載のゲームプログラムを遊んだりした後、さっそく自作ゲームの作成に取り掛かり、最初に作ったのは「1行12桁の文字表示画面なのに3D表示のRPG」でしたw

 無理そうな事に挑戦したい気力があった頃ですね。

 どんな表示かというと

__> <__
↑こんな雰囲気。壁とそうでない部分をどう分けてたかは忘れました^^;

 容量をめいっぱい使って、完成まで漕ぎつけましたが、どこにも発表する事なく消しました。

 次に作ったのは、特撮ヒーローものモチーフのアクションゲームで、

  1. 戦闘員の攻撃を避けながら変身に必要な条件を満たす
  2. →変身
  3. →戦闘員を何体か倒すとステージボス登場
  4. →ボスにダメージを与えつつ、シメに
    「使うと大ダメージを与えるが自分の変身がとけてしまう必殺技」
    でボスを倒す、

というような内容でした。

 こちらは雑誌に投稿し、無事掲載されたので、自分が世に出したプログラムとしてはこれが第一号だった、って事になります。

 他にもいくつか(といっても振り返ると数は本当に少ない)ゲームプログラムを投稿したりしていましたねぇ。

 

 

専門学校生の頃  情報処理技術者試験のための学習(CASL,COBOL,FORTRAN

 ポケコンにドハマリした高校生時代を経て、コンピュータ系の専門学校に進学します。この頃、将来の夢は「ゲームデザイナー」でした(夢は破れますw)。

  学校ではCASLCOBOLFORTRANが授業でありましたが、これらの言語学習は習得のため、というよりも「国家情報処理技術者試験」合格のための学習でした。

とはいえ、CASLアセンブラなので、かなりコンピュータ寄りの言語なため、コンピュータがどんな風に計算して結果を出しているかのディープな部分に触れられたように思います^^
 今じゃ、COBOLは「なんかディビジョンが4つあったな」程度にしか覚えていませんw

 専門学校時代も引き続き、ポケコンは触り続けていました。

 あ、そうそう、専門学校入学時に、学校でPC-9801NVを買わされました!
※親がお金を出してくれました!

 これが、「自分が初めて自分のモノにしたパソコン」って事になります。
 OSは、一応Windowsも当時存在していたはずですが、MS-DOS3.3D(だったかな?)でした。

 DOSに触れられたのも、ある意味ラッキーでしたね。
Windowsはもちろん使い易いですが、反面、PCのファイルがどこにどう保管されているかが理解しにくくなってると思います。 

 

 

20代の頃(HTML,CSS,JavaScript,Perl,PHP

 結局、ゲーム制作会社には就職できず、コンピュータともあまり縁のない会社に就職します。

 で、しばらくしてからインターネットが普及しはじめました。

 個人でホームページを持つ、って人が増えてきたあたりで、自分も手をだします。

 最初はプロバイダが提供してるスペースに個人サイトを作ったりしていましたが、ユーザー交流機能つきの無料HP作成サービスにも手を出してみたりします。
 無料HP作成サービスのほうは、サイト名とか掲示板の名前とか色とか設定するだけで作れる、っていう系のやつでした。

 そこにユーザー同士が助け合うQ&Aコーナーがあって、HP作成するうえで、
「〇〇を××したいんですがどうすれば…?」
みたいなQがいっぱい投稿されてるんです。

 ちょっとだけ先にHP作ってた強みもあって、自分は回答者側で教えてあげたりしてるうちに、
他の人が自分のサイトをどんな風にしたいと思ってるのか、とか、
その人がやろうとしている事を分かりやすく説明できるのはどんな手段が適切か、とか
色々と考える機会に恵まれました。

 そんな頃でした。

JavaScriptというWebページ内に記載してブラウザ上で動作する言語がある

と知ったのは。

 サイト上に「ちょっとした仕掛け」を取り入れる事ができるのはもちろんの事、

「これって、がっつりゲームとかも作れるんじゃ?」

と思い、色々と作ってみたり、作ったゲームを公開する専用のサイトを作ったりもしました。※といってもHTML4.0の時代の話です^^;

 残念ながら、そのサイトはサーバーのほうが終了してしまって消滅しましたがw

 また、CGIにも少し手を出し、まずはPerlで、後にPHPで、掲示板やアクセスログを自作しては、上記サイトのログを取ったりしていました。
 先にPerl触ってると、PHPの手軽さは衝撃的でしたね。
 なんとなくJAVAとKotlinの関係にも似ているような?

 

 

20代終盤から現在まで(VBA,SQL,VisualBasic,JAVA

 20代終盤で転職しています。

といっても、またコンピュータとあまり関係のない業界で事務員として入りましたがw

 それで、やってた仕事というのが、すでに構築されたシステムを専用のソフトから操作し、内容をチェックしたり印刷かけたり、という業務でしたが、その専用のソフトってのがまたチェック業務に向いていない作りでw
(そもそもチェック業務自体、業務フロー上になくて入力されたデータが間違いだらけなので止むを得ずやってる、って状態でしたが)

 そんな状態だったので、
「データをCSV形式でダウンロードする機能を専用ソフトに組み込めないか?それがあればExcelの計算式である程度のチェックは自動化できるので」
といったところ、「組み込みはしないが…」と、MicrosoftAccessからシステムが使ってるデータそのものを読みに行く方法を教えてくれました!

 

  世の多くの事務員の方がそうだと思いますが、Office製品でAccessなんぞ立ち上げた事もなかった自分。

とは言え膨大な手間が一気に縮小化できるのでと、ちまちまと覚えながら
「データを読みにいって、機械的に判定可能な入力ミスを洗い出す」
ものを作り始めました。

 途中、ある程度慣れてきた段階から、oracleSQLを覚える 必要に迫られたりもしました。(読みに行く専門なのでselect文だけ)

 

  それから十数年…。

 

 入力ミスは一向に減る様子がありませんがw、SQLVBA、ついでに正規表現なんかも、必要に迫られて結構覚えました! !
※この必要に迫られてっていうのはかなりの活動エネルギー源になるとつくづく思いました。

 SQLの知識はアプリ開発にも結構活かせそうな気がしますね。
(といっても、それほど複雑なSQLを使う必要のあるアプリ、今は思いつきませんがw)

 


 ここで突然、ちょっと紹介したい本を宣伝しますw

SQLを書くのに慣れてきた頃、サーバの負荷を考えないといけなかったり、我流のSQLの書き方に不安を感じたりした時に見つけたこの本!
超良書です! 
入門にはあまり向きませんが、とりあえずざっくりとSQLの書き方が分かった段階で、より理解を深めるのにはとても役に立ちました!!


 

 また、プライベートでは

  • ある時、突然Windowsアプリを作りたくなり、VisualBasicを買ってきて、ゲーム一本作って満足してそれっきりだったり
  • Androidアプリを作ってみたくなって、何冊かの本を買ってきてEclipseJAVAって環境下で、かつてポケコンで作ったゲームをひとつ移植して、完成したところで満足してそれっきりだったり
  • 2chのRPGツクールスレに入り浸り、自分でも何本か思いつきでゲームを作っては公開したり

といったような事がありましたw

 こうして振り返ってみると、やっぱり
「長期的な目標」意識がないと長続きしない、アプリひとつ作るだけが目標で始めると、完成した時点で熱を失う様子がよく分かりますw 

 

 

そして現在(Kotlin)

 始めたきっかけ…については今回は割愛します。
(まだ全然カタチにもなっていないし、ネガティブな要素が多いのもあって^^;)

 

 そう、まだカタチになってないんだよなぁ^^;;;

 ブログで扱いたい、そしてまだ自分が身につけていないKotlinネタはまだありますが 、そろそろ公開を目指して動かねばいけませんなw