Programmers Are The Future

Access all articles in sprocket icon.

Published April 27, 2017 by Bill Keck.

The future is rushing at us at incredible speed.  Industries are being disrupted.  The world is transforming itself at a pace never experienced before in history.

Entrepreneur Patrick Betdavid has said that entrepreneurs can solve 100% of the world’s problems.   If that’s true, and I think it may well be, then the vast majority of those entrepreneurs are going to be programmers.

The reason why I say this is pretty simple, which will hopefully be clear in a minute.

I watched Betdavid step through a simple list on how to become an entrepreneur:

  1. Build a team with complementary talents.
  2. Identify the industry you are interested in.
  3. Identify problems within that industry that need solving.
  4. Determine which companies are already trying to solve those problems.
  5. Determine whether or not the companies trying to solve the problems are weak or strong.
  6. If you determine that the company that is trying to solve the problem is weak, then you may have identified an opportunity.

The way to solve problems and beat the competition is through innovation.  Who better to lead that innovation than programmers?

So that’s really good news for programmers.  We have almost unlimited opportunities in front of us.

However, as I state in my book, 100 Patterns For Success, I don’t think finding opportunity is as simple as just running through Betdavid’s list.

I can easily identify opportunities.  I think Bitcoin, for example, is ripe for disruption.

For one thing, their technology is not being updated and it won’t be able to keep pace with the evolution of devices.  This is a weakness.

While there are more and more centralized cryptocurrencies coming on the market, which address part of that concern, none of them are particularly strong.

So does that mean I’m the right guy to come up with the solution?  No.  I don’t have a passion for it.  The idea of working with cryptocurrency doesn’t excite me as a programmer.

People who are not passionate about what they are doing, but are simply chasing an opportunity, are almost 100% guaranteed to fail.  Inevitably there will be difficulties that will chase most of them out of the industry, and sooner, rather than later.

On the other hand, if you are kept up at night by thinking about all the possibilities of a cryptocurrency and how cool it would be to code it, you would at least have a chance of making it.

As an entrepreneur, the odds are always stacked against you.  The failure rate is insane and deciding to be an entrepreneur is not a rational act because almost any objective analysis of whether or not you will be successful almost always points to the negative.

Those who go on in the face of hopelessness are born to be entrepreneurs.  But this is easy for them because they don’t think of it that way.

Entrepreneurism is an act of self-expression.  We do it not because we want to, but because we have to.  Often, we have no other employment options because we simply don’t fit in anywhere.

Most entrepreneurs fail due to lack of capital.  The interesting thing about programmers is that we trade in a different kind of currency, code.  And that code can be incredibly valuable, even though it doesn’t take a lot of capital to write it.

I got involved with writing educational books about 4 years ago, introducing programmers to PHP frameworks.  My most recent programming book is Laravel 5.4 For Beginners, which is rated 5 stars on GoodReads.com, so thanks to everyone who rated it.

I wrote the 100 Patterns For Success to help programmers understand how they can use the incredible talent that they have to drive towards greater success in life.

So to get back to Betdavid’s assertion that entrepreneurs will solve 100% of the world’s problems, and if you accept my proposition that those entrepreneurs will be programmers, then that’s both an awesome responsibility and a great privilege.   Part of my mission is to help you make the most of it.

Thanks again to everyone for supporting my work.  Ratings, reviews, shares, likes, and comments are greatly appreciated.

100 Patterns For Success Officially Released

Access all articles in sprocket icon.

Published April 20, 2017 by Bill Keck.

100 Patterns For Success Officially Released

I’m proud to announce the release of my latest book, 100 Patterns For Success.

One day I was listening to the Laravel podcast, and they were talking about books on success, like “Rich Dad, Poor Dad” by Robert Kiyosaki, and how it didn’t leave the best impression with them.

I thought about the disconnect that many books on success have with the tech community, which is in large part because these books are not written by programmers.

The story of someone else’s success and their opinions is not really all that useful.  Why would we care about how someone built Block Buster Video out of a trash business, which is what Wayne Huizenga did?  Do we really care what Robert Kiyosai’s opinion on the psychology of success is?  Is it important that we know that Richard Branson’s dad threw him in a river when he was a boy to teach him how to swim?  Yes, that made him tough at an early age, it’s an interesting tidbit, but how does that help you?

