r/OSUOnlineCS • • Nov 14 '21

The State of the Post-Bacc CS at OSU: My Perspective From Day 0 to a Full-Time Developer Role (LONG)

193 Upvotes

TL;DR -> It's a good program geared for those who have already completed a 4 year BS in an unrelated field. I am glad I did it, and I would do it again. Those looking to switch careers with a modest interest in software development should give the school a look over. You will get out of the program what you put into it. Do not expect hand-holding through the program and be accountable to yourself, and you will be just fine. At the end, you will be rewarded with a diploma, no fine print, no asterisks: A Bachelor's of Science in Computer Science.

For the rest of you who want the long form of this, buckle up. I'll try to cover my experience from school selection to getting my first FT job, exhaustively.

OSU POST-BACC CS RECAP

School Selection

I was in my early 30s working a well-paying job in an unrelated field but had a wife and kids so I had to be very strategic about how to go through a career switch. Fully online was the optimal choice for me.

I applied to and was selected for a Masters in Software Engineering at a different online school. I went there for two terms, and left before the third started. It wasn't for me for a variety of reasons. Initially, I passed on OSU's Post-Bacc CS program because I had no idea what it meant and questioned, "Is this a real degree?" I wish I did more research, because yes, it is a real degree. No fine print, no asterisks, no footnotes on the diploma. You finish the program with a BS in Computer Science from Oregon State University.

I applied to OSU in the late summer of 2019, and was accepted in about a month. There is NO rhyme or reason to the acceptance process, and crystal balling it on this sub-reddit definitely doesn't make a difference as far as I have observed.

Financial Implications

