6

Before I start explaining the issue I need to stress that I'm trying to be honest and open, so please don't consider me arrogant or so.

So I'm a recent master graduate in computer science from a very reputable German research Uni. I was just offered a job at a German software company as a software developer, actually I don't know any job that is close to CS studies other than that. This is my first time ever in the industry and I didn't know anything about it before I attended 3 days at the company to see how the job looks. Now that I will be working at the company I've noticed something very odd. I noticed that the majority of the people there don't have CS degrees, although they are all very experienced and professionals as software developers.

To be honest I figured out this just by our discussions over lunch. They didn't mention that, but the discussions we had and the their way of thinking made it very clear to me that they are just professionals not academics. Then when I returned home I googled and it was correct.

After I saw that I started to actually think if I really fit into the team or not. Of course as people they are very nice and as developers they are also very professionals and good. But there is still this odd thing that I don't know how to explain which makes me feel that I'm different from them.

The masters teach you to learn things pretty quickly and I feel that in one or maximum two years I will be as good as our team leader. I feel that I will be good in a "principled" way. I don't know how to explain this to you! Probably an 'engineering approach' is the correct term here.

I always thought that my future job will involve working in a team with real engineers working on solving an engineering issue in CS. Something like making a system scale to huge amount of data or so, that would require: research, trying things out, working with engineers who are competent in math and research, and then at the end program the solution. I haven't started working yet, so I don't know how it will go. The team leader also knows what interests me because he asked me about it and i told him that I like challenging things. I mentioned the scaling example but not the steps I imagine for buidling it.

I was a little depressed about this, but then I found this https://www.youtube.com/watch?v=vt79JcPfZQA

I saw that this girl is the same. Graduated from a very good Uni but now is working on web development!

My questions to you:

1- Is this really the industry?

2- Is there any job in the industry that is close to academia? Or close to what I explained in my scaling example?

3- Is my frustration normal thing for a recent graduate?

4- What are the titles for R&D jobs? And can I get to them with my masters? The reason I didn't do a PhD is that because I saw most of PhD holders end up as software engineers, so I thought it's better to start now and gain experience in the industry rather than academia if I will end up there anyway.

  • 3
    Didn't follow the YouTube link, btw. I think most folks generally skip the external links in questions. – Kent A. Jun 3 '15 at 20:37
  • 8
    You are not going to be team lead until you loose the attitude you are better than someone with out a CS degree. Really if they don't have a CS degree then they cannot be competent in math research? – paparazzo Jun 3 '15 at 22:15
  • 2
    You just need to start working for a while before judging what it means to work in industry. If you want to do real research and write papers for the rest of your life you almost certainly need a PHD. If you just want to solve interesting problems and use your education, there are plenty of opportunities in industry. I think some of the answers below are a bit condescending, but I also think you would have benefited from some industry internships before graduation. – teego1967 Jun 3 '15 at 22:21
  • 3
    My experience over the last 10 years has been that developers who either bypassed tertiary education or have a degree in a non-CS discipline are better than those from CS. They may not be able to describe the theory of programming, but they can certainly apply it. I also have to ask - why did you not research where a CS degree could take you until you graduate? – HorusKol Jun 3 '15 at 23:17
10

1- Is this really the industry?

Yes. We already established that the software industry needs workers, not engineers. Workers get 95% of the jobs done and as software developers tend to be quite smart, it's probably closer to 99%. I think you may simply be looking in the wrong industry sector if you want to go into R&D. The plain software business today does not need R&D. Have you seen an application in the last 10 years where you were "wow, I never expected that to work"? I haven't. If you want to go that route, you need to get into a sector that's actually on the edge of technology.

2- Is there any job in the industry that is close to academia? Or close to what I explained in my scaling example?

Yes, there is, if you are very lucky to find the unique snowflake in software development (Google, MS or amazon certainly have R&D departments) or if you look into other sectors.

4- What are the titles for R&D jobs?

Google for Research Engineer or "Forschungsingenieur" in German. You will notice most have a degree as a hard requirement (while most other jobs in software development say "degree or comparable job experience"). But they also mostly require you to have been doing some time in the trenches. Because while academic knowledge is nice, nobody wants a product developed that works "in theory".

