Droidcon boston chiu ki chan header

How to be an Android Expert

Introduction

My name is Chiu-Ki Chan and I’m going to tell you how to be an Android expert.

Think of somebody that you think is an expert. How do you know that she is an expert? “She knows a lot about Android.” Probably you read a book that she wrote about Android, you heard her speak on stage about Android, watched some videos of her teaching Android, read her blog posts or Stack Overflow answers.

The dictionary says an expert “is a person who has comprehensive and authoritative knowledge in a particular area.” If you go by that definition an expert is someone that is put on the pedestal to be worshiped and admired. But, if you go by our earlier, more human definition, an expert is a person who happened to be sharing what they know.

When you share you gain expertise; with more expertise you share some more. This is a nice positive loop. When when you want to share you need to get the knowledge out of your head. And when you do that you have to put things in a line because space is linear. We don’t yet have a 3D mapping of our brain concepts that we can just transfer to somebody else. When you do that you also need to explain the relationships among the different concepts. Then you go and learn some more and fill in that gap. That’s how you gain more expertise. When you’re explaining things you need to figure out what it means first before you can lay it out in a logical way.

The one exclusive sign of thorough knowledge is the power of teaching”, by Aristotle. If you don’t believe an old Greek guy know anything about Android development, I have another way to show you why sharing can help you with your expertise.

For example, when you try to explain List View: “I need to use an adapter, and then I need all these view holders. I don’t have a full understanding why when you scroll I heard something about recycling the view. That’s why I need adapters, and there’s data backing it”… That process of explaining will help you figure out what you think you understand but don’t understand. And once you are through that, we have RecyclerView - more things to learn, more things to explain.

Sample project

But who has time to share? Good news, sharing can save you time. I discovered that by mistake.

This is the architecture of my app: four rectangles representing components that work together. Then I heard about this brand new library called ice cream cone, and I wanted to integrate that into my app. But I cannot just plug it in, I need to interface this particular library with the rest of my app. “I’ll write some classes, write some code, to bridge the interface between the ice cream cone library and my app, and start to make it fit into my whole, big, complex app.” And then in the middle I’ll say, “This is mint flavor, I want to customize it to have chocolate flavor.” I splash some chocolate, and I splash it on the wrong place, and now nothing works. “Is it the bridging code? Is this the bigger project, is it the library itself?” And then I get frustrated because at that point everything is a tangled mess and I don’t know what is happening.

Since I started sharing, I do something different. First, I take the sample; usually when you have a project that is a library, there’s a sample Hello-world level project that you can compile. I compile that outside of my existing project. I verify that this part works and then at this point “let’s customize it already, let’s put that chocolate in with no other things happening so I know that if it doesn’t work it’s either the library, which I already verified for the first step that it works, or that this customization is broken.” I do step by step outside of my main project until I’m at the point where it is ready to be plugged back in. This saves me so much time because I isolate that this new, unknown technology, so that I can figure out how exactly I’m going to be using it in my project, separately, and then put it in, and then it works. That saves me so much time that I’m doing it all the time, whether I’m sharing or not.

Get more development news like this

But if you’re already doing that then you should share it because you just made yourself a sample project and it’s completely separate from whatever secret source your company’s using you can put that on GitHub, and congratulations, you are an open source contributor. People make such a big deal about contributing to open source. I used to be shy. And it’s not extra work; at this point the project’s already there ready to go.

Blogging formula

On top of that is a blog post. I have a story to tell, “I’m trying to use this library, and here are the steps that I do to achieve it.” That that adds on to that Hello-world example. Many times you see a project, “in this toy situation of course your library works, how do I know that I can also use it in complex situations?” If you share your experience that, “I tried to do this but I also need it to work with this other library”, then other people can learn from your experience. With that you have a blogging formula: build up your project step by step, put it on GitHub and write about the process.

Screenshots and code

When I’m building on my project, I try to take screenshots along the way. For example to show how, step by step, I made a RecycledView. I made the items of different sizes and added a header. Afterwards I also have some code snippets. I put the code snippets, A, to show how things work, and, B, to take up space. Just to format it, mono space things, that, A, it’s easy to spot. Everybody go and copy and paste in the mono spaced things anyway. Why don’t you make it easy, front and center? And, B, it takes space. “A picture is worth a thousand words.” If you want to write a 10,000 word blog post, that’s five screenshots and five code snippets. That’s the secret for me. Realizing that I’m not there to explain in prose. I’m just taking screenshots and code snippets and add a little bit of text in-between so that it flows well. With all the different pictures it makes it appealing also to your reader.

