What exactly do computer engineers do?

What are some tasks that "computer engineers" do during their internship?

  • Hello! I am a second year student of the department of computer science and engineering in one of the older IITs. I don't know about the work that computer engineers do or what are the options. In my first year there was only one course programming and data structure. In third semester there is a course for algorithms and discrete structure.But, what are the practical applications for them. I like coding but still my algorithms skill are not so good. I don't know but algorithms is something which is not my cup of tea, maybe due to lack of practice. I love coding only during my algorithms lab. I mean I am really confused. I have my heart set on doing a foreign internship and that is possible only in my second year as my course is four year b.tech program. But, for that I will need  skills. I don't have a very good c.g.p.a. I am only a seven pointer. What kind of skills can i develop. That is my question that what are the areas or options for a computer engineer. From my question's description it is pretty obvious that I don't know much about the field except solving few problems in C programming. I have only six months left and with the busy schedule it would be really difficult to try something boring. Please, suggest some useful practices I can try to make myself capable for a foreign internship in six months. Also mention the things an engineer is supposed to do. I have not found my interests yet !!!. Is there any source I can try to search my passion. I am ready to devote each hour of my day to do work if it would be interesting.  Thanks.

  • Answer:

    I am gonna anwser this question a little more general rather than "what you should do on your internship" Currently you dont have the tools that makes you stand out from the crowd as a programmer. Knowing C is a great thing and really helps you to understand new programming languages and concepts. Important thing is create yourself a arsenal of tools and programming languages whether its a functional, dynamic whichever feels right to you. Learn programming language that make your productive Look at languages like and understand the basic and paradigms of the platforms. Solve couple of problems with them. (Check out sites like PythonChallenge or equivelent on Ruby). You dont have to stick with dynamic languages, look at static ones like Learn web framework on top of that language Go ahead and understand basic flow of the web application. Look at frameworks like built something that you want to use and solve problem by creating application with these frameworks. Try to use linux/unix improve your console and system admin skills Install yourself a linux distro (there are tons of and all free) and try to integrate it to your work enivronment. Deploy couple of applications and try to break as much as you can cause there is no better tool than trying/breaking/fixing. If you have time learn some bash, zsh or whatever shell your are comfortable with. Do not underestimate the basic computer science knowledge Knowing algorithms, data structures is great, practice them regularly. Use sites like Even though %99 percent of time you dont have to write red/black tree or fancy djikstra algorithm while doing work, you still need that knowledge. Big tech companies built their recruiting process on this knowledge. Use open source and contribute it This is really important. Look at peoples code, read them, analyze them. Write yourself couple of applications put them on wait for bugs, pull requests. Ask people to review your code. Look at the interesting projects about the languages you know (https://github.com/explore), try to fix couple of bugs, send patches. Learn different languages and concepts Learn different programming languages and framework as much as you can. Even though you dont need them regulary it gives you a whole new perspective. Check out functional programming, dive into event driven architectures, look at haskell/erlang, learn some design patterns (try to use them whenever possible).

Burak Dede at Quora Visit the source

Was this solution helpful to you?

Other answers

Well from your description its clear that you are a makeshift computer engineer, but that's not a bad thing. I, myself am a makeshift computer scientist. So from my experience, you can do couple of things straight away. 1. Find your Interest : Call it a curse or blessing, computer world consists of million of sub-fields. So you have ample options to select a field of your liking, but having said that, you must also have know how of related fields too. Like if you are not good in algorithms, you can always develop your interest in field like networking, security etc. 2. Learn Concepts not Platforms : One mistake that most of us do is we try to learn technologies and not the concepts. Inheritance, polymorphism, Data Structures, they all will remain the same in C++,Java, C# etc (off course with a bit of nuances ). So instead of applying time on technologies, focus on concepts more. 3. Make your profile : Well one thing that I didn't do in my bachelors which I regret the most is I didn't had any profile. I was just happy with scoring considerable grades and completing my degree on time, instead of participating in programming competitions, or writing papers, or doing internships during semester breaks. Having co curricular activities really go a long way. As far as foreign internship is concerned, first you have to jot down your preferences. Like I am here in Germany, and if you wanna come here, you have to find out the sort of work which is done in mainstream industry.  You should also have know how of their language which is most imperative part. Here mostly students are getting internship in embedded programming, in fields related with handling of data (Big Data, cloud computing) etc.

Ali Ilyas

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.