—
Trisha Gee (@trisha_gee)
Developer & Technical Advocate, JetBrains
Becoming Fully
Buzzword Compliant
https://www.linkedin.com/in/trishagee/
or: Tips on Surviving the
Technology Industry
Recent Past (~3-5 years ago)
• Asynchronous Programming
• Distributed Version Control
• NoSQL
• JavaScript
• HTML5
• Continuous Delivery
• DevOps
Today
• Reactive
• Git
• Big Data
• TypeScript
• HTML5
• Continuous Delivery
• DevOps
Looking back further…
• Prince2
• Scrum
• SVN
• Flash
• AWT
• Java
• Test Driven Development
• Static Typing
Looking back further…
• Prince2
• Scrum
• SVN
• Flash
• Swing
• Java
• Test Driven Development
• Static Typing
Looking back further…
• Prince2
• Scrum
• SVN
• Flash
• Swing
• Applets
• Test Driven Development
• Static Typing
How Can We Tell What’s Important?
How can we avoid Extinction?
Step 1: Denial
Step 1: Awareness
AI, Machine Learning, Data Science, Blockchain, Mesh App & Service
Architecture, Digital Twins, Autonomous Vehicles, Robots &
Appliances, Virtual & Augmented Realities, Humanlike Assistants
Spoiler:
https://feedly.com
http://androidweekly.net/
http://groovycalamari.com/
http://www.kotlinweekly.net/
https://www.sitepoint.com/java/
https://info.jetbrains.com/Java-Annotated-Subscription.html
http://scalatimes.com/
http://www.baeldung.com/java-web-weekly/
Newsletters
https://getpocket.com
Step 2: Speaking the Lingo
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
https://en.wikipedia.org/wiki/File:Technology-Adoption-Lifecycle.png
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
https://flic.kr/p/b99vsi
CAPSLOCK Room
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Step 3: Enough Knowledge to
be Dangerous
Containerised reactive serverless
microservice blockchain big data
machine learning applications
Reactive Systems?
Reactive Programming?
Functional Reactive Programming?
Functional reactive programming, commonly
called FRP, is most frequently misunderstood. FRP
was very precisely defined 20 years ago by Conal
Elliott. The term has most recently been used
incorrectly1 to describe technologies like Elm,
Bacon.js, and Reactive Extensions (RxJava, Rx.NET,
RxJS) amongst others. Most libraries claiming to
support FRP are almost exclusively talking
about reactive programming and it will therefore not
be discussed further.
https://www.oreilly.com/ideas/reactive-programming-vs-reactive-systems
Reactive programming vs.
Reactive systems
• Reactive is a set of design principles
• Event-driven vs. message-driven
• From programs to systems
• The resilience of reactive systems
• The elasticity of reactive systems
Reactive Systems sound hard
Reactive Programming is available in All
Good Languages
http://rxmarbles.com/
TAB Room
Step 4: Code
Observable.fromIterable(words)
.flatMap(word -> fromArray(word.split("")))
.zipWith(range(1, Integer.MAX_VALUE),
(str, count) -> format("%2d. %s", count, str))
.subscribe(System.out::println);
Step 5: Update CV
In Summary
Step 1: Awareness
Find Zen in Surfing the Tsunami
Where?
• Twitter
• Newsletters
• User Groups
• Blogs & Tutorials
Step 2: Speaking the Lingo
“Wouldn’t a Reactive approach solve that
problem?”
Step 3: Enough Knowledge to be
Dangerous
Guideline: Enough to blag your way
through a conversation in the pub
Where?
• Twitter
• Newsletters
• User Groups
• Blogs & Tutorials
• Online courses
• Conferences
Step 4: Code!
Remember: You must complete Steps 1-3
first
Where?
• Twitter
• Newsletters
• User Groups
• Blogs & Tutorials
• Online courses
• Conferences
• Books
• StackOverflow
How?
• Pet project
• Join an open source project
• Find a project at work
Step 5: Update CV
Or LinkedIn
http://bit.ly/buzz-pc

Becoming fully buzzword compliant

Editor's Notes

  • #17 You don’t have to READ the articles. Just scanning the headlines is Step One to becoming buzz-word compliant
  • #23 See extra photos from flight
  • #24 Now we’ve done our research (note we didn’t have to actually READ any articles) We know we’re building…
  • #25 We’re all writing these, right? Let’s look at each of these in a bit more detail
  • #26 Approx 15 mins in
  • #28 Netflix is doing it so We Have To But microservices are so Last Year Modules in Java 9
  • #29 It’s pretty much accepted practice now So you don’t need to research it, you’ll be doing it at work
  • #30 Or… you don’t care about it because you’re serverless Doesn’t interest me because I’m a Java developer and without a server I’m completely irrelevant
  • #32 Picture of a chain? Kids blocks?
  • #36 Big data is about saving so much data that you cannot possibly make head nor tail of it
  • #37 I have a degree in Computer Science and Artificial Intelligence
  • #39 Can you write a hello world app for Machine Lerning? Big Data? Microservices?
  • #40 All this other stuff looks suspiciously like architecture, which is Hard to try as a developer We like code, so let’s pick the thing that we can code to
  • #42 We’re going to learn enough about Reactive to bluff our way through a pub conversation, or an interview. Sometiems these things are the same thing. Big explosion in news about Reactive in the last 6-12 months. From a Java/JVM point of view, this is probably because the Reactive API is going into Java 9
  • #46 I did get an interesting Reactive Programming vs Systems article in my inbox months ago, so I can at least dig that out.
  • #47 Reactive Systems sound hard. More architecture, not to mention resisiliance, etc. Again, not easy to write a hello world application.
  • #49 And some bad ones
  • #50 SO now I’ve narrowed down that what I’m interested in is Reactive Programming, I can research that. Approx 30 mins in
  • #51 Time is a funny dimension Seems that the most common library we stumble over is Rx, Reactive Extentions I can tell this because I’ve been doing my homework scanning the headlines of the tech news Good thing is it has implementations in multiple langauges, so a) sounds like a reusable skill to learn and b) I can pick a language that suits me The Reactor guys got a bit peeved with me that I chose RxJava, but I can’t help it if their marketing isn’t as all-pervasive as the Rx guys
  • #52 Note the Java 9 Oracle document Now, with a bit of Google-foo and maybe some of those saved, unread articles in pocket or feedly, we can start learning: Just Enough To Be Dangerous Note: once again, you don’t necessarily need to READ all of this, at least not in any depth. It’s enough to skim them to get a feel for the common themes Like “easy concurrency” (ha!) and “backpressure”. Remember this, because this will come up again
  • #54 Finally! I know we all wanted to do this as step one, but there’s zero point in feeling the pain of something that is not going to look amazing on your CV If there’s one thing I’ve learnt in 20 years as a professional developer, it’s not to waste time on something you’ll never use in anger
  • #57 It’s almost the same! (pedants – the behaviour is actually different, but that’s the topic of an entirely different talk)
  • #58 And it all works the same Apart from where I wanted it to work differently
  • #59 Only it didn’t
  • #61 I don’t have to tell you how I found the answer to my problem. StackOverflow is a fundamental part of Step 5: Coding.
  • #62 But this magic incantation did get it to work, and that’s all that matters
  • #70 Online – Safari Books Online; YouTube;
  • #75 Gotta catch em all