238
@aktr996

大嫌いだったJavaScriptがプログラミングの楽しさを教えてくれた

この記事に技術的な話はありません。
ただ「プログラミングって楽しいなあ」と実感させてくれたのが、一番嫌いだったJavaScriptだったという話です。

もし、自分にはプログラミングの才能がないと思っている人がいたら、「それでもプログラミングと一緒に人生を歩けるかもですよ?」という同じ初心者からの感想をここに残しておきたいと思います。つまり、爆速で○○ができなかった人間でも「プログラミングを楽しむことは平等に可能」なのかもと。
ただちょっと、時間と参考書の縁が必要なだけで。

はじめに

手短に自己紹介させていただきますが、いま僕はSE系の会社でDjango/Angularメインでシステムとインターフェース関係をやってます。

プログラミングをはじめて2年強のアラフォーで、いまの会社は知人のツテで入りました。その頃は「HTMLとCSSをかろうじて触れます」レベルのひどいものでした。
いまもひどい部類なのによく会社も我慢してくれているもんだ。

学習の歩みと反省

プログラミングの基礎部分を作るときこそ、学習の手順および、書籍・本・動画そしてメンターや講師といった情報源の巡り合わせが本当に重要だなと思います。

僕は当時、Sのつくスクールで始めましたが講師との相性がおそらく相当に悪く、「これはお作法です」を鵜呑みできない自分の性分もあって、結局何も成果物がないまま半年が終わりました。それでもHTMLとCSSは多少触れるようになったので、友人知人の簡単なwebページを作ったりして小銭稼ぎをしていました。

その際に、JavaScriptはよくわかんないけどコピペでちょっと入れる的な使い方をしてました。ただJavaScriptは構文エラーがあってもページ自体は表示して、でもクリックイベントは反映しない、という無機質な感じにイライラして、深く学ぶ気持ちは起きませんでした。避けられる限り避けてやると決めたくらいに嫌いでした。

おいおい地獄か? AngularとTypeScript

そんな状態でなぜか入れていただけた会社は初日に、
「じゃあこれ引き継いで」
と業務管理アプリの開発を丸投げされます。担当は私一人。

Angularも知らなければもちろんTypeScriptなんぞ触ったことすらありません。
型定義もわからず、何に値を格納しているんだこれは・・・と混乱し、フレームワークのメリットもわからず、前任者もサーバーサイドはともかく、「Angularはこのひと月しか触ったことないから」と質問すらできない始末。なので一人、触ってはエラー。学んでは忘却。ひと月ふた月と過ぎていきます。

途中、
「DjangoでAPI作ってJSONを非同期通信して、うんぬんかんぬんでよろしく」
と、JavaScriptでなにか作っていたらどうってことのないワードも、このときは日本語なのに意味わからん状態。帰ってから手当たり次第本を読むも、目は書いてある文字を滑り続けるし、写経しても翌日には忘れることの繰り返し。「自分、本当にプログラミングの才能ないんだな」と自己評価は地中深くに潜っていきます。

とくにAngularは他のフレームワークに比べて利用者が少なく、そもそもの情報量が少ない&バージョンアップが早いので書籍は無いわAngularJSの情報も混ざるわで、本当に地獄の日々でした。

コード百遍、自ずから意通ず

読む。わからない。読む。わからない。
こんな繰り返しのある日、急に自分の中に仮説が立つようになりました。

(……あれ? あのメソッドってこういう時に使うんじゃね?)
(あれをこうすれば意図通りのものが作れるんじゃね?)

コードの基礎的な読み方や前任者の意図を読む精度は依然低いままでも、仮説を立てられるようになったところから、こう、主体的にコードを書けるようになった感覚が芽生えて、グッと面白さが湧いてきたのを覚えてます。

そのきっかけがJavaScriptだった

まあ正しくは触ってたTypeScriptなのですが、基礎的な部分の意でJavaScriptです。
構文のルール、()の意味、{}の役割などなどようやく線で繋がって、プロトタイプのメソッドとfunctionで作るメソッド、Asyncの意味や注意点、デバッグの有効性、ようやく「あ、いまの自分なら教われば覚えられそう」という予感がしました。

そこからは買ってホコリをかぶっていたJavaScript コードレシピ集や、JavaScriptリファレンス 第6版を片手に、UdemyのThe Complete JavaScript Course 2020を、へー! すげー! と進めてたりして、いまでもUdemyさんのコンテンツにはめちゃくちゃお世話になってます。

もしかしたらどこかで「ある日突然、コードが読める」という言葉を聞いたことあるかもしれませんが、人のターニングポイントはそれぞれで、僕の場合は「ある日突然、コードの仮説が立つようになる」がターニングポイントと思っています。

