はてなキーワード: javaとは
大学卒業後4年ほど会社員をやったあと、ウェブ関係のプログラマを目指して1年ほど、バイトしながら独学で勉強しています。
ネット上には詐欺師まがいの情報商材屋とイキリマウントゴリラが跋扈し、普通の人間向けの情報が少なかったので、参考までに書いてみます。
なお、ここ数年のウェブエンジニア転職ブームとは無関係に転職を考えていたので、ブームは正直迷惑だと思っています。
独学にはいくつかの大きな問題点がありますが、もっとも大きいのは「全体のロードマップが存在しない」ことだと思います。
初学者は具体的に何をどの順番で学べばいいのかわかりませんし、この情報はネット上にはありません(冒頭にも書いた通り、そう思ったからこそ、このエントリを書いています)。
などありますが、どちらも普通の人間向けというには若干ゴリラ臭と商材屋臭がします。
また、プログラミング初心者向けの教材はおしなべて貧弱で、腹が立つほど不親切です。読んでいて何度もブチ切れそうになります。
特に初学者の場合は、教材の練習問題ひとつ解くにしても、誤字脱字等の初歩的なエラーのために平気で数時間のロスが発生したりします。
当たり前ですが、これは純粋に時間の無駄なので、すぐに講師に相談して解決したほうがいいです。
こういうことを書くとすぐに「自力で問題解決できない人間はプログラマに向いていない」と言いだすゴリラが現れますが、いまはそういう話はしていません。
そのほか独学だと自分の実力や相場感を測ることもむずかしく、その分詐欺師やゴリラに引っかかりやすくなりますし、基本的におすすめしません。
いまさらC言語と思うかもしれませんが、勉強するうえで重要なことはプログラミングの仕組みを理解することであって、どの言語から始めるかではありません。
その点、上記「苦C」はとても丁寧に文法を説明してくれますし、ポインタの説明を通してメモリの仕組みも教えてくれます。
ただし、回答例のコードに誤字脱字があって動かない等の発狂ポイントがいくつかあるので、注意が必要です。
勉強のやり方としては、まずはサイトを読みながらスマホのC言語アプリでポチポチ書いてみるところから始めると気楽でいいと思います。
途中で頭が混乱してきたら、再度冒頭からきっちり丸暗記するつもりで勉強するのがおすすめです。プログラミングに暗記は不要だと言うゴリラもいますが、あれは嘘です。
intはintegerだからintなんだとか、そういうことを調べながらやるだけでも解像度が格段に向上すると思います。
実際にC言語でバリバリ書けるようになる必要はないので、おおよその仕組みを理解してしまえば、最後のほうは流してしまって大丈夫です。
検索するとこの手のサービスが一番上に出てきますが、内容は不十分だと思います。かゆいところに手が届かず、使っていて非常にいらいらします。
とはいえ他に代替となるものもないので、サービスを利用しつつ、必要に応じて入門書を読むのがおすすめです。
私が利用したかぎりでは、Progateは教材の内容が薄く、Paizaは無意味にオタク臭くて私は苦手でした。N予備校やUdemyの評判がいいみたいですが、使ったことがないのでわかりません。
私はウェブ関係のプログラマ志望なので、ProgateとPiazaでHTML/CSS/JavaScript/Git/Ruby/Ruby on Railsを勉強しました。
最近は初心者Railsエンジニアが供給過多の印象があり、DjangoやLaravelのほうが就職には役立ちそうな気がしています。
余談ですが、無料の教材として有名な「Railsチュートリアル」 https://railstutorial.jp/ は、あえて劣悪な翻訳を放置することで、自社のプログラミング講座に顧客を誘導するビジネスモデルのように見えるので、内容はともかく個人的にはあまりいい印象を持っていません。
ちなみに私はこの辺で迷走していたため、いろんな言語をちょっとずつかじっています。
『スッキリわかるJava入門』はオブジェクト指向を理解するのに役立ちましたし、『退屈なことはPythonにやらせよう』で覚えたスクレイピングは求人情報の収集にとても役立っています。ほかには『プログラムはなぜ動くのか』も読んでためになりました。
基本的に本を読んで損することはないので、時間の許すかぎりたくさん読んだほうがいいと思います。私はあまり読めていません。
Railsチュートリアルを参考にRailsアプリのポートフォリオを作りましたが、完成まで半年くらいかかりました。
上述の劣悪な翻訳のせいもありますが、データベースの設計を考えたり、UIを工夫してみたりすると、いくらでも時間が吸い取られていきます。
知識ゼロから3ヶ月でポートフォリオを作りました! みたいな若手情報商材屋を見かけると、そんなにすごい能力があるなら普通にエンジニアだけやってればいいのに、と思います。
完成したアプリはDockerでコンテナ化したうえで、GithubActionsで自動テストを走らせ、AWSのサーバーにデプロイしていますが、この辺は言語の勉強やアプリの製作と比べたら全然むずかしくありません。
まともな日本語で書かれたまともな教材が揃っていますし、ネットの記事も豊富にあります。ここまでの勉強で、エラーメッセージや多少わかりづらい文章を読み解く能力も身についているはずです。
それぞれ1、2週間集中すれば最低限の実装はできると思います。ただしAWSの設定だけは、適当にやると数万円の請求書が届いたりするので注意が必要です(届いた)。
Java版マイクラのデモ版、一旦ゲームを抜けて入りなおすと100分制限がリセットされて草。無限に遊べるじゃん。
(ただしゲームを完全に終了して画面を閉じてから再開すると、初期リスポーン地点に戻されて持ってた道具も経験値も無くなるのは不便だけど)