100 Patterns For Success

I found in my personal journey to learn programming that design patterns were hard to understand at the beginner level.  The reason for this is that until you have some experience with implementations, the patterns are not going to be as understandable and you won’t see the benefit to learning them.

Seeing the benefit to something is key to learning it because you become motivated by the benefit and that drives you to overcome the difficulty of learning.

Before I go on, there is a great introductory article to design patterns on tutsplus.com that will give you a nice overview on design patterns, and includes examples of the following:

  • Strategy Pattern
  • Adapter Pattern
  • Factory Pattern
  • Decorator Pattern
  • Singleton Pattern

I wasn’t a big believer of the usefulness of these patterns in PHP until I studied the Laravel framework, which uses them extensively.  Now I’m still not any kind of authority on these patterns in Laravel, so I’m not going to give examples.  I’ll leave it to you to explore them on your own.  That said, the article is a great starting point.

If you are unfamiliar with Laravel, I did write Laravel 5.4 For Beginners to get you started, which  earned numerous 5 star ratings on GoodReads.com.

Laravel is an amazing PHP framework, which manages to distill things down to an intuitive syntax that is easy to grasp.  Where design patterns can be incredibly abstract and formal, Laravel is intuitive and simple.  It’s worth mentioning though that it achieves simplicity without sacrificing design principles and that is one of the things that makes it so powerful.

Anyway, I’ve always been inspired by Laravel and it’s community, since I was introduced to it a few years ago.  More recently, I listened to one of their podcasts, and the subject turned to books on entrepreneurship, which is one of my favorite subjects, since I’m also an entrepreneur.

Anyway, Matt Stauffer, the host of the show, talked about being disappointed by the book, “Rich Dad, Poor Dad” by Robert Kiyosaki, how the book didn’t seem to offer anything concrete, other than some musings about the psychology of success.

Personally, I’ve read that book.  It’s not a bad book.  On the other hand, I could see why programmers might not relate to it.

First of all, Kiyosaki is from an older generation that wasn’t very technical and that creates a disconnect.  It’s great that people were able to build empires through sheer street smarts and willpower, but programmers tend to admire the tech that has been built more than the money that it generated.

So if you did a bunch of real estate deals, and made a ton of money, it’s great, but not exactly inspiring to programmers.

A lot of books on entrepreneurship focus on the biography of the entrepreneur, which, while interesting, is not all that useful.  Richard Branson, for example, was thrown into a river as a five-year-old child by his father, so that he could learn to swim, which made him tough.  It’s a great snippet, but how does that help anyone else?  Personally, I won’t be throwing any of my kids into the water…

So I though about how a programmer would approach the subject of success and I realized that we could relate to it in terms of patterns, which as programmers, we have a natural affinity to.

After mulling it around a bit, I decided to step up to the plate and wrote 100 Patterns For Success, which draws on the success of millionaires and billionaires in tech.  I use their quotes, case studies, and my own observations to break success in tech into discrete attributes and patterns that you can adopt.

Here’s a short list of some of the people quoted in the book:

  • Peter Thiel
  • Elon Musk
  • Bill Gates
  • Mark Zuckerberg
  • Steve Jobs
  • Jack Dorsey
  • Larry Page

And many, many more tech millionaires and billionaires.  The quotes from these people are not simple quips or throw away lines.  They are mantras and insights that successful people live by.

We also look a case studies of successful entrepreneurs and the companies they founded. We talk about why, for example, Youtube was able to sell to Google within 1 year of founding for $1.6 billion, without ever having made a nickel in revenue.

That was not an accident and the odds were stacked in their favor from the beginning. The book has many other stories like this and shows you what they have in common.

The patterns in the book are meant to be helpful to you whether you are an entrepreneur or not.  In fact, I don’t recommend entrepreneurship to people.  Becoming an entrepreneur is not a rational act, since the odds of success are always stacked against you.

Instead, entrepreneurship is more about self-expression than anything else.  Yes, there is a financial motive, but if that’s all there is, then that entrepreneur is doomed before they even start.

