What if I’m Not a Good Programmer

Programming is a part of machine learning, but machine learning is much larger than just programming. 

In this post you will learn that you do not have to be a programmer to get started in machine learning or find solutions to complex problems.

Programming Machine Learning

Machine learning algorithms are implemented in code. Programmers like implementing algorithms themselves to really understand how an algorithm works. This can also be required to get the most from an algorithm as is tailored for a given problem.

What if I'm Not a Good Programmer

What if I’m Not a Good Programmer
Photo by mutednarayan, some rights reserved

Solving problem is more than an algorithm. For example, there is more work in defining the problem clearly, preparing the data and presenting the results. Even the algorithms can be taken off-the-shelf and applied and tuned for a problem.

Graphical Machine Learning Environments

You can get a long way without touching a line of code. This is due to the great software that is available.

There are three popular machine learning environments you can use that do not require any programming to get started or make great progress on a problem.

  • Weka: A graphical machine learning workbench. It provides an explorer that you can use to prepare data, run algorithms and review results. It also provides an experimenter where you can perform the same tasks in a controlled environment and design a batch of algorithm runs that could run for an extended period of time and then review the results. Finally, it also provides a data flow interface where you can plug algorithms together like a flow diagram. Under the covers you can use Weka as a Java library and write programs that make use of the algorithms.
  • BigML: A web service where you can upload your data, prepare it and run algorithms on it. It provides clean and easy to use interfaces for configuring algorithms (decision trees) and reviewing the results. The best feature of this service is that it is all in the cloud, meaning that all you need is a web browser to get started. It also provides an API so that if you like it you can build an application around it.
  • Orange: Provides a design tool for visual programming allowing you to connect together data preparation, algorithms, and result evaluation together to create machine learning “programs”. Provides over 100 widgets for the environment and also provides a Python API and library for integrating into your application.

Scripting Machine Learning Environments

You do not have to be an excellent programmer to write scripts that glue together components. You may consider yourself a programmer, just not a very confident programmer.

Scripting is an excellent intermediate between a machine learning environment and more programming intensive solutions such as using a code library. In this section you will review two scripting environments for machine learning.

  • Scikit-Learn: Scripting environment and library written in python providing machine learning algorithms and data preprocessing. It provides plenty of documentation and examples for getting started.
  • Waffles: A collection of command line tools. If orange is a graphical programming environment than waffles is a command line programming environment. Provides tools for preparing and visualizing data, running algorithms and summarizing results. It is written in C++ and provides a API that can be integrated into larger programs.

Don’t Start With Code

Whether you are a programmer or not, I recommend exploring problems in graphical and scripting machine learning environments.

I think here are benefits in not starting with code. That you can learn more, faster by applying the algorithms rather than trying to understand them intimately first. Three benefits include:

  • Process: Platforms like WEKA are built around the process of analysis, preparation, algorithm running and result evaluation. They can train you in the discipline of experimentation rather than on how to run an algorithm. This allows you to focus on the path from problem to solution rather than on deeply learning about machine learning.
  • Discovery: You can discover data preparation steps you hadn’t thought of and algorithms you hadn’t heard of. You can get explore to a lot more methods than you would if you had to research and implement each in turn or read APIs documentation to figure out what was available.
  • Speed: You can try a lot more methods a lot faster when you don’t have to implement everything yourself or write code to realize each experiment.

In this post you learned that you do not need to be a skilled programmer to get started or make progress in the field of machine learning. You learned that there are many options available and that two specific examples are graphical and scripting machine learning environments. These environments can be used to learn machine learning and solve complex problems.

