Saturday, May 19, 2018

Java 8 filter + map + collect + Stream Example

Hello guys, many of my readers emailed me to write a post about map and filter function of Java 8 because they found it difficult to understand and use. Even though I have previously blogged about both map() and filter(), I am writing this post again to explain the concept in more layman's language for better understanding of my readers and fellow Java developers.

The map() function is a method in Stream class which represent a functional programming concept. In simple words, the map() is used to transform one object into other by applying a function.

Thursday, May 17, 2018

Top 5 SQL and Database Courses to Learn Online - Best of Lot

Hello guys, if you are a computer science graduate or new into programming world, interested in learning SQL and looking for some awesome resources e.g. books, courses, and tutorials to start with then you have come to the right place. In past, I have shared some of the best SQL books and tutorials and today I am going to share some of the best SQL and database courses to learn and master this useful technology. If you don't know what is SQL and why should you learn it, let me give you a brief overview of SQL for everyone's benefit. SQL is a programming language to work with a database. You can use SQL to create database objects e.g. tables, stored procedure etc and also to store and retrieve data from the database.

Wednesday, May 16, 2018

10 Reasons to Learn Python Programming in 2018

If you are a regular reader of this blog then you may be wondering that why am I writing a blog post to tell people to learn Python in a Java blog? Didn't I ask you to prefer Java over Python a couple of years ago? Well, things have changed a lot since then. In 2016, Python replaced Java as the most popular language in colleges and University and since then it has never looked back. Python is growing and growing big time. If you read programming and technology news or blog post then you might have noticed the rise of Python as many popular developer communities including StackOverflow and CodeAcademy has mentioned the rise of Python as a major programming language.

Sunday, May 13, 2018

Top 5 MySQL Courses to learn Online - Best Of Lost

Hello guys, if you are interested in learning SQL with MySQL database and looking for some awesome resources e.g. books, tutorials and online courses then you have come to the right place. In past, I have shared some useful books and tutorials and in this article, I am going to talk about some of the best MySQL online courses from Udemy and Pluarlsight which you can join to learn SQL and MySQL from the comfort of your office or home. In last a couple of years, you might have heard the statement that everybody should learn to code, which is great. Coding is now like reading, writing and speaking skill and in today's Information technology-centric world it is must have and there is no better way to start coding than learning SQL, the most popular programming language.

Tuesday, May 8, 2018

10 Tips to Become a Better Java Developer in 2018

I often receive emails from my readers about how they can become a better Java developer, what things they should learn, and which area they can work on to become a Rockstar Java developer. After answering them individually over last few years, I thought to jot down a couple of points which I think will make you a better Java Programmer and Application developer. But, before going into that, I would like to stress that a better programmer is always a better Java developer and that's why all the tips I have shared before to improve your programming skill and become a better programmer still holds true.

Friday, April 27, 2018

Top 5 Java and JavaScript Frameworks to Learn in 2018 - Best of Lot

Hello guys, if you are a Java developer and wondering which Java frameworks you should learn in 2018 then you have come to the right place. In this article, I am going to share top 5 Java frameworks developers can learn to keep pace with modern day development. This is the second part of my article on what should Java programmer learn this year. In the first part, 10 Things Java developer should learn where I have focused on essential upgrades like Java 8, Java 9, Spring 5 etc, but in this article, I'll talk about some of the best Java frameworks you should learn to give your career a boost. Technology changes really fast, in just a couple of years what was the hottest technology or framework of 2014 is no longer used anymore and as a programmer and application developer, our biggest challenge is to keep pace with the technology.

Thursday, April 26, 2018

How to Find Multiple Missing Integers in Given Array With Duplicates in Java?

It's been a long time since I have discussed any coding or algorithm interview questions, so I thought to revisit one of the most popular array based coding problem of finding missing numbers in given array. You might have heard or seen this problem before on your programming job interview but there are a lot of different versions of increasing difficulty levels which interviewer normally use to confuse candidate and further test their ability to adapt to frequent changes. In the past I have demonstrated how to find the missing number in a sorted array as well on the unsorted integer array in Java using BitSet (see here), but, with just one missing number and without any duplicates.

Wednesday, April 25, 2018

Top 10 Java and Web Development Courses to Learn in 2018

Hello guys, I am sure you all have made your goals and resolutions for this year e.g. what to learn in 2018. If you haven't then check out my post 10 Things Java programmer should learn in 2018 for some ideas. If you have already made your goal then it is time to think about how you are going to achieve it. For example, my top 3 goals in 2018 are to learn JDK 9, Spring 5, and Spring Security 5 but how am I going to learn them? Well, I like books and online courses and that's why I have been searching for some good courses on JDK 9 and Spring 5. Luckily there are some available in Udemy and the best part is that they are currently running a New Year Sale event where every single course is priced just $10, Yes you heard it right, just $10.99, even for a course whose original price is $200.

Sunday, April 22, 2018

Top 5 Spring Cloud Courses for Java Developers to Learn Online - Best Of Lot

Hello guys, if you are learning Spring Cloud for developing cloud-based Java application and looking for some good resources to start with e.g. online courses and books then you have come to the right place. In this article, I am going to share some of the best courses to learn Spring Cloud and develop a cloud-based application in Java. One of the common question when it comes to learning a new technology is how to start? I was a big fan of books earlier but nowadays I personally like to start with an online course to learn things.  It works better because you gain a lot from instructor's experience and you also have a chance to ask questions to the instructor.

Saturday, April 21, 2018

