Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Diary of a Software Craftsman
Diary of a Software Craftsman
Diary of a Software Craftsman
Ebook83 pages1 hour

Diary of a Software Craftsman

Rating: 5 out of 5 stars

5/5

()

Read preview

About this ebook

What makes a piece of software good? What does it mean to perform well? How to effectively debug and fix it? What are some characteristics of a good programmer? These are some of the fundamental questions that the book will try to uncover through a collection of short articles.

The articles in the book were written over a five year period between 2009 and 2014. This is the period of time that I worked at Adobe as a software engineer, mobile phone development became mainstream, Adobe Flash gave its way to native and HTML, developers started dealing with JavaScript as a serious development language, among other things.

I wanted to share my technical experiences and opinions in a non-technical, lightweight, and hopefully enjoyable way. I hope aspiring and current software developers and architects will enjoy this book as much as I enjoyed writing it.

LanguageEnglish
PublisherMete Atamel
Release dateMay 29, 2014
ISBN9781310502767
Diary of a Software Craftsman

Related to Diary of a Software Craftsman

Related ebooks

Software Development & Engineering For You

View More

Related articles

Reviews for Diary of a Software Craftsman

Rating: 5 out of 5 stars
5/5

3 ratings2 reviews

What did you think?

Tap to rate

Review must be at least 10 words

  • Rating: 5 out of 5 stars
    5/5
    A quick read, with a lot of points I could relate to and also new insights I am going to implement in my own work.
  • Rating: 5 out of 5 stars
    5/5
    It is interesting to see the programming world trough the glasses of another software craftsman.

Book preview

Diary of a Software Craftsman - Mete Atamel

Diary of a Software Craftsman

Copyright 2014 Mete Atamel

Published by Mete Atamel at Smashwords

Smashwords Edition License Notes

This ebook is licensed for your personal enjoyment only. This ebook may not be re-sold or given away to other people. If you would like to share this book with another person, please purchase an additional copy for each recipient. If you’re reading this book and did not purchase it, or it was not purchased for your enjoyment only, then please return to Smashwords.com or your favorite retailer and purchase your own copy. Thank you for respecting the hard work of this author.

Table of Contents

Prologue

Chapter 1: Thoughts on Performance

Chapter 2: Thoughts on Code Style

Chapter 3: Refactoring is a joy when tests are solid

Chapter 4: Performance Optimization Lessons

Chapter 5: Software Lessons Learned in 2010

Chapter 6: Tweets, Pokes, and Likes: Is this all the social web has to offer?

Chapter 7: Is JavaScript ready for serious development? - Part I

Chapter 8: Is JavaScript ready for serious development? - Part II

Chapter 9: Is JavaScript ready for serious development? - Part III

Chapter 10: Is JavaScript ready for serious development? – Part IV

Chapter 11: Is JavaScript ready for serious development? – Conclusion

Chapter 12: Programming == Tree-Traversal?

Chapter 13: Software Lessons Learned in 2011

Chapter 14: Maintaining Legacy Systems

Chapter 15: Why Adobe Flash?

Chapter 16: Generalist vs. Specialist Programmer

Chapter 17: Specialization, an excuse for laziness and indifference?

Chapter 18: Evolution and Software Development

About Mete Atamel

Connect with Mete Atamel

Prologue

As a seasoned software developer, I spent a lot time and energy designing and implementing complex software. Each project was unique in its own ways and thought me something but after all this time, I can't help to find myself still wondering about the process of software development. It sometimes feels like an artistic endeavor that cannot be fully understood or formalized and yet, my programmer self tries hard to figure it all out.

In some ways, software development feels very rigid. You usually have to use a certain operating system, certain technology stack, certain programing language and most projects have a very limited problem space. One gets the feeling that it should be pretty straightforward to design good software in such a constrained environment. That couldn’t be further from the truth.

What makes a piece of software good? What does it mean to perform well? How to properly test a piece of software? How to effectively debug and fix it? What are some characteristics of a good programmer? These are some fundamental questions that software developers haven't fully figured out yet. While I don't claim to have all the answers, I hope by sharing my notes, I'll make some software developers aware of these questions and seek their own answers.

This book is a random collection of articles written over a five year period between 2009 and 2014. This is the time period where I worked at Adobe as a software engineer, mobile phone development became mainstream, Adobe Flash gave its way to native and HTML, developers started dealing with JavaScript as a serious development language, among other things.

I wanted to share my technical experiences and opinions in a non-technical, lightweight, and hopefully enjoyable way. I hope aspiring and current software developers and architects will enjoy this book as much as I enjoyed writing it.

Chapter 1: Thoughts on Performance

Performance can make or break a piece of software, this is clear. Nobody puts up with an unresponsive client user interface or a slow back-end server in today's age of software abundance and choice. Despite this, performance is often overlooked until late in the software release cycle and it barely gets the proper attention it deserves. This might not be a big problem in one release cycle, but after a few release cycles, you can end up with a slow-moving giant that nobody knows how to fix instead of a lean fast machine that you used to have.

At this point, you either accept what you

Enjoying the preview?
Page 1 of 1