Ever since I struggled to learn programming, I dedicated a lot of time to helping educate programmers from all over the world, to help them get past the barriers that would otherwise stop them from achieving their goals.  I know firsthand how hard things can be, nothing ever came easy for me.

Anyway, I hope you enjoy this book.  I put hundreds of hours of research into it.  The book is 298 pages in length, but it’s a gentle 298 pages, with a lot of white space.  We’re gotten some early reviews that have come back at 5 stars on GoodReads.com.

I’m very much aware that educational dollars are precious.  I’ve priced the book low so that my international readers will have access to it.  I’ve done my best to make it a fundamental resource that is critical to your development, both as a programmer, and as someone who wants to get the maximum benefit from your work.  I’m right there with you, in terms of wanting to benefit from programming work.

Thanks again to everyone who has supported my work over the past 4 years, I really appreciate it.


Laravel 5.4 For Beginners Book Released

I’m really excited to announce the release of my latest book on Laravel, Laravel 5.4 For Beginners.  This book represents a huge leap forward for me both as a coder and a writer, as we dig deeper into the Laravel framework.  I covered a lot of ground that I hadn’t previously covered, and the book is as of this writing at 763 pages.

In theory, it would be simpler for me to just provide an upgrade guide for the previous version and just update the old book, but that doesn’t work for a number of reasons.  One reason is that the Facebook one-click registration and authentication implementation relies heavily on the traits that ship with Laravel, and those change with every release.

Also, with this release, Laravel no longer ships with Elixir, but comes with Laravel Mix instead, so I had to rewrite all of those instructions as well.

Of course I’m not satisfied with just an updated version of the book, I wanted it to cover new ground.  So one of the big new sections of the book is chapter 14, where we build a working chat application that updates in realtime.

For that we use a mix Laravel Echo, Vue.js, and Pusher.  This is a fun build and we get to learn more about nested components in Vue.js.

With all the work we do with Vue.js on the searchable, sortable data grids, and the additional work in the chat application, it’s a nice little quick start to Vue.js if you haven’t worked with that before.

Also new in this edition, we cover Laravel’s wonderful eventing architecture by creating a mail event on completed registration.  This takes advantage of the new markdown feature to make the email “pretty.”  And of course we send dynamic data to the email, like the username.

Besides covering all the basics, like we have in the past versions of the book, we also cover some of the interesting parts of Laravel’s architecture, like the service container, service providers, automatic injection, and the new on-the-fly facades.

I think the dynamically generated facades are going to have a huge impact going forward, it’s another wonderful innovation from Laravel.  I cover it briefly in the book, where we also cover service providers and class bindings.  We learn how to code to a contract rather than a concrete class.  That’s a little more intermediate, but we provide a gentle introduction to it.

I also thought it would be cool to support the chat application with a custom console command that you can run as an artisan command or as a cron.  The command deletes all but the most recent 30 messages, so you don’t overwhelm your application with chat messages.

To recap what we cover in the book, we build a sample application that covers the following:

  • One-click Facebook Registration
  • Full Access Control
  • Datagrid with column sorts, powered by Vue.js
  • Image Management with Intervention Image Package
  • Laravel Mix Asset Management
  • Events
  • Sending Email with Markdown
  • A working Chat application with realtime updates
  • Laravel Echo, Vue.js and Pusher
  • Plus all the basics of application development

For those of  you who purchase the book, I hope it helps you meet your programming goals.  I really appreciate all the support, comments, ratings and reviews I’ve received, since I launched this blog.  Thanks to my readers for sharing the learning journey with me. See you soon.


Laravel 5.3 For Beginners in Top 10 Weekly Sales on Leanpub.com

I was under insane pressure this summer because not only did I have a new baby and had to move, but I was working long hours on my latest book, Laravel 5.3 For Beginners. I’m really happy that the hard work seems to have paid off, because, as of this writing, and just 7 days on the market, the book has entered the top 10 weekly sellers on Leanpub.com.

