文系卒のWebエンジニアの成長と備忘録
エンジニア経験を生かして発信するメディアサイト

プログラミング初心者は何を作る?

プログラマー 初心者

こんにちはYsです。
今日はプログラミング未経験の僕がこの4,5ヶ月の中で作ったものを参考に、作ったもののアイデアはどこから?何を参考にした?といったことを書いていきます。

プログラムの勉強がある程度終了し、これから自分で何を作ればいいか悩んでいる人に参考になれば嬉しいです。

関連記事≫ ysのプロフィール | 作ったものリスト

スポンサードサーチ



プログラムを作る上で何を参考にしたのか

プログラミング学習:有料編

プログラミング 有料

ドットインストールを参考にする

まず初心者であるのであれば、ドットインストールを参考にするといいです。

と言うのもドットインストールの教材は割と簡単な作品が多いので1日で簡単なWebサイトだったりアプリケーションを作成することができます。

特にJavascriptや、PHPに至っては公開しているレッスン数が大量にあります。
その数はJavascriptで16レッスン、PHPで9レッスンあります。(2019年3月10日現在)

Javascirptのレッスンでは珍しく、jQueryというライブラリを使用しない書き方で書かれている教材が多いです。

近年、Web業界では「jQueryはもう古い」という考えがありつつあります。
そのためかフロントエンドのエンジニアやデザイナーの求人においては「jQueryを使用しないでJavascriptを書ける人」といった求人も少なくありません。

そのため、通常のJavascriptで書かれたプログラムを大量に触れるのは貴重なのでやっておいた方いいです。

ちょっと話がずれましたが、Javascriptのみを使用したWebアプリケーションだけでこのレッスン数なので何かしら参考にする分には十分だと思います。

PHPにおいては、簡単な掲示板やWebアプリケーションが作成することができます。
基本的なものから、ちょっとした遊び心からのBotの作成の仕方までのレッスンがあります。

ここから自分なりに改良して、本格的なサービスとしても良いし、遊びながら作成することが出来ると思います。

Udemyを参考にする


こちらもオンラインサービスですが、Udemyはテーマ別の教材を購入して行うことができます。

本格的なPythonを使用した人工知能の作成方法などの応用編から、
Web系の基礎的な部分まで幅広い講座があります。

ドットインストールとの違いはUdemyは特化型で、知識を深く掘り下げたいという人向け。
そして、動画をダウンロードして電車の中とかでも効率よく勉強したい人向け。

作るもののアイディアを得るだけではなく、知識を掘り下げることが出来るので
「Webに特化したものを作成したい」「モバイルアプリを作りたい」という作りながらアイディアを得たいという人とかには向いていると思います。

Udemyのおすすめ講座

有料noteを見る、買う

これは僕が主に参考にしていたものです。
≫ Daiさんの技術チュートリアル

すごいエンジニアの方々が自分の作成したプログラムをnoteに公開して解説をしてくれています。

作っているものも手軽なものから、ゴリゴリのものまであるので自分の力量に合わせてやることができます。

Qiitaとの違いは、noteは大抵質問をすれば帰って来ることがあるので安心かつ、TwitterなどのSNSを通して購入者だと返信してくれることが多いです。(人にもよりますが)

また、有料で売っている商品なので、読みやすさが段違いです。
Qiitaはメモ書き程度が多かったりするので読みにくい記事が結構あります。

僕のスクレイピング技術を使用したプログラムのアイデアや最初の知識はDaiさん(@never_be_a_pm)が元になっています。

購入者に関しては、Daiさんに質問を投げれば教えてくれます。
Pythonを手軽に勉強してみたいという方は購入必須です。

プログラミング学習:無料編

プログラミング 無料

Qiitaで検索する

Qiitaは言わずと知れたエンジニアのSNSみたいなものですね。

そんなサイトで例えば、検索ワードに「作ってみた」で検索するとどうなるのか。

qiita 作ってみた

エンジニアの人達が作成した作品が大量に出てきます。この結果だけで68113件あります。自分ができる言語だけで調べても大分量が多いと思います。

特には、完全に動くシステムが無料で公開されていることがあります。(無料でいいの?って疑うレベル)

アイデア探しだけなら、この中にきっとあるはず。
この中で自分が作りたいもの近しいものを見つけて、作っている言語が自分が使えるものと違うなら、自分が使える言語で書き換えて作ってしまうのもありだと思います。

結構僕も参考にさせていただいているものもあります。

Githubで検索する

Github search

これはQiitaと同じく、Githubにおいて公開されている作品の中から検索することができます。
赤枠の部分に何となく作りたいと思う機能を入れれば、それに近しい作品が出てくると思います。

Githubからの検索において最大のメリットは大抵のものは作品をそのままgit clone(ダウンロードのようなもの)すれば動くこと。

Qiitaはメモ感覚で記事を残している人が結構いるので、コーディング全てを載せていない人も少なくないです。
その点、Githubでは自分のPCで作成したものをそのまま載せてくれているのでgit cloneすれば大抵のものは動きます。

ただのアイディアを得たいという人はQiitaで問題ないと思いますが、
欲しい機能のコーディン自体が思い浮かばないという人にはGithubの検索はオススメです。

自分が欲しいと思う機能を考える

・何か不便だなー。
・こういうものが欲しいな。
・こういったことがうやりたい!

といったことを考えてみましょう!
技術的にできるのかどうかは、自分の力量と相談する必要がありますが、
簡単に出来るものであるであれば、即行動に移して作成した方がいいです。アプローチは例えば以下のような感じで

