On My First 100% on a Java Program

Got a 100/100 on my first Intermediate Java Program.

I have been working really hard at being consistent in my life: consistent bedtimes, consistent night time medication times, consistent hygiene times (you’d be surprised at how weird my hygiene patterns were when I had that breakdown this time last year), consistent eating, notes & homework…you get the gist.

So far I have been doing just that, with the few night time medication hiccups of late, but for the most part, everything is consistent.

I have been combing over my class notes and making consolidating them in Evernote for reference later. I have been programming and completing assignments well before they are due.

This brings me to my next point.

Confidence

Now that I have programming experience under my belt with Free Code Camp and Treehouse, I am experiencing a bit more confidence this semester, the confidence I lacked last time I took CS 0401.

I can do the whole, Read-Search-Ask method of finding how to solve something given by Free Code Camp. This has been instrumental in getting as far as I have. This method of learning how to program is the best way, I believe, instead of being handheld through the process.

I understand why something works and why it doesn’t. And our professor, Tim Hoffman, explains so much stuff so clearly I can actually do the assignments without much stress.

For instance:


// F16 CS 401 Speeding Ticket Project
// Project1.java Starter File

import java.io.*;
import java.util.*;

public class Project1
{
  public static void main (String args[])
{
  // Create a scanner to read from keyboard
  Scanner kbd = new Scanner (System.in);

  String firstName="N/A",lastName="N/A";
  int age=0, speedLimit=0, actualSpeed=0, mphOverLimit=0;
  int baseFine=0, underAgeFine=0, zoneFine=0, totalFine=0;
  // DO NOT ADD TO OR MODIFY ABOVE THIS LINE

  // your variables & code in here

  System.out.println("Enter your first and last name. \> ");
  firstName = kbd.next();
  lastName = kbd.next();

  // DO NOT ADD TO OR MODIFY BELOW THIS LINE
  System.out.println();
  System.out.format( "name: %s, %s \n",lastName,firstName );
  System.out.format( "age: %d yrs.\n",age );
  System.out.format( "actual speed: %d mph.\n",actualSpeed );
  System.out.format( "speed limit: %d mph.\n",speedLimit );
  System.out.format( "mph over limit: %d mph.\n",mphOverLimit );
  System.out.format( "base fine: $%d\n",baseFine );
  System.out.format( "zone fine: $%d\n",zoneFine );
  System.out.format( "under age fine: $%d\n",underAgeFine );
  System.out.format( "total fine: $%d\n",totalFine );
  } // END MAIN
} // END PROJECT1 CLASS

When asking for the first and last names in one string, I knew instinctively, because of Tim, that the characters in strings are tokenized in the string buffer. Once it gets to a space in the input, it stops tokenizing, and the next string is held in the buffer. If you were to ask for an nextInt() for the following input, you’d get an error. To avoid this, you usually do firstName = kbd.nextLine(). But since I needed to essentially split these so that they would look like:

Hoffman, Tim

on one line, I could keep each separate part of the string input in the string buffer using firstName = kbd.next(); lastName = kbd.next() and it would spit out the correct output. Pretty cool. I wouldn’t have known about this if not for Tim. I learned it on 0007 but I didn’t quite understand.

Aced the First Project

Got a 100% on Project 1. It helps he fills out the output that he expects but he also lets you do it as many times as you can until a certain point after the project/lab is due. This is the first time I’ve gotten 100% on any difficult programming assignment since I’ve been going to Pitt. Yes, it’s a text based Speeding Ticket Calculator that basically relies on Scanner input and conditionals and some simple math, but I hadn’t even gotten 100% on my Beginning Programming projects, let alone the Intermediate programming projects. This boosts confidence and gives me hope for the future.

First Week of Class, Pitt 2016

First week of class has started. I have a pretty easy way of it this semester. There’s a CS class which is all web dev, and an InfoSci class that is design, basics, and some programming.

In our web dev class, Matt is a strange and weirdly funny guy. His Google slide deck intro was:

Welcome to the Interwebs.
I’m your host, Matt Bowytz.

He also had a reference to Pittsburgh vernacular when he said:

Policies n’at

Which I loved.

No ES6 in Web Dev

Unfortunately, I think Matt doesn’t like ES6 or he doesn’t want to teach it. Whatever the case, it makes me sad but I understand it.

We have a majority of seasoned programming vets in our class and some intermediates, like myself. I debated whether or not to change the name of this blog as I am no longer a newbie. Decided against it— this is what my blog is known by. It has been this name for almost two years. I’m sticking with it, for now.

Anyway, we have a good amount of people familiar with web dev. There are some who have never coded before in their lives but that is rare.

