Most Commonly Asked Java/JEE Interview Questions (Part-2)

In this article I will talk about next part of commonly asked Java/JEE interview questions.

Before, jumping to the list, I want to mention that It is great to be good technically, but you have to be also great on communication to succeed.

Being a good communicator will help you get the interview easier.

One of the tools will help you to write a good cover letter and email message is Grammarly’s AI-powered writing assistant

So, let’s go back to our list. 

25) What is a thin client?

A J2EE application client runs on a client machine and can provide a richer user interface than can be provided by a markup language.

An application client is typically downloaded from the server, but can be installed on a client machine.

26) Differentiate between .ear, .jar and .war files

a) .jar files

These files are with the .jar extension.

The .jar files contains the libraries, resources and accessories files like property files.

b).war files

These files are with the .war extension. 

The .war file contains jsp, html, javascript and other files for necessary for the development of web applications.

c).ear files

EAR is a file format used by Java EE for packaging one or more modules into a single archive so that the deployment of the various modules onto an application server happens simultaneously and coherently.

27) What are the JSP tag?

In JSP tags can be divided into 4 different types.
Directives, Declarations, Scriplets and Expressions

28) What are JSP Directives?

a) page Directives
b) include Directives
c) taglib Directives

29) What is Struts?

Struts framework is a Model-View-Controller(MVC) architecture for designing large scale applications. 

Which is combines of Java Servlets, JSP, Custom tags, and message.

Struts helps create an extensible development environment for the application, based on published standards and proven design patterns.

Model in many applications represent the internal state of the system as a set of one or more JavaBeans.

The View is most often constructed using JavaServer Pages (JSP) technology.

The Controller is focused on receiving requests from the client and producing the next phase of the user interface to an appropriate View component.

The primary component of the Controller in the framework is a servlet of class ActionServlet.

This servlet is configured by defining a set of ActionMappings.

30) What is ActionErrors?

ActionErrors object that encapsulates any validation errors that have been found. 

If no errors are found, return null or an ActionErrors object with no recorded error messages.

The default implementation attempts to forward to the HTTP version of this method. 

Holding request parameters mapping and request and returns set of validation errors, if validation failed; an empty set or null

31) What is ActionForm?

ActionForm is a Java bean that associates one or more ActionMappings.

A java bean become FormBean when extend org.apache.struts.action.ActionForm class. 

ActionForm object is automatically populated on the server side which data has been entered by the client from UI.

ActionForm maintains the session state for web application.

32) What is action mapping ?

The ActionMapping represents the information that the ActionServlet knows about the mapping of a particular request to an instance of a particular
Action class.

The mapping is passed to the execute() method of the Action class, enabling access to this information directly.

33) What is the MVC on struts.

MVC stands Model-View-Controller.

Model : Model in many applications represent the internal state of the system as a set of one or more JavaBeans.

View : The View is most often constructed using JavaServer Pages (JSP) technology.

Controller : The Controller is focused on receiving requests from the client and producing the next phase of the user interface to an appropriate View component. 

The primary component of the Controller in the framework is a servlet of class ActionServlet. 

This servlet is configured by defining a set of ActionMappings.

34) What are different modules in spring?

There are seven core modules in spring: 

1- The Core container module
2- O/R mapping module (Object/Relational)
3- DAO module
4- Application context module
5- Aspect Oriented Programming
6- Web module
7- MVC module

35) What is Spring?

Spring is a light weight open source framework for the development of enterprise application that resolves the complexity of enterprise application development also providing a cohesive framework for J2EE application development. 

Which is primarily based on IOC (inversion of control) or DI (dependency injection) design pattern.

36) Functionality of ActionServlet and RequestProcessor?

Receiving the HttpServletRequest

Populating JavaBean from the request parameters

Displaying response on the web page Issues

Content type issues handling

Provide extension points

37) ActionServlet, RequestProcessor and Action classes are the components of