I’m talking about speaking and talking about blogging as well. The other blogging formula I have a blog post that I share, the six steps that I used to write it. And it should be automatically going out on Twitter as I speak, I’m trying to live tweet my own talk. If you’re following me on Twitter the link should already be there.

Conference report

You all are here, at a conference, to learn. But how many of you go back and share what you learn?

First of all, have an introduction. Then, instead of writing about what happened in the conference, there’s a very cool trick that can turn 140 characters into something nice looking: Twitter. It doesn’t take that much space but if you turn that into a tweet and embed it back into your blog it will not take space and it will look pretty.

Embedding tweet

Let’s look at some examples. You can tweet about things you noticed during the conference. Maybe you know there’s something interesting happening, you can tweet that. Or you can quote the speaker, that’s something that makes it easy for other people who are not at the conference. You can thank the speaker. Or something basic: “First day of Droidcon Boston has been awesome!” All these are things that you’re just doing on the spot when you’re at the conference.

They all have the #DroidConBos. If you are tweeting, on top of that you can also search for this hashtag and then include other people’s tweets. And you can build a pretty rich blog post with coverage without you writing all those words.

Embedding pictures

The next thing we can do is a picture. If you are going to be at a conference probably you can just take your camera and look at different things and say, “that was interesting let me take a picture.” You can embed it in your blog post and it will look pretty and take space. For example, speakers on stage. Take a picture, put a quick note. Or, you can take picture of food, and people. There’s a lot of us out there attending this conference and enjoying ourselves, why not document that?

Embedding a Sketchnote

It’s a fancy way of saying instead of taking notes one line after another you are taking notes, treating the piece of paper like a 2D canvas. You’re taking notes, writing words bigger or smaller, and putting them side by side, maybe drawing arrows to show concepts and their relationships., and maybe adding pictures.

Some people say, “I can’t draw so this is not for me.” But if you look at what I did on this slide, I drew but it’s a heart. Everybody can draw a heart. Write some words and then put a bubble next to it and that becomes an illustration. This visual way of taking notes attracts attention. It makes your experience much better when you can come home and share and say, “this is a talk I attended and this is how it looks like.”

People are doing it at this conference. It doesn’t need to be fancy. If you want to learn to draw copy, that’s how you learn. The point of the sketchnote is to be able to digest what’s happening and put it down on paper, freeform, not line by line.

I started doing it only two years ago and I’ve been enjoying it so much. With all that you have a blog post ready to go and, at the end, write a little conclusion, and say, “I would love to come back next year.” You can send it to your team, send it to the boss, and say, “not only I went to the conference, but I learned a lot. Next year, can I go again?”

Speaking

Speaking takes this to the next level, because speaking is interactive.

When you blog, you write, post, people may or may not read it. But when you speak there are people listening to you. And the great thing about that is that it makes networking at an event much easier because you speak and then people afterwards will come see you in the hallway and you start talking about what you spoke about. You only need to do the little introductions about who you are, what you do, what your interests are, and you can talk about very interesting things. And also the burden is not on you anymore because other people come to you. I found going to conferences and Meetups more fulfilling once I started talking.

Objection #1: “I have nothing to say.”

Some people say, “But I have nothing to say.” I have a talk about talking, called “I Have Nothing To Say”.

I just want to quickly show you one trick that you can use to find something to talk about. When I write code it is not always perfect. Whenever I have something that takes longer than I thought it should, that’s when I know that I need to write this down. I do it as a blog post or convert that into a talk. Sometimes it’s not even my code I write this, I mess up, and then things doesn’t work. Sometimes it’s “I’m using this library, and then one day I heard that there’s a new version. I decided that I needed to upgrade. It’s so small, 24 to 25. Things go wrong when you do things like that.”

And that’s when you want to capture that and share that. Not only for other people but for yourself as well. I can tell you so many times I just go back to my own blog post because I forgot how I did that thing six months ago. It’s notes to my future self. Even if nobody reads my blog I read my own blog.

Another way of putting that is, this is my friend Ellen, I love the way she think about speaking. Her style of speaking is, “I’m the idiot who went down the rabbit hole first and I’m here to tell you which path leads to fluffy bunnies versus angry moles. Because you already suffered, you already spent three hours figuring out that, I need that one extra flag to make this work.” Why don’t you also share that with other people and tell them where the angry moles are?

