Top Banner
Raising The Bar 1 Thursday, 2 May 13
19

Raising The Bar

Jan 26, 2015

Download

Technology

jClarity

A Short presentation given at the London Java Community on Raising the Bar for yourself as a technologist.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Raising The Bar

Raising The Bar

1Thursday, 2 May 13

Page 2: Raising The Bar

Hacking Yourself

• We’ve taught & mentored a lot over the years– Ben Evans (@kittylyst)– Martijn Verburg (@karianna)

• Culminating in the LJC, of course!

• The most amazing thing about the human mind is its ability to change & to alter itself

• The industry moves so fast– We need techniques to keep up– Staying curious is key

2Thursday, 2 May 13

Page 3: Raising The Bar

How Do We Learn?

3Thursday, 2 May 13

Page 4: Raising The Bar

Cargo Cult Teaching?

4Thursday, 2 May 13

Page 5: Raising The Bar

How Do We Learn?

5Thursday, 2 May 13

Page 6: Raising The Bar

How Do We Learn?

Self-study

Socialcoding

Formaltraining

6Thursday, 2 May 13

Page 7: Raising The Bar

Use A Basic Toolkit

• Ideal way to teach ourselves

• We should know all know basic CompSci– Use it on a daily basis– Look for places to apply it

• What should be in our toolbox?– Data structures, Big-O, type theory, information theory– Compilers, interpreters, virtual machines– A proper understanding of Unix– Operating systems & kernels– Hardware, wherever possible

7Thursday, 2 May 13

Page 8: Raising The Bar

Check Your Working

• Check your working

• Verify your results

• Have your peers to replicate your results– Do NOT just reuse others conclusions blindly

"The first principle is that you must not fool yourself—and you are the easiest person to fool.

So you have to be very careful about that. After you've not fooled yourself, it's easy not to fool other scientists.

You just have to be honest in a conventional way after that." - Richard Feynman

8Thursday, 2 May 13

Page 9: Raising The Bar

Explicit Assumptions & Approximations

• State– How much data?– How many concurrent users?

• Document– Work with other stakeholders– Discuss with peers– Formal document as a project artifact

• Revisit– Sanity-check every once in a while– Verify that initial assumptions are still met– Update if not

9Thursday, 2 May 13

Page 10: Raising The Bar

Reduce The Problem

• Wherever possible, try to decompose the problem– Use approximations

• Build simpler versions if you need to– Can add complexity later– “What is the simplest thing that could possibly work?”

• Spend time thinking about the problem domain– Very few projects are really “shipping widgets”

• Graphical techniques are powerful– They don’t need to be complex

10Thursday, 2 May 13

Page 11: Raising The Bar

Use Diagrams

11Thursday, 2 May 13

Page 12: Raising The Bar

Simplify Your Coding

• Naming– Strict adherence to SRP– The name should encode SRP– Reject a commit if this is not adhered to

• Complexity has hidden costs– No class is more performant as one which isn’t there

• Reduce Technical Debt– “If it hurts, do it more”– Technical debt accumulates faster than you realise

12Thursday, 2 May 13

Page 13: Raising The Bar

Be Aware of New Developments

• But evaluate them on their merits– Too easy to let Hacker News rule the roost

• Make empirical technology decisions– Basic toolkit & empiricism help here

• Newer is not necessarily better

• Don’t blindly using others conclusion

• “Why Devs Keep Making Bad Technology Choices”– Google & read it if you haven’t

13Thursday, 2 May 13

Page 14: Raising The Bar

Share What You Know

• Know where to get more information– Especially from other people

• Teach what you know to others– You don’t really know anything until

you’ve taught it to someone else

• Teaching others also teaches ourselves– Re-examine the basics

14Thursday, 2 May 13

Page 15: Raising The Bar

Share What You Know

• Try out lots of ideas & subject areas

• Don’t be afraid to be wrong– Or shown a different point of view

• Do expect SMEs to prove their assertions

• Avoid Rhetological Fallacies– Especially “Appeal to Authority”

• Seek out colleagues & people you like working with

15Thursday, 2 May 13

Page 16: Raising The Bar

Be Inquisitive & Be Yourself

• Travel, learn to speak new languages– Domain, Human & Computer

• Diverse problems feed the mind– And it’s more fun

• Development is a social activity– Probably more than technical

16Thursday, 2 May 13

Page 17: Raising The Bar

Summary

• Build a mental toolkit which is simple– Focus on fundamentals– Use visualisations & graphical techniques

• Use empirical data extensively– State your assumptions & approximations

• Share what you know– Teach & mentor your peers & younger developers– Constantly relearn & reteach the basics– Look for puzzles everywhere

• Be yourself!

17Thursday, 2 May 13

Page 18: Raising The Bar

Current Course Ideas

• Advanced Java - London May 25th

• The Java Virtual Machine - London July 6th

• Introduction to Finance & Financial Technology

• Linux / Unix for Java Developers

• UI & UX for Java Developers

• Java 7 / Java 8 features

• What do YOU want to see?

• When works better - weekdays? weekends? evenings?

• Grab a drink & tell us your thoughts...

18Thursday, 2 May 13

Page 19: Raising The Bar

Over To You...

• Twitter: @kittylyst @karianna @DeveloperFocus

• Email: [email protected] [email protected]

• Web: http://developerfocus.com/

19Thursday, 2 May 13