「プログラマーになるぞ!と勉強して、簡単なものは理解できるが、難しいものができる気がしない」
こんな悩みを抱えていませんか。
実は私も独学時、同じ悩みを抱えており、とてもエンジニアになれる気がしませんでした。
独学でプログラマーなれない理由、それは実際のプログラミングの流れと異なる方法で勉強しているからです。
まず作りたいアプリケーションや解決すべきお客様の答えがあって、それを解決するためにプログラミングする。
この流れでプログラミングをすることで、プログラマーに必要な力を養うことができます。
ITエンジニア歴10年以上、何十人も新人教育してきた観点から、おススメの方法をピックアップしていきます。
既に世の中にあるものを自分でも作ってみる
実際にアプリケーションを作ってみると非常に力がつきますし、勉強になります。
学習のお題と、それぞれ学べることを簡単にまとめました。
- ToDoリスト : 基本的なCRUD(Create, Read, Update, Delete)操作を学ぶのに最適
- ブログ: HTMLとCSS、JavaScript、そしてバックエンドの知識を一通り学ぶことが可能
- 天気予報アプリ : 公開されている便利なAPIとの連携方法を学べる
- 料理レシピ検索アプリ : データベース、検索機能、UI(ユーザーインターフェース)の設計を学べる
初心者の場合、難しく感じるかもしれませんが、全てを1から作る必要はないです。
既存のライブラリやフレームワークをうまく活用しながら、少しずつ機能を追加していきましょう。
とにかく、ネットで調べながら試行錯誤することで、開発力がかなりつきます。
私の場合、職場の先輩から、色々お題を頂いてとにかく作りました。
仕事の時間も使う許可を頂いたのですが、今思うとかなりありがたい環境ですね...
作っては、こうしたら?とか、ここがわかりづらいとアドバイスをたくさんいただきました。
特に印象に残っているのは勤務の記録をつけるプログラム。
日付、時刻の処理がかなり面倒だったことを今でも覚えています。
何とか仕上げて、実際に職場でも使っていました。(勤務表を提出すル必要がある職場でした)
お題があって、作って、フィードバックをもらう。
このサイクルを続ければめちゃくちゃ成長できます
フィードバックをもらう宛がない場合、自分が利用者目線であれこれ指摘するのも全然ありですよ。
自分が困っているものをプログラミングで解決できるか考える
日常で困っていることをプログラミングで解決できないか考えてみましょう。
不便に感じていること、繰り返し行っていること、自動化できそうなことなど...
例)
時間管理が難しい => リマインダーアプリ
今月いくら使ったっけ? =>家計簿アプリ
このサイトしょっちゅう見て、メモしてるなあ => Webスクレイピングツール
あくまで自分の課題を解決できればいいので、見た目や機能はほどほどでかまいません。
システムで課題を解決する思考力が鍛えられ、かなり実際の仕事に近い開発ができますよ。
実践的なプログラミングが学習できるツールを活用する
独学で実践的なプログラミング力をつけるにはどうすればいいか。
当然、色んな学習サイトでもこのような問題意識を持っています。
"実践的 プログラミング"のようなキーワードで色々調べてみるとよいです。
例えば、私がよくおすすめしているPyQの場合ですと、"実務でのPython"というコースがあります。
独学で学びづらい、既に存在するものを改善したり、設計、テストなどを学べます。
こういったツールを積極的に活用していくのも良いですね。
まとめ
基礎的な文法を身に着けたら、実際にアプリケーションを開発してみることで応用編としてよい学習になります。
未経験でここまでやっている人は少ないので、この記事に書いてあることを一つでも実践していたら、就職にめちゃくちゃ有利です。
この記事に書いてある内容を全て実践する必要はないですが、いくつか参考にしてみてください!