Saturday, 29 October 2016

Introduction

Okay, over the past few years, I have stumbled into the fascinating world of programming. My first experience in programming was during my third year in university when we were taught C++ from a book we used to call "Barbara Johnston"... 

Oh those days!! It was fun and great!! And did I mention I aced it?  

And since then, I had a thing for programming, I told myself I should learn more. I picked up a book on java (I will never forget that legendary book), Java How to Program by Paul and Harvey Deitel. I call that book legendary because it possessed the very fundamental of object oriented programming with java. It was a book for dummies, teachers and advanced programmers who wanted to refresh their memories pertaining to some core java fundamentals. That book taught me how to code. 

I decided to enroll myself in NIIT, an IT training center in Nigeria that supposedly would help "build my fundamentals in java". Long story short, it did not. I soon realized that this was a battle that I had to fight on my own. Programming in java was a seemingly difficult task for the average lecturer/teacher and sometimes, as a student, you will be wondering... 

"when the heck i'm I going to learn something?"
Do not get me wrong, It's not that the teachers did not do a good job, it was just that my knowledge far exceeded the basics and what they were offering was... well... the basics. In order to take that leap to the next level, I just had to challenge myself.

Now this is the fun and frustrating part. I decided to take up learning Java EE. Java EE about 4 years ago was hectic and monotonous when it came to developing applications. Most components needed came with the server and you could not have access to those components and functionalities without a server capable of that. Every one remembers Glass Fish all too well. I'm so not getting into that. My point is, the power of the J2EE specification rested on the servers and forced developers to use certain servers.

Now developers like me usually want the simple easy to use infrastructure like Tomcat, Jetty and so on. Why would I bother myself installing mighty application servers like JBoss and the like for a small application when I needed a certain functionality? At an infant stage, I began to hate web development. It was static, bulky and monotonous. Oh, did I forget to tell you about Java Server Pages? I so do not want to go there at all.

And then came Spring, like a light to the tunnel that shone rays of sunshine to the bleakness of my programming life. And no I'm not talking about the monotonous xml'ish nature of Spring 3.0, I'm talking about the heaven of java configuration enabled programming with Spring 4.0. What spring primarily brought to the table was dependency injection. A powerful concept that leaves the part of creation and management of objects to the application container. A lot of boiler plate code was removed, applications could easily become configurable and in short, it was heaven. In addition to this, the modular nature of the spring framework enabled the spring developer to use only the libraries that he or she wanted and not bother about packing the whole wardrobe when its only a T-Shirt and trousers that was going to be used. And you know the best part, I did not have to use servers with all the implementation of the J2EE specification! All I needed was a simple server that implemented just the servlet specification and well... spring provided the rest.

In addition to all these, spring added to the table aspect oriented programming, spring data, spring batch, spring rest, spring integration and a whole lot of other things that would enable you to achieve anything just by using spring.

Long story short, this, coupled with other cutting edge technologies changed my life and perspective of programming. In my next posts, I hope to change the lives of my readers by showcasing the awesome power of spring, java and other java related technologies that I find interesting. I also want to ensure that my readers will not get the crappy (I mean basic) standard of knowledge I got when learning how to code. I am still learning though, but, what the heck, its fun to teach and learn at the same time!

Stay tuned and be ready to be infected with the disease of java programming!!