C言語を学ぶにあたって苦労したこと

C言語の特徴は、プログラマの自由度が高い事、そして高速に動作するチューニングが行える点にあります。しかし、C言語は高度故に複雑で、使いこなしだけではなく、習得に時間や繰り返しの学習が必要です。
C言語で最初につまずく点は、メモリ操作が行えるポインタの外転を理解する事です。ポインタは、メモリアドレスを操作して内容を書き換えますが、誤ったアドレスにアクセスするとデータが破壊されます。

また、アドレスとポインタの定義が複雑な事、これもC言語の習得を難しくする混乱の原因の一つです。
メモリ操作を覚えてしまえば、C言語の高速動作と合わせて、快適なプログラムは実現します。

ただ、ポインタが習得の壁になっているので、これを乗り越えない限り上達は行えません。解説書は幾つも発行されているので、学習の機会はありますが、どれも取っ付き難い印象はあります。

ポインタ関連の苦労といえば、メモリの確保と解放の仕組みが欠かせません。現代的な開発言語は、自動でメモリを解放するガベージコレクションを搭載しています。メモリ確保は、変数の宣言時に自動で行われるので、確保ミスや間違いが発生する可能性は減少します。

C言語は、今も使われる高度な言語ですが、古い設計思想で作られた事実があります。この時代のプログラムは、プログラマが幅広く管理する事が前提なので、手動のメモリ操作は必修の知識です。

苦労には、習得まで時間が必要なタイプ、それに開発を複雑化させるバグや実装ミスの二種類があります。
習得に時間がかかるタイプは、困難を乗り越える事が出来れば、最終的には苦労が技術として身に付きます。

一方で開発中の問題は、解決出来なければ先に進めないばかりか、突破しても得る成果は限られます。
自己的な学習や趣味で学ぶ場合は、時間を気にせず好きな様に習得する事が出来ます。開発のトラブルは、仕事の場合納期と密接に関係しているので、休みや休憩すら取れない場合があります。トラブルが発生した時は、規模や優先順位によって原因の調査が行われます。人的な余裕がある場合は、それぞれ分担してバグ探しを行いますが、人手が足りない時は一人孤独な作業が始まります。

バグ探しは、集中力が不可欠の作業で、コードの流れを追ってチェックを繰り返す地道な内容です。比較的新しい開発環境は、僅かな問題も見逃さない高度なチェック機構が搭載されています。旧世代の環境は、仕様や設計手法の習得が欠かせないので、必然的に高度な技術力が必要になります。命名規則や設計の自己ルールは、習得の指南書に最低限の事が書かれているだけです。

更に一段階上の技術は、前の内容を十分に理解しなければ習得出来ません。どこまで進めるか、これは実力が左右するシビアな言語ですが、逆に広大な世界を旅する感覚に陥ります。1つずつの技術習得は、経験値アップや装備の強化に通じるものがありますし、より強敵に立ち向かう勇気も生まれます。

昔は、インターネットが現代程一般的ではなく、交流は限られていたもののディープなコミュニティは存在しました。学校や職場では、プログラム愛好家やプログラマ同士が切磋琢磨し合ったり、技術を伝える交流が行われていました。その点は、仲間と共に旅へ出る感覚に近く、競争だけではない補う協力関係がありました。

習得の難しさは、言語仕様による部分が多数を占めますが、情報が限られ気軽に調べなかった事も理由にあります。書籍は登場していましたが、専門書の価格は高く、学生の身分では気軽に買えない事がネックです。言語登場直後は、まだインターネットがなかった時代で、気軽に調べられない事も苦労が必要になる原因でした。

Javaを学ぶにあたって苦労したこと

Javaを学ぶにあたって苦労したことは数えきれません。初めての動的な言語であるという点が、今まで経験していなかった動作の変化を生み出したので、その原因がなかなか理解できずに非常に苦しみました。

そもそも自分でWebページを作成するに当たり様々なインタフェース性と機動性を盛り込みたいと考え、Javaを導入したいと思い、勉強し始めたのがきっかけです。特にJavaでスクリプトを記載することでWebページに動きを与えることができるほか、XMLなどへの互換性も期待できると考えたからです。

しかしJavaの基本的知識をあまり持たずに出来ることにばかり気をとらわれたのが大きな間違いでした。基本的にWebページの基礎となるHTMLは単純な静的な動作のため記載したとおりに一義的に動作が決まり非常に分かりやすいのですが、Javaの場合には前後の引数に大きな影響を受けるため同じ記載であっても状態によりその動作が変化してしまう事と、引数の取り方により予想外の動きをしてしまうことが分かったからです。さらにHTMLと組み合わせて使用する場合にはHTMLで指定した場所との関連もあり、Webページの動作が思うようにいかず失敗の連続でした。