Controller

38) What is default scope in Spring?

Singleton.

39) What are advantages of Spring usage?

Pojo based programming enables reuse component.
Improve productivity and subsequently reduce development cost.
Dependency Injection can be used to improve testability.
Spring required enterprise services without a need of expensive application server.
It reduces coupling in code and improves maintainability.

40)What are the Benefits Spring Framework ?

Light weight container.

No need to read from properties file application code.

It is much easier to unit test Objects are created Lazily. 

Spring’s configuration management services can be used in any architectural layer, in whatever runtime environment

41) What is servlet?
Servlet is a server side components that provide a powerful mechanism for developing server side programs. 

Servlet is a server as well as platform-independent and Servlets are designed for a various protocols. 

Most commonly used HTTP protocols. 

Servlet uses the classes in the java packages javax.servlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.http.HttpSession.

All servlets must implement the Servlet interface, which defines life-cycle methods.

42) Servlet is pure java object or not?

Yes, pure java object.

43) What are the phases of the servlet life cycle?

The life cycle of a servlet consists of the following phases:
Servlet class loading
Servlet instantiation
the init method
Request handling (call the service method)
Removal from service (call the destroy method)

44) What must be implemented by all Servlets?

The Servlet Interface must be implemented by all servlets

Conclusion:

I hope that this article will give you a great insight into JAVA/JEE interview questions and answers.

The responses given above will really enrich your knowledge and increase your understanding of JAVA/JEE programming.

Don’t forget the communication plays a big role in the recruiting process.

Make sure to use Grammarly’s AI-powered writing assistant for correcting your texts before sending them to your future employers.

Bonus:

By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system.

Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.

Clean Architecture: A Craftsman’s Guide to Software Structure and Design (Robert C. Martin Series)

Some related articles you might interest in :

1-Most Commonly Asked Java/JEE Interview Questions (Part-1)

2-OOP is Now The Basis of Computer Science

3- 6 Best Programmers of All Time

4-The Most Promising Fields for Programming in the Future

5-The 5 Most Used Languages for Web Development

6- The Best Way To Improve Your Programming Skill Level

7- Recommended Programming Language for Beginner To LEARN First

Connect with me on :Blog, Youtube, Facebook, Twitter

Most Commonly Asked Java/JEE Interview Questions (Part-1)

In this article I will talk about some most commonly asked Java/JEE interview questions.

1- What is J2EE ?

J2EE means Java 2 Enterprise Edition. 

The functionality of J2EE is developing multitier web based applications .

The J2EE platform is consists of a set of services, application programming
interfaces (APIs), and protocols.

2) What are the four components of J2EE application?

Application clients components.

Servlet and JSP technology are web components.

Business components (JavaBeans).

Resource adapter components

3) What are types of J2EE clients?

Applets

Application clients

Java Web Start-enabled clients, by Java Web Start technology.

Wireless clients, based on MIDP technology.

4) What are considered as a web component?

Java Servlet and Java Server Pages technology components are web components. 

Servlet is a Java software component that dynamically receive requests and make responses.

 JSP pages execute as servlets but allow a more natural approach to creating static content.

5) What is JSF?

JavaServer Faces (JSF) is a user interface (UI) designing framework for Java web applications.

JSF provide a set of reusable UI components, standard for web applications.

JSF is based on MVC design pattern. 

6) Define Hash table

HashTable is just like Hash Map, but synchronised.

Hashtable stores key/value pair.

7) What is Hibernate?

Hibernate is a open source object-relational mapping and query service. 

In hibernate we can write HQL instead of SQL, which save developers to spend more time on writing the native SQL.

Hibernate has more powerful association, inheritance, polymorphism, composition, and collections. 

8 ) What is the limitation of hibernate?

Slower in executing the queries than queries are used directly.

Only query language support for composite keys.

No shared references to value types.

9) What are the advantage of hibernate.

