はてなキーワード: 統合開発環境とは
↑を書いた元増田ですが、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からコンパイルだ実行だくらいの基礎は知ってて当然だと思うんだが。
だったらコンパイルエラーや実行時エラーに悩まされにくい、難易度低めの言語を選ぶのがいいと思う。
あとエラーメッセージを読み解くのも、基本はコマンド打った結果から類推したりエラーメッセージをググるところからじゃないの?
基本の基本がCLIと言ってるだけで、統合開発環境での開発は否定してないから(むしろ効率的な開発には必須)。
プログラミングの本質であるデータ構造とアルゴリズムを常に意識するレベルになったら、CLIは用済みにしちゃってもいいと思う。
プログラミングを学ぶなら、ゆくゆくはネットワークの話とかも知っていかないといけない。
あと環境依存ではないプログラミングの手法に、できれば最初から触って欲しい。
そんでプログラミングの基本はターミナルでコマンド入れて"Hello, world"だけど、それをコマンドプロンプトとかPowerShellでやるのは微妙。
そう考えるとできるだけUNIX系か、それに近いインターフェースを持つOS上でプログラミングしたほうがベター。
だから理想を言えばLinuxでプログラミングを学ぶのが一番だけど多分ハードルが高すぎるので、macでもいい。
もちろん、これは「欲を言えば」くらいの話ね。
Windowsでプログラミングを始めるのは「良くはない選択」だが「絶対に避けるべき」という話でもない。
だからWindowsのコマンドプロンプトやPowerShellでプログラミング事始めというのも「まあ仕方ないか」みたいな感じ。
あとVSCodeとかの統合開発環境は覚えたほうがいいけど、初学の段階で学ぶ必要はないと思ってる。
確かに「統合開発環境を使いこなす」ことは現在の開発だと基本なんだろうけど、かといってプログラミングの本質ではないので。
GPGPUアプリケーション開発の環境およびAPIとしては、ハードウェア内部構造自体が汎用性を増したDirectX 10世代の統合型シェーダーアーキテクチャGPUの登場以降、NVIDIAによるGPGPU専用の統合開発環境「CUDA」や、AMDによるGPGPU基盤「AMD Stream」(旧称ATI Stream)、そしてクロノス・グループによる標準規格「OpenCL」が現われ、GPGPU活用の幅が広がりつつある。 https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%8E%E3%82%B9%E3%83%BB%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97
Windowsの中に仮想環境作るのでまったく要らないってわけでも無いけど(なので出来たらメモリ16GBくらいは欲しい)
ローカル(PC)💻がイマイチとか何も入れたくねぇなの場合はAWSとか使ってもいいしね
AWSマンガ第 2 話:快適な統合開発環境( IDE )を手に入れろ! ( 1 / 4 )
https://aws.amazon.com/jp/campaigns/manga/vol2-1/
上記のは例だから興味なければ忘れていいよ。必要が出たら覚える・調べるだろうから
SSDで最低256GB以上(できたら512GB以上が望ましい)、CPU i5以上、メモリ16GB(予算が足りなきゃとりあえず8GB)で
追記:
あとノートPCは仕事や気分転換で持ち運びする様のものっていう認識の方がいいよ
足りなかったねん(´・ω・`)
ワイはエンジニアやがVisualStudioかAndroidStudioかXCodeとか統合開発環境使うからエディタは使わんやで