Tuesday, April 30, 2019

Grokking Algorithms Book Review - Best Data Structure and Algorithm Book for Beginner Programmer and Computer Science Students

Hello guys, I have read many books on data structures and algorithms like Introduction to Algorithms by Thomas H. Corman and Algorithm design manual by Steve S. Skiena, so when I come to know about this book, I thought, just another book on algorithms, but I was wrong. This is not just another book on algorithms but one of the most interesting books you will ever read on Algorithms and Data structure. It doesn't cover all the data structure and algorithms you see in Computer Science but whatever it covers, it does really well and that's what matters most for beginner programmer or Computer Science students.

Top 5 Courses to Learn Shell Scripting in Linux and UNIX Online - Best of Lot

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.

Monday, April 29, 2019

A Better way to write SQL queries for Programmers

There is no doubt that writing code is more art than science, every coder cannot write beautiful code which is both readable and maintainable, even with experience. In general, coding improves with experience when you learn the art of coding e.g. favoring composition over inheritance or coding for interface than implementation, but only a few developers able to master these techniques.  Same applies to SQL queries. The way you structure your query, the way you write it goes a long way to communicate your intent to the fellow developer. When I see SQL queries on emails from multiple developers, I can see the stark difference in their writing style.

10 Example of lsof commands in UNIX and Linux

It's been a long time since I have written anything on UNIX or Linux commands, but today I'll talk about the lsof command, a utility command every system admin and developers love. The lsof command stands for list open file descriptors and as the name suggests, it is used to find open files by process. Since almost everything in UNIX are file, you can use lsof command to find an open regular file, a directory, a symbolic link, a block special file, an NFS mounted file, a socket stream, a shared library, a character special file, a regular pipe, a named pipe, an internet socket, a UNIX domain socket, and many others. I have mostly used it to find all the files opened by a particular process, which I will show you in the coming section.

Sunday, April 28, 2019

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.

5 Spring Framework Books Experienced Java Developers Should Read in 2019

The Spring framework has changed a lot in last a couple of years. 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 the software world is changing the 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.

Saturday, April 27, 2019

find + du + sort + head command example in Linux - Searching large files and directories in Linux to free some disk space

Hello guys, 100% full disk space is a common problem and as a programmer or Linux user, you often need to free disk space by deleting biggest files and directories. In order to do that, you need to know some Linux find command examples to list and delete some biggest files and directories and that's what you will learn in this tutorial. As a Java developer, you also need to also support your application, most of which mostly run on Linux machines. Though production is monitored by the dedicated support teams and they receive regular alerts on the status of file system space, they often come running to you or the developer responsible about what to do when disk space is almost full or reaching 100%.

Friday, April 26, 2019

Top 5 Programming Languages Programmer Should Learn in 2019

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 languages 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 an engineer who has good experience with multiple languages e.g. C++ and Java goes quite well, so is Python and Java. I personally like Software Engineers who have strong experience in either C++ or Java and can write scripts in groovy, Perl or Python.

Thursday, April 25, 2019

5 Career Path for Senior Java Developers in 2019

If you are an experienced Java programmer which has done a good amount of coding and development i.e. someone with more than 5 to 8 years of experience, working as a senior Java developer or a technical lead and wondering how to grow to the next level then you have come to the right place. In this article, I'll share five career options experienced developer like you can choose to take your career to next level. Apart from becoming a project manager which is what many programmers chose, there are other more technical and better career opportunities are available now. It's especially great for Programmers with less or no people management skills or who love coding and development and always want to remain hands-on.

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, April 24, 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 10 Tutorials to Learn Big Data and Hadoop Online

Hello guys, if you are looking to learn Hadoop and looking for some awesome tutorials to start with then you have come to the right place. In this article, I am going to share some of the best resources to learn Hadoop, including tutorials, books, and online courses. You can use these resources to learn Hadoop at a time and place convenient to you.

Tuesday, April 23, 2019

Top 5 NoSQL Database Programmers Should Learn in 2019

Though it's not mandatory for a Java or Web developers to learn NoSQL database the world is moving in that direction and both Java and Web developer should be familiar with NoSQL databases. If you are wondering what is NoSQL database means then here is a quick overview. A NoSQL database refers to non SQL, non-relational or not only SQL) that provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases. With Spring 5 introducing Web-Flux a new non-blocking web framework, the use of NoSQL database will only grow, but the big question is which NoSQL database to start with?