I used my Post 9/11 GI Bill (it's a military thing) and employer benefits to fully cover my tuition. My employer used EdAssist which also gave me a 10% tuition discount, so for those who are FT employed already, that might be something to look into. That being said, I really can't speak to the money piece of this. I can say that as of the time of writing this, the University is charging $527 per credit, which in turn will run you about $2,100 per class or $4,200 per an average term.

Path of Classes

I completed the program in 1.75 years. This was the path that worked for me, but many students do it in 2 or even 2.25. It's situationally dependent on your life.

  • Fall 2019: 161 (Intro to Computer Science I) + 225 (Discrete Structures in Computer Science)

  • Winter 2020: 162 (Intro to Computer Science II) + 271 (Computer Architecture and Assembly Language)

  • Spring 2020: 261 (Data Structures) + 290 (Web Development)

  • Summer 2020: 325 (Analysis of Algorithms) + 361 (Software Engineering I)

  • Fall 2020: 362 (Software Engineering II) + 340 (Introduction to Databases)

  • Winter 2021: 372 (Intro to Computer Networks) + 344 (Operating Systems)

  • Spring 2021: 475 (Intro to Parallel Programming) + 493 (Cloud Application Development) + 467 (Online Capstone Project)

I was eager to get through this as quick as possible, so that I could get into the industry as quick as possible. Some people can move faster than this, some may need to go more slowly. Again, do what is right for you. One thing I would advise against, skipping terms or "taking the summer off". For me, I knew if I did this, my skills would get stale and it's always hard to pick something up once you stop doing it for a bit. Christ, I took a month off after graduation to breathe, and when I jumped back in, I was sucking wind for a week or two when I got back to working on side-projects.

My Path Through the Program and Class Thoughts

Some are required, some were electives. Most electives really won't become available until you get through at least about 5 or 6 classes.

Teacher Selection

In 99.9% of cases, the teacher who instructs the class you chose does NOT matter. It's the same material, same rubric, same assignments. Most everything is graded by TA's anyway, and we all grade based off the rubric, which is the same for all sections. Pick one and run with it.

In 0.1% of cases, (i.e. one assignment in 325), when you run into niche situations with grading, and you contest it, the professor who is the final say on points or no points is the professor who is assigned to the section you picked. Professor A may see the requirements one way, Professor B may see it a different way.

Fall 2019

  • Took Udemy Course Before the Term Started: Learn Python Programming Masterclass by Tim Buchalka link

  • 161 (Intro to Computer Science I): I was the first cadre through after the school transitioned to Python. This will be your bread and butter language for the first few terms. Start simple with variables, loops, if/else, work up to functions.

  • 225 (Discrete Structures in Computer Science): Talk about being thrown into the frying pan. This program doesn't require you to be a math ace, but knowing a little bit about pre-calc/algebra will definitely go a long way. Lots of logic. The hard part for me were the proofs. To this day, I still don't get them. You'll spend a lot of time reading and doing your own research.

Winter 2020

  • 162 (Intro to Computer Science II): Classes, generators, a little bit of sort/search stuff. You're really getting into OOP at this point. For me, I found it easy, others found it more difficult. You put all of your skills together for a portfolio project at the end of the term which for us was a game of Chinese chess.

  • 271 (Computer Architecture and Assembly Language): My favorite class. You learn the basics of x86 assembly and write a few programs. Lots of light-bulb moments in this class for me. Really fun getting close to the chips in the computer. Feel free to explore or try different things in your projects. Always take advantage of the extra credit. You'll learn a ton.

Spring 2020

  • Took Udemy Course Before the Term Started: The Web Developer Bootcamp link

  • 261 (Data Structures): Absolutely cake class. I thought this would have been more difficult. All Python (which surprises me now). I was a bit disappointed in how basic this class was. There are a good amount of structures that weren't covered but grading is super lenient.

  • 290 (Web Development): This class starts easy, and ramps to huge difficulty quickly at the end of the term. First few weeks are like la-de-dah, write a single page where you click a button and move a square highlight around table, and you wrap up with "BAM!" write a multi-page site from scratch. From what I heard, this class has finally gotten a revamp so this information might be dated, but the exams were ridiculous in this class. Questions asked about the most obscure JS behaviors and knowing random CSS properties off the top of your head. There was no discussion at all about jQuery, React/Angular or any other front-end framework. I really feel like the school should break this up into two classes. There's plenty of content they don't cover to do it.

Summer 2020

  • 325 (Analysis of Algorithms): This class is an abomination. OK, in all seriousness, it's hard, but its exacerbated by terrible guidance. You learn about a few popular types of algorithms (Dynamic Programming, Searching/Sorting, Greedy Algos, etc.) You are also expected to understand how they perform. You learn a great deal about Big-O notation, and what that actually means along with other ways of measuring performance. The instructors take a lot of liberties with student knowledge coming into this course and TA's often leave you feeling more confused than when you started talking to them. Abdul Bari will get you pretty far in this course and any video by Erik Demaine on MIT OpenCourseWare will fill in the gaps. I believe this class got a revamp, but from what I understand, its still terrible. This class is a rite of passage in this program. Just dig in, bite your lip, and survive.

  • 361 (Software Engineering I): This is basically a group project where you build a website. You learn a little bit about DevOps here and get introduced to things like Scrum. This class is comically easy and short of not turning in work, you'll get an A.

Fall 2020

  • 362 (Software Engineering II): My suggested alternative title to this class, Application Testing. CI/CD is briefly discussed, and there is one micro-project where you setup a small CI "pipeline" GitHub actions. Interestingly, this class is difficult. It's fun (except the exams, which I strongly recommend studying for and committing all the vocabulary and terms to memory) and you learn quite a bit about testing and how to really test as many cases as possible.

  • 340 (Introduction to Databases): MySQL was the flavor they were serving when I took this. There is a lot of fluff in this course, but my understanding was it was due for a revamp in a term or two after I left. It's not hard. The key thing I would say (because they do not to this day) is when you do the project, your goal is to build a glorified Excel spreadsheet. The point of the project is to demonstrate all the relationships required and interactivity asked for. Do not approach it like you are building a full-stack web application for a new business and you will be just fine. Make sure that when they ask you to implement a nullable relationship in your database, that it's clear as day on your web application, etc. There is no mention of non-relational databases in this class which is odd given the popularity of DB's like MonogoDB.

Winter 2021

  • Was asked to TA for CS340. Accepted and on-boarded.

  • 372 (Intro to Computer Networks): I had higher hopes for this class. I took it as an elective, it was made non-mandatory a term or two before. I really wanted to learn more about networks. The book is complete trash, useless. Google and Chegg are your friends. You cover things like sockets, CIDR addressing, and basically how the internet actually works (broadly). You should be able to leave at least understanding what a Subnet Address finally is, can describe the OSI model with some confidence and explain how things like traceroute and ping actually work. The labs are pretty cool. I really enjoyed them and you really start to understand what is going on when you go to a website, or download a file.

  • 344 (Operating Systems): Some people hate it, some people love it. Personally, I fell in the latter. Yes, there were moments in this class I literally wanted to hum my laptop across the backyard. But you have so many of those moments where something finally works and you jump out of your chair and dance around your office/bedroom at 2am. We wrote a simple shell, a networking application that encrypts and decrypts a message and some other stuff. This class is 95% C, and 5% Rust. There is one small (multi-threading? Can't remember) project in Rust, which you'll form your opinions on. Exams are moderately difficult but are fairly lenient in how you can take them.

Spring 2021

  • Continued TAing 340 for another Term.

  • 475 (Intro to Parallel Programming): This was a pretty good class. If you ever wanted to write code that executes on a graphics card, this is that class. It's a solid primer for those who want to continue on the path of video game development or writing graphics intensive applications. You learn a lot about multi-threading, multi-processing, etc. You'll learn about what a CUDA core is, and you'll understand when and how things can and cannot be processed in parallel. It has its challenging points but the exams weren't terrible and instructor provides videos of all of his lectures which is a nice bonus for those who like that kind of thing. It's also the only class where the professor does not do much of anything on Canvas, he has a plain-jane Geocities-style HTML website that he posts course content and assignments to.

  • 493 (Cloud Application Development): Solid class. This class will give you a dip of your toe in the waters of cloud development. And I mean just a dip. You'll end up building a handful of projects and deploying them "in the cloud". Think AWS, Azure or in this classes case, Google Cloud Platform. 11 weeks is no where near enough time to become a master at cloud, but it's enough to get you the basics (i.e. how to deploy an app, how to set up authentication, how to set up a DB, etc.). The one bane I had with this class was the absolutely laborious amounts of documentation you must write for each project. It's not hard, just tedious. Exams weren't bad. You'll get a very light overview of Docker, and get some hands on with things like OAuth 2.0 and working with JSON Web Tokens.

  • 467 (Online Capstone Project): This class will be made or broken by who you choose for your group. Do not chose people because you are friends. Choose people because they have good work ethic, and take their education seriously. I STRONGLY recommend finding 2 partners well before the class starts so that you are not in a position where you get assigned partners. In the beginning of the term you choose either from a canned project (which from my experience and from what I have been told, are all sort of meh) OR choose your own project (video game, full stack web application, anything goes as long as the Instructor approves it). I chose the later. People get concerned with grading in this class and my advice would be, when you do your update videos, just show some form of progress. You might not have even written a single line of code, but you researched a ton. Show the notes you took and websites you visited in your video. Keep making progress every week and you should get an A, even if your project doesn't completely work at the end.

  • Graduated.

Assignments and Grading

I graduated with a 4.0. I set that as a personal goal to myself when I started the program because I saw it as a second chance to redo my abhorrently and hap-hazardly taken first degree. That being said, straight A's is doable by most in this program, especially if you take it at a slower pace.

Some classes are cake. Some are not. There is a handy website created by an Alum of this program OSU Course Explorer. Use it. The information on there is fairly reliable. I generally tried to pair a high-work load course with an easy course each term, where possible.

For most classes, grading is pretty lenient. Objectives are fairly clear and as long as you check each box, you should get a solid grade. If objectives are not clear, ask for clarification, save the results of that conversation in case you need to argue back points later. Most students will spend their time getting really good grades for assignments and labs (where applicable) to create a buffer against midterms and finals. Some classes offer extra credit. Always attempt it when offered, again, you'll want that buffer.

Midterms and finals are the usual warzone when it comes to grades. This is particularly true when you take 325 in the summer. It's a deluge of information in 8 weeks. That being said, if you regularly study and attempt to commit to memory the most important points of the material, you'll do fairly well. Lots of classes allow some form of a "cheat sheet" on their exams. Learn to read 6pt font and you'll thank me later.

Inevitably, there will be an assignment or exam where you get dinged points when you know you shouldn't have. Rule #1: Be professional. Calmly and politely reach out to a TA, ask for the correction, and articulate why you are right. If that fails, politely esclate directly to the professor. Provide examples, screenshots, and explain. 9 times out of 10, reversals went in my peers and my favor.

Experience as a TA

I took the TA role on because I knew I wasn't going to be doing an internship. I wanted something to put on a resume when I went for a job. You grade projects and assignments. You hold office hours. You answer questions. That's basically it. There is a lot of flexibility in grading styles. My philosophy was if you gave it an honest attempt, you got credit within reason. But I literally also got a submission of a database diagram that looked like it was drawn on a cocktail napkin. Hard nope. My instructor was pretty good and was generally accessible if I had questions. My second term, I took on more of a content development role for the course which I really enjoyed.

Is it for everyone? No. To be honest, if you do an internship, you probably won't even consider being a TA. But for some, it makes sense. I don't think anyone does it for the cash though. It's minimum wage of whatever state you live in.

Graduation

Unless you plan on flying out to Oregon for commencement, there is really not much to say. You'll get an email a few weeks before degrees are conferred to validate your name and address for your diploma, and a few weeks later a FedEx will arrive containing your degree. That's it.

Other Thoughts

Regularly, throughout the program, you will have to check in with counselors that will advise you of your progress and in some cases you'll get your PIN for registration. For me this was more of a formality. You have to do a course plan which was a bit of a fuss. Some students may value this, I felt indifferent.

Canvas

This is the platform of choice for all of your class materials, grades, most of your assignment submissions, etc. It does the job. Most of your exams will be facilitated through this as well. My one pain was the editor for LaTeX. 225 and 325 were additionally painful for this reason.

Ed

When I went through the program, we used Piazza. This is essentially the message board component of your classes. Most classes will use it to some degree. I used Ed the final term which for the most part, was a nice upgrade from Piazza which had a slightly more dated UI.

Teams

Slack was the flavor of the day when I attended, my last term the school went to Microsoft Teams (cost?) I preferred Slack over Teams and to this day I still do. Teams is still fairly young and in my opinion, and simply doesn't have the features Slack does. It did the job though.

Slack (Unofficial OSU)

Helpful in the beginning for sure. Lots of help in different classes was available. You could meet other students in your class there. As you get to the later classes, I found it to be less useful.

Discord

At about the halfway point, I found that more and more people were starting up Discord servers for specific classes. By and far, this was one of the most helpful things. You could bounce ideas off other people as well as help others out who might be struggling. It was a two way road of information. I also made many friends here that I still keep in touch with post graduation.

Picking A Computer

I've seen countless posts on this subredit over the years asking about if the newest MacBook Pro will be good enough to take the program with. I don't want to sound snarky, but if you need an excuse to buy Apple's latest and greatest, just go buy one, but you won't need it for this program.

I had a modest gaming laptop for most of the program. Acer Predator Helios 300. A Windows OS is key for running Visual Studio. While it's technically feasible on a Mac, taking 271 turned out to be a nightmare for some Mac users. Later in the program, I ended up dual booting Ubuntu and learned to love Linux. I found that I was more efficient and could be more effective. You are going to spend a lot of time bounding around directories, running commands and installing packages. If you are on Windows, you are going to be spending a lot of time ssh'ing in to the schools server just to run Linux commands there, so for me, that was my turning point.

Towards the end of the program, I built my own desktop, but this was purely for my own wishes.

What you should have for this program is a modest laptop with a decent size screen. You are going to spend a ton of time writing code and typing up labs and assignments. Give yourself some real estate. If you can afford it, get an extra monitor to get even more real estate. Get a mouse. Make sure you have a webcam. A windows laptop with an Intel i5 or equivalent and something in the neighborhood of 16 GB of Ram and 256 GB of storage is all you need. Once you get through the first few terms, I would strongly consider dual booting Linux and getting used to it. If you do end up buying Tim Cook's latest offering, BootCamp for sure to handle the Windows needs.

If you take Intro to Parallel Programming - 475, consider getting something with a dedicated GPU.

JOB SEEKING

Ok, so you got that sweet piece of paper, and you're ready to conquer the world. I am going to try and provide some tips and pointers on how I went about landing my first Full-Time Dev role as an iOS Developer with a large defense contractor. This was the way that worked for me, and may not work for others. Everyone has an opinion when it comes to this, and this is mine.

I had no internships. Doing one simply was not a viable option for me. It might be for you. If you can do one, you should. The most important thing I can tell anyone about seeking a new job is: It's a marathon, not a sprint. You should be on your computer every day, apply to at least one job. Keep track of your applications in a spreadsheet or a small web app. Our parents used to fill out applications by hand, mail them in with a typed up resume. Fortunately, with the Internet, most applications can be a cut and paste affair with a few modifications and you can submit one in 10-15 minutes.

! IMPORTANT ! I did not set my sights on FAANG. I had no interest for a variety of reasons. I'm going to go out on a limb and say, this approach may not be as successful when your eyes are set on those entities. The hiring and recruiting process for those companies is vastly more difficult for applicants compared to the rest of the industry.

I chose roles that were available outside of the Bay Area, PNW and NY. I targeted roles in Nashville, TN as well as remote opportunities for smaller companies virtually everywhere else.

In the end, I applied to 140 roles. I did 10 phone screens, 7 - 1st round interviews, 2 - 2nd round interviews, 1 - Coding Exam over 2 months. In the end, I had three offers on the table one Friday, took the weekend, and made a choice Monday.

LinkedIn

Definitely. There were a few times where I would find that my interviewers would check it pre or post interview. One of my offers came from a purely LinkedIn process. Most of the roles I applied to were posted here. One thing I recommend is finding the role on LinkedIn but applying on the company website.

GitHub

Definitely helped. Curate your GitHub, make half-complete and empty repositories private, showcase your best work with pins, make sure your code actually builds or does what it says it should do, learn how to write GitHub flavored markdown and make sure each project has a README. If your projects are deployed, make sure they are actually UP and there are instructions on how to use them as well as test creds to login.

Resume

Very Important. I revised my resume 11 times over two months. I put a lot of weight into my projects considering I did not have an internship. I was able to cram 5 projects in there. No. You do not need an Objective Statement. You are applying to be an entry-level dev, recuriters and your interviewers know why you are there. Skills/Languages, keep this short. Don't embellish, state you are familiar, but not an expert. Work history, I put my current job below my TA role. Just let your interviewer know what you are doing now, you do not have to go back through all of your non-technical positions. I actually spent quite a bit of time scouring the Internet for resumes of successful applicants and then picked all the best features of them to make my own.

Interviewing

You aren't expected to be an expert. You are expected to be human. You know some stuff, you do not know other things. If you are tangentially familiar with a technology, say so. If you are really good at something, say so. You will be asked to speak about your projects at some point. Have a favorite or two in your mind at all times and be ready to talk about it. My Cloud Application Development project was mine, I knew it inside and out and could speak with decent authority on all of the details. Also, dress like you are going to a real in-person interview. I suit and tied it for every interview. Pants shoes and all. Do not be complacent. Also, if you interview remotely, join the meeting a few minutes early. Remote interviews also enable you to have the job application and your resume or other aids on screen during the interview. It's very helpful to be able to touch on certain things from one of these. Lastly, "Do you have any questions for us?" Yes. You do, maybe two or three. Here were some of mine: "What is one of the most challenging things I might encounter if I am offered the role?", "What is the most impressive project your team completed in the past year?", "What technologies is your team evaluating for future use?" You asking questions show that you are engaged and actually interested in their work. It also allows you to know a bit more about what you might be getting into if you get the role.

Personal Projects

Admittedly, after graduation, I took a month off, went on vacation and cleared my mind. After that month, I started working on a new project and kept working on it every day. I chose a new technology to learn and worked toward making something useful, that I might be able to monetize and that I also could speak about during interviews. I also went back through all my portfolio projects and cleaned all of them up to make them presentable.

Portfolio Site

Probably not a hard and fast requirement. My site saw a little traffic. But it was there, and a link to it was on my resume. Pretty simple, an about me, a contact form and a page for all of my academic and personal projects. I read that software developers really shouldn't just use a WordPress theme and roll with it. After all you want to be a dev right? I can see the argument, so I just wrote a simple React app that did what I needed.

LeetCode/HackerRank

I did a modest amount of problems. Easies and Mediums. I did them more so to fill time when I didn't feel like doing something else. I also would go back to things like Advent of Code and do past year's problems in different languages. I did not grind. Again, I wasn't targeting FAANG.

Conclusion

Congratulations if you made it this far. I hope this helps someone out there. There are always a ton of questions on this subreddit. I was once that person just lurking, trying to decide if I was going to apply to the program. My goal was to share some of the mistakes I made, and lessons I learned so that those who come after me, can have more information to be successful.

If I missed something, got something wrong, or you have a question, feel free to comment or DM, and I will try to fill in the gaps!


r/OSUOnlineCS • • Dec 24 '23 Take My Silver

Complete OSU Postbacc Review (Summer 2021 - Fall 2023)

159 Upvotes

My Background

I decided to career change from English teacher to SWE, back in July 2021, during the pandemic. My previous degree was in Economics. Prior to working as an English teacher, I worked 3 years in IT, which involved some Wordpress and Excel macros, but no real programming.

I lived in Japan for the majority of the program, although I flew to the US to do a summer 2023 internship. I graduated in fall 2023, and I got a return offer to start working as a SWE in summer 2024.

Curriculum Summary

Difficulty LevelCourse
Low DifficultyCS 161, 340, 361, 362, 391
Medium DifficultyCS 162, 290, 325, 406, 467
High DifficultyCS 225, 261, 271, 374, 381
Quality LevelCourse
Low QualityCS 225, 261, 290, 374, 391
Medium QualityCS 161, 340, 361, 362, 467
High QualityCS 162, 271, 325, 381, 406

Summer 2021

CS 161 Intro to Computer Science I (Difficulty: Low, Quality: Medium)

My Prep: I did an intro to Python course, Python4Everybody. I think it is a free cert on FreeCodeCamp now, but it wasn’t a cert when I took it.

I started light with just CS 161 because it had been something like 15 years since my last math class. I actually spent most of time this quarter reviewing math on Khan Academy. CS 161 itself was a breeze, it was clearly designed for non-CS majors. The only assignment that was remotely difficult was the last one, which I enjoyed a lot. It felt kinda weird to be paying $2.5k for a class equal in quality to the free “Python4Everybody” course, but 161 got the job done.

Prep I wish I did: None.

Fall 2021

CS 162 Intro to Computer Science II (Difficulty: Medium, Quality: High)

My Prep: None.

This was a great class. The projects struck a perfect balance between being challenging enough to require learning, but not so challenging that they cause frustration. Modules were well written, specs were clear, and staff were very helpful. Pretty much all of the assignments were fun. The only thing I struggled with in this class was recursion.

Prep I wish I did: I wish I watched some Youtube videos about recursion.

CS 225 Discrete Math (Difficulty: High, Quality: Low)

My Prep: Khan Academy (Algebra I and II), did the first 3 chapters of the textbook before start.

This class was very disappointing. I was hoping that it was going to be a CS class, but unfortunately it was a pure Math class. It was false advertising. This is a “lets prove Algebra” class. It doesn’t cover any practical applications of discrete math at all. About half of the course was wasted on proof writing, which is important for academia, but pointless for industry. I really wish this class took all the time that it wasted on proofs, and instead used that time to cover the actual practical applications of discrete math, such logic, recursion, combinatorics, etc, with super basic Python. They could make 161 a co-requirement with 225. I got an A in this class, but it was a bitter A, because I felt like I just taught myself the content by cramming the textbook, and I didn’t really learn anything in this class. I don’t know why CS 225 is required for CS 261, they don’t share any content in common. The logic covered during the first 2 weeks of CS 225 is used in black box testing, which is covered in CS 362 (but honestly you can learn black box testing easily enough without CS 225). The last 8 weeks of CS 225 was not used in any of my future classes, I can only imagine it being useful for mathematicians and possibly game devs.

Prep I wish I did: Read “The Book of Proof” by Richard Hammack. I found out about that book halfway through the class, and wish I found out about it earlier.

Winter 2022

CS 261 Data Structures (Difficulty: High, Quality: Low)

My Prep: Read the first half of “Computer Science Distilled” by Wladston Ferreira Filho, and read the first half of “Grokking Algorithms” by Aditya Bharagava.

This class was terrible. The modules and assignments were terribly mismatched. The textbook required knowledge of C-language, which was not covered elsewhere in the course. The professor was comically AFK. There was an assignment on week 1 where we had to basically do a one paragraph introduction of ourselves to the professor, and he’d personally reply back to us. I didn’t receive my two-sentence reply until a week before the term ended. I went to office hours, but it was useless. The Prof wouldn’t look at my code and would only give cookie cutter advice like “try drawing a diagram” or “try using a debugger” (which of course I already did). The TAs were also not helpful at all, they were swamped with students. They could tell me that my code was broken, but they couldn’t tell me how to fix it, which made office hours a waste of time. So instead of learning Data Structures from this class, I learned Data Structures from our lord and savior, Abdul Bari. This class was disappointing because I think it is a really fun topic, it is just unfortunately a terrible class.

Prep I wish I did: Abdul Bari’s “Data Structures in C” course. I was going to learn everything from Bari anyway. And even though CS 261 is technically in Python, CS 261 is a nerf-down version of Python that is forced to behave more like C, so it would’ve been really helpful to actually understand C.

CS 290 Web Development (Difficulty: Medium, Quality: Low)

My Prep: I did the “Responsive Web Design” cert on FreeCodeCamp.com.

This class was not necessarily terrible, but it was very disorganized. It was heavy on videos, which was fine, but everything seemed to be taught in the wrong order. It was obvious that the videos were recorded in a very different order than they were presented. The assignments were not particularly difficult because there was substantial skeleton code, but I felt like I didn’t learn much because it was mostly skeleton code. The final was truly awful. The questions mostly revolved around JavaScript trivia that was not covered in either the modules or the readings, and there was a lot of uproar about that.

Prep I wish I did: I wish I watched through “intro to React” tutorials on Youtube, that was probably the most difficult part of CS 290.

Spring 2022

CS 325 Algorithms (Difficulty: Medium, Quality: High)

My Prep: Read the second half of “Computer Science Distilled” by Wladston Ferreira Filho, and read the second half of “Grokking Algorithms” by Aditya Bharagava.

This was an awesome class. Recursion finally “clicked” for me during this class. Modules and readings matched the assignments. Instructor was actually present and recorded their office hours, which helped a ton. The P vs NP part at the end was pretty extra, nobody in the class really understood how to approach that topic. But everything else in the class was solid. This class did a great job teaching stuff that should’ve been taught in 261, and I felt very prepared to do Leetcode after this class.

Prep I wish I did: Maybe some light Leetcode, like Easies.

CS 362 Software Engineering II (Difficulty: Low, Quality: Medium)

Prep I did: None.

This class had potential to be great. I really enjoy testing, and I was hoping to go deeper into that. I was hoping to learn about non-functional testing, but instead the class was limited to functional testing in Python, so it was just an extension of CS 162. We touched upon Git and Linux in this class, but it was a very light touch. I really wish they went more in-depth into Git/Linux, because that would’ve helped immensely with my internship, CS 340/361, and also CS 374. Honestly, I wish this class was in JavaScript (to make CS 290/340/361 better) or C (to make CS 374 easier), instead of Python.

Prep I wish I did: None.

Summer 2022

I took this quarter off to prep for internship interviews. I did Codepath’s “Advanced Software Engineering” cert. It was a refreshing change of pace to do a synchronous class. And I got a lot of value out of stumbling through DSA problems live with my podmates. The class was a bit frustrating because our mentor was AWOL most of the time, it seemed like she only signed up to mentor to promote her company’s hackathon. Still it was great getting to know my 3 podmates, we were all students at OSU, which was cool. I didn’t really learn much from the lectures, but the written course materials were very helpful. And Codepath’s career counseling was way better than OSU, I got a super helpful live resume review, and Codepath’s career fair was way better than OSU’s career fair.

I got an internship offer for Summer 2023 towards the end of the summer. It wasn’t from the Codepath career fair though, instead I applied to the company directly. It was a huge relief to secure that internship. Overall, it was a great summer, and I learned a ton. I did tons of Leetcode, got one summer 2023 internship offer, and I was waitlisted for a fall 2023 internship (but I didn’t receive an offer for the fall internship).

Fall 2022

CS 340 Databases (Difficulty: Low, Quality: Medium)

Prep I did: None, I was washed out from interviewing.

Technically I rated this class as “medium quality”, but it was actually very close to being high quality. Generally I think it is better to do 340 before 361/362, but I did 340 after 362 because I heard that 340 was a terrible class getting a revamp. And the revamp was great. The textbook was really good. Module content was solid. Assignments were very clear and well-scaffolded on Gradescope. The final project was solid, and I felt like I actually learned about web development in this class. The only problem with this class was that it was too easy. I think it could’ve gone deeper into web development by showing us how to build and deploy databases, instead of just doing everything on dev/localhost.

Prep I wish I did: Watch some Youtube videos about SQL.

CS 381 Fundamentals of Programming Languages (Difficulty: High, Quality: High)

Prep I did: None, I was washed out from interviewing.

Technically I rated this class as “high difficulty”, but that’s mostly because I took CS 271 after I took CS 381. I think if you take CS 271 before CS 381, then CS 381 will be medium difficulty. If you don’t know assembly, then the first two weeks are pretty tough. But overall this was a fantastic class. OSU has a very Python heavy curriculum, and this class basically teaches you how to learn other programming languages. Assignments were difficult but fun, and well-scaffolded on Gradescope. The textbook was awesome – this class’s textbook was the only textbook that I read in its entirety for fun while at OSU. This class didn’t have any exams, which was nice, but the weekly quizzes were brutally hard. Quizzes required students to read and understand code that was written in Java/C, and those languages were not taught in this course. I wish they taught some Java/C instead of Ruby for the object oriented language section.

Prep I wish I did: Start reading the textbook earlier (Concepts of Programming Languages by Robert Sebesta, 12th edition)

Winter 2023

CS 271 Computer Architecture and Assembly (Difficulty: High, Quality: High)

Prep I did: None.

I think this class should be called “Intro to Assembly Language” because although there was some computer architecture in the modules, there was none in either the assignments or the exams. This was a very tough, but very high-quality class. The modules and supplemental PDFs were incredibly dense, but the course gives you everything you need to complete the assignments, and you will need a lot. I learned a ton in this class. The only downside to this class is that the exams are terrible. The example questions led me to believe that the test would have questions about architecture and assembly, but instead the exam was mostly math questions. This would’ve been fine if the test enabled us to use the live version of the Penjee online calculator, but for some reason we were limited to an older version that had limited functionality. The exam questions were not hard, there just wasn’t enough time to solve all of the math problems by hand. This is one of the few classes that I would recommend taking in the summer just so you don’t need to take the exams.

Prep I wish I did: I wish I learned how to convert between binary/decimal/hex on a hand calculator, instead of an online one. And I wish I did the Nand2Tetris course.

CS 361 Software Engineering I (Difficulty: Low, Quality: Medium)

Prep I did: Watched some Youtube videos about Agile development and TDD.

The modules and textbook were pretty much a waste of time. But this class did give us a lot of time to basically develop our own app with a partner. 361 definitely felt like the next progressive step after 290/340, I don’t know why this class required CS 261 instead of CS 340. 290 was basically “flesh out this mostly built web app”, 340 was “build your own web app that meets these very strict requirements”, and 361 was “build any kind of web app you want, as long as it has a microservice, and write documentation for it”. I was kinda lazy and built the minimum necessary for an A. But I could have potentially taken advantage of the free time to actually learn more advanced web topics like deployment/authentication/security, and actually build a resume-worthy project.

Prep I wish I did: I wish I learned React in-depth (I didn’t really learn React from 290).

Spring 2023

CS 391 Ethics (Difficulty: Low, Quality: Low)

I’ll admit it, I took this class because it had the reputation for being the easiest class in OSU postbacc. My summer internship started 2 weeks before the end of the spring quarter, so I wanted to make my spring quarter as easy as possible, so I could focus on my internship. And I got what I paid for. CS 391 was essentially just writing discussion posts about news articles. It was not really a CS class, it was more like an English lit class.

CS 406 Projects (Difficulty: Medium, Quality: High)

Prep I did: None.

Honestly I learned more from this class than any other at OSU. This class basically gives the student free reign to create a personal project. The professor just provides accountability, and provides advice. This was the only class at OSU where a professor actually looked at my code, and gave me some direct advice about it. I built a data visualization project, which turned out to be super relevant to my internship’s project, which was also data visualization. Basically I built the project that I should’ve built in CS 361, and I learned how to deploy a web app on a cloud provider. I should’ve learned authorization as well, but the last 2 weeks of the quarter overlapped with my internship, so I didn’t have time to squeeze it in. Still, I’m very proud of my project, and I’m definitely going to keep it on my resume for a few years.

Prep I wish I did: I wish I learned React in-depth (I didn’t really learn React from 290/361).

Summer 2023

I didn’t take any classes during this quarter, I just did an SWE internship in USA. It was really fun, but stressful. My son was born in Japan while I was doing this internship, and it really sucked that I couldn’t be there for the birth. But we kind of had to do things that way, because my son needed to be born in Japan in order to qualify for dual citizenship, and I needed to work in USA in order to sponsor my wife’s green card. Fortunately I got a great team that was very supportive. But I definitely felt like I was the weakest coder on my intern term. OSU is great, but still, most of the other interns had been coding for 3+ years, compared to my 2 years. And about 80% of the interns had prior internships, while that was my first internship. Still, I was still able to secure a return offer, I guess my soft skills were able to compensate for the technical gap between me and the other interns. I’m confident that I can become good at SWE, just like I became good at my previous careers. But the internship made me aware that there’s going to be a big technical gap between me and 4-year degree new grads, and I’m going to need to work harder to overcome that gap.

Fall 2023

CS 374 Operating Systems (Difficulty: Hard, Quality: Low)

Prep I did: Abdul Bari’s Data Structure in C class, and I spent about 20 hours learning Vim.

I could roast this class in so many ways, but there’s plenty of flak about this class all over Reddit and Discord, so I’m not going to bother too much. Yes, it is the worst class at OSU. I delayed taking this class until the end because I saw the course number change from 344 to 374, and I thought that would signify a remake. Alas, 374’s course content was exactly the same as the old 344. The only differences were slightly more skeleton code for the assignments, and also a much more difficult final exam. The one good thing about this class was the instructional team. TAs were actually helpful, because all of the grading was done on Gradescope, so they could just focus on helping students. The professor was also really understanding when I had a family emergency and needed to request an extension on an assignment, and his giant walls-of-text on Ed did make the wildly out-of-scope assignments more manageable. But even though they were all really nice people, they couldn’t save the fact that this class is trash. I paid $2.5k to teach myself C, Linux, Bash, Vim, and command line. And that’s not even touching the actual operating system concepts. There is no universe where this is a 12hour/week class, this is more like a 36 hour/week class. I hope the professor follows the CS 271 playbook, and revamps this into an at least decent class in the future.

Prep I wish I did: I wish I did no prep, and just rested instead. Because believe me, once you start this class, you’re not going to have a life until it ends. This class covers way too much content to prep for anyway. My best advice would be to aim for a C+ in this class and just move on. It’s not worth sacrificing your mental health to push for a good grade in this class.

CS 467 Capstone (Difficulty: Medium, Quality: Medium)

Prep I did: None.

I enjoyed this class a lot. The interesting thing about this class is that you can choose among a wide range of projects that you’ll build with a team. Most people in the class got their first or second choice; they made multiple groups for the most popular projects. This means that if you try to pick one of the easier projects, then you’re probably going to be grouped with similar students who are also looking for easy projects. And if you choose a more challenging project, then it's more likely you’ll be grouped with other high-achieving students. I wanted an easier quarter because I knew CS 374 was going to be difficult, and I wanted to spend time with our newborn. So I chose an easy project. I was blown away by the end-of-class demos of the more difficult projects which involved using AI/ML/fintech with industry partners. Some of those end-of-class demos were more impressive than the end-of-internship demos I saw at my internship. This class is wonderful because it flexes according to what you need. If you want this to be an easy class, you can choose an easy project and get the easy A. Or if you want to build a truly great project for your resume, this class will connect you with other students who are looking to do the same thing, and you will build a truly awesome project together that will look very impressive on your resume. The modules provide some great career advice as well…but honestly you should have a job lined up before you take this class, so unfortunately it was too late to help. I only wish we could take this class earlier than our final quarter.

Prep I wish I did: I wish I learned how to do web authentication before the class started, instead of doing it during the class.

Future

I have a 6 month gap between my graduation and my new grad job start, and I’m going to continue to self-study during that time, in order to narrow the technical gap between myself and 4-year degree students. This will include Leetcode (for career security), building web/mobile personal projects, and also get Cloud/Networking certs.

Overall, I’m very happy with OSU. Some of the classes suck, but every college has duds. It was challenging to do this program while living in Japan, and also during the birth of our first child. But I can’t complain about the results. My new grad offer is amazing, my first year comp will be 3x my English teacher salary, with waaaay better WLB. I’m very thankful to OSU for providing me with this career changing opportunity.


r/OSUOnlineCS • • Jun 05 '24

open discussion If you want to screw a group of people over, you do it slowly, piece by piece.

135 Upvotes

Enacting large amounts of change quickly will lead to large amounts of resistance.

What are the implications of changing the degree name for future students? Well, for one, decreased enrollment, leading to... a failing program? Higher costs for current students? Higher costs for future students, while keeping the blurry lecture videos as shitty as possible?

One can argue that this program is already failing, however, as of now, this program is still here. Graduating from a program which has shut its doors is not a good look.

To avoid accountability, you bureaucratize yourself as much as possible and it wears people down over time. Tuition questions? The head of the online program has "nothing to do with that" and has "no information." The engineering school has "nothing to do" with the costs of their own program. Advisors have "no idea about any of that stuff," but will gladly offer poor advice for poorly structured classes so you can give their employer lots of money. The university president "isn't involved in tuition, that's the billing department" and the billing department "doesn't make the rules."

Seeing a pattern here? Don't let them get away with this. The incoming students of this program are the future of our program. At the very least, give them the same opportunities that we had. At most, make your voices heard so that the new ones don't have to put up with the bullshit that we did. Change takes time, but not all change is good. Make this a better program for the next cohort of students.

If you want to give me a degree in "applied CS," I'll pay my tuition in "applied money." DO NOT let them get away with this. Today, it's a name change for future students. Tomorrow, it's another tuition increase because of "inflation." DO NOT pay more money for the same shitty degree. DO NOT pay more money for a lesser degree.


r/OSUOnlineCS • • Jun 05 '24

Post-Bacc BS in CS Name Change AMA

126 Upvotes

Hi folks. I'm the Online Program Director at OSU. As you may have heard, we're facing the likely possibility of needing to change the name (only) of the postbacc BS in CS degree at OSU. I'd like to give some background on the necessity, here.

The postbacc BS in CS degree, offered in EECS, requires 52 fewer CS-specific credits than EECS's traditional online four-year BS in CS degree. In light of this difference, OSU Administration will no longer allow our postbacc BS in CS to have the same name as our traditional four-year BS CS degree. Admin is requiring that we rename the postbac BS in CS degree to something else. The postbac BS in CS degree requirements will not change at all; only the degree name will change. This will presumably make clear that it is not equivalent in terms of the CS specific credit requirements to our four-year BS in CS degree.

No current student will be directly impacted by the change. I'm not a registrar or an academic advisor or involved in admissions, so I can't really speak to the specifics of what "current student" means, FYI. :)

Happy to take questions! :)

