Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
Search
akio
May 28, 2026
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akio
May 28, 2026
More Decks by akio
See All by akio
16pxの次が24pxで困った話 ー Radix UIから学んだデザイントークンの考え方
akiomatic
0
13
Other Decks in Programming
See All in Programming
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
650
霧の中の代数的エフェクト
funnyycat
1
430
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
130
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
450
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
140
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
10
16k
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
140
Foundation Models frameworkで画像分析
ryodeveloper
1
140
数百円から始めるRuby電子工作
tarosay
0
110
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
150
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Being A Developer After 40
akosma
91
590k
GitHub's CSS Performance
jonrohan
1033
470k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.9k
The Curious Case for Waylosing
cassininazir
1
440
Building Applications with DynamoDB
mza
96
7.1k
Crafting Experiences
bethany
1
230
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Fireside Chat
paigeccino
42
4k
New Earth Scene 8
popppiees
3
2.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
Transcript
0 1 / 1 3 2 0 2 7 /
0 5 / 2 8 P r o g a t e B A R 「エンジニアインターン、どうやって取った?」 準備のリアルを語る LT 会 コーディングテストで 「動くコード」だけじゃ⾜りないと気づいた話
0 2 / 1 3 ⾃ ⼰ 紹 介 P
H O T O まてぃ 神⽥外語⼤学 27 卒 好 き な も の #Minecraft 出⾝ SWE #フロントエンド #UI/UX #a11y #⾟ラーメン #RedBull #コウテイペンギン X: @akiomatic
0 3 / 1 3 視 点 テストケースに通るだけで、 本当に⼗分なのか? この違和感から話します
0 4 / 1 3 意 外 だ っ た
こ と ? うまく解けた感覚はなかった でも通過した 正解数だけでは測れない?
0 5 / 1 3 背 景 その前は、 何度もつまずいていた 何が⾜りないのか分からなかった
0 6 / 1 3 思 い 込 み テストケースに通ればいい
解 く → 実 装 す る → 提 出 す る
0 7 / 1 3 転 機 ! 「動く」だけではなく、 「読まれる」ことも意識した
エンジニア職のコーディングテストを突破するには? LINEヤフーのコーディングテスト、実際どう?内定者と選考官に聞いてみた
0 8 / 1 3 気 づ き コーディングテストも、 実務のコードの延⻑線上にある
⾃分だけが分かるコードでは⾜りない
0 9 / 1 3 観 点 可読性 読みやすい 保守性
直しやすい 拡張性 変更しやすい 再利⽤性 使い回しやすい 意図の明確さ 考え⽅を追いやすい
1 0 / 1 3 B e f o r
e main の中に処理がまとまっている import fs from "node:fs"; const main = () => { const input = fs.readFileSync(0, "utf8"); const values = input.trim().split(" ").map(Number); const itemCount = values[0]; let total = 0; for (let index = 0; index < itemCount; index++) { const price = values[index * 2 + 1]; const qty = values[index * 2 + 2]; total += price * qty; } console.log(total); }; main();
1 0 / 1 3 B e f o r
e main の中に処理がまとまっている import fs from "node:fs"; const main = () => { const input = fs.readFileSync(0, "utf8"); const values = input.trim().split(" ").map(Number); const itemCount = values[0]; let total = 0; for (let index = 0; index < itemCount; index++) { const price = values[index * 2 + 1]; const qty = values[index * 2 + 2]; total += price * qty; } console.log(total); }; main();
1 1 / 1 3 A f t e r
標準⼊⼒・変換・計算・出⼒を分ける p a r s e c a l c u l a t i o n / m a i n import fs from "node:fs"; type Item = { priceInYen: number; quantity: number }; const readInput = (): string => fs.readFileSync(0, "utf8"); const parseItems = (input: string): Item[] => { const numericValues = input.trim().split(" ").map(Number); const itemCount = numericValues[0]; return Array.from( { length: itemCount }, (_, itemIndex) => { const priceIndex = itemIndex * 2 + 1; const quantityIndex = itemIndex * 2 + 2; return { priceInYen: numericValues[priceIndex], quantity: numericValues[quantityIndex], }; }, ); }; const calculateTotalPriceInYen = (items: Item[]): number => items.reduce( (totalPriceInYen, item) => totalPriceInYen + item.priceInYen * item.quantity, 0, ); const main = () => { const rawInput = readInput(); const items = parseItems(rawInput); const totalPriceInYen = calculateTotalPriceInYen(items); console.log(totalPriceInYen); }; main();
1 1 / 1 3 A f t e r
標準⼊⼒・変換・計算・出⼒を分ける p a r s e c a l c u l a t i o n / m a i n import fs from "node:fs"; type Item = { priceInYen: number; quantity: number }; const readInput = (): string => fs.readFileSync(0, "utf8"); const parseItems = (input: string): Item[] => { const numericValues = input.trim().split(" ").map(Number); const itemCount = numericValues[0]; return Array.from( { length: itemCount }, (_, itemIndex) => { const priceIndex = itemIndex * 2 + 1; const quantityIndex = itemIndex * 2 + 2; return { priceInYen: numericValues[priceIndex], quantity: numericValues[quantityIndex], }; }, ); }; const calculateTotalPriceInYen = (items: Item[]): number => items.reduce( (totalPriceInYen, item) => totalPriceInYen + item.priceInYen * item.quantity, 0, ); const main = () => { const rawInput = readInput(); const items = parseItems(rawInput); const totalPriceInYen = calculateTotalPriceInYen(items); console.log(totalPriceInYen); }; main();
1 1 / 1 3 A f t e r
標準⼊⼒・変換・計算・出⼒を分ける p a r s e c a l c u l a t i o n / m a i n import fs from "node:fs"; type Item = { priceInYen: number; quantity: number }; const readInput = (): string => fs.readFileSync(0, "utf8"); const parseItems = (input: string): Item[] => { const numericValues = input.trim().split(" ").map(Number); const itemCount = numericValues[0]; return Array.from( { length: itemCount }, (_, itemIndex) => { const priceIndex = itemIndex * 2 + 1; const quantityIndex = itemIndex * 2 + 2; return { priceInYen: numericValues[priceIndex], quantity: numericValues[quantityIndex], }; }, ); }; const calculateTotalPriceInYen = (items: Item[]): number => items.reduce( (totalPriceInYen, item) => totalPriceInYen + item.priceInYen * item.quantity, 0, ); const main = () => { const rawInput = readInput(); const items = parseItems(rawInput); const totalPriceInYen = calculateTotalPriceInYen(items); console.log(totalPriceInYen); }; main();
1 2 / 1 3 変 化 通過できる場⾯が 少しずつ増えた アルゴリズムだけで勝てたわけではない
1 3 / 1 3 ま と め テストケースに通るだけで 終わらせない
動くコード から、 意図が伝わるコード へ