Al Martin: Welcome. You found the Making Data Simple series in the Analytic Insights podcast. Welcome. I’m glad you’re here. I appreciate it. This is Al Martin. Today’s topic is programming mating — made fun and simple, and with me today I have Caleb Curry. How are you Caleb?
Caleb Curry: Hey guys. Doing good. How are you today?
Al Martin: I — I’m doing — I think you got a great name by the way so you should be a baseball player and that’d be Caleb Curry who’s up for bat, you know.
Caleb Curry: Yes.
Al Martin: So very good so, Caleb, could you talk a little bit about your role and then I want to jump in?
Caleb Curry: Yes certainly. Well I run a YouTube channel – small to medium sized channel and…
Al Martin: Oh.
Caleb Curry: …basically on there I just try to break down programming concepts pretty simple and that’s essentially all it is, but I really try to focus on data and using data and applications and I just try to make it all entertaining and fun.
Al Martin: So you’re like the YouTube sensation, a smart and much better-looking Justin Bieber. Is that true?
Caleb Curry: I don’t know. I could leave that up to the audience to judge I guess.
Al Martin: All right. All right, cool. So, look, I think you do have a unique way of making the complex very simple.
Caleb Curry: Well one thing I thought about mentioning was kind of how I go about learning a new topic…
Al Martin: Yes.
Caleb Curry: …because I said, you know, when I learn something it takes me a little bit longer than some people. I go through a bunch of steps just to kind of break down a topic.
I think a lot of people go into something and they’ll read a couple of sentences and they’re like, “Oh I don’t get it,” and then they’ll quit. We just got to keep reading it and keep going and you’ll eventually get it.
And I kind of just broke it down into like four steps how I go about learning a new topic. The first thing is I try to learn the vocabulary and when I learn the vocabulary I write it down.
So obviously I like to use a chalkboard so I’ll just — I’ll take notes on a chalkboard or just on some scrap paper. I write down a vocabulary word, write down the definition, write down an example and then I’ll just erase it.
And the point of that is I’m erasing it because I don’t want to have to always just lean on my notes. I want to try to get it in my brain and when you learn the vocabulary you kind of are a step closer to really understanding the whole material.
The second thing is keep it super simple so, you know, if you take notes on a book and you end up with like 25 pages of notes, see if you can condense those 25 pages down to 15 keeping the same material, but just get rid of all the extra stuff.
And keep anything else in your mind that you might delete and then just keep doing that process, and see if you can kind of write down your entire brain for this entire project in like pages for example.
And you also get to the point where you learn abstraction, which I’ll talk about in just a second. That’s — the second one is simplify your notes. The third thing is to correlate things to other things that you already know.
So if you’re learning a new topic — like I’m studying this machine learning stuff, and you put all of your data in a table and they call it an analytic think table.
And I look at that and I say, “Hey this is sort of like a database table,” but instead of having columns you have what they call features. They have descriptive features and target features.
And if I just went in like that without the previous database thoughts I wouldn’t really be able to associate it that well, but because of that association I’m able to pick that up a lot faster.
And the fourth thing is understanding abstraction so an abstraction is hiding away the granular detail under something very — like when you’re driving a car you don’t really care about what’s going on on the inside of the car. All you care about is that you can get somewhere without dying.
Al Martin: Yes.
Caleb Curry: Well that is an abstraction. You’re abstracting away the engine and all the fancy car stuff. Well the same thing goes with computer science and in fact computer science is one of like the most — field with the most abstractions because every single thing has a bunch of these new words and every single vocabulary word is itself an abstraction.
So the way you understand abstraction is by example so if I gave you a vocabulary word such as an analytic space table, the way you learn what that abstraction means is by going through like ten examples, and then once you have all those examples you no longer really have to think about what it means.
You just know it. That’s kind of like my four step process of how I learn something. Yes so you learn the vocabulary. You keep the definitions and your notes extremely simple.
You correlate each definition or note with something you already know and then four, you understand abstractions by example.
Al Martin: Hey. So Caleb the — another question. You did a series recently on Db2. What was the most surprising thing that you learned about it?
Caleb Curry: Well with Db2 you have the maturity, but you also have the reliability. So for listeners who are unaware, Db2 is a database that IBM created, and that was like the foundational piece of software to bring technology and data and business to where it is today.
But it also has historic building to meet the needs of people over the course of like 20 years so it’s much more mature and reliable. The moment of truth then, you know, and I, you know, full disclosure for those listening is we’re both at IBM.
But — so why would you choose Db2 over other databases then? My answer is it depends. I believe that Db2 is one of the best options out there. People should try to get their hands on it but doesn’t meet the needs of every single company and every single individual out there.
It could be the case that another database has a specialized capability that Db2 does not have. Another roadblock for people choosing Db2 is the knowledge base of employees.
The company may have been using Oracle its whole life and switching to a new database system could put stress on the current employees who know Oracle for example.
And Db2 developers have gone out of their way to make sure that the most common things from competing databases are available inside of Db2, like, for example PL/SQL, which is, you know, Oracle’s procedural language.
That is supported inside of Db2 so someone who’s used Oracle their whole life can use the same exact language inside of a Db2 database and not really feel any different.
Al Martin: Very good. Very good. So when we’ve talked you — you’ve mentioned a few times that you were just getting started with machine learning. Could you kind of give us your take thus far and, you know, what kind of challenges you face with machine learning for us?
Caleb Curry: I’m still fairly new with machine learning. I’m not an expert in it by any means but it has brought a new layer of computer science to me that has excited me.
So I’m finishing my computer science degree and I’m taking like senior level research project and that is like what – that’s what got me like doing my research for machine learning.
Literally everything I learn about machine learning I’m just like, “I’ve never learned anything like this before.” So that was kind of where I started learning about it, but I didn’t really, really learn about what it is until this year.
It’s cool because, you know, like I’ll be reading a book. I’ll get to a phrase like — linear regression with gradient descent is one of the things that’s like one of the beginning machine learning terms.
And when I saw that I was like, “I have no idea what I’m getting in to because I don’t understand any of this.” A lot of machine learning is not being taught inside of standard computer science programs.
It might be an elective. You know, I think that’s going to change obviously very soon as more and more schools are going to pick up on it and start teaching more like statistics for the math curriculum.
You know, as always school is — you kind of have — sometimes have a hard time applying what you’re learning to real-world situations whereas, you know, stuff you’re going to be doing on the job is going to, you know, you’re going to take real data and you’re going to make real predictions using machine learning.
Most of the trouble for me though learning machine learning is just having a weak math background.
Al Martin: And it’s your interesting observation. Hey, I — a quick pivot here. How has — because this is something always interesting. I mean, open source is going crazy.
We, you know, we talked about open source for years but now it’s came to fruition where, I mean, open source is often a clear choice between a company, a developer or other one.
Can you just give your perspective on how open source has contributed to developer behavior?
Caleb Curry: I think open source is really important and I think it’s allowing companies to better work with their customer base, because now not only can customers report a problem or a bug but they can actually go in there and try to fix things for the company.
And that not only builds the product but it helps build the resume of the people working on it, and I think that’s really cool because you can have a tighter integration between a company and the customers.
Al Martin: So when do you go out there? What’s the — when do you say, “Hey look I — I’m going to go out there and collaborate with peers?” Or, are you specifically looking for a snippet of code? I mean, how do you make use of it?
Caleb Curry: I think any time you’re working with a team you should be using some sort of source control and whether that’s, you know, Subversion or Git or whatever it doesn’t really matter as long as there’s a way to synchronize your workflow.
I think that’s vitally important. So I think the primary benefit of like GitHub or Bitbucket or something is to build a teamwork system for your project or for your company. I’ll use it if I am working for some kind of…
Al Martin: So yes here – here’s a question. Is — and what’s your process as a developer in choosing the language? There’s so many out there. I mean, it seems — it would seem to me — of course I haven’t been a developer for a while but it seemed to me many are, you know, targeted at the same purpose.
What makes you go out and choose R or Python or otherwise? What, you know, just a flavor of choice or…?
Caleb Curry: Kind of goes back to getting the job done. Like, what can we use to complete a job and it kind of goes back to like what database you choose. You know, usually I just recommend people to choose the database that’s going to — that help you get the job you need to get done done.
But also the — kind of an interesting thing to think about — rather than marketing, “Here’s why our database or our language is better than everything else,” instead we should be marketing, “Here’s why our database or our language can help you solve your problems and help you build your solution.”
So there’s kind of some words you can think about and some of them are writeability, readability, portability, scalability and orthogonality. So, for example, if you’re looking at like the C programming language, coming from like a perspective of someone who’s not super trained in C programming the writeability of C programming is like zero.
It’s hard to do anything in it like without really learning how it works — same for readability. If you find some open source C project or something, it’s basically unreadable.
So that’s like one downside of C but, you know, C has all kinds of upsides so you kind of have to find like a happy medium for what you liked and what you’re trying to accomplish.
Some other examples, you know, you look at (Cstar) for Java. They have decent writeability, you know, because you can know the scope of variables using the curly braces and everything has like a open and a close so it’s all matched.
But all of the curly braces and stuff hurt readability so it’s harder to read because you got to look at all these syntactical things rather than what the code is actually doing.
But Python’s kind of really good in that area because it doesn’t have all the curly braces. It has very good readability and writeability and is also very versatile just like C# and Java because, you know, you can do so many things with it.
But one issue with Python for example is, you know, the spacing is very sensitive so if you forget to type something in your code’s going to run differently or, you know, if you forget to space it in four times, whatever you decide.
So one of the words I mentioned was orthogonality, but essentially it’s a fancy word for consistency. So if you look at a programming language such as C# or Java or some object-oriented programming language, when you make a variable you usually do something like you say the type and then you give it a name say like nth age equals 5.
That’s how you declare a variable. Well if you’re declaring certain types of variables like — such as a certain class, you know, you might have list — my list equals new my list and you have a new keyword in there, and that’s not consistent with the way you declare other variables so like that’s a hit at orthogonality.
There is different ways to do the same thing depending on the context, which makes it harder to learn the language. If everything was super consistent, you know, it’s really super easy because you know exactly how to declare a variable once you know how to do it one time.
And that’s kind of an interesting topic because certain languages actually promote that, like not being super orthogonal like Perl for example but I think they — I have never used Perl so apologies if I’m wrong.
But I’m pretty sure like with Perl they advertise, “There’s a bunch of different ways to do the same thing.” People who program in Perl see that as a layer of freedom.
I see it as inconsistent. Like there’s so many different ways to do it so you never know which way is the best way to do it and you always have to think about how you should do a certain thing in a certain way.
Compare that to a language that is very orthogonal. There’s only one way to do it. Well that’s easier to use but you don’t have that freedom of expressing yourself in your code the way you would like to.
One other term is versatility so that’s kind of how useful the language is in different contexts. So if you look at R and Python, you know, R is going to be less versatile because if you mastered R well you’re going to be super good at statistical stuff and fancy map stuff but you’re not going to be able to use that for other things outside of that, whereas if you learn the same amount of stuff in Python you could do all the statistical stuff but you would also, you know, build a Web server or anything that Python can do including like apps or scripts and so forth.
So you can say that Python is more versatile and that’s usually the one I look at the most is versatility. Like for example if I wanted to build an iPhone app well I could use Swift or I could use the C# and Xamarin for example, which would allow me to make the app cross-platform for Windows, iPhone and Android.
And I usually look at versatility but other people will pick something that they like more. You know, it really depends on the person.
Al Martin: I — I’ve got to believe that versatility, I mean, you’re not the only one. I got to believe that that’s probably the prevalent choice because it kind of ties in with simplicity.
It’s no different than in the database world we live in where, you know, clients increasingly want to run analytics with a transactional processing. I mean, everybody wants the one-size-fits-all so I got to believe you’re not the only one on the versatility side.
Caleb Curry: Yes versatility with database is a pretty big thing and like with Db2, you know, you can have the analytics in there with the BLU Acceleration and like with versatility and Db2 you have federation, which that’s going to add a lot of versatility, because, you know, you’re able to interface with competing databases as if you’re talking to one database, which makes like your data layer of your application much more versatile.
Al Martin: Yes and now you’re talking my language. Love it. Here’s a question I have. Everybody comes to you for information obviously. Where do you go for information? What channels do you use? What podcasts do you recommend?
Caleb Curry: I’ll usually try to pick a book to go through. I’m learning machine learning. I’m doing a research project on it so I’m reading a book about — Machine Learning for Predictive Analytics I believe is the full title.
And I’ll just read through that a little bit each week and that’s kind of how I distill knowledge. Definitely just watching some of the bigger YouTube channels out there.
All my competitors – I watch all their stuff, but in the process I learn from them and enjoy their material.
Al Martin: So – but what do you think the attraction is? Is it — what is your audience so what is the makeup of your audience and who are your target?
Caleb Curry: Well I try to target those who are fairly new to technology but are still motivated to learn, so I put content out there that’s relevant to people who might be learning in school or when they first start a job.
And I think why so many people have found these videos helpful is just because of the level of entertainment I try to bring into the videos. I mean, I admit it’s programming.
It’s computer science. It can be a little dry sometimes, but, you know, I do my best to make it fun and entertaining, that people can grab from the video and bring to their workplace and find enjoyment in building something and finding victory and figuring out bugs and all of that good stuff.
Al Martin: Well — so what, you know, how do you approach it? What got you started on this is the question? I mean, how did you get into this?
Caleb Curry: So, I read educational books. I stayed home and played strategy games and spent time learning, you know, learning random stuff that I thought would somehow help me make a living in the future.
I just remember being super analytical so one time, probably in middle school, I calculated, you know, how much money would I have to have in a savings account to survive off of the interest?
And looking back, you know, that’s probably not the best way to make a living, but I had the right idea and I still kind of have that approach on life. I try to always look at things a little different than everyone else.
Growing up, you know, I read a bunch of these weird books and I was reading a book, Marketing for Dummies. I was reading that in school and people thought I was a total weirdo.
I was reading this book in one of my classes and my high school teacher came up to me and told me that, “Like what are you doing? You’re wasting your time. You’re not going to use that in life.”
And that kind of bugged me and especially now that I’m doing social strategy for IBM like I’m really glad I didn’t take his advice or his words of wisdom. Let’s talk about what I actually learned from the book.
When I read that book I actually didn’t learn anything. The only thing I really learned from was the experience and I didn’t want to be average, and one topic of interest of mine was creating dynamic websites.
You know, a dynamic website is something that can change based upon user input so these websites will take input through forms. And I read this book, PHP and MySQL, and there was a section on database design and I found that section to be extra confusing for some reason, and that’s when I kind of set up a personal challenge. “Hey I’m going to take this and make a series out of it and put it on YouTube.”
You know, I can kind of — I can learn the material that way because teaching is one of the best way to learn things and it can help my resume, so if I ever try to get a job I’d be like, “Hey I made this YouTube series.”
That was well how I got started so my first series I recorded 25 videos overnight and the end product was pretty awful to be honest, but from there I think it just got better.
Al Martin: So look I hear you and the podcast — the reason I do this is to learn and to think differently just as well so, you know, teaching is the best form of educating yourself.
I mean, is there anything that you’ve taken that you’ve learned about the industry that you would advise me on or those that are listening to this podcast out there? I mean, what’s some of the biggest takeaways that you — you’ve gathered?
Caleb Curry: Trying to find an interest in the topic so like I am very passionate or very interested, whatever word you want to use about learning about databases and all this stuff.
Well oftentimes people will have an interest in something but they don’t really have that drive, and my encouragement is just to try to have that drive and there’s ways you can kind of improve that.
Make sure you’re getting enough sleep and eating healthy and not overwhelming yourself with too much stuff to learn.
Al Martin: And one of the questions I was going to ask you now too — next is why IBM?
Caleb Curry: IBM is obviously an established company and I think one thing that sets them apart from a lot of other companies is the fact that they reached out to me, and they are the ones who were interested in interacting with the community.
They invested in me as a person to help others. They were investing in someone who actually was, you know, caring for the database community out there.
And at first it was kind of scary, but if I said no I would never have known what that experience was going to be like.
Al Martin: Well it’s good to hear from my standpoint. So it — so what — what’s the — your next big thing? I mean, we talked a little bit about it with that question I’ll say.
Is there anything that we didn’t say or we left unsaid that you’d want to communicate to the audience?
Caleb Curry: I don’t really know what — what’s the next big thing for me but I’m definitely looking into different ways to make that platform I was talking about.
Al Martin: I presume you’ll do that in a video on YouTube when…
Caleb Curry: Hopefully, yes.
Al Martin: Where can folks reach you outside of YouTube?
Caleb Curry: My website. I really am trying to focus on my website, because I see that as, you know, that’s my platform whereas my YouTube channel is content on YouTube’s platform.
Al Martin: Thank you for joining us.
Caleb Curry: Yes, you’re welcome. Thanks for letting me embarrass myself in front of thousands of people.
Al Martin: No, no, no. That’s, you know, look you’re very — like I said I can see the attraction, very approachable and look you’ve got not only a process of making things simple, but you’ve demonstrated your effectiveness in doing so.
So — and go visit his site. Go visit YouTube. You’ll learn a lot. Thank you, Caleb. I appreciate you doing this today.