Here we are, the end of my (2nd to) last quarter as an OSU Computer Science student. This course has been a fun experience to work on a project from beginning to end without much intervention or feedback. The group had to hold ourselves accountable and we alone really determined how it would turn out.
I’m pretty pleased with how our application turned out overall. Given more time, I think we could’ve implemented a few things better or made things look nicer. Our primary objective was a functional app that met all requirements, which I believe we’re very close to doing if not exceeding once we wrap things up. Group work always has some challenges, but I feel like we overcame most of those.
To summarize, this was a good class and I enjoyed myself while learning quite a bit. My only complaint might be that there was a decent amount of “busy work” just enough to distract us from the project at hand, but hey I get it this is still a course after all. Thanks for a good quarter!
Maybe this is a trick question, but over the past few days I started to realize the insane amount of devices I have. At 26 years old I grew up in a time where most houses had one desktop computer (if that) and were lucky to have internet. Suddenly, after a flurry of technology, we had releases like the iPod. I look around my home now and the difference is staggering!
I have a Mac laptop, my work Dell laptop, a Microsoft Surface Pro (for the rare occasion I need to run Windows), my iPhone, a Kindle eReader (that rarely gets used), and many other devices including older generation iPhones I can’t let go of. If someone Doc Brown’d/Marty McFly’d 20-30 years ago to now they would think all of the outrageous sci-fi films of the time came true. Sometimes I do miss the days where we weren’t surrounded by screens, but at the same time I can’t see myself ever going back.
How many devices do you have? Do you think there’s a healthy limit? Do you find yourself annoyed by how accessible we’ve all become and are expected to be?
Over the past 1-2 years a lot of us have forced to adapt. I’ve been working from home since March, 2020 and likely won’t be going back to an office environment until January, 2022 (if ever). Students around the world were forced to abandon their classrooms and begin a virtual experience. My Oregon State University journey has always been online – so no changes there. The pandemic has proved that these things are possible without a physical location. Beyond the pandemic, why don’t we expand on this?
If you’ve read Ready Player One by Ernest Cline or seen the movie they basically take virtual reality to a whole new level. People all around the world live most of their lives in a virtual world called the Oasis. The book and movie has a bit of dystopian feel to it, but one thing I picked up on immediately is the huge improvement on education. Imagine a child born to a family constantly being evicted and on the move sitting in the same classroom with access to the same resources as Bill Gates’ child or even someone in New Delhi, India. Imagine there was a learning environment accessible to all that was budgeted the same no matter what the property tax base the students were born into. A robust, well-budgeted, interesting, evolving virtual environment could solve so many problems that face children around the world.
There are of course other issues to consider such as parents who work or families who don’t have access to even basic technology or internet connection. As time goes on and innovation drives competition hopefully we continue to make essential technology cheaper and cheaper (note: I’m well aware of the seemingly ever increasing prices of things like smart phones and computer parts). This is all a very idealistic view, but I think it could be a step in the right direction to giving students a chance to make the most of themselves.
This quarter most of us are working with two other students on a group project. With all of the fantastic options out there on hardware, operating systems, IDEs, etc. it’s unlikely the entire group is running the same gear. It’s pretty fascinating how it all comes together and still works well. In our group we have:
1. On Mac using VSCode
2. On Windows using VSCode
3. On Linux using AndroidStudio
Keep in mind that our group is developing a mobile application using Flutter. Our member on Linux using AndroidStudio was the newest to Flutter so he had to do some research to get his environment running. Some of the differences we’ve found is that VSCode will automatically run a flutter pub get to install packages and dependencies when you update pubscpec.yaml; however, it appears that on AndroidStudio you have to run it manually. Another difference was that a version of the Flutter image_picker package that I used on Mac with VSCode was not yet supported by our Linux/AndroidStudio developer. We had to downgrade our image_picker version, but all functionality worked just as well.
As you can see so far we haven’t had any major roadblocks due to different development environments, but there have been a few challenges. It’s amazing that all of these different components can work cohesively almost seamlessly even though none of us have an identical setup. I think the only thing we all share in common is the Android emulator. I’ll let you know if we run into any other interesting issues due to differing development environments!
Outside of the computer science realm, one of my interests/hobbies is sports. In particular I have a bit of an obsession with football (soccer) and hockey. Over the past few years most sports have seen an increase in the way technology is used both during and outside of game situations. This increase hasn’t been without controversy though.
A prime example of new technology being used in a game situation – football now uses “goal-line technology.” The rule has always been the entirety of the ball must cross the entirety of the line for it to be a goal. This had always been at the ref’s discretion and at some point certain leagues even had refs standing by the goal whose sole responsibility was watching to see whether or not a ball crossed the line entirely! There was still human error. Now there are two main forms of goal-line technology being used: cameras following the ball and a ball with a microchip and a series of cables creating a magnetic field. Technology like this might’ve changed the outcomes of extremely significant games in history. Many make the argument that interventions like this make the game lose its “magic.”
Wherever you stand on the topic, it is extremely fascinating to see what this could lead to next. The offside call is one that is often found to be incorrect so now they use Video Assistant Referee (VAR) who sit in a room with multiple monitors watching replays and advise the main referee live. I don’t think we’re far away from different technology such as sensors or chips inside of jerseys to determine whether a player is offside or not. Outside of the game there is now so much data analysis going on that recruitment and signing of players is nothing like what it used to be. For those of you sport fans do you think all of these technological advancements create a more “fair” game or is it causing sports to lose their magic?
For those of you who have not taken Oregon State University’s Mobile Development course (or developed your own mobile application in the past) I highly recommend it. Depending on what year you were born in, I think mobile applications tend to excite the most for developers and consumers alike. The power to do things whenever you want wherever you want that used to require (for example):
1. Booting up your desktop computer
2. Logging in
3. Connecting to the internet
4. Accessing whatever application or website you need
5. “Doing stuff”
In all of the courses at Oregon State University we learn the building blocks and foundation of development, but we rarely get into mobile applications. When the time finally came I wondered how different or difficult it was going to be – to be honest I was a bit nervous. Then, we were introduced to Flutter. If you haven’t used Flutter it’s an extremely intuitive and fun software development kit that makes creating mobile applications a breeze! Coupled with debugging tools and an emulator you can have a simple mobile application template up and running in a matter of moments. It even has a “hot reload” functionality that allows you to save your progress and the app updates without needing to be completely restarted!
I’m very pleased that I get to build on that course by creating another mobile application in this course. I’m excited to test what I’ve learned while having the flexibility to make the application more my own (and my group’s) as opposed to meeting strict requirement set in the Mobile Development assignments. I would strongly recommend anyone go out and try it for yourself!
In my introduction I left you on a bit of a cliffhanger. Well, truth is, I’m sort of left on a cliffhanger myself. What I can tell you is some vague, abstract, idealized, fragment of an idea of what might be next. This could also be completely off-base so future readers I make no guarantees as to the accuracy of these statements.
Product Management. If you’ve started out a software company or have never worked in the software industry this term might not mean a whole lot to you. It definitely mean much to me when I first started in a software company. We have Product Engineering, Software Development, and Product Management – so what’s the difference? I’m not too sure. What I can tell you is that Product Management, to me, marries the business and legal side of the house with the creative value-add of the development work. You set the general tone of the product suite, you figure out how best to position your product in the market, you figure out how to sell and license, you figure out how to protect revenue, and all other sorts of things besides just programming. To summarize, albeit probably inaccurate, it’s a bit of software development with an emphasis on high-level strategy. The big picture, if you will.
Why the interest in Product Management you ask? As someone who currently works in the Contracts & Legal Services Department my entire role is protecting the company’s interests while enabling business development. Product Management would allow me to flex my technical skills while utilizing 5+ years of experience with contracts and licensing. I’d say this could give me a fairly unique skillset in the industry. Stay tuned to find out.
My journey into the Computer Science world started shortly after graduating from the University of California, Riverside (with a degree in Economics). I started working at a software company called Esri in the Contracts & Legal Services Department while figuring out whether I wanted to invest in going to law school or not.
SPOILER: I did not choose to attend law school.
After working for a few years I decided three things:
- I enjoyed working and having money
- I did not want to go back to school full time (and accrue a ton of student debt in the process)
- I want to create more value in my career
I also felt frustrated at my lack of technical understanding of software. Working in software licensing it’s okay to not be an expert in the field of software engineering, but I didn’t appreciate feeling out of my depth in certain conversations especially when talking with our customers. That is the story of how I ultimately decided to pursue this degree in Computer Science. Where do I go from here?