The jobs I have seen are in fields that actually are in need of research and development: computer vision, automotive cars and the like. Cool stuff. You won't get to research a lot if you hire with a shop that produces software. That's a business that is well known for decades. You need to find a company that uses software as a tool to produce something cutting edge. Something they need research for.

  • "doing some time in the trenches" - you mean someone who had some years of experience as a developer in the industry right? – Jack Twain Jun 4 '15 at 6:54
  • @JackTwain Yes, exactly. – nvoigt Jun 4 '15 at 7:12
  • i just noticed that most of those jobs: 1- require a PhD, 2- are very very rare. I searched monster.de and got like 15 job postings and the majority of them were not for computer scientists! – Jack Twain Jun 4 '15 at 7:33
  • 1
    Same applies for all the non-master (or even non-degree) developers out there. (I myself never graduated for instance) but I do work in a job that required a CS degree. Why? because HR writes the job posting. If you are really good, and have some experience to back it up. You should easily be able to apply for such a job. Just as I apply successfully to CS-degree jobs – Pinoniq Jun 4 '15 at 11:15
  • This looks like something you might like. There are probably more of those jobs out there, but they are indeed rare. After all you only need one guy to define how a burger looks like, but a thousand who flip them. It's the same in more advanced jobs. You need a very few innovators and many many implementers. – nvoigt Jun 4 '15 at 18:17
6

There are lots of problems to be solved in a "normal" software development job. As a new grad, you have to prove yourself and earn the respect of your colleagues before they will feel comfortable bringing you into their work.

The nice thing about our industry (software development) is that its scope is enormous (infinite?), and a person can eventually find a way to make a good living doing things they really enjoy and are good at. Three days is not really long enough to decide that the industry won't provide you with challenging and interesting things to work on.

Everyone starts at the bottom and moves up as they prove themselves and earn the respect of their peers. You'll do the same. Nothing opens up new opportunities as effectively as experience.

Also, understand that in business/industry, research is done as it benefits the business. Don't expect to be given a lab and told to go experiment until you find something useful. (But, even R&D work exists once you've paid your dues.)

Edit: To specifically answer your question, Lead Engineer, Software Engineer, Software Architect, are the types of job titles that are more likely to include the research element you want. However, if pure research is what you want (as opposed to research mingled with shipping products or providing services), you might want to consider going back into academia as a profession. You'll just have to deal with those pesky students. ;-)

  • can you elaborate on "even R&D work exists once you've paid your dues." please? – Jack Twain Jun 3 '15 at 20:37
  • what are my dues? – Jack Twain Jun 3 '15 at 20:37
  • 6
    "Paying your dues" is an English idiom related to paying the membership fees (dues) of some organization. It is used to refer to the effort you have to put into earning your spot in the organization. In software development, it can mean simply doing the work you're assigned to do, doing it well, building good working relationships with colleagues and customers, etc. These things will open doors for you, and you'll eventually get opportunities to move more toward the research you want to do. Much like musicians "pay their dues" by playing any venue for peanuts, sleeping in their van, etc. – Kent A. Jun 3 '15 at 20:42
  • My job offer is a "software engineer" – Jack Twain Jun 4 '15 at 6:45
  • It means you'll start with a junior role in the team, and likely receive relatively mundane work until you've proven yourself. You might be asked to be on an off-hour support rotation; you might not -- some organizations want to see how you handle on-hour support issues first. You might be assigned a mentor who will help you through how that organization expects you to work -- and that mentor might not have a degree, or might have a degree in a non-technical field. – Rob Crawford Feb 13 at 16:59
6

Is this really the industry?

If you mean, doing jobs as defined by business needs then yes. If you mean working with people without a specific CS degree or even a college education, then yes.

Is there any job in the industry that is close to academia? Or close to what I explained in my scaling example?

Few. Generally speaking if you have an idea on how to solve a problem and need to experiment then do so on your own time - perhaps with friends. If you guys come up with something that works then patent it and start a company. Maybe you'll sell the company, maybe you'll crash and burn.

At times any company you join will come up against problems whose solutions aren't apparent. You'll love those moments, but they aren't the norm. The norm is writing yet another web page to collect a bit of information and store it in the database, maybe with a few business rules peppered in for good measure.

Is my frustration normal thing for a recent graduate?

If you mean frustration at the jarring difference between having very specific tasks you need to perform versus being allowed to just forge your own path as the data takes you - then absolutely. "Real life" is far different from academia because it is results orientated and usually adverse to experimentation. Managers of software teams prefer going with what works, not what could possibly work given 6 months to 3 years of trying things out...

If you mean frustration at realizing not everyone went to university - then that's just something you need to get over. A rather large percentage of the best software engineers either don't have a degree or got it in something else.

You'll find if you start waiving the degree around as a reason why you are Right(tm) or Should Be Listened To(tm) that you'll be ignored. The best software engineers I've ever run into are some of the most cut throat, no BS, get to the point right now type of people that really don't believe you know anything, regardless of what piece of paper you might be holding, until you can prove to them you're not a moron. That proof comes from your actions and ideas.

