Programming can become boring and routine for some, and so effective programmers look for ways to override their brain’s default for ruts. How so?
In MITA Brain Based approaches — a novice programmer would:
1). Question with two feet to stir curiosity and add fun. Ask questions that hook to real life problems and develop new smart skills for installation, operating and troubleshooting problems. Include programmers’ interests to facilitate their learning.
Smart skill tools invite questions with two feet! Ask:
- How would you teach your friends to discover if a linked list has a cycle in it, in ten brief steps?
- If you were a programmer hiring a new assistant, how would you ensure the person interviewed could walk through a string in order to catch memory exceptions?
- What essentials would you include in a best selling book to help non technical readers implement PrintPostOrder functions for a binary tree?
- To support a new hire, how would you help the person contrast heap and stack and then create a function to discover if stack grows up or down?
- What advice would you offer to a novice programmer who cannot tell what’s next in the sequence: 1,11,21 to help him arrive at the answer 1211 or the next one as 111221?
- How would you illustrate the IUnknown COM interface for a person who needs to use the concept at work on the following day?
- What’s the perfect job that uses both TCP and UDP and how would they work to enhance that job?
2). Target creativity that invites effective designs and links essential codes – to practices that engage the novice programmers’ imagination and that encourage their own unique frameworks. Human brains rewire personal capabilities to achieve more when you focus on clear concrete goals. In contrast, bad choices inevitably follow at times through loss of briefly stated targets, or through confusion that comes to programmers because of moving targets.
Three brain based targets to teach quality program practice might include:
- Create cheat sheets for their next open book exam through examples such as Java.
- Market your best product to prospective buyer who may be interested in your services.
- Solve a problem in ways that have not been done before and show why solution works
- Create a blog to interact with faculty and peers to apply programming skills
Your target creations here are likely better than mine, but the key is to start with an action word that sets a clear target and leads to quality program performance. That way the brain will synapse to successful solutions far faster.
3). Expect assessment criteria clearly articulated for each step of your programming work. If you learn to use 2.0 features such as garbage collection, or fast enumeration, see what top five criteria should be evident in your results. Create the five criteria any evaluator will look for in your next programming task and then ensure these five are there with excellence.
Criteria for evaluating a programming project might include:
- Numerical accuracy
- Ease of use for non-programming public
- Effective design related to desired outcomes
- Creative additions to standard programs
- Built in opportunity for ongoing improvements
After establishing and negotiating with novice programmers what specific criteria you expect in the rubric, then assess the finished program based on only those five traits named and negotiated up front. Better still, add a prototype with your five top criteria, so that programmers see a sample and then feel free to add their own intelligences to top the prototype. Can you see the move toward growth and excellence for a novice programmer, when you engage more brainpower in this way?
4. Move with programmer’s unique mix of multiple intelligences so that learners engage many of their strengths and intelligences in order to rewire programming capabilities with each task. Suggest sequential tasks as they relate their capabilities to work with run-time system, for instance to support dynamic typing, dynamic building, messaging or message forwarding.
Move multiple intelligences up a notch through practicing each as programmers in training:
- Linguistic intelligence – Use words to teach younger programmers, start blogs to interact about solutions, trade Twitter solutions, search for facts on the internet, write how to articles and submit to popular journals for publication.
- Musical intelligence – Music will move and shake creative programming projects. From Gregorian Chant to lower stress to Bach or Handel – plan your next programming project with tunes that relax or inspire watch creativity grow. Or gain inspiration from Soul, Blues or Calypso. Don Campbell shows how to gain musical intelligence to jack up programming productivity, or even improve moods on a bad day.
- Intrapersonal intelligence – offers better decisions, lends common sense for keen insights, ensures contentment in your own company as you program. It grows the simple ability to laugh more on a busy programming day. Thanks to neurogenesis, programmers can learn to avoid panic when sidelined by problems. Take programming risks or program adventure you’d personally enjoy into a game.
- Bodily kinesthetic intelligence - Step out the strings, queues, puzzles or designs. Shuffle and stretch to put together programming designs and build prototypes with finer flare. Do it to grow it, when it comes to any new use of an intelligence that may not be ordinarily part of programming. Then watch for wonder as the brain kicks into kinesthetic mode or shifts into movement gears that zap programs alive through movement.
- Mathematical or logical intelligence? Why not start a schedule to plan your next programming week, since sequencing and patterning is at math smart’s core. So programming organization is at the heart of math IQ as is seeing the bigger picture. Like other intelligences mathematical genius grows more through using math ideas that take you feet first, and then into new creative programming flights. Mistakes add growth in math, just as errors can act as stepping stones to a program’s best.
- Visual or spatial intelligence? Grab a paper along with anything that writes and sketch your best programming memory in the last few weeks. Attend an art class, and learn graphic design tactics. Visit galleries, surround yourself with images that teach you more about programming. Or create an avatar to show your thoughts to an online community.
- Interpersonal intelligence? Interview a programmer you know to discover what makes that person smart at the work? Ask peers, “How are you smart?” rather than the more traditional question “How smart are you? Narrow that person’s narrative about personal intelligence as it impacts programming into one or two words, and you have already grown interpersonal intelligence for your next programming task.
- Naturalistic intelligence? If you spend excessive time breathing in refreshing scents of spring, surrounded by sounds of brooks running, or captivated by natures’ change for different seasons, you likely possess good amounts of naturalistic intelligence.
Surprising as it sounds you’ll often gain more brainpower for programming though, by using patterns and designs found outside, or musical cadences in the background, or carefully sketched images - to solve stubborn problems.
It may be far too simple to say use it or lose it, when you consider that you possess more than one or two intelligences that can make you a better programmer. For better balance why not take brainpower to new levels, by drawing from several intelligences, so that programmers can lead more innovation with their strengths. How so?
First, survey your multiple intelligences to see what’s stronger and what acumen you’d like to expand. Then, plan one programming activity today that involves a strength you most enjoy, and another that dips into a weaker area you hope to strengthen, for a smoother ride in one intelligence listed above.
Finally, move forward with the idea of growth, change, renewal, and ongoing learning in any programming area. Check out the fifth and final MITA Brain Based segue into more brainpower for innovative programming.
5). Reflect to determine where to from here and to predict upcoming programming problems and solutions such as memory management.
Discuss real life programming problems that require a novice to manage memory with retain counts and autorelease pools, and then show how to avoid common memory management pitfalls. What would you do differently as a programmer who takes advantage of smart skills that come with MITA Brain Based Approaches?