October 31, 2014

Improving skills. Improving the content

It's time to make things better. And i will, trust me.

I apologize if I've not been sharp enough, or detailed enough in this blog's past publications. That's gonna change now, since this blog is getting more trust, and more followers, so i am committing right here, right now, to do a trustable, decent quality, competent blog.

You may wonder what's my main subject on this blog: It's not a single thing, but a group of many. 

What you can find in here, is a day-by-day programmer's summary, along with actual subjects discussions, articles, links, and more. I use to put my personal touch on my words, and many times i try to encourage my public to keep fighting if you are on the same place i am now. That's not gonna change. But the deepness in some articles, or the sharpness in others, will adapt.

So, what's new?

Jumping on the skills improvement subject, I've been making some progress in my algorithm course. Last two assignments i got a 100% score, which of course I'm proud of, but moreover I'm learning how to focus a single task inside a program to a specific application resulting on a faster, more precise one. For example, let's compare some of the last ones:

- Binary search (in an ordered array)
- Red-black tree

Those 3 are a lot like the same, except for some functions, and memory/computation cost. You have to vary some abstract concepts, and once you understand how the schematics works, you change the implementations to get a different behaviour of the program. That means you can go from 500.000 seconds to insert a new item inside a Binary tree with 1.000.000 items already inside it... to a nice 20 seconds outcome. That's huge, right? Well, there are way bigger differences between other algorithms, and sometimes you can use the slower ones because they provide order, and stability, or just because they are gonna manage small size input, besides it's gonna be easier to write it down inside a program. In other situations it can justify to use them for a simpler client program. But here and now, in present day, what's most needed is: size + speed optimization.

We are living in an electronic mobility environment. And from now on, people will be looking for dynamic, fast, good looking applications, whether they are web or mobile oriented, games or professional ones. So you need to review your algorithms to fit the requirements this society will be demanding from your work. 

Since i care about my subscribers, I recommend you to apply to some online course about that matter, in particular coursera.org has many interesting courses. I've done Princeton algs4 online course, and that was very inspiring not only for me, but for people i talk to about this subject.

Remember, quality is good, quality plus precise content is better. And that applies to programming as this applies to life.

Thanks for reading. See you next week!

No comments:

Post a Comment

Speak up your mind. We build and "program" this world together ;)