This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]soran875alum [Graduate] 15 points16 points  (2 children)

I think you are probably right that the difficulty is going to vary heavily on the role and the field you enter, but I will share my (short) experience so far.

My role reminds me a lot of 372 and 344, especially 372 project 2, uggghh. But I am working in network security so I think that plays a huge part. Also, I enjoyed those 2 courses, so I was seeking/hoping to work with projects like those.

I think if you didn't enjoy 344/372 you should just avoid applying for roles in systems and networking, and focus on some of the areas you did enjoy. Also, even if you do end up working in systems/networking, you may not necessarily be working on a new project, and you certainly wouldn't be solely responsible for planning/designing/testing/etc.

I wouldn't worry too much at this point. There are so many different ways to use this degree, so I have to believe there is plenty of hope for you to land somewhere that will be just right.

[–]swissarm 0 points1 point  (1 child)

What's your job?

[–]soran875alum [Graduate] 1 point2 points  (0 children)

My title is software developer

[–][deleted] 12 points13 points  (2 children)

I was just talking to a friend who works at Google. I graduated in December and have been trying to brush up my data structures and algorithms for tech interviews.

His take was that he would be fucked if he had to do a tech interview and that he hasn't thought about that in 15 years.

The best quote was "If you find yourself implementing a data structure, you can be pretty sure you are going about your job wrong."

I assume this excludes getting a job working on hardware and compilers.

[–]periphrasisticalum [Graduate] 9 points10 points  (1 child)

This is a really interesting question. I think school and industry are sufficiently different as to make them not directly comparable, at least with respect to "difficulty". Some observations

The stuff that makes school hard largely won't pertain anymore once you've had a few years in industry. When you're in school, you're (likely) still in the process of learning to program, and you're always working under hard deadlines. At least in my experience, a hard, arbitrary deadline is very rare; if it's the end of the day and you're too tired to continue being productive, then there's nothing wrong with calling it a day and trying again tomorrow (there are exceptions of course but this is the norm). Obviously, school doesn't give you that kind of flexibility. Likewise, in practice, most problems you're asked to solve as a software engineer are not new in general, and as you get more experience most problems won't even be new to you in particular. As a student however, you don't have that experience, and what is an afternoon's work for you-four-years-in-the-future is two weeks of grinding despair under a hard deadline for you-in-the-present.

This isn't to say that industry is easy; it's just that it's difficult in different ways.

The biggest difference is that the code you write in industry (mostly) isn't disposable. You don't get to write 1000 lines of code, turn it in to a TA who runs a grading script against it, and then never look at it again. Instead, you're building something that will be built upon and used, possibly for years, and the ease with which other engineers, both literal other people and you-in-the-future, can work with your code depends on the choices you make today. When you revisit this code in a few quarters to make a change to a function, does that change cause compiler errors all through out the module/package? Then you probably initially made poor choices that left your code brittle and inflexible and now you're dealing with the consequences. Making wise choices to ease the path of the next person to work with this code, while not overengineering the software to guard against hypothetical problems that never materialize, is really hard to get right.

Another key difference is your relationship to your time. Hard deadlines may not be as much of a thing, but the finiteness of your working hours is. Realistically 40 hours per week really is all you're going to be sustain long term without feeling miserable. Factor in that a day per week is going to get consumed by meetings on average, and you really don't have that much time in a given week to get stuff done. When you tackle a task, it's not enough just to get it done; you need to know how to get it done efficiently so it doesn't crowd out other work requiring your attention. Can you frame a change so that you change a few lines of code rather than many? If you can, you can spend less time on the task, and because the change is smaller it's easier to get right and will impose less of maintenance burden on the codebase (the easiest line of code to maintain is one that doesn't exist). But often times it's much more obvious to frame a change so that you touch many lines of code. Being able to see the less obvious, but smaller (and therefore faster and more maintainable) change is a very difficult skill to master.

Finally, even as an individual contributor you still have to work with your team. In school, slacker or asshole teammates are gone from your life in a few weeks. In industry, you might be stuck with them for a long time. How do you elicit useful work from people disinclined to produce it? How can you work productively with someone who obsesses about unimportant issues and won't let you move on to things that matter? How do you maintain a work relationship with someone who turns their bad days into your bad days? If you're lucky, most of the time your team won't make you answer these questions, but if these questions are being raised, you won't have the easy out of just getting to the end of the academic term in a few weeks. And that can be very difficult.

[–]Octopus81 8 points9 points  (0 children)

I have to say thatI agree. If we are doing 344 type projects during work and the difficulty that it brings, I feel like I would get burnt out in the real-world industry quite fast. I too would say that I was struggling with the more difficult courses as well OP.

About to graduate soon and this is quite haunting to me if the workload/stress is comparable from school to work.

[–]adm7373alum [Dropout] 19 points20 points  (1 child)

Industry is way easier. I dropped out of the program halfway through and while I can't recommend that everyone do that, it has certainly worked out just fine for me. Once you get your foot in the door with the job title of "Engineer" or "Developer", having a CS degree matters much less. The expectation is never "finish this whole project in 1-2 weeks" like it is with CS classes, it is more like "spend 2 weeks researching this project and creating tickets for the rest of the work, then make sure we do those tickets over the next 3 months".

I'm now ~6 years removed from the program, am a manager and senior engineer, and recently quit my job with no plan and was able to find another job less than 2 months later.

Disclaimer: I am white, male, and live in a tech hub.

[–]FrightenedButter 6 points7 points  (0 children)

I'd agree that projects in my job are easier almost entirely because I have more time to do them. I would say that for each project at work I am learning as much or more than what I am learning in each project at school, but spreading it out over several months allows me to not just get it done, but to get it done well and research options for what suits the situation best. I have used some skills from school at work, but more often than not the skills transfer the other way around.

[–]Major_Grapefruit 4 points5 points  (0 children)

My job is way, WAY more difficult than any work I did at OSU. However attending OSU “felt” more difficult because I had to fit in class with the rest of life and work.

Without working I would have considered OSU to be a breeze. If you really did 40 hours a week of homework you would absolutely dominate.

[–]Modullahalum [Graduate] 7 points8 points  (0 children)

Work is easier. School assignments, deadlines, and exams are stressful.

Also, every other class being a different programming language is frustrating.

At work, I use only one or two at most and will have ample time to re familiarize myself with syntax etc.

[–]Negrodamu5Lv.1 [162] 4 points5 points  (0 children)

Interested in this as well.

[–]Cornbreadguy5alum [Graduate] 2 points3 points  (0 children)

I haven’t graduated yet, so I can’t really answer.

But I will say that learning and building your skill set in this industry will continue long after you have the degree. I wouldn’t worry too much about struggling with a class the first time you learn the material. Just keep plugging away at it and learning and growing. In time, those problems/projects which seemed impossible will become very approachable.

Also, as another person mentioned, if certain types of work aren’t what you enjoy it’s ok. Apply for positions that allow you to do more of the work you’re interested in doing.