プログラミングをはじめよう!

プログラミングが出来るようになるまで・・・・

06 7月

続・プログラマという仕事

IT業界は現代の最先端技術を扱う仕事と言えるかと思います。
一昔前には無かった業種ですが、今ではなくてはならない仕事のひとつとなっていますし、IT知識に明るいとそれだけ重宝され、プログラミングの勉強の場もこと欠きません。
最近は派遣切りだのリストラだの就職難だの言われていますけど、IT業界に限ってはそれほど厳しいこともなく、プログラミング等の必要知識と技術さえ持っていれば引く手数多です。

そんなIT業界ですから、さぞかし若者にプログラミングが人気なのかと思いきや・・・全く逆。
むしろIT関係の仕事は避けられているのだそう。
というのも、これも前回お話ししたプログラミング関係の彼による意見なのですが、IT業界とは新3Kの代表なのだそうですよ。
「新3K」とは、「きつい」「帰れない」「給料安い」のことです。
ちなみに、以前言われていた「3K」は「きつい」「汚い」「危険」のことでしたが・・・

「帰れない」というのは前回お話ししたとおりです。
寝る間も惜しんでプログラミングしていればそりゃあ「きつい」と言わざるを得ないでしょう。
朝昼晩とほとんど帰らずに仕事を続けるとなると、そりゃあ残業手当や休日手当がごっそりと手に入るかと思いきや、通常残業時間を大幅に超過しているために正確な数字を公にはできず、残業時間を短く改ざんして報告するためその分しか手当ては入りません。
つまり、ほとんどがサービス残業。
他の業種の方々と比べると、給料はそれなりに多めといえることもあるかもしれませんが、実際行った業務時間と対比すると安月給にもなるでしょう。
「給料安い」というのはそういうことです。

再びIT業界の名誉のために申し上げておきますが、IT業界のお仕事の全てがこの「新3K」を反映しているとは限りませんよ。
きっと休日はしっかりもらえて、残業手当も時間通りの分を貰えている人もいるはずです。

・・・なのですが、プログラミングを仕事としている人のほとんどが「新3K」に関して愚痴っている気がするのは、私の気のせいでしょうか?(笑)

22 6月

プログラマという仕事

今回は少々雑談的なお話です。
笑い話として読んでください。

1年ほど前に「ブラック会社に勤めてるんだが、もう俺は限界かもしれない」という長い名称の映画が公開されていましたが、皆さんをこの映画を観たでしょうか?
私はというと、実はこのような話題を始めておきながら観ていません。
というのも、いつも一緒に映画を観に行く連れがこの映画を避けていたためです。
その連れというのが、プログラミングに関する仕事をしているのですが、映画の内容に共通点がありそうでおそらく「観るとうつ病になりそう」だというのです(笑)

現在の勤め先ではないのですが、連れの以前の勤め先はいわゆる「ブラック会社」だったのだそうな。
・・・いえ、会社自体はそうではないのかもしれませんが、部署が行っている業務や仕事内容が相当ハードだったようです。
毎日の残業や休日出勤なんて当たり前。
残業と言っても、夜0時までという生易しいものではなく翌日の早朝4時までだったり、休日出勤だって月1~2回どころかほぼ毎週で、では真の休日はどうなっているのかというと、忘れたころに平日に1日だけ休ませてもらえるという・・・
家に帰ってもできることは入浴(シャワーのみ)とほんの数時間の睡眠、ひどいときは通勤時間さえもったいないので会社近くのネットカフェを利用。
ちなみに残業手当が全て入るはずもなく、残業のうちの50パーセント以上はサービス残業・・・

まぁ、今ではその会社を辞めて別の会社へ勤めているのですが、彼が言うにはプログラミングやIT関係の仕事では珍しくないのだとか。
彼は今の仕事もプログラミング関係ですが、以前ほどでないにしろ残業や休日出勤はあるようですし。

ただ、IT企業の名誉のために書いておきますが、彼の以前の仕事というのは巨大なプロジェクトの真っ最中だったがために、あのような忙しさだったようですよ。
通常は・・・肝心の彼が辞めてしまったのでどうかは知りませんが(汗)

10 5月

