Thursday, January 31, 2019

How to Find Multiple Missing Integers in Given Array of Numbers 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 a given array of integers. You might have heard or seen this problem before on your programming job interviews and you might already know how to solve this problem. But, there are a lot of different versions of this problem with increasing difficulty levels which interviewers 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, which kinda make those problems a bit easier.

Top 5 Java Programming Courses for Beginners to Learn Online - Best of Lot

If you are a computer science graduate or someone who wants to learn Java and looking for some awesome resources e.g. books, tutorials, and online courses then you have come to the right place. In the past, I have shared some great books and tutorials to learn Java and in this article, I am going to share some of the best Java courses beginners can join to learn Java. One of the main problems with learning Java is to keep pace with the increasing number of releases. For example, Java 8 was released in 2014 which completely changed how Java is written and now within the last 6 month, we have two major Java releases in form of Java 9 and Java 10. But the good thing is that the core of Java is still the same and all its releases are backward compatible.

Wednesday, January 30, 2019

Difference between Stable and Unstable Sorting Algorithm - MergeSort vs QuickSort

Recently in one on the interview, after some initial questions about sorting algorithms e.g. how do you write QuickSort or difference between QuickSort and MergeSort, the interviewer asked about do you understand the difference between stable and unstable sorting algorithm? This question was new to my reader, so he says, Sorry, never heard about that. The story ended there, and Interviewer moved on to next question but like many of us, my reader went on to find more about unanswered questions and ultimately he asks me what is the meaning of a stable and unstable sorting algorithm? Some of you might be heard about it and many of you might not know about this distinction, I'll try to answer this question in this article.

Top 5 Free Scala Programming Courses for Java Programmers to learn Online - Best of Lot

Scala is a powerful object-oriented and functional programming language which has been long touted as the successor to Java or to replace Java. Well, that didn't happen in last few years but Scala has certainly made a lot of progress and established itself as a scalable programming language for big things. If you are a social media user and know Twitter then let me tell you that they are using Scala, which proves that Scala has all the tools you need to build a high-performance scalable application like Twitter, and Twitter is not the only company which is using Scala. If you look a the Scala's website, you will find that IBM, Goldman Sachs, Verizon, and SAP are using Scala to solve their problems.

Tuesday, January 29, 2019

Top 20 Spring MVC Interview Questions and Answers for 2 to 5 years Experienced Java Programmers

The Spring MVC framework is one of the most popular Java frameworks for developing web applications. If you have been working in Java and the developing web-based application then there is a good chance that you have already used Spring MVC in your project. In last decade, it has become the defacto framework for developing Java web application. Spring MVC is based on classic MVC (Model-View-Controller) design pattern but it is much more than that. It leverages, Spring framework's strength in terms of dependency injection and Inversion of control and promotes loosely coupled architecture, similar to the Spring framework itself. Because of its immense popularity and usefulness, most of the Java development job requires a good knowledge of Spring and Spring MVC.

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.

Monday, January 28, 2019

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

Hello All, you might have heard about Kotlin and how it's becoming the standard language to develop Android applications but it's much more than that. If you don't know Kotlin, it's a relatively new programming language that makes programming for Android and Java easy. Ever since Google announced Kotlin as the official language for Android Development, I have 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?

10 Tools Used by Java Programming Developer in Day to day life

Every trade has their tools, and Java programming is no exception. In fact, good knowledge of tools and mastery of using them, saves a lot of time in design, development, testing, debugging, and troubleshooting any production issue. In order to become a good developer, you must know the right tools for the right jobs. A developer without tools and tricks are like a toothless lion, hence it's very important that you devote some time to learning tools required for your day to day job. Many developers think that learning an IDE like Eclipse, NetBeans or IntelliJ IDEA is enough, but that's just the start of the process. No doubt that IDEs are the most important tool ever created for programmers but they are not the solution for everything.

Sunday, January 27, 2019

Top 5 Online Courses to become a Web Developer in 2019

Hello all, wish you a very Happy New Year 2019. We are already approaching the end of January and I am sure you all have made your goals for 2019. Some of you might have started already on planning how to achieve those goals which is great. If you not, you can get some inspiration from my goals about what you can learn in 2019. Anyway, If one of your goals is to learn Web Development or become a Web Developer in 2019 then you have come to the right place. I can help you to achieve your goals. There is no doubt that Web Development is a very exciting career and financially rewarding as well. If you are good at creating web apps you can also create your own website and your own business and become an entrepreneur.

Top 5 React and Redux Courses to Learn Online - Best of Lot

