プロが教えるわが家の防犯対策術!

来春から理系(工学部電子工学と情報MIX)大学生1年生になる娘から
プログラムの勉強をするのは何からしたらよいか聞かれました。
最適な紹介方法を教えていただけないでしょうか?


小学生・中学生のロボットプログラミングスクールならば、
microbitのCPUボードなどあり、ブロックを並べてプログラムを組みますが、
もう少し高度な勉強をするべきと考えます。


また、PC系、組み込みMCU系などいろいろあり範囲が広く、
本人が何を作りたいかで選択させたいのですが、
今の時代に役立つものを提案したい考えです。

例1
 ラズパイ Linuxボード操作
      C言語、(ほかもある?)などでLinux上で動かすプログラムを作る。
      インターネット、クラウド操作や、画像取扱などできそうだが、
      プログラムが非常に難しそう。
例2
 PC   ソフト:VisualStudio
      C言語、(ほかもある?)などで自分でGUI環境を作り、
      WindowsのPC上でプログラムを作成する。

例3
 スマートホン・アンドロイド ソフトなど不明
      自分でGUI環境を作り、
      スマートフォン上でプログラムを作成する。

その他言語として、JavaScript、Pythonなどの言語も有名です。

どういったハードを用意してどういった言語プログラムが使えるか
簡単かつ面白く実用的なセットがあればご紹介お願いします。

A 回答 (7件)

pythonがお手軽かな?



①1行や数行のプログラムなら REPL で簡単に試せる。
②プログラム作り始めるのに決まりきったコードを書く必要が無い。
③コンパイルやリンクといった作業が不要
④取敢えずオブジェクト指向は不要。
もちろん使えるので後から覚えることも可能。
⑤公式のドキュメントが日本語化されており、チュートリアルも
日本語で読める。取敢えず教科書は無くても始められる。
⑥インストール簡単
⑦Pythonで動かせる Jupyter Notebook は理系の学生の科学技術計算や可視化のツールとして必須になりつつあるので、理系の大学の学生なら
やっといて損が無い。

python触って、プログラミングの雰囲気が分かったら
改めて言語選択すればいい。

言語によって、得意/不得意があるので、そこはゆっくり調べてほしい。

デスクトップGUIアプリ C#
科学技術計算、データの可視化 Python
Webアプリケーションのバックエンド Java, SQL, PHP
Webアプリケーションのフロントエンド HTML, CSS, Javascript(+React etc・・・)
モバイルアプリ Java, Kotlin
組み込み、電子工作 c/c++, python
    • good
    • 0

まだ入学していもいないのに本格的なものをすすめてうまくいかない気がします。


ちゃんとした言語は学校で勉強することにして、とりあえずプログラムを書いて動かすのは
Hot Soup Processor(HSP)がお手軽です。
Windowsで動くのでWindowsのパソコンがあればいいです。
https://hsp.tv/

もし高校までである程度Javaを習得しているなら、JavaでAndriodスマホアプリ開発もいいかもしれません。
    • good
    • 0

>PC上で動作出来る物としてオススメの言語は何になりますでしょうか?



まず、画像を表示したり動かしたりとかではなく、エクセル表のような人事データとか気象観測データの情報処理をしよう(グラフ化するとか)、という場面を想定します。たぶんお嬢さんが大学でやるのは、そういうことです。

そして条件として、無料で、コンパイルが不要なインタプリタ―形式で、型宣言が不要で、ということを考えれば、Rをお勧めします。最初は電卓みたいに使えるからです。

Rubyの推薦がありましたが、これも否定しません。でも入門にはどうかなって思います。大量データ処理に向いている本格的なものだからです。

プログラム言語の文法は、ウォーターフォール型(先頭からデータを受け渡して処理していく形式)であれば、おおかた同じです。

私なんかは、たぶんご質問者より年配なので、若い頃はN88BASIC、会社に入ってからは(技術者なので)FORTRAN77、最近はデータ処理が多いのでRです。

Rはサブルーチンは無いですが、その代用として関数というものを使いますので、構造は全く同じです。

構造が同じなので(いわゆるフローチャートで図示できるから)、コマンドの違いさえ覚えれば、同じ感覚で書けます。移植も容易です。

他の方もおっしゃっていますが、処理する流れが分かってしまえば、同系の言語ならすぐに使いこなせます。また、移植が可能な、可読性の高いコーディングが出来るようになります。ひとつに決めてしまうと、このような能力は養われません。
    • good
    • 0

> @Studioの勉強は古いでしょうか?



@Studioってのは聞いた事がないんで、なんとも言えません。
ただ、繰り返しますが、敢えて言うと、「何の言語で最初にプログラミングを学ぶのか」はさして重要じゃない。
そっちじゃなくって、「どんな入門用書籍があるのか」が重要なんです。
例えば、現行、Pythonが人気がありますが、ぶっちゃけ、Pythonを利用した「プログラミング入門用書籍」にはロクな本がない。
ハッキリ言って「おかしな書籍」ばっか出てるのが現状です。
「金を払ってまで」買って「やる」必要がない。
だから推薦しない。
最初は無料で、大して量がなく、簡単に終われる書籍が望ましく、そういう資料がWeb上ではRubyしかない。
だからRubyを挙げたわけです。

