Levels Of Understanding

Advertisement
This is going to be a story of how I learn new things and come to understand them well enough to put that knowledge into practice. I imagine these levels of understanding are similar for everyone, but I can't be sure. I'm just going off of my own experience. It's possible that for any given person or any given skill, learning could stop at any point where they've gleaned enough usefulness and the desire to continue learning has been exhausted.

However, if that desire to learn is strong, learning can develop through three main levels of understanding. The first level is the basic what to do to accomplish a task. The second level delves deeper into how things work in context to solve problems in the domain. The third and final level explores why things work the way they do. The answers to those three simple questions: what, how, and why encompass all of the understanding that can be gained from any skill, subject, or domain. To ground this discussion we'll focus on programming to make things more concrete. What is involved in each of these levels of understanding when learning how to program?

Levels of understanding

What Will Make it Work?


When first learning a new skill, we simply want to get something working right away. We want to see results, and know that we can produce those results without too much effort. What do we need to know to make it work? This is as true in programming as in anything else, and it's why tutorials are so popular. Tutorials walk you through what you have to do to get a new language, a new framework, or a new system to do something, anything, with a high chance of success. It doesn't provide much in the way of rationale or options, but it allows you to see something working and borne of your own effort.

In the first stages of learning how to program, questions are filled with 'whats.' What are the different language features, like literals, control statements, functions, classes, delegates, etc? These features are introduced starting with the simple ones and building up to more complex concepts. What is the correct syntax? A large amount of time is spent negotiating with the compiler or interpreter on the right way to format program statements so that your program will actually execute. What is the sequence of instructions that will make the program do what it's supposed to do? When the compiler is not being utterly difficult with cryptic error messages, this is where most of the programmer's time is spent—debugging their program and trying to get it to work correctly.

The questions of 'what' form the basis for all future knowledge on the subject. Without knowing what is available and what is possible, all other questions don't have anything to hang on and would just confuse matters until the basics are better understood. I find this to be true even now, after decades of programming. If I'm learning a new framework or a new language, I have to learn what's available and what the correct syntax is for a large portion of the system before any more complex concepts start to make any sense. It's like a fog surrounds the system, making everything opaque until I learn most of what's available and the fog starts to lift. The structure of the system starts to take shape, details become clearer, and I'm able to better understand the complexities of the system.

Knowing the lay of the land also helps later on because when I come to a new problem, I'm at least aware of various possibilities when trying to form a solution. I may remember some feature of the language or framework that could enable a neat way to solve the problem, and I just have to go look up how to use it. Learning the 'whats' of a new skill is certainly necessary to gain a working knowledge to be able to solve basic problems, but it would be a shame to stop there. We would be missing out on a vast amount of understanding if we stopped at what.

How Does it Work?


Learning how something works is a deeper level of understanding than simply knowing what is required to make it work. Only knowing what to do leaves it as a black box, but exploring how it works is like peaking inside the box and figuring out what's in there. Once you know how that black box works on the inside, you can start extrapolating from how it works under one set of conditions to how it would work if you changed those conditions. Now you can apply your tool to new problems in new situations that you may not have thought about before. You also have a much better understanding of how to use it at all, and what ways you can use it so that it will still work.

If the black box is a programming language, then one way of looking inside the box is to learn how the compiler or interpreter works to build and execute the statements of a program. Once you know how the compiler scans and parses the code, builds a symbol table and an abstract syntax tree, generates machine code, and links and executes the code, you have a far better understanding of what you can do with a programming language and how it all works together so that a program will do what you want it to do.

When you really learn how functions work and how languages capable of functional programming work, entirely new solutions become available for solving complex problems cleanly and elegantly. You learn how to pass functions around just like other parameters so that you can abstract away choices that would otherwise require lengthy and redundant if-else statements or case statements. Instead of hard-coding the steps of a function, you can pass in the steps that should be used as addition function arguments. These benefits, of course, are only the beginning of what you can do in functional programming languages.

Likewise, learning how classes and objects work in object-oriented languages opens up all kinds of options for organizing large, complex systems into more easily understood programs. When first learning about classes, concepts like inheritance, polymorphism, and encapsulation can be confusing, but once you understand how they work, it becomes clear that it's all about different ways of organizing a program, connecting data and methods for operating on that data, and getting it all to work as an integrated system.