If you are a Web developer or someone passionate about web development and looking for some awesome courses to learn React or React JS, a popular JavaScript framework to develop component-based user interface then you have come to the right place. The Facebook's React library has taken the front-end development world by a storm. More and more people have started using React even in favor of Google's Angular, another popular front-end development framework. Well, I am not going into the classic debate of Angular vs React as both the framework has their own advantage and disadvantage but if you have chosen to learn React, you have made the right decision.

Saturday, January 26, 2019

How to close telnet terminal in Linux and Windows (quit, exit not working)

The telnet is one of the most useful Linux networking commands, which is used to check if a server is listening on a particular port and it's whether up and running or not, but it's a little bit tricky to use, especially, if you are not using it on daily basis. Though I have used telnet before, when I use it after a long time, I actually forgot how to close the telnet terminal and how to get out of it. I tried every possible  Linux commands I can think of which is used to close, cancel a command, or exit from VIM editor in UNIX, like  Ctrl + C, quit, exit, q! and even the escape character '^]', only to realize that nothing is working. It may sound silly that an experienced developer cannot even come out of a telnet terminal but this is a true story. 

Friday, January 25, 2019

Top 5 Java EE or JEE Courses to Learn Online - Best of Lot

The Java Platform Enterprise Edition 8 or Java EE 8 was released last year along with Java 9 in September 2017. If you are a Java developer or someone who wants to learn Java EE for web development and looking for some good courses to kickstart your learning then you have come to the right place. In this article, I am going to share five awesome Java EE courses which cover both Java EE 7 and Java EE 8 and very useful for learning Java EE in 2018. If you are wondering what is Java EE and what does Java EE 8 brings into the table, let me give you a brief overview of Java EE first.

Top 5 TensorFlow and Machine Learning Online Training Courses for Programmers

If you are curious about Artificial intelligence, Data Science, and Machine learning then I am sure you have heard about TensorFlow, Google's machine learning API, which they have used to develop the RankBrain algorithm for Google Search. TensorFlow is one of the most popular machine learning API which allows you to automate several real-world tasks, for example, you can use it for image detection. In fact, a Japanese farmer turned programmer used it to detect the best quality Cucumber, which only his father and mother can do it with his years of experience. That's the power of machine learning, which is now available to everyone because of TensorFlow.

Thursday, January 24, 2019

The 2019 DevOps Developer RoadMap - Your Guide to become DevOps Engineer

DevOps is really hot at the moment and most of my friends, colleagues and senior developers I know are working hard to become a DevOps engineer and project themselves as DevOps champion in their organization. While I truly understand the benefit of DevOps, which is directly linked to improved software development and deployment, from my limited experience I can say that it's not an easy job. It's very difficult to choose the right path in mind of so many tools and practices. Many of my readers also ask me this question is how to become a DevOps engineer, which tools should I learn? which practices should I follow? does learning Maven and Jenkins must for a DevOps guy? how about Docker and Kubernetes? Does infrastructure automation part of DevOps? should I learn Chef, Puppet, or Ansible are just some of those questions which keep coming to me.

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

It's been more than 4 years since Java 8 was launched on the March 2014 and many of you already thinking that Java 8 now legacy version but there are still so many Java developers out there who don't know how to code using new language features of Java 8 like lambdas, stream, and method reference. It's high time for all those programmers to learn and master Java 8 before their skill become outdated. After that, we already have a couple more Java releases i.e. Java 9, Java 10, and Java 11 in the space of just 6 months apart but Java 8 is still the most used version, particularly when it comes to coding style.

Wednesday, January 23, 2019

Top 3 Programming Languages Java Programmers Should Learn in 2019

If you are a Java programmer and thinking to learn some news programming languages to expand your knowledge and skill, but not sure which programming language is better for you then you have come to the right place. In this article, I'll share 3 programming languages Java developers should learn in 2019 and why they should learn them. There is no surprise that all of these programming languages are JVM based programming languages but they all have different qualities which makes them unique and useful for a certain task. Also, being a Polyglot developer is 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.

Tuesday, January 22, 2019

How to implement Command design Pattern in Java with Example

Hello guys, it's been a long since I have shared a Java design pattern tutorial. I did share some courses to learn design patterns but haven't really talked about a particular design pattern in depth. So, today, we'll learn one of the important design pattern, which is often overlooked by Java developers. Yes, I am talking about the Command Pattern which can help you write flexible, loosely coupled code for implementing actions and events in your application. In simple words, the command design pattern is used to separate a request for an action from the object which actually performs the action. This decoupling between Invoker and Receiver object provides a uniform way to perform different types of actions. This decoupling is achieved using a Command object, which is usually an interface with methods like execute()

