Day 1: What am I doing? Learning to 'code'. Java?

 And so begins the Programming Journey...

And so begins the Programming Journey...

Coding.

I’ve been tossing this up for awhile now. I’m going to spend a bit of hobby time learning ‘to code’. Hopefully by the end of this year I can be employable in the ‘tech’ world. (No, this is not a new year’s resolution, just a coincidence it’s around the same time.)

Originally I wanted to create something that would be relevant and useful to myself. An iPhone app for the music world would be cool. An app for helping obtain relative pitch, memorising notes on instruments, etc. These apps don’t exist the way I would like them to exist. I could create it myself!

However I only have a PC. It turns out iOS development is restricted to macs…

Nonetheless, there are work around to not having a mac. One is virtualising iOS.

To make apps I would need to virtualise iOS on my Laptop, buy Xamarin, and buy Visual Studio on both mac and PC counterparts. Each software package costs a substantial amount of money that I don’t have. In addition i’d have to pay more money to release apps on the app store. Sigh.

Learning code to write apps has been crossed out.

What about C#? Looking at various languages C# stood out. It would be useful. Grasshopper for Rhino uses C#. I like parametric and computational design. Me and C# could work out?

Or not… I’m going in blind if I do C#. Maybe I should learn more about the industry…

In any case, I’ve decided to move in a safe direction for now. Get a handle on any foundational ropes and start climbing. I can swing to another programming path later. Java seems to be the trending language in the tech world. So I am now currently learning Java.

 

Today's Summary:

List of useful languages/things for me to learn to be employable:

  • Ruby
  • PHP
  • Java
  • Javascript
  • Javascript, react.js, angular.js, backbone.js, Ajax node [front end]
  • Ruby on rails [front end]
  • +App dev

General:
IDE: Integrated Design Environment. Aka interface like photoshop, except for making code.
Eclipse: An IDE for Java - https://eclipse.org/downloads/
Java RTE: Java Runtime Environment - What people need to run java made apps.
Java JDK: Java Development Kit - What people use to create Java apps. It includes an RTE.
Misc. People get calls at 12am calling them to fix things. There is a huge job market in tech world. Many are making the career switch. Some people say the money isn't as good as what is portrayed by the media.
 

Java/Programming Terms:

  • package: A technique for organising Java classes into namespaces. (https://en.wikipedia.org/wiki/Java_package)
  • import: shortcut ctrl+shift+o
  • canvas: 'canvas' is a class that begins to make the UI (http://www.tutorialspoint.com/awt/awt_canvas.htm) (https://en.wikibooks.org/wiki/Java_Programming/Canvas)
  • class: The building that things are done inside (https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html)
  • extends: But apparently is evil and unflexible down the line for future peeps. (http://www.javaworld.com/article/2073649/core-java/why-extends-is-evil.html)
  • extends vs implements: 'Extends' allows the subclass to reuse and override existing code. Implements allows objects in the class to be used (http://www.cs.pomona.edu/~kim/CSC051F13/Lectures/Lecture28/Lecture28_7.html)
  • interface: A reference type that holds specifics ways of doing things a developer has preassigned.
  • public: A Java keyword denoting a member's access as public. (https://en.wikibooks.org/wiki/Java_Programming/Keywords/public)
  • Thread: A single thread has a beginning, end, and sequence. Has a single point of execution. Runs within a program. It is the single sequential flow within a program. (http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/definition.html)

Education:

  • codecademy: For people who want to grab the basics. - I completed their first Java course and it's not for me. I can tell it moves a bit too slow for me, and am skeptical on how much I will learn from it.
  • RealTutsGML: This guy on youtube seems amazing. I will be following one of his 'make a game' playlists. The course looks like it's for non 'super beginners'. So perfect for me.
  • google: I feel evil if I do not include the most used educational tool I have.
     

Note. I don't know how beneficial it will be for me to make these blog posts. For sure it will be nice to have a log of my "Programming Journey", but at the same time I hope it's not a waste of time that would better be spent learning. I'll give it a try for now and see how I go. If anything it's nice as a bit of revision at the end of the night.