Hibernate is database independent. It can be used to connect with any database like Oracle, MySQL, Sybase and DB2 to name a few.

Hibernate supports a powerful query language called HQL (Hibernate Query Language).

Hibernate’s transparent persistence ensures the automatic connection between the application’s objects with the database tables.

10) What is ORM?

ORM stands for Object-Relational mapping. 

The objects in a Java class which is mapped in to the tables of a relational database using the metadata that describes the mapping between the objects and the database. 

It works by transforming the data from one representation to another.

11) Difference between save and saveorupdate

a) save()

 This method in hibernate is used to store an object into the database. 

It insert an entry if the record doesn’t exist, otherwise not.

b) saveorupdate ()

This method in the hibernate is used for updating the object using identifier.

 If the identifier is missing this method calls save().

 If the identifier exists, it will call update method.

Hibernate generates lot of SQL statements in runtime based on our mapping, so it is bit slower than JDBC.

12) Difference between load and get method?

get()method returns null if the object can’t be found. 

The load() method may return a proxy instead of a real persistent instance get() never returns a proxy.

13) How to invoke stored procedure in hibernate?
{ ? = call thisISTheProcedure() }

14) What are the benefits of ORM?

Productivity

Maintainability

Performance

Vendor independence

15) What the Core interfaces of hibernate framework?
Session Interface

SessionFactory Interface

Configuration Interface

Transaction Interface

Query and Criteria Interface

16) What is the file extension used for hibernate mapping file?

The name of the file should be like this : filename.hbm.xml

17) What is the file name of hibernate configuration file?

The name of the file should be like this : hibernate.cfg.xml

18) How hibernate or JPA is database independent ?

Database independency means writing no code dependent to the database vendor.

 Hibernate, or in general JPA, prevents you from writing code according to the Oracle specifications or MySQL specifications.

You use JPA classes and interfaces and make JPA implementation(like Hibernate) do the rest.

19) Define connection pooling?

Connection pooling is a mechanism reuse the connection.

which contains the number of already created object connection. 

So, whenever there is a necessary for object, this mechanism is used to directly get objects without creating it.

20) What is the hibernate proxy?
An object proxy is just a way to avoid retrieving an object until you need it. Hibernate 2 does not proxy objects by default.

21) What is HQL?

HQL stands for Hibernate Query Language. 

Hibernate allows to the user to express queries in its own portable SQL extension and this is called as HQL. 

It also allows the user to express in native SQL.

22) What are the Collection types in Hibernate ?

Set, List, Array, Map, Bag

Conclusion:

So this brings us to the end of the first part of Java interview questions.

These set of Java Interview Questions will definitely help you succeed in your job interview.

Thanks for checking the next part.

Good luck 🙂

Bonus:

It is great to be good technically, but you have to be also great on communication to succeed. 

Communication skills, play big role when writing documentation for frameworks and libraries, or when sending emails or slack messages to coworkers. 

They’re an important factor in how two or more people convey complex ideas and concepts to each other, which is core to collaborating as a software developer.

 And, more recently, communication skills have become an important part of software developer interviews, where most companies will check for a level of aptitude in a candidate’s communication skills.

So, it is very good to have a tool that will help you compose bold, clear, mistake-free writing.

I recommend Grammarly’s AI-powered writing assistant.

Some related articles you might interest in :

1-5 Principles Will Make your Code Robust

2-OOP is Now The Basis of Computer Science

3- 6 Best Programmers of All Time

4-The Most Promising Fields for Programming in the Future

5-The 5 Most Used Languages for Web Development

Connect with me on :Blog, Youtube, Facebook, Twitter

5 Principles Will Make your Code Robust

The 5 principles I will talk about, remain as relevant to day as they were in before.

According Uncle Bob, The software hasn’t change all that much since 1945 when Turing wrote the first lines of code for an electronic computer. 

Software is still if statements, while loops, and assignment statements: Sequence, Selection, and Iteration.