Thank you to everyone who is supporting my work. It’s nice to see this because I put a lot into this book, which comes in at 679 pages. I’ve gone really deep into the data grid example, which uses Vue.js to create a searchable, sortable, and paginated data grid. I also work in a Chart.js example using Vue.js as well, and we create that so we format all the data for the data and labels in PHP, which can be a real pain. The chart helper we create formats a number of date ranges for us automatically, so this is a handy example for future projects.

Also, Laravel 5.3 ships with an example Vue.js component, which we use to run through the very basics of Vue.js. Even though this is a Laravel book, we take some time to learn a little about Vue.js. Then we use that knowledge to get into the more complex examples with the data grid and the charts.

Vue.js has been widely adopted by the Laravel community, so much so, that it is preconfigured with the framework out of the box. This makes using it incredibly simple, and when you learn how to use Vue.js, you will understand why so many developers are using it.

We also cover in the book using Elixir, which, with Laravel 5.3, has become even easier to use. So I decided to include that in this book and we cover things like transpiling from ES6 and versioning. It’s really very easy to do now and it’s one of many amazing features of the Laravel framework.

The book starts out with super simple beginner level code and advance towards a more intermediate level in later chapters. For example, in the beginning, we cover the basics of Auth and the easy-but-powerful make:auth artisan command, which stands up your auth views in an instant. Later in the book, we modify all this to incorporate one-click registration through Facebook and Github.

I know you have a lot of choices when it comes to how you spend your educational dollars, so I’m trying to live up to that. Whenever I’m writing, I try to hold my work to a very high standard. I try to write something worthy of a positive review, something worthy of my mission, which is to help beginning programmers advance their skill level and do well in monetizing that skill. So thanks again everyone for sharing the passion and the journey. See you soon.

Free Bonus Material for Laraboot: Laravel 5.2 For Beginners Released Today

Bonus chapter 12 for Laraboot: Laravel 5.2 For Beginners is complete and has been added to the book. You can download the latest copy for free by logging into your http://www.leanpub.com account and pulling down the latest copy. All updates and bonus material are free for the life of the book.

Chapter 12 introduces ViewMaker 3.1. ViewMaker is a free artisan plugin that you can download. I created this plugin myself to streamline workflow when you are standing up a model, views, datagrid, etc. I wasn’t happy with the idea of copying and pasting and this is so much better. It’s also better than using a template from your IDE because it chains a bunch of templates together and stands them up all at once.

ViewMaker has an incredibly simple set of commands to use, however, they do a lot, so I go fairly in depth on how to use it. The concept of making a foundation by using the make:foundation command is introduced, and that gives you everything in one command, including routes, model, migration, controller, api controller, unit test, factory method, and views, which include datatables ajax-powered grid.

ViewMaker supports different template types, so you can go with a vue.js option for example, which will also give you a working datagrid in vue.js.

ViewMaker also has a make:master command, which creates a layouts folder with a master page in it, along with all the view partials, just like we made in the book, but with a single command.

The workflow improvement is phenomenal. When you have a model you want to stand up into a working datagrid, with the make:foundation command, you can get it all done in under 1 minute.

I’m going to continue to work on ViewMaker over the course of the next year to enhance its features and build out template choices. It does a lot now, but I’m hoping to get it to the point where you feel you can’t live without it. Once it installed, you will be updated automatically every time you run composer update.

I will continue to work to help you meet some of your programming goals with Laravel. If you have a positive experience with this book, please leave a review at:


Thanks again for supporting my work.

Laraboot: Laravel 5.2 For Beginners Available Now

Laraboot: Laravel 5.2 For Beginners Available Now

I’m proud to announce the release of Laraboot: Laravel 5.2 For Beginners.

I just completed the rewrite, since the original book was written for 5.1 and some important things changed from 5.1 to 5.2, especially with the Auth traits.

