ITservice雄飛 プロモーションビデオ

2020年8月4日火曜日

Kindle本を書いている話

こんにちは、ITservice雄飛です。
微妙に忙しい、今日この頃です。

今日も、よもやま話を。

今、片手間ではありますが、Kindle本を書いておりまして。

きっかけは、半年前に書いたKindle本がちょこちょこ売れ初めまして。
で、じゃぁ、もうちょっと本の本数増やそうかな、と思った次第です。

で、話は戻って。

私が最近主に使う言語は、Lazarus(FreePascal)なんですが。

これに関する日本語の情報が少ないのなんの。
大体、英語とかドイツ語とかが大半ですね、ググると。
コードは同じなので、多少文を翻訳できれば、ソース見て内容はわかるんですが。

更に、書籍はもっと少なくて、ドイツ語の分厚いのが1冊、Kindleで書かれた本が日本語で1冊。それだけかな?

分厚いドイツ語のは持ってます、因みにですが。(高かった)

更に、私がメインとして行う、(日本語での)VBA処理に関する文献はWeb、書籍共に皆無でして。


「じゃぁ、書こうか、試しに」

となった次第です。

内容としては、FreePascal(Lazarus)を扱える人自体が少ないと思われるので、プログラミング入門書と位置付けて、プログラミングやアルゴリズムのイロハから始まって、ハローワールドからVBAとComObj使ったサンプル作成、テーマを自由に決めて、その中から作品を作る、という章で終わる、という構成です。

昨日、夜な夜な書いていました。

さて、執筆終わるのにどれくらい時間かかるだろう?
結構なボリュームになりそうなので、時間は掛かると思います。

それではそれでは。


2020年8月3日月曜日

プログラミング技術だけ覚えても駄目な話

こんばんは、ITservice雄飛です。

最近は、自作のエディタの更新と。
本業と副業、共に忙しい今日この頃。

さて、本題。

今、プログラミングが(まだ)熱いというか、盛んですが。

以前、ツイッターの方で、非常にごく簡単なアンケート取ったんですが。

それで、反応を見て難しいなと思った感想を持った訳です。

何が難しい言って、プログラミングだけ覚えれば、それで良い、
そうすれば食べていけるんだろう、みたいなアンケート結果だったので。

結論を先に書くと。
「プログラミング」だけ覚えても、仕事にするのはとても難しい。

これでしょうか?

独立って意味ではないですよ?

なんで??

それは、基盤となる必須の基礎知識的な技能であって、
それを実現する、別の各種知識が必要になるからです。

簡単に図示するとこんな感じ。

・対象の業務に関する専門知識
・アルゴリズム構築技能(設計技術、構築技法)
・プログラミング(コーディング)技能


簡単に、大雑把に、図示しただけですが。
細かく書き出すともっとあります。

上記の技能をうまく作動させるために、
コミュニケーション能力も結構重要だったりします。


例えで、仮のやり取りで書きますね。

・お客様「会社の単純手作業を何とかしてくれないか?」
・受注者「どの様な作業でしょうか?お話をお伺い出来ますか?」
(お客様と受注者でやり取りを行い、受注者はヒアリングをする)

・受注者「AとBは自動化可能ですね。Cは難しいというか、自動化は危ないですね。」
・お客様「どれ位で出来るの?どこまで楽になるの?」
・受注者「お伺いしたお話の限り、AとBはエクセルVBAを使えば1時間です。」
・受注者「もっと早く数分で処理する事も可能ですが、その場合納期は嵩みます。」
・お客様「作業時間は掛かっても良いよ、急いでいるから、エクセルで良いよ。」
・受注者「このAとBのエクセル処理なら○○日で出来るでしょう。」
(ここの、見積もり納期の勘案は非常に重要だったりする。少しだけ多めに見積もる感じ)

