Off to be the wizard (Magic 2.0 series #1)

That may be, but I’m an algorithm with free will! Any time someone claims I don’t have free will I shout shut up at the top of my lungs, because it’s totally out of character for me, and it proves I have free will.

— Philip

Most of geeks who love computer science consider themselves as wizards, or even god, but that is not true. It is just a kind of similitude. Information technology is important and powerful without doubt, but not enough like magic. Well, what if the reality is a huge computer programme?

A nerd who often hacks other’s computer system and spy on the files found a file which could influence the real world by changing the data in it. He could not help exploring the possibilities with his programming skills. A legend began from then on. He can travel in any space and back to any time. He can set the attributes of any items. He even can change the balance of his bank account. Can we call him the god? No, because he is not the only one who can do this. Perhaps we can call these guys wizards. There is an organisation for the wizards. The story is funny and simple — the good ones kick the bad one’s ass.

The most attractive point of the book is neither the funny story, nor the creative tricks, but the setting — The world is a computer programme and the file which controls this world is editable. This setting gave the programmers great power. They can be powerful like a god in the tales. If that is true, everyone knowing this must be eager to learn programming skills.

I am very glad to meet this book while feeling a little bored about coding. It helped me remind the fun of programming and get back the passion for coding.

Thank you, Off to be the wizard;

Thank you, Scott Meyer.

As a Veteran Coder

On October the first 2009, I became a professional programmer. That was the very beginning of my coding career. Util now, 2016, seven years has gone. I think it is necessary to write something to review what I have learnt.

Role. Speaking of the nature of programmers, I consider them as the problem solvers and data players. Usually, programmers are called software engineers who concentrate on the problem in real world instead of the abstract theories like the scientists. And how do they solve the problems? They just operate the data in the computers. The data, including the program itself, actually consists of 1 and 0. That is the real pattern which computer can recognize the data, but not readable for people, so we need build a number of layers to make the data readable for people. In my opinion, programming languages are the certain bridges to computers and operating systems play an important role by translating the programming language to 1 and 0 which computers can recognize. To be an eligible programmer, it is necessary to learn how operating system works and master at least one kind of programming language well.

Natural Language –[Programmer]–> Programming Language –[Operating System]–> Computer Language(0,1)

Methodology. In fact, most of time, there are two reasons for programmers’ headache. The first one is how to save, transfer and show data. There are different kinds of data which has different features. For example, some of them should be saved and loaded in a few milliseconds, while for some other kind of data it is not necessary. To handle the data reasonably, we need to use different media and algorithms. The other reason is what kind of pattern and abstract layer should be used to write the code. A bad choice will leave a nightmare for the ones who are responsible for the code, no matter who he or she is, maybe it is just yourself.

Algorithm + Data Structure + Design Pattern + Protocol

Tool. To keep working effectively, spending time and money on creating a suitable tool box is worthy. An upscale computer is necessary for a cool programmer. And what is more is a series of software tools. Choose the best tools, dig the configurations, remember the shortcut keys. All the actions above will help a programmer become more awesome and efficient.

Hardware, Toolkit, Configurations, Shortcut Keys

Talk. The ability of using natural language is also very important. Programmers often need to communicate with others, like testers, product managers or clients. Communicating with others effectively is a pivotal skill for a programmer. Besides, to express the complex business and mechanism of the software, expressing the programmers ideas exactly is very important, or they may waste their time on developing a wrong software.

Communicating Skill, Presentation Skill