What are the titles for R&D jobs? And can I get to them with my masters? The reason I didn't do a PhD is that because I saw most of PhD holders end up as software engineers, so I thought it's better to start now and gain experience in the industry rather than academia if I will end up there anyway.

Your degree, whether a PhD, Masters, Bachelors or lack thereof is rarely a qualification for R&D jobs in software development. Experience and actual ability is a far better discriminator. Those two will help you either make a name for yourself or lead you to starting your own business and they take time and effort.

5

Yes it's really the industry and pure research jobs do exist but not for entry level developers. These positions may be called computer scientist or computer science researcher. I wouldn't see your frustration as normal, more of a sign of arrogance. Their time coming in to the office and developing production code says more about their ability to produce software than your masters says about yours.

As some general advice, apply your education for a few years before you decide on the value of it.

4

Lots of good answers already. Just a few more aspects.

  • First, you write that you feel that you will be as good as your team lead in two years. No, you most likely won't. Your team lead knows a huge amount of stuff you are not even thinking about yet - and he will continue to learn and develop over those two years, too. In two years, you will likely just start having an appreciation of what he does and you don't know. Granted, most of this knowledge and experience will not be academic - but it will be both useful and necessary. Check this question and its answers for many, many examples.

  • Second, as others write, you may indeed not find the specific research-oriented challenges in a software development shop. Development nowadays is more focused on getting something that works now, rather than invest six months in research, at the end of which there is still nothing to ship. Are you familiar with Scrum or Agile Software Development? I recommend you learn more about these, even if your particular shop does not use these processes and paradigms - the mindset pervades the industry, and this will help you understand the priorities of your colleagues and your employer better.

  • Finally, yes, there are research-oriented jobs in software development. (I have one of those, but I'm not giving it up.) Look for anything that is called a "Lab", or any job posting including the word "Research". AFAIK, Amazon does some research in Berlin, and of course there are university departments and institutes that are for all practical purposes departments of particular companies, like the HPI in Potsdam. You may want to think about getting a Ph.D. at such a place, since a Ph.D. may well be pretty indispensable for the job you are aiming for (because you are competing with other Ph.D.s for these scarce jobs!), and it gives you exactly the right networking possibilities with other industry research departments.


Edit: These jobs are pretty rare. I work in a "standard" development team (not an explicit research lab), I'm the only researcher among 20+ developers, and the other teams-of-ten we work with don't have anyone in a comparable role. My job is a rare bird indeed, and I'll be honest that getting it involved a fair bit of luck.

Incidentally, it's also harder for me to demonstrate my worth to the company than for a standard developer, who has his name on completed tasks and is seen churning out code, while I analyze prototypes and stare off in the distance. When layoff times come, a manager will always be tempted to fire the researcher with a long-term focus, rather than a developer or QA guy who adds value right now.

So I may need to work extra hard to be seen as indispensable by customers and colleagues, both within my own team and beyond that. (Or this may just be my imagination, and developers may feel the same about their work.) And this can not be focused solely on the long term, but needs to be felt right now, too, e.g., by working with developers to find a quick fix to a bug, or explaining our algorithms to an important customer to wow them with our subject matter expertise. Just something to keep in mind if you want to pursue the research-y career option.

Finally, you comment that most Ph.D. holders end up in software development roles that they could have filled without the Ph.D. You are quite right about this, but as you also write, this is due to the base rate of there being pretty few research jobs. Yes, your chance of ending up in a software development role will still be high with a Ph.D. - but your chance of getting into a research-related job will likely be a lot higher (especially in Germany, where a higher premium is placed on the Ph.D. than, say, in the US).

Nevertheless, it may or may not be a good career move to do a Ph.D in CS. Doing a Ph.D. involves long, painful and badly paid work. You should really only do this if you love doing research. Just doing it for better career prospects will likely not be useful. (It may make more sense in law or business, where Ph.D.s are shorter to achieve.) Fortunately, you seem to fulfill the "love research" part.

  • so these jobs are very rare then – Jack Twain Jun 4 '15 at 7:07
  • this is why I once heard a PhD student says that he is doing his PhD not stay in academia but to find a 'research' job in the industry. The thing is after I heard that I went to google and see where most PhD holders ended up after graduation and I found most of them became software engineers not in research jobs. I was wondering why, but then the fact that those jobs are rare could be a reason. – Jack Twain Jun 4 '15 at 7:09
  • I edited my answer to address your comments. – Stephan Kolassa Jun 4 '15 at 8:04
  • I mentioned in another comment that the company I work for does R&D. If you want to do R&D, you may want to ask WHAT KIND. Into computer science? You'll be limited to the biggest companies or a university job. Into how software gets produced? Same. Into solving particular problems with technology? THAT opens up opportunities. – Rob Crawford Feb 13 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.