10 Things You Didn’t Know About Java

Many of you might have been working with Java since its beginning. And, for many of you, you might just have started working with Java. In this post, we will discuss some of the facts about Java that are useful for both freshers as well as those with more experience.


Java is one of the most dominant programming languages out there. Millions of developers and a huge number of devices worldwide are using the Java programming language; from laptops to data centers, gaming consoles to scientific supercomputers, cell phones to Internet. The reason is its simplicity and readability. Almost all native Android apps are built in Java and 90 percent of Fortune 500 companies use Java as a server-side language for backend development.


James Gosling was a developer for Sun Microsystems that was working to build a new programming language for their set-top box project in the 1990s. He originally created Oak, a language he named after the oak tree standing outside his office, which later evolved and was renamed Java.


Minecraft, the explosively popular 3D sandbox video game, is written completely using Java code. The game’s creator, Notch, chose to write Minecraft in Java because it was the programming language he was most comfortable writing. Now owned by Microsoft, there is now a version of Minecraft built using C++.


It’s one of the most popular choices as a first coding language to learn. Although it can be tough due to its complicated syntax, Java is often chosen as a first language because it teaches you more than just coding; it teaches you to think like a programmer. Students of Java will also learn foundational coding concepts that will be helpful as they move on to other languages. You can learn Java by joining any Java Course.


There is something called Java Instrumentation and Java ReflectionsInstrumentation allows you to change the already compiled classes. This is useful if you want to change the code at run time. There are open source libraries (likeAspectJ, ASM, Javassist, cglib, etc.) that allow Java instrumentation. Using reflection, you can access even private variables of a class. Similarly, Class.forName()loads a class at run time. This is very useful method that Java provides.


  • Heap: All instance variables, objects, arrays.
  • Stack: All local variables, methods only.
  • Heap: When Java program starts, it gets some memory from OS. Default size is 128 MB. It can be set by –Xms and –Xmx (for example -Xmx1G).
  • Out of memory: when JVM starts processing, initially it gets some memory (and heap) gets allocated. As processing goes on, more and more memory gets occupied. When a situation comes that there is no more space left, then an out of memory error might be thrown.


  • Java Standard Edition: contains all core libraries and functionalities
  • Java Enterprise Edition: contains frameworks and libraries to build applications that are used mostly in enterprises
  • Java Micro Edition: contains frameworks and libraries to build applications that run on micro devices, like mobiles and tablets
  • Java FX:contains graphic libraries to build rich client applications that operate consistently across diverse platforms


  • Native methods: In this method is implemented in platform dependent way, often in C.
  • strictfp methods: class or method can be strictfp. It means floating point operations are strict.
  • Transient: means skip this while serialization.
  • Volatile: it tells JVM that the thread accessing this variable must always sync its local private copy with master copy.


Java is used in more places than you might think. Google Web Toolkit compiles Java to optimized JavaScript for all main browsers, making Java a first-class language for browser-side development. Java is the main language of development for Android, and new products allow translation or compilation of Java for IOS. Java is a safe choice no matter what you are developing for.

Wrongly overloaded hashCode() of your business object can make your Collections (HashMap) fail.

This can happen if you override hashCode as below:

Return a transient type variable as hashCode.

Return time as hashCode.


What’s the best way to make money with Data Science?

Broadly, the 5 ways to make money with data science are to:

  • Get a data science job
  • Consult on data science projects
  • Build a tool for external consumption that leverages data science
  • Build a tool for your own consumption that leverages data science
  • Teach

There’s no objective way to define “best”, as it varies by person. I’ll step through each way to make money, and break down how it rates on three main axes:

  • Ease of doing
  • Amount of control
  • Moneymaking potential

This breakdown should let you make your own decision on which one is “best”.

1.Get a data science job

This can involve a significant investment in learning and interviewing. It often takes 1–2 years to learn enough data science to get one of the more desirable data science jobs. The monetary rewards can be high, but in most cases will be around what a top-tier software engineer makes.

This can be an easy option if you land at a large company with low expectations, but can be very hard if you’re in a high visibility position.

There often isn’t a lot of control over your work, although this varies by company. In a smaller startup you might be working longer hours, but in a bigger company, you might be doing less interesting work.

This is the option most people choose, and it’s a good default.

 2.Consult on data science projects

This is more difficult than getting a data science job, simply because you have to learn, then put in a lot of work to build your profile and authority. It’s also a lot of work to constantly build your portfolio and gather good reviews so you can up your rates.