There are old heads like me in the class, too. That’s pretty damn cool.

First CS Project

We will be building up to an e-commerce or some other site, whatever you want. Part one is making the bones of the site and Part 2 is finishing it off.

I wanted to make my contacts app for this project but decided to go with the e-commerce site instead. First it will be HTML and CSS with CSS animations and then I’ll up my game with JavaScript and jQuery.

InfoSci Is Pretty Good, Too

Bob Perkoski is pretty darn funny and a true Pittsburgher, what with that accent, n’at.

The classroom must be new— it’s huge and when I sat my black backpack down on the table it had newly sawed sawdust on it.

We learned about UI design our first day of class. We also got thrown into a group project that same day.

Group Projects

I understand the need to show us what it will be like in teams in the workplace. And I understand that there are personalities in every team. Working through that? I don’t know.

There’s a guy who wants to put all the things in the music app we are designing. Most of us 1 have advised against all these features. He is talking about building the thing himself, even though we don’t have to code anything. There’s even a Google Doc with the title B code example in our folder.

I don’t know how to deal with people like this, who are as equally headstrong, opinionated, and as arrogant as I am. It’s weird to see parts of yourself in other people.

Thoughts

This should be a 4.0 semester all the way. Bob admitted to how easy InfoSci 0010 is. I guarantee you I will get an A there.

So far the first week of class is off to a fast start.

Here is my Project 1 Proposal in a gist. Let me know what you think!

 


  1. The 4 out of 7 of us participating, anyway 

Plan for Success

So, in two weeks, I will be back at Pitt. I know I’ve talked about it a lot but I am honestly excited.

I joined the College of General Studies Student Government in the hopes to meet some cool older folks to hang out with. I’ve been here in Pittsburgh close to four years and really don’t have anyone to hang out with. No real friends. And the more time wears on, the more I stay inside and work on projects. It is unhealthy and I need to not do that.

My Plan

I have been taking in a lot of College Info Geek videos by Thomas Frank. Binge watching them, actually. I have also stopped by his blog and bookmarked the books he recommends for college students to read. Yeah. I’m all about it.

I want to succeed this time. No bombs. No Cs. No being distracted by Facebook, Twitter, Feedly, whatever. I set up a script for Self-Control app to run when I open my laptop in class. I used a Keyboard Maestro macro to do this. I set the trigger to be the Pitt’s wireless network and then added the AppleScript to an action. This way, I won’t be tempted to scroll Twitter and Facebook. I have Tweetbot on my Mac but I have a nice app by Marco Arment called Quitter. It quits the apps you specify after so many minutes of idling.

So I’ve got all that in place. Now, I wait.

Back to Java

I realize just how much I have forgotten looking at Treehouse. I am going through the Java Objects course and I remember most of it but there are some confusing parts I’ll need to figure out. I won’t need it this time, but for next semester at least.

Weather App

I am taking a break from doing any real projects. I am just trying to learn and relax before class starts. I started the Weather App at the beginning of the month but I knew it’d be a long haul project. After looking at the Forecast.io API I understood I needed some more knowledge of JavaScript.

Thoughts

This semester shouldn’t be very difficult. I am taking a web design and development class. I am between a beginner and intermediate with my knowledge of JavaScript so I should be alright with this class. I am looking forward to it.

Resolved to Be Better

\"logo_-university-of-pittsburgh-panthers-pitt-paw_shrink\"

 

I am really excited to be going back to school. I wouldn’t have said that a couple months ago but I really mean it.

I am getting emails almost daily now that the school year is about to start and it gives me a warm feeling, like I belong to part of a community. The Pitt staff are some of the nicest people I’ve ever met and are genuinely helpful.

I got my appeals approved and so this semester is just a confidence building semester. When I stepped foot on campus for the first time last fall, I was super excited and confident. I may have been about to break emotionally, but I was feeling good about Computer Science and my chances of success. I wasn’t wrong.

I did extremely well. The mini-quizzes I studied for I did really well in. The ones I didn’t I did fair in; could have done better. The projects started out easy and then got harder but I was still maintaining a B average. For my first CS class no less!

Then, the final project.

It was hard. Not impossible, but hard. Implementing algorithms was completely new to me and I was also working on algorithms for Free Code Camp. They baffled me. Divide and Conquer, what? Object-Oriented Programming what?

I became paralyzed with fear. And I choked. I didn’t finish and even though she was giving out generous curves I failed. I didn’t implement anything correctly. I could have gotten a C with a half-finished project. I got a fat F.

Spring Semester and Too Much Crap