従って基本的な部分をしっかり習得しないといけないと考えまずはさまざまな参考書を探しましたがなかなか適当なものが見つかりませんでした。というより、自分の利用する目的があまり明確でなかったため、何をどの様に表現したいかが分からないままその技術を習得しようとしたため、様々な情報を見ているうちに混乱してしまったのです。一口にJavaと言っても、その用途や手法により様々な形式が有ることが分かりました。

その為、まずは既存のホームページのソースを解析しながら、その利用法を学習するという方法をとったところ、割と理解が早かったようです。

具体的な表示のイメージが見えると、ソースにおける利用方法がイメージできるので分かりやすいと感じ、しばらくはさまざまなWebページとそのソースを解析するということを行い、実際の使い方を見ながら、基本的な参考書の中でその一般的な表記に当てはめていくということを繰り返し、ようやくある程度の利用が出来るようになっていきました。

さらに、ページを超えて引用する場合には引数の変化に注意することが重要でした。同じ引数を引用してもそのタイミングやページのアクセス数などにより気づかないうちに引数の値が変化し、引用先に悪影響を与えるということもありました。その為当初は出来るだけページを越えた引用は避け、ページ内で適切に引用するようにしながら、引数の変化についても学習しました。

このように非常に複雑な学習方法を繰り返してしまったわけですが、その理由は最初はHTMLと同様、静的な要素が多いと思い込んでしまったことがその発端です。HTMLでページを作成することに慣れていた部分もあり、動的な引数に対する理解と解釈が浅かった部分がありました。

しかし、今回このような学習方法をとったことでXMLなどの動的なプログラミング言語を利用する際の基本的な心構えが習得できたことにより、その後は非常にスムーズにコンテンツ作成が出来るようになりました。

これから学ぼうと考えている人には、まず目的を明確にしてから目的とするその動きをしっかりとイメージすることをお勧めします。非常に範囲が広いので基礎から学ぼうとすると非常に範囲が広い為なかなか最適な参考書が見つからず、またどれから手を付けていいかわからなくなりがちです。決して総合的に学習しようとせずに、自分が利用したいと思う機能に的を絞って学習することが速く習得する秘訣だと考えます。

C++を学ぶにあたって苦労したこと

私がC++を勉強し始め高校生の時でした。大学との一貫校で簡単な計算やグラフの表示方法などを学びましたが、最初この言語に触れた時、正直言って面倒なプログラムだなと思いました。このプログラム以外にも簡単に表計算を行うソフトはがありました。そしてホームページ作成であればhtml言語やワープロソフトから簡単に変換できました。このようなプログラミングを学ぶ意図が全く理解できませんでした。そのうえいちいち英語で表記する必要があります。また特別な表記方法を覚える必要があります。

また、できたプログラムをコンパイルして確認するのですが、文字の書き間違い1つでも動きません。間違っているところだけエラーが出るとわかりやすいですが動かないところ全体にエラー表示が出たり思ったような順番に動いてくれないため結果が異なることもしはしばでした。

また、プログラムの順序も考えながら書かないといけないので、紙に計算過程を一度頭で整備してからプログラムを作り上げる必要があり、二度手間で最初は嫌な思いしかありませんでした。もちろん日本人にとって英語の単語間違いはなかなか気付くことができません。また、特殊記号の挿入も必要になりチルダーの挿入方法などわからないことばかりでした。それを1つずつ習得する必要があり大変な時間がかかったことも苦労した点です。

しかし、この言語を習得する過程でシャープの後に文字を書くことでプログラムとは関係のない文字を入力することが可能なことを教わります。この機能を利用することで計算過程がわかりやすくなり、少しずつC++のプログラムが楽しく感じてきました。日本語を入れると日本語対応のパソコン以外ではエラーが出ることもあるそうです。そのうえ本来であればプログラミングはより簡潔にわかりやすくなり組み立てることが基本です。最後には容量を抑えるため削除する一手間はかかるかもしれませんが、プログラミング難しさや面白さを一緒に知ることができた良い経験でした。

また、工学系の学生であればC++やフォートランなどのプログラミングも勉強しますが、C++の言語はかなり優れています。他のプログラミングとも共通点も多く、予め用意されているフォームも多く覚えることには苦慮しますがそれを乗り越えると他のプログラムも簡単に書くことができます。

コンピューターを動かしている言語もC++などが基本にはあります。より高度な処理を行うためには、より多くのプログラミングを書く必要があります。私もプログラミングをしてソフトを開発していますが、この言語を取得しても完全なプログラミングを作ることはかなり難しいです。

また、その分予期せぬバグが発生することもあります。C++は高級言語ですが初心者にとっても扱いやすく設計されています。最初にプログラミングをするのであればこの言語がお勧めです。後は時間と慣れしかありません。この2つが一番苦慮することですがたとえ難しいと感じていてもどれだけ意欲を持って続けられるかが習得の肝になります。この言語は一度覚えてしまえば他言語に比べて速くプログラミングを書くことが可能です。また、if orなどのコンピュータ言語は、回路設計にも直結する理論です。

