orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

プログラミングを学ぶにはまず何から始めたらいいか

f:id:orangeitems:20210620000019j:plain

 

実は今日、「プログラミングを学ぶには何をしたらいいか?」と質問された。

それをインフラエンジニアに聞くか、とも思ったけど、相手はIT業界で働いている人はみんなプログラミングができると思っているので、細かいことは言わず考えてあげた。

まあプログラミングと言ったって、基本的なロジックはどの言語でも共通で、文法だけの問題だ。それより、実際はそのプログラミングで用意されているライブラリやAPIの呼び出し方、そしてフレームワークなどの使い方の方が本題だ。あとは開発環境に慣れれば、次は「何を作りたいか」になる。

何を作りたいかばかりが先行すると、自分が目標地点にたどり着けない無力感が襲ってくる。まずは基礎を付けることが必要だ。しかし、基礎といっても言語はたくさんあり、流行りすたりもあるので、今はPythonかな~なんて選んでも、後々どうなるかはわからない。まあ言語は1つにこだわらず何個か試してみてもいいとは思う。

いや、あんまり回り道はしたくないんだ、最短距離が良いな。そんなリクエストもあると思う。その時は、私は本屋に行くことをお勧めする。

最近は、たくさんの入門書が売り出されている。うらやましい限りだ。私が新人だった2000年前ぐらいはなかなか本も少なく、資料も英語のものが多く格闘したものだった。当時は英語ができないと(少なくとも読めないと)仕様がわからないなんてことも言われた。今は機械翻訳が進化して、本当にいい時代になった。

そこで、どんな本がいいかだが、私がいつも言っているのはこういうこと。

「絵がいっぱいついていて、字が大きくて読みやすくて、数日で全部読み通せそうな本をたくさん読むこと」

参考書には、やたら小さい字で難しいことがびっしり書かれている本もあるけれど、わからないものをよんでわからない気持ちになるのは、つらい。そしたら勉強なんて続かない。わかる、わかる、を積み重ねた方が絶対に効率がいい。

入門書は、とにかく自分に取って読みやすいこと。読むことがストレスとならないこと。楽しく読めて、できれば「知っていくとこんなことができるようになる」ということを語ってくれてるとなおモチベーションが上がる。

ちなみに、本屋に行くのもかったるいし何冊も買うとお金がかかる、という現実的な悩みの場合は、Kindle Unlimitedをお勧めしたい。いわゆる読み放題サブスクリプションである。プログラミング関連の参考書がたくさん含まれている。自分自身が入門書レベルで脱落するかどうかは、参考書をチラ見して考えてみればいい。

まあただ、本での自習は、オンラインスクールに行ったり学校に行くよりは全然安く済む。結局は誰かに勉強の方法をリードしてもらうか、自分で自分をリードできるかの差だ。先生について指導してもらえれば楽ではあるのだが、世の中こんなにいい本がたくさんあるのに、なぜ大金を支払ってスクールなどに行くのかは私には理解できない。それより本を買ったりパソコンを買うなど、環境にお金をかけた方がいいのでは?とも思う。

プログラミングに思うのが、最近は何か作りたい、と思うネタはだいたい先人がいて、もう作ってしまっているということ。それよりその成果物を組み合わせてシステマティックにつないでしまえば、やりたいことのほとんどはできてしまうということ。

もしくは、PaaSなど、ノーコード・ローコードでアプリケーションを作れるところまで世界が進化していること。一からコードを書いてやることなんてあるのか、というところで実は私は手が止まってしまい、それより機械いじりしていた方が楽しいやと言うことでインフラエンジニアになってしまった感が強い。

プログラミングの基礎は、物事を考えるときにとても有益だ。コードを書かなくたって、実際は頭の中でプログラミングしていることを感じることができる。ただ、じゃあ実際のプログラム言語で何を作るんだい?というときに、職業としてプログラマーを目指すのでは無しに、何を作るか。それは私にはわからないけれど、それを生み出せるのは一つの才能だなと思う。作る技術と、作りたい欲求は、また別ものだと思う。私がインフラエンジニアだからこそ、開発エンジニアの人たちにそういう感想を持っているのかもしれないけれど。