> 昔のvisual cみたいな、GUIを作りC言語を使うのかな?

GUIはライブラリ次第なんだけど、大学でもGUIの勉強なんて(やるかもしれんけど)そうそうしません。
と言うか、CLIのプログラミングをまずは出来ないとそこまで行かないでしょ。
GUIをやりたい、と言うのならSmalltalkに始まって最近だとScratchとかありますが、やってもいいけど大学での学習にはあまり直結せんでしょう。

Scratch:
https://scratch.mit.edu/

Scratchは子供には人気あるけど、

> もう少し高度な勉強をするべきと考えます。

と言う要件には合いませんね。

> Rubyは聞いたことありますが、PC上で動作するとしてもどう行ったアプリが作れるかあまりイメージがわきません。

RubyはどっちかってぇとWebプログラミングで人気がある言語ですね。
今は違うけど、元々TwitterなんかはRubyで作られました。
ただし、汎用プログラミング言語で、ライブラリ次第でデスクトップアプリも作れるでしょう。
ただし、繰り返しますが「Rubyを使い続けろ」ってのが意図じゃない。
言語なんざガンガン変えていいんです。

「一つの言語にこだわってそれを極めるべきだ」

なんつーのは30年前くらいの考え方で、Turbo CとかTurbo Pascalがブイブイ言ってた頃、「大金払ってPCと言語処理系を買わなければならなかった」時代の考え方でしょう。30年くらい前だと「何でも買わなアカンかったから」金を払った以上、嫌でもそれにこだわらないとなんなかった。
反面、今の時代だと言語処理系なんざ大体タダで入手出来てすぐ試せる。30年前くらいの「大金払った後の背水の陣」とは大違いだ。
繰り返すけど目的は「プログラムを書く」と言う概念を手っ取り早く掴む事です。掴んでしまったら別の言語(例えばPython)なんかにパッパと移行しちまって構わない。しかし最初は「薄い分量ですぐ終われる手っ取り早い」プログラミングに対しての概要をつかめる文書が必要で、それがあるのは日本ではRubyだけ、なんです。
だからRubyを薦めただけで、「Rubyを使い続けなさい」は全然意図していません。
「初心者にわかりやすい」文書の存在次第、なんですよ。
    • good
    • 0

情報系でデータサイエンスをやるのであれば、PythonかR。



特にディープラーニングなど機械学習系は、Python。
一方、ビッグデータの分類、回帰など統計的な処理を学ぶのであれば、R。

でも、このような言語の選択は大学に入ってからでも遅くはありません。
それより、forループとか、条件分岐とか、基本的な構造を知っておいた方が良いです。共通ですから。

ただ、オブジェクト指向は別物です。JavaとPythonを並べて論じることがおかしいと思います。ホームページ制作とかは、一般のウォーターフォールのプログラミングとは異なった知識が必要です。

そんなことを教えてあげたらどうでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
データサイエンス、ディープランニングと今話題の処理に適したプログラムであり強く意識したいと思いますが、個人でなかなかデータなど集めづらく一旦は保留。おっしゃるfor,ifなどの基本構造勉強をするべきと考えました。
この勉強はPC上で動作出来る物としてオススメの言語は何になりますでしょうか?

お礼日時:2022/12/11 06:29

PCでO.K.


概要を掴むだけならRuby

Ruby:
https://www.ruby-lang.org/ja/

をダウンロード/インストールして次の文書に従って「プログラミングの概要」を掴めばいい。

プログラミング入門 - Rubyを使って - :
https://ie.u-ryukyu.ac.jp/~kono/software/s04/tut …

真面目にやれば二週間もかからず終える筈。
それで「プログラミングの概要」を掴んでから「次に何をやるか」改めて考えればいい。
とにかく最初は「手っ取り早くプログラミングと言う作業の概要を掴む」事。言語よりも手っ取り早く概要が掴め、早く終われる短い文書が最初の取っ掛かりとしては良く、上の文書が今まで見た中では一番短く良かった。
つまり、「石に齧りついてでも一つの言語にこだわって詳細を知ろう」とするのは無駄だと思ってる。
別にずーっとRubyを使い続けろ、って言ってるわけじゃなくって、取り敢えず拙速だろうと「一つのプログラミング言語を終えた」事はその後の自信に繋がると思う。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
Rubyは聞いたことありますが、PC上で動作するとしてもどう行ったアプリが作れるかあまりイメージがわきません。
私の古い知識で恐縮ですが、PC上のアプリが作りやすいものとして@Studioがあります。
昔のvisual cみたいな、GUIを作りC言語を使うのかな?
@Studioの勉強は古いでしょうか?

お礼日時:2022/12/11 06:21

>プログラムの勉強をするのは何からしたらよいか聞かれました


娘さんの質問?があいまいですね。
まずは、工学系ですからプログラム言語の学習科目はあると思います。
プログラムにとても興味があるので、まずは初心者向け言語は何か?
なのか、就職先の分野を考えてどんな言語を覚えた方がいいのか?

この辺を整理しないと・・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!