I was starting to buckle under the weight of my failure in CS- I got a C but I was demoralized. My depression and other things were starting to grip me. I went into CS 0401 full of fear. Some of the assignments weren’t hard but I overthought all of them. The pressure crushed me.

I had the podcast, which editing took hours, I had this blog, Programming in Progress, That Mac Nerd, Free Code Camp, Treehouse, and so much other stuff on the side. I buckled under the weight of all of it. I had a pretty bad nervous breakdown. I quit school. Anxiety was too much. I wasn’t leaving my apartment, not even to take out the garbage. It was very, very bleak. I lost my mentor in the process.

New Beginnings

So, this time around I have a plan. Podcast has folded. I don’t have the time to edit it, or the money to have it professionally edited.

No Free Code Camp during the year, or at least until summer and winter break. This blog, That Mac Nerd, and Programming in Progress will be written for but less that usual (though lately the blogging has slowed down as I work on more projects and learn more things). Steel City Maker will have to wait until summer.

Also, as I wrote before on a post about tracking your learning with Trello, I have made a couple public Trello boards for my schooling. They are accessible to anyone, and I want it that way. I want a way to stay accountable. I am putting myself out there for scrutiny and, to some extent, help. I will post my grades, resources I am using, etc in order to track how and how well I am grokking the stuff I am learning.

Here are my Computer Science Mastery (B.Sc)

\"Screenshot2016-07-12_10-45-06_PM_shrink\"

and Mathematics Mastery

\"Screenshot2016-07-12_10-44-50_PM_shrink\"

boards.

Let’s Get It

As all the meatheads I know say. I say it too, especially when I am tired and am headed to the gym. Which is something all of us could stand doing, or walking. I find that a little bit of exercise has the power to lift my mood like nothing else. So, get out there. Learn. Walk. Be the best you can. I am trying my hand at this again and this time I won’t fail.

back-to-pitt

Back to Pitt

I’m going back to Pitt.

So, if you have been following my journey for the last few months you know I quit school during an intense period of depression— a kind of nervous breakdown. I am finally coming out that, and am working quite hard on the things I had set up when I quit. I’ve worked harder at learning, growing, and building since quitting.

I need to get a medical withdrawal from the school— I left the semester under the care of a doctor but I didn’t properly withdraw— I could barely leave my apartment. It was pretty bad. So if I didn’t get the medical withdrawal, I would have failed the semester. I told my advisor I planned on coming back but not right now. I said it to be pleasant. She told me I would need to come back before Fall 2017 or I’d go inactive.

I posted on Facebook about it and said I planned to go inactive. My opinionated friend I know in real life and some that I’ve been “friends” with for many years encouraged me to continue. In fact, my buddy Joe, who really started this journey I am on now by splitting his majors up 1 told me to “get that degree. Goddammit. It opens all kinds of doors, no matter what you major in. Don’t let them tell you no. Don’t give up.”

Reevaluating School

I decided to go back. I am not really looking forward to it, to be perfectly honest. I missed it in some ways and in more ways I am perfectly happy with this structure. But I know they’re right. So I decided instead of CS, I’d do Information Science, which is programming, business, and design. This is the easiest path to a BS for me. And I will have that piece of paper. Soooo… H2P!?

Confidence in Building the Contacts App

I had to admit to a few people that I am really afraid of the blank text editor.

I was so afraid of it, I picked up a book that was on my iPad that I had downloaded a long time ago called Thinking Like a Programmer by V. Anton Spraul. I mentioned it in the last blog post.

Well, after reading the introduction and writing that blog post, I went to bed and before I fell asleep, I was thinking about my Contacts app. When I fell asleep, I dreamt about the app, how to structure it, using prototypes, breaking things down with functions in an OOP way. When I woke up I half-remembered but my mind got jogged by talking to a friend.

I started working on it. I asked questions on Code Newbie Slack. I opened up the MDN docs on Dash. I started to build it.

This gave me the confidence I needed to look at other projects. I found the documentation for the Alfred workflows I want to build. I feel comfortable reading those docs and I think I will be starting it soon.

Travis CI and Shields.io Badges

It took me a while to set up Travis CI and Shields.io badges. I still don’t know how to get the amount of commits I have made since a certain version of my app to show on the badge.

I wanted to use my GitHub page to show my documentation. It took me four hours to figure this out. I stayed up until 3 am trying to get it to work and I finally did it. This is where my badges are. I plan on adding more.

You can find my paltry docs here.

  1. I was going to just get my MFA and that was it until I saw him go for his MFA and law school. I then thought I could get a CS degree and an MFA but quickly abandoned writing as programming got more intense and I fell in love with it. ↩︎