ただし、自宅で学習しようとするとこのようなプログラミングソフトはそこそこ良い値段がします。それも苦労した点かもしれません。昔に比べると安くなっているかもしれませんが、私が学生自体には2ヶ月分のアルバイト代がかかりました。現在はほとんどの会社で必ずIT担当者が必要になっていますから私の学生時代でも高額で購入する人が多くいましたから将来のことを見据えた学生が多くいたのかなと今でも思います。

生涯日々成長、60過ぎてもC、C++のお勉強

学校の教師をしておりました。パソコンが社会に浸透し、たくさんのパソコン関係の雑誌がコンビニで売り出されていた時に、写真付きのワードのやり方を見て、こんな文書がつくりたいとおもい、雑誌で勉強をはじめました。パソコンに熱中しマイクロソフト資格取得を目指しパソコン教室に通いだし、資格取得に成功しました。結果自宅にパソコン教室をしたりして現在にいたっています。

学校を早期退職し、現在無職の私にとって年を取ってからのプログラムの勉強を始めることはチャレンジでした。何事もやること、挑戦すること、勝負をすることの気合で頑張っています。子供から還暦を祝われる中、楽しくプログラムを一から勉強中です。70、80歳になってもプログラミングが目標です。

しかし、経済的なことを考えると、年を取ってからのプログラムの勉強はきついし、友だちとの会話に70、80歳になってもプログラミングですかと半ばあきれ顔をされ、沈んだ気持ちになることになります。子供から還暦を祝われる中、楽しく70、80歳になってもプログラミングを頑張ると幸せ気分でお祝いの席につくことはとても満足感と達成感がわきおこります。だれもやらないような70、80歳になってもプログラミングの気合は衰えることがありません。

「好きこそ物の上手なれ」のことわざがあります。好きなればこそ、飽きずに努力するから、ついにプログラミングの道がひらけるのです。子供にもこのことわざを常に言って聞かせていました。教育の原点は好きなことを前向きに努力することにあると信念をもっています。この信念は早期退職し、現在無職の私にとっては励ましになっています。年を取ってからのプログラムの勉強は自分が学校の教師をして子どもに教えていたことを行動にうつし、実践していることになります。早期退職し、現在無職の私にとっては生きがいになっています。年を取ってからのプログラムの勉強は明日を夢みる子供達のプログラムの勉強に負けたくないと思う負けん気かもしれません。

子供から還暦を祝われる中、楽しく70、80歳になってもプログラミングを目標にできる環境をつくったのは周囲の理解です。60才を過ぎても何かに挑戦するのは楽しい時間です。物作りをしているような感覚で取り組んでいます。子供から還暦を祝われる中、楽しく年を取ってからのプログラムの勉強は現代社会を生きる知恵のように思います。何事にも集中できる忍耐力が出てきた自分を発見できます。これまでの自分は集中力がなく、あきっぽい性格でした。早期退職し、現在無職の私にとって年を取ってからのプログラムの勉強は性格形成でもあるように実感しています。子供から還暦を祝われる中、楽しく70、80歳になってもプログラミングを目標にできるようにしようという気持ちが生活に張り合いを持たせています。無職になっても生きがいをもつことはとても大切なことです。これからの社会の発展も楽しみです。

還暦祝い、コレでお祝いの席が盛り上がりました

還暦祝いは数え年61歳のお祝いです。干支が一回りして元の暦に戻るということからこのように呼ばれています。
昔は長寿を祝う行事でしたが、今は60歳といえばまだまだ現役。更に年を重ねて出歩くのが億劫になってくれば自宅や家の近所のお食事どころでお祝いでもよいですが、還暦祝いならみんなでどこか温泉旅館の大部屋にでも泊まって盛り上がりましょう。
まだ子供や孫の代までしかいないので、人数もそれほど多くはないでしょう。

赤いちゃんちゃんこを着て上座に座っててもらうだけでなく、一緒にゲームをしたりカラオケをしたり、アクティブなお祝い会でも大丈夫。おじいちゃんおばあちゃんに関することや生きてきた時代の出来事についての○×クイズを出して、チームごとに競い合うなんていうのもおもしろいでしょう。おじいちゃんおばあちゃんのことをもっともっと知ることができるチャンスです。おじいちゃんとおばあちゃんの新婚時代のことなんかでしたら子供たちも知らないこと、のりの良いおじいちゃんおばあちゃんなら答えてくれるかもしれません。

チーム分けも、家族単位で分けてもよいですが、親世代と子供世代で対決したりというのも盛り上がります。還暦祝いを機会に親戚同士が更に仲良くなれればとても良いことです。

孫たちからお手紙やお歌をプレゼントしたり、しんみりした場面も作り、最期はみんなで川の字で眠ることにしましょう。久しぶりにお母さんの隣で寝るという体験をしてみてもいいですね。

↑ PAGE TOP