More JavaScript

The last few days have been a whirlwind for me, we added another member to the family on 5/26 and it has hard to juggle family time and coding. I am still working through freeCodeCamp‘s Basic JavaScript and Gordon Zhu’s Practical JavaScript. I feel like I’m learning, however, I haven’t had much chance to experiment on my own. That will be my focus the next few days. Below is a link to some reference materials I have been using to round out my studies. When I hit a wall of understand, I turn to these to attempt to clear things up:

Mozilla Developer Network

W3 JS tutorial

I’m beginning to understand how to manipulate the DOM and get my JavaScript code to interact with it instead of using the console my output. This was a stepping stone moment for me! Very cool to see your page come to life. I’ve got another 15% of the Practical JavaScript course to complete and about half of the Basic JavaScript tutorials. Once I finish those, I’ll discuss what I learned and where I plan on going to move forward!


Diving into JavaScript (and treading water)

The past few days have been some of the best so far for me and my learning goals! When I found freeCodeCamp, I cranked out the HTML5 and CSS section along with the first round of development projects, the Tribute Page and the Portfolio Page. I really enjoyed going through these tutorials and will repeat this very soon. The Tribute page (with code, here) proved to be easy enough and I used a lot of the concepts and tags that I picked up in the material. I was feeling pretty confident. I started the Portfolio Page and added the main section, dropped a picture in and tested it on different size screens. I added the portfolio section and screenshots of my work (along with placeholders). For the contact section, I created some buttons to link to my media sites and created a contact form (based on what I found here). What I consider v1 of the page is completed. It looks clunky and is unpredictable on different browsers and screen sizes. I decided I needed some more practice. I came across a (tweet) by @CodeChickCode that mentioned Practical JavaScript by Gordon Zhu, from I have started working through these videos and I am truly grateful I stumbled onto them. The course gives a great overall picture of what you are doing when creating JavaScript applications. Mr. Zhu has a unique and thorough way of explaining JavaScript. I will continue working through Practical JavaScript, freeCodeCamp Basic JavaScript section, and experimenting on my own.


I have to decided to take on the #100Daysofcode challenge. I will be tweeting and blogging about my experience. I am going to start with freeCodeCamp at ( I have completed the HTML and CSS tutorial portion and am now working on my projects. My projects are here. Please take a look an tell me what you think! They are pretty rudimentary as i am a #CodeNewbie for sure. Java is currently taking a back seat to HTML, CSS3, and javaScript. I know it seems I am all over the place, but I am learning as I go and sticking with what feels natural to me. My next post will discuss what I’ve done in freeCodeCamp and also the materials I’ve been using to learn on my own.

Object Oriented Programming

When writing code, it is best to limit the duplication of code as much as possible. To that end, I am going to share here the articles and websites I used to get what I feel like is a good grasp on the idea of objects and OOP.

I started with a good understand of what objects and classes are, as defined by Oracle:

I also read part 5 of the transcript from a David Gries speech here:

Next, I went through part 3 of Yakov Fain’s book Java Programming for Kids. Yes, its for kids but combined with the 2 listed above I was able to get what I consider a sound understand of how objects and classes work.

Please share any insight on OOP that you care to. My mind is an open book at this point and I’m trying to take in everything I can. Thanks in advance.

Next I’m going to start on actual programming, the obligatory “Hello, World” type stuff as well as  operators, which I want to take a deep look at, it seems relational are usually taught early and the others added in as needed but I’d like to cover everything up front, we’ll see how that goes.







I want to make it a point to discuss and explain everything I cover, as I cover it. I’m hoping this will give me a better understanding of everything. So, I would like to take a step back and expand on a few things I have learned so far.

First of all, Java.

Java was developed by James Gosling at Sun Microsystems and released in 1996. In 2006, Sun made Java available under the GNU General Public License (GPL). It is written to run on any type of processor because it uses a Java Virtual Machine (JVM) to run the software (bytecode) and translate it on the fly to a language any processor can understand.

  1. Program written in Java ->
  2. Compiled into bytecode (understood by JVM but not the OS) ->
  3. Run in the Java Virtual Machine ->
  4. Translated to machine language usable by any processor or operating system

The end-user must have Java installed on their machine to execute the program.

Next, the JDK.

The Java Developers Kit comes in 3 flavors, Standard Edition (SE), Enterprise Edition (EE) and Micro Edition (ME). We will be using SE (the links in my last post pointed to this edition). The kit comes with a collection of programming tools, some, like the compiler and loader, I will be using right away, others I will be learning more about as I go. The JDK comes with a complete JRE, JVM, and the Java API. The Java API is a set of classes written in Java that can be used to aid your programming by allowing you to call those classes instead of writing new ones for things like file access and displaying text on the screen. This kit is really everything you need to write and applications.

And Finally, the next step.

Next I will be going through some various Java tutorials and other texts with the goal of coming up with a good definition of Object Oriented Programming, how it works, and how to visualize it so that I have a complete understanding of the concept and how it can work for me.






A little prep work

The first step in learning a language, of course, is to get our hands on a compiler. In Java, code can be written in Notepad (or any text editor) and then compiled, using a Java compiler, into a working program.

The JDK, or Java Development Kit, includes the Java Runtime Environment, the Java compiler, and the Java APIs.

We will need:

The Java JDK

The Java JDK with NetBeans (more on this below)

I will not go into installation, there are many tutorials that can be easily found with a quick search.

Once the JDK is installed, we’ll want an IDE, or Integrated Development Environment to write the code. As I said above, you can certainly use a text editor but the IDE has many advantages.  I have used Notepad++, which seems to be a very basic IDE but worked well for me. An IDE is like an advanced Notepad, when you type code, it highlights reserved words and numbers the lines for you. In an operating system, reserved words are words or commands that have a specific meaning in the language. For instance, PRINT, is a reserved word in many languages and can’t be used as a variable name. There are many options to choose from, I will list a few here:

Notepad++ I will be using this to begin with –

“Notepad++ is a free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License. Based on the powerful editing component Scintilla, Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.” (Notepad++ – website

NetBeans IDE – see above to download with the JDK

“Fits the Pieces Together. Quickly and easily develop desktop, mobile and web applications with Java, JavaScript, HTML5, PHP, C/C++ and more. NetBeans IDE is FREE, open source, and has a worldwide community of users and developers.”

Eclipse IDE – used by the top CS programs in the country –

“The essential tools for any Java developer, including a Java IDE, a Git client, XML Editor, Mylyn, Maven and Gradle integration”

This package includes:

      • Git integration for Eclipse
      • Eclipse Java Development Tools
      • Maven Integration for Eclipse
      • Mylyn Task List
      • Code Recommenders Tools for Java Developers
      • Eclipse XML Editors and Tools

The goal today is to get both the JDK and the IDE up and running. I’ll update once I get that installed and discuss my plan for learning. Please comment with any suggestions or pros and cons, they would be much appreciated!