デバッグについて

デバッグとはプログラミングを行ったあと、それが正しく作動するかどうかを確認する作業のことです。
どんなに能力のあるプログラマーでも、人間誰しもミスは起こるもので、プログラムが間違っていないか、それによってバグが起こっていないかということを探し出す非常に重要な作業なのです。

デバッグのためには「デバッガ」と呼ばれるソフトウェアを利用する方法がありますが、ご注意ください。
デバッガはあくまでもバグの発見を促すソフトウェアであり、決してバグを取り除いたりプログラムのミスを修正してくれるものではありません。
プログラムの修正そのものは本人が行わなくてはならないのです。

プログラミングに関する格言のひとつに「作業というものは予測を上回る時間を要するものである」というものがありますが、その理由はこのデバッグにあると言っても過言ではないでしょう。
デバッグでは単純なミスを修正するだけでなく、プログラムそのもの(または一部)を書き換えてしまう場合も考えられます。
このようなことを含めると、デバッグも一度だけではなく何度も繰り返す必要が出てきますからね。

実はIT業界の中でもプログラミングは特に忙しい業務のひとつでもあります。
以上のようなデバッグで格言通りに予想外の時間を要してしまうために、納期に間に合わせるべく何日も残業したり徹夜したりということが珍しくありません。

ちなみに、デバッガには「シンボリックデバッガ」と「アブソリュートデバッガ」という種類があり、特に「シンボリックデバッガ」はソフトウェア開発の業界でよく利用されています。

05 4月

プログラミング初心者が上達するには

あなたがプログラミングを勉強するとき、いったいどのような方法で何から始めますか?
テキストを読んで、それに書いてある通りに試していく・・・
上級者から学びつつ、課題をこなしていく・・・
いろいろあるとおもいます。
しかし、それだけではなかなか上達できない、或いは上達できていると感じられないという方は多いはず。
そんな方々へ、プログラミング技術を更に上達させる方法を伝授いたします。

ですが、伝授といっても長々と技術について語るわけではありません。
私から述べさせていただくのは次の一言だけです。
ズバリ、プロが作った構文を読むこと!
これだけです。

初心者であればこそ実行すべき方法ですが、意外とこの方法が頭から抜け落ちている方は多いのではないでしょうか?
プログラミングは自分で作るものであって、他人のものを写すものではないと思いこんでは?
写す・・・というと意味合いが違ってきますが、他人の・・・それも、プロの構文を参考にするのは非常に効果的な勉強方法です。
ゼロから考え出そうとしていては自由度が高すぎて方向性さえ見出せませんからね。

プロが作った構文やソースコードをじっくり読み、そのひとつひとつを理解していきましょう。
すると、自然とあらゆる場合の対処方法や裏技などが身に付いてくるはずです。
もしかすると、実際に書いてみるよりも効果的な方法かもしれませんね。
「読む」を9割、「書く」を1割として勉強していくと良いと言っている人もいるくらいです。

02 3月

習得の目的

プログラミングを習得する目的は人によって様々でしょう。
仕事関係なら、現在の仕事でその知識が必要だとか、転職のために学んでおきたいとか。
また、趣味の一環として知りたいという方もいらっしゃるでしょう。
その目的によって、学びたい言語は異なってくるでしょうし、またどれを選ぶかによって目的の方向性も異なってきます。

プログラミング、及びその言語の勉強には、主に以下の方法があると考えられます。

①言語を特定したうえで、それについての知識を深める。
特定言語の特徴や他言語との違いを理解し、その有益性やどんなプログラムに向いているかなどを知ります。
データセンターをただ利用するだけでなく、サーバーやハウジングコロケーション)の内容について深く知りたいと考えるのと似ていますね。
ただ、それを扱う能力が伴っていなければ、単なる雑学にすぎなくなるのでお気を付け下さい。

②言語を特定したうえで、それを扱う力をつける。
その言語についての知識もさることながら、扱う力があるということは実践力になります。
履歴書にも書きやすいですし、即戦力として見られるでしょう。

③言語を特定せずに、データ構造やアルゴリズムについての知識を深める。
データ構造やアルゴリズムなど、あらゆる言語に共通する知識を深めておけば、特定のものに詳しくなくてもだいたいのことはできるようになります。
②が狭く深い知識なら、こちらは広く浅い知識。