Well, truth be told, there are valuable lessons in all those books.  I’ve read many of them and I don’t want to leave the impression that I don’t like them because I do.

But on the other hand, I can see why programmers might not like them.  For one thing, the average programmer is not an average person.  They are a little brighter to begin with, and in many cases are smarter than those older generations of people who made it big.

Programmers are more inspired by how things work, not how much money you stuffed in the bank.  We’re more interested in adopting useful workflow patterns and inventing things, than we are in psychological coaching.

So I stepped up to the plate to see if I could combine the two concepts.  I defined 110 patterns that you can adopt into your behavior that will point you toward success.  I know the title has 100 in it, but I added 10 more as a bonus.

I developed the patterns in a very open way, so that you can build your own system of thinking from it.  You can keep or discard the patterns as you like.  You can be inspired or disagree, but at any rate, you will be stimulated and exposed to new ideas and new ways of looking at things.

I recruited a lot of tech billionaires, rock star CEOs (and one actual rock star), and many others to lend their voice to the concepts.  The book contains many quotes from Peter Thiel, Elon Musk, Steve Jobs, Bill Gates, and many others.

We also look at brief case studies of Google, Yahoo, Youtube, Uber, Slack and many others.  We provide valuable insights into how some of these startups stack the odds of success in their favor before they even get started.

This book would be a benefit to any programmer who is even remotely considering starting their own venture.   As I point out the numerous times in the book, I believe that programmers are the ones who should be running companies.

Thank you for continuing to support my work.  If you do purchase the book, I have one small request, and that is that you rate and/or review the book at GoodReads.com.

Recommending this book to friends is a nice way to say thanks, I would really appreciate that as well.  Thanks again.

 

Admin-Dash uses Admin LTE for Laravel 5.4

Access all articles in sprocket icon.

Published February 26, 2017 by Bill Keck.

Admin-Dash uses Admin LTE for Laravel 5.4

I built an admin panel implementation for Laravel 5.4 using Abdullah Almsaeed’s amazing  Admin LTE template.  I’ve made this starter application available for free on github:

Admin-Dash

On the admin panel itself, I’ve pulled in all the examples, including:

  • Layout Options
  • Widgets
  • Charts
  • UI Elements
  • Forms
  • Tables
  • Calendar
  • Page Examples
  • Documentation

You can reference everything from within the application.  This includes cool plugins like flot charts and map integrations.  Just go to the github page for a screen shot of the panel itself. You can learn a lot by playing with this template and looking at how things are implemented.

In addition to all the amazing plugins you get out of the box with Admin LTE, I’ve also incorporated one-click social sign in for Facebook and Github.  I also created some examples, using Vue.js for datagrids with paginated, sortable, and searchable data columns.

If you are familiar with my book, Laravel 5.4 For Beginners, you will recognize many of the implementations from there.  On the other hand, things are a little more complicated.  For example, we use 3 master pages:

  • guest
  • auth
  • admin

And there are lot of partials to go along with them.  Doing it this way gives us a lot of flexibility over managing assets and cuts down on a lot of if statements in the views that would otherwise check to see if the user was a guest, logged in, or logged in as admin.

I’ve become a big fan of view partials.  For example, even if a form is simple, I extract it out to a partial.  This really helps with code separation, since I can dedicate the main view files to layout instead of logic.  It also has the effect of making the code so much more readable, helping with maintainability.

Also in this implementation, I extracted out some child components for the datagrids in Vue.js, which cuts down on code repetition.   I got rid of the big ugly handler for all the queries and put in a utilities file.

Those are all extras, however, and you are free to use or not use them as you wish.  The main focus was in pulling in the main Admin LTE template in a Laravel starter application that is a great starting point for building something.

The github page includes github instructions for forking Admin-Dash, so you can pull the repo into your github account and play with it from there.  I also included installation instructions for the app key, .env file, and a few other settings that you will need.

Thanks again to everyone who is supporting my work by purchasing my book.  Also, I’m happy to report we got our first ratings, which all came in at 5 stars.

