5 May 2012

Why You Need to Learn the Basics of Anything You Want to Do !

     Considering it has been a while since my last blog post, a long while, I won't assume that you have read it, so here. In my previous blog post I discussed  how I face any unprecedented issue, or a surprise paradigm shift, or a certain change in any field i am working in at the time, In this post I will  add to what I had said before. It is no surprise to anyone that whenever you wish to embark on any new field or take on any new hobby or even learning something as simple as driving you need to learn the basics first. To justify this, would be redundant but to clarify why you NEED to is not.

       Let's start off with something simple, like driving a manual transmission car. Clearly you do not require a PHD in mechanical engineering to be able to drive a car, but you do know that each gear has a limit, and once it hits that limit you need to change gears. Consider now you have learned to drive an automatic car, and then you HAD to drive a stick-shift car, would you be able to understand this ? Now that the simple example is out of the way, let's move on to a more elaborate one.

        Consider you need to adapt your marketing plan to social media. Let's say you work in the marketing department of company X, and company X has finally decided to strengthen, or even initiate it's presence on social media. But, you do not understand the fundamentals of marketing, you have learned what works when you started your career and didn't bother to dig deeper and understand the reasons why some campaigns work in some ways and others don't. You have not understood that some brands can use certain techniques other brands cannot. You have not understood the engine behind the marketing strategies that YOU have put to action in the past. Do you expect you will be able to transform company X's marketing strategy from a uni-directional one to a bi-directional one ? ( which is only the tip of the iceberg when it comes to social media ). NO. You need to dig deeper in your domain, you need to seek out the basics. The BASICS are GOLD. If you only understand the end result or the conclusion of years of thought then you have wasted all the thoughts that were spared over the years, as simple as that. Dig deeper, Learn the basics, THEN you can adapt to any change as easily as possible ( using FLAA of course :P ). Now let's get a bit more technical shall we ?

          Consider you are a web-developer. You know 1 programming language and you think you got it all figured out. Then this monster project comes along, which you would LOVE to work on, alas, your beloved programming language won't be able to handle the required. Or even worse, it can, but poorly so and you are so afraid that you do not dare try a different one that does it much better because you aren't able to learn it. Why? because you learned web-development without learning the basics of software development, without learning the old languages that are " so old who uses them anymore" well, true, no one uses them but they hold BASICS that you now see hidden in the frameworks you use and do not understand them at all. So how do you expect to understand another language, that is designed differently but in the end does the same ( like all languages ) ? You won't be able to learn it fast enough because you do not understand language design, because you have not learned the basics, because you, with your concentration on the "New Generation" languages have become, ironically, obsolete.

            In conclusion, we need the "dinosaurs" of our domains and of our fields they hold the raw gold and we have a star-shaped gold that if we chose to change into a circle-shaped one we are screwed. We need the raw gold. 


Have a nice weekend.  

11 Nov 2011

F.L.A.A.

Over the years, i have come across many issues in my career. These issues range from new untested technologies, to new and untested people. And it is with great vision that i have come to this point in my life where i have got it all figured out, not life, nor career path. Rather the drivetrain that one is to use to push through. So i came up with this rule a while back but i do honestly believe it is not until my latest ventures that i have realised the magnitude of this rule i embraced. Given that it is not such a cleverly thought rule(it is simply the obvious but put in perspective) i would like to discuss it in this article, from, of course, a developer/business man point of view.

F.L.A.A. is something i taught myself during the past few years i have been in this domain and it is pretty simple; Face, Learn, Adapt and Apply. Most of you just read that and said "DUH!", true, but you have not been able, up until now, to EXACTLY put your finger on it, let alone articulate it, ( and if you did, then good for you). I will discuss each phase from 2 points of view; One, as a developer and the other as a thriving person in the harsh business world.

FACE:


Of all the phases, THIS is the most important. I had to start with it for i have sorted these phases not by importance, but by order of occurrence, since clearly, FACING the change is the first step. Now before i proceed, you have to understand the importance of trying to put yourself in my shoes to be able to fully comprehend this. I am a 24 year old software/web (and recently venturing into mobile) developer. I wasn't born with that knowledge but i learned it over the years starting at the IRC channels at a really young age.
Through and through, i have always considered myself an underdog in this domain for one reason, "What's the point of being on top ? ". Now that reason drives me, it is for widening my horizons that i am ever so eager to embrace change in this domain. And step one of doing so, is facing the change. To face a change, one must understand the need for it; Things are moving fast, they are changing as they move, we are changing, everything is constantly changing and sticking to the "old but works" is becoming slowly, but surely, an obsolete argument because when a new technology comes out, it has it's reasons. When a new technology comes out, it has it's purposes. When you stick to old technology from fear of change... you become obsolete. One needs to understand this, one needs to understand the need for change and his need to embrace it. So, face the change, know it, read about it and converse with others about it. Understand it's purpose, and that is facing it.

LEARN:


The second step is learning, and it is like building your bridge. Sometimes we witness a shift in the paradigm, and from first look we instantly, and for a moment, lose faith in our ability to master this new paradigm, or even survive the switch. DESTROY that moment of weakness, let go of it, lay back and try to understand that paradigm shift better. Start by research, which is essential for the learning process. Then, you start IMITATING. Yes, you read correctly, you imitate your ass off. The trick is to know whom to imitate; Allow me to elaborate. Every paradigm shift has it's gurus, people that have been working on it before it came to be. The experiences of these people are priceless and since they put the paradigm shift in motion, they will be publicizing all their  experiences. GET TO KNOW THEM. Imitate how they work with this change and how they use it and for what. Keep imitating until you feel you are capable enough to ...

ADAPT:


If you are not a newcomer to the field you most certainly already have a "manifesto" , if you will, or a way of doing things, but that has to change. Your frameworks, your knowledge base and your convention rules ... don't apply anymore. BUT WAIT! this does not mean that you have to throw them away and start over, this means you have to UPDATE them. Now i say "update" and not "modify" because you really just want them to do the same thing as before, only using the new paradigm. I remember when LINQ came out ( as a .Net developer with a rich framework i have built over the years ) I had to modify my Data Access Layers. Now, i didn't change what that layer did, all i did was ADAPT to the new paradigm and make use of all the new features. The same also goes for my Javascript framework. When i decided to move to jQuery, i had to modify my Javascript framework to work with jQuery. In the process i had to let go of some of the functionalities like the "jajJS_Animate" function since it was rendered obsolete by  jQuery's "animate". One must not fear these changes/shifts, however always leave room for doubt. I doubted AJAX, therefore i did not use AJAX and still don't. I don't like it, it is very unpredictable and more consuming than it needs to be. Therefore instead of adapting to AJAX, i built my own callback framework (which i still believe is much MUCH better than AJAX). But also, instead of using XML i modified my callback framework to use JSON objects. So there always will be changes and ways to adapt you just have to find the most fitting way, because in the end you have to

APPLY:


This is the easiest phase, but also the essential end result.  What's the point of going through all that and not apply this new paradigm ?  When you finally apply this new paradigm to your work and all is working good you will find a certain sense of self accomplishment that only this kind of paradigm shift can give you. Which will in turn drive you to do it more often, as in embark on embracing newer paradigms as much as possible, learning new things, advancing and of course, FLAA-ing.

I hope this was as helpful as i intended it to be. In the end if one is stuck in an old paradigm he may never advance or get anywhere fast. Things change, the world changes and in these times faster than ever and you have to stay on your toes or else you'll drop behind.


26 Oct 2011

The Nokia N9 ... The Love of My Life!

So, i've had it for 4 days now, flipped it inside out, from phonecalls to developer mode ... and just as i assumed ... I FUCKING LOVE IT.

I think the fact that it's a "still born" as most bloggers are saying on the interweb, is the same reason i love it so much.  Just kidding, i love it because it is AWESOME, and here is why.

*BAM*

All-Touch Device

Let's start with  the touch. The gorilla glass, and the touch mechanics of the phone makes it an, all in all,  great all-touch device. The way you FEEL the screen under your fingertips and the way the navigation (SWIPE, discussed later) simply slides on seamlessly is astounding. And that all helps with the

