Sunday, September 4, 2011

Learning Resources for n00bs: Coding & Problem Solving

Although a quick search would fetch you tonnes of learning resources. Here, are the recommended for absolute beginners like me, into the realms of problem solving;

The best part about both these online resources is that they are sorted in the increasing order of difficulties which is key to learning incrementally at one's own pace. 

Also, codechef.com runs a monthly code competition which looks really interesting.

Do share your feedback/suggestions.

Saturday, September 3, 2011

Cosmic Link


Now that free lunch is over the onus now lies on us (read Software Engineers) to gainfully utilize the computing resources available to us. It is now therefore imperative for us to develop and hone our fundamental skill sets and may be stop(OK, pause)  running after the next 'big' thing (read technology/framework).

For those of you who have not yet hit the 'dead-end' be warned. It would help you to develop your skills on;

  • Problem Solving because no matter what 'flashy' thing you know there will always be some thing new hitting you every now and then. Learning to solve problems not only makes you more employable but also makes you more confident and inspirational for others (think thought leadership)
  • The choice of Data Structures and Algorithm you employ in your applications may be all that you need to optimize their non-functional needs and nothing is more satisfying than making your application perform better.
  • While argumentatively speaking I do agree that frameworks are making us dumb but that is largely because we are always in a hurry to just complete the task without really understanding the framework internals. In not so distant past, I found it difficult to solve a bug which creeped into my code because of my incorrect understanding of java.lang.String#split(String regex) method. The problem was later identified and was mixed in matter of few seconds by merely reading (after everything else failed, and I decided to raise a bug!! ) the associated javadocs and saved myself from the embarrassment. 
  • Writing concurrent code is both error prone and difficult and till recently I didn't really face a performance issue, may be the free lunch was still available to me... but no more. Work on it.

The above piece is not only relevant to java developers for us all. Think about it knowing your DB internals(say join algorithm) will help you optimize your queries or may be if you write shell scripts knowing the correct order of filtering might put your script on steroids...

Please do not get offended by reading the above, the tone might sound prescriptive.. but is really a result of my reflections on my recent mis-adventures and is put to public notice lest you repeat them yourself.

Sunday, June 26, 2011

Just dance

Yes, I'm watching the screening rounds on Star Plus.. the candidates are from as diverse a background as one might only imagine.. their energy and sheer enthuthiasm is infectious. I don't have words to express my feelings, however, that's not the point of this piece... but the fact that it is important to be an artist in your profession be it dancing or software engineering.. practice your craft

Monday, March 28, 2011

Leveling the Threat Matrix

Almost serendipitously, I discovered some simple sentences which when put together does makes sense to me...
  • Initiative and Responsibility: Very few of us take initiative, while this is an important trait of young, energetic people and should be highly appreciated. More often than not the same people lack responsibility or step back when an avalanche of things start coming one's way.
  • Action and Control: Now is better than never, although never is almost always better than "now". One needs to be in control of things... evolutionary, step-by-step improvements keeps one in control and can help steer the direction of future coarse of actions in a more informed manner.
Simply put one of the reasons we come under stress for all the wrong reasons after all the right intentions is the eerie feeling og the lack of control... I told you, some times the universe conspires to help me discover the effective habits... it was only this time I thought it could be useful to you too...

Friday, January 14, 2011

Few observations on my blog readers

... ho ho ho the big brother is watching you!! well not really, but yes as a trained statistician and a practicing software engineer I love to observe "things", a collection of things... and try to create an empirical model of their behavior pattern.. a blue print.. and study them to put them into my knowledge stack that may or may not be used immediately.


My findings;
  • It adds to your credibility if you provide references in your write ups at proper places. It only proves that the write has done his/her home work.
  • However, merely providing the hyper-link.. like to learn more read here will not necessary be followed by your reader because
    • that may break his train of thought
    • you might risk to loose your audience
The way I see it is that it would serve the reader as well as the writer by providing the central idea around the hyper-link for the more inquisitive reader to follow without loosing his focus.

My two cents. Get leaner!!

Sunday, January 9, 2011

Innovation - Generating Ideas: The monkey's view

Not again ..not another hyperbolic session on INNOVATION but these days almost every one in my social circle at least hints about innovation. Not so surprisingly it is a constant endeavour of our species to be introspective and improve continuously, so much so that historians have even classified our cultural heritage in terms of the innovations that have distinguished them viz: the stone age, iron age.. Similarly, the role of innovation at enterprises is pretty much tied with their sustainability and even existence.
 
The dictionary defines the term in a rather half baked manner (blasphemous?!!) while it does appreciates creating the "new thing" it safely discounts the efforts gone into continuous improvement of existing "thing". Sadly the incremental or the continuous improvements made with the existing "things" meets the same fate and goes unnoticed at our enterprises.  

Also, we tend to focus more on the fruits of innovation, that is, the "product" itself and do tend to take the process part for granted and much worse "a necessary evil" at least in my software industry. It is only timely that much work of art is already published (think continuous delivery) but they are yet to make to the mainstream howsoever "agile" the enterprises may like to call themselves.

I understand by now must have already read my mind and must be wondering if I'm really going to add any value... some of the ways I think can make a good start can be summarized as under;
  • Become a producer of content.. in my limited scope of understanding I feel most of us do not write or express ourselves or take stand for the fear of being judged. Let's change that and start putting our thoughts in black and white here on blogs, comment on others blogs.. connect. Not many of our experienced leaders write. Writing is such a powerful medium that one can reach out to whole bunch of people at one time which is boon for our time-pressed industry leaders.
  • In one of my earlier post I discussed the challenges I faced to share knowledge. Some of the ways sharing knowledge can help is to come out of our stove pipe modes and satiate our higher needs of self actualization. There is this nice article which covers the subject in greater depth and also provides the relevant background knowledge. You will do good to read it for yourself.
  • Management determines the organizational climate. It can send a clear message through rewards, mentor employees to participate in open source software products, participation at technical conferences, taking engineers to customer meetings, sales team to participate in test cycles...
  • The above mentioned set of activities create and encourage the cross-pollination of ideas which can create magical results.. you never know when that bulb glows in someone's head, the EUREKA moment!!
  • Support innovators as per Seth Godin if you don't support and nurture them it simply puts spanner into the innovation engine even before it gained any considerable momentum.
 Innovation is critical to our growth and generating ideas is critical to innovation itself while thinkers must understand their responsibilities have just begun. Here I made an attempt to showcase some of the problems which should be addressed to create value added services to serve our society.