We can even dig deeper into the workings of this black box to learn how the computer system actually executes the machine code that makes up a program. Learning how a program is loaded from disk into memory before it runs, how I/O works in all of its various forms, how the memory hierarchy is organized, and how instructions are executed on a processor all help you understand the context in which a program runs. With this knowledge you have a better appreciation for the scale of different program design choices and what trade-offs are involved for performance optimizations. Knowing how a program executes on real hardware makes it easier to identify where micro-optimizations won't matter at all and where optimizing inner loops or finding a more efficient algorithm are truly essential.

The importance of learning how things work applies equally well to learning how algorithms work or learning how a software framework works. Once you know how efficient algorithms are constructed you can more easily build new algorithms for problems that don't have ready-made solutions, yet. If you have a better understanding of how your favorite software framework is put together, and how all of the different pieces work together to make a complete functional system, you can make far better use of that framework to solve new and interesting problems instead of more instances of the tutorial problems you learned in the beginning. Learning how something works is not the end, though. There is a deeper question waiting to be answered that will unlock the true potential of a tool.

Why Does it Work?


At some point along the road to learning something new, we start asking the question why? Why is this done this way? Why is this choice preferred over that choice? Why does this work the way that it does? Sometimes these questions are asked too early, and we're not ready to hear the answers. We can't assimilate them into our overall understanding and retain the rationale behind the best practices and the inner workings of a system. Once the other questions of what and how are well traveled, the reasons for why can be better understood, and then they have a big impact on our mastery of this new thing we're learning.

With programming, when we start out the reasons why things are done a certain way in a certain language or framework don't make much sense. After gaining a better understanding of how a feature works, the question of why to use it becomes easier to understand as well. Why are blocks such an elegant solution in Ruby? An answer isn't even sufficient unless it addresses how blocks encapsulate a function and put the code that's relevant to the caller of the function in close proximity to it. When we really understand the reason why they're so elegant, it's much easier to see where they'll be most useful and how best to structure Ruby code to make the best use of blocks.

As another example how about the reason why MVC frameworks work so well as an architecture for software with a user interface? Such a question can hardly even be asked without understanding how an MVC framework is structured and how the different pieces interact. Simply learning what code to write to get an MVC framework up and running isn't enough to truly understand how best to use it in different situations. Learning how the framework really works, how the data moves through it, and how code in each of the model, view, and controller works together leads to a much better understanding of why they are so useful. Then it becomes easier to apply that framework to other problems that are much different than the original tutorial problem that was used as an introduction to the tool.

Taking a step back to the basics of writing code in general, Clean Code by Robert C. Martin is all about the reasons why we would structure code a certain way or make basic decisions about naming variables and functions with care. The beginner probably doesn't care much about these things because they wouldn't understand why they would be so important. I think reading this type of book as a second programming book after the introductory how-to-program type of book wouldn't add much value, but for a developing programmer who's been learning for a few years and may have exposure to more than one language, the wisdom contained in it is invaluable.

Why is the ultimate question, and it builds on itself as well. Understanding the answer to one why question can lead to a still deeper why question. With enough determination, a chain of why's can be followed until the point is reached where there's no longer a good explanation. This is the edge of a new frontier of knowledge, and it's places like these that are the most worth exploring and the most growth and development happens. Finding places where the why's end and putting in the effort to discover good answers is where real expertise lives.


This process of going through the phases of what, how, and why can take different forms. Sometimes the path is short and quick from figuring out what to do to make something work and understanding why it works so that the knowledge can be put to novel uses. Learning a new programming language feature in a mature language that you already know could have this short path. Other times the path can be long and difficult, like when learning an entirely new field of software engineering. It can take years of dedicated study to progress through the what's, how's, and why's of machine learning,  embedded programming, or web development to reach a level of mastery when starting from square one. To keep moving ahead, learning is mostly a matter of asking the right questions and seeking the right answers.

Napoléon Et Alexandre Ier (3/3) By Albert Vandal

Advertisement

Napoléon et Alexandre Ier (3/3) by Albert Vandal

WW2 Italian Bersaglieri Motorcycle Squad

Advertisement

Last month a did a little review and a couple of videos on the excellent 28mm Italian Motorcycles from Dog Tag Miniatures.

https://yarkshiregamer.blogspot.com/2019/02/28mm-dog-tag-miniatures-italian-ww2.html

I have constructed, painted and based the entire squad now ready for their first action in our next Op Compass Campaign Game in a few weeks time.


The first model type in the squad are these rider only solo motorcycles, titled Despatch Riders. I particularly like the scarf covered faces and the dark shades, almost the CHiPs of the desert.


Then we have a motorbike and pillion passenger both in a firing position, not sure who is steering !


