プログラミングを上達させるには?

未分類 - コメントは受け付けていません。 - Posted on 10月, 25 at 9:30 am

どうもこんにちは。
最近はだんだんと寒くなりました。
そのせいか、よく風邪をひいてしまいます。
毎週金曜日に風邪道場に入門して、土日は風邪を治すというのが最近のマイブーム(風邪も「流行る」だけに「ブーム」ですね…)です。
それがここずっと続いています。風邪をひくことがコーディングされているんですかね?
そのせいで飲み会でもお酒が飲めないこともありました。
まったくどこで風邪をもらってくるのやら。
もう少し健康に気をつかったほうがいいですね。

さて、プログラミングについてお話しましょうか。
プログラミングを上達させるにはどうしたらいいか、ということにフォーカスして論じたいと思います。
上達させるには、以下の4点を意識してください。
1.エラーをいっぱい出す
2.デバックのやり方を覚える
3.小さい単位でデバッグして動作を確認する
4.Google大先生を活用する。
以上が上達のコツです。

初心者の犯しやすい間違いとして以下のことがあげられます。
・関数をむやみやたらめったに覚える
ムリして覚えることはありません。大事な関数は都度Google先生に聞けばそのうち体で自然に覚えていきます。
・エラーがたくさん出てきて絶望する
プログラミング上級者でもエラーがでます。
エラーを乗り越えた数だけ、コーディング技術が深まります。
涙の数だけ強くなれます。
トライアンドエラーを繰り返すことで、プログラミング言語を会得することができます。

プログラミングの理解を深めるには、
上記であげた4点を意識することが初心者にとっては大事です。
それらを念頭に置いてコーディングをしてください。

夏フェス行きたかった…

未分類 - コメントは受け付けていません。 - Posted on 8月, 21 at 7:47 pm

お盆も過ぎて主要な夏フェスも終わってしまいましたね…
結局今年も夏フェスに行けませんでした。
毎年、今年は行くぞ!と決意するのですが、仕事の都合で行けなかったり、家庭の事情(今年はこれ)で行けなかったりするんですよね。
今年は息子(乳児)の面倒を見ながらWOWOWで夏フェスを見ていました…
映像で見るのも手軽でいいですが、夏フェスの醍醐味は暑さを肌で体感しながらビールを飲み大音量のライブを見て、へべれけになってダンスフロアで踊り、オールで次の日のライブを楽しむことですよね。
やっぱりテレビの映像と音だけでは楽しめませんよね。

そういえば、ここ1年、いや1年半は大音量の空間に身をさらしていません…
興味とお金をほとんど音楽に費やした自分にとっては、とてもストレスが溜まりますね。
デカい音でベースもしくはギターを弾きたいですね。
バックトゥザフューチャーの冒頭でマーティがアンプのボリュームフルテンにして弾いた瞬間、音圧で吹っ飛ぶような、あの感じが理想ですね。
ブッ飛びたいですねー。

楽器をたまに弾いてはいるのですが、
前メインで使っていたジャズベースが弾ける状態ではなく、5弦フレットレスを弾いているんですが、これが弾きづらくてストレスが溜まります。
少しテンションきつめで、速いパッセージの時に左手が追い付かない。フレットレスなのにジャコの曲が弾きづらくてイライラします。
またフレットレスなのでスラップもぼやけてしまって楽しくない。
ジャズベのリフレットを自分でやったのが不味かった。
素人がフレットの打ち込み、すり合わせを行うのは自殺行為ですね。
でもいろいろ改造したからリフレットも自分でやってみたかったんですよね…

弾いたら弾いたで、子供が「新しいおもちゃ発見!うはw」みたいな顔でまとわりついてくるんで、弾きづらいんですよね。
座って弾くと邪魔されるから、立って弾くんですが掴まり立ちができるようになったんで、
足に掴まってくるんですよ…
そのくせ、バランス崩して後ろ向きに頭から転んで大泣きしてしまうので、楽器を弾いてる場合ではなくなるんですよね。

なので取り回しのきくウクレレばっか弾いてます。
ウクレレは軽いので息子が妨害しにきてもすぐ場所を移せるからいいですね。
でも忘れて床に置きっぱなしにすると涎まみれにされてしまいます…


さて、プログラミングについてお話できませんでしたね。
前置きが長くなりすぎました。

次回こそ、プログラミングについてお話したいと思います。

プログラミング入門じゃ!

未分類 - コメントは受け付けていません。 - Posted on 6月, 24 at 6:24 pm

