Developing Perspective

#110: Stay in School.


00:00:00   Hello, and welcome to Developing Perspective.

00:00:03   Developing Perspective is a podcast discussing news of note in iOS development, Apple, and

00:00:07   the like.

00:00:08   I'm your host, David Smith.

00:00:09   I'm an independent iOS and Mac developer based in Herndon, Virginia.

00:00:11   This is show number 110, and today is Monday, February 25th.

00:00:15   What I want to start off today is talking about the show itself.

00:00:20   Maybe it's a bit of like a meta topic.

00:00:22   First, I just want to say thanks for all the positive feedback I've gotten about restarting

00:00:26   the developer interview series, talking to Brent,

00:00:30   talking to Marco, has just been, I've gotten a huge

00:00:32   amount of feedback saying, yes, keep doing this,

00:00:34   keep talking to interesting people, that's been awesome.

00:00:37   And so that's definitely something that I'm continuing

00:00:40   to do, I'm working on scheduling those, and exactly

00:00:43   how and when they happen will kind of vary based on

00:00:45   my schedule and the schedule of those I'm trying to get.

00:00:48   But definitely looking forward to that.

00:00:51   And related to that, I'll probably be looking for some

00:00:52   interesting changing things that I'm going to be trying

00:00:54   out on the show.

00:00:56   tweaking in some ways the format, I expect there will

00:00:59   continue to be episodes like this one, that's 15 minutes.

00:01:02   That's something that I do, you know, just me talking into the

00:01:05   microphone, but I like the flexibility and the

00:01:08   experimentation of what, you know, sort of the last couple of

00:01:11   episodes have been. And I have some ideas for where to take

00:01:13   that. So just something to keep in mind, something to look

00:01:15   forward to. And you may have noticed, like, for example, I'm

00:01:17   starting to consider the interviews as part of the show.

00:01:21   So this is episode 110, you know, counting Markos as 109.

00:01:26   And so it's just part of the show now.

00:01:28   And I think that's an interesting thing.

00:01:29   I think I like breaking out of the 15-minute mold a bit, and it gives, lets me address

00:01:34   topics at a lower level.

00:01:36   The 15-minute limit initially came from the challenge of if you're just one voice talking,

00:01:41   there's a limit to how long you can do that before it kind of gets repetitive and, and

00:01:45   worrisome, both on, for me as doing it and for the listener as well.

00:01:48   And so I'm looking for ways to change that and to look for all kinds of interesting things.

00:01:52   There may be some, you know, some shows I do with a co host, maybe some more interviews,

00:01:56   some interviews with people who aren't developers, there'll be some things to just kind of mix

00:01:59   it up.

00:02:00   And hopefully I think that'll enrich the show more fully.

00:02:03   Like I said, if you like it because it's short, they'll still be short episodes I expect,

00:02:07   but they'll be interspersed with other things that are more long form to hopefully kind

00:02:10   of address a broader variety of interests as well as just improve the show more generally.

00:02:15   All right, with sort of the meta topic out of the way, I can kind of move into the actual

00:02:19   topics I'm going to talk about today.

00:02:20   And I have two.

00:02:21   And the first one I'm going to do is I'm going to answer quickly a question that I got from

00:02:25   Francesco DiLorenzo.

00:02:27   He asked if I had any advice for CS students or students more generally.

00:02:34   And I thought that was an interesting topic.

00:02:35   And I've actually gotten a fair bit of feedback from people who listen to this who are students,

00:02:40   who are people who aren't doing this professionally, who are in school at various levels.

00:02:45   all the way down to I think I've had some kind of, you know, reached out from some people

00:02:48   who are in middle school, which is, which is awesome. You know, that's a great thing

00:02:51   to hear. I think about it as, you know, first, it's probably fair to say, a little bit of

00:02:56   my educational background, I went to high school and so on in the States, and then I

00:03:01   went to do my undergrad in computer science in England. And then I came back to the United

00:03:07   States to do my master's in software engineering back in the States. So I have a fairly varied

00:03:12   educational experience. And of course, the you know, your

00:03:14   mileage will be very based on where you are. But generally

00:03:16   speaking, I'm going to kind of address this if you're coming at

00:03:19   it from a student who is studying, you know, computer