2 Ways to Setup LDAP Active Directory Authentication in Java Spring Security Example Tutorial

LDAP authentication is one of the most popular authentication mechanism around the world for enterprise application and Active directory (an LDAP implementation by Microsoft for Windows) is another widely used LDAP server. In many projects, we need to authenticate against active directory using LDAP by credentials provided in the login screen. Sometimes this simple task gets tricky because of various issues faced during implementation and integration and no standard way of doing LDAP authentication. Java provides LDAP support but in this article, I will mostly talk about spring security because of it's my preferred Java framework for authentication, authorization, and security related stuff.

Thursday, April 19, 2018

Does Pivotal' Spring Certification helps in Job and Career? 5 Reasons to Become a Certified Spring Developer

One of the frequently asked question among Java and Spring developer is whether Spring certification is valuable? or does Spring Certification help you in Job and Career? These questions are not very different from what Java developer ask about Oracle's Java certification (see here). The short answer to these question is Yes, Spring Certifications are very valuable and it not only provides Industry recognition for your knowledge, experience, and skill but also set you apart from the millions of Java and Spring developer who are not certified. Of course, as with any certification, the most valuable part, apart from recognition is the learning process and this is true for Spring certifications as well.

Spring Security Concurrent Session Control Example Tutorial - How to limit number of User Session in Java JEE Web Application

If you don't know, Spring security can limit the number of sessions a user can have. If you are developing a web application especially a secure web application in Java JEE then you must have come up with the requirement similar to online banking portals have e.g. only one session per user at a time or no concurrent session per user. Even though you can also implement this functionality without using spring security but with Spring security, its just piece of cake with coffee :).  You just need to add a couple of lines of XML in your spring security configuration file and you are done. In order to implement this functionality, you can use the <concurrency-control> tag.

How to setup JNDI Database Connection pool in Tomcat - Spring Tutorial Example

Setting the JNDI Database Connection pool in Spring and Tomcat is pretty easy. Tomcat server documentation gives enough information on how to setup connection pool in Tomcat 5, 6 or 7. Here we will use Tomcat 7 along with spring framework for creating a connection pool in Tomcat server and accessing them in Spring using JNDI code. In our last article, we have seen how to setup database connection pool in Spring for core Java application which doesn't run on a web server or application server and doesn't have managed J2EE container. but if you are developing a web application than its better to use server managed connection pool and access them using JNDI. Spring configuration will be generic and just based on JNDI name of Datasource so it will work on any J2EE Server e.g. Glassfish, WebLogic, JBoss or WebSphere until JNDI name is same. 

Wednesday, April 18, 2018

Top 5 Apache Kafka Courses to learn Online - Best of Lot

Hello guys, you might have heard about Apache Kafka, the next generation, Big Data messaging system which is handling billions of messages per day on companies like LinkedIn, Uber, Airbnb, Twitter etc. In past, I have shared some awesome courses on Big Data, Spark, and Hadoop and many of my readers requested me to share similar suggestions for Apache Kafka. If you are interested in Apache Kafka and looking for some awesome courses to learn online then you have come to the right place. In this article, I am going to share some of the best Apache Kafka courses to learn online. If you know about Big Data then there is a good chance that you have also heard about Apache Kafka, the software which handles data feed for any organization. It's a distributed streaming platform developed by Apache foundation for building real-time data pipelines.

Sunday, April 15, 2018

Top 10 Popular Programming languages and their Creators

There are many programming languages out there in the software world and they are still coming like Scala, Go, Closure etc, but the only handful of them have managed to survive to date. These are the ones who have contributed immensely to software development. Since programming language is a single most important thing in software development world, it's often discussed, criticized and improved over the years. Programmers and developers, who those programming languages are icons of programming world and sometimes I feel sad when a guy using a programming language doesn't know, who is behind that.

Saturday, April 14, 2018

Top 5 Hadoop Courses to Learn Online - Best of Lot

If you are learning Big Data and want to explore Hadoop framework and looking for some awesome courses then you have come to the right place. In this article, I am going to share some of the best Hadoop courses to learn Hadoop in depth. In last a couple of articles, I have shared some Big Data and Apache Spark resources which are well received by my readers. After that, a couple of my reader emailed me and asked about some Hadoop resources e.g. books, tutorials, and courses, which they can use to learn Hadoop better. This is the first article in the series of Hadoop, I am going to share a lot more about Hadoop and some excellent resources in coming month e.g. books and tutorials. Btw, If you don't know, Hadoop is an open source distributed computing framework for analyzing Big data and it's been around for some time.

Wednesday, April 11, 2018

How to Crack Java Programming Interviews in 2018? Topics, Books, and Questions

Java Interviews are a little bit different than traditional programming interviews on tech giants and product based companies like Google, Amazon, Microsoft, or Facebook. First, even though it has questions from Data Structure and Algorithms e.g. String or Array, you can still manage to clear Java interviews if you are not an expert on them. The questions are a little bit easier and more practical than those companies. Another very important thing about Java interviews are questions based upon Java programming language and JDK API. Since Java is also an Object oriented programming language, you will find lots of OOP questions there. Since Java is primarily used as application programming language, the focus is aligned accordingly with questions mostly focusing on API, Java concepts, and design patterns.

Monday, April 9, 2018

5 Spring Framework Books Experienced Java Developers Should Read in 2018

