Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
akio
May 28, 2026
Programming
180
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
19
Other Decks in Programming
See All in Programming
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
350
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.3k
パーソナライズPodcastを作った話
repunit11
0
130
Java 27新機能 / Java 27 new features
kishida
2
210
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
640
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
260
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
950
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
100
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
470
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
Claude Code のすすめ
schroneko
67
230k
Leo the Paperboy
mayatellez
10
2.4k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
350
Building Adaptive Systems
keathley
44
3.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Why Our Code Smells
bkeepers
PRO
340
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Odyssey Design
rkendrick25
PRO
2
860
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
680
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 ま と め テストケースに通るだけで 終わらせない
動くコード から、 意図が伝わるコード へ