はてなキーワード: VBとは
大したこと言わないよ。
大昔だ。ブラウザがNetScapeでWindows2000からXPに移行し始めたみたいな頃。
MS SQLにMS AccessをUIにしたクラサバシステム。それなりに需要があったんだ。
んで、データベースが何なのかすらわからない新卒の自分が参考書どおりに作って言われたことが
DoCmdは使うな!
最初なんで?と思ったが、確かにこれはある意味正しかったと思う。
全ての処理をVBAで組むことになるので、VBでも同じような処理を書けるようになった。
レコードセットとかカーソルとか、DoCmd使っていたら理解できなかっただろう。
後々ASP(.netじゃないほう)での開発やら、OracleDBの…なんだっけ?oo4oか、とかの操作がイケたのもそのおかげだろう。
その後の勉強不足で、VBの呪縛から抜けられないまま現状に至るわけだが。
なのでもし、仮に、万万が一Accessで恒久的に使うかもしれない何かを作ることを迫られたら断れ!
[自社開発メガベンチャーをわずか半年で鬱退職した雑魚エンジニアの話|JoanOfArc](https://note.com/joan_of_arc/n/ned510ca913c7)
1. 今はなき鉄鋼メーカー、研究所で新規シミュレーションコード立ち上げ
メンターが米国自動車メーカーへ転職して途方にくれた。電磁気学の教科書を読み漁って掲載されているサンプルコードを理解して、コード手打ちして3ヶ月で動く様にした。社内で誰も見たことが無い結果に驚かれた。
2. 鉄鋼メーカーの人員削減が若手にも迫ってきたので、電子部品メーカーへ転職。コードは書かず開発現場で製品試作品の制作をモクモクと行う。
3. 色々あってプログラマー派遣会社へ転職。ドコモ向けのアプリのテストデータを作成するだけの仕事をアサインされた。楽勝の仕事だったが、拘束時間が長く半年で10kg太る。
4. 派遣で今はなきシャープ常駐でデジカメファームウェアの開発現場に放り込まれる。C言語の未知のコードとLSIの仕様書に戸惑ったが、親切な若手社員に助けてもらって独り立ち出来た。2年程やったが、雇い止めに合った。
VC++製の画像処理アプリもメンテした。VBの画像処理アプリも自作した。
5. 現NTT、当時住友銀行子会社で常駐で電磁界シミュレーションアプリの新機能開発を担当。分散処理による計算時間短縮を狙う部分を担当。分散処理はMPI(現OpenMPI)を使用。まずはパソコン2台で分散処理を行うもNIC(LAN Card)がボトルネックで計算は出来るが1台で計算するよりパフォーマンスが出なかった。職場にジョインしたあとは、しばらくは訳がわからず、戸惑った。通勤時間が長く体が消耗した。
派遣プログラマーは嫌で正社員で働きたかったので、プログラマーにこだわらず職場を探した。知財の職に採用されたので、常駐先と派遣会社に退職を願いでると引き止められて困った。退職を強行して転職できた。離職票の入手に苦労した。暑い夏だった。
6. 中小製造メーカーの知財の職場では要領よく仕事をこなしていると時間があまる。余った時間で社内WEBサイトを作ったりした。使ったのはASP(ASP.NETの前身、VB.NETでコーディング)。フレームワークに従ってコードを埋めるとそれなりに動いた。DBMSはAccessを使った。要するにmdbファイルにデータを保存した。更新処理は管理者のみ、データの閲覧が主な機能であるWEBサイトだった。
7. 知財の仕事は楽勝なのだが、やはり開発の仕事に未練が出てきた。iOSアプリの開発もやってみたくなった。10年以上知財の仕事を行ったが思い切って無職へ転向した。親父も無くなり、遺産の整理もサラリーマンを行いながら難しかったのだ。(つづく)
ずっと忘れていた。
いや、脳の奥に生乾きのかさぶたのようなものがじっとりとこびりついて、ふとした時に思い出したりはしていた。
なぜだか、それが昨日になって出てきた
百子はJava言語の技術者だった。いや、技術者か分からないがJavaを学ぶ25歳の若い女性だった。
当時Java言語はJ2EEの登場により大きな注目を集めており、エンタープライズ用途で稼働していた業務系アプリケーションをWEBベースのJavaアプリケーションへのリプレースする事が大きな需要を生んでおり、VBやDelphi又はバックエンドとしてのCOBOL等で活躍していたエンジニアは技術転換を求められていた
現在も大して変わらんないかもしれないが、業務系エンジニアにコンピューターサイエンスを学んだ者は少なかった。
文系出身で(数学としての)関数や代数もちゃんと理解しているのか怪しいような者も数多く居り、当然ながらオブジェクト指向言語に戸惑う者も多かった。自分がそうだった。
当時の技術コミュニティはいくつかはあったが、古くからあったがどれも敷居が高かった。
fj.comp.lang.* (ネットニュース:現在と意味が異なる)は正当な技術者も多かったが初心者が書き込める雰囲気が無かったり過疎っていた。ニフティーサーブやPC-VAN等のパソコン通信(当時既にサービス名が変わっていたかもしれないがみんな昔の名前で読んでいた)をベースにしたものは歴史があったが、老害が偉そうにしているフォーラムも多く、やがて廃れていった。
そうした中で初心者も熟練者も和気あいあいと活発な議論が行われていたのが、JavaHouseというメーリングリストのコミュニティだった。
主催者は現在インターネットセキュリティの大物左翼として時折世間をビビらせまくっている、ひろみちゅ先生こと高木浩光氏。当時既に産総研の研究者になっていたとはいえ、あくまで個人が手弁当で運用していた。無料で誰でも自由に入退会ができるコミュニティであり、他に行き場のなさを感じた初心者のJavaエンジニアたちにとって大きな心の拠り所となった。
でも百子が注目された事があったのだ。
当時は適切な印刷用の整形ソリューションが無く比較的頻繁に挙がっていた話題で、
百子も同様に苦しんでいた
するような方法が、現時点ではり一ゾナブル
かとも思います。
ドラえもんのようなひらがなとカタカナを組み合わせたチャーミングな文体でその焦りを徹底的かつ高度に表現していた。
しかしこの議論中に問題が起こる。JavaHouseに障害が発生しメールが配信されない事象が発生したのだ。
NFSで他のサーバーにマウントしていたが不要と思われたNFSサーバーのデータを一部で参照していたため処理が行えなかった、応急的に対応したが根本対応を後日行うと管理者の高木浩光は告げた。
しかし、議論が途切れた事を不安に思った百子は高木浩光に直接確認を行った。返事は帰ってこなかった。
> This Message was undeliverable due to the following reason:
> The user(s) account is temporarily over quota.
というエラーで戻ってきました。
いろいろとご心配のようでしたので(その内容については書きませんが)、迅
速にお返事を差し上げる必要を感じておりますが、上記の通りでは、連絡の取
り様がありませんので、やむを得ず、お返事を差し上げた事実をここで示させ
ていただきます。
まるで百子に非があるかのように。
恥ずかしさと悔しさで真っ赤となった泣き顔の百子を想像することは難しくない。
次はインスタンス生成時のコストに関する伝統的な議論であったが、
その流れで議論とは関係が無かったが百子はやりとりのマナーについて言及した。
議論をしていた者たちは本質的では無い指摘に形式的な謝罪をしたが、
高木浩光だ
そんな慣習はありませんよ。
きっと百子は憤然たる思いを抱えたに違いなかった
最後に決定的な事が起こる
先日の障害の復旧のためメンテナンスのためサービスを停止すると高木浩光が予告した。
百子はさんざん煮え湯を飲まされてきた高木に対して
以下ちゃちゃです。
全サービスが利用不可というのは、大変なことでしょうに。
以上、ちゃちゃでした。
挙げ句Javaコミュニティを自分で立ち上げてみてはどうかと言う者まで現れた。
か弱く繊細で思いやりのある儚き百子が、このような嘲りに耐えるのは致命的な苦痛だったに違いない。
百子は精一杯の力でJava界の将来についてその想いを書き綴った
私が恐れているのは、恐怖の日が襲い、対応の行動が遅すぎる前に
協議を行って欲しい、ということです。
別れは突然訪れた
「百子の夫です」
技術コミュニティに相応しない短い件名の投稿は衝撃的なものであった
私の妻百子は11日に進行性癌に伴う急性心不全で永眠いたしました
25才でした
医師の診断をもらったとき私たちに残された時間は1ヶ月というものでした
毎日が恐怖でした。、
なんという事だ!こんな悲劇があってよかろうはずがない!
しかもあのプりントアウトの話をしていたときには余命を悟っていたのか。
自分は打ちのめされた
そしてさらに衝撃的な事が続く
百子は先週からふさぎがちになっていました
聞くとブー様とうまくいっていないのではないかということでした
百子はずいぶん前からたびたび高木という男の名を出してひとりでジャバなる
パソコンを動かし一人で全部やってのけているのだと絶賛しておりました
おのれ高木さんめ!いや、ぶー様め!
百子の心に闇で満たしたという事か。
悔しくてウイスキーをストレートで何倍も痛飲し、この辛い出来事を忘れるように努めた。
自分はアプリケーションのプログラミングをする事もすっかりなくなっていた。
数年に1度くらいフッと湧き上がってくる事があったが、すぐに忘れようとした。
しかし、昨日はなぜ、菊池百子を思い出したのかずっと考えていた。
ずっと、ずっと
愛していたんだと思う、百子を。
直接会ったことはないし、見たこともない、投稿の文面の文字でしか見ていない、直接のメッセージのやりとりもしていない、だけど確かに自分は百子を愛していた。
雅人よりもずっと。
ぶー様よりもきっと。
Rest in peace, I love you.
https://web.archive.org/web/20091027013532/http://java-house.jp/ml/archive/j-h-b/052276.html#body
製造業や金融でエンジニア引抜で年収2割増しらしいのでこれから転職考えているブラック企業エンジニアや一人社内SEに向けてアドバイス
自社開発している会社じゃ当たり前レベルだが、今盛り上がっている業界ではそれだけで凄いと思われる。
あとベンダー系の資格と違って上流工程やネットワークとかもさわりは学べるので働くにも便利。資格より経験と言われる業界だけどぶっちゃけ中小の一般企業はPythonで何をどうとか言っても響かないぞ。
ネットワークの基礎知識得るにはこれで充分。基本→応用→ネスペと行くならより上位を取るべきだろうが今盛り上がっている業界はLAN繋げるだけで凄いと言われたりする業界だ。主に外の技術者と話すための知識だ
GoogleとMSもあるけど正直AWS一択はまだ続くので学んで損は無い。初歩の資格だけどAWSの各種サービスを知ることができるのでシステム構築するときにあんなサービスあったよなと思いだせるようになるので良いぞ。これも外の技術者用
ハードル高そうだけど世の中の本屋にある教則本を1冊やりきって1%くらい自分らしさ出してGithubに載せて履歴書にURL乗せておけ。で当日動かしてアピール。これはたまに古参の小太り社内SEが知ったかぶりでマウント取ってくるの防ぐための先制パンチだ。もちろん単純に人手不足だけど能無し技術者引きたくないって純粋な人にも刺さる。これってあの本のソースですよねとか言ってくる奴はごく一部の会社以外居ない(まれに著者に会います)
サーバ構成とか言語とか先に書いておいてそっち読んでと言っておこう。システム構成図書いとけ。口で言うの面倒だし。そうすれば相手は頑張ったことや学んだことくらいしか聞いてこない。たまに小太り社内SEがVBって聞いてVBAとかだと思ってマウント取ってくるけどお前はAccessでDB管理している気分楽しんでろ。(Access自体に罪は無いです)
面接とかマジでアディショナルタイム。職務経歴書をせこせこ書き1個くらい携わったシステムの構成図と各種技術を描画しPDFにしておき、あとはその会社のHPなんとなく眺め暇だったら四季報の業界地図でその業界のなんとなくの雰囲気を覚えれば話は弾むからみんなさっさと転職しよう。もちろん職場は引き留めに入るかもしれないが金以外の交渉は受け付けるな。出す条件は賞与除いて額面で年収600で。上の条件取ってれば残業無し賞与別で年収500は固いよ。
自分が止めた後もっといい条件で前の職場が募集するかもしれないとか思うかもしれないがお前を好待遇で引き留められなかった会社がそれ以上の価格でスタートラインではお前以下の人間を雇えるわけないし、運よく雇えてもとてつもない物を期待するからその人も同じ金額でもっと楽なとこに転職するから気にすんな。
↑を書いた元増田ですが、VBの話から派生した話で、やたらコマンドライン(以下CLI)を使った開発に否定的な人間がいて閉口した件。
そりゃ一口に開発と言っても色々なので、本当に統合開発環境(以下IDE)だけで開発するケースもあるのは、こっちも知ってるんだよ。
だから学習者の中で「何をやりたいか」が既に決まっているなら、CLIを全く触らずプログラミングを学ぶケースもアリということなのだろう。
1つ目は、そもそも「プログラムって何?」というレベルの人が「何をやりたいか」なんて決まっているわけがないので、最初から「何をやるか」を決めてかかるのはナンセンスという話。
むしろどういう開発に進んでもいいように、「等号は代入を意味する」辺りから始まって、どんなプログラミングでも基礎の基礎になる、データ構造とアルゴリズムを意識させることに集中させたい。
そのためには難易度低めで比較的潰しが効く言語を、できるだけシンプルな手順で作業できる開発環境で学べる方がいい。
そしたらPythonの実行環境とそこそこ以上の機能を持つテキストエディタを入れて、コマンドプロンプトとかPowerShellとかのCLIから"Helllo, world"が取っ掛かりだと思うわけ。
もしLinuxの環境が用意できるなら同じことをLinuxでも試してもらって、プラットフォームに依存しない開発の入り口くらいを知っておければベター。
いずれにせよ何かを実行する方法が1つではないという重要な知見は、できれば基礎のうちに知ってもらいたいことの1つだし、それはWindowsとLinuxとかCLIとIDEという対比がうってつけかなーと。
ちなみにIDEは、Pythonによる手続き型プログラミングに慣れた後のタイミングで学べばいいと思う。
そこまで行ったら変数の型や、クラスとオブジェクトとかの難しい話をGo言語で学んでおくことで、現場で使われているJava、C#、swiftへの移行もスムーズになりそうだし。
ちなみに「初心者コース」の最後、もし可能ならRustでポインタとメモリの話の触りくらいを体験してもらえると、組み込みに進む際のハードルが少しは下がるんじゃないかな。
もう1つは、いくら現場によってはIDEだけで開発する現実があっても、CLIを使った開発がどういうものかくらい、プログラマにとっては知ってて当たり前じゃねーの?という話。
もちろん「プログラマが何を知ってて当たり前なのか」は、時代の移り変わりとともにどんどん変わる。
大昔ならおそらく機械語とかが必須だっただろうけど、今なら機械語よりはHTMLを読めるほうが遥かに重要なわけで。
あと、UNIX系OSをパーティションごとに主要なディレクトリを分割してインストールしていた時代であれば、edエディタの使い方は必須だったと聞く。
(/binに入るエディタがedのみだったため、もし使えないとシステムクラッシュして/以外マウントできなくなったときに詰む)
でも今やそんなの完全に過去の話どころか、viとemacsの論争ですら多分古い方の問題になるだろう。
そういう過去の諸々も踏まえるとCLIが未来永劫、プログラマにとって常識的なナレッジだとは自分も思っていない。
でも今はまだ、プログラマを名乗るならCLIからコンパイルだ実行だくらいの基礎は知ってて当然だと思うんだが。
確かに。
Access便利そうだな、簡単にWindowsでDBを扱うアプリが作れそう。
って思って、ちょっと触ったら「VBで書くのかよ。騙された。。」
ってなった。C#なら喜んで使ってるんだがなぁ。
cmdがPowershellになったような感じで今後進化することを期待する。
C++もC#もVBもVS入れたら終わりで環境構築に苦労したことほとんどないやで
苦労したのは組み込み開発の構築くらいやな
プログラミングを学ぶなら、ゆくゆくはネットワークの話とかも知っていかないといけない。
あと環境依存ではないプログラミングの手法に、できれば最初から触って欲しい。
そんでプログラミングの基本はターミナルでコマンド入れて"Hello, world"だけど、それをコマンドプロンプトとかPowerShellでやるのは微妙。
そう考えるとできるだけUNIX系か、それに近いインターフェースを持つOS上でプログラミングしたほうがベター。
だから理想を言えばLinuxでプログラミングを学ぶのが一番だけど多分ハードルが高すぎるので、macでもいい。
もちろん、これは「欲を言えば」くらいの話ね。
Windowsでプログラミングを始めるのは「良くはない選択」だが「絶対に避けるべき」という話でもない。
だからWindowsのコマンドプロンプトやPowerShellでプログラミング事始めというのも「まあ仕方ないか」みたいな感じ。
あとVSCodeとかの統合開発環境は覚えたほうがいいけど、初学の段階で学ぶ必要はないと思ってる。
確かに「統合開発環境を使いこなす」ことは現在の開発だと基本なんだろうけど、かといってプログラミングの本質ではないので。