TechFULの中の人

triple-four’s blog

作りたいものをどのように作成するのか

初めまして!TechFULで問題作成のアルバイトをしているhum_opです。

この記事では、私なりに考えた「作りたいものをどのように作成するのか」を紹介したいと思います。


はじめに

まず、ganariyaさんが書いた「プログラミングを好きになるには?」の記事には、「アプリケーションを一つ完成させて発信する」というものがあります。

triple-four.hatenablog.com

この方針には、とても共感できます。アプリケーションを実際に作るうえで、プログラミングの能力が向上し、また基礎的なことも含め知らなかったことを知ることができます。何より、自分が欲しいと思ったものを作っていく過程は、ただプログラミングの勉強をしているより楽しいものです。

しかしながら、プログラミングを初めてすぐの初心者の時は、「アプリケーションを作成する」というのは、ハードルが高いものです。

アプリケーションを作成するハードルの高さ

まずは、何がハードルを高くしているのかを列挙してみます。

  • 何かを作りたいが、作りたものは特にない
  • 作りたいものはあるが、自分が使える言語では向いていない
  • 実装の方法が分からない

ハードルを乗り越える

それでは、先ほど挙げったハードルを乗り越えていきましょう。

既存のアプリケーションを参考にする

これは、1番目の「何かを作りたいが、作りたいものは特にない」のハードルを乗り越える方法です。
例えば、SNSやブログシステム、家計簿アプリ、ゲームなど、参考にするものはたくさんあります。 その中で興味のあるものや、実際に自分で使用したいと思えるものを作成するとモチベーションも続きやすいと思います。

まずはコアな部分を得意な言語で作成する

これは、2番目の「作りたいものはあるが、自分が使える言語では向いていない」のハードルを乗り越える方法です。 Webアプリケーションを作りたいのに、C言語しか使えない場合、別の言語の勉強をしないといけないと足踏みしてしまうと思います。(実際にはC言語で作ることはできるが一般的にはPHPRubyを使う場合が多い) しかし、コアな部分のコードはどの言語で書いても同じようになる場合が多いと思います。

例えば、TODOアプリの場合、TODOを保存する処理があると思います。 データを保存する場合、テキストファイルとして出力する方法、データベースを使用する方法などがあります。今回はテキストファイルに出力する例を示してみます。

C言語

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int save_todo(char *todo, char *filename){
  FILE *fp;

  fp = fopen(filename, "w");
  if(fp == NULL) return 1; // 異常終了
  fwrite(todo, sizeof(char), strlen(todo), fp);  // ファイル書き込み
  fclose(fp);
  return 0; // 正常終了
}

PHP

<?php
function save_todo($todo, $filename){
  $fp = fopen($filename, "w");

  if($fp == NULL) return 1;  // 異常終了
  fwrite($fp, $todo);  // ファイル書き込み
  fclose($fp);
  return 0;  // 正常終了
}
?>

このように、関数の引数などに少し違いはありますが、処理の流れは同じです。

自分が使用している言語であれば、知らない言語で作成するよりは、作成するハードルは下がると思います。そして、作りたいアプリケーションに向いている言語で書き換えていく、とすると挫折することなく作成することができると思います。

先人のコードを参考にする

これは、3つ目の「実装の方法が分からない」のハードルを乗り越える方法です。 初心者の中には、「他人のコードを見ることは悪」(すごく極論な言い方)のように考える人が多いように感じます。もちろん、自分で考えて実装できるのは素晴らしいことです。 しかし、考えても実装の方法が分からない場合は、ネットで調べ、先人のコードや考え方を参考にするのが良いと思います。他人のコードを読むことは立派な勉強の1つです。

作りたいものをどのように作成するのか

ここまで、つらつらと書いてきましたが、つまりは「なにがなんでも作成する」のです。身の回りには、たくさんの例があり、その作り方も紹介されている場合が多いです。

さいごに

モノづくりというものは、それを作成できているときが一番楽しいものです。何かを作れていないとき、作りたいのに作り方が分からないとき、それはつらい時期です。そのつらい時期を乗り越え「楽しい」「プログラミングを始めてよかった」と思え時が来ることを願っています。

この記事を通して、ハードルを乗り越え、プログラミングやアプリを作るのが楽しいと思っていただけると幸いです。 ここまで読んでいただきありがとうございました。