Skip to main content

Self Taught Programming - IS POSSIBLE!

A BIT OF PERSONAL CODING HISTORY...

Today, I decided to start a new blog that just deals with GENERAL PROGRAMMING LANGUAGE(S), not tied or specific to certain software like what I might have done in the past. I just need another blog to store quick ideas, exploration, my own notes that might be useful for beginner programming.

My programming journey actually started just few years back ago. I used to be a little bit afraid of programming, but I do realize at some point that I MUST learn to code or program in order to go far (my background is in Computer Graphic Design and Graphics).

A bit like learning to draw or to cook, this programming stuff actually took me quite a while to have that *SPARK JOY* of programming, beyond just the ability to type the syntax correctly and not making error.

Understanding the CONCEPT is crucial, while learning the LANGUAGE and actually make something useful.

I know it myself that I am very far from being master of coding and making apps and such and such, however, it still helps me a lot in recent years in my working career to be able to code.

So, always keep in mind that I taught myself programming, and there is a pros and cons in that. I am more interested in programming that is FUN and CREATIVE. Is programming a hobby for me? Well, maybe, maybe more.

However, if you can get to push yourself to learn programming language, you just upgrade yourself to another level. It will open your mind.

WHICH PROGRAMMING LANGUAGE?

If you are a beginner programmer and have FREEDOM to choose your own program to explore, you should choose your programming language carefully.

Below are some of my TOP FAVOURITE GENERAL PROGRAMMING LANGUAGES, I highly recommend you to start with these because they are simple, beautiful, and providing many resources online and books that can help you go far.

Python (Open Source)
Python comes pre-installed if you use Mac OS or computer like Raspberry Pi. For Windows, you can install latest Python 3.0.

Python is GREAT choice of language to start with. In fact maybe you just need to learn Python all the way, until you find the need to switch to another language.

Python is very much like English language, very wordy programming language, can handle String (Text) data very fluidly.

If you happened to be a Computer Graphics artist, like me, you will be able to use Python knowledge to help you go far when using software like Blender (Open Source) and others (Maya, Houdini, Nuke, etc).

Download the Open Source Blender 3D, and start coding Python if you may!

Python Language inside Blender 3D
There are few chores that you need to learn before starting programming with Python. Pre-installed Python on your operating system is nice. I work using PC and Mac and back and forth. You need to know few things:

  • Finding out how to install Python 2 or 3
  • Adding Python path to System Path

I am also using iOS devices, and there is Pythonista app if you really want to script Python using iPad or iPhone somewhat.

At later stage, you will want to check iPython and iPython Notebook workflow. Especially when dealing with data.

Sometimes, you might find that you are stuck with a certain main programming language. And in order to understand the concept further, you might want to explore other language for short period. Below ChucK and Processing are 2 fantastic tools to get you started. They are playful language to use.

ChucK (Audio Based)
http://chuck.cs.princeton.edu/release/



ChucK as invented and introduced by Ge Wang, is one unusual programming language for audio. 

Processing (Visual Based) 

If you are a visual person, and would like to see some visuals while coding, this is one language for you to start learning with.

And, if you somewhat has access to book and app called DBN (Design By Number) by John Maeda, you might want to read through it. It is a predecessor of Processing.

Wolfram Language (Knowledge Based + Cloud)
https://www.wolfram.com/language/elementary-introduction/
I have only recently found the love of using Wolfram Language, that was based on Mathematica. This one kind of click to me really well! I love how SMART and SIMPLE, Wolfram Language is. It is using something that is called "Natural Language" that enable you to quickly find ENTITY (Symbol and Objects) of all kind of things.

Wolfram Language is tied up to many other Wolfram products, such as Wolfram Alpha. So it is really quite intelligent.

Wolfram Cloud


The only "unfortunate" thing about Wolfram Language today is that it is a bit closed system, proprietary, owned by Wolfram Foundation, created by Professor Stephen Wolfram, as I learned from many YouTube videos and Wolfram's own blog.

