iuliana cosmina

+ Follow
since Jun 01, 2010
iuliana likes ...
Scala IntelliJ IDE Spring Java Linux
Merit badge: grant badges
Blogging my life away ...
For More
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by iuliana cosmina

Hello Dustin,

The skill of solving problems may be stronger with some people than others. It is also tied to with the examples are given you to ilustrate certain concepts like polymorphism, encapsulation,etc.

I have answered a few questions around here about my approach to writing beginners books. I cannot promise I my book can teach you how to solve, or how to think like a programmer. Programming is nothing but modelling of the real world, if you can solve everyday problems in your life you should be able to use the same approach when writing code.

The book is perfect for an absolute beginner in that way, because it doesn't just tell you "Hey this is how you write Java code! “ But also "This is what you can use it for, and here is why you should consider doing it this way!"  I explain inheritance, polymorphism and encapsulation by modelling a hierarchy of human objects (using classes Human, Actor, Musician), which are pretty easy to understand and I introduce them gradually in the book.

So, if you have the possibility to do so, give my book a shot. I cannot make any promises that you will get all the knowledge that you are currently missing, but it will certainly fill some gaps.

2 years ago
Hello ketan,

I must confess that the description of the book might be confusing here. Not sure how I missed that.
There is a section about serialization in Chapter 11 and the most recent Jackson version is used to serialize objects.
There is some JSON API that is part of the Jakarta package, but I could not use it the book, since the current version was not modularized.
Since the book project is organized in modules, using it might have resulted in an unstable build.

But Jackson is pretty kick-ass and the de-facto serialization library nowadays, so I  think that section has value.

2 years ago
Hello Campbell,

Of course a full chapter is needed. There is more than one GC and they can also be configured for different purposes. Flags to determine which one is being used by the JVM and how it is configured are covered too. There is also a section covering GC related exceptions, what causes them, how to avoid them. There is a section about the difference between strong and weak references. There is a section about what finalizing an object means, why you should avoid using the finalize method and how to get a similar result sing the new Cleaner class.

A beginner should know more than just that the GC exists and does its job. Also, the chapter is not that big.

2 years ago
Hello Carey Brown,

I did not read Head First Java so I cannot compare my book to it. The only thing I can tell you is that this book is the kind I would have loved to learn Java from when I was just beginning lo learn programming.

As for balancing new features with providing enough simple examples for students to follow, I have three priciples I try to follow when writing my books:
- start with a basic example and build upon it by adding layer on top of another layer of complexity. The idea is to provide a gradual path of learning.
- use analogies to real life objects and events, programming is just another way of modelling the real life. Also, if people can associate what they learn with what they already know, the have better understanding and the knowledge sticks.
- provide wider context. People tend to be more enthusiastic about learning something is they understand the problems that the thing they are learning can solve.

I don't know if these three principles of mine apply to every student, but I know this works for me. For example, I've struggled to learn advanced math because my teachers did not explain what real life problems advanced math solved. A single teacher mentioned at some point that some formula he was presenting us was used to compress data in PNG images, and he had my attention more than the others.

2 years ago
Hello Geoff McKay,

My blog is on a WP platform as well. I have no idea how integrate WP with anything Java. I guess if I needed, I could make some REST calls from PHP to a Spring Boot REST application exposing a few endpoints.
I've considered for a long time to create my own blogging platform using Spring WebFlow, but with my job and writing books, I just cannot find time for that.

2 years ago
Hello Matheus Mendes,

I noticed you did not create a new thread.

This book is aimed for people learning Java, actually programming overall for the first time in their life. It might intersect with topics for the certification exam, but I doubt it is enough to prepare for the exam.

I am planning on taking the certification exam myself this summer, so I guess I'll find out soon how much I've managed to intersect with the certification study guide by mistake. ;)

2 years ago
Hello T Allay,

