プログラミングの思い出

むかしむかし・・・

大学も2年生になり

趣味で始めたプログラミングへの情熱も落ち着き

作りたいものもあらかた作ってしまって

次のステップを見失っていたころ。

 

 

プログラミング言語や最新技術などについて調べつつ

ぶらぶらとネットサーフィンしていると、

再帰関数というものに行き当たりました。

 

 

たとえば

def fractal (n):

    if n == 1:

        return n

    return n * fractal(n - 1)

みたいな関数です。

関数の中で、その関数自身を呼び出すというものです。

 

 

for文やwhile文で書くよりもコードがすっきりすることも(たまに)あるので、

すっかり再帰関数に虜になってしまいました。

 

 

 

それからというもの、

それまで作っていたものを再帰関数で書き直す日々が始まりました。

明らかにループ文の方が速いのに、

ただ作りたいからという若さゆえに勢いに任せてどんどんつくっていきました。

 

 

 

 

ただ再帰関数には欠点があり、

あんまり沢山の回数を再帰させるとエラーが出ます。

 

その壁が立ちふさがり、

限界を感じた私はようやく落ち着きを取り戻し、

再帰ブームも過ぎ去ったのでした。

テックキャンプ12週目!!!!!!!!!!!!

そろそろタイトルのビックリマークも増えてきましたね。

コーディングにおいてはご法度ですが、

命名規則を変更するときが来たようです。

 

 

それはそれとして、

先日とうとうカリキュラムのラスボス、

お題のウェブアプリケーションをほぼ自力で実装するチャプター

に入りました。

 

 

 

正直とてもむずかしいですが、

ようやく自分なりの解法で問題を解決できそうなチャプターに入れたので

とてもわくわくしています。

(実戦に比べれば難易度がだいぶ低いであろうことは棚にあげつつ)

 

 

 

以前もちょっと書きましたが、

学生時代から現在まで必要に応じてスクリプトを書くことで

便利ツールの作成により仕事の効率化をしたり、

統計ツールの作成と蓄積データの解析により生産性を上げたりしてきました。

 

 

問題解決のためのアルゴリズムを考える力が

少しくらいはついているのではないでしょうか。

 

 

この経験を活かしてどんどん実装を進めていきたいと思います!

テックキャンプ11週目!!!!!!!!!!!

季節の流れるのは早いもので、

空が暗くなるのも随分早くなって来ました。

 

 

テックキャンプを始めた7月の今頃なら

「まだ昼間ですけど?」みたいな空だったように思います。

光陰矢の如し!!

 

 

 

 

さて、最近になって、

カリキュラムの最終課題として作る

オリジナルアプリのアイディアが沢山湧いてきました。

 

 

といっても主に自分が使いたいものが多いのですが、

 

逆に「この地球上に自分しか欲しいと思っていないもの」

って存在し無いんじゃないか?

実現したもの勝ちなのでは?

 

という考えで、

とにかく便利なものや、あれば嬉しいもの and/or 楽しいものを

リストアップしていくことで、

アイディアが枯渇すること無く湧いてきている今日このごろです。

 

 

 

これまで一度も意識したことのない不便、

そんなものがもし見つかれば大きなヒントになりそうです。

それを見つけに行かなくてはなりませんので、

ここらで今日の駄弁りを締めさせてもらいます。

テックキャンプ10週目!!!!!!!!!!

テックキャンプでの学習もとうとう10週目!!

 

 

初夏から始まり、

すっかり秋になってきました。

先週にも増して気温が変化し、

朝方や夜中は少し肌寒くなりましたね。

 

 

個人的にはそろそろ秋冬モノの服を

買い揃えておきたい時期ですね。

特に今年は早めに服の調達を終わらせて、

学習の集中できる環境づくりに注力したいところ。

 

 

 

この一週間で、

ウェブアプリケーションの作り方を一通り学び終えたかんじです。

特にデプロイの仕方を覚えたので、

やろうと思えば今からでもオリジナルのサービスを作成して、

世の中に発信することも出来るようになったわけです。

 

 

もちろんアイディアと実装なくしては叶いませんが!

 

 

学習を進めながら、

私がなにかサービスを立ち上げるとしたら

ターゲティングはどうすべきかをずっと考えていました。

ロングテールを狙うのが正解か、

それとも万人に使ってもらえるものを作るのが正解か。

 

 

後者を狙う場合、

潜在ニーズを掘り出さなければ、

レッドオーシャンで戦う羽目になりそうな気がします。

 

 

無くても困らないけど

あると便利なもの。

使い始めると

それの無い生活には戻りたくなくなるもの。

そういったものを作れたらなあと空想にひたる今日このごろです。

テックキャンプ9週目!!!!!!!!!

最近なんだか秋めいてきましたね。

気温はまだまだ残暑といった感じですが、

夜中や朝方は少しひんやりする日もちらほら。

 

 

ここ数年は秋が無くて

春夏冬の3シーズンみたいなかんじだったので、

