Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Becoming a better engineer

Becoming a better engineer

A talk conducted 22/11/2012 at Birkbeck College, University of London. Slides are not self-sufficient, but only give an outline of what I was talking about.

Avatar for Roman Kirillov

Roman Kirillov

November 22, 2012
Tweet

More Decks by Roman Kirillov

Other Decks in Technology

Transcript

  1. Few rules • My name is Roman • If you

    have a question, raise your hand • There is no such thing as stupid question.
  2. What do you want to hear? • Smart programming tricks

    • Secrets of effective software design • Where to find information • How to jump-start your career • How to be a better part of a team • Etc, etc, etc – useful, but no fun.
  3. Foundation • Great people: geek is the new cool •

    Great technology: don’t reinvent the wheel • Great communication: let them speak
  4. Great technology • Re-use code whenever you can • Make

    your code re-usable • Keep your code fit – refactor often • Test everything – protect your product.
  5. Iterative Development • Start with “pretotype” • Define future system

    components • Build quick and dirty prototype • Rewrite it from scratch – iteratively. • ??? • PROFIT REPEAT!!!
  6. Real-life example: API for partners • Dummy classes which look

    like API with no backend • Dummy classes speak to dummy backend • Iteratively improving dummy classes’ interface • Changing dummy backend to real backend.
  7. Share the knowledge • In big companies it’s almost impossible

    to be aware of everything going on • All-hands is top-to-bottom solution, great for spreading information about new things • Tech talks is a deep-dive into some topic • Also: google for “testing on the toilet”.
  8. Two and a half heads • Can you still see

    the wood for the trees? • Two pairs of eyes are better than one • Code & design reviews • Seek constructive criticism.
  9. Seek constructive criticism • Does this make sense at all?

    • What could I be missing? • How will this not work? • Will other people understand this? • Also: teddy bear programming.
  10. Give and Receive • Ask for constructive criticism • Be

    constructive when someone asks your opinion. • Be on a lookout for a new knowledge.
  11. Being a geek • Degree is not enough • Teach

    yourself • Stay current • Be in the loop
  12. Never stop • Learn one new programming language every year

    • Read a technical book every month • Take classes (e.g. coursera.org) • Read good code • Join an open source project / dev group (e.g. GDG) • Code for fun!
  13. Internship at Google • Must be a student • Not

    necessarily computer science student • Must return to the university after internship • www.google.com/jobs/students/tech/internships/ • It’s OK to email me and ask questions.