Oregon State University|blogs.oregonstate.edu

Archives: April, 2024


Experience with Technologies April 15th, 2024

Last quarter of the degree! Less than 10 weeks to go from now and I’ll have finally finished my B.S. in CS – I’m really excited for that moment. We’re so close to the end with our capstone. We’ve fixed some major issues lingering from last term and we still have some things to add but we’re definitely approaching the “wrap up” point. Unless major issues come up that take priority, I’m looking at developing the documentation (user guide and research compilation) in our team’s second sprint so my work on actual software features is nearly done. I will be making the documentation in the form of markdown or HTML to make it user friendly and easily navigable so I’ll still be developing in that sense.

For today, I wanted to do a kind of retrospective on the technologies I’ve used over my degree and think about which ones I’ve developed real proficiency in, which were my favorites, and which I’m hoping to work with more in the future.

IDEs/Editors:
Dev-C++
Netbeans
Replit
Jupyter Notebooks
Spyder
PyCharm
Notepad++
Vim
Visual Studio
Visual Studio Code
DrRacket
Android Studio

At this point, my most comfortable IDEs are Notepad++, PyCharm, and Visual Studio. I can easily use Android Studio and Visual Studio Code but I don’t like them as much. I actually hated Visual Studio Code for a long time because I had really only experienced using a different IDE for each language before that and I felt like it was a jack of all trades master of none IDE. Replit was a great solution especially when I was starting out with my community college classes and just getting used to coding. I actually got to really enjoy using Vim and would like to use it more in the future to get more comfortable! Dev-C++, Jupyter Notebooks, and Spyder I could figure out given some time, but they also haven’t made a big impression on me. DrRacket was easy to use and helpful for learning about functional programming. I would certainly use it again in its context. Finally, I used to be so proficient with Netbeans but it’s kind of a nightmare to use and I don’t miss it at all or have any desire to go back to it!

Languages:
Java
C++
Assembly
HTML
CSS
JavaScript
Python
C
Ruby
Racket
Prolog
Raku
SQL
C#
Kotlin

Wow, I’ve really used a lot of languages! My strongest languages are C, C++, Python, HTML, and CSS. I’m pretty good in C#, JavaScript, Java, SQL, Raku, and Ruby but those are languages that I know I’d have to look things up in and reacquaint myself to to use successfully – and Java was originally my strongest language, I used to be great in it and have done GUI applications and an Android app in the past. It’s just been so long since I’ve used it. I loved working with Prolog and Racket and I want to get so much better with both of them – and with functional and logical programming in general. I’m planning to work through a Prolog textbook after graduation to really dive into it because it just appealed to me so much and made so much sense. Assembly and Kotlin are my worst languages for sure and not ones I really have much interest in. I don’t actually like doing app development (I’m not a big fan of doing front-end work) and I really don’t like working as low-level as Assembly. They were both good to be exposed to, but also good to figure out that I’m not interested in pursuing that direction of CS.

3rd Party Software/Services:
Git/Github
Maya
Blender
Unity

I couldn’t think of nearly as many of these. Obviously there are other things I’ve used in the course of the program, like MS and Google suites but I was so familiar with them before I came back to school that it doesn’t make sense to me to list them here. I’m very proficient in them – I’m a Microsoft Word and Excel expert – so those are definitely strong skills. Using Git with and without Github has been such a valuable skill I’ve developed in my coursework. It’s definitely easier for me to version control with the Github Desktop interface but if I really needed to I could do it in a CLI, but would need to double-check commands. I actually felt like I got pretty good at Maya in the NMC class I learned it in, but it’s not something I feel like I could just dive into now without outside assistance and I would need to kind of warm up. Blender is something I feel a little more comfortable with but I’m nowhere near proficient. I really want to get better at both of these and plan to spend free time making 3D models and growing that skillset. Finally, Unity has been interesting to work with. I haven’t totally loved the experience and the documentation has been out of date in so many areas, but I think it’s been valuable to get used to and I could see myself growing a lot with it by doing some small, varied projects on my own.

Looking back like this I can really feel how much I’ve learned since I came back to school in 2020. I’m sure I’m even forgetting some technologies I’ve used as I write this, but it’s kind of an incredible amount. I’ve felt imposter syndrome a lot throughout this degree but it gives me some confidence to see all of the things I’ve worked with and know my strengths and weaknesses and know that I can (and want to) grow even further in some areas.

Read the post...