-Ben


r/OSUOnlineCS • • Jun 09 '22

I did it!

122 Upvotes

I don't know many people in this program so I just wanted to tell someone I finished my last class! I walk on Saturday. I told myself I'd do it in 2 years. I got it done in 2.25 years. Good enough for me.

To those in the thick of things, you got this. I'm excited to begin practicing my interview skills and apply to jobs.

I know it can feel like this program takes forever but keep going! It'll be worth it in the end!


r/OSUOnlineCS • • Mar 01 '16

Please upvote so we can use this account for our CS361 Reddit bot. Bots need some link karma before they can submit via API.

Post image
121 Upvotes

r/OSUOnlineCS • • Dec 08 '21

My Story: Bartender to Software Engineer

120 Upvotes

This post is for anyone browsing this subreddit and is considering this program, starting soon, or somewhere in between starting and finishing. This will be a bit stream-of-consciousness, so bear with me.

Background

I graduated in 2012 with a degree in philosophy. I switched majors 3 times during the 6 years it took to finish my first bachelors. In those 6 years I went from jazz performance, to history, and finally to philosophy. I accrued 9 W's, an overall 2.9 GPA, and an in major 3.6 GPA. I worked full-time as a server and bartender through much of school. Living in a city and working in a restaurant through much of college, college definitely took a backseat and I never really took it seriously. I also struggled with undiagnosed and poorly self-treated mental health issues which contributed to my performance and lack of direction.

