Mark M. | has entered the room |
Mark M. | turned on guest access |
Jul 31 | 4:00 PM |
Daniel | has entered the room |
Mark M. |
hello, Daniel!
|
Mark M. |
how can I help you today?
|
Daniel |
Hi Mark
|
Daniel |
View paste
|
Daniel |
In particular about what courses to take and where to find good code to learn from
|
Mark M. |
since you're here, you have a Warescription, so you have access to all my books and their corresponding samples for how the APIs work
|
Mark M. |
in terms of courses, I have taught Android, but I have not taken an Android course, so I have little direct experience with existing courses
|
Daniel |
ok
|
Jul 31 | 4:05 PM |
Mark M. |
if your employer is looking to send to you professional training, I would recommend Big Nerd Ranch -- I was their original instructor and I know a bunch of the engineers there who teach their course
|
Daniel |
ok, I've been doing the Google courses through Udacity and they are promoted in Google's Android Developer site but the content is somewhat outdated
|
Daniel |
ok
|
Mark M. |
yeah, that's the problem with online courses -- they are a pain to create, and so they do not get updated as frequently as they need to
|
Daniel |
right
|
Daniel |
is it still a benefit
|
Daniel |
or should I only do latest content courses
|
Mark M. |
if the course covers the Jetpack/AndroidX stuff, it should be recent enough to be worthwhile, as that means it has been created in the past year
|
Daniel |
ok
|
Mark M. |
online courses that pre-date the Jetpack but are still three years old or less are worth considering
|
Mark M. |
it helps to narrow your “Don’t know what I don’t know” to being a bit more of "don't know what might have changed"
|
Mark M. |
anything older than that, I would start to worry
|
Daniel |
ok
|
Mark M. |
code is similar: if it uses AndroidX, by definition it is fairly up to date
|
Jul 31 | 4:10 PM |
Mark M. |
if if is older than three years or so, use it for specific stuff (e.g., how do I use PackageInstaller?)
|
Daniel |
ok
|
Daniel |
I see the current course I'm doing Google's Developing Android Apps course on Udacity has been updated recently. I'm telling my self that being Google they should at least tell me good practices and it will help me look at old code when I get a job. Is that sounds thinking.
|
Daniel |
And then I would look at a more modern course from then on
|
Mark M. |
what Google teaches, on the whole, probably is not bad
|
Daniel |
ok
|
Mark M. |
they may have different priorities than do others
|
Daniel |
yeah?
|
Mark M. |
I would be a bit cautious about any "you really need to do X", if X involves something that is not part of Android itself, such as Play Services or the Play Console
|
Daniel |
oh alright
|
Daniel |
And I see whenever I start a new app in Android Studio. Constraint Layout is the default. In the courses I've done and most code I've seen I have not learned this.
|
Daniel |
Is Constraint Layout up there with Jetpack and AndroidX as important now?
|
Mark M. |
ConstraintLayout is relatively new, about three years old
|
Daniel |
ok
|
Jul 31 | 4:15 PM |
Mark M. |
ConstraintLayout is definitely something that you should learn
|
Daniel |
ok
|
Mark M. |
personally, I prefer it now to the original containers (e.g., LinearLayout, RelativeLayout)
|
Daniel |
So Jetpack, AndroidX and Constraint Layout.
|
Mark M. |
yes, bearing in mind that AndroidX is a family of libraries, many of which are part of the Jetpack
|
Daniel |
Ok.
|
Mark M. |
not everything listed on https://developer.android.com/jetpack is specifically part of AndroidX, but a lot is
|
Mark M. |
conversely, there are some libraries in AndroidX that are not officially part of Jetpack, particularly smaller things (e.g., CardView)
|
Daniel |
ok
|
Daniel |
ok
|
Daniel |
Being fairly new stuff I get a bit nervous spending time there as sometimes new languages and libraries can be the next big thing but then fade
|
Daniel |
But AndroidX and Jetpack are cemented in as the way forward
|
Daniel |
?
|
Mark M. |
for the next several years at least
|
Daniel |
ok
|
Daniel |
And I
|
Mark M. |
there will be changes (watch for something called "Jetpack Compose" in 2020 or 2021)
|
Daniel |
ok
|
Jul 31 | 4:20 PM |
Mark M. |
but in terms of what to learn today, the Jetpack is a good starting point
|
Daniel |
but that will build off Jetpack?
|
Mark M. |
bear in mind, though, that some of the things listed for Jetpack are specialty subjects: Auto, TV, WearOS, Slices, CameraX, Palette, Emoji
|
Daniel |
ok cool.
|
Daniel |
sure
|
Daniel |
Man really enjoying the Android space.
|
Daniel |
So much you can do it seems going forward.
|
Mark M. |
Android devices, and the OS, have a lot of power
|
Mark M. |
with great power comes great complexity :-)
|
Daniel |
yeah, oh man the Internet of Things is fascinating and what we are going to do there.
|
Daniel |
Oh and I've been enjoying learning Java alongside Android just to enhance my job opportunities, so I'd like to keep going that route for Android learning, but is Java dead in that area and Kotlin the only way forward?
|
Mark M. |
Java is not dead
|
Mark M. |
Kotlin is where Google is putting their emphasis
|
Daniel |
right
|
Mark M. |
and some things, like Jetpack Compose, will only be available for Kotlin
|
Daniel |
really wow
|
Daniel |
so that is a big statement right?
|
Mark M. |
yes
|
Daniel |
But Java not dead as far as Android goes?
|
Mark M. |
not every project has moved to Kotlin, and some will not do so for a while
|
Mark M. |
plus, there is plenty of existing Java code that you may need to look at
|
Mark M. |
from an educational standpoint, learning Kotlin should be high on your list
|
Jul 31 | 4:25 PM |
Daniel |
yeah that is what I'm thinking
|
Daniel |
ok
|
Mark M. |
from a professional standpoint, whether today you work in Java or Kotlin depends a lot on the project
|
Mark M. |
and the adoption of Kotlin varies by location
|
Mark M. |
"the future is here, it's not evenly distributed yet"
|
Daniel |
Boy it gets overwhelming doesn't it, what there is to learn and the pace it all moves at.
|
Daniel |
ok
|
Daniel |
hehe
|
Daniel |
yeah
|
Daniel |
alright, well really appreciate this insight from someone like yourself steeped in the industry. This will all help be less overwhelmed and is very exciting at this stage.
|
Daniel |
One more questions where can I find good solid code. Becuase I don't know what I don't know what I don't know, I want to avoid learning bad habits
|
Mark M. |
that is difficult to answer
|
Mark M. |
the definition of "good solid code" varies
|
Daniel |
fair enough
|
Daniel |
yeah
|
Mark M. |
and, of course, only a tiny fraction of the world's code is available on places like GitHub and GitLab
|
Daniel |
ok
|
Mark M. |
plus, a lot of software development starts with lofty visions of how great the code will be... and then the first deadline arrives :-)
|
Jul 31 | 4:30 PM |
Daniel |
yeah, I get that.
|
Daniel |
I suppose if it has Jetpack, AndroidX and Contraint Layout it is a good start?
|
Mark M. |
at least in terms of being up to date, yes
|
Daniel |
yeah ok
|
Mark M. |
it is very possible to have awful code that is up to date
|
Daniel |
sure
|
Mark M. |
but, being up to date is a positive sign
|
Daniel |
yeah ok
|
Daniel |
So are all your courses/books Jetpack, AndroidX and ContraintLayout... do they use these?
|
Mark M. | |
Daniel |
all the ones in the Warescrpition section?
|
Mark M. |
the second-generation books use Jetpack/AndroidX and ConstraintLayout
|
Daniel |
ok and Java or Kotlin?
|
Mark M. |
the first-generation books mostly pre-date those things, and so have less material on them
|
Daniel |
ok
|
Mark M. |
the second-generation books are in Kotlin, except for *Elements of Android Jetpack*, where nearly everything is shown in both Java and Kotlin
|
Mark M. |
the first-generation books are mostly in Java
|
Daniel |
ok
|
Mark M. |
you get all of them in the Warescription, and the full-text search means that you can find stuff from the older books and the newer ones
|
Daniel |
Awesome
|
Jul 31 | 4:35 PM |
Daniel |
And if I focus on Java for now wil that at least help me make the leap to Kotlin or are they quite different?
|
Mark M. |
learning Java is not required to learn Kotlin, but it does not hurt either
|
Daniel |
ok
|
Mark M. |
for *Android*, learning Java is important, just because we have So. Much. Java. already
|
Daniel |
sure ok
|
Daniel |
So the where to find good code question is hard to answer. I remember when I broke my arm at school and could not play basketball, but I watched a ton of basketball videos and felt I'm came back better for it. I just learn well by watching. It is the same for code. If someone could show me a vault of 100% good code for all this is to know Android I would read it back to front and again. I would enjoy learning that way.
|
Daniel |
Even if it is hard to answer are you able to give me your best answer for where to find this?
|
Jul 31 | 4:40 PM |
Mark M. |
not really, in part because I have not attempted to create such a catalog
|
Daniel |
yeah fair enough
|
Mark M. |
and without basically reading the whole code, I can't pass judgment on it
|
Mark M. |
branding alone is insufficient
|
Daniel |
sure ok
|
Mark M. |
for example, https://github.com/googlesamples has official Google samples, and some I know are absolute crap, because I waded through them working on projects and saw how bad they were
|
Mark M. |
but I am sure that some of the samples there are just fine
|
Daniel |
yeah right
|
Daniel |
ok
|
Daniel |
well I guess I'll just keep learning
|
Mark M. |
if you wanted a simple rule of thumb: if it comes from a high-profile Google developer advocate, it's probably a good bit of code to learn from
|
Daniel |
ok, I'll take it :)
|
Mark M. |
so, for example, the posts and related samples from https://medium.com/androiddevelopers are usually pretty good
|
Daniel |
ok cool, that is helpful
|
Mark M. |
the developer advocates who post there, such as Florina Muntenescu, Nick Butcher, Ian Lake, etc., are pretty good at writing solid examples
|
Daniel |
I recently went Googleing to find the best blogs to learn from, I've bookmarked them so it is good to get your confirmation on that
|
Daniel |
ok awesome
|
Jul 31 | 4:45 PM |
Daniel |
Thank you very very much for you time and insight and help. This has been great.
|
Mark M. |
happy to help!
|
Daniel | has left the room |
Jul 31 | 4:55 PM |
Mark M. | turned off guest access |