So let’s walk through the principles, one by one.

1- The Single Responsibility Principle(SRP)

Gather together the things that change for the same reasons. Separate things that change for different reasons.

We do not mix business rules with GUI code. 

We do not mix SQL queries with communications protocols.

We keep code that is changed for different reasons separate so that changes to one part to not break other parts.

We make sure that modules that change for different reasons do not have dependencies that tangle them.

2- The Open-Closed Principle(OCP)

A Module should be open for extension but closed for modification.

It about creating modules that can be extended without modifying them. 

Can you imagine working in a system that did not have device independence, where writing to a disk file was fundamentally different than writing to a printer, or a screen, or a pipe ? 

Do we want to see if statement disperse our code to deal with all the little details ?

Or Do we want to separate abstract concepts from detailed concepts ?

We want to keep business rules isolated from the nasty little details of the GUI, and the micro-service communications protocols, and the arbitrary behaviors of the database.

3- The Liskov Substitution Principle(LSP)

A program that uses an interface must not be confused by an implementation of that interface.

We have made the mistake that this is about inheritance.

It is not. It is about sub-typing. All implementations of interfaces are subtypes of an interface.

This principle is about keeping abstractions crisp and well-defined. It is impossible to believe that this is an outmoded concept.

4- The Interface Segregation Principle(ISP)

Keep interfaces small so that users don’t end up depending on things they don’t need.

We still work with compiled languages. 

We still depend upon modification dates to determine which modules should be recompiled and redeployed.

So long as this is true we will have to face the problem that when module A depends on module B at compile time, but not at run time, then changes to module B will force recompilation and redeployment of module A.

This issue is especially acute in statically typed languages like Java, C#, C++ etc.

5- The Dependency Inversion Principle (DIP)

Depend in the direction of abstraction. High level modules should not depend upon low level details.

It is hard to imagine an architecture that does not make significant use of this principle. 

We do not want our high level business rules depending upon low level details. 

We want isolation of the high level abstractions from the low level details. 

That separation is achieved by carefully managing the dependencies within the system so that all source code dependencies, especially those that cross architectural boundaries, point towards high level abstractions, not low level details.

Conclusion:

The Code that follows S.O.L.I.D. principles can more easily be shared with collaborators, extended, modified, tested, and refactored without any problems.

Bonus:

By applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. 

Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.

Get your copy using the link below:

Clean Architecture: A Craftsman’s Guide to Software Structure and Design (Robert C. Martin Series)

Some related articles you might interest in :

1-OOP is Now The Basis of Computer Science

2- 6 Best Programmers of All Time

3-The Most Promising Fields for Programming in the Future

4-The 5 Most Used Languages for Web Development

5- The Best Way To Improve Your Programming Skill Level

6- Recommended Programming Language for Beginner To LEARN First

Connect with me on :Blog, Youtube, Facebook, Twitter

OOP is Now The Basis of Computer Science

Object- oriented programming today is the basis of computer science.

In simple terms I would like to explain it with an example.

First of all think that why are we all doing programming ? and answer to this question is to solve real life problems, to save human efforts and time. 

So, imagine you are the one who have the responsibility to add cash in the ATM machine as a worker.

 So, you need to apply some logic that how many notes of 500 , 2000 or 100 you need to keep there, so the demands of the person taking out money is full filled.

Here come the approach to object- oriented programming.

Imagine yourself as an object in this real world. So you have some characteristics like height, weight etc. And you take part in solving real world problems.

On OOP the object is represented by its data, its behavior, and functions associated with it .

Simple and common example is apple is an object of class fruits and have features like red color, sweet taste etc.

OOP concept includes the 2 basic terms CLASS AND OBJECT.

For example C language uses procedural approach, the program will be executed in the flow written by the programmer.

But, using C++ or java language you can divide the problem into class and object approach and solve using functions and other features of object- oriented programming.