きっとこうすればこう動く。とか、これはバックエンド側の方で処理する方がスマート。と、パズルゲーム感覚のプログラミングは、ヘマもしますが本当に楽しいです!

そして、触れていない言語は山ほどありますしこの認識が正しいことかわかりませんが、本当に納期優先な最悪ケースでならJavaScriptでゴリゴリすればいいのかも、というJavaScriptの全能感はいまの僕に安心感を与えてくれています。

つまりJavaScript楽しい

現在だって僕はまともにプログラミングできてるなんて毛ほども思ってませんが、ようやく、使えるもの・世の中の役に立つものを作る人側のスタートラインに立とうとしているのかなー、なんていう成長感が嬉しくて仕方ありません。

いまではWebpack使いこなせたらいいなあとか、Reactスキル欲しいとか、その次はTypeScript押さえてやろう、みたいにJavaScriptを軸にもっと知らないことを知っていきたい、もっと使えるようになりたいと思うくらいです。あれだけ苦しめられたAngularもいまは嫌いじゃないですし、(というか一番触ってる)ゆくゆくはもっとサーバーサイド側の開発で挑戦したいとも思ってます。

長々と書いてしまいましたが、JavaScriptで動くものが作れるようになって、はじめてプログラミングの楽しさを知りました。(プログラミングの良さと楽しさは別物という意味で言っています)

もし人と比べて凹んでたり、挫折したりしてても、諦めずに(でもちゃんと手と頭を動かす時間を使って)いれば、プログラミングはある時一気に楽しくなると思います。

人生のお供にプログラミング、ってのもいいんじゃないかなあと。
仕事でも携わりながらも、僕は今それくらいの視点でいます。
せっかく触り始めたのだから、自分の中で楽しさがわかるところまで行けたら幸せだと思うんですよね、と素人が言ってみたり。

とまあ、技術のギの字もない記事でしたが、ここまで読んでくださりありがとうございました。次回からは未熟なりに技術系記事を書いていこうと思います。
今後とも、どうぞよろしくお願いいたします。

あの大嫌いだったJavaScriptに感謝と、これからもよろしくという挨拶を込めて。
console.log("Hello world.");

238
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
aktr996
幻想水滸伝が好きな人です。Angularを触りはじめてもう半年過ぎてました。 わからないことだらけの日々を過ごしてますが、それでも自分の変化が楽しいです。 Angular、Node.js、JavaScript関連のライブラリ、あとたまにM5Stack触ったりしてます。 twitter: https://twitter.com/minotw996
この記事は以下の記事からリンクされています

コメント

プログラミング向いてないんじゃないかって鬱気味になっていたので、同じ境遇の人がいて勇気が湧きました。ありがとうございます!

6
(編集済み)

コメントありがとうございます:bow:
勇気湧いたのなら書いた意味がありました!
僕は残念ながら爆速とは程遠い人種ですが、続けて経験積んで、もうちょっと先の未来で良いコードを書けるプログラマー枠に入れたらいいなーと思ってます。今は辛いかもですが、探せばいい参考書・動画教材・メンターなどの情報はあるはずなので、その成長欲だけはなくさずにお互いがんばりましょー:grinning:

4

@Alice1017 スペルミスのご指摘ありがとうございます^^;
これではエラーが発生しますねw

タイポFix by Alice1017 2020/09/28 13:17

0

Web業界に入ってちょうど2年になる者です。学習と歩みの反省、才能云々のところで共感しました。
何度もエンジニアはやめた方がいいのでは、と思い悩んだものですが、今はすごく楽しいし今後もコードを書き続けたいと思うようになりました。そして学習し始めの頃(から1年強くらい...)は学び方がかなりお粗末だったと反省しています。

私自身もスキル的にはまだまだですが、プログラミングが好きだと思えるのはJavaScript(TypeScript)のおかげだと思っています。才能とか向き不向きの話はこの業界でよく話題になりますが、「できないけど好き」という気持ちで続けられるのもひとつの才能じゃないかなと最近は思っています。

今後とも楽しいという気持ちを忘れずにお互い頑張りたいですね😊
通りすがりに独り言コメント失礼しましたmm

1

アバターはルクレティア様ですね。同じ幻想水滸伝好きとして応援しております。百英雄伝も頑張りましょう。

1

@nskij コメントありがとうございます:bow:
やはり独学力みたいなもので最初の差がついてしまうんでしょうかね^^;
同じく(?)お粗末な学びだったにも関わらず、プログラミングの仕事に就けたとこは、今でも(もしかしたら今が一番)うれしく思っています。