Top 5 Selenium + Cucumber Online Courses for Java Developers and Automation Testing Programmers

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 like Selenium, Cucumber, JUnit, Mockito, and TestNG to give their career a boost. If you are manual testers or non-programming testers interested in learning test automation, a Java developer who wants to write a better integration test, 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 tools like JUnit, Cucumber etc.

Monday, January 21, 2019

Difference between Dependency Injection and Factory Design Pattern in Java Spring

Learning a Programming language like Java or Python is easy but writing production quality code is difficult. Coding is as much an art as much the Science behind it. In order to write good code, you need to carefully design your classes, their dependency and how to use that. This is important so that it can survive the constant change throughout his lifetime. If you have been coding for some time then you know that SOLID principles and Design Patterns help you to write better code. This is obvious because they are proven the solution of some common problems software developers face all around the world. But, knowing just the design pattern is not enough you also need to learn using the right design pattern in the right place.

Sunday, January 20, 2019

10 Most Popular Programming Languages of the Last 50 Years

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 the software development world, it's often discussed, criticized and improved over the years. Programmers and developers, who those programming languages are icons of the programming world and sometimes I feel sad when a guy using a programming language doesn't know, who is behind that.

Saturday, January 19, 2019

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 the 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, functional programming using the lambda expressions in Java 8, and Google's choice of language for Android apps development keeps Java as a front-line programming language.

Top 5 iOS Developer Course to learn iOS 12 and Swift 4 in 2019

Hello guys, Happy New Year. It's that time of the year when we all start making our goals for better health, improving ourselves and learn new things. Last Year, I focused mainly on Web Development side and spent time learning React, Angular, and Node JS but this year one of my goals is to explore the mobile world, particularly iOS and Android. At least that's a thought for now and I am not sure how long I can go given limited time I get to upgrade myself but I'll try my best. Btw, if you also have the same goal and want to become an iOS developer in 2019 then you should start your journey by learning iOS 12, the latest version of Apple's Operating system which runs on iPhone and iPad and Swift 4, Apple's programming language for creating iOS apps.

Friday, January 18, 2019

Top 5 Android Online Training Courses for Java Developers - Best of Lot

Java has been very lucky that Android uses it as a programming language. This opened a big door of opportunities for Java developers in Android app development. Many people ask me why Java Developer should learn Android? My simple answer is that good knowledge of Android OS improves your chances of getting a job and making a difference in people's lives because Android Apps is the direct way to connect billions of people. Android is without a doubt THE biggest mobile platform in the world, with over 80% market share and over billions of devices running Android. By creating apps for such a big platform, you have a great opportunity to make a difference.

Thursday, January 17, 2019

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.

Top 5 books to learn Spring Boot and Spring Cloud for Java Developers - Best of Lot

Hello guys, if you are a Java developer and want to learn Spring Boot and Spring Cloud frameworks and looking for some of the best books and courses then you have come to the right place. In past, I have shared some of the best Spring Boot and Spring Cloud courses and today I am going to talk about some of the best books to learn Spring Boot and Spring Cloud, but before that let's try to understand what is Microservice and how Spring Boot and Spring Cloud helps with development of microservices in Java. In simple words, Microservices is nothing but an extension of RESTful web services with the key idea is to break up your code into small, distributed, and independent services for better scalability and management, but it does require thoughtful design and think through ability.

Wednesday, January 16, 2019

How to Crack Java Programming Interviews in 2019? Topics, Courses, 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 like 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.

5 Free iOS App Development Courses for Programmers (iPhone + iPad) - Best of Lot

If you are thinking to learn iOS App development i.e. developing games and application for Apple's iOS devices like iPhone and iPad and looking for some free courses then you have come to the right place. In this article, I am going to share five free courses to learn iOS App Development and become an iOS developer this year. This is the second article in my serious of articles about learning iOS and venturing into app development. In my last article, I have shared some of the best courses to learn Swift Programming language, Apple's own language to create iOS applications. It also allows you to create apps for MacOS and Linux as well.

Tuesday, January 15, 2019

The 2019 React Developer RoadMap - Your Guide to become a Modern Web Developer

The React JS or simply React is one of the leading JavaScript libraries for developing front-end or GUI of web applications. Backed by Facebook, React JS, also known as just React is has grown by leaps and bounds in recent years and became the de-facto library for component-based GUI development. Though there are other front-end frameworks like Angular and Vue.js available, what sets React apart from others is maybe the fact that it just focuses on component-based GUI development and doesn't invade on other areas.

Top 5 Java 8 and 9 Courses for Programmers (FREE) - Best of Lot

