Street Coder (Manning)

Author: Sedat Kapanoglu
Publisher: Manning
Date: February 2022
Pages: 272
ISBN: 978-1617298370
Print: 1617298379
Kindle: B09Q3PJQC5
Audience: General
Rating: 4
Reviewer: Ian Elliot
Street Coder - sounds sort of tough but messy at the same time.

I like street food, but street coders? The term gives me the impression of a grubby and tricky individual who should be avoided at all cost, an impression reinforced by the cover illustration. Not the intent of the author I'm sure, and prehaps I'm an outlier about the cover....

The book's blurb gives the intended idea:

"Street Coder teaches you how to handle the realities of day-to-day coding as a software developer. Self-taught guru Sedat Kapanoglu shares down-and-dirty advice that’s rooted in his personal hands-on experience, not abstract theory or ivory-tower ideology."

Well yes, but it's clear from the first few pages that our self-taught guru has absorbed all of the standard theory and ideas that are part of our discipline. All of the examples are in C#, which is a fairly good langauge for explaining ideas, but you need to be happy reading the code. 

Banner

The book comrprises nine chapters:

  • 1 To the streets
  • 2 Practical theory
  • 3 Useful anti-patterns
  • 4 Tasty testing
  • 5 Rewarding refactoring
  • 6 Security by scrutiny
  • 7 Opinionated optimization
  • 8 Palatable scalability
  • 9 Living with bugs

It's subtitle is "The rules to break and how to break them", which gives you another idea of how radical the book aims to be. In practice, its not so radical as the ideas that it outlines are reasonable and well understood and at the end of the day it's just a representation of standard ideas delivered with some good natured humour.

 

I'm not saying that this is a bad book, it isn't, but it doesn't achieve its radical objectives and this is a reflection of the fact that anything so radical isn't really possible. We are currently well entrenched in well-thought out methodologies. For example, the book starts off with a look at algorithms and big O notation - how could it do otherwise. In fact a big O table is on the inside front cover. This isn't radical knowledge; it's what you missed by not doing a Computer Science course.

The chapter continues with a look as the idea of strong typing. If the book were radical it would point out that there are costs involved with typing and its benefits are unproven and can be delivered by smart tooling. What we actually get is the party line that strong typing is good because it catches errors early; there's no deep explanation of what it entails -the straitjacket of hierarchical, class-based, typing and the horror of generics.

This presentation of ideas with a shallow analysis continues in other chapters. Later on we have a short description of object- oriented programming, not enough for a beginner, and then the statement that you should prefere composition over inheritance. This is a mantra that you will often read and in this sense it isn't radical. What no-one ever says is that compostion is hard, time-consuming and almost as bad as copy-and-paste inheritance! 

Conclusion:

This book is a collection of hints, tips and motivational phrases. It's a pleasant read about a collection of observations made by a practicing programmer.The language used is always inventive and sharp and this either makes it easier or harder to read depending on your personality.

It's not a simple book and you will need to understand ideas of variables, memory allocation and lots of other fairly technical stuff that you would be taught in a prograsmming 101 course. It assumes that you know a lot more background detail about how computers work than you might imagine for a "street coder". This is not a book that a beginner can read from cover-to-cover without having to look things up elsewhere. While alternative books cover similar teritory, this one is well-written and if you program in C# particularly relevant.

My main reservation is that if you are setting out to give advice about the fundamentals of programming it might be better to anchor your philosophy in computer science rather than what you've picked up on-the-job. However, as the author Sedat Kapanoglu, has 25 years programing experience, including a stint at Microsoft, he probably qualifies as an expert,

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


The Big Book of Small Python Projects

Author: Al Sweigart
Publisher: No Starch Press
Date: June 2021
Pages: 432
ISBN: 978-1718501249
Print: 1718501242
Kindle: B08FH9FV7M
Audience: Novice Python developers
Rating: 4
Reviewer: Lucy Black
A project book? A good way to learn Python?



Elements Of Game Design (MIT Press)

Author: Robert Zubek
Publisher: MIT Press
Pages: 256
ISBN: 978-0262043915
Print: 0262043912
Kindle: B087PL89PY
Audience: would-be game developers
Rating: 4.5
Reviewer: Kay Ewbank

Is developing a computer game very different than working on a different sort of app, and can you learn how to do it from [ ... ]


More Reviews

Last Updated ( Wednesday, 03 August 2022 )