“
Walking on water and developing software from a specification are easy if both are frozen.
”
”
Edward Berard
“
Software development, like professional sports, has a way of making thirty-year-old men feel decrepit.
”
”
Neal Stephenson (Snow Crash)
“
Always be the worst guy in every band you’re in. - so you can learn. The people around you affect your performance. Choose your crowd wisely.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
We build our computers the way we build our cities—over time, without a plan, on top of ruins.
”
”
Ellen Ullman (Life in Code: A Personal History of Technology)
“
The ideal architect should be a man of letters, a skillful draftsman, a mathematician, familiar with historical studies, a diligent student of philosophy, acquainted with music, not ignorant of medicine, learned in the responses of jurisconsults, familiar with astronomy and astronomical calculations.
”
”
Vitruvius
“
We have four blocks here. Block A, where we are now, is administration and recreation. Block B is software development. Block C is research and storage. Block D is where the main Stormbreaker assembly line is found.” “Where’s breakfast?” Alex asked.
”
”
Anthony Horowitz (Stormbreaker (Alex Rider, #1))
“
With software there are only two possibilites: either the users control the programme or the programme controls the users. If the programme controls the users, and the developer controls the programme, then the programme is an instrument of unjust power.
”
”
Richard M. Stallman
“
A society where feminine beauty is defined not by the human self on genuine intellectual and sentimental grounds, but by a computer software on the grounds of economic interest, is more dead than alive. It is a society of human bodies, not human beings.
”
”
Abhijit Naskar (The Bengal Tigress: A Treatise on Gender Equality (Humanism Series))
“
Software testing is a sport like hunting, it's bughunting.
”
”
Amit Kalantri
“
Programming is breaking of one big impossible task into several very small possible tasks.
”
”
Jazzwant
“
In a small company, the CTO, R&D, the COO, and even the CEO or cofounders or owners can be responsible for reviewing documentation. Don’t rely on your memory; write it down. Ideas become reality when we speak them and write them. So document them in an idea journal (digital or traditional) without judgment at the time. Inventors (and especially software developers) tend to edit or judge ideas and conclude they are not patentable because they were simple—even though they solve important problems and do not exist elsewhere.
”
”
JiNan George (The IP Miracle: How to Transform Ideas into Assets that Multiply Your Business)
“
DEDICATION To my computer: I couldn’t have written this without you To the software developers responsible for spellcheck: You are my everyday heroes To Karen: I hope this makes you laugh and makes you proud. To my readers (all 3 of you): Thank you
”
”
Penny Reid (Neanderthal Seeks Human (Knitting in the City, #1))
“
Every good work of software starts by scratching a developer’s personal itch.
”
”
Eric S. Raymond (The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary)
“
Being the only woman on a nontechnical team, providing customer support to software developers, was like immersion therapy for internalized misogyny. I liked men—I had a brother. I had a boyfriend. But men were everywhere: the customers, my teammates, my boss, his boss. I was always fixing things for them, tiptoeing around their vanities, cheering them up. Affirming, dodging, confiding, collaborating. Advocating for their career advancement; ordering them pizza. My job had placed me, a self-identified feminist, in a position of ceaseless, professionalized deference to the male ego.
”
”
Anna Wiener (Uncanny Valley)
“
Advancement only comes with habitually doing more than you are asked.” —Gary Ryan Blair
”
”
John Z. 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)
“
Programming is a social activity.
”
”
Robert C. Martin
“
If it is not written down, it does not exist.
”
”
Philippe Kruchten
“
The biggest cause of failure in software-intensive systems is not technical failure; it’s building the wrong thing.
”
”
Mary Poppendieck (Leading Lean Software Development: Results Are not the Point)
“
The moment I walk into a bookstore, I remember what I love about them. They are an oasis of intellectual calm. Perhaps it’s the potential of all the ideas hidden behind those delicious covers. Or perhaps it’s the social reverence for the library-like quiet. You don’t yell in a bookstore; you’ll piss off the books.
”
”
Michael Lopp (Being Geek: The Software Developer's Career Handbook)
“
We had hundreds of health-care workers from across the world flying in to take action, and software developers constantly coming up with new, pointless Ebola apps (apps were their hammers and they were desperate for Ebola to be a nail). But no one was tracking whether the action was working or not.
”
”
Hans Rosling (Factfulness: Ten Reasons We're Wrong About The World - And Why Things Are Better Than You Think)
“
Almost everything we know about good software architecture has to do with making software easy to change
”
”
Mary Poppendieck (Implementing Lean Software Development: From Concept to Cash)
“
Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
“
Programming is about managing complexity: the complexity of the problem, laid upon the complexity of the machine. Because of this complexity, most of our programming projects fail.
”
”
Bruce Eckel (On Java 8)
“
As a software developer, you are your own worst enemy. The sooner you realize that, the better off you’ll be.
”
”
Jeff Atwood (Effective Programming: More Than Writing Code)
“
We see a lot of feature-driven product design in which the cost of features is not properly accounted. Features can have a negative value to customers because they make the products more difficult to understand and use. We are finding that people like products that just work. It turns out that designs that just work are much harder to produce that designs that assemble long lists of features.
”
”
Douglas Crockford (JavaScript: The Good Parts)
“
Albert Ellis: “The best predictor of future behaviour is past behaviour”. Apart
”
”
Marcus Tomlinson (How to Become an Expert Software Engineer (and Get Any Job You Want): A Programmer’s Guide to the Secret Art of Free and Open Source Software Development)
“
Your job as a developer is not just to create code that you can work with easily, but to create code that others can also work with easily.
”
”
John Ousterhout (A Philosophy of Software Design)
“
In the end, it all comes down to 0 and 1
”
”
Vineet Goel
“
User interface is the process of shifting from chaotic complexity to elegant simplicity.
”
”
Akshat Paul (React Native for iOS Development)
“
Software development is neither a scientific nor an engineering task. It is an act of reality construction that is political and artistic.
”
”
David West (Object Thinking)
“
I know that this sounds sacrilegious to a software developer, but unless you’re marketing to software developers, your order of importance is market, marketing, aesthetic, function.
”
”
Rob Walling (Start Small, Stay Small: A Developer's Guide to Launching a Startup)
“
In software development there’s a term called “Brooks’s Law” that Fred Brooks first coined back in 1975 in his seminal book The Mythical Man-Month. Put simply, Brooks’s Law says “adding manpower to a late software project makes it later.”8 This has been borne out in study after study.
”
”
Jeff Sutherland (Scrum: The Art of Doing Twice the Work in Half the Time)
“
One study found that in more than 85% of the open source projects the researchers examined on GitHub, less than 5% of developers were responsible for over 95% of code and social interactions.7
”
”
Nadia Eghbal (Working in Public: The Making and Maintenance of Open Source Software)
“
With software there are only two possibilites: either the users control the programme or the programme controls the users. If the programme controls the users, and the developer controls the programme, then the programme is an instrument of unjust power.
”
”
Richard Stallman
“
Perhaps you thought that “getting it working” was the first order of business for a professional developer. I hope by now, however, that this book has disabused you of that idea. The functionality that you create today has a good chance of changing in the next release, but the readability of your code will have a profound effect on all the changes that will ever be made.
”
”
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series))
“
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)
“
Life would be much easier if I had the source code.
”
”
Anonymous
“
So many people set off in a direction in life but don’t think things completely through first.
”
”
John Z. 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)
“
In June 1999, an 18-year-old Northeastern University dropout by the name of Shawn Fanning debuted a new piece of software he had developed called Napster.
”
”
Stephen Witt (How Music Got Free: A Story of Obsession and Invention)
“
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)
“
Computers themselves, and software yet to be developed, will revolutionize the way we learn.
”
”
Steve Jobs (Steve Jobs Graduation Speech)
“
customers do not need scope. They need to have business goals accomplished within some constraints of time and cost.
”
”
Mary Poppendieck (Leading Lean Software Development: Results Are not the Point)
“
You can’t creatively help a business until you know how it works.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
When I'm old and dying, I plan to look back on my life and say, "Wow, that was an adventure", not, "Wow, I sure felt safe." - Tom Preston-Werner
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
Coding like poetry should be short and concise.
”
”
Santosh Kalwar
“
You can Change Your Organization or Change Your Organization
”
”
Martin Fowler
“
Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often. What you eat before you step onto the scale determines how much you will weigh, and the software-development techniques you use determine how many errors testing will find.
”
”
Steve McConnell (Code Complete: A Practical Handbook of Software Construction)
“
Have you ever had a weird and strong feeling that programming is a godlike kind of work? Just as the Lord created our world and the entire Universe based on molecular techniques such as DNA coding, software developers create a digital world based on IT coding.
”
”
Sahara Sanders (INDIGO DIARIES: A Series of Novels)
“
We used the word “heuristics” to describe aspects of software development that tip toward the liberal arts. Its counterpart, “algorithms,” was its alter ego on the technical side. Heuristics and algorithms are like two sides of the same coin. Both are specific procedures for making software do what it does: taking input, applying an operation, and producing output. Yet each had a different purpose.
”
”
Ken Kocienda (Creative Selection: Inside Apple's Design Process During the Golden Age of Steve Jobs)
“
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)
“
I’d prefer not to say what my current salary is because if it’s higher than what you expect to pay for this job, I wouldn’t want that to eliminate me from being considered for this job—because I might be willing to accept less for the right position—and, if it’s lower than what this job would pay, I wouldn’t want to sell myself short either— I’m sure you can understand.
”
”
John Z. Sonmez (Soft Skills: The Software Developer's Life Manual)
“
Senior engineers can develop bad habits, and one of the worst is the tendency to lecture and debate with anyone who does not understand them or who disagrees with what they are saying. To work successfully with a newcomer or a more junior teammate, you must be able to listen and communicate in a way that person can understand, even if you have to try several times to get it right. Software development is a team sport in most companies, and teams have to communicate effectively to get anything done.
”
”
Camille Fournier (The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change)
“
Celebrate Successes, but Don't Declare Victory
”
”
Sam Guckenheimer (Visual Studio Team Foundation Server 2012: Adopting Agile Software Practices: From Backlog to Continuous Feedback (3rd Edition) (Microsoft Windows Development Series))
“
Humility is not just something we develop so we can claim to be more spiritual. It also allows you to see your actions more clearly.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
Your skills should transcend technology platform
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
Concepts and patterns that your brain is sorting through and making sense of are much more scalable and universal than any specific vendor’s technology
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
If you want to stay relevant, you’re going to have to dive into the domain of the business you’re in
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
Bus factor (noun): the number of people that need to get hit by a bus before your project is completely doomed.
”
”
Brian W. Fitzpatrick (Team Geek: A Software Developer's Guide to Working Well with Others)
“
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)
“
The higher the price of information in a software team, the less effective the team is.
”
”
Yegor Bugayenko (Code Ahead)
“
Developers should be able to run all automated tests on their workstations in order to triage and fix defects.
”
”
Nicole Forsgren (Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations)
“
Just as the Hare was overconfident in its speed, so the developers are overconfident in their ability to remain productive.
”
”
Robert C. Martin (Clean Architecture: A Craftsman's Guide to Software Structure and Design)
“
Software lives and matures over time.
”
”
Ka Wai Cheung (The Developer's Code: What Real Programmers Do)
“
It’s better to have a hole in your team than an asshole in your team!
”
”
Samir Desai
“
Suppose a developer has a conversation with a customer about details of a feature. The conversation should not be considered complete until it is expressed as a customer test.
”
”
Mary Poppendieck (Lean Software Development: An Agile Toolkit: An Agile Toolkit (Agile Software Development Series))
“
Education requires both a teacher
and a student. Many of us are too often reluctant to be a student.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
If you want to really learn something, try teaching it to someone else.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
Softwares are becoming the new cargo ships and freight trucks. Digital files are becoming the new core commodities. The formers won't eliminate the latters, but a restructuring is happening.
”
”
Hendrith Vanlon Smith Jr.
“
Is a mind a complicated kind of abstract pattern that develops in an underlying physical substrate, such as a vast network of nerve cells? If so, could something else be substituted for the nerve cells – something such as ants, giving rise to an ant colony that thinks as a whole and has an identity – that is to say, a self? Or could something else be substituted for the tiny nerve cells, such as millions of small computational units made of arrays of transistors, giving rise to an artificial neural network with a conscious mind? Or could software simulating such richly interconnected computational units be substituted, giving rise to a conventional computer (necessarily a far faster and more capacious one than we have ever seen) endowed with a mind and a soul and free will?
”
”
Andrew Hodges (Alan Turing: The Enigma)
“
There should be two tasks for a human being to perform to deploy software into a development, test, or production environment: to pick the version and environment and to press the “deploy” button.
”
”
David Farley (Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation)
“
Any software project must have a technical leader, who is responsible for all technical decisions made by the team and have enough authority to make them. Responsibility and authority are two mandatory components that must be present in order to make it possible to call such a person an architect.
”
”
Yegor Bugayenko (Code Ahead)
“
Many rookie software managers think that they can "motivate" their programmers to work faster by giving them nice, "tight" (unrealistically short) schedules. I think this kind of motivation is brain-dead. When I'm behind schedule, I feel doomed and depressed and unmotivated. When I'm working ahead of schedule, I'm cheerful and productive. The schedule is not the place to play psychological games.
”
”
Joel Spolsky (Joel on Software)
“
They took one look at Zip2’s code and began rewriting the vast majority of the software. Musk bristled at some of their changes, but the computer scientists needed just a fraction of the lines of code that Musk used to get their jobs done. They had a knack for dividing software projects into chunks that could be altered and refined whereas Musk fell into the classic self-taught coder trap of writing what developers call hairballs—big, monolithic hunks of code that could go berserk for mysterious reasons.
”
”
Ashlee Vance (Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future)
“
Hollywood and similar “popular culture” sources of disinformation have assigned largely negative images to programmers. For example, we have all seen the solitary, fat, ugly nerd with no social skills who is obsessed with video games and breaking into other people’s computers. He (almost always a male) is as likely to want to destroy the world as he is to want to save it. Obviously, milder versions of such caricatures exist in real life, but in our experience they are no more frequent among software developers than they are among lawyers, police officers, car salesmen, journalists, artists, or politicians.
”
”
Bjarne Stroustrup (Programming: Principles and Practice Using C++)
“
Thankfully for frustrated women around the world, Tom Schalk, the vice president of voice technology at car navigation system supplier ATX, has come up with a novel solution to fix the ‘many issues with women’s voices’.26 What women need, he said, was ‘lengthy training’ – if only women ‘were willing’ to submit to it. Which, sighs Schalk, they just aren’t. Just like the wilful women buying the wrong stoves in Bangladesh, women buying cars are unreasonably expecting voice-recognition software developers to design a product that works for them when it’s obvious that the problem needing fixing is the women themselves. Why can’t a woman be more like a man?
”
”
Caroline Criado Pérez (Invisible Women: Data Bias in a World Designed for Men)
“
I briefly dated a software developer. We went to this wonderful restaurant a couple of times and had this delicious chicken with these diverse, tangy sauces—artichoke garlic aioli, Thai sweet chili—and we talked about whatever while I ate this chicken and dipped the pieces into the otherworldly sauces. Meanwhile I thought, God, I think I really like him. Then we went back again and had the same chicken and sauces—and I thought, God, I feel like I’m really falling for him. Then we went on a third date to a different restaurant and I suddenly realized—now that the chicken and sauces had been removed—he was kind of boring and it was just the tasty chicken that I loved. I looooooooooove chicken.
”
”
Molly Shannon (Hello, Molly!: A Memoir)
“
The key is to take a larger project or goal and break it down into smaller problems to be solved, constraining the scope of work to solving a key problem, and then another key problem.
This strategy, of breaking a project down into discrete, relatively small problems to be resolved, is what Bing Gordon, a cofounder and the former chief creative officer of the video game company Electronic Arts, calls smallifying. Now a partner at the venture capital firm Kleiner Perkins, Gordon has deep experience leading and working with software development teams. He’s also currently on the board of directors of Amazon and Zynga. At Electronic Arts, Gordon found that when software teams worked on longer-term projects, they were inefficient and took unnecessary paths. However, when job tasks were broken down into particular problems to be solved, which were manageable and could be tackled within one or two weeks, developers were more creative and effective.
”
”
Peter Sims (Little Bets: How Breakthrough Ideas Emerge from Small Discoveries)
“
What would the world be like if you had to develop a power yourself before you could use it? Just as a silly example: How would the comment section on YouTube change if, to use it, you had to have the schooling necessary to have a basic understanding of how computers and the internet work? More seriously, would anyone smart enough to know how to design and build a tank, or a laser guided anti-aircraft missile, or a computer and video editing software be stupid enough to join ISIS? In fact, if such knowledge was required—would it even be possible for there to be standing armies?
”
”
John C. Wright (Sci Phi Journal: Issue #2, November 2014: The Journal of Science Fiction and Philosophy)
“
When you yet to do 100% of what somebody wants, you need a perfect match, and it's pretty rare that you have a perfect match between what you thought people needed and what they actually need. If you try instead to do 80 percent of what they need, there's a pretty good chance you'll hit a sweet spot.
”
”
David Heinemeier Hansson
“
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)
“
Today I am more convinced than ever. Conceptual integrity is central to product quality. Having a system architect is the most important single step toward conceptual integrity. These principles are by no means limited to software systems, but to the design of any complex construct, whether a computer, an airplane, a Strategic Defense Initiative, a Global Positioning System. After teaching a software engineering laboratory more than 20 times, I came to insist that student teams as small as four people choose a manager and a separate architect. Defining distinct roles in such small teams may be a little extreme, but I have observed it to work well and to contribute to design success even for small teams.
”
”
Frederick P. Brooks Jr. (The Mythical Man-Month: Essays on Software Engineering)
“
In November, just over four months after shipping its first iPhone, Apple revealed that it would make available a software development kit for anyone who wanted to develop apps. “That’s when we knew Steve had finally come to see the light,” Gassée says. “Suddenly, that was all anyone was talking about in the Valley and in the VC community. Hundreds of little guys signed up, and the race was on. Then they announced the App Store. And then they released the iPhone 3G [the second version, which shipped in July 2008, and had better wireless and a faster microprocessor]. It was only then that the iPhone was truly finished, that it had all its basics, all its organs. It needed to grow, to muscle up, but it was complete as a child is complete.
”
”
Brent Schlender (Becoming Steve Jobs: The Evolution of a Reckless Upstart into a Visionary Leader)
“
he bragged that he’d written a million lines of code. Some employees thought that was preposterous. Sunny had worked at Microsoft, where teams of software engineers had written the Windows operating system at the rate of one thousand lines of code per year of development. Even if you assumed Sunny was twenty times faster than the Windows developers, it would still have taken him fifty years to do what he claimed.
”
”
John Carreyrou (Bad Blood: Secrets and Lies in a Silicon Valley Startup)
“
Ethereum is the second-biggest cryptocurrency in the world after Bitcoin. It’s also very different from Bitcoin in its structure and purpose. Ethereum wasn’t developed as a currency alone. Its innovation lies in opening the blockchain up to development for different applications outside currencies and finance. Developers can build software on top of Ethereum’s blockchain, and use the network’s distributed ledger to build trust for all kinds of applications. Since the Ethereum blockchain is decentralized, once a developer has built an application, it can’t be censored or taken down by any authority. That application lives as long as the Ethereum blockchain continues.
”
”
Alan T. Norman (Blockchain Technology Explained: The Ultimate Beginner’s Guide About Blockchain Wallet, Mining, Bitcoin, Ethereum, Litecoin, Zcash, Monero, Ripple, Dash, IOTA and Smart Contracts)
“
You’re either remarkable or invisible,” says Seth Godin in his 2002 bestseller, Purple Cow.1 As he elaborated in a Fast Company manifesto he published on the subject: “The world is full of boring stuff—brown cows—which is why so few people pay attention…. A purple cow… now that would stand out. Remarkable marketing is the art of building things worth noticing.”2 When Giles read Godin’s book, he had an epiphany: For his mission to build a sustainable career, it had to produce purple cows, the type of remarkable projects that compel people to spread the word. But this left him with a second question: In the world of computer programming, where does one launch remarkable projects? He found his second answer in a 2005 career guide with a quirky title: My Job Went to India: 52 Ways to Save Your Job.3 The book was written by Chad Fowler, a well-known Ruby programmer who also dabbles in career advice for software developers.
”
”
Cal Newport (So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love)
“
Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many
ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. Code should be
literate since depending on the language, not all necessary information can be expressed clearly in code alone.
-Dave Thomas, founder
of OTI, godfather of the
Eclipse strategy
”
”
Robert C. Martin (Clean Code: A Handbook of Agile Software Craftsmanship)
“
You could have chosen any number of career paths, but this one is
exciting. It’s creative. It requires deep thinking and rewards you with
a sense of being able to do something that most of the people you meet
each day can’t imagine being able to do. We may worry about progressing
to the next level, making an impact, or gaining respect from
our co-workers or our peers in the industry, but if you really stop to
think about it, we’ve got it really good.
Software development is both challenging and rewarding. It’s creative
like an art-form, but (unlike art) it provides concrete,measurable value.
Software development is fun!
Ultimately, the most important thing I’ve learned over the journey that
my career in software development has been is that it’s not what you
do for a living or what you have that’s important. It’s how you choose to
accept these things. It’s internal. Satisfaction, like our career choices, is something that should be sought after and decided upon with intention.
”
”
Chad Fowler (The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life))
“
In the modern computer, software has developed in such a way as to fill this role of go-between. On one end you have the so-called end user who wants to be able to order up a piece of long division, say, simply by supplying two numbers to the machine and ordering it to divide them. At the other end stands the actual computer, which for all its complexity is something of a brute. It can perform only several hundred basic operations, and long division may not be one of them. The machine may have to be instructed to perform a sequence of several of its basic operations in order to accomplish a piece of long division. Software—a series of what are known as programs—translates the end user’s wish into specific, functional commands for the machine.
”
”
Tracy Kidder (The Soul of a New Machine)
“
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)
“
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)
“
Still allergic to PowerPoints and formal presentations, he insisted that the people around the table hash out issues from various vantages and the perspectives of different departments.
Because he believed that Apple's great advantage was its integration of the whole widget- from design to hardware to software to content-he wanted all departments at the company to work together in parallel. The phrases he used were "deep collaboration" and "concurrent engineering." Instead of a development process in which a product would be passed sequentially from engineering to design to manufacturing to marketing and distribution, these various departments collaborated simultaneously. " Our method was to develop integrated products, and that meant our process had to be integrated and collaborative," Jobs said.
This approach also applied to key hires. He would have candidates meet the top leaders-Cook, Tevanian, Schiller, Rubinstein, Ive- rather than just the managers of the department where they wanted to work. " Then we all get together without the person and talk about whether they'll fit in," Jobs said.
”
”
Walter Isaacson (Steve Jobs)
“
Is a mind a complicated kind of abstract pattern that develops in an underlying physical substrate, such as a vast network of nerve cells? If so, could something else be substituted for the nerve cells – something such as ants, giving rise to an ant colony that thinks as a whole and has an identity – that is to say, a self? Or could something else be substituted for the tiny nerve cells, such as millions of small computational units made of arrays of transistors, giving rise to an artificial neural network with a conscious mind? Or could software simulating such richly interconnected computational units be substituted, giving rise to a conventional computer (necessarily a far faster and more capacious one than we have ever seen) endowed with a mind and a soul and free will? In short, can thinking and feeling emerge from patterns
”
”
Andrew Hodges (Alan Turing: The Enigma)
“
Life of a software engineer sucks big time during project release. Every single team member contribution is very important. At times, we have to skip breakfast, lunch and even dinner, just to make sure the given ‘TASK’ is completed. Worst thing, that’s the time we get to hear wonderful F* words. It can be on conference calls or on emails, still we have to focus and deliver the end product to a client, without any compromise on quality. Actually, every techie should be saluted. We are the reason for the evolution of Information Technology. We innovate. We love artificial intelligence. We create bots and much more. We take you closer to books. Touch and feel it without the need of carrying a paperback. We created eBook and eBook reader app: it’s basically a code of a software engineer that process the file, keeps up-to-date of your reading history, and gives you a smoother reading experience. We are amazing people. We are more than a saint of those days. Next time, when you meet a software engineer, thank him/her for whatever code he/she developed, tested, designed or whatever he/she did!
”
”
Saravanakumar Murugan (Coffee Date)
“
After I left finance, I started attending some of the fashionable conferences attended by pre-rich and post-rich technology people and the new category of technology intellectuals. I was initially exhilarated to see them wearing no ties, as, living among tie-wearing abhorrent bankers, I had developed the illusion that anyone who doesn’t wear a tie was not an empty suit. But these conferences, while colorful and slick with computerized images and fancy animations, felt depressing. I knew I did not belong. It was not just their additive approach to the future (failure to subtract the fragile rather than add to destiny). It was not entirely their blindness by uncompromising neomania. It took a while for me to realize the reason: a profound lack of elegance. Technothinkers tend to have an “engineering mind”—to put it less politely, they have autistic tendencies. While they don’t usually wear ties, these types tend, of course, to exhibit all the textbook characteristics of nerdiness—mostly lack of charm, interest in objects instead of persons, causing them to neglect their looks. They love precision at the expense of applicability. And they typically share an absence of literary culture.
This absence of literary culture is actually a marker of future blindness because it is usually accompanied by a denigration of history, a byproduct of unconditional neomania. Outside of the niche and isolated genre of science fiction, literature is about the past. We do not learn physics or biology from medieval textbooks, but we still read Homer, Plato, or the very modern Shakespeare. We cannot talk about sculpture without knowledge of the works of Phidias, Michelangelo, or the great Canova. These are in the past, not in the future. Just by setting foot into a museum, the aesthetically minded person is connecting with the elders. Whether overtly or not, he will tend to acquire and respect historical knowledge, even if it is to reject it. And the past—properly handled, as we will see in the next section—is a much better teacher about the properties of the future than the present. To understand the future, you do not need technoautistic jargon, obsession with “killer apps,” these sort of things. You just need the following: some respect for the past, some curiosity about the historical record, a hunger for the wisdom of the elders, and a grasp of the notion of “heuristics,” these often unwritten rules of thumb that are so determining of survival. In other words, you will be forced to give weight to things that have been around, things that have survived.
”
”
Nassim Nicholas Taleb (Antifragile: Things That Gain from Disorder)
“
As black-box technologies become more widespread, there have been no shortage of demands for increased transparency. In 2016 the European Union's General Data Protection Regulation included in its stipulations the "right to an explanation," declaring that citizens have a right to know the reason behind the automated decisions that involve them. While no similar measure exists in the United States, the tech industry has become more amenable to paying lip service to "transparency" and "explainability," if only to build consumer trust. Some companies claim they have developed methods that work in reverse to suss out data points that may have triggered the machine's decisions—though these explanations are at best intelligent guesses. (Sam Ritchie, a former software engineer at Stripe, prefers the term "narratives," since the explanations are not a step-by-step breakdown of the algorithm's decision-making process but a hypothesis about reasoning tactics it may have used.) In some cases the explanations come from an entirely different system trained to generate responses that are meant to account convincingly, in semantic terms, for decisions the original machine made, when in truth the two systems are entirely autonomous and unrelated. These misleading explanations end up merely contributing another layer of opacity. "The problem is now exacerbated," writes the critic Kathrin Passig, "because even the existence of a lack of explanation is concealed.
”
”
Meghan O'Gieblyn (God, Human, Animal, Machine: Technology, Metaphor, and the Search for Meaning)
“
By tracing the early history of USCYBERCOM it is possible to understand some of the reasons why the military has focused almost completely on network defense and cyber attack while being unaware of the need to address the vulnerabilities in systems that could be exploited in future conflicts against technologically capable adversaries. It is a problem mirrored in most organizations. The network security staff are separate from the endpoint security staff who manage desktops through patch and vulnerability management tools and ensure that software and anti-virus signatures are up to date. Meanwhile, the development teams that create new applications, web services, and digital business ventures, work completely on their own with little concern for security. The analogous behavior observed in the military is the creation of new weapons systems, ISR platforms, precision targeting, and C2 capabilities without ensuring that they are resistant to the types of attacks that USCYBERCOM and the NSA have been researching and deploying. USCYBERCOM had its genesis in NCW thinking. First the military worked to participate in the information revolution by joining their networks together. Then it recognized the need for protecting those networks, now deemed cyberspace. The concept that a strong defense requires a strong offense, carried over from missile defense and Cold War strategies, led to a focus on network attack and less emphasis on improving resiliency of computing platforms and weapons systems.
”
”
Richard Stiennon (There Will Be Cyberwar: How The Move To Network-Centric Warfighting Has Set The Stage For Cyberwar)
“
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)
“
A great deal of effort has been devoted to explaining Babel. Not the Babel event
-- which most people consider to be a myth -- but the fact that languages tend
to diverge. A number of linguistic theories have been developed in an effort to
tie all languages together."
"Theories Lagos tried to apply to his virus hypothesis."
"Yes. There are two schools: relativists and universalists. As George Steiner
summarizes it, relativists tend to believe that language is not the vehicle of
thought but its determining medium. It is the framework of cognition. Our
perceptions of everything are organized by the flux of sensations passing over
that framework. Hence, the study of the evolution of language is the study of
the evolution of the human mind itself."
"Okay, I can see the significance of that. What about the universalists?"
"In contrast with the relativists, who believe that languages need not have
anything in common with each other, the universalists believe that if you can
analyze languages enough, you can find that all of them have certain traits in
common. So they analyze languages, looking for such traits."
"Have they found any?"
"No. There seems to be an exception to every rule."
"Which blows universalism out of the water."
"Not necessarily. They explain this problem by saying that the shared traits
are too deeply buried to be analyzable."
"Which is a cop out."
"Their point is that at some level, language has to happen inside the human
brain. Since all human brains are more or less the same --"
"The hardware's the same. Not the software."
"You are using some kind of metaphor that I cannot understand."
"Well, a French-speaker's brain starts out the same as an English-speaker's
brain. As they grow up, they get programmed with different software -- they
learn different languages."
"Yes. Therefore, according to the universalists, French and English -- or any
other languages -- must share certain traits that have their roots in the 'deep
structures' of the human brain. According to Chomskyan theory, the deep
structures are innate components of the brain that enable it to carry out
certain formal kinds of operations on strings of symbols. Or, as Steiner
paraphrases Emmon Bach: These deep structures eventually lead to the actual
patterning of the cortex with its immensely ramified yet, at the same time,
'programmed' network of electrochemical and neurophysiological channels."
"But these deep structures are so deep we can't even see them?"
"The universalists place the active nodes of linguistic life -- the deep
structures -- so deep as to defy observation and description. Or to use
Steiner's analogy: Try to draw up the creature from the depths of the sea, and
it will disintegrate or change form grotesquely.
”
”
Neal Stephenson (Snow Crash)
“
a young Goldman Sachs banker named Joseph Park was sitting in his apartment, frustrated at the effort required to get access to entertainment. Why should he trek all the way to Blockbuster to rent a movie? He should just be able to open a website, pick out a movie, and have it delivered to his door. Despite raising around $250 million, Kozmo, the company Park founded, went bankrupt in 2001. His biggest mistake was making a brash promise for one-hour delivery of virtually anything, and investing in building national operations to support growth that never happened. One study of over three thousand startups indicates that roughly three out of every four fail because of premature scaling—making investments that the market isn’t yet ready to support. Had Park proceeded more slowly, he might have noticed that with the current technology available, one-hour delivery was an impractical and low-margin business. There was, however, a tremendous demand for online movie rentals. Netflix was just then getting off the ground, and Kozmo might have been able to compete in the area of mail-order rentals and then online movie streaming. Later, he might have been able to capitalize on technological changes that made it possible for Instacart to build a logistics operation that made one-hour grocery delivery scalable and profitable. Since the market is more defined when settlers enter, they can focus on providing superior quality instead of deliberating about what to offer in the first place. “Wouldn’t you rather be second or third and see how the guy in first did, and then . . . improve it?” Malcolm Gladwell asked in an interview. “When ideas get really complicated, and when the world gets complicated, it’s foolish to think the person who’s first can work it all out,” Gladwell remarked. “Most good things, it takes a long time to figure them out.”* Second, there’s reason to believe that the kinds of people who choose to be late movers may be better suited to succeed. Risk seekers are drawn to being first, and they’re prone to making impulsive decisions. Meanwhile, more risk-averse entrepreneurs watch from the sidelines, waiting for the right opportunity and balancing their risk portfolios before entering. In a study of software startups, strategy researchers Elizabeth Pontikes and William Barnett find that when entrepreneurs rush to follow the crowd into hyped markets, their startups are less likely to survive and grow. When entrepreneurs wait for the market to cool down, they have higher odds of success: “Nonconformists . . . that buck the trend are most likely to stay in the market, receive funding, and ultimately go public.” Third, along with being less recklessly ambitious, settlers can improve upon competitors’ technology to make products better. When you’re the first to market, you have to make all the mistakes yourself. Meanwhile, settlers can watch and learn from your errors. “Moving first is a tactic, not a goal,” Peter Thiel writes in Zero to One; “being the first mover doesn’t do you any good if someone else comes along and unseats you.” Fourth, whereas pioneers tend to get stuck in their early offerings, settlers can observe market changes and shifting consumer tastes and adjust accordingly. In a study of the U.S. automobile industry over nearly a century, pioneers had lower survival rates because they struggled to establish legitimacy, developed routines that didn’t fit the market, and became obsolete as consumer needs clarified. Settlers also have the luxury of waiting for the market to be ready. When Warby Parker launched, e-commerce companies had been thriving for more than a decade, though other companies had tried selling glasses online with little success. “There’s no way it would have worked before,” Neil Blumenthal tells me. “We had to wait for Amazon, Zappos, and Blue Nile to get people comfortable buying products they typically wouldn’t order online.
”
”
Adam M. Grant (Originals: How Non-Conformists Move the World)