プログラマになった話とおすすめの書籍を紹介する

公開:2021/01/12
更新:2021/01/12
8 min読了の目安(約7900字IDEAアイデア記事

最近TwitterやQiitaなどのプログラマ・エンジニアが集まる場で、プログラミングスクールやそこへ通っているひと、はたまた絶賛プログラミングを学習中の人やプログラミングを学びたいと思っているひとetc. とにかく初心者プログラマやその周りの環境への意見や話題がたくさん目に付きます。
前からあったのか・・・?

意見は人それぞれなので、自分はそうなのかーと思いながらは見ていたものの、中には過激な意見もたくさんあったので、初心者の人たちがどう見てるのかなーと気になってはいたりします。

※とても長いポエムです。めまいがしたらすぐにブラウザバックをお勧めします。

はじめに

この記事は、そんな初心者プログラマやその周りの環境へ意見するものではありません。

私自身が昨年から本格的なプログラミング学習を独学で始めて、フリーランスのプログラマとして定期的に案件がもらえるようになりました。
その経験から、私がプログラマになるまでのモチベーションの話と初心者におすすめしたい書籍などを、少しでも参考になればと思い投稿いたします。

プログラミング学習を0から始めるハードルは低いとは思っていないので、何から始めていいかわからない方や、スクールに通うことを考えている方、なんとなく始めたけどモチベーションが続かない方など、目を通してみてもらえたらと思います。

目線はあくまでフリーランスです。

プログラミングで 会社勤めをした経験は一切ありません ので、就職を目指している方には参考にならないかもしれません。
幸いなことに、Twitterやqiita、そしてこのzenn.devにも尊敬できるつよつよプログラマ・エンジニアたちがたくさん参考になる言葉を残しています。

主たる活動はwebサイト・webアプリの制作です。

webサイト制作以外のプログラマ・エンジニアを目指す方にはまったく参考になりません。おそらく。

ここでお話しする言語について

私は1年間、本当に勉強しかしてこなかったため(逆に言えば時間があったので)、今のメイン言語のTypescriptはもちろん、格好いいからという理由で学習したRuby on Railsや、実際に仕事でも使っているPHP、Pythonなど
どれから始めるかはその人によっても違うだろうし、それに対しておすすめしたいものもたくさんあるのですが。。。

色々な人のツイートを見てると、HTMLとCSSから始める方がたくさんいらっしゃって、Javascriptで消えていく方も同じくらいたくさんいらっしゃるようなので、一旦この3つに絞りました。

前置きというか序文というか

英語の読解力をつける

いきなりプログラミングに関係あるのかって話ですが、、、
web制作では、まったくの0からコードを書くことは稀です。 偉大な先人たちが残した数々の「ライブラリ」を使用して開発を行うことが多いです。
そして大事なのは、これらのライブラリの仕様を理解して欲しい機能を実装していくことなのですが、ライブラリはすべて日本人が作ったわけではありません。そしてその説明書が日本語で書かれているとは限りません。
今のブラウザには優秀な翻訳機能がついてますが、実際そのプログラムの名前も英語なわけで・・・

とはいえ、英語が苦手な方が1から勉強していたら、いつになっても本命のプログラミングを始められません。
ですので、英語を勉強するというより、資料が英語のものはなるべく英語のまま読む ことを心がけてみましょう。
苦手な方にとっては根気がいることですが、この業界で使われる英語は大体偏っています。
半年も続ければ雰囲気はつかめるようになってくるでしょう!

SNSを頻繁に見ない

これは飽くまで私の話。人によってモチベーションの保ち方は違うので、これは一概には言えません。
だから私の場合。ここに反論やご意見は不要です。

私は人よりも飲み込みが遅い上に気になりだすと一つ一つ調べてしまう性格のため、「なんとなく」が好きではありません。故に、学習速度についてはややコンプレックスを持っています。
ですので、プログラミングを始めるときに周りの方からはSNSで友達を増やした方がいい!と言われましたが、私は劣等感を覚えたり他のふわりとした精神論に飲まれてやるべきことを怠けてしまうのがとても嫌だったのでSNS断ちをしました。

一切ツイートしなかったTwitterを始めたのも、こうしてこの記事を書くのも、
プログラマとして仕事をもらうことが出来るようになったので、そろそろ誰かの意見や考えを見聞きしたいと思ったからです。

ここで言いたいのは、SNSを見て誰かの意見を見聞するのは良いことですし、私も先輩エンジニアたちの日々のツイートを楽しく拝見しておりますが、 学習したつもりになってしまうことだけは避けた方が良い と思っております。
勉強や学習は一朝一夕じゃないし、それは学生時代に嫌って程味わっているはず。それでも学習したつもりになって「やってる感」だけ出している人もたくさん見受けられます。
本気でやるなら、こういう人たちに引っ張られないようにした方が良い、とは思っています。

精神論ですが・・・

仕事を辞める必要なんてない

私は昔から背水の陣でようやくやる気を発揮できるタイプです。誰かが助けてくれると甘えちゃうし、後ろ盾があると縋っちゃうし、選択肢があったら言い訳して逃げちゃいます。前職は営業なのでそういうのは得意です。
こんな性格から、仕事をしながらコツコツ勉強して転職!なんて自分には無理だとわかっていました。ですので、本格的な勉強をするために退職をしました。

ですが、これは良い選択とは思いません。
挫折する可能性もあるのは全員に言えることで、人生に保険をかけることは悪いことではないのです。
仕事をしながら学習できるなら、それが一番良いに決まってます。私はそう思います。

HTMLとCSSの学習からはじめた話

前職のうちからProgateに入会し、空いた時間でポチポチ学習(おおよそ学習とは言えないレベル)していたのですが、そこではHTMLとCSS、Javascript、PHPを少しずつ手を付けていました。
ですが、これは性格故に細かい仕様というか、なぜ動くのかの説明が省かれてると気になって仕方ありませんでした。ですので、なんとなく理解していた部分をちゃんと使えるようにしようと思い、Progateを解約して1から始めました。

後ほど触れますが、もしも1からweb制作でHTMLを学ぶのであれば、むしろPHPと一緒に勉強することをお勧めします。

HTMLとCSS学習で参考になるおすすめのサイト・書籍

HTMLとCSSは、作るだけならとても簡単です。そしてなんといってもすぐに動いてすぐに確認できる。

ですが、HTML・CSSコーディングでの本当の闘いは ブラウザ対応 です。
HTMLやCSS(後述のJavascriptも)は、基本的にブラウザで表示するための言語です(少しニュアンスは異なりますが・・・)。

ですので、ブラウザのバージョンによって振る舞いが変わってくる可能性があります。とはいえ、最新のブラウザ(Google ChromeやSafariなど)ではほとんどは同じコードで動きます。
それよりも問題となるのは、 言語の更新が著しい = 古い書籍では現代のコーディングに対応できてない可能性がある ことです。

もちろんProgateやスクールで学習される方はここは問題にならないでしょうが、書籍を購入される場合は、その書籍の初版を確認することをおすすめします。


MDN - チュートリアル


世界的な非営利団体であるmozillaが運営するチュートリアルサイト。
HTMLとCSSのほとんどはここで勉強しました。
いろいろな書籍やサイトで抽象化されていますが、MDNではどのブラウザに対応しているかやそのコードの役割など、細かく解説されています。

こういうドキュメントは絵も少ないし、日本人向けのデザインでもない故に『読むのがつらい!』という気持ちはわかります。
ですが、今後プログラマになって付き合っていくであろう説明書やドキュメントのほとんどはこのような形式になっています。
そういったものに慣れる意味でも、MDNを学習に利用するのは極めて有効だと考えています。


HTML5/CSS3モダンコーディング


これは有名な本ですが、今のところまだ現代のコーディングに対応できています。
CSSではフレックスレイアウト、グリッドレイアウトまで対応しており、知っておいて損のない知識がたくさん書いてあります。
詳細まで比較的わかりやすく書いてあるため、上記のMDNチュートリアルを辞書替わりに、この本を進めていくのも良いと思います。

Javascriptにハマった話

私は現在、このJavascript(及びその拡張であるTypescript)でほとんどの開発を行っており、仕事のご依頼もほとんどこれでこなしています。
ここに至るまで様々な言語を勉強しましたが、最終的にはJavascriptの面倒くささや気分屋なところや泥臭さにドハマりして現在に至ります。
それくらい魅力的で奥が深くやりがいの多い言語だと思っています。

挫折してしまう人が多いと聞くけれど

界隈では、Javascriptで挫折する、という人をよく聞きます。
Javascriptでもどこで挫折するかは人によって異なると思います。

  • HTMLのような構造で見える言語ではない
  • ブラウザによって動く動かないがまちまちでわからなくなってしまった。

前者の場合は、JavascriptではなくPHPから始めることをお勧めします。
PHPは同じファイルの中にHTMLを記述することができ、それをブラウザへ出力して確認することも難しくありません。
そしてPHPはブラウザで動く言語ではないので、ブラウザに翻弄されません!
色々と意見はあるかと思いますが、何かの計算や処理をして、それをHTMLに反映する、といった流れを学びたいならPHPは効率的な言語です。

後者の場合は、選択する教材や学習環境に問題がありそうです。
また、Node.jsを勉強したり、以下に記述するMDNを参考にしてみると良いかもしれません。

jQueryについて

Javascriptを勉強しだすと界隈から囁かれだす「jQuery」という単語。
はっきり言います。彼はJavascriptではありません。Javascriptで作られたライブラリの一種です。
私は決してjQuery否定派ではありません。とても優れたライブラリであることも理解しています。
そしてとても分かりやすくて簡単!
ですが、これを初心者が学んでしまうと、

$('#hoge').html('fuga')

なぜ動くのか、そしてなんの処理をしているのか わからないままそれをJavascriptだと思ってしまうことはとても危険です。
jQeuryについては、もしくは「$」から始まるコードを見たら、
それはJavascriptをしっかり学習してから自分にとって必要であれば学ぶ、という姿勢で問題ないと思っています。

Javascript学習で参考になるおすすめのサイト・書籍

前述の通り、Javascriptは基本的にはブラウザで読み込み、動かす言語です。
さらに厄介なのが、Javascriptには多くのバージョンがあり、そのバージョンは今でも毎年更新され続けています。

Javascriptをしっかりと学んでいくと「Node.js」という、バージョンの違いを吸収したり自分の書いたJavascriptをテストしたりなどの便利な環境をそろえることが出来るようになります。
しかし、ここまでたどり着く前に挫折してしまわないよう、ここでも自分に合った書籍・環境をそろえて楽しく学習が進められることを願ってやみません。


MDN - チュートリアル


ここでもまずは、MDNです。
というか、MDNのドキュメントはJavascriptが特に優良で、共通の関数や構文などはほとんど網羅しています。
このチュートリアルを一通りやるだけでも、それなりに身に付くはずです。

ブレイクスルーJavascript

初心者にはすこし難しいかもしれません。
そして中に書いてある構文も少し古いです。
ですが、現在Javascript界隈を席巻しているSPA(シングルページアプリケーション)やReact、VueなどのモダンJavascriptの原点を学ぶことが出来る良書です。
Javascriptに慣れてきたら一度手にとってみることをお勧めします。


改訂新版JavaScript本格入門

現代構文にそこそこ対応した入門書です。親切に書かれていてボリュームもたっぷりなので、この書籍で多くのJavascriptでやりたいことを網羅できます。
ただ量が多めなので、人によっては「これをやるのか・・・」という気持ちになるかもしれません。

終わりに

あまりにも長くなりそうなので、どこかで区切らなきゃとは思っていました。
初心者におすすめしたいことは他にもたくさんあるのですが、この他の言語や参考にしているサイトなど、ご興味があればTwitterのDMなどでいつでもご連絡ください。
おすすめの書籍をご紹介します。
頑張れプログラマを目指す人たち!!