What are jobs like with a computer science/computer engineering degree? As well as other tech jobs.
I'm a junior in high school. I am part of my schools tech academy and I hope to find a career in tech when I get older. I want to major in computer sciences or computer engineering. I'm interested in video games,baseball and cars. I just really don't know what the jobs are like in these majors. I always get recommended to go to internships, but what else can I do? What are tips and ways to get ahead in these fields? What are things I can do now to prepare myself? What are specific jobs in these careers?If you have one of these jobs, do you like it?
#computer-science #computer-software #computer-engineering #computer-programming #computer-security #computer-hardware #computer
5 answers
Dinesh’s Answer
The job markets have been—and are expected to continue to be—excellent for both types of computer engineers. Both can lead to very interesting and rewarding careers. You should choose according to your preference.
computer engineering
Computer engineers build hardware while computer scientists generally do not. However, computer scientists certainly know enough about hardware to analyze computer system operations and to interact with hardware engineers.
computer science
Computer scientists know more about underlying theory of computation, programming languages, and operating systems. While computer engineers often work as programmers, most system level programs such as programming languages and operating systems are designed by computer scientists. However, computer engineers usually write the programs for computer-based systems.
Computer engineers work for computer companies such as Intel, HP, and Texas Instruments, and also in industries that build or use computer-based systems, such as telecommunications, automotive, aerospace, etc. Many computer engineers also get jobs as programmers. While they have less programming experience than computer science graduates, their understanding of hardware gives them an advantage in dealing with overall systems.
Dinesh recommends the following next steps:
Greg’s Answer
So just to clarify terms up front, computer science is primarily about software (though it can touch on hardware aspects, e.g., quantum computing), while computer engineering is more about hardware (though you can do nothing but [embedded] software with such a degree--generally tied very closely to a particular type of hardware). There's a gray area there, but those are the definitions I'll assume.
I currently work as a software engineer, which is what computer science graduates tend to end up doing. I've been doing it for around 15 years now, and I like it a lot. (I also worked in the semiconductor industry for a while, and there were probably computer engineers there--certainly there were people who designed chips--but I worked with software people: video codecs, board-support packages [the lowest-level software to make a chip usable by customers], and in my case, embedded Linux and VxWorks. I wasn't as fond of that, though it had its good parts, too.)
CSci and software development are unique in the very low bar to participation: all you need is a computer with an Internet connection, and you can find reference material, free compilers, free online courses, forums with other enthusiasts (as well as practicing engineers), and so forth. After learning a language like Java, C/C#/C++, Python or Javascript, many folks get started with open-source work--not necessarily the big, famous projects like Linux, Hadoop, and Apache, which are hard to contribute to, but smaller projects, perhaps even simple command-line utilities. A great way is to find one or more projects that sound interesting to you, try them out, perhaps submit documentation fixes initially if you find something that was unclear or misleading in your testing, and then take a look at the open bugs. Some of the lower-priority ones might be easy to fix but are considered too minor for the main devs to worry about, yet a contributed fix will be appreciated.
A related option is to take a look at some web site whose design and/or content looks interesting to you, and see about building your own personal site for fun. Perhaps you have a large book or music or video collection; you could enter the titles and authors/artists into a database (say, MySQL), perhaps with ratings and personal reviews of some of them, and voila: you've got the back end for a simple data-driven web site. Add a front end to let you access it via a web browser, add new entries, edit old ones, search, etc., and you've just learned the basics of a web applications engineer. Or maybe you'd prefer to develop your own game for Android or iPhone. Or (like me: http://gregroelofs.com/3D/43487-galaxies/) you love 3D and/or VR and decide to learn Javascript and three.js so you can build and animate 3D worlds. (Note: I'm stilling learning those myself, so my Javascript is extremely amateurish. threejs.org has pointers to professional sites with far better demos.) Or you've seen thingiverse and start playing with 3D-printable models. Or neural networks and machine learning sound interesting, or robotics, or image/video recognition, or digital astronomy, or computer security/penetration testing, or ... you name it. There are even (small) quantum computers available on the Internet these days; if you have the interest and talent for it--and it's very weird compared to "normal" computing--you can run your quantum code on one of them and get the results back.
For the more hardware-oriented folks, Raspberry Pi is probably the most popular embedded platform in the world (not counting mobile phones, which give you almost no ability to modify the hardware), and it's both cheap ($35 to $50, I think) and has a huge community of enthusiasts doing all sorts of interesting things with the platform.
And once you get to college, internships are an outstanding way to get your foot in the door, as you've already heard. But working on projects like those above can be just as good; it shows you're self-motivated, interested, able to work with the community (hopefully :-) ), and already have some experience with the engineering/development process: writing code, getting it reviewed, submitting it, etc.
As to specific jobs, there are countless Internet and software-only companies, of course (Silicon Valley is composed of almost nothing but), but almost every medium to large company these days has a lot of data and a need to manage it, slice and dice it, derive business insights from it, etc. On the transportation front, both gas and electric vehicles and (electric) drones are not only full of electronics (and the software that runs on it) but increasingly robotics in the form of self-driving (or self-navigating), autonomous vehicles. Tesla's "autopilot" woes notwithstanding, this is unquestionably the wave of the future, but it's also quite complex (probably obvious :-) ) and will require a great deal of refinement, debugging, and associated support infrastructure in the future. And then there are the scientific fields (physics/astrophysics, genomics, etc.) that will soon be generating terabytes or petabytes of data every day; while these fields may not pay particularly well, they have a huge need for big-data analysis and machine learning capabilities, and in some respects people working there will be at the forefront of engineering (and science), which can be its own reward.
Charles M Hurd
Charles M’s Answer
https://www.mynextmove.org/
Dnyanraj’s Answer
if you are looking for skill set required and job description.. Search job sites..
Else be prepared to take what comes in front of you!!!
G. Mark’s Answer
I think I may have an unusual perspective on this that may be of help. I can't know what everybody thinks, so I'll give it shot anyway. When I was first recruited by a major R&D company, the prevailing wisdom was that all engineers/scientists were intended to be interchangeable. In a positive way. We were all considered to be "really smart" in our fields and we should be able to join any project and do any part of it. This, as you might expect, is a bit of a fantasy, but it helped us all get pretty familiar with all the phases of projects. I started as a programmer or developer. I did what smart folks said they needed done. They designed, I coded or built hardware. Later, we all wrote requirements and later system architecture documents. I was eventually given the "weird" problems that clients had -- both businesses and other tech firms -- and allowed to define the problem and the solution by learning more about those other firms and clients. Eventually I gained skill in 1) defining problems, 2) defining solutions, 3) finding options, 4) deciding on an implentation design and architecture, 5) coding or building solutions, 6) testing and verifying the solution or product, 7) interfacing with the client for ongoing support, 8) managing teams to do all those things, 9) exploratory investigation for future products and solutions and even 10) traveling around the country giving presentations on our technology and solutions.
The bottom line here is that tech jobs are many and varied. The great thing about this is that you'll eventually find some subset of those 10 things that you really, really like and are good at. So instead of a "food", you should think of tech jobs as a "menu" you can find something delicious you'll enjoy.
Delete Comment
Flag Comment