Please leave a rating or review at GoodReads.com, it will help get the word out for the book, I really appreciate it.

 

 

 

 

 

Dependent Dropdown Form Vue.js and Laravel 5.4 For Beginners

Access all articles in sprocket icon.

Published February 14, 2017 by Bill Keck.

Dependent Dropdown Form Vue.js and Laravel 5.4

I have officially released chapter 15 of Laravel 5.4 For Beginners today on Valentine’s Day.  This bonus material is free for anyone who has purchased the book.  Updates to the book are free for the life of the book, one of the great things about the leanpub.com platform.

With the release of chapter 15, it brings the page count to over 900 pages.  It may be 900 pages, but it’s a gentle 900 pages, generous with screenshots and code.

Chapter 15 focuses on a robust example of dependent dropdown lists on a form.  We set up all models, so the data for the lists can be pulled into the form, which uses a custom Vue.js component to enforce the dependency.

In the chapter we work on a Lesson model, which has a category and a subcategory.  The subcategory belongs to a specific category, so we only want to show the subcategories that belong to it in the form.  By explicitly naming the parent/child as category and subcategory, it makes it easy to follow and keep track of which one is the child.

We also want to enforce the dependency through server-side validation, which prevents the form from being spoofed.  Projects tend to eventually  have some kind of complicated validation, so we walk through the options for creating that.  It turns out it’s pretty simple to do.

A lot of my readers have bought my previous books, and this puts a lot of pressure on me, when I do a new release, to make the new book worth purchasing.

With that said, here is some of what is covered in this book that is new to this book:

  • Laravel Mix (Replaces Elixer)
  • Events
  • Sending Mail and the new Markdown features
  • Service Container
  • Service Providers
  • Dynamic Facades
  • Query Scopes
  • Real-time Chat with Laravel Echo, Vue.js, and Pusher
  • Custom command to run as cron to cleanup old chat messages
  • Dependent Dropdown list on form with Vue.js

If you add to that list the data grids we build in Vue.js, you can see that you get a fair amount of Vue.js included in this book.  That’s a trend I see continuing for the foreseeable future, since Vue.js is so easy to work with and an application without javascript is not likely to be very interesting.

Laravel 5.4 For Beginners is no substitute for a dedicated book on Vue, my favorite for that is The Majesty of Vue 2, but Laravel 5.4 For Beginners can help you get up and running, teach you the basics, and help you take advantage of some of the really cool reactivity we can create with Vue.

Other fundamentals we cover are image management, access control, middleware, and one-click Facebook sign in and registration with Socialite.  My goal is to help you advance your programming knowledge, so that if you start the book as a beginner, you end it being more intermediate.

I’ve always felt that programming is a journey that Laravel makes more pleasant and productive, and I’m happy to share that journey with you.

Thanks again to everyone who is supporting my work by purchasing the book.  Please leave a rating or review at GoodReads.com, it will help get the word out for the book, I really appreciate it.

 

 

 

 

 

 

 

 

Laravel 5.4 For Beginners Bonus Chapters Released

Access all articles in sprocket icon.

Published February 6, 2017 by Bill Keck.

Laravel 5.4 For Beginners Bonus Chapters Released

Chapters 13 and 14 have been added to the Laravel 5.4 for Beginners book.  The book is now 745 pages in length.

Anyone who has purchased the book can download the updated version for free, by logging into their Leanpub.com account.  All updates are free for the life of the book.

In chapter 13, we cover sending mail and events.  We work up an email that we send to registered users, when they complete registration.  We also explore the different composition tools for creating mail, including the new markdown features, which really help us make a pretty email, with almost no effort.

We also cover events and listeners, and to demonstrate, we convert our simple mail message to an event, using artisan’s event:generate command.  Eventing is a powerful design pattern and we cover it a way that is easy to grasp for beginners.

Finally in Chapter 13, we talk a little about Laravel’s amazing architecture.  As I was going through some of the material, I found the following comment from Taylor Otwell, the creator of Laravel, in public/index.php:

We need to illuminate PHP development, so let us turn on the lights. — Taylor Otwell

I liked that quote so much, I made it the dedication to the book.

We learn just how well thought out the architecture is when we start looking at the service container, service providers, and automatic injection.

