はてなキーワード: vbとは
↑を書いた元増田ですが、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とかの統合開発環境は覚えたほうがいいけど、初学の段階で学ぶ必要はないと思ってる。
確かに「統合開発環境を使いこなす」ことは現在の開発だと基本なんだろうけど、かといってプログラミングの本質ではないので。
python, javascript, rubyあたりを初めての言語に勧める人いるけど、やめた方がいいね。
上級者向け。
これらの言語で簡単と感じるのは、入門書に載ってる数行程度のコードの時だけ。
数十行、数百行程度でもすぐ難易度上がってくる。
VBならVisualStudioインストールすれば環境構築終わりやん
C++は全然詳しくないので、それこそSTLがどうこうみたいなのは正直分からない。
あくまでCとの比較なんだけど、一般的に難しい方の言語と言われるRustでも、Cのソースに比べたら全然読みやすいことにびっくりした。
特にポインタ周りの記述は、&とか*の書き方がCから少し変わっただけなのに、ぐっと読みやすくなってる件。
これならCやRustを使う上で絶対的に必要な、メモリの話も理解しやすいだろう。
なので先にRustを学んでおけば、後でCに取り掛かる際のハードルはだいぶ低くなりそう。
そうなると、今だと全くのゼロからプログラミングを学ぶなら順番としてはPython→Go→Rustになるのかな。
正直JavaやC#やSwiftは必要になってから学んでも遅くはないし、Goを知っていれば多分そこまで難しくない。
能力低いやつが流行りの技術に飛びついて、中途半端な状態でどんどん移り変わってるのはそのとおり。
けど、能力が高いやつは基礎的な技術もしっかりおさえた上で、流行りの技術もしっかり理解吸収して結果も出してる。
結局どちらにしても新しい技術の習得をしないわけにはいかない。
勉強しないやつは中途半端な状態にすらなれないまま、だんだんと働けるプロジェクトがなくなっていくからな。
入社時 2000 年頃に VB を覚えて、そのまま 2010 年も 2020 年もずっと VB 一本でやってきたという人の話を聞いたことあるけど、最初は単価が下がっていって、最後は案件がなくなって Excel にテスト結果を画像で延々と貼り付ける仕事になったと言ってた。
https://www.publickey1.jp/blog/22/javascripttypes_as_commentsjavascripttc39.html
Javascriptが登場したころはVBでさえ、型宣言は省略せずにしっかりしようって言われてたのに、その後Perl、Javascript、Ruby、PHP、Pythonなど、動的型の言語が広まってしまう。
その後に一部で関数型の言語が流行ったり、Rust、Go、TypeScript等が影響力をもって、JS,Ruby,Pythonでも型チェックのしくみを取り入れようという動きがでてくる。