My biggest regret

mountainscape

 

My biggest regret.

Is not delving deeply into learning how to write.

Skills are tools.

Writing is a skill.

Everytime I want to write I'm bringing out an unmaintained rusty wrench with spikes on the handle.

There's work that I want to get done, but my hands bleed from wielding a bad tool.

I need to learn to write.

I better start now.

-But wait. I've got to get good at programming first...

Week 14: It's decided. Art.

 Shiftily gazing to the future

Shiftily gazing to the future

This is the third week I haven't done any programming.

When I look at my old code I think "ugh. Do I have to look through all of this text?".

When I'm older- do I still want to code review thousands of lines of text? I mean even if it is my own work, the code is done in the spur of the moment. It's a hassle to look through everything. It's complex information.

Complex information that may be phased out within the next 50 years.

Will we still be coding in the same fashion as we are in the far future? For sure we will be coding, but the way in which it will be done will be different.

Having to learn new languages within the programming world used to excited me.

But now.

It's just a constant reminder that I'm consistently having to learn new methods, because the old methods are rendered obsolete.

Time is limited... Do I really want to knowingly learn obsolete methods in the now?

I like longevity. 

And art principles are more firmly grounded in ideas.

While I will always be learning new techniques in art as technology progresses, it's different to programming.

In art, nobody will shame you if you're still painting on canvas. A practice that is hundreds of years old.

In programming many of the older languages are dead or dying. Or if they are useful- they're within fields I do not have the greatest of interests in.

Furthermore, I've met really cool and smart people in art who like what they do.

I haven't yet met anyone cool and smart in programming who I really gelled with.

So yeah.

Art.

And with that I'm changing the name of this blog category from "Programming Journey" to "Art Journey".

I'll now focus on art and try improve specifically within the concept art field.

I hope this works out well lol.

Please wish me luck!

-Mark David Teo. Artist.

P.S. On writing styles I've been spacing out paragraphs more for an easier read. On re-read it works. The ideas flow easier and make more sense. However, I feel that there is the cost of a less dense text. Though paragraphs convey their ideas within the single lines they are shallow. They do not have backing.

I should learn to use a mixture of both the dense paragraph, and also the short skinny one. Using both will immensely help me with my writing.

I'm happy I started this website/blog. I had only ever written academically and doing so put me within a set framework. Single line paragraphs are off limits. But with this blog I'm able to write however I want. It's great.

Week 13: Nil

 Nil.

Nil.

This week was heavy. No programming got done. In fact I saw someone else programming, and while I thought it was cool, an idea hit me.

I don’t need to learn every skill
— me on friday

I don't need to learn every skill. Why should I pick up every profession to an indepth level? Instead I should find other people. Perhaps if I had a good programmer contact I could trust, I'd vicariously see the positives. Then I'd feel much more satisfied with the way things are. I wouldn't need to do it all myself.

Furthermore, I could focus on my own skillsets and be a greater asset to others. At the end of the day I want to work in a team. In a team everyone helps each other move the cart. As independent as I am, I don't need to carry a wagon by myself.

So programming...?

What is my relationship with you now?

TBC next week.

Week 12: A task a week?

This week I finished a random quote generator. I had been working on it since last week.

I did one task in a week. That's pretty slow progress. ugh. The art courses I'm currently enrolled in are stealing my time.

At this rate I could probably still finish FCC's front end dev curriculum by the end of the year. I had estimated I could finish it all before the end of my art semester (which finishes in three weeks). Instead I'm trekking along much slower than I thought I would.

I'm uncertain as to if I'll be able to finish a task this week. I'll still try. But we'll find out in the next blog post.

On writing:
I read my last blog post. It is terribly written. I'll need to go back and edit all my posts sometime. I need to remember these blog posts are public. Therefore, I should not ramble and write as though it is an online diary.

It is good I am now aware that I am a terrible writer on the first pass. Now I can learn to edit my own writing.

 

Week 11: Art or Programming...?

 It isn't all the same.

It isn't all the same.

Sigh. I keep switching my dreams around. One week I justify it to be art. Another it's programming. I've swapped my dreams around four times this year. I'm normally driven towards my goals. For someone who's known what they've wanted to do in life since they were a kid, these changes are rough.


However if I do programming, I’ll definitely make it.”
— me, Jan 26

First Change: Jan 26th, 11pm flying to LA. Jan 26th is Australia Day. I said farewell to the Australia's night sky which had been lit with fireworks. I chose to leave the country on the day Australia celebrates itself. The date and time are symbolic and memorable.