Hello guys, if you are looking for some free resources e.g. books, tutorials and courses to learn and master new features introduced in Java 8 and Java 9 then you have come to the right place. In past, I have shared some of the best Java 8 tutorials and books and in this article, I am going to share some of the best, free Java 8 and Java 9 courses from Udemy and Pluarlsight with you. These courses are pretty similar to many paid courses you normally buy and many of these are made free by just promotional or educational purpose by their instructor. You can join these courses to learn JDK 8 and JDK 9 features in a couple of days.

Sunday, January 13, 2019

Top 5 Books to Learn Groovy for Java Developers - Best Of Lot, Must Read

Groovy is a programming language which is specially created for Java developers with a view to being a fast-paced, scripting companion to Java. It aims to increase the productivity of Java developer by simplifying Java code and removing unnecessary boilerplate. Groovy not only present a succinct and easy to read syntax but also provide a much more elegant and convenient API than Java for common stuff. For example, a Groovy file can do in 50 lines what a Java source code do in 500 lines. You can declare an array as [] and map as [: ] which really make code full of data without much syntax. Because of this property, Groovy is heavily used in unit testing of Java application. Some popular unit testing frameworks like Spock is also built on Groovy.

Thursday, January 10, 2019

Top 5 Spring and Hibernate Training Courses for Java JEE Programmers

Spring and Hibernate are two of the hottest and most in-demand web frameworks in Java world and also two of the most essential skill for any Java programmer to get a Job in web development space. The Spring framework is in around from 2004 and established itself as the leading framework to develop Java applications both in core Java and web development area. The Spring framework comes with a lot of modules to support a different kind of developments e.g Spring Security to address the security requirements of most web and enterprise Java applications. It supports single sign-on, LDAP authentication, Role-based access control, and much more such essential features. Spring also supports the development of REST services which is no become a standard way to provide web services.

Wednesday, January 9, 2019

How to Crack Spring Core Professional v5.0 Certification - Latest Spring Certification for Java Programmers

Ever since Pivotal, the company behind Spring framework made the mandatory Spring training optional (see here), I have received many queries from experienced Java developers who are interested in doing Spring certifications. This move from Pivotal has suddenly made the Spring certification affordable for many experienced Java and Spring developers who were interested in Spring certification earlier but couldn't progress further due to expensive mandatory training. Since many of them are now preparing for Spring certifications e.g Spring Core 5 or Spring Professional 5 via self-study they are increasingly looking for good resources to prepare for the exam. I have received a lot of questions on preparation, books, mock exams, exam structure, passing marks and useful resources.

Monday, January 7, 2019

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 2019 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.

Sunday, January 6, 2019

10 Free Courses to learn Docker in 2019

I have been answering a lot of questions about what programmers should learn in 2019 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.

Difference between application/x-www-form-urlencoded and multipart/form-data in HTTP/HTML?

Recently in one of the Java web developer interview, one of my readers asked about the difference between x-www-form-url-encoded and multipart/form-data MIME types. In HTTP, there are two ways to send the HTML form data to the server either by using ContentType application/x-www-form-urlencoded or by using multipart/form-data. Even though both can be used to send both text and binary data to the server there is a subtle difference between them. In the case of x-www-form-urlencoded, the whole form data is sent as a long query string.

Saturday, January 5, 2019

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.

Friday, January 4, 2019

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

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.

10 Reasons to Learn Python Programming Language in 2019

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.

Thursday, January 3, 2019

10 Frameworks Java and Web Developers Should learn in 2019

First of all, wish you a very Happy New Year 2019. 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 2019? I have written a series of post to help them e.g. 10 things Java programmer should learn in 2019. In this article, I am going to share some of the most popular frameworks which you can learn in 2019. 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.

Wednesday, January 2, 2019

Top 20 Books Java Programmers Can Read in 2019

Hello guys, Happy New Year 2019. We are already in New Year and while I am busy making my goals for 2019, I am also looking back on what I have done in the last year. One of the things which I would like to share with you guys is some of the books I have read in last year on Java and related technologies and will continue to read in 2019. This includes books on Modern Java, Spring, 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 this year, depending on what technologies and programming languages you are going to learn in 2019.

Tuesday, January 1, 2019

How to Remove a key value pair or Entry from HashMap in Java 8

In the last article, I have shown how to remove key/value pairs from a map in Java based upon some conditions like remove all entries where values are greater than some values. I have told you that you must use the Iterator's remove() method for removing mapping while iteration to avoid ConcurrentModificationException, but that's not required anymore in Java 8. From JDK 8 onwards, you can selectively remove mapping without iterating over Map. The JDK 8 API has added several new methods to existing interfaces e.g. java.util.Collection, java.util.Map, Comparator etc because the interface can now contain concrete methods in form of static and default methods.