I wasn’t sure if I was going to be able to update my Laravel book in a timely manner, since the Laravel framework itself evolves so quickly. I figured that the changes from 5.1 to 5.2 wouldn’t be substantial enough to warrant it, but then I decided to do a new project in Laravel, and when I started using 5.2, I realized that the improvements were valuable enough to justify the work.

For example, 5.2 has a handy artisan command for creating the Auth views, so that is a real time saver. With routes, we now have a web group that we use, which uses web middleware, and we have accounted for that change as well.

I also rewrote the socialite implementation, revising the ManagesSocial trait to make it easier to follow. These are big improvements to the template, if you want to use it as a starter for your projects.

The new edition of the book also includes a ManagesImages trait, which helps make the image management code reusable, and we also use a config file to bring in defaults, so this is new material for the book, now 467 pages. I think you will like it.

Doing this version of the book gave me a chance to go over everything and make it as clear as possible, so I think you will some improvements there. I’ve updated the Laraboot github repository to the latest version as well.

I hope this book helps you meet some of your programming goals with Laravel. If you have a positive experience with it, please leave a review at:


Thanks again for supporting my work.

Laraboot: Laravel 5* For Beginners Now Available

I’m happy to announce the release of Laraboot: Laravel 5* For Beginners today. The base book comes in at 370 pages and covers everything you need to know to get started in Laravel. And there is more coming as I release the bonus material over the next 30 days or so.

I’ve kept the minimum price of the book low because it just launched and I want to give everyone who purchased Yii 2 For beginners a chance to get it at the lower price. Once the page count swells, I will normalize the price.

I’m also happy to announce that you can purchase both books, Laraboot: Laravel 5* For Beginners and Yii 2 for Beginners in a single Bundle named PHP Frameworks Laravel 5* & Yii 2. That’s over 1000 pages of material and working code.

I’m really committed to helping PHP programmers become familiar with these frameworks, so they can increase their earnings potential. Both frameworks are great frameworks to learn and you really can’t go wrong by learning them.

This time out, I branded the re-usable template with the name of Laraboot. Everything in Laravel seems to be branded, so I jumped on board with that. I take a lot of pride in how clean and simple the code is in Laraboot. I think you will appreciate how easy it is to learn and use.

A word of thanks to all the programmers from around the world who have supported my writing with positive comments, reviews, and referrals. Yii 2 For Beginners got 4.67 out of 5 stars on Goodreads.com. I’m hoping to do even better with the new book. It really does inspire me to work harder, knowing that the work matters and that people appreciate it, so thanks again!

Free Book By Eric Borgos

One of the people that mentored me early in my career as an entrepreneur was Eric Borgos, a web wizard who made millions as a one-man operation. Eric recently wrote a book, How to Make Money Online, and he has generously made his book available to my readers for free. All he asks in return is that you review it on Amazon.

You can find the free downloads here for each version:

I can tell you from personal experience that Eric has wisdom to share. I have benefitted from that wisdom myself, his advice and encouragement helped me launch my own business career many years ago.

Eric’s book is a fascinating read for anyone who is trying to make money online, but it’s especially potent for developers because it gives you a sense for what can be done if you have skills. Eric wasn’t a programmer, he always had to pay for programming, but nevertheless he has an engineering sensibility that found efficiencies in interesting places.

I highly recommend this as a pleasure read for anyone who is working in tech, and that’s a very broad way of describing it these days, but I like it because it encompasses so much. If you ever get the chance to sit down with someone as brilliant as Eric is to pick his brain, take that opportunity. You will be amazed at how much you can learn. His book is getting a well-deserved 5 star rating.

Thanks again to everyone for all the positive reviews on Yii 2 For Beginners. Also special thanks to all the programmers from around the world who follow my blogs, all likes, comments, and reviews are greatly appreciated.

Yii 2.0.6 Released

On August 5, 2015, Yii 2.0.6 was released. You can check out the official release announcement here.

This release has over 70 minor new features and bug fixes, including:

  • better migrations syntax
  • improvements in error handling
  • more control over ActiveForm using javascript
  • nested Yii::t() calls
  • extra session fields