Monday, April 22, 2019

How to find and kill a Process Listening on a port in Linux? netstat and lsof command examples

In Linux, many times, you want to find out the PID of a process which is listening on a port e.g. if multiple tomcat servers are running on a host and you have to kill that process, but in order to kill that process you need the process id, how do you find the PID of the tomcat listening on port 8080? There are many Linux commands to find the process using a specific port, but I'll share what I use. I always use the netstat command with -p option, which displays process id of the process listening on a port. Btw, netstat is not the only command to find all processes using a particular port, you can also use the lsof command for the same purpose.

Top 5 JUnit and Unit Testing Courses for Java Programmers

Hello guys, today, we'll talk about JUnit and Unit testing, one of the key skill for any Software developer. You may already know that JUnit and Mockito are two of the most popular testing libraries for Java applications and you will find them in almost every Java application classpath. I often meet and work with Java developers who know Java well but haven't written a single unit test. When I ask them why don't you write unit tests, they come up with many excuses like they don't have time for writing unit tests, there is always deadline pressure and some of the honest guys will tell you that they tried writing but give-up after 10-15 minutes due to difficulty in testing their code.

Sunday, April 21, 2019

Top 10 Free Courses to Learn Python in Depth - Best of Lot

There is no doubt that Python is currently the world's #1 programming language and the biggest advantage of that is it's bringing more and more people into the programming world. In recent years, I have seen more people learning Python than any other languages, yes, not even JavaScript. Many of them learning Python to explore some awesome Data Science and Machine learning libraries provided by Python. Some people are also learning Python for web development and there are still many developers who are learning Python for scripting and automating trivial tasks. It doesn't matter why you are learning Python at this moment, it's a great thing in itself that you have decided to learn Python.

Saturday, April 20, 2019

How to share your Programming Articles on Javarevisited for more Exposure

Hello, Friends,
I have been writing Java articles for a long time and one thing I have learned from that experience is that learning makes you a better Programmer and Software developer. It's also one of the important tips I have shared on how to become a better programmer article long back. It seems many people like that and contacted me about that but their main difficulty was that after writing one or two articles they get frustrated because no one was reading it. Well, I can understand but it takes a lot of time and effort to build a following. I am fortunate and really grateful that Java community has given me so much love and that's why I have decided to do my bit to promote and encourage every new Java programmer/writer/blogger to the best I can.

Friday, April 19, 2019

Top 5 SQL and Database Courses to Learn Online in 2019 - 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.

Thursday, April 18, 2019

The 2019 React Developer RoadMap - Your Guide to become a Modern FrontEnd 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.

Wednesday, April 17, 2019

10 Things Every Programmer or Computer Science Engineer Should Learn

If you have been programming for some time and looking to learn to programme then you might be thinking about what makes a good programmer? What a computer science graduate can do to prepare for a career in software development and programming? What are the things expected of a junior developer are some of the common questions I receive from many students on Facebook and Emails who follows me. These are mostly college students who now have access to a wealth of information thanks to the internet and eager to learn things in advance to prepare for their programming job interviews.

How to Find Middle Element of Linked List in Java in Single Pass

ow do you find the middle element of LinkedList in one pass is a programming question often asked Java and non-Java programmers in telephonic Interview. This question is similar to checking palindrome or calculating the factorial, where Interviewer sometimes also ask to write code. In order to answer this question candidate must be familiar with LinkedList data structure i.e. In the case of singly LinkedList, each node of Linked List contains data and pointer, which is the address of next Linked List and the last element of Singly Linked List points towards the null. Since in order to find middle element of Linked List you need to find the length of linked list, which is counting elements till end i.e. until you find the last element of Linked List.

Tuesday, April 16, 2019

5 Best Online Courses to Learn Data Structures and Algorithms for Programmers and Computer Science Engineers

Both Data Structures and Algorithms are one of the most important topics for programmers. The best thing about them is that they never get out-of-date and any investment you made in terms of time and money will pay rich dividends for a long time. I have also found that people good at algorithms and data structures are often a better programmer than others. They tend to improve your programming skill and coding sense and that's the main reason I suggest all kinds of programmers, from junior to senior to spend some time revising, refreshing and honing your data structure and algorithm skills. Most of us first heard about them in school and colleges but didn't understand at that time. At least I can say that for me. I first heard about array and linked list on my engineering college.

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.

Monday, April 15, 2019

