Online Programming Challenges: How to Assess and What to Do? 

Many employers are seeking skilled programmers who can help their business succeed and for their brand to be widely recognized. That said, competition in the job market can be tough for programmers. If you want to get hired, you need to be able to prove to a prospective employer that you are the best candidate for a position in their company. There are many ways to do this, such as becoming certified for a particular programming method or software, or by proving your abilities and skills through online programming challenges.

Discerning employers are already looking into programming challenges online to identify the best candidates to hire. There, you can do a programming skills test, which can improve your programming prowess. If you are new to programming, you are still welcome to take the online skills test to assess how much you know and which areas you should improve on. One of the leading coding challenges online is a fun and educational test that will teach you the concepts of modern programming languages in a simple environment that can make you feel like you are merely playing a game.

With online programming challenges, you can start from the basics and continue to advance to more challenging skills tests, while learning as you continue to play. Rest assured, the programming skills test will teach the techniques that can be applied to other programming languages. Some of the things you can learn are program structure, object and methods, parameterization, decomposition, loops, conditionals, debugging, optimization, and recursion. All these are delivered through a simplified platform, which you can learn to use in a few minutes.

Do not forget to challenge yourself with coding challenges online, even if you think that you are already an expert or at an advanced level. Whether you are a top software specialist or a novice in software programming, you will find the programming challenges to be helpful in assessing your strengths and weaknesses in what you do, so you can continue succeeding in your career.

Friday, November 1, 2019 7:04:00 AM Categories: computer programming tips and tricks

The Story about a Box: Programming the Perfect Square? 

On June 1, 2016, Wild Noodle introduced its summer competition. This competition consisted of 25 levels, with increasing complexity, using Herbert and the “H” language.   Herbert’s “H” language has three statements: l (left) r (right) and s (straight) and they are arranged using procedures and parameters to achieve the desired goal of solving the puzzle in the most efficient manner; otherwise known as optimization .
Though the goal of the competition seemed pretty straightforward, I was left thinking about the objectives of the game. I pondered about various options for developing a square. For example, to create a simple box, I could program Herbert, using the following order of statements:

SQUARE 1
ssrssrssrss

This program would take approximately 11 Bytes to complete and if I wanted a bigger square that this would add to the number of Bytes required.  Thus, if my desired goal was to make a square as efficient as possible, well this was not the answer, but in contrast, it was a fairly easy to program.  But if my goal was to create square with the least amount of Bytes then I would possibly use the following program to achieve my goal:

SQUARE 2
a:ssra
a

In the program above, I am using a technique called recursion .  I am asking Herbert to do the side of the square along with a turn to call itself indefinitely.  This program took only 6 bytes.  Yet again, if I wanted to make my square 5 or 10 times larger, well this would take additional bytes, again challenging the goal of efficiency.

SQUARE 3
a(A):sa(A-1)
b(A):a(A)rb(A)
b(2)

Though this program took 15 Bytes, it would eventually be more efficient than the previous program if I wanted a box larger than 11 s (statements).  This program allows me to program the number of steps forward Herbert should go for each side of the square.
Yet Herbert has so many options to solve the puzzle of the square.  Here are just a few ways to draw a square of size 10:

SQUARE 4
a(A):sa(A-1)
a(10)ra(10)ra(10)ra(10)

SQUARE 5
a(A):sa(A-1)
b:a(10)r
bbbb

SQUARE 6
a(A):sa(A-1)
b:a(10)rb
b

SQUARE 7
a(A):sa(A-1)
b(B):a(10)rb(B-1)
b(4)

SQUARE 8
a(A):sa(A-1)
b(B,C):a(C)rb(B-1,C)
b(4,10)

As I explored the myriad square creating options, I realized the beauty of Herbert.  Though the Herbert competition primary objective was to solve the given problems in the most efficient manner, the Herbert program had the ability to teach me how to think about variability of options to solve one problem and that learning the different options, allowed me to understand the complexities of problem solving.  It also allowed me to expand my ability to think outside the box.  What if I wanted to take my box and give it fancy corners or make many boxes? The more options, I created, the wider my scope to find solutions.  Look at my designs below:

Box with Fancy Corners
a(A):sa(A-1)
d(D):sld(D-1)
b(B,C,E):a(C)rd(E)srb(B-1,C,E)
b(4,10,3)

Many Boxes with Fancy Corners
a(A):sa(A-1)
d(D):sld(D-1)
b(B,C,E):a(C)rd(E)srb(B-1,C,E)
f:b(4,5,3)rsssf
f

Ultimately, Herbert and its “H” language, not only allowed me to think about the complexities of problem solving, but it also allowed me to explore the art of computer programming, the art to develop and design…Hello World!

 

View User Profile for Soraya Cardenas Dr. Soraya Cardenas holds a doctorate in Sociology and is the President of Wild Noodle.
Posted by Soraya Cardenas Monday, June 6, 2016 5:28:00 PM Categories: computer programming tips and tricks