Although the eventual financial rewards can be high, they’re about on par with the top-paying data science jobs. The big advantage here is more control and freedom. You can pick your clients and set your hours. The downside is that clients may expect ongoing maintenance, and you’ll have to constantly manage existing clients while finding new ones.

This is a good option after you’ve had a job, and have a network of contacts who you can ask for consulting work.

3.Build a tool for external consumption that leverages data science

This generally manifests as starting a company. An example would be a tool that analyzes a company’s website traffic, and tells them what to optimize on their site. Your goal would be to charge for this tool, and get revenue.

The initial effort is very high, and you won’t be paid a lot. You’ll probably want some money saved away before doing this. Although the eventual rewards can be high, it’s no guarantee, and it can take years.

The benefit is that you get a lot of control over what you’re doing, and you get to build your vision. Even still, you’re still accountable to customers.

This is a good option once you’ve had a data science job, and have a good idea of the problems in the industry.

4.Build a tool for your own consumption that leverages data science

An example of this would be creating a tool that automatically buys stocks low and sells high, or a tool that tells you what houses to buy so you can flip them for a profit. This can be a nice way to make money, particularly if you find a good niche.

It can be very hard to identify that niche, though, so it usually takes a lot of effort to find and tweak. It also requires a good amount of upfront money, as you’ll usually need to spend money upfront, then see it returned later.

There is a lot of control if you choose this option. As long as you’re making enough money, you aren’t accountable to anyone, and can do whatever you want with your time.

This is a good option once you have some money saved, and understand problems that could be solved with data science.


As I’ve done with Dataquest, and others have done on Udemy, or with writing their own books, teaching data science is another way to make money. In order to teach, you’ll need to build up authority and credibility, so you’ll probably need to have a job or consult beforehand.

It also has a lot of the upfront risks of a startup in that you won’t make much money for a while, as you refine your curriculum, and find the right audience.

There is a good amount of control here, as you choose how you teach, but you’re also accountable to students, and want to see them succeed.

I’d recommend this after you have a data science job, and only if you enjoy teaching.

6.The bottom line

There are quite a few ways to make money with data science, but they all involve good amounts of time investment, both upfront and ongoing. I’d think hard about what kind of lifestyle and income you want, then pick accordingly.

Top 10 PHP Tips for Developers

I have for the longest time been itching to compose an article this way, since I consider everything the time – what 10 things would I regard the most critical to pass on to another person?

1) Go OOP

On the off chance that you have not yet entered the domain of Object Oriented Programming, at that point you are off guard, and you are falling behind quick.

OOP is basically a technique for programming with the utilization of classes, or Objects, which entwine like things, evacuate the requirement for reiteration of code and play out the fundamental errands of generation just.

2) Stay Away from Anything Ending With _once()

We as a whole realize that incorporate() essentially gives us a notice on the off chance that it comes up short, while require() murders the content with a deadly mistake when it falls flat.

What we keep in mind is that include_once() and require_once() is to a great degree hard on server assets. There is nothing we can do about it, it’s the way PHP is set up.

3) Develop With Error Reporting On

The main thing you do when beginning another task is to turn mistake answering to E_ALL, and you should just turn it off ten seconds previously going to generation mode

4) Use A Framework If You Need One

Ok, so you shouldn’t use a framework because he could quite conclusively prove that a framework is much slower than normal PHP code when it came to printing a simple “Hello World” application.

Two things to mention here though: you are not Rasmus Lerdorf and I bet you won’t be building a “Hello World” application every time you program something.5) Use PHP’s Inbuilt Functions

Ok, you want to count the amount of keys in an array? You can loop through the array and simply increment a value for each iteration, right. PHP has many built-in functions that can do what you need them to, so check out the manual to make sure you are doing it in the best way possible.

6) Protect Your Database

The best and safest way is to use mysql_real_escape_string() for all database before it is added to the database. This function makes all strings safe in terms of quotes and other functions that can harm your database or contain malicious code, so use it to be sure you have taken the first step against protection of your data

7) Use POST Not GET

Ok, this isn’t always possible, but when its really not necessary, don’t use GET, use POST. The reason is simple – GET is simple to emulate, all I need to do is add something to my address bar and I can hack your project.

8) Draw Before You Code

A good practice to get into is to wireframe your projects, even if you are just scribbling a few notes on a piece of paper. It is very important to actually give the mechanics of you application some thought before sitting down to start coding.

9) Understand Your Project