Rant Book

When I started, I had a rant book (that’s what I call it). Every time something is not working, I write it down. Initially the idea was that I will read it back, I will see patterns, I’ll take it to a blog post or a talk.

Once I started doing that my brain started noticing all these interesting things to share without me explicitly writing it down and thinking that, “that should be a blog post.” And then one morning I’m in the shower and I’m, “That’s a good blog post.” For some reason good ideas always come in showers.

Objection #2: “No one wants to listen to me.”

Usually objection number two is, “no one will want to listen to me. I can rant all day long but who wants to listen to me, I’m nobody”.

How many of you go to Meetups? A fair amount of you. Where do you think all those speakers come from at Meetups? You! Your local community are going to need one person to speak every month. It’s not going to be this elite group of people that’s going to be giving talks all the time. Trust me, if you go to one of the Meetup organizers and say, “I would like to give a talk”, they will be, “Thank you for saving me because I have no speaker for the next month!” Guaranteed, because there’s no way that they can have the pipeline just keep filled completely without people from the community stepping up. And the community is you.

The great thing about speaking at Meetup is that you don’t have to start with a 40 minute talk, you can start with a show-and-tell, lighting talk, and then work your way up. The crowd is friendly, most of the time they don’t pay anything, they are not going to come up and say, “I demand a refund because I didn’t get what I paid for.” “You didn’t pay anything!” Go there, share, and usually people you already know them so it’s a much more friendlier crowd. If you think nobody want to listen to you you’re wrong. Your Meetups wants to listen to you. Once you’ve done that the next step up will be speaking at conferences.

Speakers

The difference between speaking at a Meetup and speaking at conferences is speakers.

For example at this conference there are many speakers. When you speak, you are going to be hanging out with these speakers because usually there is some speaker event, special party, and things like that where you get to bond with other speakers.

This group of people are the ones that did that step, that say, I’m going to go ahead and share my knowledge. By meeting with these speakers you’re getting to know them and later the thing doesn’t end at the conference. You meet them, you follow each other on Twitter, and you can continue to exchange information, knowledge. And that is by far the best perk of speaking. It’s not about being on stage and being a rock star. It’s about connecting with people. And you connect with the audience but you also connect with your fellow speakers. Knowing that you have this big community of people behind you with whatever you do is amazing.

Call for Proposals

If you want to speak at a conference you have to go through a call for proposal (CFP). It should be short, maybe three paragraphs, explain why this topic is interesting, and why you should be talking about it.

Why this topic?

I’m going to show an example and walk through how we can dissect a proposal. Usually the proposal is the same text that go through and you see on the website of their website so you can go through this exercise yourself as well. We’re going to look at this proposal called Kotlin: Uncovered.

Start off defining what is she going to be talking about (“Kotlin”). Then go through an example, keywords (“we will be talking about data classes, lamdas, and delegates”). Finally, sell them with a take away (“if you come to this talk you should walk away from this investigation with a deeper understanding of Kotlin and some tools for continued explanation.”) This is a good three step formula of writing a proposal.

And then one more trick I want to share with you of writing a good proposal is the magic word: you. Sometimes when we write something we say, “I’m gonna teach you how to do this, I’m going to show you this.” No! You want to talk about the audience. You are going to learn this. You are going to take this home. It’s like spell checking you just flip it from me to you, and then it will look so much better.

Why you?

Hopefully by this point you have already written some blog posts so people have some idea of how you think about things and you can explain. And perhaps you have given some Meetup talks. And usually Meetups don’t have the budget to have (like professional recording like this conference) but you can run either QuickTime or OBS, which is Open Broadcaster Software, to do a screen cast. You record your voice and also the slides going through and that’s a great way of just capturing your talk at a Meetup.

When you apply to speak at a conference, the conference organizer have a bit of sample. Again, there’s a blog post showing you how to do that with QuickTime.

I also gave a talk about writing a proposal. Go through and see successful proposals that made it to the conference and understand why it’s interesting. Go ahead and watch that talk if you are interested.

Talk Accepted! Now What?

You submitted to a conference and you got accepted. Now you have to write your talk, because the proposal is only very very short. I have a newsletter called Technically Speaking, which every single week we share tips and tricks on how to make a good presentation, how to write better proposals, what should you do when you’re on stage.