・受注者「これを自動化して欲しい。」
・受注者「Aの処理とBの処理を、1時間以内で出来るVBAを書いてほしい。」
・作業者(プログラマ)「扱うサンプルデータはありますか?」
・作業者(プログラマ)「お客様の行っていた作業の工程教えていただけますか?」
・受注者「Aがこれで、Bがあれ。資料送ったよ。」
・受注者「お客様からヒアリングしたから、それを基にサンプル作って。」
・作業者(プログラマ)「ありがとうございます、早速取り掛かります。」
(ここでプログラマは、資料と睨めっこして、自動化の方策を書き出してアルゴリズムに落とす)
・〇日(納期○○日の半分が経過)

・作業者(プログラマ)「テスト版ですが出来ました。」
・作業者(プログラマ)「サンプルデータで動いているだけなので、保証は出来ません。」
・作業者(プログラマ)「実作業に近いデータは貰えますか?詳細詰めたいです。」
・受注者「交渉してくる。欲しい作業内容を詳しくお願い。」
・作業者(プログラマ)「Aは△の処理の際の文字の長さの揺れ幅が知りたいです。」
・作業者(プログラマ)「Bは□の処理の際のテキストのフォーマットを知りたいです。」
・作業者(プログラマ)「テストプログラムと資料送りました、これで大丈夫ですか?」
・受注者「ありがとう、交渉してくる。」


(ここで、お客様にテストプログラムを確認して貰い、詳細を詰める作業をする)
・受注者「この様な感じで進めております。テスト版ですが、ご意見お願いします。」
・お客様「あれとこれは良いね、ここは要らない、そこに作業経過が欲しい。」
・受注者「Bの作業の差し支えない空データは貰えますでしょうか?」
・お客様「良いよ、適当な数字と文字で良い?」
・お客様「ありがとうございます、その方が助かります。」


・作業者(プログラマ)「ありがとうございます、助かりました。作業に移ります。」
・受注者「納期通り終わりそう?」
・作業者(プログラマ)「テキストのフォーマットが判ったので大丈夫です。」
・作業者(プログラマ)「納期数日前に、客先でテストさせて貰えますか?」
・受注者「判った、お願いしとく。」

・作業者(プログラマ)「初めまして、□□と申します。」
・作業者(プログラマ)「納品前に動作を確認させていただきたく存じます。」
・お客様「どうやって使うの?」
  ~省略~
・お客様「良いね、でも時々止まるね。」
・作業者(プログラマ)「申し訳ございません、事前に確認出来て良かったです。」
・作業者(プログラマ)「今修正しました、どうでしょうか?」
・お客様「良いね、今度は何やっても大丈夫だね。」


上の例えは、私が一人でやっていた受託開発を、幾つか擬人化させて登場人物を増やし、架空の案件で例えてみました。


・先ず、絶対的に必要なのはコミュニケーション力です。
コミュ力が無いと、色々苦しみます。
書く言う私も、日々コミュニケーション力は試されています。
それだけでなく、交渉力も重要になってきたりします(私の場合)。


・次に必要なのは、アルゴリズム構築能力と、それの言語化能力です。
アルゴリズムというのは、動作原理とも言えるかと思います。
要は、モノが動く仕組みを、頭の中で構築する能力です。
そして、それを図と文章で記す能力。
これが出来て、初めてプログラミング作業に命が灯ります。

・業務専門知識
必須です。
仕事を受ける場合、プログラミング出来ればどの分野でも、という訳には行きません。
ではどうするのか?お客様は、その分野の専門家です。
要は、プログラマたる私はその分野の素人な訳です。
細かく聞いて、只管聞いて、覚えるしかありません。
実際、そのように仕事をした事もあります。

プログラミングだけ覚えても、コーダー(コードを書く人)になっただけです。
しかし、第一歩には違いはなく、そこで満足するのではなく。
常にどん欲に学習していかないといけない、と言う事になります。


逆に、貧欲に学習する人は、何をやっても成功するかと思います。

今回は、これにて以上。

2020年7月31日金曜日

ExcelVBAでShapes(画像)が所属するセルのRowを取得する

ITservice雄飛です。

ほんとにお久しぶりの投稿です。
今回は、Excel VBAを。

今、オブジェクト(シート上に貼り付けられた画像)のRowsを取得する関数を探していたんですが。

どうも、昔はあった様だけれども、現在は廃止になっている様で、無情にエラーが返って終了しました。