どうもこんにちは。
最近暑くなってきて半袖にしたんですが、やっぱり寒いというこの頃です。
夏を飛び越えて秋が早く来て欲しいですね。

さて、前回はプログラミング入門の入門についてお話しました。
要するに、プロジェクトは複数人で行うから他人に優しいコーディングを心がけようというお話でした。

今回は、私が以前関わったプロジェクトでの経験を交えてプログラミングについてお話します。

勤怠管理システムのプロジェクトで、それまでのシステムが古いためリプレイスすることになりました。
自社のシステム改修であるため、時間・人員をかけられないとのことから、少ない人員で急ピッチの開発が予想されました。

そのような状況でしたので、できるだけプログラミング量を減らすため、オープンソースのプラグインなどを利用して負担を減らすよう心がけました。
みなさんも積極的にオープンソースのコンポーネントを利用することをおすすめします。

また、時間が少なかったというのもあり、コーディング規約を作らず設計をほとんどせずに各メンバーがコーディングしたところ、プログラムソースの書き方に統一がとれていないという問題が発生しました。
そのため、書いた本人しか保守できないという問題が起こりました。
よって、コーディングを開始する前にコーディング規約を決めておくことは重要だと痛感しました。
みなさんも、できるだけコーディング規約を利用してコーディングすることにしてください。
また、GUIも統一がとれていないため、非常に見た目がちぐはぐなシステムになってしまいました。
そのあとのデスマーチはいい思い出です…

次回は、1U サーバーを用いてサイト構築したプロジェクトの経験をもとにプログラミングについてお話したいと思います。

今回はプログラミング入門の入門じゃ!

未分類 - コメントは受け付けていません。 - Posted on 4月, 26 at 5:00 pm

今回はプログラミングするときに気を付けることは何か?ということをお話しします。
つまるところ「プログラミング入門」の「入門」といったところですね。

基本的にプロジェクトは一人でやるものではなく、複数人で行います。
製造作業も当然、一人ではなく複数人で行うことが多いでしょう。
そのためそれぞれが好きなようにコーディングしていたら、プログラムごとに記述が異なっていたりして不統一になってしまいます。
そのようなコードを後から第三者が修正する場合、修正者はどう思うでしょうか?
Aさんの書いたソースはキレイだが、Bさんが書いたソースは汚い、Cさんが書いたソースはコメントがあってわかりやすいが、Dさんが書いたソースはコメントがなくてわかりづらい。
そのようになっていると当然、統一がとれていなくてわかりづらいと思うでしょう。
そのために、コーディング規約というものがあります。
コーディング規約とは変数名の書き方、関数名の書き方など、
そのプロジェクトのプログラミングのルールといったものと言えます。
よほど変則的なことをしない限り実装が難しいという場合は除いて、
基本はコーディング規約に沿ってコーディングしましょう。

私が以前参加したプロジェクトでは、一人だけコーディング規約に沿わずに製造していたために、納品1日前にコード修正・再テストという問題が発生しました。
そうならないようにも、基本的なルールを守ってプログラミングしましょう。

また前回でもお話しましたが、誰がみてもわかりやすい、保守しやすいようなプログラムにすることも大事です。

複数人で製造を行う場合は、共通化できる処理は共通化して他のメンバーのコーディングに再利用できるようにすることも大事です。
各々が同じ処理をバラバラに作るということが無駄な作業であるかは自明の理です。

次回は私が以前関わったプロジェクトのクラウドサービスの経験談も交えてプログラミングについてお話したいと思います。

今回はアルゴリズム入門じゃ!

未分類 - コメントは受け付けていません。 - Posted on 2月, 27 at 9:27 am

プログラミングについて学ぶ前にアルゴリズムについて学びましょう。
アルゴリズムを理解していれば、どんなプログラム言語にも応用できます。
今回はアルゴリズム入門です。

アルゴリズムについて簡単に言うと「ある問題や課題を解決するための処理手順」のことです。
プログラミングとは問題・課題を解決するための作業とも言えます。
そして良いプログラミングをするには、アルゴリズムについて理解を深めなくてはいけません。

アルゴリズムが満たさなければいけない条件がいくつかあります。
それは以下の条件です。

・正しいこと
・手順が具体的であること
・有限の実行時間で必ず終了すること

また、優良なアルゴリズムは更に以下の条件を満たします。

1.誰が見てもわかりやすい
2.どのような使い方をされても正しく終了する
3.プログラムの効率がよい
4.再利用できる