Not quite free or open source as one would like it to be. However, it is still a fantastic "language" that can quickly and clearly show you the power of programming, just because Wolfram Language gives you access to HUGE & USEFUL DATA. Just like the messy Internet, but a lot more organize.

READ:
http://zef.me/blog/6186/wolfram-language

(One more thing, I think, sooner or later I also want to learn Apple Swift!)

WHERE TO SAVE YOUR PROGRAM?

A more correct question should be:
Which Code Editor shall we use to write program? I recommend "Sublime Text". It is clean, has a nice syntax highlighting, and freely available with donation if you will.

Now, for saving and storing your code, a folder inside DropBox is best. Unless it needs to be in particular path directory.

Depending on which work environment, sometimes good programs already provide you with its own working environment, so you can start coding.

Python -> IDLE
ChucK -> miniAudicle
Swift -> XCode

SOME INSPIRING PEOPLE OF PROGRAMMING (I THINK)

In your programming journey, you will meet your programming buddies and brilliant inspiring programmers.

Dealga Mc Ardle
http://blenderscripting.blogspot.com.au/

Bret Victor
http://worrydream.com/

Zed Shawhttp://learnpythonthehardway.org/

Daniel Shiffman
http://shiffman.net/books/

Comments

Popular posts from this blog

PYTHON PROCESSING / It only really begins ...

Back into Processing again, with Python! While Daniel Shiffman is continuously inspiring us with his CODING TRAIN series on YouTube, using Processing with Java and Javascript language, I decided to free my mind and trying to really do something using Processing and Python language. Installing Python language version on Processing 3 is easy enough, just first download the latest Processing and install the Python language mode via Add Mode button. Other link that might help: https://github.com/jdf/processing.py http://py.processing.org/tutorials/ BLANK MODE As soon as Processing Python Mode, opens up and running I am presented with a  blank environment. Suddenly I recalled my journey in learning programming from zero until now... With Python, outside Processing, commonly people will be introduced to Python IDE or IDLE environment. Something that looks like Console Window or Command Prompt, where we type single liners command. Python Command Line and IDE normally have t

PYTHON / OpenCV, Recreate Uncanny Manga - Anime Style

Can you tell what it is? Computer Vision. Yesterday, I spend almost whole day exploring this opencv module using Python. What I discovered was revealing. Even at the very basic level, I could produce some interesting Image and Video manipulation using all the code collected from documentation and many, many blog tutorials. If you are a total noob like me, I am still getting used to knowing that the CV in OpenCV means Computer Vision! Actuallly, I recalled that I did try to get into OpenCV few years back ago, when I knew no Python and when Python opencv module was probably still early. It was all C++ code and it was a little bit too hard for me. I read a couple of books about opencv at the library, I did not understand a single thing. That was back then. Today, for strange reason, with a bit of knowledge of Python, I can go a little further. EDGE DETECT IN OPENCV Me holding you know what. What leads me this far is my curiosity on how we can replicate Wolfram Langu

WOLFRAM / Making Text With Rainbow Color

Continuing with my Wolfram Mathematica Trial Experience... I watched and went through some more Mathematica introduction videos, read lots of Mathematica documentation and also going through the Wolfram Lab Online again a few times. There are some major learning curves and Mathematica is a lot different from normal programming language. Sometimes there is a lot of interesting "shortcuts", say like: FindFaces[] , WordCloud[] . Sometimes I got a little confused on how one can do iterations. Normally FOR LOOP concept is introduced early, but in Wolfram, because everything is EXPRESSIONS and ENTITY (like OBJECTS), sometimes it gets quite quirky. Mind you I am still in the first impression and having to look at many tutorials. Lots of NEAT EXAMPLES from documentation, but sometimes I got lost. I found Wolfram to be really awesome with LIST and generating list. It's almost too easy when it works visually. I cannot explain them with my own words yet, but there are