Not trying to advertise my book here, but you can find the answer to your questions in my book Java 17 for Absolute Beginners, https://link.springer.com/book/10.1007/978-1-4842-7080-6, chapter 13, page 740. ;)

Iuliana Cosmina
2 years ago
Hello there Eric,

This book covers Java Syntax for all Java versions up to Java 17.  What would be the point to just explain things in Java 17?

For every statement, expression, type that has changed over the years, from version to version, I covered all of them. For example, the switch statement was improved in Java 12 and then in Java 13 the equivalent switch expression was introduced that further improved the way to write code that does different things based on a criteria.

If you ask me, this book should have been named "Java For Absolute Beginners, second edition" and that is it. Eventually there should have been a subtitle mentioning that it covers details on all Java versions including 17.  That makes its contents clearer. On the internet, however, advertising something and making sure it is easy to find, is difficult to do, because of how search engines algorithms are designed. And since a lot of people are interested in the most recent version of Java, it made it more suitable for  Java 17 to be part of the book title.

And this is how only, a few months after Java 17 being released you get a book named “Java 17 for Absolute Beginners, second edition” which might lead people to believe there is a “Java 17 for Absolute Beginners, first edition” which is ridiculously funny and stupid at the same time. But hey, if you Google Java 17 at least it points you directly to this book, so it’s not stupid if it works right?


2 years ago

That's the thing, the book covers Java fundamental concepts, but also a few simple algorithms and design patterns. I always thought that you cannot learn a language quickly unless you have a wider context, a purpose for which it can be used.
The book is perfect for an absolute beginner in that way, because it doesn't just tell you "Hey this is how you write Java code! “ But also "This is what you can use it for, and here is why you should consider doing it this way!"

I am a very stubborn learner myself and have trouble learning if I don't have a lot of context for how the information can be used, what kind of problems it can solve, or if I cannot link it to knowledge I already have. This book, it might sound selfish, but I wrote for younger me, that was just learning Java and struggling with it.

I hope this answer your questions.

2 years ago

I am glad to be back. Feel free to submit questions, I'm still on vacation so I have a lot of time to do this. ;)

2 years ago
A takeway for the readers should be that reactive programming is powerful and might increase performance in applications that are suitable for it. But applications shouldn't be designed to be reactive just because the whole software development world seems to be heading in that direction.
You need to understand both classic and reactive programming style, because there is a high chance you will work with both.
3 years ago
Most microservices nowadays are reactive. Spring Boot is one of the most used tools to write and deploy microservices quickly. Spring Webflux provides a lot of components to build reactive microservices quite easily.
When everything you interractive around you, you have to adapt, right? So, Sring Webflux is very important for building reactive microservices with Spring.

As for Spring Webflux and MVC, they integrate together nicely, because in the same application  you might have bits that hsould n ott be reactive. For example, when logging into an application using a login form, there's no point having a reactive controller to handle the user logging in, since giving him access to something is dependent on him bbeing logged in.  But after logging in, you might have a page depicting some data that gets updated in real time, and that data should be handled by a reactive component - either a reactive controller of handler function.

In the book there are quite a few examplle that combine classic Sprring MVC components with reactive Webflux ones.

I hope this answers your question.
3 years ago
Me and Marten have similar styles, we explain internals, provide useful code and mention history bits here and there.
It's our way to make sure technical people get some credit and recognition for the current state of the Software Development industry, especially since social media tends to give the spotlight only to rockstars CEOs.
3 years ago
I intend to improve the original web parts and reduce them.
I intend to put more focus on the reactive part which is at its first iteration currently.
Also, more microservices hosted on Docker containers, maybe drop Kubernetes in there too, since anything that is closer to a cloud environment is what people are interested in these days and it is also relevant information for people looking to work in Software development.
3 years ago
Hello Rafael,

I assume  the change you are reffering to is actually a modification of functionaliy and API right? Not a removal of the whole layer, to replace it with another.

Whether you use reactive controllers or handler functions, when designing your applications the design patterns favored by Spring still apply.
3 years ago