• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Tech Talk @ Dev Bootcamp Chicago
 

Tech Talk @ Dev Bootcamp Chicago

on

  • 747 views

The talk I gave at Dev Bootcamp Chicago. It is about how to becoming a better programmer as someone new to programmer.

The talk I gave at Dev Bootcamp Chicago. It is about how to becoming a better programmer as someone new to programmer.

Statistics

Views

Total Views
747
Views on SlideShare
747
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tech Talk @ Dev Bootcamp Chicago Tech Talk @ Dev Bootcamp Chicago Presentation Transcript

    • @Dev Bootcamp Winter Is Coming. You are not ready. !1
    • Enova Fred Lee CIO/CTO fred@enova.com @fredlee !2
    • Closing the World’s Credit Gap Helping hardworking people to fulfill their financial responsibilities with fast, trustworthy credit !3
    • Company Founded in 2004. Online financial services in the US, UK, AU, CA and MX. 80 million page views Over 3 million customers !4
    • Employees 440. 170 in Technology. !5
    • Values Customer First. ‘Best’ Answer Wins. Accountability and Results. Top Talent and Teamwork. Operate as an Owner. !6
    • IT & Systems Engineering !7
    • Software Engineering !8
    • !9
    • PostgreSQL !10
    • Linux !11
    • The Survey Asked recent graduates at Enova. It was totally scientific. !12
    • How has your undergraduate studies NOT prepared you for doing software engineering in the real world? !13
    • Think of the best real world programmer you know. What skills or traits do they possess? !14
    • What skill is MOST important in the real world? !15
    • A Pie Chart Bringing the Big Data! 11 2 9 5 14 1 Good Code Communication Existing Systems Experience Intelligence Learning Coding Practices 7 !16
    • Three Things What I will talk about . . . Learning Coding Practices Existing Systems !17
    • Learning !18
    • “Ability to learn new things quickly (complemented by a desire to keep learning).” U of Chicago !19
    • “The ability and willingness to learn.” Rose-Hulman !20
    • Peter Drucker “We now accept the fact that learning is a lifelong process of keeping abreast of change. And the most pressing task is to teach people how to learn.” !21
    • Peter Drucker “We now accept the fact that learning is a lifelong process of keeping abreast of change. And the most pressing task is to teach people how to learn.” !22
    • The ability to learn is more closely tied to humility than anything else. !23
    • 3 ways to learn Watch out! You are gonna have to get humble. !24
    • Do Learn to learn by doing. !25
    • Skill + Tenacity !26
    • Skill + Tenacity = Skillnacity !27
    • Skill + Tenacity = Skillnacity™ !28
    • Sophocles "One must learn by doing the thing; for though you think you know it, you have no certainty, until you try." !29
    • Sophocles "One must learn by doing the thing; for though you think you know it, you have no certainty, until you try." !30
    • 3 ways to learn Watch out! You are gonna have to get humble. ! First: Do !31
    • Co(mmunity) Community. Find people who are better than you. Now, surround yourself with them. !32
    • Pat Metheny “Be the worst guy in every band you’re in.” !33
    • 3 ways to learn Watch out! You are gonna have to get humble. ! First: Do Second: Co(mmunity) !34
    • Go Meet-ups. Conferences. Jobs. Opportunities. Tech Talks. Dev Bootcamp. !35
    • Places to Go Chicago Tech Community Chicago Ruby http://chicagoruby.org/ @chicagoruby 73 “Internet & Technology” Meetups near Chicago, IL !36
    • 3 ways to learn Watch out! You are gonna have to get humble. ! First: Do Second: Co(mmunity) Third: Go !37
    • Coding Practices !38
    • “. . . they always try to follow the best practices. They also learn from their mistakes, learn why it happened and how to avoid them in future.” Carnegie Mellon University !39
    • “They have a strong passion for learning about our craft . . . Rose-Hulman !40
    • Kent Beck "..the problem [with software projects] isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes." !41
    • Kent Beck "..the problem [with software projects] isn't change, per se, because change is going to happen; the problem, rather, is the inability to cope with change when it comes." !42
    • The only way to write code that can cope with change is by testing your code. !43
    • How do you test this? !44
    • Yes. This will do. !45
    • Acceptance Testing !46
    • Integration Testing !47
    • Unit Testing !48
    • Coding Practices Not what you think. ! First: Test your code. !49
    • Code Design What about great OO design? Doesn’t that allow you to cope with change? !50
    • Design All design trends towards wrong. !51
    • Mike Tyson “Everyone has a plan ‘til they get punched in the mouth.” !52
    • Mike Tyson “Everyone has a DESIGN ‘til they get punched in the mouth.” !53
    • Coding Practices Not what you think. ! First: Test your code. Second: Don’t worry about design. Test your code instead. !54
    • Read Reading code is a Coding Practice. !55
    • Read Most of your time will be spent reading code, not writing it. !56
    • Read Most of your time will be spent reading code, not writing it. Correction: Reading ugly code. !57
    • A Pie Chart Don’t believe me? Here’s a chart! Being Awesome Writing Code Reading Code Getting upset at bad code before you realize that you wrote it a week ago. 5 5 45 45 !58
    • Read > Write Can you write before you can read? !59
    • Stephen King “If you don’t have time to read, you don’t have the time (or the tools) to write. Simple as that.” !60
    • Coding Practices Not what you think. ! First: Test your code. Second: Don’t worry about design. Test your code instead. Third: Go read some code. Try github.com. !61
    • Existing Systems !62
    • “Very little emphasis is placed on understanding existing code, and integrating with existing design paradigms” University of Michigan !63
    • “there was never really any talk about how hardware or networking issues can affect a projects implementation or how those need to be taken into account when planning a project.” Carnegie Mellon University !64
    • Realize What is the code? What is the system? Is there a difference? !65
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer Hardware File Systems Data Center !66
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer OS Hardware Virtualization File Systems Disk Data Center !67
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer App/Web Server OS Hardware Database Virtualization File Systems Disk Data Center !68
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer Code 3rd Party Integration App/Web Server OS Hardware Database Virtualization File Systems Disk Data Center !69
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer Internet Browsers Code 3rd Party Integration App/Web Server OS Hardware Devices Database Virtualization File Systems Disk Data Center !70
    • The System More than you realize. Web Application. Sixth Layer Fifth Layer Fourth Layer Third Layer Second Layer First Layer New Users Old Users Bad Users Fraud Internet Security Dev QA Browsers Code Hardware Devices 3rd Party Integration App/Web Server OS God Database Virtualization File Systems Disk Data Center !71
    • How does this affect your system? !72
    • !73
    • In Review @Dev Bootcamp The Survey !74
    • In Review @Dev Bootcamp The Survey Learning !75
    • In Review @Dev Bootcamp The Survey Learning Coding Practices !76
    • In Review @Dev Bootcamp The Survey Learning Coding Practices Existing Systems !77
    • /r/ama I’m the CIO/CTO at Enova. AMA. !78
    • Enova Fred Lee CIO/CTO fred@enova.com @fredlee !79
    • !80