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