Developers Club geek daily blog

1 year, 2 months ago
imageAll programmers who try to obtain success in the world of software development are distinguished by one general sign: they most of all care for quality of the created software. It is a basis for them. Because they are professionals of the business. In this book the legendary expert Robert Martin (better known in community as "Uncle Bob"), the author of the best-seller "Pure Code", tells that he means "to be a professional programmer", describing methods, tools and approaches for development of "ideal software". The book is sated with a practical advice concerning all aspects of programming: from an assessment of the project and writing of a code before refactoring and testing. This book — is more, than the description of methods, it about professional approach to development process.

Why you were interested in this book? Probably, because you — the programmer, and you interests concept of professionalism. And it is correct! Professionalism — what so desperately is not enough in our profession. I am a programmer too. I was engaged in programming 42 years and during this time saw a lot of things. I was dismissed. I was praised to skies. I visited the head of group, the chief, the ordinary worker and even the executive director. I worked with outstanding programmers, and I worked with sliznyakami2. I was engaged in development of both the most advanced embedded program/hardware systems, and enterprise systems of charge of a salary. I programmed on COBOL, FORTRAN, BAL, PDP-8, PDP-11, C, C ++, Java, Ruby, Smalltalk and in many other languages. I worked with dull cheapskates, and I worked with highly skilled professionals. This book is devoted to the last classification.

On its pages I will try to define what is it — "to be a professional programmer". I will describe those attributes and signs which, in my opinion, are inherent in true professionals. From where I know what attributes and signs are? Because I learned all this by own bitter experience. You see when I arrived on the first place of work to the programmer's position, would come to nobody to mind to call me the professional.

It was in 1969. I then was 17 years old. My father convinced local firm under the name ASC to employ me the programmer on part-time. (Yes, my father it is able. Once he on my eyes followed ways of the accelerating machine, raised a hand and ordered: "To stand!" The machine stopped. In general it is difficult for my father to refuse.) I was employed, put to the room where all manuals to computers of IBM were stored, and forced to write in them descriptions of updates for several years. Then I for the first time saw the phrase: "The page is intentionally left empty".

In couple of days of updating of the manuals my chief suggested me to write the simple program on Easycoder. Its request caused in me rough enthusiasm, before I did not write any program for this computer yet. However, I fluently browsed several books on Autocoder and approximately represented what it is necessary to begin with. My program had to read records from the magnetic tape and change identifiers of these records. Values of new identifiers began with 1 and increased on 1 for each subsequent record. Records with the updated identifiers had to register in a new tape.

The chief showed me the shelf on which the set of piles of red and blue punched cards lay. Provide that you purchased 50 packs
playing cards — 25 red and 25 blue, and then put these packs at each other. So these piles looked. In them cards of red and blue color alternated; each "pack" consisting approximately of 200 cards contained the source code of library of subprogrammes. Programmers just removed upper "pack" from a pile (having convinced that they took only red or only blue cards) and put it in the end of the punch deck.

My program was written on program forms — the big rectangular sheets of paper separated into 25 lines and 80 columns. Every line corresponded to one card. The program registered on the form uppercase letters. In the last 6 columns of every line its number registered. Numbers usually increased with an increment 10 that is later in a pile it was possible to insert new cards. Forms were transferred to operators of data preparation. In the company several tens women who took forms from a big box and "typed" them on keyboard perforators worked. These machines were very similar to typewriters, but they did not print the entered signs on paper, and coded them, punching openings in punched cards. Next day operators returned my program for internal mail. The small punch deck was wrapped in forms and drawn by an elastic band. I looked on set error punched cards. It seems everything is normal. I put a library pack in the end of the pile of programs and carried it upward to operators.

Computers were installed in the machine hall behind closed doors, in the hall with a regulated microclimate and a raised floor (for laying of cables). I knocked at a door, the severe operator took away from me a pack and put it in other box. My program will be started when it is reached by queue. Next day I received the pack back. It was wrapped in listing and drawn by an elastic band. (Yes, those days we used many elastic bands!).

I opened listing and saw that the program did not pass compilation. Error messages in listing were too difficult for my understanding therefore I carried them to the chief. He browsed listing, murmured something about himself, made several marks, took a pack and ordered to follow it. It passed in operator, sat down at the free perforator, repaired all cards with errors and added couple more of cards. He quickly explained an events essence, but everything flew in a flash. It carried a new pack to the machine hall, knocked at a door, told some "magic words" to the operator, and then passed to the computer hall. The operator installed magnetic tapes on drives and loaded a pack while we observed. Tapes were started turning, zatarakhtet the printer — and on it everything came to an end. The program earned. Next day the chief thanked me for the help, and my work on it came to the end. Obviously, the ASC firm considered that she has no time to nurse 17-year-old beginners.

