Programming… but I can still have hobbies, right?

I’ve been working on coding and getting up to speed with the program we are working on at work. I spend time at work and outside of work to learn more about Java.

Although I never had direction so I’m thankful for a specific task to work on, I still find myself enjoying time with family, exploring my new area, and meeting new people. However, I feel that I shouldn’t be so free and lax. I stress easily, but I am also pretty lazy.

I feel like I need to dedicate more time into programming and less on other activities, especially since I feel so behind starting out. In my program, I really feel behind my peers. I don’t put in the effort and I feel dumber than the others. At the same time, I yearn to do lots of things besides what I’m doing for my job. I want to learn stuff on my own more. I want to create an android app, work on my website, and I want to draw!! I love to draw and read and do lots of stuff. Today, I decided not to go to kickboxing, but I ended up wasting those hours anyways not working. I think I don’t want to work because there’s too many things for me to learn. I want to just pick one thing and go with it, but I feel like I won’t be able to contribute to the project anytime soon.

I have been only doing such marginal efforts. I have books to write cleaner code and books on making things. I don’t know what to work on. One side of me just wants to read a light novel and get a day off (again). I really think I’m lazy and I hate it. I honestly want to get back the joy I have when I was working on a classroom coding project and figuring things out.

Advertisements

What are REST APIs?

Something I’ve done before:

I created a Java Application using Swing to read and write XML data into the program.

Things I’ve learned recently:

  • What is an API?
  • What is REST? RESTful APIs?
  • SOAP v. REST?
  • What is Maven?
  • What is a Servlet?
  • What is OAuth?
  • What is JSP?
  • What is Polymer?
  • How to write a Java Servlet on Tomcat?
  • How to use Maven?
  • Discoveries
    • I can’t host Java applications on my website.
    • Java is not efficient for small web projects.
    • Java is good for multi-threading.
    • Angular 2.0 is very different from Angular 1.0.
    • When I write documentations, screenshots are very important.
    • There are two ways to call Javascript properties
    • I need to break things more to know that they actually work.
    • Always have a backup
    • There’s something called Angular Material

I guess I’m learning a lot more than I thought!

  • What is an API?
    • API stands for Application Programming Interface. It is used for different software applications to communicate with each other.
  • What is REST? RESTful APIs?
    • REST  stands for Representational State Transfer. REST is an architectural style, which means you can break it. RESTful APIs use HTTP request and response to make calls. I learned that most of the information is from HTTP header (in the URL).
    • Postman and curl are two ways that you can easily make API calls.
    • There are “resources” (objects) and request “methods” (verb)
    • There are four main HTTP methods:
      1. GET – When you need to read a resource
      2. POST – Create a resource
      3. PUT – Update a resource
      4. DELETE – delete a resource

Sometimes I get a little confused between POST and PUT because I have seen people use PUT to add a resource, but essentially updating a list.

  • SOAP v. REST?
    • SOAP is heavier because of the way they use XML. It is a much more strict protocol. REST can be broken, SOAP cannot. In REST, responses can come in various formats (HTML, CSS, JSON, XML). According to interwebs, SOAP is less often used for APIs nowadays.
  • What is Maven?
    • Maven is used to import jars into a java project. Instead of downloading and moving jars around, you can take jars deployed in maven or in the cloud and include them as dependencies in your Java web project.
  • What is a Servlet?
    • A servlet in Java is a class that takes requests and returns a response. From my tutorials I have extended the
  • What is OAuth?
    • OAuth is an authentication that allows access through a third-party site. A typical application is commenting on a website with your Facebook account. The website will not have access to your facebook credentials.
  • What is JSP?
    • JSPs are script files written in Java. It stands for JavaServer Pages. It is used for Java front-end development. I can write HTML in JSPs.
  • What is Polymer?
    • Developed by Google, it allows users to write in HTML and CSS in place of libraries. Instead of a bunch of div tags, the tags “have meaning again.” It is based on the web component idea, very similar to Angular JS.
  • How to write a Java Servlet on Tomcat?
    • A Java Servlet on Tomcat
  • How to use Maven?
    • The most important file is the pom.xml file in Maven. In the pom.xml file, you will be able to list the dependencies and plugins that you would like to import. POM stands for Project Object Model.
  • Discoveries
    • I can’t host Java applications on my website.
    • Java is not efficient for small web projects.
    • Java is good for multi-threading.
    • Angular 2.0 is very different from Angular 1.0.
    • When I write documentations, screenshots are very important.
    • There are two ways to call Javascript properties
    • I need to break things more to know that they actually work.
    • Always have a backup
    • There’s something called Angular Material
    • Super Useful Eclipse shortcut of the week:  Place your cursor on a variable (that needs it’s class imported), then click Ctrl + Shift + O

Sorry for the mess, but I had to get it down somehow. Now that I’m learning more about writing cool programs, I also need to work on my writing. This is a process and it will take time.

Something I’ve done in the past: I wrote a mock scheduling patient app that updates XML code everytime I run it. I used Java Swing to create a Graphical User Interface (GUI) for it.

 

 