The Spring framework has changed a lot in last a couple of years. In 2017 and 2018 itself, we have seen major releases for Spring, Spring Boot, and Spring Security. These new releases introduced several exciting features to meet the latest software development trends e.g. reactive programming, support for Kotlin for developing Spring application, Spring WebFlux - a new framework to develop non-blocking and reactive web application,  and many more. Since software world is changing and most of the development is happening on Cloud with Microservice architecture leading the way, it's high time that experienced Java developers should upgrade themselves.

Friday, April 6, 2018

Top 5 Node.js and Express JS online courses for Web Developers

There is no doubt that JavaScript is the #1 Programming language in the world and Node.js is one of the biggest reason for that. Initially, JavaScript was considered just a client-side scripting language but Node.js has changed all that by allowing developers to create dynamic web pages on the server side using JavaScript. It is also rated as the most popular framework of 2017 on StackOverflow Developers survey. The most important benefit of Node.js is that it allows you to build a full stack application based on just one language, JavaScript. This is especially useful for start-ups which put a lot of emphasis on being able to iterate early and often.

Thursday, April 5, 2018

Top 5 Java 8 Certifications Courses to Prepare OCAJP (1Z0-808) Exam Online

If you are preparing for Oracle Certified Java SE 8 Associate exam, also known as OCAJP 8 and OCPJP 8 with exam codes 1Z0-808 and looking for a decent online course to kick start with your preparation then you have come to the right place. In this article, I will share some of the best online courses to prepare for Java SE 8 certifications. Btw, first of all, configurations to make the right decision. If you are a Java developer then certifying for your skill will not only distinguish you from millions of other non-certified Java programmers but also improve your knowledge and understanding of Java SE 8. If you are looking for a job then this can help you to get a better job and if you are looking for a career growth e.g. to become senior Java developer, these certifications can help you to get a promotion.

Tuesday, April 3, 2018

Top 5 Java 9 Courses to Learn Online - Best of Lot

The year of 2017 was the year of releases for Java developer. With releases of JDK 9, Spring 5, Spring Boot 2.0 and Spring Security 5.0 there was so much to learn for Java developers and all at once, but like many others, I didn't make a good process and I am looking to turn it around in 2018. One of my top priority goal for New Year to learn new features of Java 9 as quickly as possible to write more about it. It's also important for you to learn Java 9 quickly to improve your career prospects.

Friday, March 30, 2018

Top 5 Data Science and Machine Learning Course for Programmers - Best of Lot

Many programmers are moving towards Data Science and Machine learning hoping for better pay and career opportunity and there is a reason for it. Data Scientist has been ranked the number one job on Glassdoor for last a couple of years and the average salary of a data scientist is over $120,000 in the United States according to Indeed. Data Science is not only a rewarding career in terms of money but also it provides the opportunity you to solve some of the world's most interesting problems.  IMHO, that's the main motivation many good programmers are moving towards Data Science, Machine Learning, and Artificial Intelligence.

Tuesday, March 27, 2018

Finally, Java 10 has var to declare Local Variables - JDK 10 New Feature

Hello guys, In this series of new features of Java 10 articles, today,s I am going to talk about probably the most popular and most useful, the introduction of var keyword (well, it's not really a keyword but I'll you later about it) in Java. If I am not wrong, this feature was supposed to come on Java 9 but dropped later. Finally, Java also has var keyword to declare variables which allows you to declare a variable without their type e.g. instead of doing String str = "Java" you can now just say var str = "Java". This may not sound much gain when declaring String or an int variable but consider about complex types with generics, this will surely save a lot of typing and also improves the readability of code.

Monday, March 26, 2018

Java 10 Released - 10 New Features Java Developers Should Know

Hello Guys, while we all are talking about Java 9 and some people are yet to adopt Java 8 in their projects, here comes the new release of Java, the JDK 10. It's available to download now on Oracle's website. This is the first release in the new release schedule, where you have a new Java release every six months, I know it's quite early but that's a reality now. Apart from 6 monthly release, Every 3 years there is an LTS release, which is sort of major Java release. The next LTS release is Java 11 which should be out in September. So you can aim for that. Then you can update three years after that to the next LTS release.

Sunday, March 25, 2018

5 React Native Courses to Learn Android and iOS development with JavaScript - Best of Lot

If you are a web developer who wants to go into the massive world of mobile app development but don't want to spend time learning Java or Kotlin for Android development, or Objective C or Swift for iOS development then React Native could be a great tool for you. React Native is an extension of React, a popular JavaScript framework to develop web applications, which allows you to build native Android and iOs applications in JavaScript. Unlike Ionic and Cordova which promotes write once run everywhere but doesn't offer you to create a native app, React Native does convert your code into native code, especially for GUI.

Saturday, March 24, 2018

Top 10 Computer Programming and Sci-Fi Movies Programmers Should Watch

Guys, It's a fun time here, as Holidays are approaching, it's Movie time for many of us. Being a computer programmer, I love movies which are based on programmers life, work, and concept. Thankfully Hollywood is no short of movies based on computers, programming, and geeky technical stuff. Another day, I was pretty bored and when I look back to my DVD collection, I found Inception, Matrix Reloaded, and The Social Network, this all movies are in some way related to computers and technology, which strike me the idea to publish my list of Top 10 Computer programming movies.

Tuesday, March 20, 2018

Top 5 Free Agile Courses for Programmers and Software Engineers - Best of Lot