30 Responses to What if I’m Not a Good Programmer

  1. Dominik Holenstein November 23, 2015 at 9:29 pm #

    Hi Jason,

    Many thanks for sharing these tools. I will take a closer look at Orange and Waffles.
    Further, I can recommend KNIME which has a graphical approach as well including Python, R, Wekka and many other ML libraries.

    https://tech.knime.org/getting-started

    Dominik

    • András February 22, 2016 at 10:34 pm #

      Hi Jason,

      thank you for your really inspiring posts! Just like Dominik, I would also recommend KNIME as this is a very powerful tool especially for newbies. It has an easy-to-learn and intuitive user interface so you can start using it right away and come to notable results even if you only have the slightest idea of what machine learning is. On the other hand, with its extensions (especially with its integration with R and Python) it will be a powerful and productive tool for high-talented and experienced professionals as well.

      Keep up writing those great posts!
      András

  2. Kleyn Guerreiro June 7, 2016 at 5:07 am #

    A good comparison is pure research X applied research…. what I think you are suggesting is: get a solution for a problem (applied research) and leave the pure research (like building a brand new algoritm that you don´t know for what it serves at start) for the PHDs…
    And I agree with you!

  3. Jin July 5, 2016 at 5:22 pm #

    Hi Jason. Thank you so much for the info. This is what I was looking for!

  4. Jin July 5, 2016 at 5:32 pm #

    I am quite good at math and have a general understanding of what ML does. I only have an entry-level Python skill. How long will it take for me to become able to use ML to process my data?

    • Jason Brownlee July 6, 2016 at 6:22 am #

      You could pick up a tool like Weka in a weekend and get good at working through small datasets end to end within a few weeks. There is a lot to learn, but you can get results fast if you put in the time.

  5. ijem October 28, 2016 at 5:01 am #

    Gee thanks for all your posts! Machine learning mastery is the definitive guide for those starting out in ML. Were would H2O be classed in the line up above?

    • Jason Brownlee October 28, 2016 at 9:19 am #

      Thanks ijem.

      H2O is a MLaaS, like BigML, google predict and so on. I think it is a great platform for developers that want to start bringing machine learning into their software without implement methods from scratch/using a local library.

  6. Hashim November 17, 2016 at 3:53 am #

    Can i interconnect these frameworks with my data base and .net?

  7. Avishai Poorun December 3, 2016 at 2:57 am #

    Thanks for the details jason, you are the boss in A.I.
    I imagine the hard work behind this so as today you are reaching A.I in simplicity.For us to understand it is easy but for you at that time where you start,I don’t think you were at ease,it was hectic.

  8. Akshatha February 21, 2017 at 2:08 am #

    Thank you! This really paves a way to help me start. All this while I had been procrastinating with the presumption that my math and coding skills are no where near the pre requisites required for machine learning. 🙂

    • Jason Brownlee February 21, 2017 at 9:36 am #

      I’m glad you found the post useful Akshatha. Hang in there!

  9. Sanjay July 9, 2017 at 1:29 am #

    Hi Team,

    Am new to machine learning and have minimum knowledge in coding. My intention is create an image detection, object detection and speech to text and text to speech translator AI and deploy that to hardware like raspberry pi. Is there any GUI based tool using that i can implement the above requirement .

    • Jason Brownlee July 9, 2017 at 10:55 am #

      There may be, I don’t know of any off hand.

      • Sanjay July 9, 2017 at 5:46 pm #

        Can you help here to search me for the same or similar to that?. I searched but not able to find any.

  10. Susma October 10, 2017 at 2:03 am #

    Thanks Jason Brownlee!! This post really help me for digging up and analysis ml algorithm.

  11. Abeet Bhat November 17, 2017 at 7:11 pm #

    Hii jason…your articles have just given me the required push that i needed to get my self into machine learning …i am not that much good in programming…and just started applying algorithms …but i am using RAPID MINER …is that a good tool ????
    and yes again thanks for ur article…

  12. Jesús Martínez February 20, 2018 at 2:56 am #

    Thanks for the article, Jason. In your experience, if a person is good and fast at coding and prototyping solutions, can he or she still benefit from using graphical tools such as Weka? Or is it more oriented to novices or people that are not confident (enough) in their programming skills?

    Thanks for your time and attention!

    • Jason Brownlee February 21, 2018 at 6:31 am #

      Yes, sometimes Weka can get you a result faster than writing code. It’s great for quick prototypes or demos of what could be possible. Or small projects.

  13. Bhawana Mathur September 6, 2018 at 9:41 am #

    Hi
    I am not getting in laptop WEKA gui chooser when we download in computer

  14. Jose November 8, 2018 at 11:27 am #

    Good evening Jason!
    Your “Orange” link at:

    Orange: Provides a design tool for visual programming allowing you to connect together data preparation, algorithms, and result evaluation together to create machine learning “programs”. Provides over 100 widgets for the environment and also provides a Python API and library for integrating into your application.

    Is not working…

    http://orange.biolab.si/
    403 Forbidden
    nginx/1.11.13

Leave a Reply