Share
Embed
Transcript
14 slides
-
common questions • am i a good developer? • am
i a developer? • how can i be better? • how can i move ahead in my career? -
well-rounded developer • hard-skills • operation systems, programming languages, etc.
• soft-skills • communications, team work, etc. • path from junior to senior, covering depth and breadth -
depth in programming • single language • user of language
• understand language internals and performance implications • meta-programming • runtime - dalvik machine -
breadth in programming • mid-level: 2 languages in the same
family • ruby + python • senior: 2 languages in different families • ruby (OO) + haskell (FP) • architect: 2 language flavors • ruby (web) + swift (iOS) -
frameworks • entry-level • single language: sinatra, RoR • mid-level
• multiple languages: flask, phoenix • senior • multiple flavors: web, mobile • architect • framework creation: from user to creator -
databases • relational: sqlite, postgres, mysql • nosql: mongo, redis,
couchdb • big data: hbase, hadoop • performance • scaling • mid-level: usage of 2 types of db • senior: performance tuning • architect (dba): scaling (infrastructure) -
senior to architect • infrastructure • routing, proxy, load-balancing, security
• performance monitoring, turning, system scaling • automation (devops) • end-to-end understanding (mobile to server to db) -
communication • mid-level: comfortable and effective with teammates • senior:
with bosses and subordinates • architect: with other organizations, advocacy -
motivation • self-motivated • mid: able to interpret tasks given
and complete independently, including effectively solicit helps as needed • senior: product analysis, planning, and estimate • architect: product inception, feasibility study, and advocacy + result -
agility • mid-level: change management • senior: change anticipation and
proactive resolution • architect: data-driven decision-making process -
product and entrepreneurship • VP/C-level • understand product, product domain
• transportation, fintech • industry relationship, vendor management -
from good to great • higher calling • human good,
social good, purposeful life • meaningful product used by people to improve their lives • integrity being • not caving in to deadline, management pressure, and monetary incentives -
artisan and craftsmanship • code as poetry • programming as
lifestyle as opposed to work • intellectual challenge (puzzle solving, strategy games) • joy of learning • efficiency-focused, problem solver, new ways to improve everyday life