Extra Credit Blog Post #2 – My OSU Journey

My journey through OSU is a bit disjointed so I’ll give some perspective by briefly describing my overall college career. I graduated high school in 2000 and attended Humboldt State University for a year and a half until my family needed my help so I put college on hold. When I finally went back to school in 2004, I was still helping out my family but we had moved to Oregon so I attended Southwestern Oregon Community College and earned my Associates degree in Computer Information Systems with the intention of transferring to OSU after 2 years. My advisor at Southwest screwed up and when I got to OSU, most of my credits didn’t transfer over even though I was assured they would.

I essentially had to start all over again at OSU even though I had already done roughly 3 plus years of college. I majored in Computer Science and lived on campus. I got a job working with a professor to run a study concerning software efficacy in relation to gender and that went pretty well. After roughly three years at OSU in 2009, I ran out of funding and had to leave school. I went back home and got a job in IT where I found my passion for hardware and software based work. The requirements for my current employment were to earn specific IT certifications on a periodic schedule and as I result I have quite a few. After a few years, my employers said they would fund my remaining Bachelors degree education at OSU so I started taking classes again albeit one or two at a time since they were remote and I had a full time job. There was also a cap on how much money would be spent on my education and it came up for review and approval once a year. I’ve finally come to the end of my time at OSU and only have to finish CS463 and one other upper division class of my choosing (as long as I haven’t taken it before). I recently went back to OSU and toured the campus with a few friends from college even though we hadn’t been back there in roughly 14 years. It’s got a few new additions here and there but it definitely feels like the old OSU we attended.

Extra Credit Blog Post #1 – Current Job

I currently work for a health care underwriting company though truth be told I’m not exactly sure what that is. I am the IT Systems Specialist and have had that role for about 5 years now while I was previously an IT Technician for 4 years. My job usually consists of maintaining the network, managing the hardware, and assisting users with multiple issues though this description is very broad.

I used to want to be a programmer but college sort of soured me when it came to programming. When I make programs for myself, it’s fun and I get to experiment but when I have to do it for a living, it takes all of the joy out of it. I sort of stumbled into doing more hardware, network, and software work as opposed to programming and found that I really enjoyed it. I remember a few years ago a co-worker asked me what job I was striving for and I told him that I already had it. It confused him since he was still trying to rise in the organization but I had already found what I wanted to do.

When the previous IT Manager retired, they asked me if I was interested in the position. I told them that I wasn’t since it would be more bureaucracy and inter-office politics which I definitely wasn’t interested in. My position changed mostly in title and I became the IT Systems Specialist. The pandemic had two primary effects on my work which are both negative and positive. The first was that since everyone was working remotely, I had the entire office building to myself save a few people here and there so I got my preferred work environment. The downside was that the company decided to keep most people remote so that swapping out a mouse became a trial in itself to troubleshoot an issue over the phone, ship them the replacement hardware, and to maintain a more robust hardware tracking system. This sort of added complexity has become the norm throughout all aspects of my job.

We’ve started providing IT services to other organizations in the area and I have to say that so far it has been a headache to say the least. It increases the amount of bureaucracy once more since instead of swapping out a mouse, or shipping one, I have to put in multiple requisitions, justify the purchase, and even then they might be denied so the user ends up without a mouse making our company look bad. It’s very stressful and frustrating but I’m hoping that with time and a clearer understanding of the processes involved by the higher-ups, things will smooth out.

Blog Post #3

“Did you initially have doubts about your ability to complete the project? How do you feel now?”

I did have an initial doubt about my ability since I’ve mostly worked on projects of my own design and always worked alone. Working with GitHub and multiple people has been somewhat difficult since I will admit that I am not very proficient in many things. GitHub and version control has always been confusing mostly due to the terminology and how the different branches and versions work together. In the past, when I’ve had to use version control, I would keep the most recent and working version and if I screwed it up too much while making improvements, I would just revert it. Pushes, pulls, commits, branches, merges and the like just seem to confuse me if I don’t keep it very simple.

Another thing that made me worried was that our team decided on using MERN which I had no experience with. React and Javascript were almost completely foreign to me so much of my effort was towards learning it, experimenting, and revising. The progress was slow as a result which made me feel as though I wasn’t making any headway.

How I feel now is that if it were up to me, I wouldn’t do another group project in the same way that I have gone through this one. We lost 50% of our group during the course of the project which affected our efforts since we had to spend time reallocating responsibilities and increase our individual contributions. I would pick a language and structure that was more familiar though I can see their many benefits in hindsight. So in that regard I have learned and expanded my skill set thought the constant stress of being able to deliver a viable product was something I could do without. Overall, the project was sometimes messy, constantly stress inducing, frustrating, and gave me a Pavlovian repulsion to the Teams notification bell, but I have learned valuable tools as a result.

