russia is waging a genocidal war in Ukraine. Please help Ukraine defend itself before russia has a chance to invade other countries.
Software, AI Innovation, and Entrepreneurial Success | Why software development is fun?

Why software development is fun?

Why software development is fun?I discovered something from a book written Frederick Brooks. What delights may its practitioner expect as his reward? Something is terribly wrong with the way that we try to make large pieces of software. For several years now, I have had the nagging suspicion that we are trying to imitate entirely the wrong crowd of people. We keep trying to act like engineers. We, software developers, are simply not engineers at all. This is different, because building software is not at all like building bridges, thousands of which have been built before, in every conceivable situation, for a huge variety of purposes, using innumerable kinds of materials. For us, every creative act is one which explores a new medium, new materials, new dimensions. Perhaps, a few hundred years from now, software building will become repeatable, predictable, and therefore "engineerable". 

Why software development is fun?

First is the sheer joy of making things. As the child delights in his 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 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.

Software development is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men. The Woes of the Craft Not all is delight, however, and knowing the inherent woes makes it easier to bear them when they appear. The next woe is that designing grand concepts is fun; finding nitty little bugs is just work.
 
The challenge and the mission are to find real solutions to real problems on actual schedules with available resources. This then is programming, both a tar pit in which many efforts have floundered and a creative activity with joys. Optimism All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists.This then is programming, both a tar pit in which many efforts have floundered and a creative activity with joys and woes all its own. For many, the joys far outweigh the woes, and for them the remainder of this book will attempt to lay some boardwalks across the tar. Extracted from "The Mythical Man Month" by Fred Brooks.

Why software development is fun

"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 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."

-- Frederick P. Brooks, Jr. from MythicalManMonth While some people write programs to solve important problems, or just to get a paycheck, many programmers actually enjoy the activity. Many mere mortals can't understand why. Here are some of the things that programmers enjoy about programming:

Creativity Programming is, in a way, like writing poetry or music. It is an intellectual activity where one creates structure out of nothing. And the things one creates can have significant value to others. See also SoftwareIsArt

Model Building One of the things a programmer does is to create elaborate logical models of the world (or other domains). A programmer constructs a bunch of things in an imaginary universe, and then sets them all in motion. And the programmer gets to set and to change the laws of these universes. This is fun in the same way that playing with model trains is fun.

Learning How Stuff Works Some people enjoy taking things apart and figuring out how they work. Programming takes this to another level--not only do you figure out how things work, but you can also figure out how to write code to make them do things differently. Programmers get to learn how networks work, how telephones and modems work, and learn a lot about the domains for which they are writing applications. Knowing more than other people do is a rush.

Learning New Things Programmers are constantly using new operating systems, new programming languages, new database management systems, new libraries, etc.

Power One of the things programmers do that makes them and their associates say "Wow, that's cool" is when a small amount of effort results in a huge change in a system's behavior. (Of course, the danger is that these widespread changes will have undesired effects.) Programmers, even the most junior ones, make decisions every minute that impact the users of their programs.

Puzzle-Solving Programmers solve lots of complicated problems. The more complicated, the more enjoyable they are to solve. Some people solve those problems such as from InternationalCollegiateProgrammingContest "just for fun".

Adulation of One's Peers Programmers love it when other programmers look at their work and say "Cool! How did you do that?"

Seeing One's Creations Live On There's something special about walking into a shop or bank or whatever and seeing one's work living in the world with its own independent existence. Knowing that code one has written is executed thousands of times every day is quite a thrill.

Getting From It What You Put Into It The counter-point to ProgrammingIsNotFun's "Most Programs are Boring" item: If you are bored, you can always inject new life into a problem by trying to automate it, abstract it, or otherwise solve a larger problem simultaneously.   For example: Creating, displaying, and updating database records. Moving data from one place to another, possibly making some trivial change to its representation. Writing "glue" between other modules/components. Printing tabular reports. 