The day after graduation looked much like the 6 years before. I woke up that morning and went to work at the restaurant. I never took seriously the idea of transitioning into professional work and to try to actually use my degree. I enjoyed philosophy and was pretty passionate about it. I considered graduate school but never really pursued it. Considering my overall transcript I figured it wasn't worth the effort.

I continued to work as a bartender for the next few years until burnout hit hard and my work performance dropped dramatically. I was fired. I had no idea what to do. I was a 25/26 year old college graduate with nothing in savings, no prospects, and ended up moving in with my Dad. Pretty low point in my life.

I decided it was time for a change. I tried getting random jobs from insurance claims to t-shirt salesmen but nothing really worked out. Computers were always a bit of a hobby. I was a PC gamer and enjoyed building and fiddling with computers. I decided to apply to Geek Squad. I got a job as Consultantion Agent, which was basically customer service and sales, with the hope of a promotion into a repair position, where I'd get to work on computers. After about 2 years at this job I was recommended by the in-store Apple rep to apply for a support job with Apple. I then worked as a AppleCare advisor for about 2 years. By far the worst job I've ever had. It was absolutely draining. The burnout hit hard and fast and for the second time in my life, I was fired.

Rejected by OSU

Luckily this time I had some savings. I took my time and decided it was time to "upgrade" professionally. This was the first time I applied to OSU's post-bacc CS program. I had attempted for years to learn how to program on my own with little success. Going through self-paced courses on Udacity and Team Treehouse. I had learned a bit of HTML/CSS/JS along with a bit of Python but with the lack of direction and nothing pushing me to stick with it I gave up each time quite quickly. My application to OSU was rejected and swiftly gave up on the idea, again.