00:03:23   science or software engineering or computer engineering or

00:03:25   whatever it's called this university. And first I want to

00:03:28   say is, one of the things that often comes up is whether a

00:03:31   degree is useful if you want to be a developer, if you want to

00:03:34   say, for example, you wanted to end up doing something similar

00:03:36   to what I do in terms of being an independent software

00:03:38   developer is going to college is going to college worth it in that

00:03:41   way. And I think that for A, that that's a that's a complicated question. And it's especially

00:03:45   going to be complicated by who you are, and you know, what your interests are and the

00:03:51   kind of the skills and the temperament that you have to start with. I would say school

00:03:55   is for most people, primarily useful in the long run, for understanding who you are, and

00:04:03   for exploring and expanding your ability to work independently. For most people in high

00:04:08   school, you have a much is very is very prescriptive in terms of the time, your time, what you're

00:04:12   doing, how you're doing it, etc. And as you move through the different levels of higher

00:04:16   education, there's more flexibility that's given to you in terms of you're managing your

00:04:20   own time, typically, you're moving away from home for the first time. And so you have the

00:04:25   this opportunity to have control of your schedule to see how you work when you work, how you

00:04:29   like to work. And college is a great example of a place where you can do that in a safe

00:04:34   environment in terms of it, you know, the your deal, you're

00:04:39   learning life skills, and you're learning professional and career

00:04:41   skills in a kind of context when there's not a lot of consequence

00:04:44   for downside. If you don't do your homework, you may get a bad

00:04:48   grade. But it's not like not not shipping a project that you're

00:04:52   contracted to do so where there's a lot of complicated and

00:04:54   potentially even significant impacts on you as a result. So

00:04:58   college is great in that sense. And I think a lot of people get

00:05:00   too wrapped up in, oh, I'm learning something that I don't

00:05:02   need to know or whatever. That's part of the goal. That's part of the interesting value

00:05:09   of school is that it's teaching you less the skills that you'll be able to apply later

00:05:14   on. There'll be times that you have to do work that you don't like in your career. And

00:05:17   it's good to have you to kind of develop the skills and the mindset of how to deal with

00:05:21   that. What do you do? How do you approach those problems? And that's not to say that

00:05:25   the actual things you learn aren't useful. And certainly they vary from department to

00:05:28   department from school to school. But I would say I learned a lot of things in my degrees

00:05:33   that I use today, though certainly not all of it. And the things that I use more and

00:05:38   most, most frequently are concepts rather than sort of implementation things. And so

00:05:44   this is sort of to speak to, you know, the languages that I did most of my, my learning

00:05:49   in college where I learned Java, and I learned ML, which is a functional programming language,

00:05:55   Neither of which I use at all today.

00:05:57   I use primarily Objective-C and Ruby,

00:06:00   but the actual languages didn't matter.

00:06:03   What mattered and what is important was learning concepts,

00:06:05   was learning about how to structure object-oriented designs,

00:06:09   how networks work, how all these, how CPU works,

00:06:14   building little microcomputers with transistors.

00:06:16   Like, that's useful because it gives you context,

00:06:19   and it gives you depth, and it gives you an understanding

00:06:21   that will help you down the road.

00:06:23   I'd give you some advice for CS students is make sure that you understand that you're

00:06:29   trying to learn the higher concepts rather than getting too stuck in the weeds. And I

00:06:32   would far, I'd recommend that you really try and make sure that you're understanding things

00:06:36   at a lower level rather than just at a rote level, rather than just trying to memorize

00:06:41   all the facts to put out on a test, because you're kind of missing the point if you do

00:06:44   that. And two, I would really, really encourage you to work on side projects that aren't related

00:06:49   to your class as much as you can, in the sense of it's the same advice I'd give out to anybody

00:06:54   who works in a regular career too, is it's a great opportunity. You have a tremendous

00:07:00   amount of time when you're in college. You may think you don't, but you do. If you just

00:07:04   wait until you're a proper adult who has a job and a family or a mortgage or things like

00:07:08   you have a tremendous amount of time that you can waste right now. And you can spend

00:07:11   that in a wasteful way. Or you can take advantage of this opportunity to be experimenting with

00:07:17   new projects, to be building apps, to be building web applications, to be doing things on a

