@guraaaaa777

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

プログラミングの学び方について

解決したいこと

プログラミングの学び方について。

発生している問題・エラー

インフラエンジニアです。
ここ数か月javaを学習していて、オブジェクト指向とか言語自体はある程度理解でき、
コンソールアプリなどはある程度作れるようになってきています。
→paizaスキルチェックみたいな言語自体の学習が主体のものはある程度できます

ただその先、例えばフロント開発(Swing、Spring boot)とか、データベース接続とかを学習しようとすると心理的抵抗が強くてなかなか手につかない状況です。
(とくに多言語を絡めるとか、外部リソースを利用するとなると途端に混乱します)

この状態の解決方法や、現開発者の方の経験について尋ねたいです。(それとも、大体の人が同じような状態に陥るんでしょうか)

##これまでの学習方法
・すっきりわかるjavaを読みながらpaizaスキルチェックをこなす
・ある程度感覚的に書けるようになってきたのでコンソールアプリをちまちま作る
・フロントのあってデータを恒久的にできる実用的なものを作ろうとする←イマココ
0 likes

4Answer

実用的なアプリケーションを作ろうとすると様々な要素を扱うことになるので、最初のうちは圧倒されて混乱するのは自然なことです。

これは現開発者でも同じで、まったく経験のない領域に飛び込めばそうなります。(そこでは初心者なのですから)

ただ経験者は「複数の知らないことを一度に扱うと混乱する」というのを知っているので、一つ一つの小さな要素の理解に努めます。そして、ある程度理解が進んできたら組合せを考えます。これが解決方法です。

データベースを扱うのであれば、例えば次のことを学びます。

  • 基本的な仕組み・理論
  • インストールやセットアップ
  • SQLによるデータ操作
1Like

多くまで個人的の意見ですが、勉強のやり方は、大きく分けて次の2パターンがあると思います。

1)何を勉強すべきかは分かっているけれど、やる気が出ない/続かない場合
 授業がつまらないなど、メンタル的なブロックがあるときですね。こういう場合は、自分でアプリを作りながら学んだり、すでにやってるように、コミュニティに参加して質問したりするのが効果的だと思います。もし目標を立てることがモチベーションになるタイプなら、「○月までに△△を作る」といった明確なゴールを設定すると進みやすいです。

2)何を勉強したらいいのか分からない、または情報が多すぎて圧倒されている場合
 この場合は、詳しい人が作った明確な学習ロードマップに沿って進めるのがベストです。順序立てて少しずつ進められるので、迷子になりにくくなります。Udemyのようなプラットフォームで、自分に合ったコースを探すのも良い方法です。無料教材から始めるのも悪くないですが、途中で「これじゃない」と思って乗り換えるより、最初から質の高い有料コースに投資した方が結果的に早く身につくことも多いです。

1Like

自分はフレームワーク解説の本を見てもちんぷんかんぷんでしたが、具体的なアプリを作る本を一冊読めばある程度わかるようになってきました

0Like

質問者の状況把握

心理的抵抗が強くてなかなか手につかない状況です

ここが質問者が最も悩んでいる点かと思います。

(とくに多言語を絡めるとか、外部リソースを利用するとなると途端に混乱します)

おっしゃっているように、フロントエンド、バックエンド、DB、それらの接続、外部APIの利用、各種認証、etc...と、現実のプロダクトには多くの技術的な要素が含まれています。それを自分でも学習しようとしたときに、あまりに膨大な学習量に手が止まってしまう。これだけの量を自分が覚えられるのか? 覚えられなかったときにこれまでの努力が無駄になってしまうのが怖い…。のような不安が発生し、それが学習に手をつけられない心理的抵抗になっているのだと思います。

ではどうするか。私からは、以下の①→②→③の順に実施することを提案します。

行動の提案

①Spring Bootの小さいアプリを真似て作る
インフラエンジニアとおっしゃっていましたが、質問文にSpring Bootが出ていましたので、Java学習をWeb系開発に生かしたいのかと推測します。では、非常に小さなアプリを真似で作ってみるのはいかがでしょうか。個人的おすすめはYouTubeで公開されているSpring Boot入門の再生リストのPart8までです。私もこれやりました。Part8までだと、フロント、サーバ側、DBあたりをかなりコンパクトに触れることができます。そして実装は真似でOKです。雰囲気だけ掴み、フロント、バック、DBのつながりをなんとなく体験してほしいです。

②Webアプリの構造を理解する
①をやることで、Webアプリなんてものは結局フロントがHTTPリクエストを飛ばして、バックエンドがそれを受け取って、DBからデータを取ってきたりそれをごにょごにょ加工して、結果をフロントにレスポンスしているだけ。という「構造」が少し見えてきます。そうしたら、「HTTPって?」「サーバって?」「クライアントって?」「webって?」など、ぼんやりしていることをググったりAIに聞いてみましょう。一発で分からなくても、いくつかぼんやりと「こうらしい」と仕入れた知識がどこかのタイミングで結びつくと思います。「ああ、そういうことか」と。そうしていくと、Web技術の構造が分かっていきます。

③構造の中の個別の技術を学ぶ
構造が分かるというのは、例えば家のつくりが分かるようなものです。土台があり、柱があり、壁がある。キッチンは実は後から設置している。家具は最後に置いてるだけ。構造が分かるということは、それぞれを分解して見られるということです。では、分解したパーツを学習していきましょう。この段階まで来れば、その時必要だと思うものを自分で選び、学習方法も考えていけるはずです。動画でも、本でも、ググってもAIに聞いてもOKです。自分が一番やりやすい方法を取ればOKです。

最後に

学ぶことが膨大で手が止まる経験は私にもありました。なので質問の悩みには共感するところが大きいです。どんなことも「小さく小分けにし」「小さなパーツの組み合わせ」で解決していけると私は思っています。Web技術もそうやってできています。1個1個は小さいものなのだと理解できれば、心理的な抵抗を減らせると思います。

まぁ、とりあえず①だけやるでもOKですよ。真似で何かをつくるのは最初の経験用として結構使えます。

0Like

Your answer might help someone💌