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
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
310
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
530
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
霧の中の代数的エフェクト
funnyycat
1
420
GitHubCopilotCLIのスラッシュコマンドを自作してみる
htkym
0
100
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
170
What's New in Android 2026
veronikapj
0
150
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
300
琵琶湖の水は止められても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
430
act1-costs.pdf
sumedhbala
0
250
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
140
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
How to Talk to Developers About Accessibility
jct
2
430
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Test your architecture with Archunit
thirion
1
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
The Cult of Friendly URLs
andyhume
79
7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Designing for Performance
lara
611
70k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
520
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 ま と め テストケースに通るだけで 終わらせない
動くコード から、 意図が伝わるコード へ