Next up are two Sidecar Combos one of which was the "model" for the initial review post. I have had a bit of difficulty with the join between bike and sidecar which I found quite fragile and difficult to bend to the correct angle without breaking it. I ended up putting supports under the sidecar and using grass tufts to hide them.


There was a few queries on the previous post about whether or not the sidecar is on the correct side, it is, I have a photo of an original. The BMW 75 combo used by the German Forces has the side car on the other side as is normal for countries who drive on the right however these are Moto Guzzi bikes made in Lecco on Lake Como in Northern Italy.


My basic research into this discovered that until Mussolini came to power there was no official side of the road to drive on (those who have driven in Italy will vouch that nothing has changed !). Before El Duce proclaimed that people would drive on the right the North tended to favour left hand drive and there is some suggestion that some areas held out as a "lefty" for some time, therefore I can only assume that as Moto Guzzi came from the North their factory was tooled up for this. That's my theory, any Italian friends out there ?


The final model is this trike which I absolutely love. The mini is bought with an open back and I have added an Ammo box I had lying around and sat a figure on it. The figure came as a pillion rider for one of the Sidecar Combos but I preferred him like this.


These are a great addition to my Italian Desert Force and something I have been waiting for, for a long time.


And yes I did give them individual number plates.


It's About Time...

Advertisement

Doctor Who: Time of the Daleks is essentially a re-themed Elder Sign, but I think I'm okay with that. Thematically, Elder Sign is a game about tweedy academics solving problems intellectually rather than with brute force, and that is absolutely what a Doctor Who game should be about.

Like Elder Sign, the core gameplay in Time of the Daleks involves rolling dice and matching their symbols in order to complete tasks. Each player plays as a particular Doctor, with assistants and gadgets that allow him to manipulate the roll of the dice in order to get the right combination of symbols. Each successfully completed task moves that player closer to winning the game.

Also like Elder Sign, there is a villain at work, essentially trying to outrace the players and prevent them from winning. In this case it's the Daleks, and their presence is felt in the game in several ways. Failing at a task will generally move the Dalek saucer forward on the scoring track, and of course they win if they beat all the players to the end. Additionally, any failure will also result in a Dalek figure being placed on the board, where they reduce the number of dice the players get to roll. Too many Daleks on the board will also lose the game for the players.

There are a few ways in which Time of the Daleks differs from Elder Sign (enough to keep Reiner Knizia's lawyers at bay, anyway). The dice-rolling tasks that players must accomplish are determined by a combination of two different tiles on the board: a location and a dilemma (usually a villain from the TV series' long history). This makes for a great deal of mix-and-match variety, as Silurians may threaten the planet Karn in one game, and the Time Meddler in another.

Combine that with a randomly shuffled deck of companions, and the game can tell a multitude of what if stories as Leela teams up with Sarah Jane Smith and the 11th Doctor to stop the Cybermen from invading Clara's apartment, or the First Doctor and Nardole foil the Master's Trap at the Bank of Karabraxos.


Another way in which it differs from Elder Sign is that it is only partially co-operative. Players are in competition with each other to get to the end of the score track first, but they all lose if the Daleks get there first. If a player is having a tough time solving a dilemma, he can ask one of the other players for help, which they may be inclined to do if it will slow down the Daleks. Additionally, the assisting player shares in the reward for completing the dilemma. It reminds me a lot of the multi-Doctor stories where they fight and bicker but end up cooperating for the greater good.

If you read the online chatter about this game, the main complaint about it seems to be that the announced expansions for the game have not yet materialized, a year after the game's release. Part of this frustration no doubt comes from the fact that the game was originally intended to feature six Doctors rather than four, and was scaled back in order to get the asking price down. The game's coverage of the world of Doctor Who does feel a little thin here and there -- clearly there is room for a lot more content.

Nevertheless, it's a solidly designed game with some beautifully designed components (The Expanse Board Game could learn a lesson here). Most importantly, it feels like Doctor Who, which is something no other board game in the show's 55 year history has quite managed to do.

Rating: 4 (out of 5) A good game that could be a great one. It captures the feel of Doctor Who, but not quite the depth.

Download Naruto Shippuden Ultimate Ninja Storm 4 Road To Boruto For PS4

Advertisement

Download Naruto Shippuden Ultimate Ninja Storm 4 Road to Boruto For PS4

FPKG | CUSA06210 | Update v1.02 | 

  • Release Date: Out Now
  • Genre: Action / Fighting
  • Publisher: BANDAI NAMCO Entertainment Inc.
  • Developer: CyberConnect2 Co., Ltd.