In chapter 14, we build a working chatroom, using Laravel Echo, Vue.js, and Pusher.  It’s not super fancy, but it does have realtime updates, changing the room count when people enter and leave, and of course updating all messages for all users in realtime.

This chapter introduces us to Laravel Echo and Pusher, which we have not used previously, but also gives us the opportunity to work with nested Vue components.

We also start to work with ES6, also known as EchmaScript 2015, which is the latest version of javascript.  If you are not familiar with ES6, don’t let that put you off.  I take it line by line to explain that syntax when we use it.  Turns out it’s pretty intuitive.

In chapter 14, we also build a console command that deletes database records, so our chat application doesn’t overwhelm our DB with too many records.  We need to maintain it, so we learn how to schedule the command twice a day, so a cron can run them.

For those who follow my work, these are additions that were not covered in previous versions of the book.  Every time there is a new release of Laravel, I have to rewrite the book because of the many small changes that happen.  It’s a lot of work.  And sometimes there is a big change, like the move to Laravel Mix and dropping Elixir.

I strive to make the new versions of the book appealing to both readers who are just starting with Laravel and for those who have read the previous versions.

Thanks again to everyone who has supported my work, I really appreciate it.  I look forward to continuing the learning journey with you.

Laravel 5.4 For Beginners Officially Released

Access all articles in sprocket icon.

Published January 30, 2017 by Bill Keck.

Laravel 5.4 For Beginners Officially Released

Ok, the new year is off to a great start, and I’m proud to announce the latest version of my Laravel For Beginners books.

This book covers in detail, at 626 pages, everything you need to know to build a web application using Laravel 5.4.  We cover all the basics of routing, controllers, models, with clear explanations on how it all integrates with Eloquent and MySql.

It’s part of my mission as a PHP writer to make this work as accessible as it can be to everyone.  Laravel makes that easy.  And this book goes step by step, with a full understanding of the concepts covered.  You don’t have to be a ninja to get it.

In the book, we also cover the following:

  • Access Control using middleware and traits
  • Socialite Facebook one-click registration and login
  • Image management
  • Vue.js basics using Vue 2
  • Searchable, Sortable Datagrids, using Vue components
  • Asset Compilation, using Laravel Mix
  • Mail and Events
  • Service Providers

Laravel Mix is new to Laravel and it replaces Elixir as the default asset build tool.

Laravel 5.4 For Beginners is available now on Leanpub.com.

I really appreciate all the support and great reviews I’ve gotten on the past books.  We’re already set up for new reviews at GoodReads, but obviously there are no reviews for this book yet.

For those that have purchased the previous version of the book, the move to Laravel Mix is a big difference between the books.   Also new, we cover mail, events, and application structure, including understanding the service container and service providers.

Because we analyze and explain in great detail things like the RegistersUsers trait, and many other parts of the framework code, each new version of the book has a lot of small differences from past versions.  This is also the reason why I don’t simply update the old version or provide a migration guide.

As with all of my books, I do expect to be adding bonus material, which will be free for anyone who has purchased the book for the life of the book.

As of this writing, I’m hard at work on a bonus chapter that will build a basic chat, using Laravel Echo, Vue.js, and Pusher.  I expect that to be done by February 15, 2017.  All updates are free for the life of the book.

This is my fourth book on programming and I feel it is by far the best one.  I hope you will agree.  Thanks again for all the great feedback.

Learning Frontend Development with Javascript and Vue 2.0

Access all articles in sprocket icon.

Published December 10, 2016 by Bill Keck.

Learning Javascript and Vue 2.0

Ok, so from time to time, I share resources that have aided me in my continuing education in programming. As those of you who follow me know, I’ve never been strong in front end development and that is something I’m currently working to change.

I recently reached out to Matt Stauffer, host of the Laravel Podcast, to see if he had a recommendation for learning frontend development. He was nice enough to make a recommendation, but before I tell you what he recommended, let me describe what I’m interested in learning.

I have found numerous tutorials online about html, css, javascript, etc, but the parts never seem to make up the whole. Yes, I can code basic Bootstrap like everyone else, but I never feel like I’m actually doing anything interesting or anything that would lead to a positive user experience.