A craftsman can’t draw something that he has not seen some time recently. An artist can’t sing a tune that he has not heard some time recently. You can’t code an undertaking that you don’t completely get it. On the off chance that you don’t see precisely what it needs to do, and how it needs to it, you can’t manufacture it.

10) Code

On the off chance that I could make them thing through to anybody perusing this, this is it. You can’t turn into a decent engineer by perusing. You can’t turn into a decent engineer by watching somebody create.

The unrivaled attempted and confided in strategy, is to really compose code. Be that as it may, – and here is the trap – fabricate genuine articles! Try not to go and code something that you have no enthusiasm for, or will never utilize. Assemble what you like, and you will be energized and intrigued by it, and you will learn. At that point, make it magnificent, expand upon it, and improve it.




The Secret Powers of Software Testing Automation

CIOs perceive that product testing computerization can create a major upper hand by speeding an opportunity to showcase and enhancing application quality. However, numerous IT pioneers about the most ideal approaches to release such mystery controls and make progress through testing computerization.

Cloud sandboxes can help by filling in as the basic stage for best practices in software testing mechanization. Consider cloud sandboxes as on-request, self-benefit situations that seem like correct outlines of bona fide generation settings.

Sandboxes enable analyzers to mirror the whole generation condition. This incorporates all the physical and virtual framework segments, equipment settings, applications, information, test and execution apparatuses, alongside benefit APIs.

The best part is these sandbox situations can be received on any cloud, open or private, with a single tick organization way choice. This simple procedure enables associations to move rapidly with higher quality and lessened hazard.

What’s more, trying computerization gives a basic linkage point to the whole DevOps lifecycle. At the point when test groups lead the pack, they should discover approaches to drive mechanization once again into improvement and forward into arranging and generation.

On the off chance that done appropriately, testing falls some place amidst the DevOps cycle, so it’s basic to streamline and mechanize the full scope of testing usefulness.

Here is a checklist of the top five priorities to succeed with testing automation in your datacenter:


Automating tests is not nearly as difficult as automating the underlying infrastructure on which those tests are run. That’s why it is so important to ensure the ability to automatically mimic the production infrastructure in which the software or hardware is expected to run.

By giving testers their own personal replicas of the target production infrastructure, they can ensure that the software coming out of the test can be deployed automatically and continuously into production.

The Production Environment Workload:

An overlooked aspect of testing automation is the need to mimic the full workloads that would be common in production. These can include network traffic flows, other application workloads, and network security profiles. Everything must be included or the software could break in production.

The Tests:

As software becomes more complex, the various modes of deployment present an ongoing challenge, with mobile testing replacing GUI testing as the most difficult types of tests to automate.

Reporting and Result Analysis:

To provide continuous automation from development through testing to delivery, it is critical to analyze every test result automatically. Relying on plodding manual processes to understand those results just won’t cut it.

Tool Integration:

Automation into and out of testing also needs to be enabled. This means that sandboxes and test automation suites should be API-driven to start a previous tool in the DevOps toolchain, and then to initiate other subsequent tools in the chain when the tests are completed.

After you specify the necessary features and requirements, make sure that a test gets written for every function before any coding begins. This will eliminate many tedious manual processes, while also decreasing inevitable human errors.



15 Skills Every Software Tester Should Master in 2017

software testing

Here are the 15 abilities each software tester in 2017

1.DevOps and Agile Methodology

With the squeezing interest to meet conveyance due dates, analyzers need to learn Agile and DevOps procedure because of the reality it advances community oriented and iterative working models. QA which yields astounding final result at a speedier time-to-advertise.


With the expanding complexities and mixes in the application, depending on manual testing alone can’t take care of business. For testing program similarity, execution.

3.Web and Mobile Technologies

Each analyzer should get acquainted with the web and portable innovations so they can comprehend the sort of utilization, its assembled and adaptability and apply an appropriate game-plan for its testing.


Having an inside and out learning of SDLC cycle will likewise help expect complexities in the application which can control in taking the correct measures in advance. With this, analyzers should likewise take in a few advancement techniques

5.Reasonable Analysis and Logical Thinking

So as to stay focused, analyzers ought to likewise figure out how to be balanced, investigative and intelligent since these abilities when connected while testing causes them recognize blunders, comprehend the complexities

6.Social Networking

Person to person communication aptitudes are practically required for any expert in any industry. Since interpersonal organizations give moment access to discourses, assets and substance, sharpening aptitudes here unquestionably assist programming analyzers with engaging with partners, learn new things and keep refreshed with the most recent data.

7.Testing Tools & Techniques