最近はマシンのスペック向上が著しいため、処理が早くメモリー消費が少ないといった観点でプログラミングされなくなりました。(特殊な場合を除きますが)
早いこと、負荷が少ないことに越したことはありませんが、いかにバグを出さないか、手直ししやすいかということを重視します。
1番の「誰が見てもわかりやすい」ことは何よりも優先します。
長いプログラムは、作っている自分ですら何をやっているかわからなくなることもありますし、基本的にプログラミングはチーム作業であることが多いので、
自分が書いたプログラムを誰かが修正するかもしれません。

2番は要するに想定しない操作でも整合性を保つような仕組みにするということです。

3番に関しては言及する必要がないくらい一般的ですね。

4番は複数のプログラムを作成するとき、はじめからプログラミングするより、
共通した部分をコピーして、もしくはコピーしたものを改変して作ったほうがはるかに効率的です。

上記がアルゴリズムに関するお話です。
これであなたもアルゴリズム道場に入門したことになりますね。

プログラム言語はいろいろありますが、どれもアルゴリズムが元になっていますので、
学んで損はありませんよ。

次回は私が制作に関わったサーバー販売のWebサイトの制作経験を例に、プログラム制作時に気を付けるべき点をお話ししたいと思います。

入門者におすすめの話:使いやすいエディタ

未分類 - コメントは受け付けていません。 - Posted on 12月, 28 at 3:06 pm

プログラミング入門者に使いやすいテキストエディタについて書こうと思います。

 

Windows標準のメモ帳は、最も基本的なテキストエディタの一つです。

ただ、メモ帳は本当に基本的な機能しかないので、文字の色が黒しかなかったり、タブの幅が半角8文字固定だったり、プログラミングをする上では少し力不足かなあと思います。

 

秀丸エディタは、もっとも有名なテキストエディタの一つかもしれません。

秀丸エディタには、Windows標準のメモ帳にはない便利な機能がたくさんあります。

例えば、単語の強調表示ができます。たとえば、プログラミング言語のpythonでは.pyという拡張子のファイルを用います。

このファイルを開いた際には、よく使う「class」という単語を強調して表示する、というような設定ができます。

これが便利な理由は、「class」を打ち間違えて「claas」と打ち込んでしまった場合、強調表示されないため、すぐ打ち間違いに気づけるところです。

そして、こういった強調表示すべき単語などをまとめた設定ファイルがインターネット上に多数公開されています。

また、grep(ファイルの中身検索)や、正規表現による強力な検索機能もあります。

こういった強力な機能がついたテキストエディタはほかにもあります。調べてみるのも面白いと思います。

 

プログラミング専用のソフトというのもあります。

eclipseは、統合開発環境(IDE)として有名です。eclipseは、使える言語が限られますが、どんどん拡張されて今ではさまざまな言語に対応しています。

eclipseはこのソフトの中で開発のすべてを実施できるように設計されています。

また、よく使う単語を強調表示するだけではなく、単語を途中まで入力すると、予測変換機能のように残りを補完してくれる機能もあります。

 

色々なツールを使ってみて、自分に合ったものを探すことも、楽しみのうちかもしれません。

Webプログラミング能力認定試験

プログラミング - コメントは受け付けていません。 - Posted on 8月, 31 at 7:24 pm

ウェブプログラミングを覚えたのであれば、資格を取ってみてはいかがでしょうか。
そのひとつにウェブプログラミング能力認定試験というものがあります。
これはWEB上で動作するプログラムを利用してインタラクティブなウェブサイトを作るために必要なプログラミング能力を認定する試験になっています。

この資格はサーティファイウェブ利用技術認定委員会主催の資格になっていて、初級と上級に分かれます。
初級ではjavascriptを理解してプログラミングができる能力が必要となり、表現力豊かなWEBコンテンツの作成能力と問われます。
上級になるとscript言語の特性を理解してPHP、ASP、JSPのいずれかのプログラミング知識と作成能力を求められることになります。
そしてクライアントの要望に応じたウェブ上の業務コンテンツの作成能力というのも求められるようになります。

この資格ですが、受験資格の制限もなく誰でも受けることができます。
資格取得のために学ぶ場所ですが、こうした講座のためのスクールというのも多数あります。
受験するためのくわしいことはサーティファイ情報処理認定委員会まで問い合わせてみてください。

プログラミングをするということ

未分類 - コメントは受け付けていません。 - Posted on 6月, 28 at 12:35 am

プログラミングをすることと、ワードなどのソフトウェアを使うことには、どのような違いがあるのでしょうか。