I had spoken to a good friend about my options. On the drive home I convinced myself and was 100% sure I wanted to do programming. My thoughts were "Hell- I don't even like designing while at work. Why would I want to be an artist anyway? I probably won't make it this year. However if I do programming, I'll definitely make it." Which settled to "I'll just do a semester of art and see how I go. I'll test the waters." 

Programming was a definite. It also made money. Art is a flaky option. It struggles to make money.

I was settled in programming and 'testing the waters' in an American life.


Second Change:

I can learn programming ‘anytime’. I can’t learn art ‘anytime’. “
”I was certain should do art this year.
— me, Early Feb

Within the first few weeks I decided that I should use this time in LA to do art. The thing is- I can learn programming anytime. I can't learn art anytime. It then becomes logical to maximise my time learning art here, and then pursue programming later.

Being surrounded by a house of six artists and their mentalities, I became hooked. I was certain I should do art this year.


 
I’ll be able to learn art after first becoming a programmer.”
”However, if I do art first will I really get the same opportunities?
— me, 28th Feb

Third Change: I told a previous academic supervisor that I had been considering a programming career. I received an email from him on the 28th Feb. In casual passing he wrote "You should go for the cash-not everyone has a math-bran (me least of all). "

The cash meant programming. It made sense. I have a math/logical brain. Within programming I could go far. I was already learning fast! I should do programming!

It sounds like a get rich quick scheme. I would get money, and it would be quick. I should be a programmer! Forget art!

The pay is quite high within programming. I could work 20 hours a day instead of 40! I'll have flexible time. Using that time I could do anything. I'll be able to learn art after first becoming a programmer.

However, if I do art first will I really get the same opportunities?

Therefore it's a simple decision. Programming first. Art second.


 
I can’t get a sponsored visa if it doesn’t relate to a Masters in Architecture”
”Maybe I should maximise my time here learning art?
— me, 21 Mar

Fourth 'Change':

Yesterday I was thinking I could get a sponsored visa for programming. Then I could stay here in LA and learn art. I could go to any of the art schools while working as a programmer. CDA, Brainstorm, or whatever I want. I've met some cool people here already. I would meet more cool people here. I would be happy.

However, today I looked at the nitty gritty.

I can't get a sponsored visa for programming. Therefore, my old plan gets thrown outside the window.

I can only ever get a sponsored visa if my job correlates to the specific skill set my degree is in. My Masters in Architecture cannot relate to programming. Specifically not Javascript, or any of the 'easy to pickup' high level languages.

If i did computational design, perhaps I could use my masters for a sponsored visa?

Then I would be breaking into computational design in architecture... Just to learn art?

I can't get a sponsored visa if it doesn't relate to a Masters in Architecture... Ugh. I can't get a visa with programming. In this case maybe I should maximise my time here learning art?


Quarterlife Crash.

Which should I do? Programming or Art? Ultimately I'd like to be able to do both. But that's probably not a wise short term option.

To be continued...


This week for programming I picked up some GIT. I use command line like a boss.

I also started learning some more jQuery to understand a FCC project.

I didn't really do much programming this week. I don't even feel bad... That's the worst part.

Week 10: I'm alive.

 I'm watching time pass before me

I'm watching time pass before me

In terms of coding I've made it to the intermediate section of FCC. A random quote generator... It's pretty interesting. I've got the barebones down for the project. However I want to have the site and layout formatted nicely. To do so I need to understand jQuery in relation to HTML more. So that's definitely what will be happening this week.

I'm also usingthe dreaded console window (cmd). At this moment I'm following a tutorial on cmd, for how to use it with github. It's nothing special or necessarily hard. But I thought I'd write it down so I can more accurately see where I was in this point of time.

I've also started re-posting on medium.com. I figured i'd throttle them out, and slowly build up to where I am. The medium posts will make my internet presence wider.

Additionally I've added a new component to this website. The "Blog Index". My blog is getting too many posts to simply scroll down for everything. To remedy this I've included a "Blog Index" page. The page will archive all my posts in an organised fashion.

Good.

Progress...

Week 9: Goal! Basic Algorithm Scripting Done!

Starting this post earlier because I'm so excited that I finished the Basic Algorithm Scripting course at freeCodeCamp.com
Trial by bonfire! Completed!

 #Online Community

#Online Community

In addition I've also just completed the Basic Front End Development Projects from FCC too!
Good week. Good progress.

Furthermore, I've had good progress in music and art this week! In music/trumpet I've realised I've been accidentally releasing air out from the sides of my mouth. Upon amending this my air is much more efficient. For art I'm learning to draw slower, and revise my work for an overall illustration. Good hustle this week Mark!

Week 8: Confidence

 Whoosh. Growing!

Whoosh. Growing!

