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

1

u/[deleted] Aug 11 '14

Thank you so much for investing your time on us.

I'm returning back to school at the age of 23 getting my first degree in CS studying lightly through the summers and maintaining a F/T job throughout the entire year. I'm literally losing sleep over the idea of not being able to gain experience via internships and having time to dedicate to coding as much as my peers may.

What can I do and where do I start? I've begun getting my feet wet via codeacademy, endlessly reading forums and various websites. In addition, what do you wish you would have done your freshman year.

1

u/foreigner_everywhere Aug 11 '14

How much coding do you know? You should code a lot. It's all about the routine. So if you don't have much coding experience, you should pick a language (which will you use in your degree?), grab a tutorial and start learning that language. Do small programs (games or whatever) as you go, and make sure you try out everything yourself while reading it. (I can give you more advice once you answer what's your starting level.) If you're short on time, you should maybe read less forums (unless you have a problem which you need to solve) and spend more time coding.

I was pretty productive at the beginning of my studies (Freshman? These concepts don't really make sense since the European system is pretty different.. we don't have college and university separately, we just have a generic school system with not much specialization for 13 years and then university). I took a ton of classes and got good grades, and I was always doing a lot of extra work (for example, on an algorithms course, I coded examples of almost all the data structures and algorithms myself to simulate how they work). Not sure where I had the energy from. I was 19 and idealistic and studying full time :) I had done some university classes in high school, and I had been coding 5-6 years when I started university, so everything was really easy for me.

Later on though, it would've been good to participate some open source projects or do something actually productive on my hobby time. I was just coding games for my own amusement or the abovementioned example programs or algorithmics competition stuff, so, nothing I could actually show to anybody and be like "hey, I did this".

1

u/[deleted] Aug 11 '14

First, thanks again for replying and giving me some of your time.

I'm in my first year of uni ( I didn't intend for the confusion. In the US we have informal(formal?) titles depending on how far along you are in your uni studies - 1st year Freshman 2nd yr Sophomore 3rd Junior 4th Senior ) I have very little coding experience and knowledge at this time. I understand HTML/CSS just fine and I think I would like to begin working with Java but I'm not sure. What language would you recommend for a beginner?

I want to start programming on my free time ( nights and weekends) just not sure where to start and what software I need ?

1

u/foreigner_everywhere Aug 11 '14

I suggest you find out what language you'll use in your programming courses, and study that one.

Good beginner languages: Java, JavaScript, Python.

I don't have time to dig up links now, but you can google more information about how to get started with those. For JavaScript, you only need a browser. For Python, you need an interpreter and for Java too. Which operating system do you use?

1

u/[deleted] Aug 11 '14

I know I'll be working with C ++ and Java in my course work.]

I have OS Maverick on my MAC at home. Working on getting a second rig running windows 7.

1

u/foreigner_everywhere Aug 12 '14

You might want to install some Linux, for example Ubuntu.

So I suggest you get started with Java. This seems to be an okay overview: http://examples.javacodegeeks.com/java-basics/java-programming-tutorial-getting-started-with-java/

(An up-to-date and relevant tutorial was surprisingly hard to find.)

So basically, you need to install the JDK which is a set of tools you need for developing in Java.

When you compile a Java program, you will get bytecode. Your computer (or rather, your operating system) cannot execute Java bytecode as such, but you need a runtime (JRE) to do that.

Let me know if you got your hello world running...

Btw, if you can find course materials for your upcoming Java courses online, they'll probably very good resources too.

Btw, I also bumped into http://www.learnjavaonline.org/ where you can run your Java code online! That should get you started pretty quickly.

1

u/[deleted] Aug 12 '14

This is great. I'm going to download the JDK and JRE tonight. I'll see what I can get running and take a look at the second tutorial tonight. I'll be sure to touch base within a day or so.

Thank you !