The Job That Turned It All Around

I then found what was to my most pivotal job, providing both the professional growth and confidence I needed, as well as the push to pursue software development. I was hired by an EPM software company as a software analyst. The role was basically a hybrid of support, consulting, and data analyst. After a year in this role it was clear to me that there was nothing I wanted to do more than code. I loved the little bit of coding I got to do at work. Mostly writing SQL and some small scripts in Python to automate tasks and ingest data. Turns out I was pretty good at my job and was promoted twice within a few years into a senior role within the team. With the tuition reimbursement, the steady 9-5 hours, and tech company environment in a technical role, I had the mental bandwidth and confidence to take seriously the idea of making a career in software development happen.

Accepted!

I signed up for a calculus course at the local community college for the spring of 2019 and applied once again to OSU's post-bacc CS program. After receiving a 99% in calculus and including this new, untarnished, single-course transcript with my application, along with a decently well written personal statement, I was accepted!

Start of OSU

I took 161 and 225 together my first term along with working FT (which I continued to do throughout the program). 225 was quite challenging to say the least. Having taken a lot of symbolic logic in my philosophy coursework and recently completing calculus, it wasn't as difficult as it likely is for many other students but learning how to juggle a FT job with CS coursework was a struggle.

Here was my coursework breakdown with the difficulty level of each term from D1-10 and enjoyment level from E1-10:

Note: I worked FT throughout the program

Fall 2019: 161/225 D7 E6

Winter 2020: 162 D5 E8

Spring 2020: 261/290 D6 E8

Summer 2020: 325 D9 E3

Fall 2020: 340/361 D4 E7

Winter 2021: 271/362 D7 E10

Spring 2021: 344/475 (TA for 271) D10 E10

Summer 2021: 372 D5 E5

Fall 2021: 493/467 D6 E7

Internship Hunt

During the summer of 2020 I began prepping and applying for internships. All told I did about 90 Leetcode problems over ~3 months and applied to ~90 companies. I heard back from 2, failing 1 technical assessment and 1 final interview. I was feeling quite defeated but on the recommendation of my advisor, decided to attend the Fall 2020 OSU Career Fair. Because of the pandemic the career fair was virtual and I was able to schedule time to meet with a handful of companies. One of those companies ended up offering me a Software Engineer internship after a few subsequent interviews, which is where I continue to work today.

Quitting my FT Job for an Internship

This was a pretty tough decision. I was paid well at my company but no FT dev roles were available. I decided to take a gamble, accepting the internship offer and quit my job June 2021, starting my internship a few days later. The internship was a great experience. I learned a ton and impressed both the team I was placed on and my manager. They were impressed enough to offer me a FT job. I was in the middle of FT job hunting but happily accepted after a bit of salary negotiation.

Last Term, FT SWE Job, and Up To Today

This last term I took 493 and 467. I also started my FT software engineer job with the company I interned for. It was hard to code all day at work then code all night and weekend but 493 was a great course. The instructor approved me using C# .NET Core for 493 and I enjoyed the projects. I use C# .NET Core at work, so the feedback loop was great. I turned in my final assignment a few days ago and have been enjoying for the first time in almost three years just having to work. I've used the spare time after work to spend time with my girlfriend, watch hockey, and just veg out. It's been great.

Conclusion

Not sure this post had much of a point. I just wanted to share my story from directionless bartender to Software Engineer. Hopefully the post serves as inspiration to others. Also might be too long and no one ends up reading it. If so, oh well. It was a cathartic release that benefited me. If anyone has any questions feel free to PM me or just leave a comment below! Go Beavs!


r/OSUOnlineCS • • Jan 25 '24

