#anawkwardnerd
Explore tagged Tumblr posts
Note
i was wondering what sort of things you learn in your classes and what kinds of projects you do, and what kind of careers you could pursue with your degree
Hi, I’m so sorry that answering this took so long! I’ve been really tired after I get home from work, and basically just falling asleep right after dinner haha :) I guess my body hasn’t adjusted from being a student to working full-time for my internship.
So, before we start, I’d just like to point out that the information below is specific to my Computer Engineering program at Georgia Tech, and while most schools will have a similar curriculum, it will not be exactly the same as what I have written here. This is in part due to the rather loose definition of what Computer Engineering actually is, and why it’s different from Computer Science and Electrical Engineering. Also, faculty at different schools have different research interests and funding, so the topics again may vary in depth and coverage due to that as well (though typically I would assume undergrad classes are less variable than graduate programs).
WHAT IS COMPUTER ENGINEERING?
This is a common question. Many people tend to mistake Computer Engineering for Computer Science, but while the two fields are similar, they are not the same thing.
Wikipedia defines Computer Engineering in a general sense as “a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.“ I would say that this is true. Computer Engineering is the practice of combining software and hardware to create complex computing systems, such as computers, cell phones, smart TVs, and more.
Thus, Computer Engineering heavily overlaps both Computer Science and Electrical Engineering, using parts from both to create something unique. I like to compare the three fields to chocolate - milk chocolate, dark chocolate, and white chocolate. They’re all chocolates, but have different flavors. Which one you prefer is really a personal choice based on your interests!
There are also subtopics within Computer Engineering that lean more heavily toward either software or hardware, and either Computer Science or Electrical Engineering. I will get into that more, further down.
CLASS TOPICS
I’m not sure how familiar you are with topics within Computer Engineering, so I’ll provide a list with some explanations.
THE BASICSEveryone in the major will start out with these topics. In fact, at my university, both Computer Engineering majors and Electrical Engineering majors must learn these topics before moving on to more specialized topics.
Programming FundamentalsThis topic covers good practices when writing code, and gives an introduction to programming. You begin to learn about some problems that arise with programming, and trade offs that you can choose between when making design choices. For example, you need to design a program that can do matrix arithmetic very fast. What is the best way to write code for this? What language should you use? How can you make your code run more efficiently (i.e. ideally you would make it run faster while minimizing the amount of computing resources you need, such as memory)?
Boolean Algebra and LogicComputers run on 0s and 1s. They don’t understand things like “2 + 2″ in the same manner as humans do. In order for you to get a computer to add 2+2, you must use the binary number system. In this example, the number 2 is represented in binary as 0010. Adding 2 + 2 yields 4, or in binary 0100. Boolean Algebra explains how to do arithmetic using the binary system, and delves into the topics of how to represent negative numbers without a negative sign, as well as boolean logic operations, like AND and OR. This is extremely useful for understanding more specialized topics, such as Computer Architecture, where you will have to design the physical devices that can execute these logic and arithmetic operations on 1s and 0s.
ElectricityThis one’s pretty self explanatory. If you’re designing a system that requires electricity to run, you’ll need to understand how electricity works. Typically you’ll learn most of what you need to know about electricity in your basic physics classes, with more information introduced as you progress into more upper-level classes in your academic career.
Circuit AnalysisCircuit Analysis is a tool that helps you understand how a circuit you are working with or designing will behave. The basic introductory class will cover similar topics as an introductory physics class on electromagnetism, but will go more in depth on circuits specifically than the physics class will. You will learn how certain devices (resistors, capacitors, and inductors) affect the input and output voltages and currents of a circuit, and be able to calculate how much power a circuit consumes over time. You also may learn about operational amplifiers (op-amps) which are used in a huge variety of things to take a small input signal and make the output signal much bigger. A good example is speakers! Personally, I loved these classes. They were lots of fun.
Basic Calculus-Based PhysicsReiterating, you will need to take a basic physics course that covers electromagnetism, especially if you are more interested in hardware than software. This will set the foundation of your understanding of how electronic devices work, and how different components interact with each other.
ADVANCED TOPICS
Algorithms (overlaps with Computer Science)An algorithm is a process or function that describes how to solve a problem. It can also be a set of steps that when followed, will lead you to the answer. In the case of Computer Science and Computer Engineering, algorithms serve the same purpose. For example, a famous algorithm is Djikstra’s Algorithm, which is used to find the shortest path between some number of points. In algorithms classes, you will learn more on what an algorithm is, when and how to use an algorithm, what some examples of widely used algorithms today are, and how to create your own algorithms. You will also learn how to write code for these algorithms, so that you can use them in your programs and projects.
Data Structures (overlaps with Computer Science) A data structure is basically a container for data that you use while programming. These classes go over more advanced programming concepts, and introduce different types of data structures. You will explore the tradeoffs and benefits to using various data structures in your programs, and when is the best occasion to use what type. You may also learn about popular algorithms used to do things like search through data inside a data structure, and how to write code for such algorithms.
Computer Architecture (overlaps with Computer Science)Have you ever taken apart a phone or laptop, and looked at the circuit boards inside? How do all the different components come together to make a device that you can interact with and use in so many different ways? That is the basis for Computer Architecture. In this topic, you will learn about system level design for a computer or other computing device. Classes will cover memory, caches, data paths, instruction set architecture, and how hardware can be unified with software at the physical machine interface to develop a working device. This is a very interesting field, and there is a lot of demand for bigger, better machines every year. Although the concepts can be complex and challenging, the reward of studying this field is high.
Embedded Systems and Low-level Programming(overlaps with Computer Science)Embedded Systems covers the interactions between physical hardware and machinery, and a programmer’s code that controls the machine. It is essentially a step up from Computer Architecture, in terms of how “low-level”, or close to the hardware, your interactions are.
Digital DesignAt a basic level, digital systems rely on only 1s and 0s, or in the case of a circuit, some “high” voltage, and a different “low” voltage. The voltages in between the high and low voltages don’t really matter, except that we consider them as “garbage values” since they’re neither 1 or 0, they’re somewhere in between. So then, Digital Design is the process of designing circuits that can use these 1 and 0 values to do computations and logical operations. Some basic examples are logic gates, adders, and shifters. Those small components are then combined to create large systems, such as microcontrollers and processors.
Digital Signal Processing (overlaps with Electrical Engineering) If you’re interested in telecommunications, like WiFi or Bluetooth or satellite TV, this is a good field to go into. Digital Signal Processing teaches you how to convert between analog (real-time) and digital (discrete) signals, as well as how signals propagate, what you can with electrical signals, how radio works, and so forth. It’s very interesting, but can be quite challenging. If you are interested in the Internet of Things or low-power energy harvesting devices, this topic will help with gaining a deeper understanding of how parts of those systems work.
Integrated Circuits(overlaps with Electrical Engineering)Integrated circuits are essentially multiple circuits and/or devices combined into one single silicon chip. This topic overlaps with Digital Design. What is unique about integrated circuits is the sheer scale of devices on one chip - you can have billions of transistors on a single, small piece of silicon. Thus it is important to understand how to combine all those devices together, and how the cost and performance of the chips are affected. You also learn how to design these kinds of chips by learning about VLSI - Very Large Scale Integration. I loved the class I took on VLSI, as it was very hands-on and we were able to create our own chips using Cadence Virtuoso, which is a design software suite that professionals use to create their integrated circuit designs.
Hardware Layout(overlaps with Electrical Engineering)Hardware Layout involves creating the physical design of the actual circuit board or other electronic product that you are designing. You will learn how to place components in such a way that you minimize area to keep costs down, and follow other design constraints. Having an understanding of physics is essential, as you will discuss power consumption vs area tradeoffs and other similar topics. You will also learn how circuit boards are manufactured, and depending on the class you may even be able to have the boards you design fabricated so that you can test them.
Microelectronics(overlaps with Electrical Engineering)Microelectronics is the study of small electronic devices such as transistors, amplifiers, and diodes. At an undergraduate level, you will learn how these devices are made, what they do, how to design your own devices, and how to analyze these in circuits. These courses are also fairly heavy in physics, and an understanding of calculus and differential equations is very beneficial. My class covered Metal Oxide Semiconductor Field Effect Transistors (MOSFETs), Bipolar Junction Transistors (BJTs), operational amplifiers, rectifiers, LEDs, MOS Capacitors, PN Junctions, and laser diodes. This topic is another one that I really enjoyed.
There are of course even more topics, but these are the ones I can think of off the top of my head, and that I have taken or have experience with.
OTHER TOPICS
You will also need to take a course (or multiple courses) on calculus, up to and including Multivariable Calculus, as well as a course on Differential Equations. You will also need to take a course on Statistics, as statistical analyses are needed frequently, especially when dealing with any sort of digital signal processing.
PROJECTS
So there are a variety of things you can get involved in, and I’ll list a few.
Engineering Student OrganizationsThese are great places to get involved in the community while also learning more about your chosen field and gaining team-work skills. They can also be great places to work with other engineers who aren’t in your major. For example, my school has a student organization that works together to design an eco-friendly car every year and enters it in competitions. Many students are involved in this and it looks great on your resume as well! There are also professional organizations that help you learn valuable skills and connect you with employers, but also provide technical workshops and projects. IEEE (Institute of Electronics and Electrical Engineers) is an organization like this. The student branch on campus not only sponsors companies to visit campus, but also has three teams of students who work on various projects for competitions, such as building robots, designing a drone, etc. You could also find a volunteering opportunity with a student club - at Georgia Tech, there is a group that goes to high schools and middle schools in the area and teaches young students how to code and build small electronics.
Laboratory AssignmentsDuring your laboratory classes, you will have a project every week or so. These are great ways to learn more in a hands-on way. You are often exposed to equipment that you will later see in your career, such as function generators (used to put out electrical signals), oscilloscopes (can measure signals), power sources (they provide power to your circuits), multimeters (used to measure current, voltage, resistance), and so forth. You build your own circuits or devices, and test them, then record the data you measure, and draw conclusions from there. One cool project I had as part of a lab class was to create a breadboard game controller and program a small game for it using C++. The controller had a speaker, push buttons, a small LCD screen, and an accelerometer on it, all controlled by a microcontroller that I programmed. Another project I had a lot of fun with was programming a robot using assembly language and VHDL (VHSIC Hardware Description Language), to make the robot reach several destinations most efficiently. This one was a team project where we were required to give a presentation at the end.
Personal ProjectsWith a personal project, you can do basically anything you want to. There are a lot of ideas on the internet, where people use Raspberry Pis or Arduinos to make cool things, like little robots, Internet of Things devices, gamepads, etc. I don’t really tend to do personal projects, but the things you can do are really endless. I have a friend who was working on designing a door lock for his dorm room so that he didn’t have to use a key, but could just swipe his school ID to open the door. Another friend of mine was working on some machine learning algorithms to create a poetry bot that would generate a random poem in the style of a poet you told it to imitate.
ResearchIf you’re interested in learning about cutting edge technology and solving current problems, a research project is a great way to get involved. The opportunities and programs at your school may vary, but emailing a professor directly and asking if you can work for them is something that will always be common across schools. In the Electrical and Computer Engineering department at Georgia Tech, there are also two programs that will put you on a team of students that work with a professor and a graduate student mentor to solve some sort of research problem. You can even get paid to do this! I work with a research team on developing a method for cheap, efficient renewable energy - solar power from space, which is beamed down to Earth and then converted into usable electric power. Essentially, you could power all sorts of electronics wirelessly - no more need for those pesky charging cables!
CAREERS
With a degree in Computer Engineering, you can do practically anything. Here are some possible career paths, but you could do something outside of these, like starting your own company!
Academia/Professorship If you like doing research at a school, and think you might also like to teach, this is a good path. You’ll need a PhD, and possibly a Master’s degree, depending on whether that’s a requirement for your chosen PhD program. After you get your PhD, you’ll need to find a post-doctoral position somewhere, and from there apply for instructor or assistant professor positions. You can work your way up from an assistant professor, to an associate professor, to finally a professor, hopefully with tenure.According to GlassDoor, the average salary of an assistant professor in Computer Engineering currently is $101,464/year. Payscale, however, notes that the average salary for an associate professor is $88,853/year, so your salary will of course vary greatly with which institution you teach at, and what your specific position is. At Georgia Tech, there are several professors who make over $300,000/year, but they are also typically chairs of the department or some other high-ranking position within the school.
Research & Development EngineerIf you like doing research, but don’t want to have to teach, or the idea of being a professor doesn’t appeal to you, going into R&D at a company might be your cup of tea. R&D engineers typically work on advancing the front edge of technology, and developing the next generation of products. An example would be how smartphones get more powerful every year - a team of R&D engineers is the one behind making the hardware changes that enable better performance and powerful processing. We’ve come a long way since the era of the flip phone.The national average salary for a R&D Engineer in the U.S. is $86,927 per year, according to GlassDoor. For a Senior R&D Engineer, the national average is $97,465/year. This, again, will vary based on which company you work for.
Hardware EngineerHardware engineers typically will design and develop new systems, such as processors, networks, routers, memory systems, and so on, for computer systems. Circuit board design and modeling and simulations comprise a large part of the job. Average salary for a Hardware Engineer is $95,550/year.
Verification EngineerVerification engineers are in charge of checking that a hardware system will run properly under a set of certain operating conditions. Knowledge of VHDL and/or Verilog is required, as is experience with working on FPGA (Field-Programmable Gate Array) systems. Tests are typically done either in simulations and models, or with an FPGA. Average salary for a Verification Engineer is $92,012/year in the U.S.
Software EngineerSoftware engineering positions come in a wide variety of flavors, but all will require knowledge of good programming practices, and contemporary programming knowledge. Typically, someone who has done a Computer Engineering degree will have knowledge of lower level languages, such as C, C++, and assembly, though it is also good to learn Java and Python, as those are popular in industry. Computer Engineering students with exposure to such languages typically choose to go into Software Engineering roles that are closer to the hardware, such as operating systems, networks, or back-end development. Average salary for a Software Engineer in the U.S. is $95,175/year.
Patent LawBecoming a lawyer after getting an engineering degree may seem strange to you, but patent law is actually an area in which it is more beneficial to have technical knowledge as well! Patent lawyers help companies and inventors register patents with the U.S. Patent Office, and make sure that one patent doesn’t infringe on another, or that manufacturers are not infringing on patent rights that are in effect. After getting a Bachelor’s degree in Computer Engineering, you should work in a related industry for a few years, then apply to law school. Getting a job as a patent assistant or getting certified by the U.S. Patent Office will also help with pursuing this career. The average salary for a patent lawyer is $148,000/year.
I hope that helps!! If you have any more questions please don’t hesitate to ask, and I promise I’ll get to them as soon as I possibly can!
Also I forgot to mention, doing an internship over a summer, in between your school years is a great way to figure out what kind of career you’d be interested in. Schools tend to have a lot a career fairs in the fall, when companies visit campus so students can talk to them. Prepare your resume and a list of questions you want to ask about each company, and after the career fairs, make sure to apply to the position you want on the company website! This is a great way to make professional connections and meet people who work in your chosen field.
#computer engineering#georgia tech#anawkwardnerd#careers#electrical engineering#i'm so sorry this took so long!!!#askbox questions#career advice
17 notes
·
View notes
Note
Once you get this, list 5 things that make you happy then put this in the ask of 10 people who reblogged from you last c:
1. When people compliment me2. Steven Universe3. Whenever a favorite youtuber uploads a new video4. Waking up and getting ready for school without being interrupted.5. Whenever I make or see someone smile!
1 note
·
View note
Note
hello! i am trying to decide what i want to major in when i get to college, and I am currently stuck between computer sci, computer engineering, and electrical engineering. i was wondering if i could ask you some questions about computer engineering just to get a better grasp on what i would be doing in school and what i could get a job in afterwards. would that be all right?
Hi! Of course that would be alright! What would you like to know?
0 notes