I’m always lost when I try to conceive of the UX beyond basic Bootstrap. It’s like I want to write a beautiful sentence without having a vocabulary. Learning a word here or there doesn’t seem to help. I want to develop a sense for the flow of the language overall before I try to write anything. What does that mean in terms of UX? I don’t know, which is why I’m looking for help.

I’m a big fan of structure in learning. I’ve gotten so much from Laracasts, which we will talk about more in a minute, that I’m spoiled. I want that level of instruction in all learning.

As useful as Laracasts is, and it is incredibly useful for learning individual tools, it doesn’t help me develop the concept of UX. I want to learn and develop my UX capabilities from scratch. I want to be able to view application development from the standpoint of the frontend.

So I posed this question to Matt Stauffer and he recommended Code School, which is also online video instruction, coupled with online testing, which I really like. The cost of Code School is $29 per month, and it’s totally worth it, the quality of the instruction is awesome.

After completing a beginner course in html 5, I jumped into the javascript Road Trip series. Learning javascript is fundamental to developing a sense for frontend programming. Your application won’t be reactive without it.

I don’t know how you feel about javascript, but I’ve always hated it. Programming in javascript just always felt like a bunch of fragments thrown together in one big or small plate of spaghetti, depending on what the needs of the page are.

Recently, I started working with Vue 2, which is a javascript framework favored by many Laravel developers. It is powerful, but relatively easy to use, which is probably why it’s so popular. Vue 2 is supported by a book, the Majesty of Vue.js 2, which is excellent for learning the basics. I rate it 5 stars.

There’s also a brand new series on Laracasts for Vue 2, Learning Vue 2 step by step, which really showcases the power of Vue 2. It’s another top-notch series from Laracasts, you can’t go wrong there.

I should note that I cover the very basics of Vue 2 as well as creating an ajax-powered datagrid in my book, Laravel 5.4 for Beginners. That includes sorting, searching and pagination. But for more comprehensive learning about Vue, I recommend the Vue book and Laracasts.

With these resources, you can start to get a sense of the architecture and capabilities of Vue 2, and how it can add reactivity to your page. Reactivity is critical to modern design. The Laracasts series shows you, for example, how different components created in view can interact with each other via events. Cool stuff.

In the Code School series, which I’m still working my way through, it tackles the fundamentals of the javascript language, which is easy to overlook when you are coding patchwork in javascript. I tended just to learn what I needed for the moment and often forgot it as fast as I learned it. Now that I have more of a background in javascript, it is making more sense to me, though I still much prefer coding in PHP.

One reason why I always feel like I learn slowly is that I only feel like I know something if I really know it, not if I sort of know it. For example, for the longest time I would see references to the html DOM, domain object model, without really understanding what it is. I had just this fuzzy concept of an object. But what does that mean?

The DOM is a copy of all the html attribute tags, such as body, div, article, etc., held in memory, so that javascript can operate on it. So if you have a div with an id of “container”, for example, you can reference that div in javascript and operate on it. It’s really that simple.

This is why it’s important to study a language from the ground up. Doing so gives you a sense for how things work and why things are done a certain way.

Even as I study javascript, things are changing. ES6, also known as ECMAScript 2015, is a significant update to Javascript and has introduced new syntax and features. It’s a lot to get your head around if you are just starting. If you are not a fan of constant learning, you should have probably picked a career other than programming.

With Laravel Mix, you can easily integrate ES6 syntax and Vue.js into your applications, and there is a great Mix series on that in Laracasts.

Laravel ships with a sample Vue.js component and I cover how to implement that in Laravel 5.4 For Beginners. If you are using Laravel, you will find both Vue.js and Elixir invaluable.

But knowing all that doesn’t make you a great frontend developer. I’m still on the hunt for that. My plan now is to focus on Javascript and reactivity, then move into the more visual parts of the UX. On the javascript side, I expect this to take a year or more.

Learning programming is a journey and I feel like I’m finally well on my way to a deep dive into frontend programming. I still don’t have an artistic sense for it, but that is not my focus yet. I’m going to leave that for the very end, since I believe that in order to achieve artistic success, you must first have command over the tools that you need in order to create it. Javascript is absolutely essential for that.