アプローチ例

  1. SEO分析をしてみたい!
  2. SEO要素と言われるもの(h1,title,description)をどうやって取得するんだ?
  3. どの言語なら出来るか?(自分が書ける言語で出来るのか

僕が最近自分が欲しくて作ったものは、
「Pythonとslackを使用した映画情報Bot」「Gulp4を使用したブラウザ自動更新」などがあります。

関連記事≫ysのプロフィール | 作ったものリスト

最近の自分の中では以下のような感じで行いました。

映画の情報がすぐに簡単に欲しい
 →映画情報botを作ろう
ブラウザのリロード面倒くさいなー
 →自動化しよう

上記のような感じで自分が既に「負」と感じているものが必ずあるはず。
その中で自分の技術的に作成できそうなものを、QiitaやGithubを通して近しいものを見つけて写経する
ないしは、改造して自分だけのオリジナルにしてしまうという感でもいいと思います。
(改造の場合は、製作者に公開してもいいか尋ねた方がいいです)

番外編(それでも何を作ればいいか分からない人向け)

プログラミング 番外編

上記を見て、それでも自分の作成したものが見つからないと言う人は以下の開発をする事がオススメです。

  1. 掲示板機能を作成する
  2. 会員登録機能を作成する
  3. APIを用いたサイト、アプリを作成する

これにはプログラミングにおける重要な要素が詰まっているため非常に合理的に知識を付けながら開発を行う事が出来ます。プログラミングスクールなどでも、似たような機能を作成する事がカリキュラムで組み込まれているのでこの勉強法は間違いではないと思います。

プログラミングスクールのカリキュラムなどは以下の記事で紹介しています。
人気記事≫ プログラミングスクールや情報商材の値段やカリキュラムを判断【プログラミング経験者観点から見る】

掲示板機能を作成する

掲示板機能においてはプログラミングの技術で重量なCRUDと言われる仕様が必須になります。

Create 作成 記事やコメントの作成
Read 読み込み 記事やコメントの読み込み・表示
Update 更新 記事やコメントの更新
Delete 削除 記事やコメントの削除

掲示板としての仕様を満たすデータの挿入、表示、更新、削除といった機能を全て作成する必要があるのでCRUDの仕様は必須になります。どのWebサイトやアプリでもこの仕様を把握しないことには作成できません。

プログラミングをまだ始めたばかりの方は、まず基盤となる知識を吸収しつつ開発を行うとサイトの仕組みが分かるので、実際に会社で実務を行う際にも非常に役立ちます。

TwitterのようなサイトでOK

見た目などは各々のセンスですが、機能としてはTwitterのほぼ丸パクリでいいと思います。

記事のお気に入りなどが作れると尚良いと思います。お気に入り機能のおいては、DBにおける別テーブルを参照する実装が必要になるためよりサーバーサイドの知識も同時に身につきます。

会員登録機能を作成する

会員登録機能も勿論、CRUDの機能が必要になりますが、それ以上にセキュリティ面の技術が必要なります。

例えば、パスワードをデータベースに登録を行う際に、パスワードを平文(そのまま)登録する仕組みだったと仮定します。もし、第3者にデータベースを覗き見られた場合はどうなるのか。

会員登録しているユーザーの情報が丸々盗み取られてしまいますよね。もし、クレジット機能を用いているサイトであれば余計に大変です。勝手にログインされ買い物をされたりする危険性があります。

そのためには、データベースの情報を暗号化するセキュリティの技術や、攻撃者から身を守るためのプログラムを書く必要があるので重要なのです。

初心者の方はこの事を理解しつつ、実装する事でプログラムの事だけではなく、セキュリティ面の技術面も並行して知識を吸収できます。この会員登録機能は上記の掲示板機能と組み合わせて作成しても勉強の効果があるのでオススメです。

会員登録機能で他と差をつける

基本的な会員登録機能と差を付けるためにはOAuth認証でログイン機能を作成するのがオススメです。

✅OAuth認証とは

OAuth(オーオース)とは、SNSやWebサービス間で「アクセス権限の認可」を行うためのプロトコルのことであり、現在では2012年に発行されたOAuth 2.0が標準化されています。

簡単に言ってしまえば、Googleアカウントや Facebookアカウントでログインが出来るようになる機能のことです。最近のWebサービスだと会員登録の手間を省くためにかなり取り入れられています。

認証周りのセキュリティと、自分のサービスの連携があるので実装の難易度が若干上がりますが、オススメです。

APIを用いたサイト、アプリを作成する

他の人と差をつけたいという人は、APIを使ってみたサイトを作ることをオススメします。自作のサイトでやれる事は限界がありますが、APIを使うだけでサービスの可能性が上がります。

✅APIとは

アプリケーションプログラミングインタフェースとは、広義の意味ではソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。引用:Wikipedia

これだけ読んでもよく分かりませんね。最初はサービスを便利に出来るものと思うだけで良いと思います。

APIには外部のサーバーに問い合わせて、データを受信する仕組みが必要になります。APIによっては認証キーが必要です。この実装自体を自分のサイトで作ろうとするだけでも難しいのでオススメです。

無料で使えるAPI一覧

実は世の中には、無料で使用できるAPIが沢山あります。中には会員登録が必要がないものすらあります。是非一度覗いてみると自分が作成したいサービスに近いAPIがあるかもしれません。

以下のものは僕が作ったものですが、これも無料のAPIを使っています。都道府県、市区郡、町村のリストを自動で作成してくれるAPIです。

これを0から作成するとコストが異常にかかりますがAPIを使えばフロント画面だけ作成して、少しJSを編集するだけで作れます。


まとめ

アイデアなんか思いつかない!といった方が何かこの中からアイデアが生まれるきっかけになれば嬉しいです。

スポンサードサーチ



\記事のシェアをお願いします!/