Javaを効率よく上達していける方法があればアドバイス願います。
まだ勉強を始めて1週間目です。
右も左もわからず、
勉強はprogateでしかしてません。
目標はフリーランスで稼ぐことですが、
初めに、アプリ開発やWEBサービスなどをやってみたいです。
経験者様の声を聞かせていただけると
助かります。
お願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/01 12:50
回答3件
0
ベストアンサー
プロとしてはやっていませんが、それでもいいなら。(つまり趣味&独学)
Javaを効率よく上達していける方法があればアドバイス願います。
まず、甘えは捨てましょう。数カ月かそこらで使い物になるわけありません。
そもそも、最低限の最低限できるようになるだけでも数年は確実にかかります。
ただしこのレベルはあくまで最低限の最低限です。
数学でいえば「二次関数の式がなんとなくわかる」程度です。
プログラミングっていうのは、「こう書けばいい」っていうものではありません。
問題が出されて穴埋めをするだけ…とかではありません。
仕事だと考えればわかるでしょ。課題代行とかなら別として、それ以外の仕事で穴埋めをするだけの仕事ってありますか?
ではどのように金を得ているか。それは「クライアントが要求するシステムを構築する事」です。
ご自分がいかに甘えた考えかは、『実際に何か作ってみる』とわかるはずです。
プログラミングはある意味、DIYに似ています。
まず何を作るべきかを設計し設計図を書く。次にその設計図をもとに実際に作る。そのサイズや高さが合わないとかがあればそれを修正する。できれば使い物になる程度にはしたい。
もし椅子を作るとして、「椅子を作ったけど高さが合わないから誰か修繕してくれ」とか「椅子を作りたいがやり方がわからん。誰か設計図を書いてくれ」とか言いますか?
自分で設計し、自分で作り、自分で修繕しますよね。
プログラミングも同じです。
何を作るべきなのか、そのシステムが要求するものは何かとかを考えて、設計図に相当する仕様書等を作成する。そしてそれをもとにコーディングする。だけどこの時点ではバグが潜んでいる可能性がある。なので、デバッグという修繕をする。なぜエラーになるのか、なぜ結果が合わないのかとかを調査し、修正するのです。
そして、テストと呼ばれる工程も行います。これは潜在的なバグがないこととかを保証したりする感じです。車を作る場合の実車耐久試験のように。
ここまでできるのが当たり前です。趣味の私でもやろうと思えばできます。(綺麗な仕様書かと言われると…だけど)
で、仕事レベルだと、「データ構造とアルゴリズム」や「デザインパターン」などの先人たちの知恵を学び、基本情報技術者試験に出るような内容の理解はすべきです。
確かに実務では直接使わないかもしれませんが、知識は役に立ちます。
たとえばDB周りやネットワーク知識があれば、『なぜ今回バグっているのか』が推測しやすいです。
常にコード上の問題だけではなく、一括処理程度ですら「ファイルがない」とか「OSの問題」とかが普通にあります。ましてや実務ならね…
データ構造とアルゴリズムは直接ゴリゴリ書くことは無いかもしれませんが、知識として知らないと軽い気持ちでLinkedListを使ったら休出する羽目になった話のように面倒な状況に陥る可能性もあります。知っていれば回避できる可能性が高いです。
デザインパターンもそう。知っていれば対処しやすい事が多いです。
計算量という概念自体を知らないと、上記の軽い気持ちで~のような面倒な状況に陥る可能性がありますね。
ここまでは趣味&独学でもできます。(現に私も全てではないが知っていることが多い)
そして、仕事レベル。ただし、企業に属する場合。
その場合は、上記に加えて、チーム開発の基本的なものやGit/GitHub、コミュニケーション能力も必須になります。会社によってはGit/GitHubは使わずに内製のものを使うようですが。
そして、今回の質問にあるフリーランス。
……いや、無理だから。あまりにも無謀としか言いようがありません。(私も夢見ていた時期があったが)
そもそもプログラミングというのはコード書いて終わり……ではありません。
質問者さんがクライアントの立場になってみてください。
金を出して依頼しても、某アプリ(コロナ関連の)みたいにこけたらどうしますか。しかも『嫌なら使わなければいい』という暴言付き。私ならマジで切れる。
しかも1万とかじゃないですよ? 100万は当たり前の世界です。それなのに。です。
それと、プログラムを納品するだけではありません。
クライアントは下手するとPCすらまともに使えません。なので我々が設置してあげる必要があります。
会社がなぜ複数人で開発したりしているかを考えればわかるはずです。
まず営業がクライアントとの約束とかを取り付け、営業とともにSEがクライアントと接客して仕様を固める。SEは社内とかでちゃんとした仕様書(RFIやらRFP, 内部仕様書や外部仕様書等) を作成し、工程を管理する。プログラマはその仕様書等を読み、意図を理解し、プログラムを作成する。
そしてデバッグ担当がデバッグをし、テスト担当がテストを行い、納品する際にはインフラエンジニアが設置したりして、後は保守を行う。
さらに、給料等の管理をするために経理が管理する。
また、何らかの問題が発生したら社長やその他上層部が矢面に立つ。
こういう風に役割分担をしています。でもフリーランスだとそういう役割分担が出来ません。(出来なくはないが、それをやったら会社と大差ない…)
つまり、『すべて自分でやる必要がある』。
よって、「金銭管理」「税金対策」「売り込み」「保守」「コーディング」「設計」「設置」「自己責任」「法対策」は当たり前のように自分でやる必要があります。
なので、プロを名乗っている人でも多分フリーランスで食っていける人って限られているはずです。(設計とかまでは出来ても税金対策や法対策とかが出来ないとか)
ましてや軽くやり始めた程度の人が出来るとは到底思いません。
オリンピック選手が簡単に走ったり飛んだりしているのを見て、『あれなら俺でもできるだろ』と勘違いしている状態です。
投稿2021/11/01 13:52
総合スコア4962
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Javaを効率よく上達していける方法があればアドバイス願います。
既に指摘されてるけど、ドキュメントが不自由なく読めるようになれば理解は早いです。(Javaに限らずどの言語でも)
まだ勉強を始めて1週間目です。
右も左もわからず、
勉強はprogateでしかしてません。
1週間やそこら勉強しただけの人がそんな先の事考えてどうしますか?夢を見るのは結構ですが夢を見れるだけの実力をもってからにしましょう。
初めに、アプリ開発やWEBサービスなどをやってみたいです。
どういうアプリ開発?どういうWebサービス?ただフリーランスで稼げるって広告を見てふわっと考えてるだけじゃないですか?
はっきり言っておきますがフリーランスが稼げるというのはあくまで非常に高いスキルを持っている一部の人間のみです。仮に質問者さん自身がまぁ人並み以上にJavaを使えたとしても何の経験も人脈もなければ
仕事は貰えません。
投稿2021/11/02 00:04
総合スコア1282
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
せめてJavaを勉強している目的や目標をできるだけ明確に書いたほうがいいです。
目的地がわからないとそこに至るための道筋を示すことはできません。
追記
目標はフリーランスで稼ぐこと
であるならばまずlancersとかでどのようなスキルや案件が求められているか市場調査したほうがいいかもしれません。そもそもJavaを勉強しようとしていること自体が遠回りであることに気がつくかもしれません。
初めに、アプリ開発やWEBサービスなど
スマホアプリ開発がしたいのであれば、まずiOSアプリとAndroidアプリがそれぞれどのように作られるのか、両方同時に作る方法はどのようなものがあるのかを調べるといいかと思います。
WEBサービスを作りたいのであれば、普段利用しているサービスがどのような言語で開発されているのかを調べてみるといいと思います。
追記
要点はこちらと
最初の言語として Java の基礎を学ぶのはそれなりに悪い選択肢ではないように思います。
こちら
フリーランスで活躍しようと思えば、IT 技術に加えて営業や経営やコミュニケーション能力などの複数のスキルが必須となり、就職よりも難易度は高くなります。
調査するなら、むしろそういう実態の方ではないかと思います。
かと思います。
Javaの基礎とは何かというのは結構難しい問題かと思います。
progateで1週間学ぶ以上のことが必要なのか、他にすべきことがあるのか書いていただけるとイメージが湧きやすいのかなと思います。
また、悪い選択肢とは何か、良い選択肢とは何か、についてもう少し書いていただければ、
先だって提示された目標に対して「それなりに悪い選択肢ではない」ということの意味がわかりやすくなるかなと思います。
フリーランスで稼ぐためにIT 技術に加えて営業や経営やコミュニケーション能力などの複数のスキルが必須となるかどうか私にはわかりかねます。さらにそのような実態を調査する方法が実際のフリーランサーへの聞き取りくらいしか思いつかないので、なにか方法論をご存知でしたらご教示いただけると助けになるかと思います。
投稿2021/11/01 11:52
編集2021/11/01 13:28総合スコア531
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/01 12:00
2021/11/01 12:29
2021/11/01 12:49
2021/11/01 13:28
2021/11/02 01:08
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。