I’ve looked over the changes and I don’t see anything that would conflict with the code in Yii 2 For Beginners.

Initially, when I tried to upgrade to Yii 2.0.6, I had problems and got an error:

  Could not parse version constraint <=2.*: Invalid version string "2.*"

So I put in a request to the friendly forum and got the response I needed:

to fix this, do

composer global update #this will update the fxp which causes your constraint issue
composer update  

Once I did that, everything updated perfectly. I have not found any problems with my template using this update, so I think we’re all good. If anyone does notice something that fails due to version change, please let me know.

As always I appreciate the positive reviews, comments, and links. Thanks!

The Wealth Algorithm

I took a brief detour from PHP tutorials to write a book for people under 30 years of age, who want to become wealthy. It’s book that shatters a lot of myths, includes useful information, and is very accessible to a younger audience. I wanted anyone from age 14 on up to be able to understand it.

I’ve always hated wealth creation books because they seem so fake, and I almost didn’t write it for that reason.
What I always noticed about these kind of books is that they were always so vague. You never seem to get something concrete from them, other than the statement of “avoid debt,” as if it took a clever person to figure that one out.

But then I thought about how I could do it better. Now everyone’s path to wealth is unique because no two lives are exactly the same, so I can’t avoid generalities in my book either. But on the other hand, I’ve come up with some very unique techniques for how to achieve personal wealth.

I felt like the main wealth algorithm, which is something I’ve loosely defined throughout my book, 99¢ Wealth, is something worth sharing and could have a big impact on people’s lives.

This was all made possible by the first application I ever wrote in PHP called Timekop. I wrote it a few years ago, but never released it. The programming was pretty hacked up and useless, but the idea was really cool.

The application measured wasted time on a daily basis and scaled it over a lifetime, so I could see the effect of wasted time over the course of my life. The results were a real eye-opener. And ever since then, I have applied scale and engineering principles to more than just PHP.

My personal wealth has grown dramatically since discovering all this. These techniques work and are worth learning.

In the book, I use various calculators to sketch out a roadmap towards wealth. The examples I use are typically American because I am an American, but I think anyone from anywhere in the world can benefit from my work.

Obviously, if you are from another country, you can change some of the assumptions to fit your local environment. But the overriding principles are universal. And anyone can follow them.

Those of you who know me as a diligent writer of PHP tutorials and my book Yii 2 For Beginners know how much care and effort I put into my writing. I did my best to deliver something valuable to all my readers. It’s off to a great start with reviews, I hope more will follow.

My 99¢ Wealth book is not written for programmers specifically, but would still be a benefit to anyone who thinks like an engineer. In my opinion, engineers and programmers are some of the brightest people on the planet, so most will breeze right through the material. It’s an easy read for bright people.

I also decided to stick with Leanpub.com for the publication of this book. There are a couple of reasons for this. One, I’m not a fan of Amazon. Two, I’d rather support the smaller enterprise. Things worked out well with my Yii 2 book and the leanpub staff is very responsive whenever I have a question. I like their platform.

It’s true I could probably benefit from more book discovery on Amazon, but since my blogs get a steady flow of traffic, I figure I will be driving most of the traffic to my books anyway.

Throughout all of my work, I’ve endeavored to help younger programmers learn skills that will help them be successful in life. This book on wealth is an accessory to that.

I’ve priced the minimum cost of the book at $.99. At that price, I get $.39 royalty per book sold. So obviously I’m not doing this for the money. At 99¢, the book is accessible to just about anyone. With Leanpub’s variable pricing, you can pay more if you feel you want to support my work that way. I do appreciate every sale of every book very much.

Also, the comments, likes, and especially positive reviews, are all greatly appreciated and drive me to keep working. The best feeling I can get from something I’ve written is that it’s useful. So that’s my mission, to write the most useful books I can. I hope they continue to serve you well.

PHP Tutorials by Bill Keck