This week I admit it. I didn't do a single programming task. I was enveloped in art. I now have a stronger ideal of art, but programming was shoved under the carpet.

It's okay I didn't do any programming. It made me understand the path of art better. At the end of the day it makes my skillset more round. I will forever know how to draw better. I think drawing, and these ideals of beauty and life grow exponentially.

But now after exploring art. I'm satisfied. And I'm more confident than ever in my pursuit of programming. It gives me a sense of confidence I've never had this year.

I've grown. Great.

 

Week 7: Priorities and Overscheduling

 I can't do everything. Can I still do programming?

I can't do everything. Can I still do programming?

The start of the week was good. I was consistently busting out challenges faster than the time allocated. I was blazing through the schedule. I feel like I am truly understanding javascript. Then it hit me...

Why am I doing this?

Why am I doing algorithm scripting? Why am I learning javascript? Why am I doing this? Is this truly what I want?

The path I'm on seems like it leads to web development. Do I want to be a web developer? I'm not sure...

However, one of the quickest ways I know to determine whether a career path is right for me, is to shadow those who have gone before me. I need to find a web dev that has gone through my path, and see if their work is suited for me.

Week 6: Routine.

 Consistency through routine

Consistency through routine

Well it's week 6 now. Nothing was outstanding about this week. I'm okay with the progress.

I'm quite comfortable writing javascript now. It feels like it comes out much more naturally. I'm becoming used to the syntax. The reference websites are bookmarked. Everything I need to write is there.

I'm apparently doing 'interview level' javascript questions now. That's good. It'll come in handy. The path I'm following is http://freecodecamp.com 's algorithm scripting. I've done [7/17] challenges. By the end of this semester in art, I want to have achieved a front end development certificate :) Wish me luck!

Week 5: Frustrated Paths. Coding bootcamp? Solo bootcamp?

 What do I have so far...?

What do I have so far...?

What am I doing with my life...? Lately I've been looking into coding bootcamps. At first I felt the hype, and seriously considered them. They seem to be 10-18k usd, churn out a high rate of junior dev ready graduates, and cite their fresh grad jobs to earn over 100k. It sounds too good to be true... It probably is.

I have a year to work things out. Can I learn enough by myself? Hmm it's doubtful. To truly and consistently grow, we need a community. Communities facilitate growth through consistency, motivation, and helping hands. Without it, I'm likely to lose sight of an end goal, and wander without direction.

But what if I involve myself with programmers in the area? They could show me the ropes. They could be my community. Many might even already be working in the industry and give me invaluable feedback. That would open up many possibilities.

Coding bootcamp vs Solo bootcamp. I am deciding.

Weekly Notes:

Finished javascript on free code camp. It took a very long time. I probably spent more hours this week than any other week learning to code. Much was learnt. Hopefully less was forgotten. Currently moving into object-orientated and functional programming now.

Week 4: Stronger heart, shifting times

 Looking ahead

Looking ahead

Last night I met a graduate from computer science. It was the first time I had ever met someone from the 'programming background'. Hearing her talk about the industry got me excited. Every day I am leaning more towards the programming path.

Versus a palimpsest profession of art or design, programming exists through a series of logic. I feel as though it is more grounded in reality and is more easily adaptable for a wider public. The use of art is almost streamlined in comparison to the visions that can be realised through programming. The tech industry is hot for a reason right now. Websites and apps reach the world. They can help people connect to learn and be more productive. Why wouldn't I want to learn this profession?

This week's log is short. Essentially it is simply one night's worth.

Notes

Concatenation

"In JavaScript, when the + operator is used with a String value, it is called the concatenation operator. " - http://www.freecodecamp.com/challenges/concatenating-strings-with-plus-operator

Strings (Helloooo, world, etc...), Integers (2, 3, 5...), and Floating Point Numbers (1.01, 16.04, 23.05...), are types of data.

(javascript) The function "+=" adds the following statement to the original.

(javascript) Javascript starts counting at 0. This is called "Zero-based" indexing.

(javascript) In Javascript, String values are immutable. They cannot be altered once created.

Camelcase = first letter is uncapitalised, each subsequent word is. forExampleThisStringIsCamelcased.

Week 3. Anticipated Hiatus. Vietnam + MYS + AUS + LA. Day 26.

Programming Life

I knew these weeks would be less productive than the beginning. Midway on Wednesday I made a trip to Hanoi, Vietnam for a holiday. I visited two small towns within Vietnam. I then flew to Kuala Lumpur, Malaysia to sort out misc issues. Following KL, I then came to Perth, Australia to say goodbyes to friends and pack for a year trip to the states. I am now currently residing in LA, USA. It's been a busy last two weeks.

Anyway onto the learning log:

Programming Notes

Three main pillars of web design:

Client Side Server Database
HTML
CSS
JS
Python
C#
Node.js
SQL
XML
JSON

Noting the 1 API in common. (JS)

Definitions:
jQuery (AGAIN): "jQuery is the most popular JavaScript library in use today, with installation on 65% of the top 10 million highest-trafficked sites on the Web" Free and open source. (https://en.wikipedia.org/wiki/JQuery)

(HTML) Block level: Grouping mechanism. For example using a <div> </div> tag makes a literal block on a page. It spans the width of a page and continues down. (self understanding)

(HTML) Inline:  Grouping mechanism. Differs to blocks as it only spans as large as the contents inside. <span> </span> is an example of an inline element. Inline elements can exist inside block elements. (self understanding)


*This entry was hastily done to try 'release' something. #Quantity over Quality (Ref: http://blog.codinghorror.com/quantity-always-trumps-quality/ by Jeff Atwood)

 

Week 1 (aka Day 7)

 Still in the canyon!

Still in the canyon!

And so a week has passed...

Coding is great. I’m doing it daily.

However compared to last post, I am no longer learning to make games with Java. I’ve decided that I’m going to start with something ‘easier’ and ‘more relevant’ to the idea of getting work asap. Understanding everything is greater than copying code. I had just been copying code learning Java.

I’ve just found Free Code Camp (FCC) and think the program and creators are super amazing. So amazing- that I’m determined to follow their track and learn whatever they have to offer. So far it has been great. I have just finished their HTML and CSS course. Here is a link to my profile: http://www.freecodecamp.com/volaix

Community

I truly believe that to move along long term in a skill it’s best to learn with others.

“In Africa we having a saying, ‘If you want to go fast, go alone. If you want to go far, go together.” — Robin Jones Gunn, Coming Attractions

The FCC community is great! I’ve asked for help quite a few times in their chatrooms, and always get immediate response. I feel like I’ve already made friends in the community. It’s very motivating and I’m sure it’ll help me long term.


Some cool definitions learned this week:

Object-Oriented Programming (OOP): Where you program with a focus on objects. Software objects are often used to model real world objects.  (https://docs.oracle.com/javase/tutorial/java/concepts/)

data modeling: A process used to define and analyse data. Data modeling is the process of learning about data. A data model is the result of the process (e.g. a flowchart). (https://en.wikipedia.org/wiki/Data_modeling)

Software Architect: A software expert who makes design choices and sets technical standards. It'd be hilarious if I became a Software Architect, you know, having a Master in Architecture and all. (https://en.wikipedia.org/wiki/Software_architect)

Chief Architect: Apparently the Chief Architect is the leading expert of all the Software Architects. If I have a master in architecture. Can I be called master... chief? Masterchief? (Halo reference) (https://en.wikipedia.org/wiki/Software_architect)

HTTP: Hypertext Transfer Protocol. Text based. Application layer protocol. Doesn't transmit data. Clients and servers exchange messages with a "request-resposne" system. HTTP is the common language. (https://medium.freecodecamp.com/how-the-web-works-part-iii-http-rest-e61bc50fa0a#.17l9gao54)

Angular 2 vs React: Angular is a framework, React is a library. With react you pull other libraries to build an app. With Angular you get more "premade" options out of the box, which helps to get started more quickly. (https://medium.freecodecamp.com/angular-2-versus-react-there-will-be-blood-66595faafd51#.gpr4ydjti)

jQuery: A small and fast Javascript library. (https://jquery.com/)

machine learning: Subfield of computer science, study of pattern recognition, and computational learning theory in AI. E.G. when you google "apple", google will know you're looking for the fruit and not the computers. (https://en.wikipedia.org/wiki/Machine_learning)

(HTML Tool) Using # in anchor links makes pseudo links

AARRR: Acquisition, Activatin, Retention, Revenue, Referral. A startup metrics model developed by Dave Mcclure. Used as a framework to understand and optimise businesses. (http://startitup.co/guides/374/aarrr-startup-metrics)

Hexdecimals. Wow. I've used hexdecimals for over 10 years. I've never once considered what they meant. Hex = 6. Decimals = 0.9 etc. Hexdecimals = combination of 6 letters A-F (6 'movements' of letters), and numbers. Hexdecimals work with RGB. The first two digits represent red, second two represent green, last two represent blue. #000000 = black #FFFFFF = white. F = highest value. 0 = lowest value. White is a mixture of all the colours in RGB. Black is the absence of colour. This probably sounds like nonsense to someone reading this, so I'll just have a link out explaining: http://www.bbc.co.uk/education/guides/zp73wmn/revision

Till next week!

 

 

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.