Tech Tips Digest: 4


Back on track covering my published Tech Tips, thank God!

Today's post discusses some interesting topics covering basics mostly neglected or forgotten along the way.


Previous Tips: Tip No. 1 | Tip No. 2 | Tip No. 3


Tech Tip No16: Try to read as much source code as you can, there are plenty of open source projects out there, learn from others!

In my own humble opinion, reading enough books on the software development is a good thing to do, but then the next best thing along with that would be practical experience.

This awesome industry of ours has been going on for quite some time with tons of source code published online freely on services such as but not limited to sourceforge.net, codehaus.org and code.google.com, it might be a really good idea to start exploring some of that published code and learn from what others had to invent or go through.

That way you'll be absorbing the experience of others, if you think it's worth it, then go for it!


Tech Tip No17: Don't ever roll-out changes in a hurry, you might make major mistakes that'll make things worse!

Sometimes you'll notice and at the last minute that you've forgotten a certain bug fix, perhaps a minor change to a feature and so on, and you'll be so much tempted to just implement it while trying to buy time from the other stake holders telling them it can be easily done and that you're confident about being able to deliver.

My advice is, just drop it! from my experience, seven or eight out of ten times, you'll forget a certain check, validation or something else, that'll make things worse for you and the whole team!

I do understand that some people do perform well under pressure, but unplanned last minute changes pressure isn't a good thing at all, you're going to be more inclined to forget stuff!

Your best bet is to simple schedule the fix or change for a later release date.  


Tech Tip No18: Always use the right tools. Don't think that using the latest technologies out there would solve all your problems

Some people might be inclined to use the latest technology out there. You might feel tempted with all the flashy propaganda surrounding all those new releases.

But in the end it should always boil down to your needs really, why use a fully fledged Object-Relational Mapping API (ORM) such as Hibernate (Which I really do like a lot :-p) when you're application only needs some basic JDBC calls!

Think enough about your needs then perhaps conduct some proof of concepts to get to know what some of the popular tools have to offer then make an informed choice.


Tech Tip No19: Focus on the basics OOP, Algorithms, Data Structures ... etc. Everything else, is just syntax and APIs' to learn

I came to believe that at least here in Jordan the whole college system and how most companies operate drives engineers towards what I call "Blind Programming".

Let me elaborate on this, we spend 4 years learning really interesting stuff like Algorithm Design, Data Structures, Operating Systems ... etc. and most students would only try hard enough to pass paying no attention to real value of those subjects in real life, there's simply no connection between what they learn in class and real life problems.

So when they're finally graduated and having landed their first job, they'll simply neglect most of those basic principles, and end up creating software systems that by any standard simply performs badly and consume more memory and CPU than it should! Let alone the maintenance headache!

This is why I keep insisting that we should all pay attention to basics, because everything else is simply syntax to remember.


Tech Tip No20: Think it through, create some blueprints then start implementing, don't just jump right in, you might just drown!

Many times you might be very much excited about a new feature or module that you want to create that you simply drop the design phase and basically incorporate it throughout the development process. Fixing things as you go down the road!

This might work out just fine for simple projects, but if not properly carried out, you might end up with little to no documentation and no solid reference to what you've accomplished.

So, I recommend a minimal to fully fledged planning prior to starting development, depending on the scale of the feature you're about to create. This'll save you a lot of hustle later on :)


Hope you enjoyed this article and the ones before. Drop a comment and let me know what you think!

Comments

Popular posts from this blog