A skill that I’ve always had was the ability to dissect and experiment with code. This was useful in the project since I was responsible for creating the quiz prototype. This worried me greatly since it can be argued to be the meat of the project and one of the key elements of the entire project. This really worried me since, as I mentioned, I started off not knowing anything about the tools or environment we were using and I was expected to create a functional quiz from scratch with reactive responses based on user input and result calculation. I can say that this was not easy but I am proud of the quiz I created and the contributions to the project such as the README documentation. That was something that was really useful for me to do since I had to start from a place of complete ignorance and build instructions that anyone could follow to replicate and run our project for themselves. I also took over the major information page sections so I had to research information relating to all of the College of Engineering majors, compile them, and get a web page to display them based on active user responses.

All of this was very difficult but I can say that my main contributions to the website being the README, the quiz, the major information research, the major display page, and the about project page are things that I can be proud of.

Blog Post #2 – Technologies

The technologies, processes and, frameworks that we are using in our CoE Major Quiz game website are mostly foreign to me. Our group decided on the MERN framework which I was not familiar with in the slightest. It’s a JavaScript frame work that incorporates MongoDB, Express.js, React, and Node.js. I had to learn about how the framework functions as well as JavaScript since I only used it once a few years ago with limited success. One of the largest issues I had was trying to understand the structure of the code in each of the files that we were using since it was unfamiliar. So I had to learn the MERN framework, JavaScript, and the internal structure that comprises React. I’m still learning since most of it is self taught and even trying to figure out what it is I am supposed to be looking up is a challenge. If I had my choice I might reuse these technologies but only if I had a large support team and more experience with their functions and interactions. As it stands it’s frustrating and gets in the way of productivity. I recall just trying to get a button to work. To do something. Anything. So that an action happened and a result was produced. These are not the sorts of issues that one should run into. The focus should be how to structure what you are building and not trying to figure out basic code interactions. Granted the issue is with my unfamiliarity of the code and structure but it’s not particularly intuitive or easy to test.

I know that I am showing my age but something that I always had fun playing with was Visual Basic. I could create programs and assign code to the different GUI sections. It was a good deal of fun. I also enjoyed programming in Java since it was very clean and straightforward. I’ve also done exceedingly well in HTML and XTML with CSS. What I’ve noticed in most of these instances is that the code is very simple for lack of a better word. You declare a function or a variable. You forward a value and return a result. I know that’s the basis of coding but some programming languages just confuse me since I’m unfamiliar with the behavior of certain commands or structures or they are so complex that I am unable to read them and follow the logic. I used to be a programmer but it just stopped being fun when it became more of a headache than an interesting learning experiment.

Blog Post #1 – Clean Code/ Code Smells

I’ve heard the terms clean code and code smells before. The terms can be very self evident as clean code is good coding practices and code smells are potential indicators of bad code or coding practices. This is of course a very simplistic explanation of these terms but they are a good way to understand them without getting into details.

I read a few different articles dealing with clean code. I’ll make note of a particular article which listed in a most simplistic manner good practices when it comes to coding. I won’t go over all of them but the overall purpose of clean code is to create code that is easily understandable, follows standard conventions, eliminates unnecessary complexity, and simplifies where possible. A few ways that this can be achieved is to remove unused code, isolate sections of code so that changes don’t cause a cascade effect leading to errors, neatly add comments where necessary, and keep your style consistent. This link below is an excellent list of things to strive for in practice to keep your code clean.
https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29

Code smells are indicators that there might be something wrong with your code. It doesn’t mean that there is something wrong or that the coding style is bad necessarily. It just means that there is something present that is potentially indicative of problems with the code. If you see some of these things then they deserve a second look and can perhaps be improved. Some code smells are instantly recognizable as needing correction such as an inconsistent naming convention or poor line alignment. Others might be more insidious such as classes that delegate their work to another class and are in fact not needed. This adds unnecessary complexity to the code. The article that I read contains a list of code smells that cover a range from formatting consistency to class interactivity and code complexity. This too is a good list to be mindful of when coding.
https://blog.codinghorror.com/code-smells/

Blog Post #3 – Continuing Progress (End of Term)

Our project is moving right along. The initial website has been built and the documentation has been developed for its use. We’ve communicated a little less over the past couple of weeks due to the holidays but by no means have we lost touch or neglected progress. We have the basic structure in place and now we just have to add additional elements once they’ve been created. We’ll work on creating the quiz and integrating it into the web page along with the other designated sections. So far it’s looking good though I initially had my doubts given my unfamiliarity with the code and project structure. My concerns have been somewhat alleviated given the initial website construction though I’m always a bit uncomfortable until a final working prototype is in place.

