Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド

13,621 views

Published on

JJUG CCC 2015 Spring の発表資料。

---------------------------------------------------------------------------------
私は2014年にITベンチャーにエンジニアとして入社しました。
理系の大学院出身でしたが、学生時代はとにかくプログラミングから逃げるように過ごしてきました。
入社後の研修ではJavaでif文やfor文の書き方を学んでいたという見事な初心者っぷり。

そんなJava初心者の私が、2ヶ月でwebサービスを開発し、公開するというプロジェクトにチャレンジしました。
数々の困難を乗り越え、何とか「ニクリーチ2016」というwebサービスを公開。

当セッションでは

入社後どのような研修を受けたのか
ニクリーチ2016ではどのような技術を使ったのか
一人開発プロジェクトを通して感じたこと

など新人エンジニアが一年間でどのように成長したのかをお話をさせていただきます。
---------------------------------------------------------------------------------

Published in: Engineering
  • Be the first to comment

JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド

  1. 1. Copyright © BizReach, Inc. All Right Reserved. 株式会社ビズリーチ 荒井利晃 JJUG CCC 2015 Spring 新人エンジニア奮闘記 「 Javaって何? からwebサービスを公開するまで 」
  2. 2. Copyright © BizReach, Inc. All Right Reserved. 発表内容 1. 自己紹介 2. 新卒研修で学んだこと 3. Webサービス開発で学んだこと 4. ビズリーチという環境 5. まとめ 2
  3. 3. Copyright © BizReach, Inc. All Right Reserved. 3 自己紹介1
  4. 4. Copyright © BizReach, Inc. All Right Reserved. 自己紹介 4 荒井利晃 (Arai Toshiaki) ■ 経歴 電気通信大学 電子工学科卒業 電気通信大学 大学院 情報・通信工学研究科卒業 2014年 4月 ビズリーチ入社 趣味は音楽、読書 Java歴 1年 Twitter: toshi_moz
  5. 5. Copyright © BizReach, Inc. All Right Reserved. 学部時代の私  入学した頃はPCの使い方すら怪しい  プログラミングは授業で触った程度  マージャン、バンド、モンハンをしてたら4年間が終了 5
  6. 6. Copyright © BizReach, Inc. All Right Reserved. 大学院時代の私  大学院では超音波など、音響工学の研究  研究にはMATLABという数値解析ソフトを使用  便利な関数が多数、コードはほとんど書かず 6 毎日波形とにらめっこ
  7. 7. Copyright © BizReach, Inc. All Right Reserved. プログラミングのトラウマ 7 大学院時代に海外インターンでタイに行き、 研究でプログラミングをすることになった -> まったく読めない & まったく書けない -> 上司に苦笑いされる日々… プログラミングに対する苦手意識
  8. 8. Copyright © BizReach, Inc. All Right Reserved. それでもエンジニアを目指した理由 8 ものづくりが好きだった ITに関する技術を身に付けたかった エンジニアに対する憧れがあった
  9. 9. Copyright © BizReach, Inc. All Right Reserved. そんな私はこんなことやりました 9 お腹を空かせた学生のための肉食就活サイト Webサービスの開発を一人で担当しました 学生登録数: 約3,000人 企業登録数: 約80社
  10. 10. Copyright © BizReach, Inc. All Right Reserved. 本日伝えたいこと 1. 1年間でどのようにJavaを学んだのか 2. Javaのこんなところでつまづいた 3. 事業会社の開発スタイル 10 新卒研修とニクリーチ開発のお話
  11. 11. Copyright © BizReach, Inc. All Right Reserved. 11 新卒研修で学んだこと2
  12. 12. Copyright © BizReach, Inc. All Right Reserved. 2014年 4月 株式会社ビズリーチ入社 Java歴 0ヶ月 新卒研修
  13. 13. Copyright © BizReach, Inc. All Right Reserved. 新卒研修の目標 13 一人でひとつのアプリを作りきる Webサービスの作り方を一通り知る エンジニアリングの楽しさを知る わからないときの調べ方を知る
  14. 14. Copyright © BizReach, Inc. All Right Reserved. 新卒研修の内容 14 Webの基礎知識 フロントエンド セキュリティ プログラミング言語 サーバサイド インフラ Web開発の基礎を3ヶ月で学んだ
  15. 15. Copyright © BizReach, Inc. All Right Reserved. 新卒研修で学んだ言語など 15 Javaは17日間 Webサービス開発に必要な技術を約3ヶ月で学ぶ
  16. 16. Copyright © BizReach, Inc. All Right Reserved. 新卒研修: Javaの講師 16 久保 雅彦 (jflute) 先生 OSSプロダクトDBFluteの作者兼 コミッター、カンファレンスやイ ベントでの講演も多数有 新卒研修のJava講師も担当 ブログ: jfluteの日記 (http://d.hatena.ne.jp/jflute/) Twitter: @jflute
  17. 17. Copyright © BizReach, Inc. All Right Reserved. Java研修でやったこと 17 明解Java(入門編) -> Javaの基本から一つ一つのステップを丁寧に解説 -> 図が多く視覚的にも理解しやすい -> 各章に練習問題があり、理解が深まる -> あくまで入門編の内容 Java本で基礎的な知識を身につける
  18. 18. Copyright © BizReach, Inc. All Right Reserved. 本に書いてない部分は補う 18 -> 久保さんオリジナルの研修コンテンツ -> 文字検索、置換、StringBuilderなど、文字列の基本操作を学ぶ -> 現場で使われているDBツールを学びつつ死ぬほど修行プログラミング -> レビューがめちゃくちゃ厳しい -> セクション11までクリアするとランチに連れて行ってもらえる  例外、コレクション  StringTest  DBFluteハンズオン (http://dbflute.seasar.org/ja/tutorial/handson/) -> 明解Javaに記載されていないが重要な項目は別途補習
  19. 19. Copyright © BizReach, Inc. All Right Reserved. ビズリーチ流Java研修① 19 とにかく現場思考で教える 学んだことが現場でどのように使われるのかをイメージする
  20. 20. Copyright © BizReach, Inc. All Right Reserved. とにかく現場思考で教える 20  テキストを読んで学習する -> 情報量が多すぎて、何が大切なのか分からない  現場の話を聞きながら学習する -> 具体的な使い方のイメージが湧く -> 本当に身に付けるべきことが分かる -> 現場配属に向けた準備運動となる
  21. 21. Copyright © BizReach, Inc. All Right Reserved. 21 圧倒的な開発スピードを実現するための指捌き タイピング強化、ショートカットキーの徹底 ビズリーチ流Java研修②
  22. 22. Copyright © BizReach, Inc. All Right Reserved. 開発スピードを高めるための指捌き 22 事業会社のプロダクト開発はスピードが命 ■ 様々な施策における新規機能実装 ■ 2週間に一度のアップデート ■ MTGなどコーディング以外の業務 そこで… -> 始業時間までタイピング練習 -> よく使う機能のショートカットを記憶 タイピング練習サイト:http://typing.lk/
  23. 23. Copyright © BizReach, Inc. All Right Reserved. 23 可読性の高いコードにこだわる チーム開発を意識した変数名、メソッド名、コメントなど ビズリーチ流Java研修③
  24. 24. Copyright © BizReach, Inc. All Right Reserved. 可読性の高いコードにこだわる 24 チームで開発するという意識を持つ ■ 流し読みして処理の流れが分かるか? ■ 変数名、メソッド名のつけ方は適切か? -> 最上位のメソッドは処理のフローを書く -> 一つのメソッド内に大量の処理は書かない -> 人が読むことを意識して名前をつける -> 小説を書くかの如く
  25. 25. Copyright © BizReach, Inc. All Right Reserved. Java研修でできるようになったこと 25 ■分岐、繰り返しなどの基本的な処理 ■型の扱い(基本型、配列やコレクションなど) ■クラスの概念 やはりクラスあたりから理解がしんどくなる… がんばれ!
  26. 26. Copyright © BizReach, Inc. All Right Reserved. 総合演習 Twitter課題 Java歴 3ヶ月
  27. 27. Copyright © BizReach, Inc. All Right Reserved. Twitterクローン課題  Javaを使ったはじめてのアプリケーション開発  新卒エンジニア一人一つのTwitterクローンを作る  機能要件、非機能要件、納品要件、特別要件あり 27 機能要件 -> 会員登録できること -> ログイン/ログアウトできること -> 140文字以下でつぶやけること -> タイムラインでつぶやきが閲覧できること -> 他の会員のフォローが出来ること
  28. 28. Copyright © BizReach, Inc. All Right Reserved. 基礎からwebの世界へ 28 Javaの基礎 Webの世界 - if文、for文などの処理 - int、Stringなどの型 - クラスの使い方 - サーブレット - webフレームワーク - Tomcat - ビルド、デプロイ なにやら難しい言葉がたくさん出てきた…
  29. 29. Copyright © BizReach, Inc. All Right Reserved. Twitter課題の構造 29
  30. 30. Copyright © BizReach, Inc. All Right Reserved. Twitter課題ではまったこと  基礎的な文法だけでは歯が立たないwebの世界  System.out.println ってなんだったんだ…  DB検索、画面への値の渡し方、どうすれば… 30 アーキテクチャとか言われても、な んのことかさっぱり分からないよ! JSP?画面のコーディングって HTMLじゃないの? Maven、依存ライブラリ、ビルド、 僕が学んできたJavaって一体…
  31. 31. Copyright © BizReach, Inc. All Right Reserved. Twitter課題ではまったこと 31 画面から値を受け取ってDBに入れる、 イメージは湧くけど実装がわからん 検索したデータを画面に渡したい、一 度に渡す方法ってどうするの? XSSとかCSRFとか、いろいろ対策し ないといけないんだなぁ  アクション、フォーム、セッション!?  Beanて何?ググっても「豆」としか出てこない  セキュリティ対策、どこまですればいいの?
  32. 32. Copyright © BizReach, Inc. All Right Reserved. どのように進めたか  とにかく本家Twitterを観察して動きを学んだ  それぞれの動きで何が行われるか分解して考えた  「Seasar2徹底入門」を読んで理解を深めた 32 Webフレームワークの使い方を学んだ Javaの基礎文法だけでは作れない
  33. 33. Copyright © BizReach, Inc. All Right Reserved. Twitter課題:成果発表 33 各自作ったTwitterを発表する  どんな点に注力したか?つまずいたか?  「この季節が来たか」と先輩方がニヤニヤ  実際に先輩方に使ってもらう セキュリティホールがないか実際にアタックして確認
  34. 34. Copyright © BizReach, Inc. All Right Reserved. 先輩方の洗礼 34 ツイートがデカい セキュリティ対策の サイトに飛ばされる エスケープをしておらず、<h1>タグが有効に クロスサイトスクリプティング…
  35. 35. Copyright © BizReach, Inc. All Right Reserved. Twitter課題を通して得られたもの  WebサービスにおけるJavaの位置づけ  Webフレームワークの使い方  一人でサービスを形にする実現力  正解までたどり着くためのググり力  セキュリティ対策の重要性 35
  36. 36. そして
  37. 37. Copyright © BizReach, Inc. All Right Reserved. エラーメッセージ読め読め大合唱 37 エラーメッセージは必ず読め! 強く言われ続けたこと ※ 大切なのは答えではなく、それを導くプロセス 「これ、動かないんです」と先輩のところに相談し にいくと、「エラーメッセージは読んだ?」「そこ にはなんて書いてある?」と必ず聞かれた 詳しくは「エラーメッセージ読め読め大合唱」で検索!
  38. 38. Copyright © BizReach, Inc. All Right Reserved. エンジニアとしてはじめて感じたブレイクスルー ■ プログラムを書いてても実際の使い方が分からなかった ■ コンソール上に何かを出力するという経験だけだった 動くものを作ったことでプログラミングが楽しくなった 38
  39. 39. Copyright © BizReach, Inc. All Right Reserved. 39 Webサービス開発で学んだこと3
  40. 40. Copyright © BizReach, Inc. All Right Reserved. 初めての配属 ビズリーチ事業 Java歴 4ヶ月
  41. 41. Copyright © BizReach, Inc. All Right Reserved. 初めての配属 41 会員制転職サイト「ビズリーチ」の開発
  42. 42. Copyright © BizReach, Inc. All Right Reserved. 初めての現場で完全に圧倒された  ソースの量がTwitter課題の比じゃない  ソースを読んでも何をしてるか分からない  そもそもサービスの仕様が分からない 42 ちょ、一体どれだけ ファイルあるんですか! 研修ではSAStruts、今度使うのは別 のフレームワーク! サービス上で使われる言葉、定義な んかもきちんと覚えないと
  43. 43. Copyright © BizReach, Inc. All Right Reserved. 2ヶ月でこなした業務 43 1ヶ月目 2ヶ月目 -> シナリオテストを行い、サービスのことを知った -> 先輩にいろいろと聞きながら現場の開発を学んだ -> はじめはサイトの文言変更などの軽い修正から行った -> バグ修正などでいろいろな機能を触った -> 「分からないことが分かる」ようになってきた -> 営業さんからヒアリングを行い、新規機能を追加をした
  44. 44. ある日
  45. 45. こんなやりとりがありました ニクリーチってサービス新卒に作って もらおうと思うんだけど、 だれかやりたい人いる? (おっ、なんだか面白そうだな) 僕、やりたいです! CTO 竹内 真 新卒わたし
  46. 46. こんなやりとりがありました 開発期間は2ヶ月、そして一人 Web開発未経験者がこれだけのも のつくるとなると相当しんどいよ? 多分だいじょ…いや、 やりきってみせます! (内心ビビってた) CTO 竹内 真 新卒わたし
  47. 47. Copyright © BizReach, Inc. All Right Reserved. エンジニアとしての初めての挑戦 ニクリーチ2016開発 Java歴 6ヶ月
  48. 48. Copyright © BizReach, Inc. All Right Reserved. ニクリーチ2016というwebサービス 48 履歴書を登録 企業からスカウト お肉を食べる Step 1 Step 2 Step 3 お肉を通じて学生と企業をマッチング
  49. 49. Copyright © BizReach, Inc. All Right Reserved. ニクリーチ開発スタート! 49 開発期間は2ヶ月 ニクリーチの主な機能要件 -> 学生はニクリーチに履歴書を登録できること -> 企業は学生の履歴書を検索できること -> 企業は学生をスカウトできること -> 学生をスカウトしたらメールが飛ぶこと
  50. 50. よし、早速作り始めるぞ!
  51. 51. Copyright © BizReach, Inc. All Right Reserved. 何から始めていいか分からない
  52. 52. Copyright © BizReach, Inc. All Right Reserved. サービスの設計をする 52 どういう開発スタイル? そもそも何がしたい? 使い慣れたものはある? 学習コストはどれくらい?データベースは何使う? フレームワークは何使う? スピード重視で開発したい! 開発のスタイルは…
  53. 53. Copyright © BizReach, Inc. All Right Reserved. スピード重視の開発スタイル 53 スピード重視の開発 なぜ? 仕様書が存在しないため作る&改善の繰り返し
  54. 54. Copyright © BizReach, Inc. All Right Reserved. トライ&エラーが多い 54  自分は新卒、何が正しい実装なのかわからない  そもそも業務自体がトライ&エラーの繰り返し  プログラムの改変が非常に多い (正解がない)
  55. 55. Copyright © BizReach, Inc. All Right Reserved. ニクリーチ2016の構成 55 ■ Twitter課題とほぼ同じ構成 ■ Java8を使って開発
  56. 56. Copyright © BizReach, Inc. All Right Reserved. サービス作りで初めて触った機能 56 ファイル操作 メール配信 外部APIとの連携 画像のアップロードに利用した。inputStreamとか初めて触った。 通知メール配信などの実装をした。ここで大はまりした。 FacebookAPIとか触った。普段自分が利用しているアプリって こんな風に実装されてたんだなーと理解できた。
  57. 57. Copyright © BizReach, Inc. All Right Reserved. Java8を使った開発 57 ■ Lambda式 ■ Optional -> Java8版のDBFluteを使用、ネストが少なくなり コードがすっきりした -> スコープを意識、安全な実装をすることができた -> ぬるぽ対策になった -> nullに対する意識が向上した
  58. 58. Copyright © BizReach, Inc. All Right Reserved. Java8の実装 (1件検索) 58
  59. 59. Copyright © BizReach, Inc. All Right Reserved. 59 Java8の実装 (リスト検索)
  60. 60. スピード開発を 実現した役者たち
  61. 61. Copyright © BizReach, Inc. All Right Reserved. ニクリーチで使用したwebフレームワーク 61 SAFlute -> SAStrutsをベースにスピード開発に特化 -> リーンスタートアップがテーマのフレームワーク -> トライ & エラーがしやすいホットデプロイ -> (Web側でも) 変更に強いタイプセーフ実装 -> とにかく気合の入ったログ これらのテーマを実現する機能
  62. 62. あ’’ーーーーーーー! 思ったように動かない! 何度もソースを書き直し!
  63. 63. 再起動せず動作を確認できる
  64. 64. Copyright © BizReach, Inc. All Right Reserved. ホットデプロイの恩恵 64 「あー、ここちょっとソース直したいなー」 アプリを再起動せず確認できる ホットデプロイ! 「こう書いたらどう動くかな?」 思考が妨げられず、実装に集中できる
  65. 65. きれいにファイル管理したい ファイル名を変えなきゃ!
  66. 66. 指定したファイルは見当たります
  67. 67. Copyright © BizReach, Inc. All Right Reserved. タイプセーフ実装 (return) 67 Forword Redirect return “index.jsp” SAStruts SAFlute Forword Redirect ベタで記述 return “/edit/” + id + “/?redirect=true” ↑ URLを指定してリダイレクト return path_IndexJsp 自動生成されたパス return redirectById(MemberAction.class, id) ↑ リダイレクト用のメソッド
  68. 68. またエラーか… 一体なにがいけないの?
  69. 69. エラーログが読みやすい
  70. 70. Copyright © BizReach, Inc. All Right Reserved. とにかく気合の入ったログ 70 エラー修正やテストにおいてログは超重要! コードを変更 ログを確認 修正 or 続行 SAFlute -> 元のアクション、実行SQL、Requestパラメータなど -> 読む気になるエラーログ! ※ 詳しくは「ログにこだわるSAFlute」で検索
  71. 71. リリース4日前
  72. 72. CTO竹内からのメール
  73. 73. CTO 竹内 真 学生に登録してもらう履歴書に 英語力を取得する欄を追加しよう。 英語レベルとTOEICの点数ね。 メールを開くと…
  74. 74. 突然の仕様変更
  75. 75. ちょwwwまwwwwwwえ?
  76. 76. Copyright © BizReach, Inc. All Right Reserved. 使ってよかったDBFlute 76 ビズリーチでも採用しているDBツール 幾度とある 仕様変更 それに伴う DB変更 DBFlute 「DB変更に強い」をコンセプトに作られたDBツール DBFluteの機能に何度も助けられた
  77. 77. Copyright © BizReach, Inc. All Right Reserved. 77 たくさん不安との戦い 人生初めてのwebサービス 一般公開するというプレッシャー ギリギリの開発スケジュール 飛ばないメール 悲しみをもたらす500エラー
  78. 78. Copyright © BizReach, Inc. All Right Reserved. リリース日に、メールが飛ばない! 78 12/9 午後リリース予定 午前中に最終チェックをしていたら、高確率でメール 配信に失敗することを確認 冷や汗が止まらない私。見かねたCTO竹内が自ら手を動 かし、メール配信処理を別スレッドにすることで対応 このとき、マルチスレッドという概念を知る
  79. 79. その他にも いろいろ ハマった
  80. 80. Copyright © BizReach, Inc. All Right Reserved. 80 先輩に相談しまくりました!
  81. 81. 先輩、偉大。
  82. 82. 2ヶ月間 がんばった
  83. 83. TOP画像(焼肉) 探しながら コンビニ飯
  84. 84. 思考停止 しているのに 手は動く \サイコーにハイだぜ!/
  85. 85. そして なんとか
  86. 86. Copyright © BizReach, Inc. All Right Reserved. 2014/12/09 ニクリーチ2016リリース Java歴 8ヶ月
  87. 87. Copyright © BizReach, Inc. All Right Reserved. したのですが
  88. 88. どうやらバグってるらしい。
  89. 89. Copyright © BizReach, Inc. All Right Reserved. リリース後の対応  学生の履歴書が登録できない 89  メールが配信されてない リリース前のテストの大切さを学んだ -> 登録学生からの問い合わせを受け発覚 -> バリデーションのバグ、急いで修正してリリース -> メールサーバにコネクションを貼る際に落ちている -> リトライ機能を実装して対応
  90. 90. 現在のニクリーチ
  91. 91. Copyright © BizReach, Inc. All Right Reserved. 現在のニクリーチ 91 お腹を空かせた学生のための肉食就活サイト 学生登録数: 約3,000人 企業登録数: 約80社
  92. 92. Copyright © BizReach, Inc. All Right Reserved. ニクリーチのメディア掲載実績 92 新聞 とくダネ! スーパーニュース TV 日経MJ 日本経済新聞 WEB エンジニアtype キャリコネニュース 週アスPLUS
  93. 93. Copyright © BizReach, Inc. All Right Reserved. Twitterでも話題に 93 #ニクリーチ
  94. 94. Copyright © BizReach, Inc. All Right Reserved. 2ヶ月間でやったこと 94 設計 開発 マネジメント 進捗管理、進捗報告 コンテンツの依頼 プロダクト管理 画面デザイン、遷移 機能要件定義 DB設計、など 開発環境整備 DB構築 画面コーディング アプリコーディング インフラ構築 テスト リリース作業
  95. 95. ニクリーチ開発でかなり成長できた!
  96. 96. Copyright © BizReach, Inc. All Right Reserved. 96 ビズリーチという環境4
  97. 97. Copyright © BizReach, Inc. All Right Reserved. エクセレントなエンジニア達 97 ■竹添直樹 Seasar、Apache Click、GitBucket、Scalatra などのオープンソース活動、JavaやScalaなどの、 数々の技術系書籍の執筆 ■久保雅彦 OSSプロダクトDBFluteの作者兼コミッター、 カンファレンスやイベントでの講演も多数有 新卒研修のJava講師も担当
  98. 98. Copyright © BizReach, Inc. All Right Reserved. 著者のサインをいただきました!笑 98 竹添さん 島本さん Java逆引きレシピ
  99. 99. Copyright © BizReach, Inc. All Right Reserved. 働く環境 99 オライリー本(日本語版)全巻完備
  100. 100. Copyright © BizReach, Inc. All Right Reserved. 働く環境 100 ペアプログラミングスペース
  101. 101. Copyright © BizReach, Inc. All Right Reserved. 働く環境 101 ハニカムオフィス
  102. 102. Copyright © BizReach, Inc. All Right Reserved. 働く環境 102 ミーティングスペース
  103. 103. Copyright © BizReach, Inc. All Right Reserved. 働く環境 103 サイレントルーム
  104. 104. Copyright © BizReach, Inc. All Right Reserved. Javaで事業を作りたい エンジニアさん大募集! 株式会社ビズリーチでは
  105. 105. Copyright © BizReach, Inc. All Right Reserved. ほぼ毎日 勉強会も開催! 株式会社ビズリーチでは
  106. 106. Copyright © BizReach, Inc. All Right Reserved. 106 まとめ5
  107. 107. Copyright © BizReach, Inc. All Right Reserved. まとめ  Javaまったくの初心者から1年間でサービスを作った  とはいえ先輩にいろいろ助けてもらった  事業会社の開発はとにかくスピード重視だった  スピード開発を実現する数々の道具を使った  サービス作りにはほんとうにたくさんの学びがあった 107
  108. 108. Copyright © BizReach, Inc. All Right Reserved. 108 エンジニアとして大切にしたいこと 学ぶ環境 学ぶ気持ち 先輩エンジニアは偉大 チャレンジできる環境 目線の高さ 学ぶ姿勢を止めない 人は最強の教科書 みんなと競う
  109. 109. Copyright © BizReach, Inc. All Right Reserved. これから学ぶ人へ 109 とにかく手を動かす 分からなければ人に聞く 成果が出るまでは努力 頭で考えることと、実際に作ることには大きな差がある とにかく手を動かしてプログラムを書くことに慣れること 学び始めはとにかく分からないことが多くていやになる そんなときは人に聞いてとにかく前に進むことが大切 始めはコンソールに文字を出力することから始まる 実際に動くものを作るのはそれなりに努力が必要
  110. 110. Copyright © BizReach, Inc. All Right Reserved. まだまだ分からないことばかりだけど プログラムを書くの楽しい 現在 Java歴 1年

×