Jump to content

How difficult or easy is it to work as a Computer Science


James3221

Recommended Posts

I know that Computer Science is challenging in college, but how challenging or difficult is it when you start working. For example I know medical school is brutal, but being a doctor is very easy. Is this true with Computer science,? ex. Computer Programer, Software developer, Software engineer etc.

I don't have much experience with Computer Science, Im thinking about majoring in it. Is it something you learn very fast? And do the schools train you and prepare you well for the workforce.
PLEASE ANSWER

Link to comment
Share on other sites

The courses you take should be much easier than the work you do as a software engineer. As a CS major you'll probably have several requisite courses, and I think my assertion will be made clear by drawing a distinction between how you learn in some of those, and how you use what you learned in production:

  • Programming: In college you'll be given a programming language to learn and a set of standards along with it. The lectures will basically be a series of tutorials, teaching you how to take ideas and implement them as programs. You'll learn the common lingo of programming languages and the associated concepts along with it. Your problem sets will be exercises in expressing mostly cookie-cutter systems as computer programs. However, in production, you'll likely have to learn to use different programming languages and technologies without the direction of a curriculum. This is even more striking if you're inclined to work with logic or functional programming, which is a whole separate set of concepts from what's usually taught in schools, imperative programming. And much of the work you're given will not be cookie-cutter clear; the person who wants it built might not be able to express what they want in a way that can easily be translated into a program, so you'll have to infer the missing pieces yourself; sometimes you'll have to implement obscure heuristics to get something very specialized done, that won't match anything you've learned before; importantly, you might be working in a team, and you'll have to learn and conform yourself to a new set of standards and practices, and put effort to make your code readable in a way that every technical member of your team finds reasonable.
  • Algorithms and Data Structures: When you study these topics in college, you ought to be taught in a somewhat rigorous fashion. If this is the case, it might be your first encounter with something similarly abstract. You'll be taught the all of the concepts, which initially may seem a bit difficult and disconnected, but will be understood after a few examples. Past that exposition, you'll be taught and expected to memorize various widely used data structures and algorithm schemes. Then, you'll be taught and expected to know the efficiency (complexity) of certain popular algorithms, as well as a bevy of trivial ones as examples and on problem sets. Once you enter the industry, though, you'll be given long and often unreadable clumps of code, and you'll be told to optimize them. Sometimes you'll be told to document the efficiency of the old code and your revisions, and to do this you'll have to read and understand every significant bit of it. If you're only told to optimize it, your team or employer's only tool being a benchmark, you may be able to skimp by without doing any actual complexity analysis; but applying stock heuristics won't always work, and you'll then have to read through, understand, and apply those ideas from complexity analysis to comparatively non-trivial code. If you're assigned to write an algorithm and/or data structure that meets some speed/storage/efficiency specifications, you'll have to design it with everything discussed so far in mind, wary that an inefficient implementation might stall, break, or even bring down a server! If you're told to implement some already existing algorithm, you'll have to understand it well enough to implement it properly in whatever programming language you're using, knowing the ins and outs of your platform and optimizing the implementation accordingly (see previous bullet).

Along with those, there are many things you'll be pressed to learn on your own on the outside, from using development tools like git and vim to setting up heroku servers and maneuvering the facebook API.

 

You can be a successful programmer without using much of these "industry skills" though. Mostly in web development and simple business/records software, things can be built nearly as easily as college exercises can be solved. In order to strive upwards and achieve in the field, however, it is necessary to put in the effort and acquire those skills and competencies as outlined above.

 

Good luck with your ventures!

Link to comment
Share on other sites

You can be a successful programmer without using much of these "industry skills" though. Mostly in web development and simple business/records software, things can be built nearly as easily as college exercises can be solved. In order to strive upwards and achieve in the field, however, it is necessary to put in the effort and acquire those skills and competencies as outlined above.

 

Good luck with your ventures!

 

Actually, I would say the opposite of this conclusion. You could be a successful programmer without having a degree, but not without having industry skills.

 

It really depends what you want to do, and how far you want to go. I wouldn't say being a doctor is easy, and I wouldn't say that being a programmer is hard or easy -- it is mostly what you make of it, and where you want to work, and how far "up" the ladder you feel you want to go.

 

Whatever it is, though, you should have the basic skills that the industry is looking for, and in that aspect, school is a good chance to get them. There are people who are extremely good programmers without having the degrees, and they are very successful programmers, but they were accepted to their jobs because of *provable* skillsets they've shown they had. For the most part, these type of software engineers had to really show their skills.

 

Computer science also includes a pretty large set of jobs, and while you get a lot of "industry skills" in school, you don't get them all. You get the basics, and those basics are very helpful. More than that, though, having the degree is an indicator to potential employers about what kind of knowledge and basic skills you are supposedly coming with, which is something they don't know if you have no degree. They will test you anyways, but there are certain things that they'll definitely expect.

 

There's a big difference between working as a Software Engineer for a company like Google or Facebook, and working as one in financial company like Bloomberg, or working in a non-profit open-source environment like Wikimedia.

 

Like most professions, if you *like* what you do, you'll do it well, both in school and at work, and you'll find your niche and be successful.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.