How To Be A Programmer.

The only way to be a good programmer, in spite of any innate talent you may have, is to practice writing programs. Programs that test the limits of your capabilities and beyond.

Writing the same program over and over will do little to improve your skill-set. It’s the challenges that make you grow. It’s the mind-set that you approach the field of programming that will make or break you.

Programming must have some attraction for you beyond the idea of making money in some well paid job or creating the new Facebook. You must get some form of satisfaction out of programming for its own sake otherwise it’s a chore and things that are a chore tend not to be done very well.

How do you learn? or How do you acquire skills and knowledge?

Some folks are desperate to be shown how to do something. Some people like to explore and make mistakes. Some like to be told. Some like a combination of these and some make it up as they go along.

There is nothing inherently better about any mode of learning. It’s which mode or modes work for you and how in different circumstances or subjects your learning modes change.

It’s about being willing to try different techniques or styles. Working on a computer. Working with pencil and paper. Taking linear notes. Doing a “Mind Map” or two. Listening to audio on your audio player or video on your video player. Surf the Internet. Watch TV. Read a book or journal. So much variety for you to explore and enjoy.

Take control of your learning. Find out how you learn most effectively and start DOING it.

When should you code? Another thought.

Unless you have a design, no matter how provisional, you SHOULD NOT start coding a solution.

Find a “tool set”.

Find a tool set that works for you and master it. Don’t jump about among different tool sets.

Analyse the range available and make an informed decision. If you can’t make an informed decision, make an emotional decision. Either way, make a decision, then get on with it.

There is no one correct solution.

When should you code?

Unless you understand the problem, how do you expect to produce a functional solution.

What applications should a computer user learn?

If you had to choose and learn a set of applications and tools on a computer which ones would you choose?

I’m putting forward these lists as discussion points, but at the same time advocating them for universal use particularly in education throughout the world.

I’ve set some criteria that I believe are important for it brings us back to the underlying purpose of computer systems, that is to be tools to extent human capabilities not to be money magnets for hardware and software companies who are led by and employ people who either never knew ( a sad observation on the state of education and credentialization ) or ignore key issues such as usability, functionality, purpose, value for money, ethics and a host of other factors. Users should not be concerned over CPUs, chip sets, or other internals of computer systems neither should they select an operating system as their key choice.

It is what you want to do with a computer that should dictate operating system and hardware factors. I propose that the applications that users should learn should be independent of platform issues.

The office user is best served by insisting on using:

  • Libreoffice    Full featured word processor, spreadsheet, presentation and vector drawing tool.
  • The Gimp     Full featured graphics package/
  • KompoZer    WYSIWYG HTML tool
  • Scribus        Desktop Publishing System
  • Firefox         The web browser (or any browser based on it)
  • Thunderbird Email client
  • Audacity      Sound Engineering
  • MoinMoin     Personal Wiki

The developer should maximize their productivity and product marketplaces by using:

  • VIM              Full featured editor
  • EMACS           Yet another full featured editor
  • KompoZer    WYSIWYG HTML tool
  • GNU             lots of ported software including bash for all platforms.

and other cross-platform tools

With these we could all save time, effort, money and share a lot.

A Better Way Of Learning Computing Skills and Knowledge

Coming soon.

A better and more responsive way to gain valuable computing and related skills and knowledge that with help your employment prospects and enhance your personal productivity.