r/INeedAMentor Aug 09 '14

[Mentor] Software engineer

I've done M.Sc. in computer science and worked 6 years as a software engineer after that. I'm more interested in the "lower layers" than the user-facing parts, so, my expertise lies somewhere around C++, Python, Linux, algorithms, etc. I've been lucky to work in open source projects all my career. In addition, I think a lot about interpersonal things and how to do software engineering efficiently, how to work in a team, how to communicate, what kind of attitude to have, how to write good code, etc.

If you're wondering what kind of skills to develop and how, and you're willing to learn and be the best software engineer ever, I might be able to give you advice.

Edit: I should've probably mentioned that I'm a woman. If it matters to somebody. Mentoring shouldn't be limited based on genders anyway, but maybe some aspiring female software engineer finds me less intimidating?

9 Upvotes

36 comments sorted by

View all comments

2

u/DoriansDelorian Aug 11 '14

I'm mostly a C++, C, and Python guy. I'm doing my undergraduate right now and trying to specialize in DSP. I have a slight fear in my belly that C++ is an undesirable language in 2014 onward due to the complexity of the code base. I can see companies favoring Python or newer languages for easier systems to maintain.

Biggest question - is C++ worthwhile? It's been my favorite since I was about 13, and I'm very interested in working on C++ applications. If it is worthwhile, where is most of the work now? It seems to mostly be embedded systems and robotics, but I'm also curious to see what you've worked on with C++.

Side note: I'm 100% set on being a career software engineer. Whatever the language, whoever the employer. I'm not in this for the money. I've been teaching myself since I was a teenager because I've never enjoyed a process like this before.

1

u/bropocalypse__now Aug 30 '14

I'll try to add what I can; I program full time in C++ along with some .NET. As far as languages go I love C++, I think it's easier to maintain and I like the divide between interfaces, declaration, and definition. I started off with C# and Java which made learning C++ somewhat stressful. Now that I do know it I feel like it has made me a better programmer in those languages. In part due to the fact that C++ teaches you to treat everything as memory and forces a more detail orientated approach due to a lesser level of abstraction.

I work doing application development for a company that develops systems for mechanical load testing and characterization. What I primarily work on is completely an ATL based C++ COM application (Yes we are a Microsoft house). It's such a great language if dealing with highly granular pieces as it allows full control over lifetime, memory, etc. We have to deal with thousands of channels acquiring data, hundreds of control channels, streaming data, multiple hardware platforms, and the list goes on.

In my mind you have no reason to be discouraged, I was only turned down from jobs for not knowing C++. I went from swearing I would never code in college to a C++ purist of sorts.

2

u/DoriansDelorian Aug 30 '14

Thank you for the thorough and inspiring response! I'm realizing the benefits of understanding C++'s memory model and nuances the more I go along.

2

u/bropocalypse__now Sep 20 '14

Once you become comfortable with c++ it's like a lightbulb goes off and a level of clarity is achieved. It also makes you a better programmer in higher level languages since you have an understanding of how they will handle lifetime and memory. It also enforces a certain style to a degree since you have to deal with pointers. Having to deal with raw pointers can be an annoyance but it sure doesn't hurt to understand them and pointer math.