Technology is changing at a rapid pace and market conditions, tough competition, and time-to-market are some of the biggest concerns for today's organizations, especially for technology companies. In order to adapt this fast-changing environment, most of the companies are now using the Agile model of development, testing, and project management. This enables the organizations to efficiently cope with changes and deliver faster and that's why for a programmer or an IT professional, a solid knowledge of Agile methodologies and framework is important. It doesn't matter whether you know the Waterfall model of development or not but it does matter whether you have worked in an Agile environment or not. In order to educate programmers about Agile, I have shared some of the books to learn Agile in past and today I am going to share some of the free online Agile courses you can take to learn Agile methodologies at your own pace.

Monday, March 19, 2018

Top 5 Big Data and Apache Spark Courses for Java Developers to Learn Online in 2018

Slowing economy and the recent trend of job cuts in India and elsewhere have made many programmers anxious about their job security. I receive a lot of emails and Facebook chats about suggestions to improve IT skills to remain competitive and marketable. So, if you are in the same boat, you can learn Big Data and IT Automation to remain marketable. These two skills are in great demand and will generate a lot of jobs in future. I have suggested many Java developers around the world to learn Big Data Technologies e.g. Apache Spark to give their CV a new boost. Since it's not easy to learn a new technology and at a certain age, you feel a lot of restriction and resistance from both your body and mind. In order to overcome that I found a combination of books and online courses works great.

Thursday, March 15, 2018

Top 20 Java Books of 2017 Which You Can Read in 2018 - Best of Lot

Only a few days have left in 2017 and while I am busy making my goals for 2017, I am also looking back on what I have done in 2017. One of the things which I would like to share with you guys is some of the books I have read in 2017 on Java and related technologies. This includes books on Hibernate, Object-oriented programming, Algorithms, Soft skills, Microservice, Groovy, Scala, Agile, and UML etc. If you haven't read them yet, you can very well read them in 2018, depending on what technologies and programming languages you are going to learn in 2018.

Wednesday, March 14, 2018

Top 5 Courses to Learn Python in 2018 - Best of Lot

If you are a Programmer or a Computer Science graduate and thinking to learn Python in 2018 then you have come to the right place. In this article, I am going to share some of the best online courses to learn Python in 2018. Python is one of the most popular programming languages and it's used in many domains e.g. Web development, Automation, Data Science, Machine learning etc. In recent years, Python has also become as a default language for Data Science and Machine learning Projects and that's another reason why many experienced programmers are learning Python in 2018. It's also one of the top languages on my list of programming language to learn in 2018. But, for all its power and flexibility, Python is still a very simple language to learn and often touted as beginner's programming language.

Tuesday, March 13, 2018

How to enable HTTP Basic Authentication in Spring Security using Java and XML Config

In the last article, I have shown you how to enable Spring security in Java application and today we'll talk about how to enable Basic HTTP authentication in your Java web application using Spring Security. I'll show you how to do that using both the Java configuration and XML configuration if you are using Spring Security 3.1 or lower version, but before that let's understand what is Http basic authentication and why do you need that? One of the most common ways to authenticate a user in a web application is by using form login i.e. you provide a login page and user will enter his username and password for authentication. This works great for human users but sometimes there are situations where you can't use a login form for authentication.

How to Buy Spring Professional Certification Exam Voucher Online - Step by Step Guide

So, you have been preparing for Spring certification for quite a sometime and now you feel you are ready to take the exam and it's time to buy the Spring certification voucher and schedule your exam. In this article, I'll show you how to buy the Spring certification voucher online. But, before purchasing a voucher, I would like to remind you that Spring certification voucher is only valid for 90 days, after that it will expire. So, it's best to buy the voucher only if you are ready for the exam i.e. you have gone through several Spring Mock tests and practice tests given in Spring study guides and you are consistently scoring over 80% on them.

Monday, March 12, 2018

10 Frameworks Java and Web Developers Should learn in 2018

First of all, wish you a very Happy New Year 2018. May God bless you to fulfill all your dreams. From last a couple of weeks, many of my readers are asking me questions on Facebook and Email that what should they learn in 2018? I have written a series of post to help them e.g. 10 things Java programmer should learn in 2018. In this article, I am going to share some of the most popular frameworks which you can learn in 2018. The framework is not just for Java developers but for any programmer. They are in good demand and learning them not only improve your chances of getting a better job but also opens new doors of opportunities.

Sunday, March 11, 2018

How to Ignore Unknown Properties While Parsing JSON in Java

One of the common problem while parsing JSON in Java using Jackson API is that it fails when your JSON contains unknown properties i.e. your Java class doesn't have all the field corresponding to all JSON properties. For example, if you are consuming JSON from a REST Web Service and tomorrow they added a new field into JSON then your code will break because Jackson will throw UnrecognizedPropertyException and stop parsing JSON. This is troublesome and can cause problems in production if you are not aware. I  have faced this issue when a developer shipped the code to consume data from REST API without proper handling unknown fields.

Top 3 JVM languages Java Programmer Should Learn in 2018

If you are a Java programmer and thinking to learn some more programming language to expand your knowledge and skill, but not sure which programming language to choose then you have come to the right place. In this article, I'll share 3 JVM languages Java programmers can learn in 2018 and why you should learn them. Being a Polyglot developer is a good quality and often valued high on interviews. It also expands your thinking because different programming languages have different features which make certain things really easy.

Saturday, March 10, 2018

5 Programming Languages Every Programmer Should Learn

