Computers have been around us for along time, and even now more electronic devices in the forms of tablets, mobile phones, smart watches, etc are starting to get popular bringing together this new notion that is starting to be defined as the internet of things. More and more, we have more devices are starting to be interconnected between each other through the internet on a large broad of networks which start to produce large amounts of information. This were the concept of Big data processing is also gaining a big momentum.

Most of you will ask, what does this have to do with the title of the post? Well, all this technologies have something in common and is that most of it services are based on software elements which where coded by someone in the end. This is why coding is important in technology as it allows us to create all this cool things. Not even that, one of the most demanding media entertaining markets; videogame are based on software and coding skills to bring virtual worlds to life.

This brief introduction is to clearly state that if you are someone approaching to achieve a major in computer science, information technology or you want to become a software engineer, you will need to code at sometime coding will be your greatest and most valuable tool and you need to become good at it. Why is that? Well lets take for example a carpenter, his role is to build great and elaborate things out from wood by using the tools available to it. What makes the difference of a good from a bad carpenter is that no matter the tools you give him, his art quality is directly related to how good, his carpenter skills are. So In order for this carpenter to become an expert, it mostly depends on how much dedication and effort he focuses on improving his carpenter skills.

This is similar to software, in order to become better at coding; you need to practice along the way. Luckily with the ourburst of the internet, there is a wide range of resources where we can get started ourselves quite easily.

Here I give out some tips:

- Learn a language which you like: Luckily, I learned Java at university which was a good choice to start with and also you get grasp on Object Oriented Programming (OOP). There are other nice options like Python (quite simple also). C++ is also interesting but from my point of view it might be to rough to those who are a bit unsure how to program. The important here is to motivate yourself using a tool that you feel like home. Also now with Massive Online Courses like coursera offers, one can easily pick a language and try it. Even better, have a look at this link and pick your language! http://programming-motherfucker.com/become.html

-Follow some tutorials/books: There are many websites with a vast amount of resources, if you take Java; I recommend the oracle Java tutorial which it is quite good. If you go for python, read "learn python the hard way" very good resource.

-Compete in programming competitions: This is one of the best ways to learn programming and in the same way, you learn and develop problem solving skills. There are plenty of puzzles out there that do not need very complex solutions but they do require some previous knowledge in algorithms. Still try to solve the problem and break it up, is hard and there is a reward in the end which is receiving your own satisfaction after been capable of solving extreme challenges you never thought before. There are some sites which allows you to solve problems of this type, I recommend TopCoder, CodeChef and CoderCharts to start with.

-Take an algorithms course: This courses are fun in the end as you learn techniques to solve problems that seem impossible with a couple of lines of code! Also it is key for solving complex problems in programming competitions. Now with coursera, there are many courses in this area and they are of course free to take!

This few tips, will give you a head start on your career path on IT and technology!

A month has passed since my thesis defense and now I finally got my grade after so much time. Now, my next step is to prepare my thesis in order to be accepted back in my home university (yeah, this means tedious and boring paperwork...). Although it seems a boring stage, I am still having some fun around at SICS in kista in the BioBankCloud project where my architecture will be put into practice. This was one of the main motivations of the development of the KTHFS architecture, a distributed file system in order to store the biological information stored in a DNA sample. This is translated in handling possibly petabytes of metadata corresponding to DNA strands.

So finally, for the people interested; you may find a copy of my thesis here. You may find it also in KTH thesis portal, once they upload it. In future posts I will try to explain how the technologies related to my thesis work together. I hope you enjoy it.

EDIT: It has been finally uploaded on diva KTH portal, you can access it from here

A couple of weeks has passed since my last post, but still I am trying to keep a reasonable trend when writing my posts so I do not forget that this blog exists.

Now lets go to the meat of today's update, as I mentioned previously in one of my posts; I just recently finish my Master studies and now it is time to look further on how I want to develop my professional career.

While in my search of further professional and interpersonal development, this book's recommendation made its appearance after some search around the internet.

"How to win friends and influence people" originally written by Dale Carnegie brings you an extended comprehension of how social beings like our selfs tend to react in our routines, and; from this initial point it starts to show a series of rules focusing on different social aspects in which improvement can be done. A small summary of the books points is as follows, of course they are the titles of each chapter but in the end there is a recap of the main idea behind each title:

  • Fundamental techniques in handling people
    1. "If you want to gather honey, don't kick over the beehive."
    2. The big secret of dealing people.
    3. "He who can do this has the whole world with him. He who cannot, walks a lonely way."
  • Six ways to make people like you
    1. Do this and you'll be welcomed anywhere.
    2. A simple way to make a good impression.
    3. If you don't do this. You are headed for trouble.
    4. An easy way to become a good conversationalist.
    5. How to interest people.
    6. How to make people like you instantly.
  • Twelve ways to win people to your way of thinking
    1. You can't win an argument.
    2. A sure way of making enemies and how to avoid it.
    3. If you're wrong admit it.
    4. The high road to a Man's reason.
    5. The secret of Socrates.
    6. The safety valve in handling complaints.
    7. How to get co-operation.
    8. A formula that will work wonders for you.
    9. What everybody wants.
    10. A appeal that everybody likes.
    11. The movies do it. Radio does it. Why don't you do it?
    12. When nothing else works, try this.
  • Nine ways to change people without giving offence or arousing resentment
    1. If you must find fault, this is the way to begin.
    2. How to criticize and not be hated for it.
    3. Talk about your own mistakes first.
    4. No one likes to take orders.
    5. Let the other man save his face.
    6. How to spur men on to success.
    7. Give the dog a good name.
    8. Make the fault seem easy to correct.
    9. Making people glad to do what you want.
  • Letters that produced miraculous results
  • Seven rules for making you home life happier
    1. How to dig your marital grave in the quickest possible way
    2. Love and let live
    3. Do this and you'll be looking up the time-tables to Reno
    4. A quick way to make everybody happy.
    5. They mean so much to a woman.
    6. If you want to be Happy, don't neglect this one.
    7. Don't be a "Marriage illiterate"

As in most technical/engineer degrees like in my case, it is quite possible that we focus to much in the technical aspect and we tend to treat less the social skills like team communication and comprehension. In most scenarios as the book tries to emphasize, 15 percent of one's financial success is due to one's knowledge while about 85 percent comes from its skills in human engineering-to personality and ability to lead people.

This is were this book shines and makes its greatest contribution, definitely a good read that definitely helps one to get a broader view and opens the mind to social improvement. As the author of the book reafirms through the chapters of the book, most of the techniques are possible to be meaningless memorised without any sense. In order for these techniques to be effecive, it requires the interested person using them to adjust itself to a new way of life. The guidelines for this new way of life, are also described along the chapters of the book.

If someone is willing to give it a chance of reading it and looking for professional improvement, I definetely recommend it. At least in my case, I did learn a ton of helpful tips.