However, my communication with ASC on it did not come to the end. In several months I got permanent job in evening shift in ASC on
service of printers. These printers printed any nonsense from the images stored on a tape. I had to fill timely printers with paper, put tapes with images, retrieve the rumpled paper and in general monitor that machines normally worked. All this happened in 1970. I was not able to afford study in college and it me, to be recognized, not especially attracted. War in Vietnam did not end yet, and in campuses was restless. I continued to study books on COBOL, Fortran, PL/1, PDP-8 and the assembler for IBM 360. I intended to do without study and to be engaged as soon as possible in real programming.

In a year I achieved this goal — I was raised to the regular programmer in ASC. I with two friends Richard and Tim, which too
was for 19 years, worked together with three other programmers on accounting real-time system for the firm which is engaged in freight transportation. We worked at Varian 620i — simple minicomputers, on architecture similar to PDP-8, apart from the fact that they had 16-bit words and two registers. Programming was conducted on the assembler.

We wrote each code line in this system. Yes, without exaggeration everyone. We wrote an operating system, processors
interruptions, drivers of input-output, file system for disks, system of a podgruzka of overlays and even the binder from dynamic
readdressing — not to mention an application code. We wrote all this in 8 months, working for 70–80 hours a week for observance tough terms are impossible. Then I received $7200 a year.

The system was graduated in time. And then we left.

Everything occurred suddenly, and parting was not friendly. The matter is that after all work and system successful back the company hit us an increase in only 2%. We felt deceived. Some of us found work in other place and simply submitted the application. Unfortunately, I chose other, not best way. We with the friend broke into a director's office and left together with fair scandal. It brought us emotional satisfaction — approximately per day.

Next day I realized that I have no work. I was 19 years old, I was an unemployed without diploma. I had interviews on several vacancies from area of programming, but they passed unsuccessfully. The next four months I worked in the workshop on repair of lawn-mowers belonging to my stepbrother. Unfortunately, the repairman did not leave me, and eventually I had to leave. I was depressed.

I sat up to three o'clock in the morning, eating pizza and watching old horror films on the black-and-white TV of my parents. Gradually nightmares began to filter from the screen into my life. I lay in before one o'clock in the afternoon because I did not want to see the next sad day. I arrived on courses of the mathematical analysis in regional college and failed examination. My life flew under a slope. My mother talked to me and explained that so it is impossible to live and that I was an idiot when left, without having found herself new work — moreover with scandal and together with the friend. She told that to leave, without having new work, in general it is impossible, and it is necessary to do it quietly, soberly and alone. She told that I should call the old chief and to ask on the old place — on its expression, "to swallow offense". Nineteen-year-old guys are not inclined to recognize the errors, and I was not an exception. Nevertheless circumstances got the best of pride. Finally I called the chief. And worked! It willingly accepted me for $6800 a year, and I willingly accepted its sentence.

The next one and a half years I worked at the old place, paying attention to each trifle and trying to become as much as possible valuable worker. Increases and increases became my award. Everything went well. When I left this company, we remained in good relations, and already offered me the best work.

Probably, you thought that I learned the received lesson and became the professional? Anything similar. It was only the first of many lessons which I still should acquire. Further I was discharged from one office for the diagram broken on carelessness and nearly dismissed from another for accidental disclosure of confidential information. I undertook risky projects and filled up them, without asking for the help which as I knew, was necessary for me. I zealously protected the technical solutions even if they contradicted needs of customers. I employed absolutely unskilled person who became heavy burden for my employer. And that worst of all, because of my organizational errors dismissed two other people.

So you treat this book as to the directory of my delusions, a confession in my sins and to the collection of councils which will help you to avoid my errors.

It is possible to get acquainted with the book on website of publishing house in more detail
Table of contents
Fragment

For Habrozhitely a discount of 25% according to the coupon — the Ideal programmer.

Upon payment of the paper book we send electronic versions of books to e-mail, upon purchase of the e-book — all available versions go to users.

+ the reader free of charge receives the e-book (pdf and epub) Sergey Tarasov "Defragmentation of a brain. Softostroyeniye from within"

This article is a translation of the original post at habrahabr.ru/post/270195/
If you have any questions regarding the material covered in the article above, please, contact the original author of the post.
If you have any complaints about this article or you want this article to be deleted, please, drop an email here: sysmagazine.com@gmail.com.

We believe that the knowledge, which is available at the most popular Russian IT blog habrahabr.ru, should be accessed by everyone, even though it is poorly translated.
Shared knowledge makes the world better.
Best wishes.

comments powered by Disqus