I’ve been going through all the bright side of sharing, blogging, and speaking. I think I should also address the elephant in the room: I think I am convinced that if I share that people think I’m an expert, but what if they don’t, what if they find out I’m an imposter? I’m no expert, I don’t know what I’m doing. What if they write nasty comments on my blog? What if they yell at me at a conference and tell me that I am wrong, I am nobody?

For a blog I have good news and bad news for you. You have no readers. The bad news is that you are just kind of throwing things out into the internet and maybe no one will ever read it. But the good news is that means you are free to experiment. You can just write whatever you want to write, there’s nobody lining up to be “that was bad, I don’t like that.” Just try it. And if you are nervous about that one thing I do is moderate my comments on my blog. I don’t just let random people write on my blog. Initially I thought because there would be nasty people trying to criticize me. But what ended up happening is just there’s a lot of people that just say, “that blog post was great but that’s not my class assignment; can you do it this way and put inverse instead of robust in your sample project?” No, go do your own homework! I share one thing you want me to do these 10 other things? No. So I just moderate. I don’t need the Android training either. I just moderate my comments and you can do that too, it’s your blog.

Speaking is a little bit more tricky because, like I said it’s interactive. And usually what happens, I don’t know if that happened to you at a conference is the time comes for Q and A, and then someone was like, “I have a question, but it’s not a question. I just want to talk about things that I know because I am great.” That’s annoying because it’s not even them telling you you are wrong. That’s just the open format of the Q and A and people abusing it. You don’t have to take questions. Nobody said that if you give a talk you have to take questions. Many times I will just say that. I say, “thank you for coming to my talk, I won’t be taking questions but please come on up and we can discuss”, that’s perfectly fine.

If you want to do open Q and A you also have one trick in your bag which is just be honest. If someone asks you a question and you don’t know the answer just say, I don’t know. It’s fine. Nobody said that you have to be a walking encyclopedia of all knowledge of all times to be on stage to be questioned by this crowd. You have one specific experience you want to share, you share that, your responsibility is over. If someone asks you a question you don’t know you say, “I don’t know, I have not encountered that before.” If you’re a nice person then maybe you can offer, “Maybe you can tweet at me so that “we can continue this conversation or take this off stage.” But you’re not there to be questioned you’re there to share one little piece of information and that’s it.

Rejection

It hurts when you apply to a conference and they say, “Nope, we don’t want to hear from you.” But the thing is it happens to everyone. There’s a lot of experienced speakers that’s on stage giving great performances but what they don’t tell you is their rejections.

For me, when I heard that I would be keynoting at Droidcon Boston I ran up the hill and yelled at hilltop, also known as Twitter, “I will be keynoting at Droidcon Boston, I’m so excited!” What I didn’t do is also tell you that I got rejected by Chicago Roboto ,which is another Android conference happening in April. I submitted to the conference a proposal about testing and they didn’t want it. I have no idea why. And most of the time even the organizers don’t know why because I’m an organizer for 360 AnDev, which is an Android conference in Denver. I’m doing the talk selection, and the first round is voting, we hide the personal information, so it’s just on the merit of the written words. And then we send it out to people in the community to vote on it and then the organizers look at it afterwards.

There’s many factors that nobody knows why your proposal is not taken. It happens to everybody. Last year I had to reject someone that’s prominent in the community. But don’t let that stop you, just keep at it. Once you have written a few proposals just keep submitting. I mean you can do the same talk over at multiple conferences. Keep doing it until the stars line up and then you’ll be on stage sharing your knowledge as well. It is hard to persist but please do, we want to hear from you.

Share Your Expertise!

Hopefully at this point you all are very excited about blogging and speaking, about going out there sharing your knowledge and gaining expertise and being a part of a bigger community so that we can all learn from each other.

References

You can find the keynote here.

Blogging formula

Blog post and speaking

News Letter

Technically Speaking

Next Up: Realm and the Android Community

General link arrow white

About the content

This talk was delivered live in April 2017 at Droidcon Boston. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers.

Chiu-Ki Chan

Chiu-Ki is an Android developer with a passion for speaking and teaching. She has spoken at numerous conferences all over the world, and has been recognized as a Google Developer Expert for her extensive knowledge of Android. She runs her own mobile development company, producing delightful apps such as Monkey Write, Heart Collage, and Fit Cat.

4 design patterns for a RESTless mobile integration »

close