- ベストアンサー
WEBサービスやアプリなどで技術だけではわからない
WEBサービスやアプリなどで技術だけではわからない場合どうやりかたを調べるのでしょうか? 下記のようなサイトなどJSの技術だけではどうやって作るのかわからないことが多くあると思います。 http://craverse.com WEBアプリやネイティブアプリ、デスクトップアプリなどで例えば、コピペ用アプリを作ったりバックアップ用アプリを作っておこずかい稼ぎをしようと思っても、どうやって実装するかJSの知識だけではわからない事ってたくさんありますよね。 これらの知識はどのように得るのでしょうか? HWなどを0から学ぶしかないのですかね?
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
電卓は使えるようになったけど、帳簿の付け方がわからない。 電卓ICチップの動作原理から学ぶ必要があるでしょうか?とはならないですよね。 それと同じで、プログラム言語は、自分のアイデアやアルゴリズムを実現するための 道具であって、プログラム言語の言語構造だけ覚えてもアイデアは出てきません。 ちゃんとそのサービスは見てないですが、そのような横断的に検索するためのサイトを 作るためのキーワードは、”マッシュアップ”と呼ばれているアルゴリズムだと思われます。 つまり、複数のWebサイトの情報を、WebAPIやHTMLの構造解析を使って入手して、 書式を整えた上で、一旦、自前のサーバー上のDBに格納し、 自サイトのユーザー向けには、そのDBを検索するためのAPIやWebフォームを用意する。 有効期限や重複問題を解決できるようにアルゴリズムを工夫する。 って感じになるかと。 この時点では、なんのプログラム言語を使うか(どの電卓を使うのが速いか)は、 まったく関係ありません。 なので、プログラム言語の知識ではなく、 自分のアイデアを実現するために、どういうアルゴリズムで組めばよいかを想像できるようになるために、 沢山のアルゴリズムを学ぶべきでしょう。 また、プログラム言語には、最適な用途がありますので、 ブラウザ上でのJSのみでこれを実現するのは、かなり無理があります。 サーバーサイド用のプログラム言語も必要ですし、 Node.jsを使うにしても、DBを扱うには別途SQL言語やDBMSの知識が必要です。 プログラム言語ありきの「技術志向」でなく、利用者のためにづあるべきかの「顧客志向」で考えましょう。
その他の回答 (13)
- superside0
- ベストアンサー率64% (461/711)
> 例えばクロボーなどコピペ用アプリを作ろうとするとおそらくメインメモリーをどんな関数でどんなふうに利用できるかを知らないと、 > 絶対に思いつきませんよね。 それは、HWの知識ではなく、OSのクリップボードを呼び出すためのシステムコールAPIの知識ですね。 もちろんHWの知識はないよりもあったほうがよいですが、 それよりもコンピュータの動作原理やOSがなにをやってるかを学んだほうが アプリ開発の役にたつと思いますよ。 つまりは、知ってる言語の機能や使ったことのある関数から逆算して、アルゴリズムを考えるのではなく まずアイデアやアルゴリズムがあって、それば どの環境(クライアント側、サーバー側)の、どんな言語のどんな命令を使えば実現できるのかを探して行くべきです。 もちろん、習うより慣れろっていうのは、ありますし、 独学ではかなり難しいので、特に最初のころなら 出来る人の横に座って眺めているだけでも、かなり勉強になると思います。
お礼
>>> それは、HWの知識ではなく、OSのクリップボードを呼び出すためのシステムコールAPIの知識ですね。 もちろんHWの知識はないよりもあったほうがよいですが、 それよりもコンピュータの動作原理やOSがなにをやってるかを学んだほうが アプリ開発の役にたつと思いますよ。 まさにこれです WEBAPIしか知りませんでしたが、OSにもAPIがあってそれを使ってメインメモリー上のデータをいじることができるのですね。 恐らくPCだけでなくスマホも同じなのでしょうね。 メインメモリーやHDD所の情報やファイルをいじくりまわすにはHWの知識で行うのかと思いましたが、 必要なのは、OSの知識だけのようですね。 ファームウェアなどは特にソフトウェアエンジニアにはほとんど意識する必要はなく、これとHWとのやり取りを仲介してくれるOSの事だけを、 理解しておけばアプリ制作は十分なのですね。 CEなわけではないので、OSから先は関係ないですね。 そしてOSにHWの情報をこういじってと命令をするためのOSのAPIを理解すれば、あとはJSでもなんでもいいのでプログラムを作れば命令通りOSがやってくれるのですね。 よってOS API メインメモリー ハードディスク バックアップ 作り方などと調べればその方法が見つかるのでしょうね。 私はWEBのフロント技術しかないので今はWEBアプリしか作れないのですが、恐らくセキュリティ面から上記のようなことは、インストール出来るネイティブアプリ出ないと不可能でしょうか? 今後はデスクトップアプリは、将来性がなくネイティブアプリも頭打ち、WEBアプリが最も伸びがあり将来性があると聞き、 WEBアプリで需要が今後増えるものを作っていきたいのですが、どんなものがあると思いますか? WEBはHWにアクセスしてバックアップやコピペ用などのアプリは作れないので、買い物計算や、ゲームくらいしか思いつきません。 しかもデータの保存もWEB上なのでクライアント端末ではできないですよね。 WEBストレージはありますがキャッシュ削除すると消えてしまいます。これをダウンロードしてもらって、 続けたい時にアップロードしてもらい続きをできるといいんですが、 これは不可能で、これをしたいならWEBの場合はherokuなどのサーバにmysqlを入れてここに保存してもらうしかないですかね。 DBまでやっていける頭の容量がなくあふれそうです。 買い物計算や、ゲームくらいなら初級本一冊程度で大丈夫ですかね?
- catpow
- ベストアンサー率24% (620/2527)
>>WEBアプリやネイティブアプリ、デスクトップアプリなどで例えば、コピペ用アプリを作ったりバックアップ用アプリを作っておこずかい稼ぎをしようと思っても、どうやって実装するかJSの知識だけではわからない事ってたくさんありますよね。 薬剤師の時給が高いからって、だれでも簡単にはなれませんよね? お金と、6年間の学校での勉強と資格試験に合格しないとだめだったと思います。 それと同じですよ。 また、JSだけでは、質問者さんが考えるようなソフトは作れませんね。 個人的には、C#でオブジェクト指向やメタプログラミング、関数プログラミングなどを学ぶのがお勧めです。 C#は、学ぶのはかなり大変だと思いますけど、マスターすれば、Webアプリ、ネイティブアプリ、デスクトップアプリ、バックアップ用アプリに、iOS、Androidまで、ほぼ何でも作れますよ。 素晴らしいのは、C#(Visual Studio)でWebアプリを作ろうと、いろいろとコーディングすると、自動的にJSのコードが生成されて、クライアント側(ブラウザ側)のソースまで生成してくれたりすることです。 >>これらの知識はどのように得るのでしょうか? コンピュータが好きな人は、何台ものパソコンやソフト、専門書などを買いまくって、土日の休み、大型連休となれば、朝から深夜まで部屋にこもってコンピュータをいじりまくったり、資料など読みまくるって感じでしょうか? 本人は、勉強している気は無くて、ゲームしているような遊び感覚でしょうけどね。 もちろん情報系の専門学校・大学に入学して勉強するってのもあるけど、たぶん学校での勉強以外で沢山コンピュータに触る時間を確保しないとダメな気がします。 たぶん、学校は、技をさずけてくれる師匠、あるいはコンピュータの悪友を見つける場と考えたほうがいいかもしれません。 >>HWなどを0から学ぶしかないのですかね? 当然ながら、ハードウエアの知識を持っているほうがソフトを作る場合でも有利になりますからね。 半田ゴテ、テスターやオシロスコープなども入手して、電子工作になじんでおくといいです。 ちょっと前から、ラズパイなど、電子工作で数千円の小型コンピュータを作るのが流行していますが、上記のような道具が必要になりますからね。
お礼
>>> 個人的には、C#でオブジェクト指向やメタプログラミング、関数プログラミングなどを学ぶのがお勧めです。 C#は、学ぶのはかなり大変だと思いますけど、マスターすれば、Webアプリ、ネイティブアプリ、デスクトップアプリ、バックアップ用アプリに、iOS、Androidまで、ほぼ何でも作れますよ。 素晴らしいのは、C#(Visual Studio)でWebアプリを作ろうと、いろいろとコーディングすると、自動的にJSのコードが生成されて、クライアント側(ブラウザ側)のソースまで生成してくれたりすることです。 Node.js、vue、エレクトーンなどを使えばほぼすべてできると聞いたのですが、そうではないのですか? C#はJSそっくりでJSがわかればすぐにわかると聞きますが、そうでもないのですね。 JSをC#に変換はできないのに、その逆は出来るのですか。するとC#が出来ればJSで再現できるものはすべてできるのですね。
- hiodraiu
- ベストアンサー率15% (451/2846)
「これらの知識」って幅広い話してますか?リンク先のサイトを見ましたが、このサイトの何か特定のことを指してますか?サイト全体の構築の話ですか? 質問を読んだ感じでは、システム開発全般に対する知識をどうやって得るのかってことのように思いました。 何でも同じだと思いますが、基礎から勉強するのが一番早いと思います。ソフトウェア工学とか情報工学とかの基礎を勉強すれば、これらのことは習得できると思います。
お礼
WEBアプリやネイティブアプリ、デスクトップアプリで コピペ用アプリなどを作ってマネタイズしたいならいくら、プログラム言語の仕様を覚えてもずっとできるようにはならないのですね。 アルゴリズムを思いつく能力の方がよほど大事で、このような事を学ぶ本もあるが、結局最後は作りまくることが一番なのでしょうね。 ただそれでアルゴリズムが出来るようになっても、HWの使い方やどんな関数を使うとどんな利用が出来るのかを知らないと どんなに想像力があってもブラックボックスの物を使う方法を思いつくというのは不可能ではないでしょうか? 例えばクロボーなどコピペ用アプリを作ろうとするとおそらくメインメモリーをどんな関数でどんなふうに利用できるかを知らないと、 絶対に思いつきませんよね。 このような情報はググったら出てくるものですか?
- 1
- 2
お礼
WEBアプリやネイティブアプリ、デスクトップアプリで コピペ用アプリなどを作ってマネタイズしたいならいくら、プログラム言語の仕様を覚えてもずっとできるようにはならないのですね。 アルゴリズムを思いつく能力の方がよほど大事で、このような事を学ぶ本もあるが、結局最後は作りまくることが一番なのでしょうね。 ただそれでアルゴリズムが出来るようになっても、HWの使い方やどんな関数を使うとどんな利用が出来るのかを知らないと どんなに想像力があってもブラックボックスの物を使う方法を思いつくというのは不可能ではないでしょうか? 例えばクロボーなどコピペ用アプリを作ろうとするとおそらくメインメモリーをどんな関数でどんなふうに利用できるかを知らないと、 絶対に思いつきませんよね。 このような情報はググったら出てくるものですか?