色々考えた末、セルのサイズも取得できること考えたら、それアルゴリズムに落とせば良いだけじゃん、、、という、一般的且つ、ごく普通の考えに至りました。

で、思いついたら即実装。
簡単ですね、WhileとIFと変数の加算減算だけなので。
例ではRowですが、取得する値を幾つか変えれば、Colにも対応可能ですね。

本番はLazarus(Pascal)からComObjで呼び出すので、これからそれを組みますが。

まぁ、消すには勿体ないので、ブログ記事にしました。
以下、こんな感じ、即興のテスト関数です。

※このサンプル関数では事前に、オブジェクト(Shapes)を選択(Select)している必要があります。


Function Return_Sharp_Rows(start_i As Long, end_i As Long) As Long

  Dim tp As Long '選択したオブジェクトのTop座標を格納
  Dim rw As Long 'RowsのTopの合計値を格納
  Dim rw2 As Long 'RowsのHeightの合計値を格納
  Dim i_1 As Long 'While開始位置
  Dim i_2 As Long 'While終了位置
  
  tp = Selection.ShapeRange.Top '選択されたオブジェクトのTop座標を取得
  rw = 0 'Row.Topsを初期化
  rw2 = 0 'Row.Heightsを初期化
  i_1 = start_i '開始位置を引数から代入
  i_2 = end_i '終了位置を引数から代入
  Return_Sharp_Rows = -1 '検索にヒットしなかった場合の暫定値設定
  While i_1 < i_2 'While文開始
   rw = rw + Cells(i_1, 1).Top  'Row.Topsを代入
   rw2 = rw2 + Cells(i_1, 1).Height  'Row.Heightsを代入
   If ((rw <= tp) And (rw2 >= tp)) Or (rw = tp) Then 'オブジェクトの座標をセルの数値と比較し検証する
     Return_Sharp_Rows = i_1 '一致した場合、戻り値にセルのRow(i_1)を代入
     i_2 = i_1 '開始位置と終了位置を同一にし、While文を終了させる
   End If
   i_1 = i_1 + 1 'Rowを一つ下に移す(i_1を加算する)
  Wend
End Function

呼び出すときはこうします。例です。
Sub Get_Shapes_CellRow()
 Dim i As Integer
 i = Return_Sharp_Rows(1, 20)
 MsgBox Str(i)
End Sub

以上。
Excelって便利ですね。

自己紹介

デスクトップアプリケーション、ホームページなどの製作承ります。


ご挨拶


初めまして、本ページにアクセスいただきありがとうございます。


コンピュータが本格的な社会インフラとなり、すでに20年近い月日が経っております。

私が初めてコンピュータに触れたのは、1994年の18歳頃の時で、インターネットがまだ身近ではない状態のころでした。


それからは目まぐるしくコンピュータはソフトハードともに著しく発展し、Windows95の登場とともに、世界中がひとつのコミュニケーション手段でつながるインターネットと言うインフラ基盤が登場しました。


今となっては当時のコンピューターは、今のスマートフォンはおろか、ガラケーと呼ばれるフィーチャーフォンの処理能力にすら、及ばなかったと思います。


それから25年、様々のコンピューター言語、様々な OS、 様々なソフトウェアやミドルウェア が登場し、日進月歩著しい成長を遂げたのは、知る人ぞ知るところだと思います。



しかし、急激な発展を遂げるその裏では、 IT インフラの活用についていけず、情報弱者と呼ばれる、 ITインフラから大きく遅れをとる人々を生み出したのも、また事実かと思います。


この25年でコンピューターや携帯可能な情報端末、つまりフィーチャーフォンやスマートフォン、タブレット等は大きく成長し、日々、猛烈な成長を遂げ多彩な端末を生み出しております 。


では、それらが操作性に優れ、万人全てが扱える道具かと言うと、決してそうではありません。


メーカーや端末ごとによって、多少の共通性こそあれ、操作方法は皆バラバラで、 

ある程度の慣れと端末への学習がなければ、使いこなすのが難しいのが、今の現状だと思います。