00:07:21   regular basis that are interesting and building up a skill set that will allow you, when you

00:07:27   finish your degree, to be showing off a really impressive resume to your, either to your

00:07:33   future clients, to your future employers, or to have apps in your stable that you can

00:07:37   already start to be using in terms of trying to build an independent workflow.

00:07:42   And so I think that's an important part of it is to understand you probably, as much

00:07:47   as being 18 and feeling like, "Oh my goodness, I have no time.

00:07:50   This is so hard," understanding that this is probably one of the easiest times you'll

00:07:55   have in your life.

00:07:56   And certainly that's based on my experiences with a lot of my friends and people who then

00:08:00   it's like, "Oh my goodness, I had so much time in college."

00:08:02   It's like, yes, you do.

00:08:03   And so use that well.

00:08:05   Use it for things that will have enduring value and understanding that your degree is

00:08:11   largely just a stamp that says you did it. Don't get too wrapped up into necessarily

00:08:15   all the ins and outs of that. But understanding that it's you learn some skills along the

00:08:20   along that process. And the better you are at served your overall skill set, the better

00:08:27   you obviously you're not going to be going to school, your first job, you're going to

00:08:30   be writing code or doing whatever as a software engineer. So work on those skills as well.

00:08:34   And okay, so for the second thing I wanted to talk about today is talking about app.net

00:08:39   and developers. And this is something that is somewhat topical in terms of just a few

00:08:43   hours ago, they released a free tier, which I'll talk about in a minute. But I wanted

00:08:47   to talk a bit about it specifically, in terms of how it relates to developers. And I wrote

00:08:51   an article about this that you may have seen talking about the realities of being an app

00:08:54   that thought net developer talking about kind of how sad it is that there's this interesting

00:08:59   platform, some interesting capabilities and things, but the platform itself is very hard

00:09:04   to work for as a third party developer because there's not that many users. I think right

00:09:09   now, I've thought that is about 33,000 users or so. And not all not all of those are active

00:09:16   on the network. And so it's kind of a tricky thing to be to make a living there. Just there.

00:09:21   You know, if you if every if you have for your business to have a sustainable sort of

00:09:25   business model, if every single person has to buy your app, that gets really difficult

00:09:30   from a just a real is that realistic perspective. And so it's really kind of interesting in

00:09:36   terms of the way that the app.net developer incentive program is developed, which is basically

00:09:41   an alternative way to make your money. Rather than selling your your apps, your clients,

00:09:45   whatever they are, you get a kickback from app.net based on how happy your users are

00:09:51   and how many people are using your apps. And this is caused kind of a tricky thing, because

00:09:56   is first to his tweet bot, and then I think it was Riposte,

00:10:01   our two app.net clients that have recently gone free.

00:10:04   And essentially what they're doing with that is they're trying to

00:10:07   fight for a bigger and bigger piece of the developer incentive program.

00:10:10   And sort of eschewing the fact, eschewing paid sales,

00:10:14   and just saying, hey, we just want as many users.

00:10:17   If we can get, if we're free, we can get all 30,000

00:10:18   of the app.net users to use our client,

00:10:22   we'll make a better amount of better living from that

00:10:23   than we would from sales.

00:10:28   And I think certainly a lot of people

00:10:30   have got too wrapped up in the fact that,

00:10:31   oh, it's a race to the bottom.

00:10:33   They've totally taken the bottom out of

00:10:35   what people expect for client sales.

00:10:37   And the reality is it's always dangerous

00:10:40   when you start having those types of thoughts.

00:10:42   Individual developers have to make

00:10:46   the decision that is best for them.

00:10:48   And that's just sort of, I think,

00:10:50   one of those universal things

00:10:48   just kind of have to come to grips with.

00:10:53   That if a developer feels like he can make more money at free,

00:10:54   and then he could with paid sales, then that's a perfectly

00:10:58   reasonable thing for him to do, for him to change his business

00:11:01   model and to head in that direction.

00:11:04   And I think a lot of that is because, I mean, ultimately,

00:11:06   would you rather that they do that or they not develop?

00:11:09   Would you rather just be only hobbyists who are developing

00:11:12   something?

00:11:15   It's like these are the natural consequences that as much as