User experience

As much as i would hate to admit it, UX (=user experience) in mobile phones started with the first iPhone, the simplicity of the UI and the way the user interacts with the apps on the device were a  game changer. Well, i am  happy to say that MeeGo just beat iOS at it's own game ... proof? There is now an app for iOS 5 to make it "feel" like MeeGo (on N9). Basically there are 3 screens, i will talk about each seperately.

Home Screen

The home screen displays notifications, the date, the weather and ... FEEDS. Feeds from your facebook account, twitter account and selective RSS feeds that you have subscribed to. One swipe from just outside the screen to inside the screen from right to left, and you land on the

Apps Screen

The Apps screen displays all the apps pre-installed and post-installed on your device. From the phone and contacts to games and utilities. Simply touch any icon and hold to move it and recustomize the whole Apps screen as you like. Again, one swipe and you land on the

Open Apps Screen





THIS IS THE PINACLE of multitasking, anyone to say otherwise would better run away now and die a slow, lonely death.  I ran up to 20 apps simulatenously and the device still handled awesomely. All because of

SWIPE

Which is  a feature to DIE for. The swipe is the N9 / MeeGo signature. When inside a running app you have 5 options. First (and second) is to swipe left or right, that will land you on the home or apps screen. Third is to swipe upwards to just below the middle of the screen and hold there, this will bring up the shortcut menu ( which you can customize with the Shortcuts app downloadable from the Nokia Store ). Fourth is swiping all the way up, this will land you on the Open Apps Screen. Fifth is to swipe all the way downwards and close the application.

The swipe is customizable using the Swipe Manager app, also for extra features that take advantage of the multitouch and swipe at the same time, check out the MyMove app. The Nokia Store is REALLY full of useful

Available Apps

As you might know, and if you don't i am telling you, the N9 ships with the official Facebook and Twitter apps for your social media needs. Native email app, Conversations app (merging SMS, native gtalk and native Skype support) and a native Feed Reader for your RSS ( specially if you are an RSS freak like me) with the option to allow certain feeds to appear on your home screen. An "Accounts" app to manage your email, facebook, twitter, gtalk and skype accounts and to manage your "Availability" when online ( online, busy, away ... etc).  The Drive app is ESPECIALLY nice to have out of the box. I had to install the Foursquare app myself, from the Nokia Store, but it is perfect and also seamlessly native-like. But my favorite out-of-the-box app HAS to be the Track & Protect app, and i really doubt i have to explain what that does. Also, the sharing ability you have on ALL kind of media on your phone is amazing, take a pic using your 8MP Carl Zeiss Tessar Camera and share directly using the share button, to facebook (no twitter support for pictures yet :S that is one of the few negative points in this phone ), MMS, email, bluetooth and

NFC



Near Field Communication is a technology that allows you to instantly share data with other NFC enabled devices simply by TAPPING the devices together, it is amazing and VERY useful, from exchanging contacts and information to playing multiplayer games or streaming media. It is such a slick and baddass phone... but, like all devices, it has its

Downsides

Who am i kidding :S they aren't really that much downsides as much as they are, just ... mishaps, if you will. As i mentioned before, i cannot share pic to twitter using the native twitter app, but some thrid party apps have that feature, also whatsapp is not supported but that is really not Nokia's fault, it's the idiots at Whatsapp's fault. There are only few apps, YET, in the nokia store, but the dev. community is working hard on that, plus all the essentials and a bit more, are there.

I loved this phone, it is a beautiful device, runs a wonderful OS and has been UBER useful to me from reading feeds to checking my work mails and using the calendar, the Drive app, facebook, twitter and foursquare, chatting and making VOIP calls using both gtalk AND skype services. Oh! did i mention that one of my favorite apps, is the WiFi Hotspot? This app allows you to turn your phone into your own, portable wireless router to share your 3G with up to 5 devices ( laptop, tablet or any device capable of wifi).

I hope you liked my review, although i have to admit it IS a bit biased but the phone is REALLY that good i promise you.

EDIT: There is a software update coming out soon with a LOT of new features, i will discuss them in another review when it's out.