言い換えれば、コンピューターはまだまだ未熟で、発展途上の産物だと思うのです。



しかしその一方で、それら情報端末には、未知数の可能性があるとも考えています。


ソフトウェア(ソフト)やアプリケーション(アプリ)を導入することにより、

安易に機能拡張することができる一方、特定の目的に特化したソフトやアプリを作れば、

目的や不便を解決するための効率的な便利なツールになり得るのです。


ソフトウェアやアプリケーションの製作は頭脳と体力との勝負であり、

作業も決して、安易だったり容易なものでもありません。


しかし、目的をきちんと理解し、設計し開発をすることにより、

パソコンや携帯可能な情報端末を、魔法の道具箱のように、

何百何千行の文章書類を加工したり、計算したりする事ができます。


そしてそれらは良く、オーダーメイドスーツのようなものに例えられます。


それを実現するのが、私たちプログラマの使命だと信じて疑いません。

また、その知識をお裾分けし、お伝えするのも使命のひとつだと信じております。



オーダーメードで、既製品にはない、かゆいところに手が届く商品をお作りします。


 ITservice雄飛

代表 脇保 雄飛


経歴

1976年生まれ

1995年3月高校卒

1995年4月有限会三余 入社

2001年11月WindsGrageRacingSchool

(モータースポーツ競技学校)入校 

2011年3月有限会社三余 退社

2011年4月千葉商科大学入学

2014年6月屋号雄飛(ITservice雄飛)起業届提出

2016年3月 常駐型派遣業務に従事

2016年4月千葉商科大学 卒業

2019年11月 有限会社三余 社内SEとして従事 


保有資格

2012年6月

コミュニケーション基本スキル認定 取得

2012年7月

営業基本スキル認定 取得

2013年12月

ホスピタリティ基本スキル認定 取得



自己紹介

高校卒業後、仕事の傍ら独学で、コンピュータ全般知識とプログラミング習得に励む

2001年に四輪モータースポーツの登竜門 FJ 1600つくば地方選手権出場を目指し、

WindsGrageドライバーズオーディションに参加。

WindsGrageRacingSchoolに、 「優秀C」 で合格し、入学する。

2001年から2008年まで、仕事の傍らモータースポーツに励む。

練習中の事故や病気などが重なり、2008年に引退。


不動産賃貸リフォーム関係の業務に携わる傍ら、

社内効率化の仕組みを、 delphiにて独学 で構築する。


2009年には持病の関係から免許証を返納、車の運転ができなくなる。

2011年、 IT 関係と営業関係の技能を身につけるべく、私立系商科大学に社会人で入学する。


モータースポーツ活動で養った活動力を武器に、学部を越えて多岐にわたる講義を受ける。

学費を稼ぐためにソフトウェア開発のアルバイトを 営業活動の末に受託開発業務を行う。

2014年には起業届を出し、 営業活動の末に顧客を獲得、幾度かに渡って受託開発を行う。

学費の捻出と体調不良のため一年休学するも、 その間を利用し、

卒論として1万5千ステップの多目的コードエディタの開発を開発実験として行う。


2016年3月に、中途採用枠で、 就職と受託業務契約の仕事を探し、同月に常駐型派遣業務に従事する。


同年4月に大学を卒業、そのまま個人事業主として受託開発と常駐業務を行う。


2017年から18年にかけて幾度かに渡って体調不良を引き起こす。

2019年、療養に努めながら、古巣の会社に戻り、社内 SE として勤務する。


2020年より受託開発を再開、現在に至る。



使用言語

Delphi及びLazarus(Pascal言語)

VB系言語(主に、VBA、VBS)

HTML+Css3+JavaScript

PHP

Python 

(得意順。主に使用するもののみを列挙。)


開発手法

ウォーターフォール型開発経験: 3年

アジャイル型開発経験:9年

独学期間を含めた全ての開発経験:15~20年

主要 取り扱い商品

VBAによる手作業処理の自動化プログラム作成

(Excelマクロ)

手作業処理の 自動化プログラム作成

(ComObjを用いた、VBAを外部アプリケーションからの呼び出しによる)