00:11:15   we'd like in an absolute, in an idealistic or absolute sense

00:11:15   say, it would be great if developers could write apps and

00:11:19   then get me make it pay lots of money for it, and have tons of

00:11:22   customers just throwing money at them, then that'd be great.

00:11:25   That would be awesome. I would love that. That's, that would be

00:11:28   great. But if that's not the reality, then the first is make

00:11:33   sure that we're not questioning developers motives, because

00:11:35   that's a dangerous game to get into. You don't know their

00:11:37   situations, you don't know exactly why they're doing it, you

00:11:39   don't know all the numbers that are going into that. So first

00:11:42   understand that that's a better that's a better perspective to

00:11:45   have to have on that.

00:11:46   And then two, it's understanding that it's just a really hard

00:11:49   market to be in, and so kind of some slack.

00:11:53   I wanted to talk about the app.net freemium model, which

00:11:57   was announced today, which is basically they have opened

00:12:00   the doors to users on the network who have never

00:12:02   paid anything for that.

00:12:04   And basically that's to say if you are a user,

00:12:08   I think each user gets a certain number of invites.

00:12:10   You can invite a friend.

00:12:12   reminds me a little of the Gmail rollout model a while ago.

00:12:15   And if you invite somebody, they can come

00:12:17   and they can be a free user initially.

00:12:19   And so basically, I think you can limit them

00:12:21   to 40 followings.

00:12:22   So you can only follow 40 people on the network.

00:12:24   There's a limit on the number of files, or the size of files,

00:12:27   and the total number of files that are something like that

00:12:29   that you can have on the network.

00:12:30   So there's a few limits.

00:12:31   And I think this is great news for developers.

00:12:33   I think what it does is it creates a sustainable incentive

00:12:38   or a sustainable customer base for developers

00:12:41   incentivize them in building new things in terms of now all of a sudden developers can

00:12:47   expect or hope that on a daily basis more and more customers will start appearing on

00:12:53   the network in a way that will allow paid sales to become more and more of a significant

00:12:57   opportunity or possibility.

00:13:00   And that's great.

00:13:01   I like that as a model and I like that it is a change they're making that I think addresses

00:13:07   a lot of those kinds of problems.

00:13:08   I'm not sure if it's strictly better for the network in terms of obviously now there are

00:13:12   people who are consuming resources on the network who aren't paying for that.

00:13:16   And part of what app.net's sort of core value was that it was user supported, user paid

00:13:20   for.

00:13:21   And so suddenly those users aren't paying anything.

00:13:23   And obviously they're limiting the size and the scope of it by using an invitation scheme

00:13:27   and blah, blah, blah.

00:13:29   But the reality is, what will happen down the road with that will be tricky and will

00:13:33   be interesting and something that I'm sure Dalton Caldwell and those guys are going to

00:13:37   be having to navigate and kind of understand.

00:13:39   But overall, if you're a developer of an App.NET client

00:13:42   or you're thinking about it, I would

00:13:44   say this is definitely a good sign in the right direction,

00:13:46   just something that they're going

00:13:48   to be improving the ability of developers

00:13:51   to be able to make a living by expanding out

00:13:54   the user base, which is awesome.

00:13:56   All right, I think that's it for today's show.

00:13:58   As always, if you have questions, comments,

00:13:59   or concerns, you can reach out to me.

00:14:01   I'm on Twitter @_davidsmith.

00:14:03   I'm on app.net @davidsmith.

00:14:06   And like I said, I'm going to be tweaking out

00:14:09   some of the formats, some of the changes

00:14:11   with the developing perspective going forward.

00:14:12   And if you have thoughts, feedback, things about that,

00:14:15   format, people you'd like me to interview,

00:14:17   concepts you'd like me to try and tackle, please let me know.

00:14:20   Probably the best place for that kind of feedback

00:14:22   is to email me, which is david@developingperspective.com.

00:14:26   And I'd love to just gather some feedback about what you're

00:14:29   interested in, what you like about development perspective,

00:14:31   what you don't.

00:14:31   It would just be really helpful.

00:14:33   All right, hope you have a great week.

00:14:35   Happy coding, and I'll talk to you later.

00:14:36   Bye.

00:14:38   [BLANK_AUDIO]