How to Count Number of Leaf Nodes in a Binary Tree in Java - Iterative and Recursive Solution

Hello guys, today I am going to talk about an interesting binary tree based coding problem from Programming Job interviews. If you have attended a couple of technical interviews then there is a good chance that you already have seen this question about counting a number of leaf nodes in a binary tree. If you know how to solve this problem then it's well and good but if you haven't don't worry, you will learn in this article. If you follow this blog then you might know that I have discussed a lot of data structure and algorithms problems here, including array, linked list, hash table, binary tree, and binary search tree. 

Sunday, April 14, 2019

Top 5 Free Kubernetes courses for DevOps Engineers and Programmers

Hello guys, DevOps is becoming an essential skill in today's Programming and Software Development world and Kubernetes is an important concept and tool for DevOps Engineer. It takes container based deployment to another level and allows you to manage it on the scale. You can use Kubernetest to scale your container environment or let Kubernetes do all the work for you by leveraging its auto-scaling feature. Many DevOps beginners think that Docker and Kubernetes are the same but they are not. Docker provides a container to deploy your application and commands to interact with those but container but Kubernetes is actually a container management technology, which decides how many containers are needed and deal with other management aspects.

Spring Boot Error - Error creating a bean with name 'dataSource' defined in class path resource DataSourceAutoConfiguration

Hello guys, If you are using Spring Boot and getting errors like "Cannot determine embedded database driver class for database type NONE" or "Error creating a bean with name 'dataSource' defined in class path resource ataSourceAutoConfiguration" then you have come to the right place. In this article, we'll examine different scenarios on which this Spring Boot error comes and what you can do to solve them. The general reason for this error is Spring Boot's auto-configuration, which is trying to automatically configure a DataSource for you but doesn't have enough information. It is automatically trying to create an instance of DataSourceAutoConfiguration bean and it's failing.

Saturday, April 13, 2019

How to generate an Array of Prime numbers in Java - Sieve of Eratosthenes Algorithm Example

Hello guys, I have said many times that a good knowledge of Data Structure and Algorithms is the first step towards becoming a better programmer and that's why I share a lot of Data structure and Algorithm stuff in this blog. To continue the tradition, I am going to share an interesting algorithm today, The Sieve of Eratosthenes algorithm, which can be used to generate prime number up to a given number. There are many occasions when you need to generate all prime numbers up to a specified integer and one algorithm which is most often used to generate prime numbers is the Sieve of Eratosthenes Algorithm. Surprisingly, not many developers know about this algorithm, particularly Java programmers, which is mainly because not doing enough competitive programming.

Friday, April 12, 2019

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

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

Thursday, April 11, 2019

Top 8 Python Libraries for Data Science, Machine Learning, and Artificial Intelligence

Hello guys, today I am going to talk about something which is not related to Java but a very interesting technology development which is happening around and you simply can't afford to miss out this opportunity. Yes, you guessed it right, I am talking about Machine learning, Artificial Intelligence, and deep learning. There is a good chance that you might have already heard about them and even started learning them. You may be either form Python camp or learning R programming for the sake of machine learning. When I started my journey of Machine learning and Data Science, I had to first make a choice about choosing the right programming language as both R and Python were doing great.

Wednesday, April 10, 2019

Top 6 Free Online Database and SQL Courses for Programmers

Hello guys, we are already in the first week of New year and everyone is talking about their goals to improve them as a better person, a better programmer, or get better health. If you have also made your goal and one of them is to improve your SQL skill then you have come to the right place because I am going to share some of the free courses to learn and master SQL this year. As you already know, SQL is one of the essential skill and much more important than any fancy library or framework you are thinking to learn.  If you ask me which two skill every programmer should have, I would say SQL and UNIX, these two have survived for a long time and will survive for many coming decades. SQL is also very interesting, once you get a hang of it, you would love to write queries and analyzing the performance of your queries.

Tuesday, April 9, 2019

How to find the largest and smallest number in given Array in Java

Hello guys, today I am going to discuss one of the frequently asked programming interview questions to find the largest and smallest number from an integer array. This question is commonly asked on telephonic interviews and the first round for screening candidates. This coding problem is in the same league of other frequently asked algorithmic question like Fibonacci, Palindrome, Prime, and Power of two checks. They are easy but you will find them difficult during the interview because of the pressure, particularly if you have not solved them before. Sometimes even if you have solved the problem one time, you tend to do mistakes because you haven't understood them properly. So, always take your time to understand the question.