ワードなどのソフトウェアを使うということは、ソフトウェア上であらかじめ用意された機能を使って、ほしい結果を得ることと言いかえられます。

ワードには、たとえば文章を打ったり、罫線を引いて表を作ったり、文字の色を変えて強調したりする機能があります。さらに、こういった機能を用いてつくったドキュメントを印刷して紙に出力する機能も用意されています。これらの機能は、すべてワードが提供しているものです。

一方、プログラミングをするということは、コンピュータに直接自分がやりたいことを伝えて、ほしい結果を得ること、と言えます。

画面に「こんにちは!」と表示したり、1から10までを足した結果をファイルに保存したりなど…。プログラミング入門で作るような簡単なプログラムでは単純な指示しか行えませんが、複雑なプログラムを作ることができれば、ワードやエクセルにない処理を行うことが可能になります。

プログラムを作るには専門的な知識が必要で、使いこなすにはものすごく勉強しなくてはいけないというのが普通の感覚かもしれませんが、コンピュータの性能が低かった時代から見ると、ずいぶんと親しみやすいものになってきています。

例えば、なでしこという言語では、日本語に近い表現でプログラムを作ることができます。(“「こんにちは!」と表示” と記述すれば、画面に「こんにちは!」と表示される、といった具合です。)

プログラミングできるようになると、より深くコンピュータを理解できるようになります。

プログラミングに入門しようとしているあなたは、その入り口に立っているといえるでしょう。

 

PHP入門

プログラミング - コメントは受け付けていません。 - Posted on 1月, 20 at 2:25 am

WEB関連のプログラミングとしてPHPが良く使われます。
処理はサーバー側で行われ、拡張子は.phpや.php3になります。
処理の旅に別プロセスを起動することがなく高速なプログラミングとなっています。

このPHPを動かすために必要なものはPHPモジュールを組み込んだウェブサーバーが必要になります。
これがあると何ができるかというと、簡単にいうとウェブ上で動く掲示板やチャットを作成するのに便利になっています。
スクリプトにはクライアントサイドスクリプトとサーバーサイトスクリプトの2種類があり、クライアントサイトスクリプトとはクライアント側のウェブブラウザで処理を行うスクリプトのことで、ユーザーが利用するブラウザの種類やバージョンや環境設定によりスクリプトの実行結果がユーザーのいとしない結果になることもあります。
サーバーサイドスクリプトとは処理をウェブサーバーが行うスクリプトのことでリクエストを受け取ったサーバーは処理の結果をクライアント側に返します。

またCGIというのはプログラムをウェブサーバーの外で起動させその出力をクライアントに送信する方式のことでperlで書かれていることが多くなっています。
CGIはウェブサーバーの外部プログラムなのでクライアントからリクエストがあるたびに新たにプログラムを起動します。実行するたびにCPUやメモリに負荷がかかってしまうのですがPHPはリクエストのたびにプログラムを起動することがなくサーバーに負担がかかりにくくCGIと比べて処理速度が速くなります。

データベースシステム

プログラミング - コメントは受け付けていません。 - Posted on 1月, 20 at 1:56 am

ビジネスでの情報システムにおいてデータというのは大変重要な存在であります。
発注するときの管理や顧客管理、売上の管理のためにデータベースというものが使われていますよね。
データベースというのは簡単に言うと相互に関連するデータを整理統合し、検索しやすいようにしたファイルのことでこのようなファイルの共有を可能にシステムといったところでしょうか。
コンピュータがなかった時代、データ管理というのはすべて紙を利用して人の手で処理していましたがコンピュータが使われるようになってコンピュータで処理できるようになり時間も短縮することができるようになりました。

そのデータベースに使われる管理システムは色々あるのですが、難しいデータベースを使わなくても表計算ソフトで十分な場合もありますが、データが膨大、色々な検索をしたりといったことをしたいとなるとやはりDBMSが必要になります。
そしてそうしたデータベースソフトにはSQL Server や Oracle、MySQL、PostgreSQLなどがあります。
データを管理するだけにとどまらず簡単にアクセスする機能やセキュリティの確保といった様々な機能を提供します。そしてシステムを開発する際の開発規模を低減することも可能です。
こうしたほうのプログラミングを求めることも少なくありませんので、興味があれば勉強してみてはいかがでしょうか。
クラスC分散サーバーを利用していた友人は、色々なサイトを管理しているのですが、そのサイトの顧客データなどををうまくまとめるためにこうしたデータベースプログラミングの勉強を始めたようです。