Deep Concentration Programming often involves going into a deep form of concentration, somewhat like meditation (see MentalStateCalledFlow). This feeling is enjoyable.

Getting stuff done It's a craft, a trade. In the evening, you hopefully see the results of your doing, very much unlike some consulting or management jobs. I really connect with this idea. This probably seems silly, but I always think of the part at the end of Pretty Woman where Richard Gere gets into a Newport-News-like defense contracting business after having made all his money not really producing anything. His new business partner says "we're going to build greaat big ships together." I think that's a good analogy that describes the difference between what I do and what a lot of other people above and around me do.

Why software development is funny

 

  1. Solving Puzzles: At its core, software development involves solving problems. Each piece of code is like a puzzle piece that needs to fit perfectly with others to create a functional application. For many, the process of figuring out how to make things work, debugging, and finally solving the problem can be deeply satisfying.

  2. Creative Expression: Writing code is like creating art. Developers can express themselves by designing and implementing software solutions. The act of turning an idea into a real, functioning piece of software can be a highly creative and rewarding process.

  3. Continuous Learning: The tech field is always evolving, with new languages, frameworks, and technologies emerging all the time. For those who love to learn, software development offers an endless journey of education and discovery. This continuous learning keeps the mind engaged and always working on something new and exciting.

  4. Community and Collaboration: The software development community is vast and supportive. Developers often work in teams, share knowledge, contribute to open source projects, and help each other solve problems. This sense of community and collaboration makes the work enjoyable and fulfilling.

  5. Seeing Immediate Results: In software development, you can often see the results of your work almost immediately. Whether it's a new feature, a fixed bug, or a performance improvement, the ability to instantly see the fruits of your labor can be highly gratifying.

  6. Impact and Fulfillment: Software developers have the unique opportunity to build solutions that impact people's lives and businesses. Knowing that your work is helping others, improving experiences, or driving innovation can provide a deep sense of fulfillment.

  7. Variety and Flexibility: There's a vast range of areas within software development, from web and mobile app development to data science and machine learning. This variety means developers can find their niche or switch between different areas to keep things interesting. Additionally, the field often offers flexibility in terms of working hours and locations.

  8. Challenge and Mastery: For many, the challenge of mastering a complex domain is what makes software development fun. There's a sense of achievement that comes from mastering difficult concepts and technologies and applying them successfully in your work.

  9. Personal Projects and Experimentation: Many developers enjoy the ability to work on personal projects or experiment with new technologies outside of their professional responsibilities. This freedom to explore personal interests and innovations can make software development particularly enjoyable.

  10. Economic Opportunities and Security: While not strictly related to the act of developing software, the strong demand for skilled developers and the economic opportunities in the tech industry can make the field more attractive and enjoyable.

Ultimately, the fun in software development comes from a combination of intellectual challenge, creative expression, and the ability to make a tangible impact through technology. Whether you're building something new, learning a new skill, or solving a tough problem, the rewards of software development can be substantial and deeply satisfying.

Summary

Why software development is fun?

"A favorite programming moment is when I get to fix a bug in code that already has a good unit test. Such work is often akin to putting golf balls into a neutron star's gravity well; I get this can't-go-wrong feeling."—from Kristofer Skaug.

"If it isn't fun and profitable, what the hell are you doing in the business?" by Robert Townsend, Up the Organization— from Jim Roberts.

"The knowledge of the best algorithms is the science, and the imaging of the structure is the art. The details of algorithms, writing efficient lines of code to implement transformations on those structures, is the trade aspect of programming. Technically, this is called maintaining the invariances in the structures. Writing the code to maintain invariance’s is a relatively simple progression of craftsmanship, but it requires a lot of care and discipline." -- MichaelLeach

From my point of view and my current choice of that people. Everybody can find something and enjoy it, for example: writing a code, testing, project management in information technologies. - Agafonov Slava

Why software development is fun

Comments are closed