デスクトップアプリケーション作成(※上記との連携含む場合あり)

(Delphi、Lazarus、C#等の開発言語による)

ホームページ作成

(WordPress+レンタルサーバによる)

初歩的なマンツーマンパソコン教室(現在はリモートのみ)

教育用言語を用いたマンツーマンプログラミング教室(現在はリモートのみ)

2020年6月13日土曜日

Lazarusから日本語対応でComObjを使ってExceVBAを呼び出す

おはようございます。

久しぶりの投稿です、ITservice雄飛です。

Lazarusから、VBAを呼び出して自動処理を書いています。
そして、Delphiで使っていたライブラリを、Lazarusに移植しております。

今回は、そのネタを。

Lazarusは、Ver2.08(64Bit)を使用しております。
Excelは、2016になります。

Lazarusは、開発環境内部の文字セットが、UTF-8です。

旧Delphi(Ver6位)だとAnsi、
新Delphi(XE前後以降)だと、Unicode。

更にUTF-8でそのままやると、Excel等とのアプリケーションの連携で苦しみます。

要は、文字化けですね。
やってみればなんてことはないのですが、
WideStringで変換を掛ければ一発で行けました。

Delphiとは似て非なるのがLazarusでもあり、その辺りは、
慣れと試行錯誤でしょうか?

以下がコードになります。

あとは、普通にVBAをDelphiで呼び出すようにして記述するだけです。

気持ち程度ですが、Delphiより処理速度が速い気もします。


procedure TForm1.Button1Click(Sender: TObject);
var
  Exl:Variant;                             //Excelを呼び出す為の器
  SheetNo,row,col:integer;          //シート番号、セル番号
  SheetName,CellValue:String;    //シートタブ、セルに入れる文字列
begin
  SheetNo := 1; //番号は1番(Sheet1)から。
  row := 1;        //Row1を指定
  col := 1;         //ColAを指定
  SheetName := 'シート名を代入するよ';         //シート名を設定
  CellValue := 'セルに文字を代入するよ';         //セル名を設定
  Exl := CreateOleObject('Excel.Application'); //ExcelのComObjを呼び出し、初期化する
  Exl.Visible := true;                                     //エクセルの表示をONにする
  Exl.DisplayAlerts := true;                           //警告(アラート)を有効にする
  Exl.Workbooks.add;                                   //ワークブックを新規に追加する

  //シート名を代入(WideStringで変換をかける)
  Exl.WorkSheets[SheetNo].name:= WideString(SheetName);
  //セルに文字を代入(WideStringで変換をかける)
  Exl.WorkSheets[SheetNo].Cells[row,col] := WideString(CellValue);
  //Excelを終了させる
  Exl.Quit;
  //Variantを初期化し、使用した痕跡を消去する
  Exl := nil;
end;


2020年5月21日木曜日

ExcelからSQLserver(ローカル)に接続する。

お久しぶりです、
ITservice雄飛です。

今回は、技術ネタを。

実家の会社の基幹となる小規模なシステムがあるのですが。

WinXP+SQLserver2000+VB6業務用アプリ、という、

すごーく、すごーーーく、古すぎる(運用20年)のシステムでして。

これがそろそろ、本当に壊れそうになってきた。

サポートはもう切れて(もう売ってもないし、サポートもしてくれない)おり。

仕方なく、Excelにて、臨時のシステムを作る事になりました。

Excelって、こういう時、本当に力になるよね…。

先ずは、データの吸出しから。

データベース(SQL Server)に接続する(ADO)
https://excelwork.info/excel/databasesqlserver/

こちらのサイトを参考に致しました。

しかし、繋がらない。

「SQLserverが存在しないか、アクセスが拒否されました」

と出る。

そこで、さらにググってみる。

すると、「接続文字列」、「名前付きパイプ」というキーワードに、
辿り着きました。

SQL Serverが接続に使用しているプロトコルを確認する方法
https://became-free.com/sql-dm_exec_connections/

ローカルで接続する場合、「名前付きパイプ」で接続する事があるらしい。
その場合、接続文字列も変わってくる。

'VBA code
con = np:sql\hoge

例えるなら、こんな感じで接続が通りました。

しかし、今度はテーブルが見つからないという。


再びググる、ググる。

すると、こんな情報が見つかりました。

【SQL Server】オブジェクト名”○○”が無効です
http://lifesiz.com/adsense/?p=30


SELECT * FROM hoge;

ではなく、

SELECT * FROM hoge_DB.dbo.hoge;

と、データベース名をきちんと明記する。

すると今度は、テーブルにアクセス出来ませんと出る。


また、ググる、ググる。

SQL Serverのオブジェクトに権限を設定する
https://www.atmarkit.co.jp/ait/articles/0111/27/news001.html


これで、必要な権限を付与し、実行すると。
無事、データにアクセスできました。

それでは。

2020年5月7日木曜日

プログラミング実践的入門!

おはようございます、ITservice雄飛です。

朝のうちに、昨日撮った動画をブログに反映していきます。

とうとう、(すごく自粛ムードに包まれた)GW、明けましたね。

テーマは、「プログラム実践的入門!」です。



Visual Studio 2019を中心に、説明しています。

途中、まだDelphiエンジニアの為、
アルゴリズムをソースコードに落とす例をDelphi言語で実践してます。

どの様に開発して、どの様にデバッグして、
どの様にエラーを克服して、どの様に学習していくのか?

その手順というか、手法を語っています。

また、IDE(統合開発環境)毎の操作の違いも、語っております。

環境ごとのキー割り当ての違いや呼び方の違いにも、言及しております。


それでは。

プログラミングに必要なもの2

おはようございます、ITservice雄飛です。

朝っぱらから記事書いております。
とうとう、GW明けましたね。
コロナ禍で自粛ムード全開でしたが。

さて、動画に入りたいと思います。

プログラミングに必要なもの2
というタイトルです。

プログラマは開発言語を使います。
その開発言語の選び方ですね、早い話が。

動画自体は、二日前に撮ってありました。



先ず、個人的にプログラマに必要だと思うものを書きました。

何を(どの様な環境)で何をしたいのか?
・Webアプリを作りたい?
・スマートフォンアプリを作りたい?
・パソコンで動くソフトウェアを作りたい?

それ(プラットフォーム)が決まったら。
何を何処から手を付けたいのか?
(どんなツールを覚える必要があるのか?)

JAVA?(フロントエンド~サーバサイド&マルチプラットフォーム)
PHP/Perl?(サーバサイド)
Phyton?((ほぼ)サーバサイド)
JavaScript&HTML5&Css3?(フロントエンド&動的HTML(Web))
C++?(デスクトップアプリ&スマートフォンアプリ)
C#.net/VB.net?(デスクトップアプリ(or Xamarin:スマートフォンアプリ))
Delphi(pascal)?(デスクトップアプリ(or FireMonkey:スマートフォンアプリ))
他物凄く沢山多数?(ShellScript,Bat,他凄い沢山…)

何がしたいか決めていって落としていくことだと思います。

また、それを勉強するうえで、自分の作りたいもの、自分が面白いと思ったもの、
そういう事を見つける事かと思います。

その中で、自分が長く付き合えそうな言語とプラットフォームを見つけることが、
プログラミングを覚えるコツだと思います。


2020年5月6日水曜日

プログラミングって何?3

ITservice雄飛です。

疲れ果て、UPして数日後に記事にしてますw。


先ず、お題の通り。
プログラミングって何?
何するの?どんな世界なの?

そんな事を中心に話しています。

プログラミングに必要な知識として、
・文章に対する常識的な読解力、記述力
・英語力(プログラミング言語はそもそも英語形式)
・論理的思考能力(物事を順序正しく整理整頓して語れるか)

この三つは必須だと思っています(私個人は)。

次にあった方が良いものとして、

・疑い力(何故それがそうなるのか、という観察力にも似た力)
  今動いているものでも、別のコードを弄ると、
  そこが動かなくなることが、普通にあります。
  そんな時、常に物事を疑い、疑問を持つことは重要になってきます。
  (但し、疑心暗鬼や猜疑心とは全然違う)

・アルゴリズム(流れ図やフローチャート等の構築力)
  動作手順書とでも言うべき、一連の動きを、
  手順にまとめて図解で示す力です。
  例えば、

    始め!
    ここから ずっと 繰り返し
      もし スペースキー 押された?
      ここから
        ウインドウ を 生成
        ウインドウ に 図を 表示
      もし ここまで
      でなければ 
      ここから
        もし ウインドウ がある?
        ここから
          ウインドウを 消去
        もし ここまで
      もし ここまで
      もし エスケープキー 押した?
      ここから
        繰り返し 終了
      もし ここまで
    繰り返し ここまで 

  「始め!」でアプリが立ち上がり、ループ処理が行われ、
  スペースキーが押された時に、図を表示するウインドウを出す、
  架空のプログラムのアルゴリズムを書いてみました。

  端的に示すと、「この様な思考が出来るか?」と言う事です。
  書籍やWebからコピーして組むだけなら、問題ないでしょうが、
  一から組む場合は、必須でしょう。

・精神的な耐性(色々な意味で)
  PCに起こる、障害やそれに伴う苦労に耐えられるか?
  メモリが足らない、CPUが遅い、処理に時間が掛かる、
  処理が間違っていて動かない、動かない原因が解らない。

  そんな時、イライラキーキー、する事なく、落ち着いて考えられるか?
  そんな能力になります。
  ある意味、デバッグやテスト、開発でも、必須に近い能力でしょう。

・たゆまぬ努力心
  ある意味必須です。
  常に努力し続けられるか?
  この一点につきます。
  コンピュータの世界は日進月歩どころか、分針秒歩の世界だと、
  私は個人的に思っています。
  その様な中に置いて、努力をしないのは、
  プログラマとして死に等しいと思っています。
  今の時代、数百近い開発言語があり、それが年毎に優劣が変わり、
  場合によっては、使っている言語が廃れてしまう事もある。
  その場合、乗り換えも考えないといけない。
  乗り換えなくても、改あh津言語のバージョンアップに対応しないといけない。

  その意味では、正に努力の放棄は致命的でもあります。

・忍耐力、我慢力
  ここは、図と幾分ズレてしまいましたが。
  要は、原因不明や、重い処理、思い通りの処理が走らない時、
  忍耐強く調べ、デバックや開発を続けられるか>に尽きます。
  本気でやる場合なら、これはもはや必須でしょう。

・文系理系を問わず、なんかなロジックでも、
 諦めずに構築/読解出来るか?
  これは、難しい処理を読めるか、という単純な意味では無く、
  ・難しい事を簡潔に判り易く書けるか?
  ・難しい事を難しく書いて、難読化させていないか?
  ・その様な難読なコードでも、簡潔化して脳内で図示出来るか?
  に尽きます。

  仕事で組む上では、必須かもしれない、ある意味。


この様な感じでしょうか?

いきなり、全てを得るのは不可能ですし、
それをいきなりしてしまったら、脳が壊れてしまいかねない(心理的に)。

と、思います。
少しずつ、じっくり得ていけばいい話だと思います。

それでは。

2020年5月4日月曜日

プログラミングって何?2

こんにちは、ITservice雄飛です。

プログラミングって何?
第二回目をやってみました。

今回はちょっとだらだらになってしまって申し訳ない…。


内容は、プログラマってこんな事してるよ、
失敗から教訓得て何か作ってるよ、
前年作ったベストは、今年から見て黒歴史…、といった、
プログラマあるあるネタを中心に話してみました。

また、規模を小さくすると良いもの出来たりするけど、
規模大きくすると、良いもの作るの、途端に難しくなったり。

開発するのも、常に失敗の連続で、
そこから経験得て、良いもの作るノウハウためたりします。

今回はだらだらなってしまったので、
次回は、きちんと内容揃えて、やってみたいと思います。

要は、場数踏んで、経験積まないと、何も作れないよ、っていう事。

で、そのためには、コツコツ小さな経験沢山積んで、
頑張るしかないよ、ってこと。

今回は、そんな感じでしょうか?

説明もだらだらになってしまいましたが。


それでは。