Now to solve the real life complex problems, object-oriented programming it provides the following features to the users:


OOP

1- DATA ABSTRACTION

Showing only the essential details hiding other details, like when you turn a switch on you just press the button but you are unaware of the wiring and connections inside.

2- INHERITANCE 

When one class can inherit the features of base class or parent class.

3- POLYMORPHISM

It is the ability of an object to take on many forms.

The most common use of polymorphism in OOP occurs when a parent class reference is used to refer to a child class object. 

4-DATA ENCAPSULATION

Wrapping up data and functions into one unit.

5- MODULARITY

We divide the program into small units to reduce the degree of complexity, and use these modules again and again according to the need of the programmer.

Conclusion:

A lot of developers criticize the object-oriented programming model for multiple reasons. 

The largest concern is that OOP overemphasizes the data component of software development and does not focus enough on computation or algorithms. 

Additionally, OOP code may be more complicated to write and take longer to compile.

Alternative methods to OOP include:

  • functional programming
  • structured programming
  • imperative programming

Most advanced programming languages give developers the option to combine these models.

Bonus:

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees.

Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship.

Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer, but only if you work at it.

Get your copy using the link below:

Clean Code: A Handbook of Agile Software Craftsmanship

Some related articles you might interest in :

1- 6 Best Programmers of All Time

2-The Most Promising Fields for Programming in the Future

3-The 5 Most Used Languages for Web Development

4- The Best Way To Improve Your Programming Skill Level

5- Recommended Programming Language for Beginner To LEARN First

6- Don’t Panic This is The Best way to Learn Programming

7- 4 Great YouTube Channels, that Will Improve Your Programming Skill

8-It is Never too Late to Learn How to Program

9-The Best Advice I Wish I know When I Start Programming

Connect with me on :Youtube, Facebook, Twitter

6 Best Programmers of All Time

In this article I am going to talk about top 6 programmers in the world of all time.

1. Dennis Ritchie

Dennis Ritchie

Dennis Ritchie was an American computer scientist who helped shape the digital era. 

He created the C programming language and with long-time colleague Ken Thompson, the Unix operating system. 

Ritchie and Thompson received the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Clinton in 1999.

Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007.

2. Bjarne Stroustrup

Bjarne Stroustrup

Bjarne Stroustrup is a Danish computer scientist, most notable for the creation and development of the widely used C++ programming language. 

He is a Distinguished Research Professor and holds the College of Engineering Chair in Computer Science at Texas A&M University, a visiting professor at Columbia University, and works at Morgan Stanley.

3. James Gosling

James Gosling

James Arthur Gosling is a Canadian computer scientist, best known as the father of the Java programming language. 

Due to his extra-ordinary achievements, Gosling was elected to Foreign Associate member of the United States National Academy of Engineering.

4. Linus Torvalds

Linus Torvalds

Linus Benedict Torvalds is a Finnish American software engineer, who was the principal force behind the development of the Linux kernel.

He later became the chief architect of the Linux kernel, and now acts as the project’s coordinator.

He also created the revision control system Git as well as the diving log software Subsurface.

He was honored, along with Shinya Yamanaka, with the 2012 Millennium Technology Prize by the Technology Academy Finland, in recognition of his creation of a new open source operating system, for computers leading to the widely used Linux kernel.

5. Anders Hejlsberg

Anders Hejlsberg

Anders Hejlsberg is a prominent Danish software engineer who co-designed several popular and commercially successful programming languages and development tools. 

He is creator of popular programming language C#. 

He was the original author of Turbo Pascal and the chief architect of Delphi. 

He currently works for Microsoft as the lead architect of C# and core developer on TypeScript.

6. Donald Knuth

Donald Knuth

Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. 

He is the author of the multi-volume work The Art of Computer Programming. 

Knuth has been called the father of the analysis of algorithms. 

He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. 