「できないけど好き」はありますねー。
僕はプログラミングの「作り方は自由かもしれないけど、でも動くための答えもちゃんとあるから動くはず」みたいなカチッとした部分が好きです。誰かがこれくらいは作ってるんだから動くための正解はあるはずだーって思えたら、心が死にかけててもなんとか頑張れるもんですしw

これからも山も谷もあるんでしょうけれど、お互い「やっぱり楽しいなあ」と思いながら色々作っていきましょう!

1

@samuraibrass
まさかここで宿星な方と出会えるとは。
きちんと「様」をつけてくださるところに幻水愛を感じました。一番好きな軍師様ですw
応援もありがとうございます。がんばります:pray:

百英雄伝はもちろんクラファンぶち込みました^^
こちらも頑張りましょう:grin:

1

その頃は「HTMLとCSSをかろうじて触れます」レベルのひどいものでした。
Angularも知らなければもちろんTypeScriptなんぞ触ったことすらありません。

そんな状況で、DjangoによるAPIサーバーの開発だの、Angularフレームワークによるフロントエンド開発だのを丸投げされるなど、滅茶苦茶もいいとこですね。自分だったら、その日のうちに辞めてます。

ただ、この業界、特にWeb開発業界では、いつも同じプログラミング言語やフレームワークを使い続けることなどできず、今までやったことのないスキルでの開発を要求されることもあり得ますね。例えば、APIサーバーの開発をGo言語でやってくれとか、フロントエンドのフレームワークにReactやVue.jsを使ってくれと指示されることなど。

要は、エンジニアにとって「この技術はわからないから開発はできません。勉強が終わってからやります」という要求が通らないのがつらいところ。そうかと思うと、業務未経験者で、独学で〇○言語と〇〇フレームワークを深く勉強したから、エンジニアとして雇って開発をやらせて欲しいといっても、門前払いされるのがオチ。

この業界にとって、スキルの評価とは何なのか?謎です。

5

@kt00004
初日から「こりゃ地獄に来たな」と思いましたw とはいえ納期が超余裕なものとしてそれだったのかなと。そのぶんこちらも会社の中でも独学時間を好き勝手取らせていただけたのだと。(孤独でしたがw

あと自分の場合は年齢が年齢なので、プログラミングでご飯食べていきたいと考えたときに「これくらいの地獄の方がスキルつくから願ったり叶ったり」と素で感じてたので、なんだかんだいまに至るのだと思います。

ほんと何が飛んでくるかわからないし、とうてい備えても備えにならないレベルの人間なのでいつもドキドキですが、間違いなく数年前よりは格段に情報があるし(しかも動画教材まであるわけで)だからまだ多少は追いつけるはず、と心を落ち着かせていられます^^;

いちエンジニア同士のようなコメントでしたのでとてもうれしく思いました。
ありがとうございます^^

2

素晴らしい経験ですね!

仕事しながら学べるというのがこの業界の醍醐味なので楽しんで困難な場面をどんどん乗り切って強くなってください

1

@standard-software
はい、自分にとって自分流の学習方法やツール活用も含めて、重要な経験ができたと思っています。
入社時に比べたら断然知らないからヤバいと慌てることは減ったと思います^^

探せばもっとある、というのが面白い業界で飽きそうにないくらいの学びが待っているのはいいですよね!
コメントありがとうございます!

1

現在おじいちゃんな自分ですが、30以上前からMS OfficeのPGMから始まりBasicとCへ、その後ASPやPHPでWeb系も少し触り製造業ですが社内でいろいろ作っては楽しんでいました。ある日突然って感じわかります!うまく行かない時は悩む、そういつでも悩むんです、そうすると天啓と言いますかパッとなにかが来るんです。そして最後動いた時の喜びっていったら代えがたい嬉しさです。これからも頑張ってください。

1
(編集済み)

@chakiw5
先輩からの応援、大変嬉しいです! ありがとうございます。

これは悩みというより無力感と言ったほうがいいかもしれませんが、経験が乏しい今はちょっと慣れていないエリアに触れるとまたもコードが呪文のようななにかに見えて「これはしばらく悩みそうだなあ」という感覚が頻発します。
ただ幸い、仰るように天啓のような経験ができたのは大きくて「いつかこれもわかるんじゃないかなあ」と思えるようになったのと、意図通りに動いたときを迎えられるはずというゴール地点があると分かっていると、なんとなく当初よりは程よく向き合えるようになれたかなと思っています。

色々作っては楽しんでいました

それ、僕の理想です。
あれも作れそうだこれも今なら行けるかもとなっていくために、ゆっくりでも技術・経験・発見を蓄えて行きます^^

0
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Microsoft Buildで発表された技術情報に関する記事を投稿しよう!
~
エンジニアによるマネジメント - エンジニアだからこそ発信できるマネジメントの知識を発信しよう
~