I have read somewhere that programmer should learn a new programming language every year ( I think it's code complete, not sure, though), but if you cannot do so, I suggest to at least learn following five programming language to do well in your career. Everybody loves polyglot programmer and an all-rounder who is versatile enough to write a quick script and can also write complex Java programs. In fact, it's almost mandatory for a senior developer to learn more than one language. Interviewers are giving more attention to a programmer who has good experience with multiple languages e.g. C++ and Java goes quite well, so is Python and Java. I personally like programmers who have strong experience on either C++ or Java and can write scripts in groovy, Perl or Python.

Wednesday, March 7, 2018

10 Reasons to Learn Java Programming Language and Why Java is Best

Java is one of the best programming language created ever, and I am not saying this because I am a passionate Java developer, but Java has proved it in last 20 years. Two decades is a big time for any Programming language, and Java has gained strength every passing day. Though there are times, when Java development slows down, but Java has responded well. Earlier with groundbreaking changes in the form of Enum, Generics, and Autoboxing in Java 5, performance improvement with Java 6, and Google's choice of language for Android apps development keeps Java as a front-line programming language.

10 Object Oriented Design Principles Java Programmer should know

The Object-Oriented Design Principles are the core of OOP programming, but I have seen most of the Java programmers chasing design patterns like Singleton pattern, Decorator pattern or Observer pattern, and not putting enough attention on learning Object-oriented analysis and design. It's important to learn basics of Object-oriented programming like Abstraction, Encapsulation, Polymorphism, and Inheritance. But, at the same time, it's equally important to know object-oriented design principles, to create the clean and modular design. I have regularly seen Java programmers and developers of various experience level, who either don't hear about these OOP and SOLID design principle, or simply doesn't know what benefits a particular design principle offers, or how to apply these design principle in coding. 

Top 10 Spring Interview Questions Answers for Java JEE Developers

Spring framework interview questions are on the rise on J2EE and core Java interviews,  As Spring, is the best framework available for Java application development and now Spring IOC container and Spring MVC framework are used as a de-facto framework for all new Java development. With this popularity interview, questions from spring framework are top on any list of Core Java Interview questions. I thought to put together some spring interview questions and answers which have appeared on many Java and J2EE interviews and useful for practicing before appearing on any Java Job interview. This list of Spring interview questions and answers contains questions from Spring fundamentals e.g. Spring IOC and Dependency Injection, Spring MVC Framework, Spring Security, Spring AOP etc, because of length of this post I haven't included Spring interview questions from Spring JDBC and JMS which is also a popular topic in core Java and J2EE interviews. I suggest preparing those as well.

Top 15 Java Multithreading, Concurrency Interview Questions Answers asked in Investment banks - 2018

Multi-threading and concurrency questions are an essential part of any Java interview. If you are going for any Java interview on any Investment bank e.g. Barclays, Citibank, Morgan Stanley for equities front office Java Developer position, you can expect a lot of multi-threading interview questions on your way. Multi-threading and concurrency are favorite topics on Investment banking interviews,  especially on electronic trading development jobs and they grill candidate on many tricky java thread interview questions. They just want to ensure that the guy has solid knowledge of multi-threading and concurrent programming in Java because most of them are in the business of performance which provides them a competitive advantage.

Monday, February 26, 2018

Top 5 RESTful Web Services with Spring and Java Courses for Experienced Developers

In the last article, I have shared some courses to learn Microservice development with Spring framework and today, I'll talk about RESTful web service developments. The REST API and RESTful Web Services needs no introduction, it's everywhere now and driving a new internet revolution. Most of the software development in the web space now also involves REST APIs. Gone are the days where the only interface for a web application was the browser, now most of them support REST APIs, which allows them to be accessible on any device e.g. mobile devices, tablets, apple watch and any other digital gadgets. It doesn't matter whether you are working for software giants like Amazon, Facebook or Google or working with startups like Uber or Netflix, REST APIs are everywhere.

Saturday, February 24, 2018

Top 5 Spring Microservices Courses with Spring Boot and Spring Cloud

Microservices is the new buzz word in software development word and everybody is talking about it, but it's been in practice for quite some time especially in form of RESTful web services. The idea of Microservices is simple, breaking a big monolithic application which contains everything from UI to service layer to database into small chunks of applications which are loosely coupled and can work on their own. For example, in a company like Uber, you could have several applications providing different services e.g. discovering when a driver is online or a passenger is searching for a cab, finding a route, traffic and handling payments. These small applications are known as Microservices.

Monday, February 19, 2018

What is SecurityContext and SecurityContextHolder in Spring Security?

The SecurityContext and SecurityContextHolder are two fundamental classes of Spring Security. The SecurityContext is used to store the details of the currently authenticated user, also known as a principle. So, if you have to get the username or any other user details, you need to get this SecurityContext first. The SecurityContextHolder is a helper class, which provide access to the security context. By default, it uses a ThreadLocal object to store security context, which means that the security context is always available to methods in the same thread of execution, even if you don't pass the SecurityContext object around. Don't worry about the ThreadLocal memory leak in web application though, Spring Security takes care of cleaning ThreadLocal.

Sunday, February 18, 2018

How to fix Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory in Java

This error means your code or any external library you are using in your application is using the SLF4J library, an open source logging library, but it is not able to find the required JAR file e.g. slf4j-api-1.7.2.jar hence it's throwing Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory. If you look at the error, you will see that it's saying it is not able to find the class org/slf4j/LoggerFactory or org.slf4j.LoggerFactory. The package name indicates that it's part of SLF4j, hence you need SLF4j JAR files e.g. slf4j-api-1.7.2.jar in your application's classpath. So, go ahead and download the JAR file from SLFj website or from Maven Central repository and restart your application.

Saturday, February 17, 2018

5 Must Read Books to become Software Architect or Solution Architect

I receive a lot of queries from senior Java developers, who aspire to become software architect or solution architect e.g. what can they do to become a software architect? Which books, resources, or certifications can help? and general queries like how much experience you need to become software architect etc. In the past, I have been suggesting them individually about some books to read to expand their knowledge base and look at the software from architecture and design perspective and this article is a compilation of many of such suggestions. Since a lot of books can confuse, I have only select 5 best and must-read books from software architect perspective.

Friday, February 16, 2018

Top 5 Online Courses to Learn Web Development in 2018

Udemy is running their flash sale this weekend, where they are offering all the courses in just $10.99 and I have been spending a lot of time going through their website to buy some of the top quality courses in this sale. If you look at the price, its nothing, if you escape snakes for 1 day you can buy a course in Udemy to learn and the best part of this is that you get the lifetime access of course. So you can use it whenever you get time, maybe this week, this month, or sometime later. I love learning and for the most part of my life, I learned by reading books but ever since I come across online courses on Udemy and Pluarlsight, I have spent most of my time learning through online courses. They are the best way to start with the new technology and get yourself up and running in no time.

Wednesday, February 14, 2018

Top 10 Highest Paying Technical Jobs for Software Engineers, Programmers

If you are a computer science graduate or someone who is thinking to make a career in software development world or an experienced programmer who is thinking about his next career move but not so sure which field you should go then you have a come to the right place. In this article, I will tell you the top 10 highest paying technical jobs you can aim for. All you need is some programming experience and a passion for learning. Particularly the Machine learning and Data science field looking very promising for both beginners and experienced programmers. On average a machine learning specialist and Data Scientist make around anywhere from $110,000 USD to $120,000 and there is a huge demand for them and if you are interested in solving real-world problems they present an exciting opportunity.

Tuesday, February 13, 2018

10 Free Docker Container Courses for Developers to Learn Online

I have been answering a lot of questions about what programmers should learn in 2018 and Docker Container is one of such skill. Docker and containers are a whole new way of developing and delivering applications and IT infrastructure. In this post, I'll talk about what is Docker and why a programmer should learn Docker. In today's world of massive scalability, where every single mobile app and web application needs to support billions of users (think of Youtube, WhatsApp, Uber), software application development and deployment have become increasingly complex. Gone are the days when software is developed by a small team of onshore people.

Monday, February 12, 2018

Top 5 Java Design Pattern Courses for Experienced Java Developers

Hello guys, today, we'll talk about design patterns and some of the best online courses to learn design patterns in Java from scratch. If you are wondering what is a design pattern and why Java developers should learn them? then let me give you a brief overview. Design patterns are nothing but a tried and tested solutions of common programming problems, for example, the creational design patterns deal with the problems of object creation. They exist from a long time but made popular by famous Gang of four of Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm in their classic 1994 book Design Patterns: Elements of Reusable Object-Oriented Software, also known as GOF design patterns. This book documented 24 design patterns which are reusable to solve common programming problems. 

Saturday, February 10, 2018

Top 5 Professional Email Writing Courses for Programmers and IT Professionals

One of my readers emailed me a couple of days ago and asked If I could suggest something to improve his email writing skills? He says that he is very good at work and programming but sucks on writing emails and because of that he never gets the visibility he deserved, resulting in no promotion or career growth. This sounds me a very common problem, especially among programmers whose native language is not English, and who have never attended any business or email writing course. In fact, it was a problem with me as well but I slowly picked it up though I am still far behind with many people I know who have excellent email communication skills.

Friday, February 9, 2018

10 Courses to Prepare for Coding/Programming Job Interviews Online

To be honest with you, getting your first job is never easy. It is, in fact, the hardest task and you need to put your best effort to find a job in your dream company. Most of the computer science graduates dream of working for Google, Facebook, Amazon, Microsoft, and Apple but they often not able to clear their rigors coding interviews. The single most important reason for failing those coding job interviews is lack of knowledge and practice, hence it becomes increasingly important that you prepare hard in advance. Unfortunately, I learned this little too late, after spoiling my chances at Microsoft and Amazon but you can learn from my experience and prepare better for your programming job interviews.

Thursday, February 8, 2018

Top 20 Spring REST Interview Questions Answers for Java Programmers to Prepare Well in 2018

Hello guys, I have been sharing some REST with Spring tutorials from last a couple of weeks and today, I am going to share some of the frequently asked Spring and REST interview questions to Java developers applying for Web developer roles. Since Spring Framework is the most popular and the standard framework for developing Java web application and RESTful Web Services, a good knowledge of Spring core and Spring MVC is expected from any senior Java developer, but if the job description mention about REST and Web Services, you also need to be aware of how to develop RESTful Web Services using Spring Framework. From Spring 3.1, the framework has been enhanced a lot to support many features needed for RESTFul API out-of-the-box e..g HTTPMessageConverter can convert your HTTP response to JSON or XML by just detecting relevant library in classpath e.g. Jackson and JAXB.

Wednesday, February 7, 2018

5 Courses to Learn Shell Scripting in Linux and UNIX Online

A huge chunk of a developer's time is wasted in trying to repeat tasks and commands, especially when it comes to working with a bunch of UNIX or Linux machines and a good knowledge of shell scripting can free you from such mundane task and give time to do some interesting stuff. If you don't know what is shell scripting then let me tell you is nothing but a program written using shell built-ins and Linux commands to automate things e.g. checking if a host is reachable or finding and deleting large files which are older than certain days or archiving them into another machine. Basically, it's a tool which allows you to automate boring and repeating task and that's the way programmers should work. They should not be repeating stuff, instead should be investing that time to create a script or program which can automate that task.

Tuesday, February 6, 2018

How to parse JSON with date field in Java - Jackson @JsonDeserialize Annotation Example

I have read many articles on parsing JSON in Java and most of them give examples where properties are either String or int, there are very few examples, where you will see the JSON string contains a date field and that's one important thing to learn. It's easy to parse JSON in Java using Jackson or Gson with just integer and string field but you need to do a little more work if your JSON contains a date field because everything in JSON is String but Java is a type based programming language, where Date is a type.

Monday, February 5, 2018

5 Courses to Learn Kotlin Programming language for Java and Android Developers

If you don't know Kotlin, it's a relatively new programming language that makes programming for Android or Javascript easy. Ever since Google announced Kotlin as the official language for Android Development, I received a lot of queries from my readers should Java developer learn Kotlin now? or which one is better to start with Android development, Kotlin or Java? I have answered that question in my last article but I am still receiving a lot of queries about learning Kotlin and whether Java developer should Learn Kotlin or not? Well, to be honest with you, being a Polyglot programmer i.e. a programmer who knows more than one programming language is important and distinguish skill. It not only widen your thoughts but also make you a better developer and that's why I recommend every Java developer to at least learn one more JVM language and Kotlin is a good one to start with.

Saturday, February 3, 2018

Top 5 Selenium Webdriver with Java Courses for Testers and Developers to Learn Online

The days of manual testing is limited as more and more companies are shifting towards automation testing. This means all manual testing QAs needs to learn new test automation skills e.g. Selenium, Cucumber, JUnit, and TestNG to give their career a boost. If you are manual testers or non-programming testers interested in learning test automation, or a freshers/graduates who want to kick start their career in automating testing then you have come to the right place. In this article, I am going to share some of the best courses to learn Selenium Webdriver with Java and other automation testing technology e.g. JUnit, Cucumber etc.

Friday, February 2, 2018

Java 9 Example - Factory Methods for Collection - Creating Unmodifiable List, Set, and Map

Hello guys, this is my first article in Java 9 features on this blog and today you'll learn about my favorite feature "factory methods for collection", which is introduced as part of JEP 269. The JEP stands for JDK enhancement proposal. If you have worked in Groovy or Kotlin then you know that how easy is to create the list with elements using collection literals e.g. to create a list of 1, 2, 3 you can simply write val items = listOf(1, 2, 3). Unfortunately, Java doesn't support that yet but things have been improved with the factory methods for collection in JDK 9 and it's almost like that. JDK has added static factory methods like of() on to basic Collection interfaces which you can use to create a list of items.

Thursday, February 1, 2018

Kotlin vs Java - Which language Android Developers should Learn?

Ever since Google announced Kotlin as the official language for Android development in Google IO 2017, programmers, who want to become an Android Developer are in dilemma. Now the big questions in front of them are whether they should learn Kotlin or Java? The answer to this questions depends upon your profile. If you are a complete beginner who wants to learn Android development then my answer is Java, but if you are Java developer who wants to jump into the lucrative market of Android App development then my answer is Kotlin. I'll discuss why beginner Android programmer should start with Java and why Java developer should learn Kotlin in this article.

Wednesday, January 31, 2018

Top 5 Free Git Courses for Programmers to Learn Online - Best of Lot

One of my goals in 2018 is to learn and master Git and I have been searching some good tutorials and courses to start with. The Internet is full of git tutorials and a simple Google search will leave you thousands of tutorials but the big question mark is where do you start? It's easy to pick a tutorial or a blog post if you have some background about what is Git, what it does? and how to use it but if you don't have much background then you need a course which can tell you all the information from the ground up. I personally like learning from a book or an online course before moving to blog posts as they were often well structured. When you search for Git courses in popular online course websites e.g. Udemy, Pluralsight or Coursera, you will find some good courses e.g. Git Complete: The Definitive Guide on Udemy and Git Fundamentals from Pluralsight which will teach you everything about Git step by step. These are excellent resources to start with Git.

Tuesday, January 30, 2018

Top 5 Hibernate and JPA Courses for Java Developers to Learn Online

Hibernate is one of the essential frameworks for Java and Java EE or JEE programmers, especially if you are working on the server side of a Java web development project. It's an ORM tool or a framework which allows you to deal with only objects while Hibernate takes care of your data on your behalf. For example, instead of writing classes with SQL to load, save, and update data using DAO design pattern, you can simply use Hibernate framework in your project. It will allow you to deal with just objects while it will load, save, and update data in the background. Instead of you loading and saving data to/from the database and then populating objects, Hibernate just give you a readymade object and also takes care of updating data when the state of object changes. Btw, this is just one benefit of using Hibernate, another one is that it provides inbuilt caching.

Monday, January 29, 2018

7 Reasons to Use Spring to develop RESTful Web Services in Java

REST has now become a standard way to develop web services and when it comes to Java, there are many frameworks and library available e.g. JAX-RS, Restlet, Jersey, RESTEasy, Apache CFX etc, but I encourage Java developers to use Spring framework to develop RESTful web services. But, some of you might ask, why use Spring Framework to develop RESTful web services in Java? What is the advantage and why it's better than other frameworks and libraries available out there? Well, the most important reason I think to use Spring for developing RESTful web service is that you can use your Spring MVC experience to develop RESTful web services.

Sunday, January 28, 2018

How to deal with ConcurrentModificationException in Java? Beware while removing elements from ArrayList in loop

One of the common problem while removing elements from an ArrayList in Java is the ConcurrentModificationException. If you use classical for loop with the index or enhanced for loop and try to remove an element from the ArrayList using remove() method, you will get the ConcurrentModificationException but if you use Iterator's remove method or ListIterator's remove() method, then you won't get this error and be able to remove the element. It's an unwritten rule in Java that while looping through the list, you should not add() or remove() elements until the collection supports fail-safe Iterator e.g. CopyOnWriteArrayList, which operate on a copy of list rather than the original list.

Saturday, January 27, 2018

10 Unit Testing and Integration Tools and Libraries for Java Developers

In last a couple of weeks, I have written some articles about what Java developer should learn in 2018 e.g. programming languages, libraries, and frameworks, but if you have just one thing to improve or learn then that must be your automation testing skills. Testing is one of the disciplines which separates professional developers with amateur ones. It's not about following TDD, BDD, or whatever testing methodologies but at the very minimum level, you must write code to test your code automatically. Many Java developers write unit tests and integration tests which automatically run during build time, mostly by using continuous integration tools like Jenkins or TeamCity.

Thursday, January 25, 2018

3 Ways to Learn Spring Core, Spring MVC, Spring Security, and Spring Boot Framework

If you are a Java developer and wants to learn Spring framework then you have come to the right place. In this article, I will share three ways to learn Spring framework, but before that let's understand what is a spring framework and why Java developers should learn Spring framework? Well, Spring is a framework which assists you to develop Java application by following some best practices, particularly the principle of dependency injection and inversion of control. As per this principle, instead of class asking for its dependency, the framework provides them at runtime.  Following these principles improves your code quality because it reduces coupling between different part of your applications e.g. between modules and classes, which makes them easier to test and develop.

Wednesday, January 24, 2018

10 Tools Every Software Developer/Programmer should know

Every trade has their tools and software development is no different. A good programmer or software developer generally know their tools better than others and also have access to more powerful and advanced tools than a average programmer, but there are certain tools which you expect every software developer should know and this list is all about such tools. In this list, I am going to share 10 essential tools, which I believe every programmer or software developer should know and know well.

Monday, January 22, 2018

10 reasons to Learn Scala Programming Language

One of the questions my reader often ask me is, shall I learn Scala? Does Scala has better future than Java, or why Java developer should learn Scala and so on. Well, there can be many reasons for learning Scala e.g. you are forced to learn because it been used in the new company you joined or your solution architect decided to use it, but that's a different story. Here, we'll talk about reasons which encourage Java developers to learn Scala.  Scala has emerged as one the most powerful Java alternative in recent times. It's been the JVM language of choice, leaving Groovy and Clojure way behind, and preferred as the language people want to write most code in.

Saturday, January 20, 2018

Top 5 Free Data Structure and Algorithm Courses for Java and C Programmers

Data Structure and Algorithm is one of the essential topics for programmers, both to get a job and do well on Job. A good knowledge of data structure and algorithm is the foundation of writing good code. If you are familiar with essential data structures e.g. array, string, linked list, tree, map and advanced data structure e.g. tries, AVL trees etc and know when to use which data structure and compute the CPU and memory cost of your code in terms  Even though you don't need to write your own array, linked list or hashtable, given every major programming SKD provides them e.g. JDK or C++ STL library, you will need to understand them so that you can use them in right place. Using a right data structure can drastically improve the performance of an algorithm.

Friday, January 19, 2018

How Http Basic Authentication works in Spring Security?

In the last article, you have learned how to enable Http basic authentication in Spring security based Java application and now we'll go one step further to understand how exactly http basic authentication works in Spring security. If you remember, when you use HTTP Basic for authentication purpose the client e.g. browser or a rest client sends login credentials in http request header. The header is aptly named as "Authorization" and it contains based 64 encoded string which is created by concatenating username and password using a colon. For example, if the username is "johnsmith" and password is "JOHN3214" then they will be concatenated as "johnsmith:JOHN3214" before encoded using base 64 encoding algorithms.

Thursday, January 18, 2018

What is a Functional interface in Java 8? @Functional Annotation and Examples

The functional interface is one of the most important concepts of Java 8 which actually powers lambda expression but many developers don't put enough effort to understand it and spend time learning lambda expression and Stream API without first understanding the role of functional interface in Java 8. Unless you know what is a functional interface and how lambda is related to it, you can't use powerful features of Java 8 e.g. lambda expression and stream API. Without knowledge of functional interface, you won't be able to understand where you can use a lambda in the code but also you will struggle to write lambda expression the method is expecting, hence, it's important to have a good understanding of functional interface in Java 8.

Wednesday, January 10, 2018

Top 20 Libraries and APIs Java Developer should know

One of the traits of a good and experienced Java developer is the extensive knowledge of API, including JDK and third-party libraries. I spent a good deal of time learning API, especially after reading Effective Java 3rd Edition, where Joshua Bloch has advised to use existing API for development rather than writing new pieces of code for common stuff. That advise making sense to me because of the testing exposure these 2nd party libraries get. In this article, I am going to share some of the most useful and essential libraries and API, a Java developer should be familiar with. Btw, I am not including frameworks e.g. Spring and Hibernate because they are pretty well known and have specific features.