Categories
Uncategorized

# 5 – Favorite Project

Introduction

One of the things I appreciated about OSU’s post-bacc program is the multitude of portfolio projects that we create for our classes. I’ve appreciated that we were given assignments where we are able to utilize different tech stacks that we’ve learned into projects that we are able to showcase. My favorite project so far is a hiking web-application that I created with my team for CS 361.

What is it?

My group’s project, named Pathfinder, is a web application designed to help hiking enthusiasts find hiking trail recommendations. One of the main features of the application is a fitness calculator that takes in the user’s basic information to calculate their general fitness level. The application then matches the user to a hiking trail based on their preference – for example, a user of “medium fitness” can decide they want a challenge and they can select trails on the more difficult end.

After selecting a hike, a user can then inspect the “Gear Recommendations”, which will retrieve attributes at the hike as well as current weather at its location in order to recommend what clothing/equipment to bring to the trail.

Tech Stack / Implementation

The tech stack was very simple for this website. Our team used HTML/CSS/JS with Semantic UI as a CSS framework. We had initially debated on going with a backend, but in the end we decided that using a 3rd party hiking trail API would be simpler and more effective. Our team of 4 developers used Agile methodology for the end-to-end development of this project. We worked in 2 week sprints, using an Asana Kanban board for task management, in order to implement the various User Stories we had established.

Conclusion

I really enjoyed this project because we were able to come out with a pretty polished product that I could imagine would be actually useful to anyone who hikes. In addition, I really loved getting my feet wet with Agile and working collaboratively with other developers. The website is found here in case you would like to give it a try! I am hoping that the capstone project will also become one of my favorites.

Categories
Uncategorized

# 4 – OSU Reflections

Intro

With this being my last term at OSU, I thought it would be a good idea to take a step back and and look at my experience with the program overall. It was a big decision to go back for a second Bachelor’s, and it will be interesting to see how the program compared to my expectations.

Time Management at OSU

The biggest difference between the post-bacc OSU program and my previous undergraduate degree is that my classes at OSU are fully remote. I would say that this was a double edged sword in many aspects. On the positive side, I was able to be extremely flexible with my schedule. If there was a special event, I was almost always able to plan around it – even during weekday afternoons! As a person who works in bursts, it was convenient to be able work when I was most focused and motivated, while taking it easier on days where I had less energy. However, this also meant that I had to be rigorous with my time management and scheduling. I didn’t always succeed with this, and I often procrastinated and ended up finishing my assignments during weekends.

Community at OSU

My experience with fellow students has been pleasant overall. As students going for a second degree, I found that most of my peers were extremely driven with a passion to pursue computer science. I loved the diversity of my classes; students came from a wide range of ages, locations, professions, etc. At the same time, this also made it hard to connect with others sometimes. A lot of my peers were juggling full-time jobs, family time, and school. As a student fresh out of Bachelor’s 1.0, it was a bit difficult to find people who had the interest (or time) to develop friendships outside of academics. Most of my interactions have been over text communications such as Slack. While the ease of access to these platforms was convenient, at times I found myself missing the traditional campus-life and face-to-face interactions. I did enjoy the network of people I could reach out to on Slack and Reddit, from the comfort of my home.

Coursework at OSU

With any academic program, the courses vary in level of quality. This is to be expected however, and I was able to learn everything I needed to from the course material, or through external resources. I would say that the biggest strength of OSU’s program is that any student will come out with knowledge and tools that are directly valuable to their future profession, along with multiple portfolio projects that will strengthen their resume while interviewing. Speaking from experience, I leaned heavily on my CS 361 and CS 340 projects in the interviews that led to my first full-time developer role.

Final Thoughts

I would definitely recommend this program to anyone who is looking for a structured pathway to a career change. The ability to have a flexible schedule and change course load on the fly would be invaluable to anyone who is looking wants to switch to CS but is unable to commit to full-time school on campus. From where I started, I have grown a tremendous amount. While there were occasional hurdles along the way, I would say that this program has given me the tools to get into the software industry, and hopefully succeed in the long-run!

Categories
Uncategorized

# 3 – Interview Prep

My Experience

