私がプログラミングの勉強をするときの手順とか使うサービスとか


はじめに

この記事では私がプログラミングの勉強をするときに使う(使った)サービスや手順を紹介します。
といってもそんな特別なことは書かないと思うのでどっかの誰かの参考になれば程度で読んでください。
前提としてなにか技術を身につける上でなにかをインプットする→アウトプットするということの繰り返しになると思います。
ここではその最初のインプットするのに使ってるサービス

インプット時期1

ドットインストール

https://dotinstall.com/
動画で環境構築からプログラミングまで紹介してくれるサイト
いまは有料、無料問わず動画で技術紹介してくれるサイト、サービスっていうのはたくさんあるけどかなり昔からある印象
自分のPCに環境構築から初めてプログラミングの勉強までできると思う。
確か課金したりすると追加でサービスを受けられるけど課金はしてないです。

学びたい言語の~入門的なサイト

これはすべての言語とかを網羅したサイトはないと思うので各自ググってくださいって感じ
俺は「~を勉強するのにおすすめのサイト」とかを紹介しているサイトなどを使って、その中でいくつも紹介されてるのをピックアップして2~3個ブクマしてます。
動画と違ってこの手のサイトを最初から最後まで読むとつかれるので←
辞書的な使い方をするべきですかね。
たださらーと読んでおくといいかもしれません。
あとこのサイトは一通りコーディングできるようになるといらなくなるのでそしたらブクマから削除します。
※なので過去使ったサイトとか覚えてなくて紹介できない

アウトプット時期1

progate

https://prog-8.com/mypage
かなり初歩的な内容から丁寧に解説しながらプログラムの勉強ができるサイト
いいところは
・無料でも利用できる(有料分も安価)
・プラウザ上で実行できるためローカルに開発環境を作成できる
・WEBサービスを作るのに必要なHTML、CSS、JavaSclipt、PHP、SQLとかとかは一通り揃ってる
悪いところは
・そこまでレベルは高くない
 このサイトを最大限利用してもだいたい入門書とか入社研修を終えたレベルくらいかなと
・対象になってる言語は多くない
 例えば私は仕事でC#使うことになって調べたけどなかった
書いてておもったけどこれはインプットかもね。
一応学習みたいなのがあってそれが上がっていくのが楽しいし、ある種の成果として残るのでアウトプットに分類

paizaラーニング

https://paiza.jp/challenges
プログラミングの問題を出してくれるサイト
特に俺はなにか作ろうってなってもそもそも何を作ればいいの?ってなってしまうので作るものを提示してくれるのはとてもありがたい。
これもプラウザ上で実行できるので自前の環境を作る必要はないです。
ただコメントの記入ができなくてB以上のランクの問題を書く場合、コメントなしっていうのは実際良くないと思うので私はローカルの環境で作って終わったら流してます。
二度手間になるのでAの問題とかやってると時間オーバーします(笑)
でも仕事でやるときコメント一切書かないっていうのはないと思うので
paizaで高得点を取ることが目的ではないのでいいかな?って考えてます。

インプット時期2

大きく分けるとここでやることは2つ

アウトプットして不十分だと感じた情報を再度インプットし直す

例1)paizaとかで問題といたやつを数日置いて見直す
自分で書いたコードでも数日置けば他人が書いたようなもんです(笑)
もっと良い処理にできないか考える
処理時間が遅いとかで減点されてたらどうすればいいんだろうとか考える。
例2)参考書とかで読み飛ばしてた内容をなぜだか考え直す。
たとえば文字列連結でString型で連結しないでStringBufferでappendするのかとか

なにか作るのに必要な情報を調べる

この次になにかアプリケーションを作ります。
そこで必要な情報を調べます。
上記で開発環境を作ってなかったらどうすればいいか調べます。
そのほかせっかくなら画面、DBもほしいなってなるのでそこらへんの環境構築方法も調べます。

アウトプット時期2

アプリケーションをなんか作ります。
以上!!!!

というわけにはいかないので私が作るときに考えてること
私は今までサーバーサイドの言語Java、PHP、Python、C#とかをお勉強したので画面とかはおまけ程度で考えています。
ここらへんでなんか苦戦してメンドクセってなったら本末転倒なので
あと作るものはよくあるものを作ります。
なんかID、パスワード入力してログインして情報入力したら登録できたり、検索できたり、削除したりできる感じのやつ。
昔々PHPの勉強したときはXAMPPって言うのを使いました。
これはWindows環境でLAMPP環境に必要なものがセットになってるんだっけな?(アパッチとかMySQLとか)
転職活動をしていて求人にPHPって文字が多くてPHPでなにか作ろうと思ったときはVagrantを使ってCentOSの仮想環境を作り、そこにいろいろインストールしました。
機械学習(Python)をしようと思ったときはPyCharm、TensorFlowを最初に選びましたがマシンスペックが足りてない感じがしています(汗)
慣れて来ると新しい環境を作ること自体が楽しくなってきます。
最近はVSCodeにいろんな言語実行できるようにしてます。

まとめ

インプット、アウトプット1でやってることとかはある程度1つ言語できるようになると必要なくなります。
エンジニア界隈には~位できないとだめみたいな考えの方も多いですが個人的には楽しくやることが大切だと思っています。
仕事で必要になったわけではないのならやりたくなくなったらやめてもいいともいますね!
ただ途中で意図せず挫折してしまわないために短期的な目標設定をして一つ一つクリアしていくことが大切です。
上記で紹介した無料かつ動画などを使ってわかりやすいサービスっていろいろ増えて勉強しやすい環境になっています。
他にもなにかいいのがあったら教えてください。
会社の後輩に教えたりしたいなって思います。