In the process he also popularized the asymptotic notation. 

Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system and the Computer Modern family of typefaces.

Conclusion:

It’s very difficult to name just 6 though. 

There are many important contributors to the world of computer science whose names are not widely known. 

But, these names in my opinion are the top.

Bonus:

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees.

Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship.

Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer, but only if you work at it.

Get your copy using the link below:

Clean Code: A Handbook of Agile Software Craftsmanship

Some related articles you might interest in :

1-The Most Promising Fields for Programming in the Future

2-The 5 Most Used Languages for Web Development

3- The Best Way To Improve Your Programming Skill Level

4- Recommended Programming Language for Beginner To LEARN First

5- Don’t Panic This is The Best way to Learn Programming

6- 4 Great YouTube Channels, that Will Improve Your Programming Skill

7-It is Never too Late to Learn How to Program

8-The Best Advice I Wish I know When I Start Programming

Connect with me on :Blog, Youtube, Facebook, Twitter

The Best Way To Improve Your Programming Skill Level

I will provide you some real practical solutions to your inability to write code.

First of all, coding is like a game and anybody can learn it if they have an appetite to create something productive. 

Being a good programmer, you can actually contribute a lot to make things simpler and better.

I think there could be two possible reasons for that :

1- You do not have a basic understanding 

 I will not be able to build a website unless I have a good knowledge about basic UI technologies like HTML , JavaScript, jQuery etc.

2- You understand coding but lack practice

Coding is all about practice, the more you practice code , the better you get at it.

So As a solution, I suggest to start from basics and give yourself sometime to absorb new concepts and keep practicing each concept until you get enough confidence. 

As a Java and Javascript developer, I would suggest you follow :

Javadocs, Head First Java book, Clean Code: A Handbook of Agile Software Craftsmanship for java programming language. And Mozilla docs for Javascript.

For example, If you try to learn Java from multiple sources at the same time then you will end up spending more time in learning a concept. 

Spend enough time on covering as much basics as you can, because that’s the only thing that will speed up your coding skill once you start learning advance technologies related to Java.

Here is a list of some technologies and languages that you can adapt based on your learning needs :

  • if you want to develop a simple static website: Learn HTML5, CSS, JavaScript in order.
  • Want to build a dynamic responsive website : Learn Angular and Bootstrap for example.
  • Want to build a simple application : Learn Core Java , .net or Python
  • Want to build an enterprise application : Learn advance java ( JSP, Servlets, Struts, Spring Framework, Web services)

Conclusion:

Think big, start small.

Start practicing code daily and try to get better at it as soon as possible.

Good Luck 🙂

Bonus:

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. 

Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship

Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer, but only if you work at it.

Get your copy using the link below:

Clean Code: A Handbook of Agile Software Craftsmanship

Some related articles you might interest in :

1- Recommended Programming Language for Beginner To LEARN First

2- Don’t Panic This is The Best way to Learn Programming

3- 4 Great YouTube Channels, that Will Improve Your Programming Skill

4-It is Never too Late to Learn How to Program

5-The Best Advice I Wish I know When I Start Programming

6–4 PRINCIPALES To Market Yourself As A PROFESSIONAL Developer

Don’t Panic This is The Best way to Learn Programming

Learning programming is fun and exciting but most people who start fail along the way and never fully realize their potential. 

Before I tell how to get started, first here are 3 reasons why most wannabe programmers fail.

1. You think it’s too easy.

 Most programmers when they about learning to code imagine that it’s all about picking up some tutorials, holding yourself up for a few hours during the weekend and you come out a professional computer programmer.

 Far from the truth. You’ll need to dedicate more time consistently to learning in order to have a breakthrough.

2. You lack real focus

For most programmers, they get started learning with no particular target or goal in mind. 

That is, they have no particular project in mind or problem that they’d like to solve.

 The excitement of merely learning something new worked up in first few hours.

 So, you need a more solid drive or motivation to keep you going, a problem you’d like to solve with this skill you are learning.