Feeling Discouraged, Learning Motivation

Lately, I haven’t felt like myself. I went through a training with amazingly smart people. I felt lost in the field, drowning in my own ignorance.

I fell like an imposter. I felt like I didn’t belong and I didn’t know anything. I started to produce bad work and I stopped to a stand-still. I froze. I started to lose sight of who I was when I started to give up. I started to lose sight of usual life motto.

My Life Motto:

“I’d rather FAIL while doing my best, than to LIVE  without ever trying to succeed.”

Somehow I made it through the training and started to work. I reflected on the training and realized that I can’t let it happen again. I have to stick to my motto, my mojo. Otherwise, just like my life motto says, “I’d rather fail while doing my best, than to live without ever trying to succeed.” I have always thrown myself into uncomfortable situations and learned from it. I must continue to do so.

In order to motivate myself to learn, I want to juxtapose things I have learned or done with things that I learn today.

Something I have done in the past:

  • I made a felt jellyfish plush doll based off the anime, Jellyfish Princess. I did research on how to make plush dolls. I found an octopus plush pattern online. I created my own pattern based off of the anime and with some advice from my roommate. It took 20+ hours with research and implementation, but I was really proud of the result and brought it with me as a prop for my Tsukimi cosplay.claraJellyfish_sig

Something I learned today:

Today I signed up for the Java Servlets and JSP course on Udemy by in28Minutes, Ranga Karanam. I learned about a lot more shortcuts using Eclipse.

Ctrl + spacebar: good for auto-completion

Ctrl + 1: To move a class to another package

Alt + Shift + r: To refactor – rename – variable or class.

I spent a little too much time reviewing the previous videos on running Tomcat server using Maven. I created servlets that extend the HTTP Request Servlet from the JavaEE servlet maven dependency.

Side Note:

When I felt so lost, panicking, and losing my way…. I also felt so grateful because there were so many people that were supportive. I couldn’t even imagine that so many people had my back.

Becoming a Developer?

Wow… I started learning how to really code in January 2015. I kept dabbling with things here and there, but I never thought I would end up getting a job in development after graduation. I’m excited and nervous. I never imagined myself working behind a computer, but you never know where life will take you. Let’s make some stuff before I start working! I’ll probably work on my website or something.

World of D3.js – 2: JavaScript and UNICEF Project

These are slow re-counts of my semester so far taking Data Visualization with D3.

During the summer, I tried to do some independent studying with JavaScript reading up books such as JavaScript for Cats, Eloquent JavaScript, and Jon Duckett’s JavaScript and JQuery: Interactive Front-End Web Development. I should have done more than reading and coded more to understand the language better.

Week 1: I was still in Asia and did not get back in time for the first week of classes. I read the assignments and met with my professor during her office hours. I learned about our semester project, we would be working with UNICEF data to create visuals on D3.

Some of the examples my teacher gave us: JanWillem Tulp’s storytelling interactive shows many different data visualizations:  http://tulpinteractive.com/

At first, I found the visualizations to be cool and amazing. I looked forward to even creating something remotely like them. Now, I still think they are amazing, but I also feel intimidated. After 12 weeks of this course, I realize just how difficult it is to create these wonderful visualizations. Despite my worries, I know that I am learning a lot from the back-end of creating these visuals.

World of D3.js – 1: Stumbling into it

Woah… how did I end up learning d3.js? This semester I signed up for the Advanced Data Visualization Special Topics course, with little knowledge of what I was getting myself into. My infographics professor had highly recommended the new course with the visiting professor. Like always when I am about to make a tough decision, I come back to this one thought, “Will I regret NOT doing it?”

She is a visiting professor and I am a senior next year, I may not get a chance to take a course like this again. Looking back, I made a very wise decision. As I learn about d3, I realize how new the tool actually is.  Most of the resources we find on the D3 library comes from the creator Mike Bostock himself. I get a chance to learn something that not a whole lot of people get a chance to learn (today)!

No matter where I am going in my career or my life after college, I will never pass up a chance to learn something that I find interesting. 🙂 However, I really wish I can get better at this soon. Even though the semester is almost over, I still don’t think I have a strong grasp at what I am doing. I guess I have to try harder.

Perhaps a Budding Data Storyteller: Part 5 – Processing Videos 2

I am numbering the titles in order to keep track of my thoughts.

I have continued to watch tutorials videos of Interactive Data Visualization with Processing with Barton Poulson on Lynda.com. Since I took an introduction to programming course for C++ last semester, I am pretty familiar with the repetition concepts such as for loops and while loops. As for as I know, I do not think there are do … while loops in Processing.

Unlike my course in C++, I am learning about using interactive commands such as mouse-tracking, with coordinates (mouseX, mouseY), mousePressed(), and keyPressed. The interactive elements reminds me of the examples in the Javascript & jQuery: interactive front-end web development book by Jon Duckett that I have been reading this summer. I am only half-way through the book though.

Ex06_03_colorful grid

I didn’t really get creative this time. Mostly, I followed the tutorials verbatim. With processing, I can make the squares on the image above, continuously cycle through different colors in my palette.