It is necessary for every tester to be aware of different testing techniques and usage of tools. Regardless of the domain and application type, the knowledge of different testing types likes black box testing, penetration testing, security testing, system testing, unit testing, etc. makes testers versatile.


When we talk about programming, it isn’t that testers need to work like a developer, but it is important to understand the inside out of the application so that it becomes easy to comprehend its functioning and create tests accordingly.

9.Communication – Written & Oral

Every tester should also possess good communication skills. By good communication, we mean that they should be a good writer, speaker, listener and reader to communicate effectively with stakeholders such as update the status of the project to the clients.

10.Intellectuality & Creativity

Software testing is not a routine task, instead, it is a process that requires creativity and intellectual bend of mind. Intellectuality and creativity cannot be learned, however, one can try to think out-of-the-box by questioning the application behavior and analyze different sides of the application to understand it’s working.

11.Test Planning & Documentation

Test planning and documentation skills are essential for every tester since it helps in identifying the right requirements and take appropriate steps. This skill also helps track the changes in requirements, check test processes and trace deviations and also helps in reporting and logging of work.

12.Project Management

Learning the skills of project management will instill problem-solving ability in testers. Project management skills also prepare testers to be accountable and answerable for their work to concerned stakeholders and also undertake responsibility and management the end-to-end testing project.

13.Customer Support

Unlike traditional set-up, modern day test projects demand testers to be ready for providing customer support and think from their perspectives. Being a tester does not mean that they should always remain back office for they contribute equally to the success or failure of the test project.


A good tester must also possess good reporting skills to provide the exact status of the test project and application under test to stakeholders. This practice of reporting  leads to better coordination of the overall test project which eventually helps in taking the right decisions.

15.Independent Working

Lastly, software testers should learn the skill of working independently. This will sharpen their ability to work on the task right from requirement understanding (technical and business needs) to final delivery of output.


Ten Awesome Things Most People Don’t Know About PHP

We as a whole know the enchantment traps, and we as a whole know the cool little capacities. We as a whole know the best approach to influence dates to look cool and numbers look great.

1.In part Validate Email Addresses before doing any diligent work

This is exceptionally cool when sending messages for instance. Ought to checkdnsrr() return false while you are endeavoring to send an email with this capacity.

2.Test Boolean Results with Switch

We as a whole realize that we can utilize change to test cases, this way:


switch ($a) {

case ‘a’:

resound ‘Whoopee it is A’;


case ‘b’:

resound ‘Yippee! Its B!’;



3.Variable Variables

This is my favorite accidental find in programming. What it comes down to is that a variable can have a variable name. Where would you use something like this? Well, image we have a class name that is dependent on the url in some way.


On the off chance that you haven’t utilized mysqli yet, you truly need to begin contemplating it. Mysqli takes the fundamental mysql  capacities that you more often than not wind up changing 500 times amid an undertaking, or on the off chance that you are more clever, you are making capacities for, and lays them out on a table for you – prepared to utilize.

5.Turn Off Error Reporting

Truly. When you go into generation on your site, execute the mistake revealing. You would prefer not to put every one of your notices and mistakes out there for all humanity to see. Essentially set error_reporting(0); and all is well with the world

6.You don’t always need the closing PHP Tag

It’s true. In fact, Zend Framework forbids it. PHP does not require you to close a PHP tag that is at the end of a file, or is in a file that contains only PHP. In other words, you don’t need the ‘?>’ unless you need to use non-PHP code after some PHP.

7.Extract is your friend

Ever been in the situation where you need to say something like:


$name = $array[‘name’];

$surname = $array[‘surname’];

$message = $array[‘message’];

Then you may want to recall that you can use extract() to do the same.

Put simply, extract will remove the work behind this.

.Of course, you always need to be mindful of validation and filtering, but there is a right way and a wrong way to do anything with PHP.

 8.Comment Comment Comment

If you don’t comment your code, then you should, because no one is going to take you seriously as a developer until you do. It’s that simple.


Validation is not only important, it should be mandatory. You need to validate all inputs, and outputs, and make sure that the code you are using is the best possible code it can be. There is nothing else more important.

10.Code Every Day, Build Real Things.

What this means is that he developed something real, something tangible that people would use. By thinking like this, he made it the best way he knew how. You need to do the same. Developing an application that doesn’t do anything and is never going to be used by anyone is not going to make you great.

Building something that you know has to work, has to WOW people, and make people want to pay to use it or buy it WILL make you great. At very least it will make you learn something.