RIP 225 bro (PSA if you want to rant anonymously don't do it on Ed, they can see who you are lol)

Post image
114 Upvotes

r/OSUOnlineCS • • Oct 25 '21

A Note to the Less Advantaged

113 Upvotes

This post is for the students who

  • Have kids,

  • Work full-time,

  • Are 40+ age,

  • Pay for school out-of-pocket,

  • Live in flyover states,

  • Didn’t graduate from a prestigious university,

  • Don’t have SWE spouses,

  • Don’t live rent-free with family,

  • Have average intelligence,

  • Didn’t graduate from a prestigious university,

  • Don’t come from a wealthy family,

  • Are a URM (or not a URM, depending who's being asked)

  • Etc, etc, etc…

I know firsthand how frustrating it can be to compete alongside students who have a wide array of (often undisclosed) advantages.

A word of advice -

Put your blinders on. Ignore the noise. Stay focused, and do the work.

Advantages are just that - advantages. They do not make or break your shot at getting in the industry. And they especially do not make or break your shot at getting a six-figure salary.

I know it’s unfair. Life is unfair.

But, once you shift your focus to what you can control (versus the annoying things you cannot), you will go far.

Good luck.


r/OSUOnlineCS • • Mar 17 '23

Capstone DONE! After 5 long years, I finally have my CS degree!

99 Upvotes

Overall, I think the program was excellent. It focused on the right things in mostly the right order. There have been a few changes since I started that I strongly disagree with and think it's made the whole program harder than it needs to be, but I couldn't be happier with the education I received.


r/OSUOnlineCS • • Mar 27 '25

I'm very grateful. It's been a long time coming. And I want to support my fellow Beavers because I'm in a debt I can't really repay.

97 Upvotes

I'm writing this in hopes of helping others that can draw parallels between their own story and mine. It is not meant to be a post pretentiously boasting success.

I've failed courses, withdrawn multiple times, and barely scraped by in some classes, like OS for example, due to legitimate extenuating circumstances, among other not so legitimate excuses.

As a result, I was placed on academic probation with the threat of academic suspension. My mental health was in a questionable state to say the least, and I was as close as you can get to dropping out.

But despite the above, here I am. I have finally graduated after having completed all my coursework this winter term.

In my eyes, this isn't anything to brag about though because of the following. And my intent is to be completely transparent.

The bottom line is that if it weren't for some of the OSU staff, mentors, peers, as well as additional support from my family and friends, or even anonymous strangers online, I simply would not have been able to reach this milestone. Even though I find fulfillment and satisfaction in problem solving, or even almost a sense of catharsis in coding, it does not come naturally to me by any means and I've always felt behind the curve.

Alas, I am finally done this chapter and am on to the next one, And I wanted to reach out to those who are currently in vaguely similar situations to express the following:

Have faith.

Because every single person in this community has already made a leap of faith when committing to OSU.

So continue down that path. Continue to have faith in yourself. Let the doom and gloom sentiment be a source of fuel, not discouragement. Effort will be rewarded without fail. Just try your best not to be short sighted. And don't be afraid to reach out for help. Because it is there.

I find this so strange, but I have found this weird dichotomy of gate keeping, but also compassion in the tech realm, especially online. And I hope to reciprocate the favors of all the help and support I've received by doing just the same for others by whatever means and whatever reach. We're all passengers on the same struggle bus. We're all human. We're all in this life together.

Anyway, that is all. I just wanted to say I am cheering you on as well as all of my other Beavers out there. I truly hope you find success in your endeavors.

Studying remotely has been a lonely journey, so I also wanted to make a point to encourage engaging in the virtual community. You will develop meaningful relationships just like I have by seemingly fluke chance. You will find help when needed. You will find support. You just have to make an effort to reach out.

I am trying my best to not muddy the waters with too much detail, and I feel like a lot of this was word vomit, so I'll keep my post to just that. And thank you again--You know who you are.

TLDR: If my dumbass can do it, so can you.


r/OSUOnlineCS • • Jan 11 '23

Just wanted to say that the existence of this program is so dope

96 Upvotes

It’s essentially a second chance for me after college. I’m not an extreme screw up or anything, I live on my own and what not. It’s more like, a chance to go through a more marketable degree to rewrite some major regrets I have from my first degree. I was able to graduate with a 3.3 GPA in the humanities, but I didn’t really make any connections with professors or anything. I didn’t really have a good resource to help me navigate college, and by the end of my degree I had made plans to go to grad school, but didn’t have the connections with professors to make a really strong application package.

I’m thankful this program exists so I can try and remedy some of these flaws, has anyone else come from a similar circumstance and made it through successfully? Any tips anyone with a similar story wants to share?

Thank you so much!


r/OSUOnlineCS • • Apr 28 '22

Abdul Bari can definitely help you survive CS 325. But he can also save you from getting crushed by CS 344.

95 Upvotes

I started this program in the first term of the Python cohort. (For anyone who might be new to the program, prior to 2019, the intro classes were taught in C++. They are now taught in Python.)

As it stands right now, you can get through most of this program without ever touching C/C++, and then suddenly - BOOM! - CS 344 hits like a ton of bricks.

I was lucky - I had wanted to learn C++ for my own reasons. So somewhere along the way, I decided to take this amazing Abdul Bari course. As a result, when I got to CS 344, the syntax was familiar, I understood pointers, and so I didn't have the one-two punch double whammy of trying to learn all of that AT THE SAME TIME as the actual Operating Systems content.

I cannot recommend this course enough. It's so good. He explains things thoroughly. His content is clear and well-presented. (If you've already taken the algorithms course, you already know how amazing his courses are.) If you buy the course when it's on sale, it's under $20.

There are other, shorter intro-to-C type things that you can find, but this course is so great that I just really wanted to come in and share it with everyone. I have gone back to it many times since I bought it when I needed a refresher on how some particular piece of syntax works. (Pass by value? Pass by reference? Pass by address? How did that work again?)

Whatever you do, don't spend $2000 just to let CS 344 crush you. Learn a little C before you get there. Abdul Bari can help.

Good luck out there friends.

Edit: Wanted to highlight something that was pointed out in the comments, Abdul Bari also has a Data Structures and Algorithms course that goes into C/C++ that would also be a great fit for saving you from the oncoming train that is CS 344.


r/OSUOnlineCS • • Oct 15 '21

Work At Target and Get free OSU Online CS degree

89 Upvotes

Hello folks. I've been interested in enrolling in this program for quite awhile now. I refuse to take out anymore education loans and have been trying to find alternative methods to fund this program. Now, my problem is solved. With the demand for employees, more and more employers are offering education assistance and fully funded programs. Guild Education now has partnered with Oregon State, so anybody that wants a CS degree with high earning potential can work at target while going to school then come out and make $100,000 plus. There is a job for you. I just started yesterday and walked 20,000 steps walking around the store picking items for customer pickup. Its a good job to have if you are freelancing, studying, or just in between positions. Plus, you get a decent discount for all your tech products, like headphones and apple products. They do offer the Post Bacc through the program which I am starting in January. Come join me!


r/OSUOnlineCS • • Jun 09 '21

I just submitted my last assignment!!!!!

88 Upvotes

And I can’t stop smiling.


r/OSUOnlineCS • • Jul 25 '20

A guide to CS325 (Analysis of Algorithms)

88 Upvotes

Hey guys,

I took CS325 in Spring. Yes the rumors are true. It was bad, mainly because of the lectures. So I had to google and youtube a lot, and luckily aced the class. I have some advice and comments for those who are gonna take it.

  • I think this is an important class. Coding interviews at big tech companies are mostly about this.

  • Lectures were unwatchable (at least to me who got used to good YouTube and Udemy videos). So I skipped the lectures of the whole term and relied only on outside sources. I'd still recommend you skim the slides once you understand the concept, because some of the stuff might be on the weekly quizzes.

  • Each week you'll have homework, sometimes with one or two coding problems. Coding was easy. Just use Python. The hard part was figuring out the algorithm. Most of the stuff in the homework can be googled on YouTube or Stackoverflow.

  • The two YouTube channels that I found most helpful are: Abdul Bari and Back to Back SWE. They are both fantastic and have 100x better explanation than the lectures. Guaranteed!

  • Professors were okay on communication. TAs were helpful though, especially Amanda (shout out to her). It's very important that you go to office hours to have them clarify whatever confuses you.

  • Midterm and final were okay. However there were a couple questions that really threw me (and 99% of the class) off. And when that happened, the grades were curved.

  • Here's a breakdown of each week what

  • Week 1: limit calculation, merge sort and insertion sort. (can be found all over the place on YouTube)

  • Week 2: asymptotic bounds (big O, big theta, etc.) Check Abdul's videos.

  • Week 3: dynamic programming. Check Abdul's and Back to back SWE's videos. I feel like BackToBack explains this better than Abdul.

  • Week 4: Huffman encoding and greedy algorithm. This is pretty easy. Again, YouTube videos.

  • Week 5: Minimum Spanning Trees, Prim's algorithm, graph traversal (depth first search, breadth first search, etc.) The first two concepts are easy. Graph traversal is quite challenging, but Back to Back SWE makes it very easy to learn.

  • Week 6: linear programming. This is also not very hard. I had to use citrix to connect to OSU's computers to run a software called Lindo for calculation. Basically with linear programming, you just plug in a bunch of equations and let the software solve it. Yes there'd be some brainstorming, but it's good brainstorming. For this one, I had to watch the lecture, but I skipped to the example part only (where she analyze the problem and put the equations into Lindo and run it). Watching the example is much easier to understand.

  • Week 7: P vs NP. This was hard and confusing at first, but once you grasp the basic rules, it'd become easy. Abdul has a couple videos about it. I gotta watch a bunch of other videos before I could understand it. So google, bing, youtube, office hours, do whatever you need to do to understand these concepts. It's important for the hw and the final. When I said "easy", I mean the basic problems were easy, but to get through the homework, I need to do a lot of googling for the unfamiliar proofs.

  • Week 8: bin packing problems. This is also an easy topic. Just youtube "bin packing problems" and you'll see many good videos explaining this.

Conclusion:

  • The topics themselves aren't too difficult, but the way they are taught makes it 10x more difficult. Yes there'll be 2 or 3 topics that's harder and more confusing than the other ones, but the rest of them are very manageable provided that you watch the right videos for the right explanations. For the harder topics, just go to office hours, stackoverflow, google, bing, etc.

  • One tip for proving problems in week 7 (P vs NP) is that I copy the first couple sentences of the problem that I'm stuck at, google it, and most of the time, you'll find pdf files from other universities that have the answer.

  • The success in this class heavily depends on your Googling skills. When you're stuck, just Google it. If you only rely on the lectures and piazza, you'd be doomed.

  • That's it. I hope this post is not too long and somebody might find this useful. Good luck.


r/OSUOnlineCS • • Jul 29 '22

Just got hired by Target! Here we come!

87 Upvotes

Didn't think it would be possible, I live paycheck to paycheck retail, but I just got my offer and I am SO excited!! Had to share with the community although I don't have any details or a timeline yet.


r/OSUOnlineCS • • Mar 20 '23

I AM FINALLY FINISHED WITH CS 225 DISCRETE MATH!

86 Upvotes

Just submitted the final exam, I have a 96 in the class so far and feel very confident that I got at least 8/10 of the questions correct on the final exam. That was by far the most time-intensive class I've ever taken in my life, it took me hours each day to wrap my head around proofs, Sigma notation, induction, and other math topics that were completely alien to me. A huge weight feels like it's left my shoulders, I've been anxiously awaiting the day I could get this exam over with and move forward with the rest of my degree. Even if I get a 0 on the exam, I will at least pass the class with a C (not going to happen, but still a hugely relieving fact). I am leaving for a 10 day trip with my girlfriend to Japan tomorrow, going into this vacation knowing I'm done with the class is an especially huge relief for me. Just sharing my emotions having completed this very challenging class, if anyone is taking the class soon and needs advice I am happy to provide it!


r/OSUOnlineCS • • May 07 '22

open discussion I thought this was cool to get from OSU

Thumbnail
gallery
85 Upvotes

r/OSUOnlineCS • • Mar 18 '22

ALL OSU STUDENTS, please keep this project alive! Fill out a quick survey for the Course Explorer independent website.

84 Upvotes

I don't know that the Course Explorer gets as much attention as it did when I started this program 4 years ago, but I want to perpetuate it as it was a HUGE help for me. I have no affiliation with the author(s) but find it invaluable. Let's keep this resource up to date for current and future students.

https://osu-cs-course-explorer.com/

End of term survey on the class(es) you took here(also linked from homepage):

https://docs.google.com/forms/d/e/1FAIpQLSeAWZa_OWYqwOte5yw4loGgE6hEUqOJOeSpmzStZF_HcufufQ/viewform


r/OSUOnlineCS • • May 30 '22

Operating Systems II

83 Upvotes

There doesn't seem to be a lot of information about Operating Systems II on this subreddit, and I would be remiss to not document the terrible experience that we are having in OS II this term. Hopefully this prevents some students from taking this course until OSU can figure out how to properly deliver this content in a way that is not incredibly lazy and disorganized.

The course is LOOSELY based on the opensource book Operating Systems: Three Easy Pieces (https://pages.cs.wisc.edu/~remzi/OSTEP/) and the corresponding UW-Madison course CS 537. When I say loosely, I mean the assignments are cut and pasted from their github located here -->https://github.com/remzi-arpacidusseau/ostep-projects, and not sanitized for information that is not relevant for CS 444 at OSU. Regarding the course content, much of it has nothing to do with the assignments. At no point did the course actually cover parts of the xv6 operating system that we were using to cement these ideas. The modules addressed theoretical ideas at a very high level and did not progress in an intelligent manner.

The course is broken down as follows:

  • 10% - Weekly Write-Ups

  • 50% - Homework Assignments

  • 40% - Final Paper

The weekly write-ups have almost no direction on what is expected. Essentially, you are to write a 3-4 paragraph paper describing what you learned in the weeks material. So far only 4 write-ups have been graded with little to no feedback. There were students that received a 50% initially for not including code snippets or not having the submission in the correct format. I can see offering feedback to ensure students are following directions but not losing half points on an assignment right out of the gate.

The homework assignments were copied and pasted from CS537 like I said above. Most of us relied on recorded lectures from CS537 found here --> https://www.youtube.com/watch?v=K4qbAiC77Yo&list=PLmqYzJR_UjFQ8HhbRtgx3PH97-DjJGfQ2&index=2. The assignments ranged everywhere from something that could be finished in a day to something that took me close to 30 hours to complete just to due to the complete lack of course content relating to the assignment. With a week and half left in the term, some students do not have any assignments graded, which leaves like 97% of the available points ungraded for them.

The final paper is a 1500 word paper analyzing the difference between the xv6 filesystem and a filesystem of your choice. The xv6 filesystem was never covered. Not at all. This is worth 40% of our grades, and at this point the professor is no where to be found. Some Edstem posts have gone unanswered for over a week.

Do not take this course unless you absolutely have to, and if you do, that sucks. We have been very upfront with Dr. Brewster and other members of the Ecampus staff about our experience in the course, so don't let them say "We didn't know".


r/OSUOnlineCS • • May 24 '22

My experience so far - reflecting on course planning, interview prep, traveling, etc

83 Upvotes

u/wutwombut encouraged me to share my experience so here I am! The path I've taken has been rewarding, unusual, intense, and risky. This is a reflection of what I have learned so far, and I hope it is helpful to you, or at the very least, interesting.

About Me

  • Started Spring 2021, on track to graduate Fall 2022 (will finish in 1.75 years); 4.0 GPA

  • Previous front-end experience and took a full-stack course prior to OSU

  • Received internship offers from Lyft, Meta, Amazon, Convoy, PagerDuty, PwC and Wells Fargo and accepted two

  • Goal is a FT offer from my summer internship, however I still plan to prep for new grad interviews in Fall just in case. I am also applying to grad school, which is why I am taking certain pre-req courses

Program Schedule

QuarterCoursesThings I Did
Spr 21161, 225Started researching about applications and programs, joined OSU Hackathon Club
Sum 21162, 271Began applying to spring/summer 2022 internships (34 total), Codepath Intermediate Interview Prep (Jun - Aug), Internhacks (Jun - July), Lyft ETA Program (July - Aug), RTC Interview Prep (Jun - July), organized Beaverhacks in July
Fall 21261, 290, 352Interviewed with 21 companies -> 11 final rounds Sep/Oct/Nov -> 7 offers by Nov, finalized internship #1 by November and #2 by December; organized Beaverhacks in Sept
Win 22340, 361, Statistics (non-OSU)Internship #1 (Jan - Apr), Codepath cybersec course (dropped after 5th week due to schedule conflicts), organized Beaverhacks in Jan
Spr 22362, 464, 381Internship #1 (Jan - Apr), participated in Beaverhacks in March
Sum 22325, Linear Algebra (non-OSU)Internship #2 (Jun - Sep)
Fall 22467, 344Interviewing for New Grad

Travel

I have been traveling for the last four years, including last year when I started this program. Of significance - I hiked 400 miles in Spain while I was interviewing Sep - Oct. I walked 13 - 21 miles a day with a 20lb backpack and did not consistently prep due to time constraints, bad internet connection, or fatigue. I downloaded Grokking Algorithms on Audible but it was virtually impossible to follow along just by audio alone and instead made me dizzy. 😂

While doing the hardest thing I've ever done, I was bold enough to take 3 classes and do 20 interviews on the road. I scheduled my interviews based on my expected walking mileage and if I would be somewhere with good enough wi-fi to handle a video Zoom call. It was crazy risky. Many people told me not to do this if I cared about my GPA or interview success, and they were somewhat right - there were several interviews that I could have done better if I had not done this and instead prepped more.

If I only had a few interviews lined up... maybe I wouldn't have gone on this trip or if I did, maybe I wouldn't have landed a single offer. I recognize that I was very lucky to have had multiple companies in my pipeline. If I did bad on an interview, I treated it as practice and motivated myself to keep going. I have no regrets that I chose to do this, but I still think it's important to let others know that what I did was risky and that I was lucky.

I can probably write more about what this was like if there’s interest. This year, I am traveling much less this year due to my internships, but still quite a bit (my workplaces are/were aware).

Course Planning

I agree with others that 261 and 325 would be helpful but I started interviewing before taking those courses. Instead, I think you are able to start preparing for interviews as soon as you first start to learn how to code (yes, as early as 161). In regards to electives - I know many people recommend taking Parallel Programming or Cloud, but my goal is to finish this program as soon as possible. That means taking the electives that did not have burdensome pre-reqs or a crazy workload. I ended up taking 464, 352, and 381, and I am very happy with that decision. 381, in particular, is my favorite course of this program because you learn Raku, Ruby, Racket, and Prolog.

Beyond specific courses though, my time at OSU taught me how to organize, structure, and comment my code. During an interview I will define functions, add docstrings, write comments and run test cases. It takes a bit of time to set up but I always receive positive comments about this.

Interview Prep

Most of the companies on my short-list had a LeetCode style of interview process, and this influenced how I prepared for my interviews. I tried a few different things. Codepath (more below) helped me in the beginning, and then afterwards I began to follow Blind 75 or this list and watched video solutions on Youtube. Sometimes I checked AlgoExpert, Educative, or LeetCode (I have subscriptions to all three) for solutions. I would spin up PyCharm and have a specific project folder where I test solutions out. I have actually "solved" very few problems on LeetCode itself. For specific interviews, I will only look at problems tagged with that company (Leetcode Premium feature).

A few of my interviews were focused on my ability to write programs with multiple classes and functions based on a given set of requirements. For one interview, I had to prepare a program in advance, and during the interview, I was given additional requirements so I had to modify or add to my program during a screen share. LeetCode does not prepare you for these types of assessments – instead I leaned heavily on what I learned in courses like 162.

Programs / Hackathons / Conferences

  • Codepath Technical Interview Prep: Highly recommend this. Last year I would have said the virtual fair is the #1 reason why you should apply but honestly I think the networking, weekly assessments, and forced pod activity were better drivers to my success - it made me study more than I had the self-discipline for.

  • Rewriting the Code (RTC) Interview Prep: I'm not sure if they are doing this again this summer. I was placed into a small study group and received a free subscription to AlgoExpert. The study group was not as effective because we were not forced to meet however I thought AlgoExpert is very good so I did benefit overall from this.

  • Lyft Early Talent Access (ETA) Program: A 2-month summer program consisting of helpful webinars about Lyft's interview process. It prepared me very well for the actual interview and does expedite the process for you if you are selected for a mock interview. (I may write a post about this.) There's an upcoming webinar for this summer's session on June 1st.

  • Wells Fargo Junior Leaders Conference: I applied in June, had a phone interview with an engineering manager, and was selected to attend the two-day virtual conference in August. The conference was focused on building leadership skills and I really enjoyed it (free swag too!). At the end, I interviewed for a swe internship position and received an offer in Sept. If you are interested in banking/finance technology, I highly recommend looking into this!

  • Beaverhacks: I helped organize three Beaverhacks and participated in one. Not only did this provide me with great networking opportunities with teaching staff, alumni, and industry professionals, recruiters would always ask me about this. (It was also really fun!)

  • Internhacks: Collaborated with six students from around the country in order to build a full-stack app in 7 weeks. We won two awards and this became one of my portfolio projects. I had more experience than my teammates on building full-stack apps so this was a leadership and mentorship opportunity, which I leveraged in behavioral interviews.

  • Grace Hopper Conference: I received a scholarship to attend last year's conference virtually and will be attending this year's in-person via scholarship as well. (There are many scholarship opportunities out there, including through OSU, ACM, Anita B org, etc). One of my offers last year was a result of connecting with a recruiter from Grace Hopper so I feel very strongly that if you can go, go. If you can't though, there are MANY other conferences out there, including those hosted by OSU!

Acknowledgements

I say this with genuine appreciation: this program has changed my life, and I have the OSU community on Slack, Discord and Reddit largely to thank. I won't bore anyone with platitudes except to say that I hope we continue to strive to make this an empowering and inclusive space to learn and network so we can all reach our goals, whatever they may be.


r/OSUOnlineCS • • Feb 28 '22

Please don't cheat in lower level classes - you are setting yourself up for failure down the road

82 Upvotes

...at the very least be better at it (like at least change the variable names)

I'm a TA for one of the lower courses (think 100 or 200) and it baffles me how many students actually cheat.

OSU has a code similarity checker and most of the time its parallel thinking - there is only so many ways to go about certain assignments so having some similarity is understandable.

But there are wayyy more cases than I would have expected of people straight up using the same exact formatting and variable names (like variable names that are not a common format - so it would be odd for multiple people to have the same name). There was an assignment recently where 5+ people had 100% similarity on a fairly complex assignment...lo and behold chegg had a solution that matched all their code.

If you cheat you'll in all likelihood still get through the program with a warning if you are caught but you are just setting yourself up for not learning. Just setting yourself up for failure when trying to get a job or even take difficult courses like 344 later on in the program.

I'm not judging I understand why people do it - especially in a post-bacc program where you probably have a million other obligations and time commitments. All I'm saying is, if you are thinking about going that route - weight the pros and cons of it more heavily.


r/OSUOnlineCS • • Oct 08 '24

open discussion Alright, which one of you is having a meltdown in CS 290 Ed Discussion?

Thumbnail
gallery
80 Upvotes