今回は、初心者のプログラミングの始め方についての記事を書こうと思います。
この記事の対象は、バリバリプログラムを得意とする方向けではありません。
ではどのような人向きかと言うと・・・
・プログラムに何度も挫折した方
・でも、プログラミングを実施してみたいと考えている方
・どのようなことから始めてみるのが良いかわからない方
・何となくプログラミングを始めてみたい方
そんな方達向けの記事です。
自分と似たような境遇の方であれば、プログラミングに対してのとっかかりを得れると思い、ヒントになれば良いなと思った次第です。
もくじ
プログラミングをできるようになりたい
自分は言ってしまうと、バリバリのプログラマーではありません。
と言うか、どちらかと言うと、プログラミングは苦手です。
でも、嫌いでは無いんです。。。自分で自由に取り組んで良いプログラムであれば・・・好きな領域なのかもしれません。
仕事のように、期日に追われながら嫌々やるのは嫌ですけど、自分のペースで試行錯誤しながらやっていくことは好きなんです。
じゃあ、どんなところでプログラムを利用しているかと言うと、下記のような場面です。
①自分の興味のある分野1(AI、データ分析)
・コレは流行りではありますが、自分のスキルを伸ばす意味でも軽めに実施しています。
・プログラム言語:python
こちらは、もし軽い気持ちでプログラミングに興味があり、今後プログラムを学習したいと思う人がいるなら、正直、私は一番おすすめな言語だと思っています。
簡単に作業環境整えられるし、便利なライブラリを利用して、既に作られた機能を使えてしまうし、情報量も多いので、割と情報収集が行いやすいです。
ある程度、やるべきことを想定して、出来上がっているライブラリを利用しながら、それらしいものを出力できてしまうと言う、初心者にはとっかかりが良いです。
慣れる意味では全然OKです。
Jupyter Notebook
主要ライブラリ:Pip、Numpy、Scipy、Pandas、Matplotlib、Seaborn
こんなに便利なモノが用意されています。
モノによっては、出力がイマイチと感じますが、でもいきなり備わっているなんて便利極まりないですね。
②自分の興味のある分野2(WEB・AP・DB、ブログなど含め)
・ここも自分の好きな分野で、少し触れる事があります。
・プログラム言語:php、JavaScript
WordPressでもそうですが、ブログ開始初期は、テーマも自分で作成して、phpファイルもそれぞれ作成したものを利用していました。
本当に、ホームページの延長のような感覚で始めたんですよね。w
でも、ブログ自体がメインなのに更新ができなく、違うところに時間をかけてしまうので、用意されていたテーマに変更しました。
最初は、無料テーマの「Cocoon」を選択し、結構細かい設定もできてお気に入りのテーマでしたが、記事数が多くなる前に、もっと簡単に管理できる有料テーマへ変更した方が良いと思い、結構早い段階で有料テーマにしました。
因みに有料テーマは、「Affinger」にしました。
自分用のWEB画面、デザインを凝る人がいるように、裏で動く処理などにも凝る人はいると思います。
その自己満足で満たされれば良いですが、ブログなど始めた人はきっと違う目的があるはず。
自分は、やり始めると、どっぷりお金にならない趣味に没頭してしまうので、今はテーマの中で動くようにしました。
③少し頑張って業務効率化(ExcelVBAなど)
・Excelなどで、毎回同じような事をする時に、VBAなどで処理できることを考える。
何だかんだ、プログラマーではない自分が、一番仕事にも使えるプログラミングでした。
自分のような、軽めの趣味プログラミングでは、実際やるとしても仕事ではこのような感じです。
でも、それで良いと思っている。
昔、VisualBasicやASPを使ったアプリ開発を一時期やっていた経験もあるので、まとまった本が1冊辞書のようにあれば、チマチマ何とかなるかなと言った感じです。
とまあ、上記3つほど挙げましたが、プログラムを利用したりすることはありますが、御覧の通り、基本的には、ほとんど自己満足の世界で、趣味だか遊びの延長です。
素人がプログラミングを始めたいと思う時に必要な事
とっかかりは、こんな感じで良いと思いますが、この中で何気に大事な事は、「何をしたいか?」
これが明確になっていない人は、きっと挫折します。
理想だけが先行して、現実とのギャップが出てしまう人も挫折します。
C言語を学びたい、Javaを学びたい。
そう思うのは良いですが、それを使って何を作りたいのかがわかっていないときつくなります。
むしろ、作りたいものがあって、それを作る為には、一番向いている言語はJavaかなと、決まっていくと思うので、何はともあれ「完成体」をイメージすることです。
何気にプログラムを始める前に、必ず考えて欲しい部分です。
まず、何をしたいか?何を作りたいのか?何を実現したいのか?
これをイメージすることは本当に大事だと思っています。
一番いいのが、答えが既にあるものに興味を向け、1つ1つ、理解していくのが一番良いと思います。
例えば、完成済のチャットボットのコードがあって、目的もチャットボットを作成してみたい。と言うところから始めること。
これは勉強になります。
しかも市販で売っているものであれば、それなりに綺麗にコードも書かれています。
それが理解できたら、ちょっと自分のオリジナル要素を足してみる。変更してみる。
そしたら、次に、また作りたい物を思い浮かべる。
頭に、何となく、こんな処理を繋げていけばできるだろうと言うのが描けてくれば、最初は御の字だと思います。
その訓練をどれだけしたかで、自分の頭の中で、プログラムが描けてくると思います。
プログラミング初めのとっかかりお薦め本
で、個人的にですが、初期のプログラムを実施する上で、本当にわかりやすく基本を身につけていけるか、下記の本が非常に参考になりました。
Python
素人の方がプログラムを始めたいというならば、この2冊は特にお薦めですかね。
本当に親切でわかりやすいですよ。
(個人的に、何か新しい事を始める時は、みんな1年生。そのネーミングも気に入りました。)
・Python1年生
・Python2年生
上の2冊で学んだら、下記がその延長でわかりやすかったです。
・データサイエンティスト育成講座
下記は、参考の為に合わせて紹介しておきます。
個人的に役にたったと思われる本です。
WordPress&php
更に、Wordpress をベースとしたブログなどで、phpの勉強も兼ねたい方は、こちらの本もお薦めです。
WordPressの大体の大まかな作りも理解でき、やりたい事、関数などの理解にもつながりました。
WordPressのファイル構成はこうできているよと言うのが大体理解できます。
自分は、初期の頃、この本を読んで、独自のテーマ作成で始めてました。
構成などを勉強するには良い本ですが、本来のブログ更新が遠のいてしまうので、あくまでphpやWordpressの構成を勉強するにとどめた方がよいような気がします。w
・Wordpress仕事の現場でサッと使える!デザイン教科書
WordPress仕事の現場でサッと使える!デザイン教科書 WordPress5.x対応版 改訂版/技術評論社/中島真洋
HTML+CSS3
WEB系でおそらく一番凝りたく、そして難しいのは、CSSなのかな~。
綺麗なサイトは憧れちゃいますよね。
CSSでは、ちょっと自分で作成してみたいならば、辞書代わりにこの本が良かったです。
・HTML5&CSS3デザインレシピ集
HTML5&CSS3デザインレシピ集 /技術評論社/狩野祐東
まとめ
学生時代に大してプログラムに触れて来なかった私のような大人が、どのように接していけば良いかと言うものを記載してきました。
何度もプログラミングを挫折した自分の経験上、結局何が大事かと言うと、「何をしたいのか?」「何を作りたいのか?」です。
何となくプログラミングをしたいと言うだけだと、おそらく挫折します。
C言語がかっこいいから?Javaが流行っているから?
ある程度、プログラムの何たるかを理解していないと、後からいろいろ出てくるので重たくなっちゃいます。
プログラムで何を実現したいのか?
それを実現するには、
どんなプラットフォームで、
どんなプログラム言語で、
どんな参考サイト(参考書)で、
と言うのがわかってくると思います。
答え付きの作りたい物がいくつかできてくると、それから、次にこんなこともできるんじゃね?と言う事につながってきます。
それを試したら、できた。
すると、また、新たにこんなのできちゃうんじゃね?
できた。
こんな感じで、ステップアップしていく感じでいいと思ってます。
もちろん、コードを書く事を本職としている人は、次元が違います。
自分が本当にプログラミングを得意とする人は何名か見てきましたが、本当に好きでプログラムをやっていて、常にプログラムを頭の中で考えている人がほとんどでした。
プログラム脳と言うか、論理的に上から下へと綺麗に処理するんですよね。
もう癖になっていると言うか。
自分もまだまだですが、好きでやっていて、好きな領域に対してやっています。
自分なりに少しずつコードが書けるようになってきたので、その考え方とお薦めを紹介してみました。
ついでに
因みに、小学生はこれから、プログラミングは必須科目になっていきます。
うちにも、小学6年生と小学1年生の娘がいますが、既にプログラミングの学習が実際始まっています。
私も、少し話をしましたが、プログラミングに対しての「考え方」をしっかり身につけています。
次回、娘たちが実際にどのようにプログラミングを学習しているのか、記事にしていきたいと思います。
小学生の頃からプログラミングをする世代なので、我々の頃とは全然違いますよね。
どのように子供たちがプログラミングに触れているのか、学校だけでなく、私もある程度プログラミングをする身なので、子供たちに試させたものを紹介していきます。
私の単なる趣味のなんちゃってプログラミングより、本格的なプログラミングを実施していくことだろうと思います。