My Fall semester just came to an end this week, and with that came a bunch of questions. I took to one of the professors at Penn State Behrend that I look up to the most in my MIS program and asked him what I need to learn now that I am completed with all of my major classes.
In the spirit of wanting to further myself as a developer and start to create fantastic code and systems, he seemed to know where to lead me. There were three things that we didn’t get to touch on in my MIS program, or even the CMPSC minor at Behrend. Here are the next things that I will be focused on learning other than class work.
Design Patterns
We touched these in my final MIS class (MIS435 for any Penn State fans that may give a hoot), but there is much more to learn in the time being. Here is what I am told: if you want to be the guy or gal that everyone comes to solve problems in code, you must learn design patterns and be able to apply them.
The book that was recommended to me is the classic “Design Patterns: Elements of Reusable Object-Oriented Software” by the “Gang of Four”. If you know C++ this is the book to get and you will just look smarter if it is on your bookshelf. If you want something more modern that can deal with your ADD, check out the Head First book “Head First Design Patterns“.
Threads
If you want your applications to be real applications then this is a must to learn. Threads basically allow separate sections of code to run at the same time so many things can get done at once rather than your standard method after method structure.
I personally haven’t looked for or have found the best resource regarding this, so if I remember and am not to busy learning about threading, I will post the resource about threading here. OK?
Sockets
This is something that I thought I knew little about until I pulled up the quote on the Java Tutorials to reaffirm what I thought they were:
“A socket is one end-point of a two-way communication link between two programs running on the network. Socket classes are used to represent the connection between a client program and a server program.”
Sockets are basically endpoints or ports at a specific URL. If that sounds hazy it is because I don’t know too much about them. Good thing it made its way to the list of things to learn.
So, that is where I am headed. As I learn I will be posting about interesting things that come up, good resources, or even frustration. We will see how this pans out, but as of now I am pretty excited to learn some things that will separate me from others, while giving me valuable knowledge that I will be able to use on the job.