3. Too high expectations.

Ok, there is a high demand for software developers.

 In fact web developers are even in higher demand. 

But wait, this doesn’t mean companies are just going to hire you for writing a script that prints “Hello World!” to the screen.

 Getting hired actual takes more time and effort in polishing up your skills & experience, not to mention that your pay will really be low at the start

You might even have to work for free just to get that experience that someone will be willing to pay for.

So how then, how do you get started learning to code?

Here is a 3 step guide that will make your life easier than you imagined.

I. Identify your field.

There are a countless number of programming languages and you couldn’t possibly learn all of them. 

Besides, there is not a one-size-fits-all programming language.

 Do you want to venture into Mobile App development, Web development, Game development or Desktop App development? 

Each has it’s best choice of tools, so it will help you settle on a programming language.

II. Learn the basics

Once you settle on your favorite field and a programming language, get started learning the basics. 

III. Build a project

After you got the basics right, quickly get onto building something real. 

Something that can be used by someone else. Not a Todo App.

 Could be a library, framework, software, plugin or package. 

This will enable you to put your skills together and call to action your problem solving skills. 

Conclusion:

It is these actual projects that you build that will get you hired. It is what will count as experience for you.

This way you can be able to get your software career launched in the fastest way possible.

Bonus:

I am going to recommend a great book, for people who decided to begin teaching themselves how to code.

The content is clear and concisely presented in steps that gradually build on each other in a way that allows you to follow along smoothly.

Click on the link below to get your copy :

The Self-Taught Programmer: The Definitive Guide to Programming Professionally

Some related articles you might interest in :

1- 4 Great YouTube Channels, that Will Improve Your Programming Skill

2-It is Never too Late to Learn How to Program

3-The Best Advice I Wish I know When I Start Programming

4–4 PRINCIPALES To Market Yourself As A PROFESSIONAL Developer

5-The Easy and Best Way To Learn Programming

Connect with me on :Blog, Youtube, Facebook, Twitter

4 Great YouTube Channels, that Will Improve Your Programming Skill

Programming is a field that demands to be updated, and to learn new things on a daily basis.

So, The problem is to have a great resources of information to improve your skills.

I found a lot of people asking about YouTube channels, that could help them.

In this article, I will share with your 4 YouTube channels, that help me a lot on my programming journey.

1- Programming With Mosh

This is a great youtube channel to learn how to design and program.

Mosh Hamadani is a software engineer and expert on web development. 

I love his way on teaching how to structure, manage, and understand the language, framework, patterns,…

2-Udacity

Udacity, a pioneer in online education, is building “University by Silicon Valley”, a new type of online university, that teaches the actual programming skills, that industry employers need today.

3-LevelUpTuts

This is a great resource for tutorials on PHP and WordPress.

4-freeCodeCamp.org

There are tons of 2-minute whiteboard explanations of various software engineering tools and concepts on Free Code Camp’s YouTube channel.

Conclusion:

Watching videos can trick you into feeling like you’re making progress with your programming skills, but it’s a supplement, not a substitute, for actually spending time programming.

Bonus:

I am going to recommend a great book, for people who decided to begin teaching themselves how to code.

The content is clear and concisely presented in steps that gradually build on each other in a way that allows you to follow along smoothly.

Click on the link below to get your copy :

The Self-Taught Programmer: The Definitive Guide to Programming Professionally

Some related articles you might interest in :

1-It is Never too Late to Learn How to Program

2-The Best Advice I Wish I know When I Start Programming

3–4 PRINCIPALES To Market Yourself As A PROFESSIONAL Developer

4-The Easy and Best Way To Learn Programming

5-Tricks to Learning Java Quickly

6- The Best Way to Learn JavaScript,and Become A Professional (video)

7-The Best and Low Cost Web Hosting To Use

8- Angular Start to Slowly Dying (video)