Top 5 Unity Game Development and Certification Courses for Programmers - Best of Lot

Hello guys, if you don't know Unity is a powerful game engine which allows you to build both 2D and 3D games for PC, Mac, and Console. Many popular games of last decade like Temple Run Trilogy, Rust, Wasteland 2, Pokemon Go, and Angry Birds 2 were built using Unity game engine. Unity is also a cross-platform game engine which means you can create games for multiple platforms like Android, iOS, MacOS, PC, Linux and even popular gaming consoles like Xbox among others. Unity Game engine also allows you to create both 2D and 3D games and provides several useful features to make your game truly amazing.

Monday, April 8, 2019

How to find the 3rd (kth) Node from end or tail in a linked list in Java

Hello guys, the problem to find the 3rd element from the end in a singly linked list or Kth node from the tail is one of the tricky but frequently asked linked list problems in Programming job interviews. I know you can easily solve this problem by moving from tail to head or in the reverse direction but the main challenge here is to solve the problem in just one pass. That means, you can not traverse the linked list again and you cannot traverse backward because it's a singly linked list. So what do you think? Isn't this problem challenging? Well, I did struggle when I saw this problem very first time but once you understand the logic and some tricks to solve a linked list based problem like Recursion then it would be easy for you, and that's what you will learn in this article.

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.

Top 5 MongoDB Online Training Courses for Programmers and Web Developers

MongoDB is one of the leading NoSQL databases and it was on my radar for a long time but I never get a chance to learn or work on it, but Recently I got an opportunity to use MongoDB for one of our projects and I learned a lot on the way. In this article, I will introduce MongoDB and how to learn MongoDB so that you can use it in your project. In this article, I will share some of the online courses which I have taken to understand everything up to the basic CRUD (Create, Retrieve, Update, Delete) operations on MongoDB. I have also read a couple of books and followed some tutorials but these courses were my main source to learn Mongo DB.

Sunday, April 7, 2019

How to declare and Initialize 2D or two dimensional int and String Array in Java

Declaring a two-dimensional array is very interesting in Java as Java programming language provides many ways to declare a 2D array and each one of them has some special things to learn about. For example, It's possible to create a two-dimensional array in Java without specifying the second dimension, sounds crazy right? but it's possible because two-dimensional array in Java is nothing but an array of array. You can even create a two-dimensional array where each subarray has a different length or different type, also known as a heterogeneous array in Java. This means it's possible to create a two-dimensional array with variable column length in Java.

Top 5 Web Development Courses for Programmers and Software Engineers

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.

Saturday, April 6, 2019

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

Friday, April 5, 2019

How do you find length of a Singly Linked list using Loop and Recursion

Hello guys, here is one of the classical programming questions how do you find the length of a linked list using recursion and without recursion. This is not the about the LinkedList class of Java API but the linked list data structure which is made of nodes which contains both data and address of the next node. In order to calculate the length, you need to count all nodes in the linked list. Since it's a singly linked list you can only move in one direction from the head to tail.  This coding problem was asked to me on my first interview with a multinational Investment bankAfter that, this question has been asked to me on several occasions in other Programming Job Interviews as well.

Top 5 Courses to learn JVM Internals, Memory Management and Performance Tuning in Java

For a senior Java developer, it's very important to know how JVM works and how to troubleshoot issues with respect to memory, most notably memory leaks in Java applications and servers like Tomcat. You might be thinking how come memory leak in Java? isn't memory is managed by JVM and Garbage collector? Well, that's true but poor coding or just a bit of carelessness can cause memory leaks in Java. If you don't know about how to configure JVM, troubleshoot memory related problems on heap and stack, you will struggle at a higher level. That's why it's very important for experienced Java developers to spend some time learning these advanced skills as their experience grows.

Thursday, April 4, 2019

Strategy Design Pattern in Java using Enum - Tutorial Example

Hello guys, how are you doing? I hope you all are fine and doing good in your life and career. Today, I am going to talk about the Strategy pattern, one of the useful design and coding pattern which will help you to write flexible code. The code which can withstand the test of time in Production. I'll also teach you how you can use Enum to implement the Strategy design pattern and Open Closed design principle better in Java. I have said this before that Java Enum is very versatile and can do lot more than you normally expect from it. We have seen a lot of examples of Enum in my earlier posts like writing thread-safe Singleton using Enum and 10 ways to use Enum in Java.