②と③はどちらも一長一短です。
どちらの学び方が良いかは、それこそ目的によるでしょう。
ただ、特定のものに詳しければ他の言語を学ぶ際にも理解しやすくなりますし、基本的な知識を持っていても同じことが言えます。

03 2月

構造化と関数型言語

時代が進むにつれて様々な技術が進歩しているように、コンピューターの世界でもソフトウェアがますます複雑化していますね。
ソフトウェアが複雑になるということは、それを構成するプログラミングも複雑化しているということです。
しかし、複雑になったプログラミングをコンピューターが理解しているとしても、プログラミングを行う人間自身が理解していなくては意味がありません。
また複雑なままでは、ソフトウェアが作動するにも廻り道しているようなものになりますしねぇ。

そこで重要となるのが、プログラミングの構造化なのですが・・・
構造化がうまくできると何に対してどんな利点があるのかというと、まず、人間が理解しやすいですよね。
プログラミングを書きやすいです。
また、デバッグも容易になりますし、使い回しも可能になります。
結果的にプログラミングコストが低くもなります。

これまでのプログラミング言語の中には、問題点の処々を部分化するにあたって、どうしても限界があるものも多々ありました。
対し、関数型言語と呼ばれる種類のプログラミング言語だと、この限界をも乗り越えています。
例えば、高階関数なんてモジュール化の点で大きな成果を上げていますからね。
これが、今日のプログラミングを成功させている要因のひとつであるとも言えるでしょう。

何が言いたいかといいますと、プログラミングには構造化が必要ですよ、ということ。
そして、構造化のためには関数型言語はなくてはならないものですよ、ということです。

07 1月

資格について

世のプログラミングのプロ(とどのつまりはプログラマー)たちは、どれほどの技術を有しているのでしょうね。
仕事に関する技術を測るものとして、あらゆる分野において様々な資格がありますが、プログラミングにも多くの種の資格があります。
それらの資格を持っており、実際に仕事でプログラミング技術を活用できてこそ、それらの人々をプログラマーと呼ぶもの。
今回は、プログラミングに関する資格について述べてみたいと思います。

まずは、資格を以下に列記してみましょう。

・情報処理技術者能力認定試験
・情報処理技術者試験
・基本情報技術者試験
・C言語プログラミング能力認定試験
・Javaプログラミング能力認定試験
・Sun Java認定資格
・Visual Basicプログラミング能力認定試験
・Webプログラミング能力認定試験
・ディジタル技術検定
・CGエンジニア検定
・UMLモデリング技能認定試験
・NACSE認定資格

以上のように、プログラミング言語のどれかに特化したものもあれば、言語を問わず基本的な知識を必要とするものもあり、またこれらの中には国家資格という大変レベルの高いものもあります。
国家資格は「基本情報技術者試験」がそうなのですが、これを受験して受かるには数度の挑戦が必要となるほどなのだとか。
よっぽどの知識がない限り、たった一度の受験ぐらいでは受かることはまずないと考えても良いほどで、この資格を有している方々の多くは何度も受験した末にやっとの思いで取得しているようです。
まるで弁護士の資格試験ですね。
さすが国家資格。

さて、以上のプログラミング資格。
どれも取得が難しいものばかりですが、どれかひとつでも持っていれば社会では非常に有利となります。
不況渦巻く今日の社会において、IT業界は今すぐに使える人材を欲しているというのが現状です。
そのため、上記資格を持っていれば求人の手は引く手数多。
プログラミング資格、またプログラマーは、今の時代を行く最新鋭技術者なのです。

17 12月

習得にかかる期間

プログラミングを効率よく、しかも簡単に習得するにはどうすればいいか・・・
はっきり申し上げますと、プログラミングの修得に簡単な方法なんてありません。
プログラミング習得は一日にしてならず。
しっかりと間違いなく習得し、そして満足がいくほど使いこなせるようになるには、とにかくいくつものプログラムを書いて練習するしかないのです。

