Course Review

--Originally published at Hell Yeah

I am currently in the last few hours before the end of the Object-Oriented Programming course, taught by Ken Bauer, with whom I happen to share birthday.

This course was made in such a way that I never saw before. The learning was left almost entirely to us, Ken was more of a guide than a teacher, and I think that was a great way to structure it.

In terms of learning, I went in with little to no knowledge of Java. Object-Oriented Programming in general was an area almost completely unknown to me. With the problems that Ken “assigned” and a few on my own, I was able to learn more about how Java works and why OOP is often used instead of Imperative Programming. Not all of it was practice, the videos that we watched offered interesting perspectives on the theorical side of OOP, along with the opinions of people far above us in knowledge of this topic.

I also learned to use a little of Eclipse, a tool that is used a lot in Java programming. It is, as Ken said at the beginning of the course, a Titan of a program. It has a lot of things that I have no idea what they do or why they are there, but the things I learned to use, I found that were extremely complex but not unnecesarily. What it does, it does not do in a half-assed way, but it can be overwhelming at times.

Also, Github. I have had my Github account for ~2 years, not knowing what it was. I saw on /r/learnprogramming again and again that having a Github account is essential in this line of work, but I never really understood why. Now, I still have a lot to learn and understand about it, hell, I can’t use the terminal commands for git without a guide open in another window, but I know why it is important and what it can do. Github is really the best way to store public code and to manage big projects on a team. It also serves as a kinda-portfolio that gives a testimony of what you know and what you’ve done before.

Talking about the structure of the class, it was a bit “Laissez-faire”. Ken just guided us in the direction we should be going and helped us when we had trouble, but this class did not hold our hand. We were expected to learn on our own and to do our own research about the challenges we faced. I really liked this and I would chose it over the traditional way anytime.

o7


Course Review

WSQ10 – Advice

--Originally published at Hell Yeah

Recently we got assigned to read this article, where Joel Spolsky gives advice to Computer Science students. He gives seven great tips for CS students, which are the following:

  1. Learn how to write before graduating.
  2. Learn C before graduating.
  3. Learn microeconomics before graduating.
  4. Don’t blow off non-CS classes just because they’re boring.
  5. Take programming-intensive courses.
  6. Stop worrying about all the jobs going to India.
  7. No matter what you do, get a good summer internship.

Most of these tips (2, 4, 5, 7) are the staple tips of every programming forum ever (/r/learnprogramming comes to mind), but the other three are quite interesting to me, and to be honest I never thought about them.

Number 1 talks about the importance of written and spoken language in this area. One might say “But why should I worry about this?”. There was a movie called The Wolf of Wall Street in 2014, and there’s two scenes that popped back into my head when I read this tip. The first one is when Jordan Belfort sells stocks of a really small company to a guy over the phone as if it was the next East India Trading Company. The second one is the last scene, where Jordan gives a seminar about sales, and asks the people at the seminar to sell a pen. The points these scene try to get across is the same as the tip on Joel’s post. It doesn’t matter how big or small your project is, the difference is when you present it to other people. Speaking and writing excellently is necessary.

The third one talks about microeconomics. I couldn’t explain a lot about what he wrote because I frankly don’t understand about economics. Which is exactly why this advice is important. There is no job you could take in this area where economics will not be handy. And as he says, a programmer that understands business is automatically worth more than one who doesn’t.

The last tip  speaks about not worrying about outsourcing to countries like India. but in this day and age, that is no longer a problem. There is an increasing demand for excellent programmers. If the effort is spent towards this goal, jobs going somewhere else is not a problem, there will always be more.


WSQ10 – Advice

WSQ05- Coldcraft

--Originally published at Hell Yeah

As a final project for this class, we needed to make something object-oriented, not necessarily in Java, but preferably. What Arturo, Miguel and I chose to do was a mod for Minecraft, using Forge.

I had never used Minecraft on PC, but I have +200 hours in Skyrim, a game with a huge modding community, and I have always enjoyed using mods. They can add a whole new experience to the game. So, when I thought of good Skyrim mods to inspire myself for a Minecraft mod, I instantly thought of Frostfall, a great survival mod when you have to seek shelter from the northern province of Tamriel.

What I wanted to do was something similar, that you had to keep yourself warm on Minecraft, to make it more challenging. There is already one mod that does almost exactly what I want my mod to do, plus a few things that I don’t really want. The problem is that this mod has not been updated in a long time and it is a few versions behind from the current release of Minecraft.

We will try to make something similar to Frostfall, maybe a little bit more, if we can. You would have to protect yourself from cold and heat, trying to warm or refresh yourself often, using either fresh or warm clothing, and maybe with the help of a few consumables.

More info to come.


WSQ05- Coldcraft

The start of my Training

--Originally published at Hell Yeah

This is the first official day in my training as a Jedi Master Java Developer. I actually did this almost a week ago, but forgot to blog about it. First thing I learned: Java is nothing like Python. It seems closer to C#, but I have just glanced a little bit at the abyss, I haven’t stared at it enough.

The task at hand was to make a “Hello World” program. And I did it! This is the most basic of programs:

The start of my Training

First we make the class which has the same name as the file, this is the program. Then we make the main function, which will be what is exectuted, in this case a single line of code which gives:

The start of my Training

So, it works. But I started getting greedy. How about making a for loop? You got it boss.

The start of my Training

Add the for, and then initialize it, set the termination expression, and then the increment. Done, done, done, and done. And now we see here the result:

The start of my Training

But I still couldn’t get my fill. I needed more. I needed a while loop.

The start of my Training

This one I actually found less confusing than the for loop, but I think it’s easier to screw up. I almost put the variable initialization inside, which would have given me an error, but in some cases it could make it infinite, like if it was initializated before and this function just resetted it to zero. I don’t really know. It scares me D: But it worked!

The start of my Training

Now, I could have stopped here. Maybe pat myself on the back and go for an ice cream or something. But I just couldn’t stop. I had to try putting an user input on it. I thought it would be simpler than loops, in Python they would be just one extra line and one modification to another.

The start of my Training

There’s a lot going on here that I just barely understand. What I kind of understood, was that the package java.io has the user input classes, so we import that, then create a ‘reader’ buffer for the user input to be processed. Then we use that to read the user input, store it and now we can finally use it. But that’s not all, we need to make an exception handler for whenever something get’s fucky. I used this page to get this part done, and later I will try to understand it a bit better.

The start of my Training

The good part is that it worked.

Java is not complicated per se, it’s just that I’m not used to it. At least it is not enough to turn me to the Dark Side.


The start of my Training