ようやく季節を感じられる年が来て少しうれしいです。

 

 

ちなみに「春夏冬」で「あきない」って読むらしいです。

秋が無いからあきない、ってことですね。

お店の看板とかに「春夏冬中」、つまり

「商い中」という意味で置かれることがあるそうです。

 

 

 

今日テックキャンプではJavascriptを学びました。

このブログでも兼ねてから触れているプログラミング言語ですが、

ある程度触ってきているつもりだったのに全然歯が立ちませんでした!

 

 

やはりテンプレ作成程度のスクリプト等を書いているだけでは、

ガチのウェブアプリケーション作成にあたっては

あまり助けにならないようです。

 

 

ただ、この状況をむしろ嬉しく思っている自分がいます。

なぜなら成長のチャンスが来たと感じているからです。

 

 

必要は発明の母と言いますが、

今日何不自由なくカリキュラムをこなしていたら、

きっとこの言語についてわかったつもりでこの先も生きていたでしょう。

これくらいのやりごたえが合ってこそモチベーションも、

スキルも、生産性も上がるというものです。

 

 

 

そういえば私の人生のモットーにしている言葉として、

『花と嵐なら、嵐を選ぶべし』というものがあります。

現状に甘んじるよりも果敢に挑戦せよ、みたいに解釈していますが、

アレの元ネタはどちらなんでしょうね?

 

ちなみに私は『夏のあらし!』でこの言葉を知りました。

正確にはアニメの方で。

 

www.amazon.co.jp

 

グーグルで調べてみてもそれっぽい結果が見当たらないので、

もしかすると本作が発祥なのでしょうか。

いい言葉ですね。

テックキャンプ8週目!!!!!!!!

さて8週目です。

8といえば末広がりですね。

一部を除いて、

何だって広がりがあるのは良いことです。

知識もこれから広く深くしていけたら良いですね。

 

 

では先週言いかけた、

HTML&Javascriptスクリプトを書くメリットについて。

 

 

主に次の2つです。

1)ブラウザから使える

2)文字のエンコードについて(あまり)考えなくていい

 

 

1つめについて。

プログラミング言語としてJavascriptは、普段使っているブラウザさえあれば開発が行えるという大きなメリットがあります。

プログラミングを始めたいけどアプリケーションをインストールするのはなんか怖い、という人にはぴったりですね。

 

加えて、ブックマークレットというものがあります。

ブックマークのアドレス欄に「javascript:」からはじめてスクリプトを書くことで、ボタン一つでしたい処理をお手軽に実行できるという代物です。

自分の場合だと、任意のファイルから文字列をコピーしたものを読み込んで、ブックマークレットを使って整形したものをコピーし直すという使い方をしています。

 

 

2つめについて。

例えばウェブページやExcelのセルから文字列をコピーしたものを読み込むと、

自動的にアスキー文字とかに変換されるみたいなので、

あとは切ったり貼ったりの操作さえすれば良くなるので楽です。

 

 

 

 

あ、あと機能を拡張するのも簡単ですね。

例えばString.replaceが最初にマッチしたところしか置換してくれないので、

String.prototype.replaceAll = function (a, b) {

  return this.split(a).join(b);

};

みたいなかんじで全部置換する関数を作れます。

 

 

 

来週からもプログラミングの知識をたくさん取り入れられますように!

 

 

 

 

 

 

 

 

おまけ

javascript:alert(prompt("メッセージを入力","").split("").join("”")+"”");

テックキャンプ7週目!!!!!!!

テックキャンプで学習を開始して7週間が経過いたしました。

ラッキーセブンということで、今週なにか良いことがあるといいなと

思う今日このごろです。

 

 

 

 

ところで当方学生時代にプログラミングの独学を始めたのですが、

そのときに触った言語としてはHTML/CSS/Javascript/Python/Golangというかんじです。

 

 

ちなみにGolangは初期段階でSL4Aという、

アンドロイド上でPython等を動かせるアプリの存在を知ってしまってから、

「これPythonでいいじゃん」となり学習をやめました。

PCとスマホの両方でいじることができるというのがとても大きなアドとなり

Pythonに没頭することになりました。

 

 

※SL4A (Scripting Layer for Android)は既に廃止されたようです。残念。

 

 

とはいえJavascriptも、初めて触れたプログラミング言語として

ちょくちょく書籍やウェブ上のドキュメンテーションを参考に

色々書いていました。

 

 

以前も紹介しましたが、この本がすごく助けになりました。↓↓↓

www.oreilly.co.jp

 

 

学習する中で、

document.write

というブラウザ上に文字を表示する関数(タグも使える)をよく使っていたのですが、

 

document.innerHTML

document.outerHTML

というのもあるみたいですね。

細かい仕様の違いがあるようで、

また時間のあるときにちゃんと学びたいですね。

 

 

HTML+Javascriptスクリプトを書くことの有用性について

語りたいことがたくさんありますが、

長くなりそうなのでまた後日!