It’s the new(est) kid on the the JVM block.
It’s from JetBrains, they’re the guys who built IntelliJ. They’ve been around for quite some time, so chances are you already know them. Kotlin has also been around for quite sometime, since 2011 in fact — it gained a lot of traction and attention probably 2016 or 2017 (I’m not sure, I’m too lazy to research). The “hooray” moment for Kotlin was probably during Google I/O 2017, because they (Google) announced that it can now be used for Android programming.
No fluff introduction to Java
About Java Generally, Java refers to these 3 things;
A programming language A set of built-in libraries and technology frameworks A virtual machine. Developers affectionately refer to this as the runtime environment. You may hear some people call this by another name like JRE (Java Runtime Environment) or JVM (Java Virtual Machine). It’s all the same. In this book, I may refer to it as simply “runtime” Some tidbits of info about Java;
Learn Android Studio3
Learn Android Studio 3 is out. You can get it in print or electronic download the Apress website and from Amazon.
What’s inside It’s a beginner’s book, it’s for you if you are;
new to Android programming new to Android Studio If you’re also new to Java, I’ve included a really really short introduction to the Java language (it’s in the Appendix). The book doesn’t assume you’re a Java expert, but it would be great if you’ve done some Java programming before.
If I Have a Delorean
There was discussion post in dev.to what is your best advise for a junior software developer. I ended up responding with a 15-item, somewhat tongue-in-cheek, advise. Here they are;
If I have Doc Brown’s DeLorean, this is what I would advise my younger self;
Keep your head down during code reviews. Humility goes a long way. They’re not criticizing you, it’s your code they’re after. It’s not personal Do the required reading before you get knee-deep in the code.
What to configure - this is part of the book Coding preferences - no need for this Common shortcuts - yes Common task you need to perform - I will do this, I will add this as part of the book refactor find some thing across projects TODO lists marking blocks of code for commenting Project organization - yes Project settings - yes Java 10 - A small clause.
The Kotlin collections are actually direct instances of the collections in the JDK. There’s no conversion of wrapping involved. So, if you didn’t skimp on your study of collections while you were in Java, that will certainly come in handy now. Although Kotlin didn’t define its own collections code, it did add quite a few convenience functions to the framework, which is a welcome addition because it makes the collections easier to work with.
Higher Order Functions
The name higher order functions come from the world of Mathematics, in there, a higher order function is also called functional, functional form or functor, and apparently, they take the difference between function and values, a bit more seriously than programming folks.
NOTE It makes me wonder if there a thing such as “lower order functions”, I don’t think this term was ever used, neither in programming nor in the world of Math.
There are 3 kinds of work
Mapping - Prioritizing, planning and setting of objectives Meshing - Sharpening the saw. This is an important determinant of long-term sucess. I’ts difficult to justify this because it’s not tied directly to results Making - Performing work that actually crosses out the items in your todo list. This is “doing the work”. You have a work product. Producing something of value You need to be purposeful in engaging these three kinds of work.
The very fundamentals of coding won’t be tackled in here. I’m already assuming that your quite familiar with some of the tenets of imperative programming, like, statements are arranged in sequence, they execute one after another unless redirected by a branching construct like an if, or a looping construct like a do; or variables can hold data, they have a memory address and we can replace that data whenever we like — stuff like that.
Photo credit xckd.com/189
Exer 1. Ask the user for input, then greet the user. Store the user’s response in a variable and print it out.
Exer 2. Ask the user the year he was born, then print out his age.
Exer 3. Print a triangle of asterisk, see the output below
* ** *** **** ***** ****** ******* ******** ********* There are 10 asterisk on the last line of the printed output