私のプログラミング経歴
私はこの記事を執筆時まではプログラミング未経験でした。
(記事の下に行くごとに少しずつ経験していくことになります。)
一応高校の時に情報という授業があってHTMLはやりました。
(マークアップ言語でプログラミングではないですが。)
最初に言っておきますが
本記事は最近よく聞く「未経験からエンジニアに!!」
に当たる「本当に何もプログラミング知識がない素人」が
少しプログラミングを学んでみた体験や思うところを述べています。
途中、筆者の私と考え方や感性が合いそうだと思った方は
独学で使用するために購入した本も紹介していますのでよかったらポチってください。
ちなみに、スクールは必須ではないと考えています。
独学こそが人生で最強の「本質を思考することができる」ツールと考えているという理由の他、
言葉を選ばなければ、
「なんでも自分で学んでいこうとしない人間がこの先どうするのか?」
という根本的な理由もあります。
人の力を使わなければならない大プロジェクトを成すわけではないのであれば
最低限が達成できないうちはただの意欲不足です。
なんとしても一人では無理!!という方は
スクールに通えばよいのではないでしょうか。
そこは自分と相談してください。
ところで、高校は普通科だったのもありがっつりやるのはやはり5教科でした。
週一回の授業かつパワーポイントで各自のパソコンに一方的に流れるスライドに
無機質な感想と、読めばわかる内容を先生がコメントしていくだけだったので
パソコンは好きだったけれども情報の時間のHTMLは
はっきり言って楽しくなかったし面白いと思えませんでした。
そんな私ですが普段MT5でFXをやっているのですが、
「自分の思うようなインジケーターを作ってみたいな」
と思い調べてみると、「MQL5」というプログラミン言語で構成されているとわかりました。
…いや、まぁ知ってはいたんですけど。
「MT5って?」という人かつ「プログラミングとの関係は?」
という人向けに少しだけ説明すると
MT5はロシアのメタクオーツという会社が出しているFXなどの
チャートを見られるもので、旧バージョンはMT4です。
プラットフォームとかいうと余計わからなくなりそうなのでその程度いいです。
今はMT5が推進されていますがなかなか移行してきていないようです。
そして、MT4が「MQL4」、MT5は「MQL5」という名前は似ていますが
中身は異なるプログラミング言語が使われています。
そのせいで、旧MT4から現MT5に移行するメリットがほとんどない
一定の層(主に使いたいカスタムインジケーターがMT5で対応していない)が多いのです。
私はFXを始めた時からMT5だったのと、
そういった状況でMQL5を扱える人口がMQL4を扱える人口に比べ大幅に少ないという
希少性を鑑みて、最終的には興味の問題でMQL5を扱えるようになりたいと考えました。
目標はMQL5、しかしHTMLから始めようと考えた理由
私は読者様が今読んでおられますように当ブログを運営しています。
2018年10月28日に当ブログは始動したのですが、
恥ずかしながらそこからこの記事の執筆時点まで19か月ほどたった今も
「お問い合わせフォーム」が機能しておりません。
たいていの方はプラグインというものでお問い合わせフォームは作ってしまうのですが、
ブログ開設当時は初心者にも関わらず、
「その方法は嫌だから自作するまで連絡とれなくていい」
と勝手気ままにお問い合わせフォームを閉鎖し続けています。
※実は知識のないうちにあまりインターネットからの問い合わせで
やりとりしたくなかったという独りよがりな理由もあります。
今までで連絡を取りたかった方、申し訳ありませんでした。
アナリティクスのデータから、今まででお問い合わせフォームまで来てくれた方が
何人かいらっしゃったのでここで謝罪いたします…
冒頭でも言った通り、プログラミング経験は皆無だったわけです。
と言っても、実はお問い合わせフォームをプラグインを使わず作りたかったので
99.99%コピペだったのですが、いわゆるテキストエディタで貼り付けたり
恐る恐る保存したりということをして「そういうものに触れた瞬間」はありました。
高校の情報の授業の影響でHTMLに好感を持ちにくくなり、
いい勉強法も思いつかなかったので
初めから読んでいってわからない意味・箇所・概念等が出てくる度に調べていきました。
そして、javascript・PHP・Ajax等が細々出てきて、
FTPでsendform.phpのアップロードをした後から壁に当たり、
結局はうまくできなかったのですが
一日7時間それを一週間以上かけて試行錯誤したり考えたりして解決を図りました。
ある程度「学習」というものがどういうものかわかってきて以降、
保留してからどんなに多くとも10回も見ていればどこかで「なるほど」と
わからなかったことがわかる瞬間というのがくるものだったのですが、
この壁に当たった時は「どんなに考えてもわからないところがわからない」
段階まで来てしまい、いよいよjavascript・php・Ajaxなどが
どういうふうに書かれているかなどプログラミングの本質を見なければ
コピペとありあわせの知識だけでは処理しきれないと判断したので
いったんこの分野から離れました。(諦めたわけではない)
そしてまた時が来たわけです。
MQL5を扱えるようになりたいと思ってもう少し詳しくMQL5について調べてみると
聞いたことだけはある「C言語」がもとだとか。(正確には「C++言語」がベースですが。)
高校のときの親友(私より学習習得能力は高い)が
「C言語わけわからん」ということを言っていたことがあったのが印象的だったのですが、
興味本位で調べると
「大学で最初にC言語をプログラミング入門時点でやるから難しく感じる」
という意見も多く見受けられたので、勝手にそうなのかなと納得しました。
目標地点として今私はMQL5を挙げています。
そして当時時間をおいてから再トライしようと決めていた
「お問い合わせフォーム」の件が頭によぎりました。
つまるところ、
お問い合わせフォームをやっつける時が今。そして次の目標へと行く。
これが今ようやく新しい視点となり、
挑戦すべきチャンスの時だと感じたのです。
私の頭の中では
HTML→CSS→php→javascript→Ajax→お問い合わせフォーム
→(間にrubyを挟む予定あり)→C入門→C++入門→MQL4とMQL5の架け橋の本
と学習して、実践していこうと決意したわけです。
ちなみCSSはノリです。
Rubyは見据える先の計画で必要になるかもと思ったからです。
まぁ、知識のない内だからこそこうしてさらせるわけで、
もしかしたら学ぶ順序やレベルの問題など、
見当違いのことを言っている可能性を考えると少し恥ずかしいなとは思いますが
初学者のうちは抱ける希望は抱いておいてどんどん実践してから修正していけばよいと
楽観しております。
というわけで、初めて根を詰めてプログラミングを学び始めました。
時は流れ、実はHTMLとCSSを一通りやってみました。
このテーマで執筆を決めたのは
実はHTMLとCSSを一通り学んでみてある感想を抱いたからなのです。
先に学習に使用した書物を紹介すると、
これを使いました。
ノリで学びたかったCSSについてですが、
私は普段自分にとって大切な本や学習教材を買うときはアマゾンのレビューを精査し、
様々なサイトで下調べをし、実際の本屋さんに行って中身を比較してから買います。
そして、評判は良さそうなので一応は紹介しますが、
私は中身を見て合わなかったので
他の本を比較して先ほどの本にしました。
結論を言えばHTMLを選んだらCSSがついてきたという感じです。
大事なのはここからでHTMLは12時間、CSSは20時間弱、計5日で終わりました。
もちろん仕事を請け負うレベルでもないし実績もありませんが
感覚としては「タグは覚えきれていないけどなんとなく必要そうなものはピンとくるので、
必要そうなタグについて調べながらやれば大量に時間はかかるけれどデザインは再現できそう」
と思えました。
そしてすぐ、
WordPressに使えそうなphp書物を買いました。
タイトルと本の外装から少し否定気味姿勢から入りましたが、
中身を見て合いそうだったのでこれを買いました。
こちらは少し集中できてはいなかったのですが1週間ほどで読破しました。
途中少し飽きが来てたいへんでした。
イメージとしてはもとから英語の力がある方は習得しやすいなとは思いました。
余談
私が高校1年の時にこの長岡亮介さんの書物に出会い数学の本質を学べたので、
飲み込みやすかったのはあります。
具体的には「推移率」という美しさを知れたことと、
早い内に合成関数の考え方を鍛えられたことが挙げられます
PHPの変数の考え方などは、まるっきりこの2つの合わせ技だと思いました。
(違うでしょうか…?)
もはや蛇足ですが、
私がFXを続けようと思ったのもこの本のデータの分析の最後の説明で
最小二乗法の話を知れたからですし、長岡先生には人生救われています。
いつか会いに行きたいですね。
ちなみに良書ではありますが、
もし高校生でこの記事にきてしまった方に対して一言添えるならば、
「受験」という「効率」を考えるのであれば
ⅠAはまだいいですがⅡBは1000ページ超えますし、内容が多いので
得点のみを考えるのであれば不向きな本ですので注意してください。
…私?ⅠA、ⅡB、Ⅲの3冊買いました。
後悔はしてませんがあえて現役生に勧めるかと言えば万人向けではありませんので
回答はNO!!です。
※文面から察する人もいると思いますが
私はチャート式の問題集が好きではありません。
ここまでの背景をもとに特に初学者に伝えたいこと
ここまでの話で言いたいことはそういった
意外と集中すれば早く理解できるということではありません。
(もちろん集中することは大事ですよ!!)
情報の授業でHTML嫌になった話をしましたよね?
お問い合わせフォームでいったん挫折した話をしましたよね?
英語わかれば楽そうな話もしましたよね?
お問い合わせフォームがまずは直近の目標だということも確認しましたよね?
つまり何が言いたいかと言うと、初期段階で私はHTMLといった
プログラミングの基礎台あたる簡単な部分にすら不愉快であったわけです。
しかし、やってみると特にHTMLは異常に簡単なわけです。
私はMQL5を扱いたいのです。
MQL5のような「高度」なプログラムよりも「簡単」であろう言語は当たり前に習得して
倒していかなければなりません。
もうお気づきのように、
結局気持ちに行動が乗っただけで人間はこんなにもエネルギーをもつのです。
最近はエンジニアを目指してプログラミングを学ぶ方が圧倒的に増えましたよね。
しかしそこには基礎的理解力や習得済み英語力の他、
モチベーションや達成目標の有無など多数の壁に阻まれていてそれは人によって違います。
特に、私が初期にHTMLが嫌になっていた理由を改めて振り返ると
無機質であると感じてしまっていたことが一番の弊害を与えていたのだと思います。
私は今回MQL5という目標のために
HTML・CSS・PHPという3つを学びました。
(WordPress関連のみなのでPHPは浅いけれども)
ほとんど入門とはいえ2週間ほどで一通り俯瞰するレベルになれます。
かなりハイペースで今回やったと思いますが、「やりたかったので」やっただけです。
実はプログラミング習得は長期目標なので、
本当はもっとゆっくり時間をかける予定なのです。
しかし、俯瞰して思ったことがもう一つあったのでそれを記して終わります。
少なくともHTMLとCSSは何か月も勉強するようなものではないと感じました。
むしろ、情報はそこらのネットの海に落ちているはずですので
いったんの学習経験があるのであれば、
その都度調べてやりながら応急処置的に穴埋めしていくうちに
当たり前にできるようになる技術なのだろうと推察しました。
むしろやると決めた、そして直観的に愛せそうなプログラミング言語を深く学習する方が
全体的にプログラミング能力としては向上しやすいのではないのかと思います。
偉そうなことを言っていますがまだこれでも3言語(といってよいのか?)です。
学んでいくうちに考え直す機会も来るでしょうが、
それは新しい景色を見ることができるから達成できるわけで、
そこまでの過程で無駄な道はありません。
そこに信念があるのであれば、
自分の世界が揺れる必然性がないからです。