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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
akio
May 28, 2026
Programming
130
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
Webフレームワークの ベンチマークについて
yusukebe
0
170
RTSPクライアントを自作してみた話
simotin13
0
610
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
210
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
360
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
110
A2UI という光を覗いてみる
satohjohn
1
140
Performance Engineering for Everyone
elenatanasoiu
0
160
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
200
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
650
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
260
Featured
See All Featured
Everyday Curiosity
cassininazir
0
230
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
The Limits of Empathy - UXLibs8
cassininazir
1
360
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Building Applications with DynamoDB
mza
96
7.1k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
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 ま と め テストケースに通るだけで 終わらせない
動くコード から、 意図が伝わるコード へ