About your Trainer

ZX-81

Eugene van der Merwe

Background

Eugene became interested in computers in primary school, when his friend’s dad lent him a ZX-81. This computer had only one Kilobyte of memory and the commands of the BASIC programming language were printed on the keyboard. As luck had it another friend’s dad who was an engineer showed him how programming works. When Eugene discovered that he could type instructions on a machine and have it produce output he was immediately hooked.

In high school Eugene taught himself Commodore 64 assembly language so that he could program games, and was also introduced to Logo and Pascal. In grade 10 he won the computer olympiad in his high school. Eugene loved to explain how things work and soon even some of the teachers employed him for private lessons in  programming.

After school Eugene studied in the heart of Silicon Valley, namely Cupertino. At University he was exposed to language such as C, C++ and Delphi and was introduced to  Unix and vi for the first time.

Eugene’s first teaching job was when we was 20 when he was working at a hardware and software provider. His boss at the time told him some of their corporate clients are coming to the office and he needs to give them two full days of training on computer networking, software installations, and troubleshooting.

In 1998 Eugene started an Internet service provider called Snowball which he sold in 2015 to Hero Telecoms.

My love for programming and teaching has been there my entire life. I’ve always liked to figure out how stuff works, and then be able to explain afterwards what I did. I also like to think that people can overcomplicate things, and that there is always a more simpler way to explain something hard. My belief is if you have strong fundamentals and you understand the basics sufficiently, you can excel and become a specialist in any area.

The challenge with learning is often found at the beginning. That initial push to get going can the a real blocker, and I struggled with that for years. A big reason for this is the reward cycle is out of reach in the beginning. Luckily as soon as you get over that initial hurdle the knowledge compounds, the reward cycle accelerates, and the fun behind learning kicks in.

Training Philosophy

Eugene’s training speciality is three fold:

 

  1. Understand the basics and explain things in a way that makes sense. Never overcomplicate things. Find real-world examples to explain more abstract concepts.

  2. When it comes to intermediate topics, focus on three key areas:

    • Practice by doing

    • Learning by reading and research

    • Challenging yourself

  3. To achieve success in advanced topics and become a specialist, focus on discipline and momentum.

    Push  yourself to tackle the most challenging problems and evaluate yourself constantly to see what keeps you motivated and what rewards you. Make sure as much as you learn you also get to know your motivation to stay on track.

    Set immense goals. Push yourself as hard as possible to realize your dreams.

Love for Laravel and Web Development

To build and internet service provider Eugene needed various tools of which amongst them is RADIUS. Most of the early tools for RADIUS were written in Perl, and pretty soon Snowball was running on a loose collection of Perl scripts.

As the business grew, more tools were introduced, such as FreeBSD for firewalling, MikroTik RouterOS for routing and highsite / CPE computers, and Linux for DNS servers, web hosting, and control panels, All these tools needed a much more sophisticated system, and PHP seemed the natural choice.

What makes PHP special is that it’s so easy. It’s quick to learn and quick to achieve results. All web servers work with PHP. The original idea and name of PHP spells it out, “Personal Home Page”, as back in the early days of the internet most geeks first website consisted of their personal home page.

Perl was also closely related to PHP so migrating from Perl was a cinch. Also tools and technologies in the PHP ecosystem was rapidly growing.

ISPs tend to work in a state of constant technological evolution. Every few years entire systems are upgraded or even replaced. PHP gave us the flexibility to keep up without being bogged down by a rigid coding stacks and tools. As toolset was adjusted as the market adjusted.”

Of course the major drawback with programming tools as easy and unstructured as PHP is that scripts tend to be a bit all over the show. For long PHP didn’t even support object orientation so all the code was heavily procedural. And when you have a multitude of ways to program and if there is no consistency or standards or object orientation it really starts looking like spaghetti. People critical of PHP tend to look down on PHP exactly because of this reason.

But then things changed…

The first time I discovered Laravel was when I received an email from an upstream system supplier saying that they are modernizing their toolset. Their platform was already running on PHP and they mentioned that they’ll start using new PHP methodologies and tools such as Active Record, an ORM, and Composer. I was completely dumbfounded. What on earth were these things? What was an ORM? It sounded like a worm. And this composer thing, had it something to do with music? I set out to google some of these new tools. I stumbled upon the fact that the PHP world had completely changed. People were not writing scripts anymore but they were rather using frameworks. Frameworks were evolving and breathing new life into PHP. One specific framework stood out, and it had an ORM.

In a nutshell an ORM is a way of abstracting your database code. Before, to get an alphabetical list of all the geography books in the library, you might have had to write it like this:

$sql = “SELECT books.name FROM libraries l WHERE books.category_id = $category_id ORDER by books.name ASC”
$results = mysqli_select($conn, $sql);

With Laravel you can do this:

$all_books = $books->where(‘category_id’, $category_id)->ordered();

When I realised what an ORM could do to a large scale application such as an ISP system, I knew that I had stumbled upon the future. The challenge with coding is that things are a bit too abstract and hidden at times. You might find yourself in a situation where you have 100s of database queries all working in tandem to form a complete system. The more abstract these queries and the code that holds it together the harder it is to adapt and evolve the system. And that’s if you’re lucky to work with the same set of programmers all the time.

And ORM allows you to abstract your databases queries and rather focus on the workflow in the application. The Laravel Eloquent ORM is extremely powerful but still easy enough for almost anyone to read the code. No more dabbling in your database editor for hours on end. You can build extremely large applications without having to write a single line of SQL.

But the beauty of Laravel extends far beyond it’s ORM. Laravel is based on the MVC framework, which means it introduces a massive amount of structure to your code. With all this extra structure you are able to build large scale applications. By following simple conventions, instead of complex “design patterns”, you can easily build something that’s easy to expand on. And also by following these conventions you can build something that others will be able to orientate themselves in straight away meaning that as your team grows your software will grow too.

What I further love about the Laravel Framework is it’s community. It’s clear that the leaders in the community such as Taylor Otwell, Jeffrey Way, Matt Stauffer, Adam Wathan, and Freek Van der Herten are all very heavily vested. The combination of excellent technology, a dedicated community, and a huge following means that you are betting on a winning horse.

I want to teach you Laravel and modern day web development. I want to show you the magic of programming and help you get to the next level. Along the way we will have fun and be creative.

profile for Eugene van der Merwe on Stack Exchange, a network of free, community-driven Q&A sites

Join the Laravel Academy mailing list

And get R100 off any course!