プログラミングは書いて書いて書きまくる・・・途方もないことのように思えますが、効率良い方法があるとすれば、これしかありません。
似たようなプログラミングでも、何度も書いていれば、必ずやそのうちに慣れてきて、プログラミングの中身がだんだんと見えてくるようになるはずです。

では、その方法だと習得までにどのくらいの期間を要するのでしょう。
それは、個々人の能力やプログラミングの種類、また作る内容によっても違いますが、簡単なプログラムなら数日・・・あるいはたった数時間でできてしまいます。

ただ注意したいのが、どれほど単純なプログラムでも、プログラムの記述方法さえ覚えれば良いというものではないこと。
記述されたプログラムが、コンピューターにどのように働きかけて作動しているかを理解していかなくてはなりません。
プログラミング習得にあたって期間を要するのは、プログラムを書けるようになるまでではなく、その中身や裏での動きを理解するまでにかかると言ってもよいでしょう。

プログラミングは「書ける」だけでは習得したとは言えません。
実際のプログラマーたちは長い年月をかけてプログラミングの記述方法から動作の流れまでを理解し、その努力の上でプログラミングを使いこなしているのです。

14 12月

プログラミングを始めるには

プログラミングを本格的に始めるためには、専門的な数学の知識といった学術的な難しいことを知らなければ始められないのでは・・・と思う方が多いのではないでしょうか。
プログラミングについて調べるようになって数ヶ月が経つ私でさえ、プログラミングは難しいという印象が拭いされていないくらいですからね。

しかし、今ここで、一端考え直してみましょう。
プログラミングを学ぶ目的は一体なんなのか?
プログラミングで一体何をできるようになりたいのか?

その答えはきっと仕事や暮らしの中にあると思います。
誰だって最初はそんなに難しいことを求めておらず、まずは簡単な業務システムとして使えるようになりたいと考えているのではないでしょうか。
そのためのプログラミング習得に必要なのは、数式の知識などではありません。
基本的なパソコン操作、それから文字入力の方法さえ知っていればよいのです。

業務システムとは言ってみましたが、そもそも業務システムとは何かというと・・・
突き詰めて言えば、それは簡単な計算となるのではないでしょうか?
今でこそパソコンが普及して、数字を入力するだけで必要な表が作れるようになっていますが、このシステムは電卓やそろばんにとって代わったものです。
つまり、かつては電卓やそろばんで行っていた計算を、パソコンで行えるようにしようというのがプログラミング。
計算は、小学校で習うような足し引き掛け割り算が主でしょう。

どんなプログラミングでもまずはこのような単純な計算式から始まります。
これらが数字さえ知っていれば始められるように、プログラミングにおいても文字入力さえできれば問題ありません。
今パソコンを立ち上げて、こうしてこのサイトを見てくれている皆さんなら、誰でも今すぐにだってプログラミングを始められるということです。

27 11月

コンパイルとは?

プログラミングについてお話しています。
今までプログラミングにはいろんな言語があるといったようなお話をしてきました。

何はともあれいろいろお話しするよりも実際にプログラミングを初めて見ることが大切なのではないだろうか?と思ったわけです。
でも、プログラミングをしたことがない私にとってはプログラムを書くという作業はどんなものなのか、想像することが出来ないと思います。
そこで、とりあえず書いて慣れていくことが大切なのです!

以下の内容をテキストファイルで作成します。
ファイル名は『test.c』でもなんでもいいですが、ファイルの拡張子は.cを利用することが肝心なのです。
#include
main()
{
printf(”Hello World\n”);
}

この内容が出来たらコンパイルするのですが、その前にコンパイルという言葉が分からないですよね?!
そこで、今回はコンパイルというプログラミングでよく聞かれる言葉をお話したいと思います。

■コンパイルとは
コンピューターで、人間が理解しやすい言語や数式で記述されたプログラムを、機械語に翻訳することをいい、このような翻訳するプログラムのことをコンパイラーと呼ぶそうです。
このコンパイルがうまくいかない場合は、エラー表示がされるのですが、このような場合はコンパイラーでノースプログラムを機械語に変換するときにおこるエラーの事でプログラム言語の記述や文法の誤りが原因となることが多いそうです。

プログラミングをはじめよう!