9- 4 Practical Books for Software Architecture (video)

10- Professional Illustrate the Specifications before Jumping to Code

11- The Design Cannot Be Taught

12- Class Diagram is The Most Popular and Complex

13- How To Be a Great Problem-Solver Software Engineer

14-The Key to Becoming a Professional Software Engineer

Connect with me on :Blog, Youtube, Facebook, Twitter

It is Never too Late to Learn How to Program 

I have seen a lot of people in old age, wants to start learning how to program.

But, they get unmotivated by their age.

40 is a GREAT age to learn programming !

There’s multiple reasons for this. I’m assuming you’re asking for practical reasons.

Can I learn programming now and still get a job ? 

yes, you can ! 

So I’ll start with those, but then also cover some of the other benefits of learning programming, that you may not have considered.

1- Industry demand for programmers is still really high

The whole game about companies only wanting programmers under 35 really only applies heavily in the startup world (and then, only sometimes) and in Silicon Valley and perhaps maybe NYC, but to a lesser degree.

Otherwise, the demand for programmers is so much higher than the supply that I’ve seen companies just in the past 5 years, hire people with no or minimal programming background to fill the gap, mathematicians will do, is often what companies resort to.

2- 40 still is not as old as you might be thinking

Yes, neuroplasticity can tend to begin declining in your mid-thirties, but you don’t lose your ability to learn new things overnight. 

All you need is a great dose of curiosity and to enjoy tinkering. 

Step 1 to being a programmer is to sit down at your computer and start messing around with it. 

Break it, then figure out how to fix it, rinse and repeat. 

Learn how to do things from Powershell (if on Windows) or the Bash Terminal (if on Linux/Mac) and see how much you can do without relying on fancy UI’s.

Interacting with the system through the terminal is kind-of like 1st step programming, because you’re interacting with the system through written commands.

3- Neuroplasticity

The research suggests out that learning new things, help to preserve your neuroplasticity as you get older. 

Playing musical instruments and computer programming are often cited as things you could learn that accomplish this goal particularly well.

I think programming does pretty well in this regard, because it encourages continuous learning, there’s always new programming languages coming out and programming languages tend to evolve over time, and the same is true of the programming tools and frameworks you’ll use. 

So, it’s actually good to pick-up programming for your mental health, even if it’s just for a hobby.

4-Getting Better Appreciation

You’ll gain a better appreciation for and understanding of the electronic devices such as smart devices, tablet, PCs, and computers and other devices.

That will make you more aware of how much work goes into those devices and what the vulnerabilities and risks are that come with using each device.

 You will gain a lot of knowledge simply from learning to program, something like a website using a framework like spring Boot or Angular.

Conclusion:

As I said, It’s never too late to start your programming journey, you need just to have passion and patience to do it.

Good luck 🙂

Bonus:

I am going to recommend a great book, for people who decided to begin teaching themselves how to code.

The content is clear and concisely presented in steps that gradually build on each other in a way that allows you to follow along smoothly.

Click on the link below to get your copy :

The Self-Taught Programmer: The Definitive Guide to Programming Professionally

Some related articles you might interest in :

1-The Best Advice I Wish I know When I Start Programming

2–4 PRINCIPALES To Market Yourself As A PROFESSIONAL Developer

3-The Easy and Best Way To Learn Programming

4-Tricks to Learning Java Quickly

5- The Best Way to Learn JavaScript,and Become A Professional (video)

6-The Best and Low Cost Web Hosting To Use

7- Angular Start to Slowly Dying (video)

8- 4 Practical Books for Software Architecture (video)

9- Professional Illustrate the Specifications before Jumping to Code

10- The Design Cannot Be Taught

11- Class Diagram is The Most Popular and Complex

12- How To Be a Great Problem-Solver Software Engineer

13-The Key to Becoming a Professional Software Engineer

Connect with me on :Blog, Youtube, Facebook, Twitter