- ベストアンサー
一つアプリを作るための予備知識
こんにちは 一つアプリを作るためには、 最低限どのようなものが必要ですか? 今自分で考えているのは、 サーバについての知識 Javascriptの知識 MongoDBまたはMysqlの知識(データ管理のため) HTMLの知識 CSSの知識 Cookieの知識 が必要だと思うのですが、 それだけでは足りない、または、この中で不要なものなどはありますか? 宜しくお願い致します
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
不要なものなんて一つもありません。 あることをするのに、たまたまその時に使わない知識があるかもしれませんが、不要なわけではありません。 アプリを作る、といって何のアプリを作るかによって不足な知識はいくらでもあげられますよ。 もしiPhoneのアプリであれば、C、特にオブジェクティブCというものを知らなければ話になりません。 クラス継承ではなくオブジェクト継承の概念の理解も必要です。 また、macというコンピュータのOSの知識、ユーティリティの考え方も理解する必要があります。 androidのアプリであればJavaの知識は最低限必要です。 こちらはクラス継承の理解が必要です。フレームワークの理解が前提です。 サーバ―アプリであれば、そこで常駐して処理してくれる処理系の言語が必要です。 PHPが一般的ですが、RubyやPerlとか、シェル系は大体カバーしておく必要があります。 Javaというのもありえますが、この場合はJava仮想マシンを構築する深い理解が前提となります。フレームワークは前提知識ですけど、デプロイがWARですから、アーカイブの考えかたがわかっていないと何もできません。 サーバ―はLinuxで展開することが多いので、LinuxのOSの決まり事、コマンドは熟知していなければいけません。 特にユーザーの権限の思想を理解していないと、なぜ動かないのかなぜ見えないのかということがわからなくなります。 統一開発系としてeclipseというようなものを知っている必要があります。 別の開発ユーティリティでも構いませんが、とにかく開発デスクトップというものになれないとできません。 ネットがかかわるものの場合、ネットワークを理解していなければいけません。 TCPの知識は必須です。 また、ポート番号の使い方とルールを暗記する必要があります。 80といったら普通は何である、というようなことが分からないと作ったアプリの運用ができません。 443なんていうポートは何のために使い、それを使った場合は無条件で何が起きるかも知る必要があります。 ipアドレスとドメインはどうつなぎ、いったい何のためにドメインが必要かが理解できていないと困ります。 これはDNSという話です。 資源の管理上の、排他制御とその実現運用方法が設定できなければDBの知識なんて意味がないことになります。 こう話しているときりがありません。 知らなくていいことは一つもありません。 でも、いま知らないことはいろいろあるはずです。 どんどん勉強し覚えていかなければいけないのです。 知識の中で不要なものがあるかもしれないと考えるだけで失格です。
その他の回答 (2)
今までのあなたの質問の経緯から考えて、今のあなたに必要なのは、「HTML、スタイルシート、JavaScriptの確実な理解」です。 他のことは、ひとまず忘れなさい。サーバー、そんなものは後です。Node.jsなんて当分は忘れなさい。あなたは情報の海に溺れかけています。まず、HTML、スタイルシート、JavaScriptを確実に使えるようになりなさい。でなければ、そこから先はありません。 今の状態でサーバーだのデータベースだのいっても、それは「割り算がわからないまま微積分について勉強する」ようなものです。今、考えるだけ無駄です。というより、害があるだけです。 Node.jsなんて手を出すのは、上記3点セットをしっかり理解できてからです。ちなみに「データベース」というときにMySQLとMongoDBを同列にあげている時点で、データベースの知識も落第です。これも当分は忘れなさい。上記3点セットが使えるようになってから取り組むべき課題です。 本気でアプリを作りたいんですか? 本気なら、あれもこれもと最初から欲張らないことです。やるべきことを絞りこみ、確実にこなす。それを第一に考えなさい。
- paradoxica
- ベストアンサー率65% (60/91)
どんなアプリをつくるかにもよりますが。。。 質問者様が挙げられているものから考えるとWebアプリのようなので、その想定でお話します。 ★ 最低限で言うならば・・・ ・質問者様が挙げられているもの一式 ( ただし JavaScript はつくるモノにもよりますが、最低限ではない気がします ) ・スクリプト言語一つ ( Ruby, Python, Perl 等色々選択肢がありますが 最も容易なのは PHP だと思います ) ★ あれば色々できる ・非同期通信に関する経験( Ajax ) ・jQuery、AngularJS などの JS拡張・プラグイン系の経験 ・フレームワークに関する経験 ・Linux、LinuxベースのOSに関する経験( Ubuntu, CentOS 等 ) ・比較的モダンな開発体系に関する知見( Canvas, CSS3, レスポンシブWebデザイン, NodeJS 等 ) ★ 実務レベル ・バージョン管理についての知見( Git, Subversion 等 ) ・チケット管理についての知見( Redmine, Trac 等 ) ・継続的インテグレーション( CI )に関する知見( Jenkins 等 ) ・VPSやクラウドに関する知見 ・ローカル仮想環境の構築に関する知見( Vagrant 等 ) ・プロビジョニングに関する知見( Chef, Ansible, Itamae 等 ) 等々 ★ その他技術者のベースの力を高めるものとして ・アルゴリズム / コンピュータサイエンスに関する知見 ・基本的なデザインパターンに関する知見 ・C言語 など、よりコンピュータに近い言語での実装経験( コンパイラ等 )
お礼
有り難うございます
お礼
有り難うございます