With more than 13 million NARUTO SHIPPUDEN™: Ultimate Ninja® STORM games sold worldwide, this series has established itself among the pinnacle of Anime & Manga adaptations to videogames! NARUTO SHIPPUDEN: Ultimate Ninja STORM 4 Road to Boruto concludes the Ultimate Ninja Storm series and collects all of the DLC content packs for Storm 4 and previously exclusive pre-order bonuses! Not only will players get the Ultimate Ninja Storm 4 game and content packs, they will also get an all new adventure Road to Boruto which contains many new hours of gameplay focusing on the son of Naruto who is part of a whole new generation of ninjas.
• All Ultimate Ninja Storm 4 Content in One Edition – Includes the Ultimate Ninja Storm 4 game, 3 DLC packs from the Season Pass (Gaara's Tale Extra Scenario Pack, Shikamaru's Tale Extra Scenario Pack, and the Sound Four Extra Playable Character's Pack), the all new Road to Boruto DLC, and all the previously exclusive pre-order bonus content
• New Generation Systems – With development made specifically to leverage the power of PlayStation®4. Road to Boruto will take players through an incredible journey of beautifully Anime-rendered fights!
• Huge Character Roster and New Hidden Leaf Village – Additional playable characters including Boruto, Sarada, Mitsuki, and Sasuke (Wandering Shinobi) and a new setting of a New Hidden Leaf Village
• New Collection and Challenge Elements that extends gameplay


DE: Powerful Builds For Your HQ

Advertisement
You know you're in some shit if someone points.

This one is going to be a short one since we're going to be primarily focused on the use of HQs.  One thing's for damn sure:  I feel that we have some fantastic melee HQ options for the price.

Here are some my favorites so far:
  • Archon, Labyrinthine Cunning, Writ of the Living Muse = 72 base
  • Archon, Hatred Eternal, Djin Blade = 76 base
  • Archon, Famed Savagery, Djin Blade = 76 base
  • Succubus, Blood Dancer, Adrenalight, Triptych Whip = 54 base
  • Succubus, Hyper-swift Reflexes, Adrenalight, Blood Glaive = 54 base
  • Succubus, Precision Blows, Adrenalight, Triptych Whip = 54 base
  • Haeomculus, Diabolical Soothsayer, Vexator Mask = 75 base

Let's start with the Archons.  You've all probably seen me take the Archon with Cunning and Writ of the Living Muse in my lists.  That's because it's one of the most powerful Warlords in the game for the points IMO.  Cunning is absolutely fantastic at regenerating CPs whenever a CP is spent for both you and your opponents.  For DE, I find that some of our Strategems are a little costly, especially that Agents of Vect counterspell that costs 3 just by itself.  With Cunning, you can do some really crazy recycling that can help you sustain the longer gameplan:

For example:
  • You don't want a 2-cost Strategem to go off so you throw out Agents of Vect.
  • Before you even put AoV down, you roll 2 dice for his Strategem for Cunning.
  • Next, you AoV and since you just spent 3 CP, you roll 3 more dice to see if you get any back from Cunning.
  • Agents of Vect then takes effect, hopefuly blocking his Strategem.
  • In this example right here, you're probably going to get back a CP from just playing the game regularly.

When you play Black Heart, you almost have to bring Writ of the Living Muse.  It's one of the best buff batteries in the entire game and enhances the damage potential of every single Black Heart unit within 6".  Everything within this distance gets re-roll 1s to Hit and Wound that that is a huge damage amplifier, especially on things like Dark Lances and Disintegrators when you absolutely need to hit with your more expensive damaging weapons.  Living Muse simply gives you consistent damage and that's exactly what you need to turn your very good shooting up a notch to exceptional.

As for melee Archons, I see two main options here:  Both of which have the Djin Blade of course which is just an upscaled Huskblade.  Hatred Eternal gives you more consistent results via re-roll all wounds in melee but the Famed Savagery Archon from Flayed Skull gives you great burst damage.  With Famed Savagery, you have 8 S5 AP-3 D3 attacks that hits on 2s with re-roll 1s.  Personally, if I was to pick one of the two, I would go for more consistent damage with the Hatred Eternal Warlord trait.  There are bonus points in the fact that Hatred Eternal is a generic WL trait and thus doesn't lock you to any particular Obssession.  As for arming the Archons further, always seek out the Blaster first since you have a fantastic BS2+ and Blasters are amazing with their S8 AP-4 D6 damage from 18" (24" for Obsidian Rose).

I whip my hair back and forth.

The Succubus went from one of the most overcosted units in the entire game to arguably the most cost-efficient melee blender in the game.  I'll start off by listing the Blood Dancer variant that comes with 9 attacks hitting on 2s, re-rolling 1s, and each Hit roll of a 6 turns into 3 Hits instead of 1.  On the regular, she can throw out something like 14 attacks with an Agonizer (Poison 4+ AP-2 1D) and that's just obscene.  Against single wound models, she is almost guaranteed to wipe out entire squads by herself.  She just reminds me of the Blenderlord that I ran for Vampire Counts back in the days of Fantasy.  To make things even more exciting, once you hit Turn 3+, you can activate these multiple hits on a 5+ instead of 6 because of the PFP chart.  The only downside here is that she's a Succubus and she just explodes if anyone swings back at her because she only has a 4++/6+++ with T3 and 5 wounds.  Regardless, LO_OK at her points cost!  For 54 points, she's an absolute steal.  I can't help but hear this garbage ass song whenever she enters combat.

Other variants of the Succubus are also really strong; such as the Blood Glaive Succubus with 5 attacks with Adrenalight dealing S6 AP-3 D3 damage attacks.  I've seen this particular variant built two ways really; with either the Red Grief specific WL trait of 3++ or with Stimm Addict with Grave Lotus and Adrenalight.  This gives her 5 attacks at S7 which is now a serious threat to virtually all targets including light vehicles.  Again, 54 points of awesome.

Another variant I want to introduce you to someone who might be our best duelist.  She has 9 attacks with the Whip just like the Blender because she's from Cult of Strife (for +1 attack), however instead of Blood Dancer, she has the Precision Blows WL trait.  When you're hitting with 8-9 attacks every turn, you're going to be looking for 6s that can just do straight mortal wounds in addition to the regular wounds inflicted with an Agonizer.  That's very good.  For all these Succubus, I highly recommend taking a Blast Pistol on the Blood Glaive Succy to take advantage of her superior BS2+.  Funny enough, the Precision Blows Succubus can still do mortal wounds to Vehicles and Titans.

Never trust someone with 5-6, 7? arms.

Lastly, we have the Haemonculus that you will probably see most frequently if you're planning to take Coven units and Alliance of Agony for 1 CP.  This is because Diabolical Soothsayer essentially pays for itself immediately and you can get 2 more CP if you roll well (D3 in total).  Sure, you also get that once a game re-roll for your Warlord, but no one really cares about that because you also gain access to the Vexator Mask.  This thing is actually pretty hilarious.  You can basically take this Haemonculus and just charge into something to tie it up because they cannot use Overwatch on you.  You can then charge your Wyches into them for free without any fear of OW fire.  To make things even more enjoyable, the mask also gives an enemy unit with 6" of the Haemonculus ASL essentially, making them strike last after all other units have gone int the Fight phase.  That's just funny considering the amount of melee boss HQs we have in the Codex.

What are some of your favorite HQs to bring?  I know I've been extra boring with the Black Heart Archon, but hey, it's been working so why not!

National Rankings For Clash Royale Have Been Released.

Advertisement
Willem Broodryk (Parys High School) currently heads the national ranking for the Clash Royale esports title.
2019 has seen the first year of the esports title Clash Royale being played at MSSA's official Provincial and National Championships.Now that the esports title has been played at MSSA's Gauteng Provincial Championships, Mind Sports South Africa is able to generate rankings for its premier championships.

It was thus at MSSA's Gauteng Provincial Championships that Willem Broodryk won the championships, and in doing so, has taken the lead in South Africa's national rankings.

What with a very full schedule of events that are lined up for 2019, it will be interesting to see if Willem can keep his pre-eminent position.

The current rankings for the Clash Royale esports title is as follows:



PosName of PlayeryearClubPoints
1Willem Broodryk19Parys High School179.6
2Dale Spolander19Northcliff High School152.4
3Carlos Kori19Northcliff High School143.5
4Tyreke Michael19Northcliff High School139.1
5Jeandre Viljoen19Parys High School130.9
6Liam Moodley19Northcliff High School113.9
7Thammy Ndlovu19Northcliff High School109.6
8Terrance Broomberg19Curro Aurora102.4
9Wickus Lubbe19Parys High School120
10Micheal Naidoo19Northcliff High School76

Rankings produced by MSSA are as follows:
Also read:

Arsip Blog

Copyright © 2009 - - Kiamat | Coin Free Faucet Claim | Firebug Theme by Blog Oh! Blog | Converted to Blogger Template by ThemeLib.com | Jasa Promosi Online - Tukar Link Gratis