PDA

View Full Version : Which major would be best for me?


databus
January 6th, 2013, 13:06
I'm confused about which major would be best for me, and considering this is a RCE forum I'm sure somebody will have the answer

I want to reverse engineer code as a job, and I want to learn all about boolean algebra and debugging in school. I also want to study low level programming. I enjoy programming in C the most and whipping out ollydbg or ida pro for a nice challenge. Now, I'm not sure which major is right for this.

As far as I know, there are only four bachelor degrees which focus on this area
Electricial engineering (I know this would not do what I'm talking about)
Computer engineering -mix of hardware/software
Hardware engineering -programs and creates microcontrollers
Software engineering -learns java, python, .net, some C++, and other HLA languages. One of the Universities near me cut out teaching C and Assembler (as far as I know, they don't offer those courses anymore)

I don't want to program in high level languages all day like ruby, python, java, or php, even though I don't mind doing so (I do realize that they have faster development and are also quite important). However, I would much rather prefer to do a lower level job.

I'm a bit confused as which to get a degree in, but I really enjoy what I do and I'd love to pursue a career in it.

Thanks for your time

Woodmann
January 6th, 2013, 20:18
Howdy,

I wouldnt rule out HLL at all. You need to go with the "flow".
If you learn something that is popular and common now,
you will be able to get your foot in the door.
If you want to stay current then your education will never end.
Nor should it. You will always need to keep up with what is "happening".

That being said, you need to define exactly what you would like to do.
Creating programs,(which can be broken down by category), Malwares/virii,
perhaps debugging/troubleshooting. I/O programming.... the list goes on.

(And I/O's aren't always about micro's)

Woodmann

databus
January 6th, 2013, 22:47
Quote:
[Originally Posted by Woodmann;93989]Howdy,

I wouldnt rule out HLL at all. You need to go with the "flow".
If you learn something that is popular and common now,
you will be able to get your foot in the door.
If you want to stay current then your education will never end.
Nor should it. You will always need to keep up with what is "happening".

That being said, you need to define exactly what you would like to do.
Creating programs,(which can be broken down by category), Malwares/virii,
perhaps debugging/troubleshooting. I/O programming.... the list goes on.

(And I/O's aren't always about micro's)

Woodmann


I would enjoy reverse engineering malware and working with security companies to stop malware, I also would like to create programs (servers) in any language.

I do realize that I must always be learning and keeping up, but what would be my best bet to enter into this field? I realize that Software engineering would be vital for creating servers, but what about reverse code engineering malware? Which degree would be best for that? Maybe even a masters?

Thanks

Woodmann
January 7th, 2013, 20:56
Computer Sciences and software engineering.
After or during that time you should take as
many "specialty" course as you desire.

So, computer security (multiple disciplines).

But you will still need to understand multiple languages.
At least have a basic understanding in the most common.

Woodmann

rendari
January 8th, 2013, 03:09
I just finish my Computer Science degree 4 months ago. Didn't have any problems getting a job reverse engineering.

Look, your major matters very little to these companies. All of the ones I talked to weren't even interested in what I was studying. Most of what we do is never formally taught anywhere, it just takes years of practice. Take whatever major you are comfortable with, and spend your time in school working on interesting RCE-related projects, and networking with potential employers. When you graduate, you will have a couple of offers to choose from

-rendari

disavowed
January 8th, 2013, 09:19
rendari is absolutely right. Be sure to do school-related projects, non-school-related projects, and internships related to reverse engineering, and list them all of those projects on your resume/CV.

As for Electrical Engineering (EE), Computer Engineering (CE), Hardware Engineering (HE), Software Engineering (SE), and Computer Science (CS), most colleges will only offer 2 or 3 of these, so depending on where you go, you won't have to choose from 5 different options.

I'd recommend CS, with a focus on compilers and/or operating systems. You may also want to take a few EE/CE/HE/SE classes that deal with processor architecture.

Don't expect any schools to have classes that focus on debugging or reversing. Just be sure to go out of your way to do reversing-related projects and list them on your resume/CV. Another great way to get your name visible to the industry is to publish research papers on the web and give talks at conferences *under your real name* -- great for visibility and more fodder for your resume/CV.

owl
January 24th, 2013, 11:57
the guys are right. As long as,your background is computer related, most companies won't care which degree you have. The majority of companies that do reverse engineering have their own internal training anyway. So just learn how to use all the basic tools, some of the most commons pgm languages, and keep doing some reversing. Like disavowed said, it does pay to do some projects and internship on the subject if you can. It does look good on your resume, and does open some doors.

Also, like woodman mentioned, keep up to date on your knowledge about the subject, by reading some blogs, forums, and computer security magazines/ezines. Most schools limit themselves to only teaching the theory behind the science, you need to see what people are actually doing in real life.