I was having a bit of trouble initially with experimenting with the code and structure but I’ve since made some progress. I was able to add elements to the pages in my local copy of the code though it took me far longer than it should have and I must admit I was getting a bit discouraged. Luckily, I was able to replicate sections of the code that were already present and repurpose them for what I was trying to do. I’m still bothered though since while the code works, I’m still not completely familiar with how to integrate more complex elements. The research I’ve done online has also yielded limited results which I attribute to not having the correct terms included in my search efforts. I am confident though that my skills will improve and that I can ask my team mates for assistance since they are more well versed in the code and structure than I am.

The stress of any given project shouldn’t be overwhelming but I think there should be a slight buzz at the back of your head that always gnaws at you to keep you motivated. The best way to deal with the stress is to communicate with your team and to rely on each other in times of need. A problem that I’ve had to overcome in the past is that I always worked alone. When a problem arose, there was no one to help me. It was either figure it out by myself or fail (which isn’t an option). Something that has always plagued me is the idea that there is a solution that exits and why don’t I know it. Now I no longer have to rely on pure research and experimentation when it comes to figuring out a problem. I can collaborate as well.

Blog Post #2 – Initial Progress!

Our project is the CoE Major Exploration Game. It’s a project to create a website with an interactive element to help new students research potential majors in the College of Engineering. We opted for a website with a quiz that will narrow down the potential options for students based on their interests, personality, etc. So far it’s been a little daunting for me personally since I’ve never really worked in a group before when building things like websites. It’s not the cooperation or communication, that’s been going great. It’s the structure since I’m not really familiar with certain procedures or processes when it comes to web design. I’ve created websites in the past but there wasn’t a great deal of structure such as tech stacks.

Overall, my team is great. Good people with a solid background and a drive to accomplish things in this project. We compliment each others shortcomings when it comes to the work. One of our team members however transferred to another project so there’s just the three of us now. No drama or any other such occurrence, just a transfer to work on a project they felt they were better suited for. Our first few documents worked out well since we were able to simultaneously collaborate in Google Docs when writing.

We’ve stood up the GitHub repository and have begun working on the main meat of the project. I’m a bit nervous since I’ve only used GitHub twice before, by myself, and in both instances, I was successful but I found myself wrestling with the branches and commits more than the code itself. I have something of a classical approach to creating software. I make it as modular as possible and test each module separately. If a module doesn’t work then I rewrite it until it does work. It was never a problem because I never worked in a group before. The other thing that gives me pause is the use of the MERN tech stack since the last time I used it was four years ago in a single class and I have virtually no memory of it. I’ve started to try and relearn some things through online tutorials and hopefully that will make me a more effective contributor to the team.

I’ve setup Microsoft Teams across multiple devices that are always running in my life so that way I can stay in contact as much as possible since many of our team members live in different time zones and it can be hard to remain in contact. Overall, I’m hopeful since building a website in and of itself isn’t necessarily difficult. It’s the overall collaboration with processes and tools that I have little to no experience with that make me feel uneasy. Luckily my team and I will help each other.

Hello world!

Hello, my name is Derek Inman. I live in Coos Bay, OR and work for a healthcare company as an IT Systems Specialist. I have a cat named Reno and my hobbies include data archiving and movies. My hobbies usually require a bit of an explanation. For data archiving, I find and store information from the Internet on a wide variety of topics which include videos, images, documents, etc. I like to think of it as being a collector but instead of limiting myself to one topic, I collect everything. I also have the strange skill of being able to easily memorize information related to movies and have collected roughly over 4000 DVDs and Blu-rays.

I got started with computers when I was a small child and have always wanted to work with them. I used to focus on programming but at some point it stopped being as much fun when I wasn’t making things for myself anymore. My primary focus then switched to a different level of abstraction and I focused more on desktops, servers, and software. This is where I once again had more fun since I could still create things with ingenuity but I was no longer tied down to trying to find missing semicolons in a million lines of code.

I have had a strange college career. I started in Humboldt State but had to leave to help my family. I then got an Associates degree in computer science from Southwestern Oregon Community College. I went to OSU for a few years but ran out of funding and now I take classes sponsored by my current employer. Through my employer, as a part of my continuing education, I was able to earn over 20 certifications with it being a part of my responsibilities. I’ve played with a lot of programming languages throughout the years and I have 3 clear favorites though they aren’t favored by most or have been deprecated in some way. I especially like Java, Visual Basic, and HTML/XHTML.