They say that every rejection to a job position can be viewed as a “learning experience”. After 200+ rejections, I can definitely say that I’ve learned more than I’ve ever wanted to. After months of applying and grinding interview prep, I eventually landed a full-time Software Engineer position that I will start next year. I hope to share some of the things I’ve learned (as well as some resources I’ve used) to help any job-hunter reach their offer more easily than I did.

Ultimately, landing a job can be boiled to two simple (but often extremely difficult) steps.

1. Landing An Interview

This may seem obvious, but it cannot be understated how important having a solid resume is. Recruiters often only give your resume a 10 second skim through before they decide whether to toss it or move the candidate to the next round. While the content of your resume is key (education, work experience, etc.), people often neglect the importance of formatting and organization. I would look to keep the resume to a one-page length, use consistent formatting, and to avoid unnecessarily flashy graphics that can detract from the content. One advice that I often got was to highlight your individual contributions and use a lot of action verbs to demonstrate your ability to provide value to a company. If you are in a position where you don’t have much work experience, be sure to include some personal projects to show off your technical skills and passion for programming.

2. Passing the Interview

There are usually two major components to the interview – a behavioral portion, and the technical portion. For the behavioral section, I think it is important to remember that the interviewer is judging to see whether you’re a person that they would want to work with. Try to highlight experiences that demonstrate your ability to work in a team, and your eagerness to be continually learning new things.

The technical portion usually involves data structure / algorithm questions. I see a lot of people doing random questions on LeetCode and focusing a lot on doing an arbitrary X number of questions. However, I believe that it is much more effective to focus on making sure that you understand the problems you do, rather than grinding out as many as possible. While there exists more problems than you could ever do, most problems are focused around a core of problem solving patterns or strategies. For example, learning the “two-pointer” and “sliding window” strategies for arrays can be a strong basis to solve a large number of array problems, even if you have not seen a particular problem before.

Instead of choosing random problems to solve, I think it is more effective to study problems grouped by what data structure they use, or which problem-solving pattern they implement. Here are some resources that I have found to be helpful in my own studying:

https://leetcode.com/explore/learn/

https://seanprashad.com/leetcode-patterns/

Keep Going

Applying for jobs is never a fun process, and it is difficult to stay persistent after countless rejections. It really is a numbers game though. While everyone’s “number” might be different, try to remember that it only takes one to get your foot in the door. As long as you put in a steady effort to continually improve, then I know you will get there! Good luck hunting!

Categories
Uncategorized

# 2 – Productivity

The Evil Duo (Distractions and Procrastination)

I think one of the major things I struggle to deal with is staying focused and remaining productive. With so much media at our fingertips (YouTube, Netflix, Messenger apps, etc.), it feels increasingly difficult to stay attentive to school or work. Here are three methods that I’ve found to help me fight procrastination.

1. Get the Hard Stuff Done First

While I’m certainly not a morning person, I think that mentally draining or technically challenging tasks are easier to do shortly after breakfast. I think that this is the best time period to work, where I am not overly fatigued or too hungry. Towards the end of the day, I can use what little gas I have left to go on autopilot and finish some of the more trivial tasks I have remaining.

2. Stay Organized

I think one of the main causes of procrastination is being disorganized. When you have to spend a lot of time thinking about which task you have to do, it becomes another hurdle to actually start working. Often I find that the most difficult part of doing anything is just getting started and building momentum. The more I trim down on “set-up”, the less of a hurdle there is to starting my tasks. I can do this by scheduling timeboxes for when I want to work on specific things, and by making sure that my desk is clean and tidy the night before I work. If you are on the search for effective productivity apps, I highly recommend Notion; it is an extremely functional software that I use to take notes or manage tasks across multiple devices.

Example of a Task List page template from Notion

3. Pomodoro Technique

For the past few months, I have used a time management method called the Pomodoro Technique, which has greatly boosted my productivity. In essence, the method involves breaking work into 25 minute intervals, separated by 5 minute breaks. While it is fine to adjust how many minutes you want in work/break intervals, I think it is important to keep the interval times consistent by using a timer or app. I have found this method to keep me from working for too long at once, which prevents me from burning out during the day. I make sure to use the break time to stay hydrated and stretch. Short breaks will lead to a healthier mind and body, as well as greater productivity in the long run!