Coding Programmer Quotes

We've searched our database for all the quotes and captions related to Coding Programmer. Here they are! All 200 of them:

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Martin Fowler
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
Linus Torvalds
Slaves are not allowed to say no. Laborers may be hesitant to say no. But professionals are expected to say no. Indeed, good managers crave someone who has the guts to say no. It’s the only way you can really get anything done.
Robert C. Martin (The Clean Coder: A Code of Conduct for Professional Programmers)
I’m not a great programmer; I’m just a good programmer with great habits.
Martin Fowler (Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series))
Well, writing novels is incredibly simple: an author sits down…and writes. Granted, most writers I know are a bit strange. Some, downright weird. But then again, you’d have to be. To spend hundreds and hundreds of hours sitting in front of a computer screen staring at lines of information is pretty tedious. More like a computer programmer. And no matter how cool the Matrix made looking at code seem, computer programmers are even weirder than authors.
Christopher Hopper
At forty, I was too old to work as a programmer myself anymore; writing code is a young person’s job.
Michael Crichton (Prey)
All great programmers learn the same way. They poke the box. They code something and see what the computer does. They change it and see what the computer does. They repeat the process again and again until they figure out how the box works.
Seth Godin (Poke the Box)
It is not the language that makes programs appear simple. It is the programmer that make the language appear simple!
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
Why do most developers fear to make continuous changes to their code? They are afraid they’ll break it! Why are they afraid they’ll break it? Because they don’t have tests.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Names are deeply meaningful to your brain, and misleading names add chaos to your code.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
Don't be a slave to history. Don't let existing code dictate future code. All code can be replaced if it is no longer appropriate. Even within one program, don't let what you've already done constrain what you do next -- be ready to refactor... This decision may impact the project schedule. The assumption is that the impact will be less than the cost of /not/ making the change.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
You are reading this book for two reasons. First, you are a programmer. Second, you want to be a better programmer. Good. We need better programmers.
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
I'm a programmer. I like programming. And the best way I've found to have a positive impact on code is to write it.
Robert C. Martin (Clean Architecture)
Don't gloss over a routine or piece of code involved in the bug because you "know" it works. Prove it. Prove it in this context, with this data, with these boundary conditions.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
Linus Torvalds
One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand.
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
Novice programmers don’t yet have the skills to write simple code.
Sandi Metz (Practical Object-Oriented Design in Ruby: An Agile Primer)
Think twice, code once.
Waseem Latif
Write code as if you had to support it for the rest of your life.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
The problem is that we view estimates in different ways. Business likes to view estimates as commitments. Developers like to view estimates as guesses. The difference is profound.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Programmers must avoid leaving false clues that obscure the meaning of code.
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
What would happen if you allowed a bug to slip through a module, and it cost your company $10,000? The nonprofessional would shrug his shoulders, say “stuff happens,” and start writing the next module. The professional would write the company a check for $10,000!
Robert C. Martin (The Clean Coder: A Code of Conduct for Professional Programmers)
Real programmers can write assembly code in any language.
Larry Wall
While overpaid CEOs take long vacations and hide behind e-mail autoresponders, some programmer is working eighteen-hour days coding the start-up that will destroy that CEO’s business.
Ryan Holiday (The Obstacle Is the Way: The Timeless Art of Turning Trials into Triumph)
Debugging: what an odd word. As if "bugging" were the job of putting in bugs, and debugging the task of removing them. But no. The job of putting in bugs is called programming. A programmer writes some code and inevitably makes the mistakes that result in the malfunctions called bugs. Then, for some period of time, normally longer than the time it takes to design and write the code in the first place, the programmer tries to remove the mistakes.
Ellen Ullman (The Bug)
When you are working on a problem, you sometimes get so close to it that you can’t see all the options. You miss elegant solutions because the creative part of your mind is suppressed by the intensity of your focus. Sometimes the best way to solve a problem is to go home, eat dinner, watch TV, go to bed, and then wake up the next morning and take a shower.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Ask a programmer to review ten lines of code, he’ll find ten issues. Ask him to do five hundred lines, and he’ll say it looks good.
Gene Kim (The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations)
By coding at a higher level of abstraction, you are free to concentrate on solving domain problems, and can ignore petty implementation details.
Andrew Hunt (The Pragmatic Programmer)
If your code needs comments, consider refactoring it so it doesn’t.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
The amount of surprise you feel when something goes wrong is directly proportional to the amount of trust and faith you have in the code being run.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
In programs, there are conditions, which the programmer must follow. Otherwise, the code won’t run. Throwing dead animals is a condition. Some may say it’s a ritual one needs to complete before the intention installs, before the will sets … But who is installing intentions? Who wants to program the universe? Was it him? Most importantly: Bother? Or not bother?
Misba (The High Auction (Wisdom Revolution, #1))
Legacy code. The phrase strikes disgust in the hearts of programmers. It conjures images of slogging through a murky swamp of tangled undergrowth with leaches beneath and stinging flies above. It conjures odors of murk, slime, stagnancy, and offal. Although our first joy of programming may have been intense, the misery of dealing with legacy code is often sufficient to extinguish that flame.
Michael C. Feathers (Working Effectively with Legacy Code)
Launch is just another point in software’s life. Not the end-all and be-all.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
You see, programmers tend to be arrogant, self-absorbed introverts. We didn’t get into this business because we like people.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
The revolution has to be customised
Scott Rosenberg (Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software)
Quality must be enforced, otherwise it won't happen. We programmers must be required to write tests, otherwise we won't do it.
Yegor Bugayenko (Code Ahead)
If you are tired or distracted, do not code.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
The problem with this premise, of course, is that whereas other children had programmers who fed their brains with love and kindness, my programmers were evil. My code is flawed.
Stephanie Foo (What My Bones Know: A Memoir of Healing from Complex Trauma)
In an article in the April 1999 CACM, Robert Glass summarizes research that seems to indicate that, while code inspection is effective, conducting reviews in meetings is not.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
You should plan on working 60 hours per week. The first 40 are for your employer. The remaining 20 are for you. During this remaining 20 hours you should be reading, practicing, learning, and otherwise enhancing your career.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
The fundamental assumption underlying all software projects is that software is easy to change. If you violate this assumption by creating inflexible structures, then you undercut the economic model that the entire industry is based on. In
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a "Not Implemented" message, or substitute dummy data instead. Take some action to prevent further damage and to show that you're on top of the situation.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
They always need fresh, enthusiastic programmers. More important: they need programmers chosen by a star programmer. Magic Mama told her all about how recruiting happens in well-known companies. Unlike small companies, they depend more on shining logos. Logos like The Resolution Race Champion, The Gold Winner of Code the Crude, or Year’s Best Thesis Contributor are gems in their crowns. Everyone loves collecting gems. Talents are the gems big companies prefer plucking in reduced expenses. The best gems are the hard-working Low Grades and the non-citizens from the Junk Land. Who wouldn’t love a talent born in the gutters?—Just lure them with citizenship.
Misba (The High Auction (Wisdom Revolution, #1))
Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, simplicity, and comprehensibility by factors of 5 to 15 over low-level languages such as assembly and C (Brooks 1987, Jones 1998, Boehm 2000). You save time when you don't need to have an awards ceremony every time a C statement does what it's supposed to.
Steve McConnell (Code Complete: A Practical Handbook of Software Construction)
So much of leadership is learning to give a damn about other people, something that we programmers are notoriously bad at.
Jeff Atwood (Effective Programming: More Than Writing Code)
Reading other people's code is particularly hard. Not necessarily because other people's code is bad, but because they probably think and solve problems in a different way to you.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
After all, computer science was man-made. All the answers had to be there.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
All the obstacles existed solely in code, I thought.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
Software lives and matures over time.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
The unit tests are documents. They describe the lowest-level design of the system.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
An estimate is not a number. An estimate is a distribution.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
QA and Development should be working together to ensure the quality of the system. The
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
We, newbies and young programmers, don't like chaos because it makes us dependent on experts. We have to beg for information and feel bad
Yegor Bugayenko (Code Ahead)
Automated testing is a safety net that protects the program from its programmers
Yegor Bugayenko (Code Ahead)
We must not blame programmers for their bugs. They belong to them only until the code is merged to the repository. After that, all bugs are ours!
Yegor Bugayenko (Code Ahead)
First solve the problem. Then, write the code.
Waseem Latif
Beautiful code is short and concise, so if you were to give that code to another programmer they would say, “oh, that’s well written code.” It’s much like as if you were writing a poem.
Cal Newport (Deep Work: Rules for Focused Success in a Distracted World)
Almost every software development organization has at least one developer who takes tactical programming to the extreme: a tactical tornado. The tactical tornado is a prolific programmer who pumps out code far faster than others but works in a totally tactical fashion. When it comes to implementing a quick feature, nobody gets it done faster than the tactical tornado. In some organizations, management treats tactical tornadoes as heroes. However, tactical tornadoes leave behind a wake of destruction. They are rarely considered heroes by the engineers who must work with their code in the future. Typically, other engineers must clean up the messes left behind by the tactical tornado, which makes it appear that those engineers (who are the real heroes) are making slower progress than the tactical tornado.
John Ousterhout (A Philosophy of Software Design)
When you cannot concentrate and focus sufficiently, the code you write will be wrong. It will have bugs. It will have the wrong structure. It will be opaque and convoluted. It will not solve the customers’ real problems. In short, it will have to be reworked or redone. Working while distracted creates waste.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
We programmers are weird creatures. We love writing code. But when it comes to reading it we usually shy away. After all, writing code is so much more fun, and reading code is hard — sometimes almost impossible.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
Good programming is not born from mere technical competence. I've seen highly intellectual programmers who can produce intense and impressive algorithms, who know their language standard by heart, but who write the most awful code.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
You see, programmers tend to be arrogant, self-absorbed introverts. We didn’t get into this business because we like people. Most of us got into programming because we prefer to deeply focus on sterile minutia, juggle lots of concepts simultaneously, and in general prove to ourselves that we have brains the size of a planet, all while not having to interact with the messy complexities of other people.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
In 1953, Allen Dulles, then director of the USA Central Intelligence Agency (CIA), named Dr Sidney Gottlieb to direct the CIA's MKULTRA programme, which included experiments conducted by psychiatrists to create amnesia, new dissociated identities, new memories, and responses to hypnotic access codes. In 1972, then-CIA director Richard Helms and Gottlieb ordered the destruction of all MKULTRA records. A clerical error spared seven boxes, containing 1738 documents, over 17,000 pages. This archive was declassified through a Freedom of Information Act Request in 1977, though the names of most people, universities, and hospitals are redacted. The CIA assigned each document a number preceded by "MORI", for "Managament of Officially Released Information", the CIA's automated electronic system at the time of document release. These documents, to be referenced throughout this chapter, are accessible on the Internet (see: abuse-of-power (dot) org/modules/content/index.php?id=31). The United States Senate held a hearing exposing the abuses of MKULTRA, entitled "Project MKULTRA, the CIA's program of research into behavioral modification" (1977).
Orit Badouk-Epstein (Ritual Abuse and Mind Control: The Manipulation of Attachment Needs)
The Joel Test 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing?
Joel Spolsky (Joel on Software)
Programmers are always surrounded by complexity; we cannot avoid it. Our applications are complex because we are ambitious to use our computers in ever more sophisticated ways. Programming is complex because of the large number of conflicting objectives for each of our programming projects. If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution.
C.A.R. Hoare
Here is a minimal list of the things that every software professional should be conversant with: • Design patterns. You ought to be able to describe all 24 patterns in the GOF book and have a working knowledge of many of the patterns in the POSA books. • Design principles. You should know the SOLID principles and have a good understanding of the component principles. • Methods. You should understand XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis, and Structured Design. • Disciplines. You should practice TDD, Object-Oriented design, Structured Programming, Continuous Integration, and Pair Programming. • Artifacts: You should know how to use: UML, DFDs, Structure Charts, Petri Nets, State Transition Diagrams and Tables, flow charts, and decision tables. Continuous
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
STOP APPLYING PATCHES. RECODE YOURSELF NOW. 24 Dec National Mathematics Day
Vineet Raj Kapoor
not just asking questions, having discussions, and taking notes, but asking questions and having discussions while you’re actually coding.
David Thomas (The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition)
we programmers spend our lives writing code so that our fellow human beings no longer need to write code
Jeff Atwood (Effective Programming: More Than Writing Code)
As a young adult, I simply wanted answers,not more questions.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
While humans have been cooking, making music, and building for thousands of years, archaeologists have yet to discover those cave paintings of Man at His DeskTyping
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
Metaphor has a devilish way of blinding us to the truth.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
Undo, Cut, or Revert aren’t viable options when building a skyscraper
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
Programmers are like magicians who fool everyone into thinking they are perfect and never wrong, but it’s all an act. They make mistakes all the time.
Zed A. Shaw (Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to the Imaginative World Of Computational Thinking with Code (Zed Shaw's Hard Way Series))
The DRY principle tells us to keep the low-level knowledge in the code, where it belongs, and reserve the comments for other, high-level explanations.
Andrew Hunt (The Pragmatic Programmer)
In the same way a woodworker invests the time in a jig, a programmer can build a code generator. Once built, it can be used throughout the life of the project at virtually no cost.
Andrew Hunt (The Pragmatic Programmer)
We are confidently commanding, in precise detail, the behaviors of a machine that could otherwise do incalculable damage. And so, programming is an act of supreme arrogance.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Providing too much detail can be an invitation for micro-management.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
A statement Kent Beck often makes about himself, "I'm not a great programmer; I'm just a good programmer with great habits.
Martin Fowler (Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series))
Every system is built from a domain-specific language designed by the programmers to describe that system. Functions are the verbs of that language, and classes are the nouns.
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
The cost of automating acceptance tests is so small in comparison to the cost of executing manual test plans that it makes no economic sense to write scripts for humans to execute.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
It is not enough for code to work. Code that works is often badly broken. Programmers who satisfy themselves with merely working code are behaving unprofessionally. They may fear that they don’t have time to improve the structure and design of their code, but I disagree. Nothing has a more profound and long-term degrading effect upon a development project than bad code.
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
To paraphrase an old joke among programmers, “Writing code accounts for 90 percent of programming. Debugging code accounts for the other 90 percent.” Your computer will do only what you tell it to do; it won’t read your mind and do what you intended it to do. Even professional programmers create bugs all the time, so don’t feel discouraged if your program has a problem.
Albert Sweigart (Automate the Boring Stuff with Python: Practical Programming for Total Beginners)
Software is easy to make, except when you want it to do something new. And then, of course, there is a corollary: The only software that's worth making is software that does something new.
Scott Rosenberg (Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software)
It reminds me of a statement Kent Beck often makes about himself: “I’m not a great programmer; I’m just a good programmer with great habits.” Refactoring helps me be much more effective at writing robust code.
Martin Fowler (Refactoring: Improving the Design of Existing Code (Addison-Wesley Signature Series (Fowler)))
One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand.
Robert C. Martin (The Robert C. Martin Clean Code Collection (Collection) (Robert C. Martin Series))
Oftentimes, the whole reason we became programmers in the first place is because we wanted to move beyond being a mere player and change the game, control it, modify its parameters, maybe even create our own games.
Jeff Atwood (Effective Programming: More Than Writing Code)
Managers of programming projects aren’t always aware that certain programming issues are matters of religion. If you’re a manager and you try to require compliance with certain programming practices, you’re inviting your programmers’ ire. Here’s a list of religious issues: ■ Programming language ■ Indentation style ■ Placing of braces ■ Choice of IDE ■ Commenting style ■ Efficiency vs. readability tradeoffs ■ Choice of methodology—for example, Scrum vs. Extreme Programming vs. evolutionary delivery ■ Programming utilities ■ Naming conventions ■ Use of gotos ■ Use of global variables ■ Measurements, especially productivity measures such as lines of code per day
Steve McConnell (Code Complete: A Practical Handbook of Software Construction)
Look for the important requirements, the ones that define the system. Look for the areas where you have doubts, and where you see the biggest risks. Then prioritize your development so that these are the first areas you code.
David Thomas (The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition)
Programmers can practice in a similar fashion using a game known as ping-pong.8 The two partners choose a kata, or a simple problem. One programmer writes a unit test, and then the other must make it pass. Then they reverse roles.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
I’m not a heroic hacker with magic code. I was a brain in a box. But I am a programmer. Or was. And I knew the system. I knew the software. And I had a plan. And a little bit of time before anyone was going to bother me again. So I got to work.
John Scalzi (The End of All Things (Old Man's War, #6))
I am a non-accredited, overly logical psychologist, therapist, mechanic, diplomat, businessman, and Teacher working in an industry that is still defining itself each and every day. That is as concise a definition I can give for the modern-day programmer.
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
Poke the box How do computer programmers learn their art? Is there a step-by-step process that guarantees you’ll get good? All great programmers learn the same way. They poke the box. They code something and see what the computer does. They change it and see what the computer does. They repeat the process again and again until they figure out how the box works. The box might be a computer or it might be a market or it might be a customer or it might be your boss. It’s a puzzle, one that can be solved in only one way—by poking.
Seth Godin (Poke the Box)
One of her secret fantasies had been that, as a girl who could code, she would work in the one place where a geeky fat girl could get dates. It had not been entirely untrue. But as someone had pointed out to her in school, although the odds are good, the goods are odd.
Maureen F. McHugh
It's more than a little ironic that many of us preach safety first to our children, nieces, and nephews but in our roles as programmers scream for freedom, a hybrid of the Wild West gunslinger and teenage driver. Give us freedom, give us the resources, and watch us fly.
Martin Fowler (Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series))
Ruthless and Continuous Testing Many developers test gently, subconsciously knowing where the code will break and avoiding the weak spots. Pragmatic Programmers are different. We are driven to find our bugs now, so we don’t have to endure the shame of others finding our bugs later.
David Thomas (The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition)
A non-programmer friend once remarked that code looks like poetry. I get that feeling from really good code, that everything in the text has a purpose and that it's there to help me understand the idea. Unfortunately, writing code doesn't have the same romantic image aswriting poetry.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
Hiro walks straight through the display, and it vanishes. Amusement parks in the Metaverse can be fantastic, offering a wide selection of interactive three-dimensional movies. But in the end, they’re still nothing more than video games. Hiro’s not so poor, yet, that he would go and write video games for this company. It’s owned by the Nipponese, which is no big deal. But it’s also managed by the Nipponese, which means that all the programmers have to wear white shirts and show up at eight in the morning and sit in cubicles and go to meetings. When Hiro learned how to do this, way back fifteen years ago, a hacker could sit down and write an entire piece of software by himself. Now, that’s no longer possible. Software comes out of factories, and hackers are, to a greater or lesser extent, assembly-line workers. Worse yet, they may become managers who never get to write any code themselves.
Neal Stephenson (Snow Crash)
there is any moral to this story, it’s that, when you are writing code, remember that someone may have to comb through it and check everything when it is being repurposed in the future. It could even be you, long after you have forgotten the original logic behind the code. For this reason, programmers can leave “comments” in their code, which are little messages to anyone else who has to read their code. The programmer mantra should be “Always comment on your code.” And make the comments helpful. I’ve reviewed dense code I wrote years before, to find the only comment is “Good luck, future Matt.
Matt Parker (Humble Pi: A Comedy of Maths Errors)
Any attempt to fix it with minimum effort will repair the local and obvious, but unless the structure is pure or the documentation very fine, the far-reaching effects of the repair will be overlooked. Second, the repairer is usually not the man who wrote the code, and often he is a junior programmer or trainee.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
When I deal with smart IT programmers, I have a strong impression that their job has much in common with the phenomenon of how the Lord arranged the Universe and created genetics (cells, DNA, molecules, etc.). Both genetics and computer programming create their magic by performing highly intelligent coding work.
Sahara Sanders (Indigo Diaries: A Series of Novels)
As you’re reading through code, you will find things that you would have never done. You will find things you might have never even thought of. Why? What was the developer thinking? What were his or her motivations? You can even learn from bad code with this kind of critical, self-aware exploration of an existing work.
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
Stop pushing people into web development as if it is the only true career path. Instead, push people into computer science, programming, coding, etc. There is so much competition because everyone is doing it, you just create a lot of demoralized and disgruntled people. There is more to programming than web development.
Olawale Daniel
Programming is an act of creation. When we write code we are creating something out of nothing. We are boldly imposing order upon chaos. We are confidently commanding, in precise detail, the behaviors of a machine that could otherwise do incalculable damage. And so, programming is an act of supreme arrogance. Professionals
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
Before you start to look at the bug, make sure that you are working on code that built cleanly—without warnings. We routinely set compiler warning levels as high as possible. It doesn’t make sense to waste time trying to find a problem that the computer could find for you! We need to concentrate on the harder problems at hand.
Andrew Hunt (The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition)
The government spying on people doesn’t literally make programmers write worse code. It just leads eventually to a world in which bad ideas will win. And because this is so important to hackers, they’re especially sensitive to it. They can sense totalitarianism approaching from a distance, as animals can sense an approaching thunderstorm.
Paul Graham (Hackers & Painters: Big Ideas from the Computer Age)
No one can say what contribution randomness has made to software development so far. Most programs have grown so complex and convoluted that no human being knows where all the code came from or even what some of it actually does. Programmers long ago gave up hope of being able to predict in advance whether a given body of code will work as planned.
George Dyson (Darwin Among The Machines: The Evolution Of Global Intelligence (Helix Books))
One broken window—a badly designed piece of code, a poor management decision that the team must live with for the duration of the project—is all it takes to start the decline. If you find yourself working on a project with quite a few broken windows, it's all too easy to slip into the mindset of "All the rest of this code is crap, I'll just follow suit.
Andrew Hunt (The Pragmatic Programmer)
When did things go wrong? Probably already at the kick-off meeting. Some of the project members didn't pay attention. Others didn't understand the point. Worse, some disagreed and were already planning their coding standard rebellion. Finally, some got the point and agreed but, when the pressure in the project got too high, they had to let something go.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
Pham Nuwen spent years learning to program/explore. Programming went back to the beginning of time. It was a little like the midden out back of his father’s castle. Where the creek had worn that away, ten meters down, there were the crumpled hulks of machines—flying machines, the peasants said—from the great days of Canberra’s original colonial era. But the castle midden was clean and fresh compared to what lay within the Reprise’s local net. There were programs here that had been written five thousand years ago, before Humankind ever left Earth. The wonder of it—the horror of it, Sura said—was that unlike the useless wrecks of Canberra’s past, these programs still worked! And via a million million circuitous threads of inheritance, many of the oldest programs still ran in the bowels of the Qeng Ho system. Take the Traders’ method of timekeeping. The frame corrections were incredibly complex—and down at the very bottom of it was a little program that ran a counter. Second by second, the Qeng Ho counted from the instant that a human had first set foot on Old Earth’s moon. But if you looked at it still more closely. . .the starting instant was actually some hundred million seconds later, the 0-second of one of Humankind’s first computer operating systems. So behind all the top-level interfaces was layer under layer of support. Some of that software had been designed for wildly different situations. Every so often, the inconsistencies caused fatal accidents. Despite the romance of spaceflight, the most common accidents were simply caused by ancient, misused programs finally getting their revenge. “We should rewrite it all,” said Pham. “It’s been done,” said Sura, not looking up. She was preparing to go off-Watch, and had spent the last four days trying to root a problem out of the coldsleep automation. “It’s been tried,” corrected Bret, just back from the freezers. “But even the top levels of fleet system code are enormous. You and a thousand of your friends would have to work for a century or so to reproduce it.” Trinli grinned evilly. “And guess what—even if you did, by the time you finished, you’d have your own set of inconsistencies. And you still wouldn’t be consistent with all the applications that might be needed now and then.” Sura gave up on her debugging for the moment. “The word for all this is ‘mature programming environment.’ Basically, when hardware performance has been pushed to its final limit, and programmers have had several centuries to code, you reach a point where there is far more signicant code than can be rationalized. The best you can do is understand the overall layering, and know how to search for the oddball tool that may come in handy—take the situation I have here.” She waved at the dependency chart she had been working on. “We are low on working fluid for the coffins. Like a million other things, there was none for sale on dear old Canberra. Well, the obvious thing is to move the coffins near the aft hull, and cool by direct radiation. We don’t have the proper equipment to support this—so lately, I’ve been doing my share of archeology. It seems that five hundred years ago, a similar thing happened after an in-system war at Torma. They hacked together a temperature maintenance package that is precisely what we need.” “Almost precisely.
Vernor Vinge (A Deepness in the Sky (Zones of Thought, #2))
The only thing worse than not knowing why some code breaks is not knowing why it worked in the first place! It's the classic "house of cards" mentality: "it works, but I'm not sure why, so nobody touch it!" You may have heard, "Hell is other people" (Sartre), and the programmer meme twist, "Hell is other people's code." I believe truly: "Hell is not understanding my own code.
Kyle Simpson (You Don't Know JS: Async & Performance)
Also, don't forget that some of the most successful people in the world are self-taught programmers. Steve Wozniak, the founder of Apple, is a self-taught programmer. So is Margaret Hamilton, who received the Presidential Medal of Freedom for her work on NASA's Apollo Moon missions; David Karp, founder of Tumblr; Jack Dorsey, founder of Twitter; and Kevin Systrom, founder of Instagram.
Cory Althoff (The Self-Taught Programmer: The Definitive Guide to Programming Professionally)
If you have programmers, they probably save their code in Git, which is the closest I can think of to a useful blockchain-like technology: it saves individual code edits as transactions in Merkle trees with tamper-evident hashes, and developers routinely copy entire Git repositories around, identifying them by hash. It’s a distributed ledger, but for computer programs rather than money.
David Gerard (Attack of the 50 Foot Blockchain: Bitcoin, Blockchain, Ethereum & Smart Contracts)
This wasn’t the only mistake they made. They also botched the cleanup operation on the servers they could access. They had created a script called LogWiper.sh to erase activity logs on the servers to prevent anyone from seeing the actions they had taken on the systems. Once the script finished its job, it was also supposed to erase itself, like an Ouroboros serpent consuming its own tail. But the attackers bungled the delete command inside the script by identifying the script file by the wrong name. Instead of commanding the script to delete LogWiper.sh, they commanded it to delete logging.sh. As a result, the LogWiper script couldn’t find itself and got left behind on servers for Kaspersky to find. Also left behind by the attackers were the names or nicknames of the programmers who had written the scripts and developed the encryption algorithms and other infrastructure used by Flame. The names appeared in the source code for some of the tools they developed. It was the kind of mistake inexperienced hackers would make, so the researchers were surprised to see it in a nation-state operation. One, named Hikaru, appeared to be the team leader who created a lot of the server code,
Kim Zetter (Countdown to Zero Day: Stuxnet and the Launch of the World's First Digital Weapon)
A very simple but particularly useful technique for finding the cause of a problem is simply to explain it to someone else. The other person should look over your shoulder at the screen, and nod his or her head constantly (like a rubber duck bobbing up and down in a bathtub). They do not need to say a word; the simple act of explaining, step by step, what the code is supposed to do often causes the problem to leap off the screen and announce itself.[7] [7] Why "rubber ducking"? While an undergraduate at Imperial College in London, Dave did a lot of work with a research assistant named Greg Pugh, one of the best developers Dave has known. For several months Greg carried around a small yellow rubber duck, which he'd place on his terminal while coding. It was a while before Dave had the courage to ask....
Andrew Hunt (The Pragmatic Programmer)
It is not loyalty or internal motivation that drives us programmers forward. We must write our code when the road to our personal success is absolutely clear for us and writing high quality code obviously helps us move forward on this road. To make this happen, the management has to define the rules of the game, also known as "process", and make sure they are strictly enforced, which is much more difficult than "being agile".
Yegor Bugayenko (Code Ahead)
The label “jack-of-all-trades but master of none” is normally meant to be derogatory, implying that the labelee lacks the focus to really dive into a subject and master it. But, when your online shopping application is on the fritz and you’re losing orders by the hundreds as each hour passes, it’s the jack-of-all-trades who not only knows how the application’s code works but can also do low-level UNIX debugging of your web server processes, analyze your RDBMS’s configuration for potential performance bottlenecks, and check your network’s router configuration for hard-to-find problems. And, more important, after finding the problem, the jack-of-all-trades can quickly make architecture and design decisions, implement code fixes, and deploy a new fixed system to production. In this scenario, the manufacturing scenario seems quaint at best and critically flawed at worst.
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
Alan Turing appears to be becoming a symbol of the shift towards computing, not least because of his attitude of open-minded defiance of convention and conventional thinking. Not only did he conceptualise the modern computer – imagining a simple machine that could use different programmes – but he put his thinking into practice in the great code breaking struggle with the Nazis in World War II, and followed it up with pioneering early work in the mathematics of biology and chaos.
David Boyle (Alan Turing: Unlocking the Enigma)
At present, computers are spectacular at number crunching and data processing. We can code programmes that feel as though computers are interacting with us, and that's fun, but in fact they aren't interacting in a way that we expect a human being to interact. But what will happen when a programme that has self-developed, that has its own version of what we call consciousness - realises, in the human sense of the verb 'to realise', exactly what/who is on the other side of the screen?
Jeanette Winterson (Frankissstein: A Love Story)
Meanwhile, the original programmers will have left, and their replacements -- believing they understand the code -- will make some truly spectacular errors, mistakes that will suddenly make everything completely stop working for a while. So that what had seemed to be a descending curve of bugs, a fall toward the ever-receding zero, will reveal itself as the shape of another equation altogether: a line of relentlessly rising, bug-counts climbing in an endless battle against infinity.
Ellen Ullman (The Bug)
Tests shouldn’t verify units of code. Instead they should verify units of behavior: something that is meaningful for the problem domain and ideally something that a business person can recognize as useful. The number of classes it takes to implement such a unit of behavior is irrelevant. The unit could span across multiple classes or only one class, or even take up just a tiny method. [...] A test should tell a story about the problem your code helps to share, and this story should be cohesive and meaningful to a non-programmer.
Vladimir Khorikov (Unit Testing: Principles, Practices, and Patterns)
That summer I thought a lot about how a person becomes the very best at something. Norton was such a commanding figure, peerless in his talent and professionalism. I tried to understand what he had that other programmers didn’t. What does it take to be 20 percent better than everyone else? How much is that just latent talent versus dedicated effort—being relentlessly focused and deliberate about performing better today than you did the day before? And then repeating that tomorrow and the next day and the next for years and years?
Bill Gates (Source Code: My Beginnings)
We wrote our software to know the detailed structure of the disk. It knew that the disk had 200 cylinders and 10 heads, and that each cylinder had several dozen sectors per head. It knew which cylinders held the Agents, Employers, and Members. All this was hard-wired into the code. ... One day a more experienced programmer joined our ranks. When he saw what we had done, the blood drained from his face, and he stared aghast at us, as if we were aliens of some kind. Then he gently advised us to change our addressing scheme to use relative addresses.
Robert C. Martin (Clean Architecture)
I write them to improve my productivity as a programmer. Making the quality assurance department happy is just a side effect. Unit tests are highly localized. Each test class works within a single package. It tests the interfaces to other packages, but beyond that it assumes the rest just works. Functional tests are a different animal. They are written to ensure the software as a whole works. They provide quality assurance to the customer and don't care about programmer productivity. They should be developed by a different team, one who delights in finding bugs.
Martin Fowler (Refactoring: Improving the Design of Existing Code (Addison-wesley Object Technology Series))
The explanation may be that gene activity in our muscles changes when the muscles don’t contract for long periods of time. In one experiment, researchers at the University of Massachusetts asked a group of healthy young men to walk around using crutches such that the muscles in their left legs never contracted. After only two days of inactivity, the scientists biopsied muscles in both legs. In the left leg, the DNA repair mechanism had been disrupted, insulin response was dropping, oxidative stress was rising, and metabolic activity within individual muscle cells was slowing.
Joe Kutner (The Healthy Programmer: Get Fit, Feel Better, and Keep Coding (Pragmatic Programmers))
Programs should always have the form of paragraphs of comments that describe the intention of the program followed by paragraphs of code that implement that intention. All of the formatting should be designed to make readers as able as possible to read the code easily; the compiler doesn’t care. In particular, follow conventions of mathematics and your native language, not those you found in some random language manual. Write the comments first and then write the code, not the other way around. If you don’t know what you want to achieve and why, any code you write is, by definition, incorrect.
Charles Wetherell (Etudes for Programmers)
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by incremental renovation: tinkering, improving, planting flower beds. There's a subtle reason why programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: They are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming: It's harder to read code than to write it.
Joel Spolsky (Joel on Software)
There were other strange signals and signs. Another day, suddenly felt an almost overwhelming urge to travel to Balitmore. I wanted to 'kidnap' a helicoper fly it there if I didn't drive the there', she explains. 'I had no idea where I was to go, only that I was certain I would know my destination as I encountered signs and certain landmarks along the way. I was not even certain who I was to meet, or what my mission was, but I felt I must go.' Beginning to heal by this time with Talbon's help, she resisted that urge. Yet she sensed she would be summoned for three more Cat Woman missions: two in 1999 and one in 2000. As for the code words for activating her, those had been erased from Cheryl's conscious memory. Buried deep in her unconscious mind, however, the words, when called up, cause her to react as her programmers want her to. Though she can't remember the activation codes, Cheryl knows her handlers said the same things every time. 'I'm working on unblocking the words in therapy. Once I know what the words are, I can learn how to stop their effect on me. I did it already when I learned the control code. Standing in front of a mirror, I said the control code words over and over until I was completely desensitised to them. That's what I have to do for the activation code words... but I have not been able to recall all of them as yet.' Dr. Talbon was struck by another very important thing. 'It all hung together. The stories Cheryl told - even though it was upsetting to think people could do stuff like that - they were not disjointed. They were not repetitive in terms of "I've heard this before". It was not just trying consciously or unconsciously to get attention. She'd really processed them out and was done with them. She didn't come up with it again [after telling the story once and dealing with it]. Once it was done, it was done. And I think that was probably the biggest factor for me in her believability. I got no sense that she was using these stories to make herself a really interesting person to me so I'd really want to work with her, or something.
Cheryl Hersha (Secret Weapons: How Two Sisters Were Brainwashed to Kill for Their Country)
Code for Humanity (The Sonnet) There is no such thing as ethical hacking, If it were ethical they wouldn't be teaching it. Because like it or not ethics is bad for business, They teach hacking so they could use it for profit. With the right sequence of zeros and ones we could, Equalize all bank accounts of planet earth tomorrow. Forget about what glass house gargoyles do with tech, How will you the human use tech to eliminate sorrow? In a world full of greedy edisons, be a humble Tesla, Time remembers no oligarch kindly no matter the status. Only innovators who get engraved in people's heart, Are the ones who innovate with a humane purpose. Innovate to bridge the gap, not exploit and cater to disparities. In a world run by algorithms of greed write a code that helps 'n heals.
Abhijit Naskar (Corazon Calamidad: Obedient to None, Oppressive to None)
More proof that Lynn is still meant to continue with the government programme occurred during the winter of 2000, when she was sitting at a cafeteria table at the area college. It was later in the afternoon when a few people congregated there with books spread out so they could study while drinking coffee or snacking. Many tables were empty, yet after Lynn had been sitting for a few moments, an elderly man sat down across from her. The old man seemed familiar to Lynn, though, at first, she pretended to ignore him. He said nothing, just sat there as someone might when all the tables are filled and it is necessary to share space with a stranger. His presence made her uncomfortable, yet there was nothing specific that alerted her. A short while later, Mac, the man who had been Lynn's handler in Mexico, came out of the shadows and stopped at the table. He was younger than the old man. His clothes were military casual, the type of garments that veteran students who have military experience might recognise, but not think unusual. He leaned over Lynn and kissed her gently on the forehead, spoke quietly to her, and then said 'Wake up, Sleeping Beauty.' Those were the code words that would start the cover programme of which she was still part. The words led to her being switched from the control of the old man, a researcher she now believes may have been part of Dr Ewen Cameron's staff before coming to the United States for the latter part of his career, to the younger man. The change is like a re-enlistment in an army she never willingly joined. In a very real way, she is a career soldier who has never been paid, never allowed to retire and never given a chance to lead a life free from the fear of what she might do without conscious awareness.
Lynn Hersha (Secret Weapons: How Two Sisters Were Brainwashed to Kill for Their Country)
So which theory did Lagos believe in? The relativist or the universalist?" "He did not seem to think there was much of a difference. In the end, they are both somewhat mystical. Lagos believed that both schools of thought had essentially arrived at the same place by different lines of reasoning." "But it seems to me there is a key difference," Hiro says. "The universalists think that we are determined by the prepatterned structure of our brains -- the pathways in the cortex. The relativists don't believe that we have any limits." "Lagos modified the strict Chomskyan theory by supposing that learning a language is like blowing code into PROMs -- an analogy that I cannot interpret." "The analogy is clear. PROMs are Programmable Read-Only Memory chips," Hiro says. "When they come from the factory, they have no content. Once and only once, you can place information into those chips and then freeze it -- the information, the software, becomes frozen into the chip -- it transmutes into hardware. After you have blown the code into the PROMs, you can read it out, but you can't write to them anymore. So Lagos was trying to say that the newborn human brain has no structure -- as the relativists would have it -- and that as the child learns a language, the developing brain structures itself accordingly, the language gets 'blown into the hardware and becomes a permanent part of the brain's deep structure -- as the universalists would have it." "Yes. This was his interpretation." "Okay. So when he talked about Enki being a real person with magical powers, what he meant was that Enki somehow understood the connection between language and the brain, knew how to manipulate it. The same way that a hacker, knowing the secrets of a computer system, can write code to control it -- digital namshubs?" "Lagos said that Enki had the ability to ascend into the universe of language and see it before his eyes. Much as humans go into the Metaverse. That gave him power to create nam-shubs. And nam-shubs had the power to alter the functioning of the brain and of the body." "Why isn't anyone doing this kind of thing nowadays? Why aren't there any namshubs in English?" "Not all languages are the same, as Steiner points out. Some languages are better at metaphor than others. Hebrew, Aramaic, Greek, and Chinese lend themselves to word play and have achieved a lasting grip on reality: Palestine had Qiryat Sefer, the 'City of the Letter,' and Syria had Byblos, the 'Town of the Book.' By contrast other civilizations seem 'speechless' or at least, as may have been the case in Egypt, not entirely cognizant of the creative and transformational powers of language. Lagos believed that Sumerian was an extraordinarily powerful language -- at least it was in Sumer five thousand years ago." "A language that lent itself to Enki's neurolinguistic hacking." "Early linguists, as well as the Kabbalists, believed in a fictional language called the tongue of Eden, the language of Adam. It enabled all men to understand each other, to communicate without misunderstanding. It was the language of the Logos, the moment when God created the world by speaking a word. In the tongue of Eden, naming a thing was the same as creating it. To quote Steiner again, 'Our speech interposes itself between apprehension and truth like a dusty pane or warped mirror. The tongue of Eden was like a flawless glass; a light of total understanding streamed through it. Thus Babel was a second Fall.' And Isaac the Blind, an early Kabbalist, said that, to quote Gershom Scholem's translation, 'The speech of men is connected with divine speech and all language whether heavenly or human derives from one source: the Divine Name.' The practical Kabbalists, the sorcerers, bore the title Ba'al Shem, meaning 'master of the divine name.'" "The machine language of the world," Hiro says.
Neal Stephenson (Snow Crash)
The ascetic planet he sights is the planet of the practising as a whole, the planet of advanced-civilized humans, the planet of those who have begun to give their existence forms and contents under vertical tensions in countless programmes of effort, some more and some less strictly coded. When Nietzsche speaks of the ascetic planet, it is not because he would rather have been born on a more relaxed star. His antiquity-instinct tells him that every heavenly body worth inhabiting must - correctly understood - be an ascetic planet inhabited by the practising, the aspiring and the virtuosos. What is antiquity for him but the code word for the age in which humans had to become strong enough for a sacred-imperial image of the whole? Inherent in the great worldviews of antiquity was the intention of showing mortals how they could live in harmony with the 'universe', even and especially when that whole showed them its baffling side, its lack of consideration for individuals.
Peter Sloterdijk (Du mußt dein Leben ändern)
Peopleware. A major contribution during recent years has been DeMarco and Lister's 1987 book, Peopleware: Productive Projects and Teams. Its underlying thesis is that "The major problems of our work are not so much technological as sociological in nature." It abounds with gems such as, "The manager's function is not to make people work, it is to make it possible for people to work." It deals with such mundane topics as space, furniture, team meals together. DeMarco and Lister provide real data from their Coding War Games that show stunning correlation between performances of programmers from the same organization, and between workplace characteristics and both productivity and defect levels. The top performers' space is quieter, more private, better protected against interruption, and there is more of it. . . . Does it really matter to you . . . whether quiet, space, and privacy help your current people to do better work or [alternatively] help you to attract and keep better people?[19]
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
Let’s consider another similar story — the dating website Plenty of Fish. German programmer Markus Frind started the company in 2003 as a programming exercise. He had been wanting to learn a new coding language called ASP.NET, so he built the site in two weeks — and to his surprise, it took off. Frind never raised a dime of outside money, because the venture was profitable from the beginning. “I didn’t see the need to raise money because I wouldn’t know what to do with it,” he said in a 2015 interview with Business Insider. “It was a profitable company, and there was no need to raise money.”3 Plenty of Fish grew slowly and organically for more than 10 years, eventually growing to about 75 employees and 90 million registered users. In 2015, Match Group (which also owns dating sites Match.com and OKCupid) bought Plenty of Fish for $575 million. “It wasn’t like I had a plan to create a dating site,” Frind said. “It was just a side project I created that got really big.” Not bad for what started as a hobby.
Brian de Haaff (Lovability: How to Build a Business That People Love and Be Happy Doing It)
Tom Demarco, a principal of the Atlantic Systems Guild team of consultants ... and his colleague Timothy Lister devised a study called the Coding War Games. The purpose of the games was to identify the characteristics of the best and worst computer programmers; more than six hundred developers from ninety-two different companies participated. Each designed, coded, and tested a program, working in his normal office space during business hours. Each participant was also assigned a partner from the same company. The partners worked separately, however, without any communication, a feature of the games that turned out to be critical. When the results came in, they revealed an enormous performance gap. The best outperformed the worst by a 10:1 ratio. The top programmers were also about 2.5 times better than the median. When DeMarco and Lister tried to figure out what accounted for this astonishing range, the factors that you'd think would matter — such as years of experience, salary, even the time spent completing the work — had little correlation to outcome. Programmers with 10 years' experience did no better than those with two years. The half who performed above the median earned less than 10 percent more than the half below — even though they were almost twice as good. The programmers who turned in "zero-defect" work took slightly less, not more, time to complete the exercise than those who made mistakes. It was a mystery with one intriguing clue: programmers from the same companies performed at more or less the same level, even though they hadn't worked together. That's because top performers overwhelmingly worked for companies that gave their workers the most privacy, personal space, control over their physical environments, and freedom from interruption. Sixty-two percent of the best performers said that their workspace was acceptably private, compared to only 19 percent of the worst performers; 76 percent of the worst performers but only 38 percent of the top performers said that people often interrupted them needlessly.
Susan Cain (Quiet: The Power of Introverts in a World That Can't Stop Talking)
Hiro and Y.T. have eaten a lot of junk food together in different joints all over L.A. -- doughnuts, burritos, pizza, sushi, you name it -- and all Y.T. ever talks about is her mother and the terrible job that she has with the Feds. The regimentation. The lie-detector tests. The fact that for all the work she does, she really has no idea what it is that the government is really working on. It's always been a mystery to Hiro, too, but then, that's how the government is. It was invented to do stuff that private enterprise doesn't bother with, which means that there's probably no reason for it; you never know what they're doing or why. Hackers have traditionally looked upon the government's coding sweatshops with horror and just tried to forget that all of that shit ever existed. But they have thousands of programmers. The programmers work twelve hours a day out of some twisted sense of personal loyalty. Their software-engineering techniques, while cruel and ugly, are very sophisticated. They must have been up to something.
Neal Stephenson (Snow Crash)
Why is programming fun? What delights may its practitioner expect as his reward? First is the sheer joy of making things. As the child delights in his first mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake. Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child’s first clay pencil holder “for Daddy’s office.” Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate. Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something; sometimes practical, sometimes theoretical, and sometimes both. Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.) Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard and a display screen comes to life, showing things that never were nor could be. Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
They also devised an ingeniously low-tech solution to a complex problem. Even highly verbal autistic adults occasionally struggle with processing and producing speech, particularly in the chaotic and generally overwhelming atmosphere of a conference. By providing attendees with name-tag holders and pieces of paper that were red on one side and yellow on the other, they enabled Autistics to communicate their needs and desires without having to articulate them in the pressure of the moment. The red side facing out signified, "Nobody should try to interact with me," while the yellow side meant, "Only people I already know should interact with me, not strangers." (Green badges were added later to signify, "I want to interact but am having trouble initiating, so please initiate an interaction with me.") These color-coded "interaction signal badges" turned out to be so useful that they have since been widely adopted at autistic-run events all over the world, and name-tag labels similar to Autreat ("autistic retreat") green badges have recently been employed at conferences for Perl programmers to indicate that the wearer is open to spontaneous social approaches.
Steve Silberman (NeuroTribes: The Legacy of Autism and the Future of Neurodiversity)
The thing about Web companies is there's always something severely fucked-up. There is always an outage, always lost data, always compromised customer information, always a server going offline. You work with these clugey internal tools and patch together work-arounds to compensate for the half-assed, rushed development, and after a while the fucked-upness of the whole enterprise becomes the status quo. VPs insecure that they're not as in touch as they need to be with conditions on the ground insert themselves into projects midstream and you get serious scope creep. You present to the world this image that you're a buttoned-down tech company with everything in its right place but once you're on the other side of the firewall it looks like triage time in an emergency room, 24/7. Systems break down, laptops go into the blue screen of death, developers miskey a line of code, error messages appear that mean absolutely nothing. The instantaneousness with which you can fix stuff creates a culture that works by the seat of its pants. I swear the whole Web was built by virtue of developers fixing one mistake after another, constantly forced to compensate for the bugginess of their code.
Ryan Boudinot (Blueprints of the Afterlife)
Think of the many articles one can find every year in the Wall Street Journal describing some entrepreneur or businessman as being a "pioneer" or a "maverick" or a "cowboy." Think of the many times these ambitious modern men are described as "staking their claim" or boldly pushing themselves "beyond the frontier" or even "riding into the sunset." We still use this nineteenth-century lexicon to describe our boldest citizens, but it's really a code now, because these guys aren't actually pioneers; they are talented computer programmers, biogenetic researchers, politicians, or media monguls making a big splash in a fast modern economy. But when Eustace Conway talks about staking a claim, the guy is literally staking a goddamn claim. Other frontier expressions that the rest of us use as metaphors, Eustace uses literally. He does sit tall in the saddle; he does keep his powder dry; he is carving out a homestead. When he talks about reining in horses or calling off the dogs or mending fences, you can be sure that there are real horses, real dogs or real fences in the picture. And when Eustace goes in for the kill, he's not talking about a hostile takeover of a rival company; he's talking about really killing something.
Elizabeth Gilbert (The Last American Man)
There, in that presumed paradise, the engineers were stranded in the company of an infantile mentality. They created artificial smartness, made a simulacrum of intelligence. But what they talked to all day was little more than a mechanism that read bits off a disk drive. If a comma in the code was out of place, it complained like a kid who won’t tolerate a pea touching the mashed potatoes. And, exhausted though the programmer may be, the machine was like an uncanny child that never got tired. There was Karl and the rest of the team, fitting the general definition of the modern software engineer: a man left alone all day with a cranky, illiterate thing, which he must somehow make grow up. It was an odd and satisfying gender revenge. Is it any surprise that these isolated men need relief, seek company, hook up This is not to say that women are not capable of engineering’s male-like isolation. Until I became a programmer, I didn’t thoroughly understand the usefulness of such isolation: the silence, the reduction of life to thought and form; for example, going off to a dark room to work on a program when relations with people get difficult. I’m perfectly capable of this isolation. I first noticed it during the visit of a particularly tiresome guest. All I could think was: There’s that bug waiting for me, I really should go find that bug.
Ellen Ullman (Life in Code: A Personal History of Technology)
Knuth: They were very weak, actually. It wasn't presented systematically and everything, but I thought they were pretty obvious. It was a different culture entirely. But the guy who said he was going to fire people, he wants programming to be something where everything is done in an inefficient way because it's supposed to fit into his idea of orderliness. He doesn't care if the program is good or not—as far as its speed and performance—he cares about that it satisfies other criteria, like any bloke can be able to maintain it. Well, people have lots of other funny ideas. People have this strange idea that we want to write our programs as worlds unto themselves so that everybody else can just set up a few parameters and our program will do it for them. So there'll be a few programmers in the world who write the libraries, and then there are people who write the user manuals for these libraries, and then there are people who apply these libraries and that's it. The problem is that coding isn't fun if all you can do is call things out of a library, if you can't write the library yourself. If the job of coding is just to be finding the right combination of parameters, that does fairly obvious things, then who'd want to go into that as a career? There's this overemphasis on reusable software where you never get to open up the box and see what's inside the box. It's nice to have these black boxes but, almost always, if you can look inside the box you can improve it and make it work better once you know what's inside the box. Instead people make these closed wrappers around everything and present the closure to the programmers of the world, and the programmers of the world aren't allowed to diddle with that. All they're able to do is assemble the parts. And so you remember that when you call this subroutine you put x0, y0, x1, y1 but when you call this subroutine it's x0, x1, y0, y1. You get that right, and that's your job.
Peter Seibel (Coders at Work: Reflections on the Craft of Programming)
Computers speak machine language," Hiro says. "It's written in ones and zeroes -- binary code. At the lowest level, all computers are programmed with strings of ones and zeroes. When you program in machine language, you are controlling the computer at its brainstem, the root of its existence. It's the tongue of Eden. But it's very difficult to work in machine language because you go crazy after a while, working at such a minute level. So a whole Babel of computer languages has been created for programmers: FORTRAN, BASIC, COBOL, LISP, Pascal, C, PROLOG, FORTH. You talk to the computer in one of these languages, and a piece of software called a compiler converts it into machine language. But you never can tell exactly what the compiler is doing. It doesn't always come out the way you want. Like a dusty pane or warped mirror. A really advanced hacker comes to understand the true inner workings of the machine -- he sees through the language he's working in and glimpses the secret functioning of the binary code -- becomes a Ba'al Shem of sorts." "Lagos believed that the legends about the tongue of Eden were exaggerated versions of true events," the Librarian says. "These legends reflected nostalgia for a time when people spoke Sumerian, a tongue that was superior to anything that came afterward." "Is Sumerian really that good?" "Not as far as modern-day linguists can tell," the Librarian says. "As I mentioned, it is largely impossible for us to grasp. Lagos suspected that words worked differently in those days. If one's native tongue influences the physical structure of the developing brain, then it is fair to say that the Sumerians -- who spoke a language radically different from anything in existence today -- had fundamentally different brains from yours. Lagos believed that for this reason, Sumerian was a language ideally suited to the creation and propagation of viruses. That a virus, once released into Sumer, would spread rapidly and virulently, until it had infected everyone." "Maybe Enki knew that also," Hiro says. "Maybe the nam-shub of Enki wasn't such a bad thing. Maybe Babel was the best thing that ever happened to us.
Neal Stephenson (Snow Crash)
I WANT TO end this list by talking a little more about the founding of Pixar University and Elyse Klaidman’s mind-expanding drawing classes in particular. Those first classes were such a success—of the 120 people who worked at Pixar then, 100 enrolled—that we gradually began expanding P.U.’s curriculum. Sculpting, painting, acting, meditation, belly dancing, live-action filmmaking, computer programming, design and color theory, ballet—over the years, we have offered free classes in all of them. This meant spending not only the time to find the best outside teachers but also the real cost of freeing people up during their workday to take the classes. So what exactly was Pixar getting out of all of this? It wasn’t that the class material directly enhanced our employees’ job performance. Instead, there was something about an apprentice lighting technician sitting alongside an experienced animator, who in turn was sitting next to someone who worked in legal or accounting or security—that proved immensely valuable. In the classroom setting, people interacted in a way they didn’t in the workplace. They felt free to be goofy, relaxed, open, vulnerable. Hierarchy did not apply, and as a result, communication thrived. Simply by providing an excuse for us all to toil side by side, humbled by the challenge of sketching a self-portrait or writing computer code or taming a lump of clay, P.U. changed the culture for the better. It taught everyone at Pixar, no matter their title, to respect the work that their colleagues did. And it made us all beginners again. Creativity involves missteps and imperfections. I wanted our people to get comfortable with that idea—that both the organization and its members should be willing, at times, to operate on the edge. I can understand that the leaders of many companies might wonder whether or not such classes would truly be useful, worth the expense. And I’ll admit that these social interactions I describe were an unexpected benefit. But the purpose of P.U. was never to turn programmers into artists or artists into belly dancers. Instead, it was to send a signal about how important it is for every one of us to keep learning new things. That, too, is a key part of remaining flexible: keeping our brains nimble by pushing ourselves to try things we haven’t tried before. That’s what P.U. lets our people do, and I believe it makes us stronger.
Ed Catmull (Creativity, Inc.: an inspiring look at how creativity can - and should - be harnessed for business success by the founder of Pixar)
Most programmers approach software development with a mindset I call tactical programming. In the tactical approach, your main focus is to get something working, such as a new feature or a bug fix. At first glance this seems totally reasonable: what could be more important than writing code that works? However, tactical programming makes it nearly impossible to produce a good system design.
John Ousterhout (A Philosophy of Software Design)
After Apollo, Norton, still with TRW, worked on a project to computerize the distribution of hydroelectric power in the Northwest. He was still writing his painfully detailed critiques of other people’s software. As it happened, a high school senior named Bill Gates came to work for him as a programmer. Gates has credited Norton with being among his best software teachers. Norton surely learned more from reading our code than we learned from him. Users of Microsoft software might wish he had learned more.
Don Eyles (Sunburst and Luminary: An Apollo Memoir)
But that ignores the fact that tests are also a way of communicating with other developers, so I now do write tests on code shared with others or that relies on the peculiarities of external dependencies.
David Thomas (The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition)
If you’ve heard about the software industry, it might be because of the unusual way in which programmers are interviewed.
Adam Barr (The Problem with Software: Why Smart Engineers Write Bad Code)
For those of you interested in reading my first Sherlock Holmes novel, I have news!! 2023 New Sherlock Holmes Books From debut novels to new titles from established authors, lots of individual author short story collections to new volumes of the MX Book of New Sherlock Holmes stories, we have a host of new titles in 2023. From the MX Publishing website you can order any new title now - even months ahead of publication. Every book you buy means we buy a meal for someone who really needs it through the shareameal program from the World Food Programme for whom Steve our co-founder is an advisory council member and get 30% off for three or more books. Use the code 2023new to get the discount.
James Heatherly
What kinds of Work will You do in Freelancing? What kind of work will you do in Freelancing? And to understand the type of work in freelancing, You need to have a clear idea of what freelancing is. There is no specific type of freelancing, it can be of many types, such as - Freelance Photography, Freelance Journalism, Freelance Writer, Freelance Data Entry, Freelance Logo Designer, Freelance Graphics Designer etc. There's no end to the amount of work you can do with freelancing. The most interesting thing is that you are everything in this process. There is no one to twirl over your head, you are the boss here. Even here there is no obligation to work from 9-5. Today I discuss some freelancing tasks that are popular in the freelancing sector or are done by many freelancers. For example: Data Entry: It wouldn't be too much of a mistake to say that data entry is the easiest job. Rather, it can be said without a doubt that data entry is more difficult than any other job. Data entry work basically means typing. This work is usually provided as a PDF file and is described as a 'Word type work'. Any employee can take a data entry job as a part-time job for extra income at the end of his work. Graphics Design: One of the most popular jobs in the freelancing world is graphic design. The main reasons for the popularity of this work are its attractiveness and simplicity. Everything we see online is contributed by graphics. For example, Cover pages, Newspaper, Book cover pages, advertisements and Photographs, Editing or changing the background of a picture or photo, Creating banners for advertising, Creating visiting cards, Business cards or leaflets, Designed for webpages known as (PhD), T-shirt designing, Logo designing, Making cartoons and many more. Web Design and Development: 'Web design' or 'Site design' are used interchangeably. The most important job of freelancing is web design. From the simplest to the most difficult aspects of this work, almost all types of work are done by freelancers. There are many other themes like WordPress, Elementor, Joomla, and DV that can be used to create entire sites. Sometimes coding is required to create some sites. If the web designer has coding experience or skills then there is no problem, and if not then the site creation should be done by programmers. Programming: Programming means writing some signals, codes, or symbols into a specific system. And its job is to give different types of commands or orders to the computer. If you give some command to the computer in Bengali or English, the computer will not understand it. For that want binary code or number. Just as any book is written in English, Hindi, Japanese Bengali, etc. every program is written in some particular programming language like C++, Java, etc. The written form of the program is called source code. A person who writes source code is called a programmer, coder, or developer. While writing the program, the programmer has to follow the syntax or grammar of that particular programming language. Other work: Apart from the above jobs, there are various other types of jobs that are in high demand in the freelancing sector or market. The tasks are: Writing, Article or blog post writing SEO Marketing, Digital marketing, Photo, Audio, Video Editing, Admin jobs, Software development, Translation, Affiliate marketing, IT and Networking etc. Please Visit Our Blogging Website to read more Articles related to Freelancing and Outsourcing, Thank You.
Bhairab IT Zone
Benn is a smart guy. He graduated from an elite college (the University of Virginia) with a degree in economics, and like many in his situation he had ambitions for his career. It didn’t take him long to realize that these ambitions would be thwarted so long as his main professional skills could be captured in an Excel macro. He decided, therefore, he needed to increase his value to the world. After a period of research, Benn reached a conclusion: He would, he declared to his family, quit his job as a human spreadsheet and become a computer programmer. As is often the case with such grand plans, however, there was a hitch: Jason Benn had no idea how to write code. As a computer scientist I can confirm an obvious point: Programming computers is hard. Most new developers dedicate a four-year college education to learning the ropes before their first job—and even then, competition for the best spots is fierce. Jason Benn didn’t have this time. After his Excel epiphany, he quit his job at the financial firm and moved home to prepare for his next step. His parents were happy he had a plan, but they weren’t happy about the idea that this return home might be long-term. Benn needed to learn a hard skill, and needed to do so fast.
Cal Newport (Deep Work: Rules for Focused Success in a Distracted World)
What kinds of Work will You do in Freelancing? What kind of work will you do in Freelancing? And to understand the type of work in freelancing, You need to have a clear idea of what freelancing is. There is no specific type of freelancing, it can be of many types, such as - Freelance Photography, Freelance Journalism, Freelance Writer, Freelance Data Entry, Freelance Logo Designer, Freelance Graphics Designer etc. There's no end to the amount of work you can do with freelancing. The most interesting thing is that you are everything in this process. There is no one to twirl over your head, you are the boss here. Even here there is no obligation to work from 9-5. Today I discuss some freelancing tasks that are popular in the freelancing sector or are done by many freelancers. For example: Data Entry: It wouldn't be too much of a mistake to say that data entry is the easiest job. Rather, it can be said without a doubt that data entry is more difficult than any other job. Data entry work basically means typing. This work is usually provided as a PDF file and is described as a 'Word type work'. Any employee can take a data entry job as a part-time job for extra income at the end of his work. Graphics Design: One of the most popular jobs in the freelancing world is graphic design. The main reasons for the popularity of this work are its attractiveness and simplicity. Everything we see online is contributed by graphics. For example, Cover pages, Newspaper, Book cover pages, advertisements and Photographs, Editing or changing the background of a picture or photo, Creating banners for advertising, Creating visiting cards, Business cards or leaflets, Designed for webpages known as (PhD), T-shirt designing, Logo designing, Making cartoons and many more. Web Design and Development: 'Web design' or 'Site design' are used interchangeably. The most important job of freelancing is web design. From the simplest to the most difficult aspects of this work, almost all types of work are done by freelancers. There are many other themes like WordPress, Elementor, Joomla, and DV that can be used to create entire sites. Sometimes coding is required to create some sites. If the web designer has coding experience or skills then there is no problem, and if not then the site creation should be done by programmers. Programming: Programming means writing some signals, codes, or symbols into a specific system. And its job is to give different types of commands or orders to the computer. If you give some command to the computer in Bengali or English, the computer will not understand it. For that want binary code or number. Just as any book is written in English, Hindi, Japanese Bengali, etc. every program is written in some particular programming language like C++, Java, etc. The written form of the program is called source code. A person who writes source code is called a programmer, coder, or developer. While writing the program, the programmer has to follow the syntax or grammar of that particular programming language. Other work: Apart from the above jobs, there are various other types of jobs that are in high demand in the freelancing sector or market. The tasks are: Writing, Article or blog post writing SEO Marketing, Digital marketing, Photo, Audio, Video Editing, Admin jobs, Software development, Translation, Affiliate marketing, IT and Networking etc.
Bhairab IT Zone
Programmers and software engineers who dive into code without writing a spec tend to think they're cool gunslingers, shooting from the hip. They're not. They are terribly unproductive. They write bad code and produce shoddy software, and they threaten their projects by taking giant risks which are completely uncalled for.
Joel Spolsky (Joel on Software)
The tests fit the production code like an antibody fits an antigen.
Robert C. Martin (The Clean Coder: A Code of Conduct for Professional Programmers)
God was the programmer. The laws of physics and the fundamental constants were the source code.
Robert J. Sawyer (Calculating God)
Software,” as the venture capitalist Marc Andreessen has proclaimed, “is eating the world.” It’s true. You use software nearly every instant you’re awake. There’s the obvious stuff, like your phone, your laptop, email and social networking and video games and Netflix, the way you order taxis and food. But there’s also less-obvious software lurking all around you. Nearly any paper book or pamphlet you touch was designed using software; code inside your car helps manage the braking system; “machine-learning” algorithms at your bank scrutinize your purchasing activity to help spy the moment when a criminal dupes your card and starts fraudulently buying things using your money. And this may sound weirdly obvious, but every single one of those pieces of software was written by a programmer—someone precisely like Ruchi Sanghvi or Mark Zuckerberg. Odds are high the person who originally thought of the product was a coder: Programmers spend their days trying to get computers to do new things, so they’re often very good at understanding the crazy what-ifs that computers make possible. (What if you had a computer take every word you typed and, quietly and constantly and automatically in the background, checked it against a dictionary of common English words? Hello, spell-check!) Sometimes it seems that the software we use just sort of sprang into existence, like grass growing on the lawn. But it didn’t. It was created by someone who wrote out—in code—a long, painstaking set of instructions telling the computer precisely what to do, step-by-step, to get a job done. There’s a sort of priestly class mystery cultivated around the word algorithm, but all they consist of are instructions: Do this, then do this, then do this. News Feed is now an extraordinarily complicated algorithm involving some trained machine learning; but it’s ultimately still just a list of rules. So the rule makers have power. Indeed, these days, the founders of high-tech companies—the ones who determine what products get created, what problems get solved, and what constitutes a “problem” in the first place—are increasingly technologists, the folks who cut their teeth writing endless lines of code and who cobbled together the prototype for their new firm themselves. Programmers are thus among the most quietly influential people on the planet.
Clive Thompson (Coders: The Making of a New Tribe and the Remaking of the World)
When we do read code, we find that some of it gets written because of machine limitations, some because of language limitations, some because of programmer limitations, some because of historical accidents, and some because of specifications—both essential and inessential.
Gerald M. Weinberg (The Psychology of Computer Programming)
In general, when the description of a current problem “rings bells,” you’ll want to dig out any similar code from your archives for study.
V. Anton Spraul (Think Like a Programmer: An Introduction to Creative Problem Solving)
Women in technology are stereotyped. Many men—and some women—often assume that a female programmer is not going to be as technically competent. A woman in technology can also be thought of as either not as passionate or dedicated as a man, or seen as a geeky anomaly who isn’t very feminine, but hangs with the guys and plays Zelda. Women are often thought to be good testers, but not taken as seriously in software developer roles.
John Sonmez (The Complete Software Developer's Career Guide: How to Learn Your Next Programming Language, Ace Your Programming Interview, and Land The Coding Job Of Your Dreams)
Mike Adams was by far the hardest for me to read. He was supportive in my first few weeks, but he was the least visible, occupied by prior projects. I also understood the least about the kinds of programming that were his strengths. Although I wasn't a programmer, I did have a computer science degree, something that, ironically, neither Adams, nor Peatling, nor Beau had. I didn't write code mostly because early in my career, I realized I did best at the level above code: leading teams, working with ideas, and shepherding projects to ship. Over my career, I've often been asked how I could manage programmers without doing programming myself. I believe I can manage anyone making anything provided two things are true: clarity and trust. If there is clarity between us on the goal and how we'll know when we're done, then we can speak the same language about what we need to do to get there. I knew enough about programming to call bullshit when needed and ask insightful questions. Making good things is about managing hundreds of trade-off decisions, and that's one of my best skills. Regarding clarity, most teams in the working world are starving for it. Layers of hierarchy create conflicting goals. Many teams have leaders who've never experienced clarity in their entire lives: they don't know what to look for, much less what to do when they find it. Thinking clearly, as trite as it sounds, was my strength.
Scott Berkun (The Year Without Pants: WordPress.com and the Future of Work)
The more you produce, the more you have to read. Automated code generation only makes matters worse. As Martin Fowler writes about low code quality: “Even small changes require programmers to understand large areas of code, code that’s difficult to understand.” [32] Code that’s difficult to understand slows you down. On the other hand, every minute you invest in making the code easier to understand pays itself back tenfold.
Mark Seemann (Code That Fits in Your Head: Heuristics for Software Engineering (Robert C. Martin Series))
Many years later, when he had plenty of computer time, Serge still wrote out new programs on paper before typing them into the machine. “In Russia, time on the computer was measured in minutes,” he said. “When you write a program, you are given a tiny time slot to make it work. Consequently we learned to write the code in ways that minimized the amount of debugging. And so you had to think about it a lot before you committed it to paper. . . . The ready availability of computer time creates this mode of working where you just have an idea and type it and maybe erase it ten times. Good Russian programmers, they tend to have had that one experience at some time in the past—the experience of limited access to computer time.
Michael Lewis (Flash Boys: A Wall Street Revolt)
More than half the programmers at Goldman were Russians. Russians had a reputation for being the best programmers on Wall Street, and Serge thought he knew why: They had been forced to learn to program computers without the luxury of endless computer time. Many years later, when he had plenty of computer time, Serge still wrote out new programs on paper before typing them into the machine. “In Russia, time on the computer was measured in minutes,” he said. “When you write a program, you are given a tiny time slot to make it work. Consequently we learned to write the code in ways that minimized the amount of debugging. And so you had to think about it a lot before you committed it to paper. . . . The ready availability of computer time creates this mode of working where you just have an idea and type it and maybe erase it ten times. Good Russian programmers, they tend to have had that one experience at some time in the past—the experience of limited access to computer time.
Michael Lewis (Flash Boys: A Wall Street Revolt)
Imagine another possibility – suppose you could back up your brain to a portable hard drive and then run it on your laptop. Would your laptop be able to think and feel just like a Sapiens? If so, would it be you or someone else? What if computer programmers could create an entirely new but digital mind, composed of computer code, complete with a sense of self, consciousness and memory? If you ran the program on your computer, would it be a person? If you deleted it could you be charged with murder?
Yuval Noah Harari (Sapiens: A Brief History of Humankind)
It used to be that developers rarely wrote tests. If tests were written at all, they were written by a separate QA team. However, one of the tenets of agile development is that testing should be tightly integrated with development, and programmers should write tests for their own code. This practice has now become widespread.
John Ousterhout (A Philosophy of Software Design)
Because the priests say that God created our souls, and that just puts us under the control of another puppeteer. If God created our will, then he’s responsible for every choice we make. God, our genes, our environment, or some stupid programmer keying in code at an ancient terminal—there’s no way free will can ever exist if we as individuals are the result of some external cause.” “So—as I recall, the official philosophical answer is that free will doesn’t exist. Only the illusion of free will, because the causes of our behavior are so complex that we can’t trace them back. If you’ve got one line of dominoes knocking each other down one by one, then you can always say, Look, this domino fell because that one pushed it. But when you have an infinite number of dominoes that can be traced back in an infinite number of directions, you can never find where the causal chain begins. So you think, That domino fell because it wanted to.” “Bobagem,” said Miro. “Well, I admit that it’s a philosophy with no practical value,” said Ender. “Valentine once explained it to me this way. Even if there is no such thing as free will, we have to treat each other as if there were free will in order to live together in society. Because otherwise, every time somebody does something terrible, you can’t punish him, because he can’t help it, because his genes or his environment or God made him do it, and every time somebody does something good, you can’t honor him, because he was a puppet, too. If you think that everybody around you is a puppet, why bother talking to them at all? Why even try to plan anything or create anything, since everything you plan or create or desire or dream of is just acting out the script your puppeteer built into you.” “Despair,” said Miro. “So we conceive of ourselves and everyone around us as volitional beings. We treat everyone as if they did things with a purpose in mind, instead of because they’re being pushed from behind. We punish criminals. We reward altruists. We plan things and build things together. We make promises and expect each other to keep them. It’s all a made-up story, but when everybody believes that everybody’s actions are the result of free choice, and takes and gives responsibility accordingly, the result is civilization.” “Just a story.
Orson Scott Card (Xenocide (Ender's Saga #3))
Happiness has a cascading effect. Happy programmers do the right thing. They write simple, readable code. They take clean, expressive, readable, elegant approaches. They have fun
Anonymous
There are certain tips and tricks that apply at all levels of software development, ideas that are almost axiomatic, and processes that are virtually universal. However, these approaches are rarely documented as such; you'll mostly find them written down as odd sentences in discussions of design, project management, or coding.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
Master programmers think of systems as stories to be told rather than programs to be written.
Robert C. Martin (The Robert C. Martin Clean Code Collection (Collection) (Robert C. Martin Series))
nobody seemed to think programming is a solved problem: most are still looking for a better way to write software, whether by finding ways to automatically analyze code, coming up with better ways for programmers to work together, or finding (or designing) better programming languages.
Peter Seibel (Coders at Work: Reflections on the Craft of Programming)
Abstraction is useful in software because it allows the programmer to: • hide irrelevant detail, and concentrate on essentials. • present a “black box” interface to the outside world. The interface specifies the valid operations on the object, but does not indicate how the object will implement them internally. • break a complicated system down into independent components. This in turn localizes knowledge, and prevents undisciplined interaction between components. • reuse and share code.
Peter van der Linden (Expert C Programming: Deep Secrets)
Developers who don't actively think about their code are programming by coincidence—the code might work, but there's no particular reason why.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
One reason to format the code in a uniform way is so that nobody can "own" a piece of code just by formatting it in his or her private way.
Kevlin Henney (97 Things Every Programmer Should Know: Collective Wisdom from the Experts)
And Moore’s Law gave us bad software: Instead of writing efficient code, programmers just waited until the computers got faster. I’m reminded of Blaise Pascal’s comment three centuries ago. Apologizing for a verbose letters he wrote “I have only made this [letter] longer because I have not had the time to make it shorter.
Bill Hammack (How Engineers Create the World: The Public Radio Commentaries of Bill Hammack)
The big challenge is, we have to constrain and mold our ambition level without losing the spark. The stuff I lose sleep over nigh is, how are we doing on this? We want to make progress as fast as possible without exploiting human resources. How do you move faster without killing people? How do you build a community around the project without losing design integrity? And how do we get on an arc that moves from benign dictatorship to more small-group democracy?
Scott Rosenberg (Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software)
...creative output depends on creative input.
Robert C. Martin (The Clean Coder: A Code of Conduct for Professional Programmers)
we just don't have the time to go chasing after bugs that the automated tests could have found for us. We have to spend our time writing new code—and new bugs.
Andrew Hunt (The Pragmatic Programmer: From Journeyman to Master)
Does a good farmer neglect a crop he has planted? Does a good teacher overlook even the most humble student? Does a good father allow a single child to starve? Does a good programmer refuse to maintain his code?
The Tao of Programming
Errors in code are what programmers call bugs, though when our programs go wrong, we prefer to call them “unexpected additional features.” Very
Paul Wilton (Beginning JavaScript)
Jobs would soon pit the iPod team against a Mac software team to refine and produce a product that was more specifically phone-like. The herculean task of squeezing Apple’s acclaimed operating system into a handheld phone would take another two years to complete. Executives would clash; some would quit. Programmers would spend years of their lives coding around the clock to get the iPhone ready to launch, scrambling their social lives, their marriages, and sometimes their health in the process.
Brian Merchant (The One Device: The Secret History of the iPhone)
... creative output depends on creative input.
Robert C. Martin (The Clean Coder: A Code of Conduct for Professional Programmers)
Plan to throw away all sound, art, and code created for a prototype. That way your artists, audio people, and programmers can work quickly without worrying about having to debug their content later. Trying to build production-quality assets during preproduction just slows the process down. Once
Ernest Adams (Fundamentals of Game Design)
Writing and repairing software generally takes far more time and is far more expensive than initially anticipated. “Every feature that is added and every bug that is fixed,” Edward Tenner points out, “adds the possibility of some new and unexpected interaction between parts of the program.”19 De Jager concurs: “If people have learned anything about large software projects, it is that many of them miss their deadlines, and those that are on time seldom work perfectly. … Indeed, on-time error-free installations of complex computer systems are rare.”20 Even small changes to code can require wholesale retesting of entire software systems. While at MIT in the 1980s, I helped develop some moderately complex software. I learned then that the biggest problems arise from bugs that creep into programs during early stages of design. They become deeply embedded in the software’s interdependent network of logic, and if left unfixed can have cascading repercussions throughout the software. But fixing them often requires tracing out consequences that have metastasized in every direction from the original error. As the amount of computer code in our world soars (doubling every two years in consumer products alone), we need practical ways to minimize the number of bugs. But software development is still at a preindustrial stage—it remains more craft than engineering. Programmers resemble artisans: they handcraft computer code out of basic programming languages using logic, intuition, and pattern-recognition skills honed over years of experience.
Thomas Homer-Dixon (The Ingenuity Gap: How Can We Solve the Problems of the Future?)
Lips and jaw and tongue working overtime, producing nothing. She’d gotten stuck in an infinite loop, the same kind of bug in a programmer’s code that left a game character repeating the same action over and over.
Ernie Lindsey (Sara's Game (Sara Winthrop, #1))
Here’s something you may not know: every time you go to Facebook or ESPN.com or wherever, you’re unleashing a mad scramble of money, data, and pixels that involves undersea fiber-optic cables, the world’s best database technologies, and everything that is known about you by greedy strangers. Every. Single. Time. The magic of how this happens is called “real-time bidding” (RTB) exchanges, and we’ll get into the technical details before long. For now, imagine that every time you go to CNN.com, it’s as though a new sell order for one share in your brain is transmitted to a stock exchange. Picture it: individual quanta of human attention sold, bit by bit, like so many million shares of General Motors stock, billions of times a day. Remember Spear, Leeds & Kellogg, Goldman Sachs’s old-school brokerage acquisition, and its disappearing (or disappeared) traders? The company went from hundreds of traders and two programmers to twenty programmers and two traders in a few years. That same process was just starting in the media world circa 2009, and is right now, in 2016, kicking into high gear. As part of that shift, one of the final paroxysms of wasted effort at Adchemy was taking place precisely in the RTB space. An engineer named Matthew McEachen, one of Adchemy’s best, and I built an RTB bidding engine that talked to Google’s huge ad exchange, the figurative New York Stock Exchange of media, and submitted bids and ads at speeds of upwards of one hundred thousand requests per second. We had been ordered to do so only to feed some bullshit line Murthy was laying on potential partners that we were a real-time ads-buying company. Like so much at Adchemy, that technology would be a throwaway, but the knowledge I gained there, from poring over Google’s RTB technical documentation and passing Google’s merciless integration tests with our code, would set me light-years ahead of the clueless product team at Facebook years later.
Antonio García Martínez (Chaos Monkeys: Obscene Fortune and Random Failure in Silicon Valley)
In the AJAX world, a client can make a request, the server responds that it has received the request (so the client can get on with something else), and then at some random time later the actual response to the original request is returned. You see the problem? It becomes a challenge to match requests with the correct responses. From a programming standpoint, the performance tool must spawn a thread that waits for thecorrect response while the rest of the script continues to execute. A deft scripter may be able to code around this, but it may require signifcant changes to a script with the accompanying headache of ongoing maintenance. The reality is that not all testers are bored developers, so it’s better for the performance tool to handle this automatically.
Ian Molyneaux (The Art of Application Performance Testing: Help for Programmers and Quality Assurance)
They were hired to uninstall the personality software of an artificial intelligence created by a mad world leader that killed millions. In order to completely uninstall the software, the programmers have to delete the code line by line and then refresh the software each time. As the programmers work on the slow, grueling task of uninstalling the software, they discover a story unravel that was hidden within the code of the AI. What kind of story does the AI's code tell? A
Julie Wenzel (500 Science Fiction and Fantasy Writing Prompts)
The power these kids wield right now as programmers is individually unprecedented, perhaps even in human history, and they’re getting shoved into the workforce before they’ve had the opportunity to develop into thoughtful, whole citizens,
Nick Parish (Cool Code, Bro: Brogrammers, Geek Anxiety and the New Tech Elite)
The programmer at wit's end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
We didn’t have spell checkers in our editors back then, and I always had poor spelling. The word "collumn" appears in the source code dozens of times. After I released the source code, one of the emails that stands out in memory read: It’s "COLUMN", you dumb FUCK! John Carmack - Programmer
Fabien Sanglard (Game Engine Black Book: Wolfenstein 3D)
speak to computers in a language that they understand and have them do anything that you want to do. This skill is one whose demand is increasing at an increasing rate the world over. Whether you want to learn code to pursue a career as a programmer, web developer or graphics designer or want to learn code to be able to develop your own web applications and other computerized systems, the one thing you need to do is to start somewhere. What better place to start
Timothy C. Needham (Python: For Beginners: A Crash Course Guide To Learn Python in 1 Week (coding, programming, web-programming, programmer))
Programming is an act of creation. When we write code we are creating something out of nothing. We are boldly imposing order upon chaos.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
The Three Laws of TDD You are not allowed to write any production code until you have first written a failing unit test. You are not allowed to write more of a unit test than is sufficient to fail—and not compiling is failing. You are not allowed to write more production code that is sufficient to pass the currently failing unit test.
Robert C. Martin (Clean Coder, The: A Code of Conduct for Professional Programmers (Robert C. Martin Series))
He’d been surprised to find that in at least one way he fit in: More than half the programmers at Goldman were Russians. Russians had a reputation for being the best programmers on Wall Street, and Serge thought he knew why: They had been forced to learn to program computers without the luxury of endless computer time. Many years later, when he had plenty of computer time, Serge still wrote out new programs on paper before typing them into the machine. “In Russia, time on the computer was measured in minutes,” he said. “When you write a program, you are given a tiny time slot to make it work. Consequently we learned to write the code in ways that minimized the amount of debugging. And so you had to think about it a lot before you committed it to paper. The ready availability of computer time creates this mode of working where you just have an idea and type it and maybe erase it ten times. Good Russian programmers, they tend to have had that one experience at some time in the past—the experience of limited access to computer time.
Michael Lewis (Flash Boys)
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Anonymous
Hopper’s thrust was always to simplify and to demystify. She reserved some of her most cutting remarks for those who insisted that only an expert in writing machine code could run a machine; she had no time for programmers who saw themselves as high priests standing between computers and the public.46
Kathleen Broome Williams (Grace Hopper: Admiral of the Cyber Sea)
In many respects, the skill set of an artist is similar to that of a programmer. Michelangelo was the archetypal renaissance man: a painter, sculptor, architect, poet, and engineer. Perhaps he would have made an incredible programmer. When asked about how he created one of his most famous works, the statue of David, he said: I looked into the stone and saw him there, and just chipped away everything else. Is that what you do? Do you reduce and remove the complexities of the problem space, chipping them all away until you reach the beautiful code you were aiming for?
Anonymous
Imagine a bunch of swashbuckling programmers pillaging and hoarding software gems from rich codebases around the seven software seas. Daring. But dangerous. It’s coding with the bad hygiene of a salty seaman.
Anonymous
It doesn’t take much searching on the Web to find articles giving examples of “improving” your code by using a Setup (now @Before in JUnit). ObjectMother lives under many names, and each name comes with several articles explaining how it’s either successful or the programmer didn’t understand how to correctly apply the pattern. Our tests follow the common advice that above all, code must be DRY. DRY is an acronym for Don’t Repeat Yourself, and is defined as: Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. Both of those pieces of advice are contextually valuable. I can easily think of situations where applying each of those patterns would be the right choice. However, in the context of “I would like to quickly understand this test I’ve never seen before”, those patterns come up short. While working on code written by a teammate or supporting an inherited system, I find myself in the latter context far more often than not.
Anonymous
Pigs live in their own filth. Programmers needn’t. Clean up after yourself. As you work on a piece of code, remove all of the unnecessary code that you encounter.
Anonymous