Jump to content

Interested in Software Development? (IAmA)

I did an AMA on Reddit a little while back but thought it'd be fun to do one here too since the ratio of tech people is a bit higher (or at least those interested in tech).

 

This will be a bit less structured than the Reddit AMA I suppose though as I will be coming and going responding as I can.  I will do my best to answer every single question but just don't expect anything immediate in most cases.  

 

With that said, the goal of this is firstly to help those that are aspiring to be software devs or those that are merely interested, but feel free to ask things non-dev related as well.

 

While I am currently a student, I have done many internships ranging from start ups to fortune 100 companies with the most recent being Google.  I am mostly familiar with infrastructure and backend work but have certainly done some work on UI, websites, test, etc.  Also, have done some work outside of dev (server hardware, networking, etc), but certainly not my focus.

 

Anyways, feel free to ask whatever you'd like and I'll do my best to answer.

 

:ph34r:

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to comment
https://linustechtips.com/topic/20725-interested-in-software-development-iama/
Share on other sites

Link to post
Share on other sites

Can you teach me

My Best 2013 Bitfenix Prodigy Build  Case: Bitfenix Prodigy White | Motherboard: ASRock Z77E-ITX | CPU: Intel i7 3770k | CPU Cooler: H100i | GPU: GTX 690

Fan Controller: Bitfenix Recon | Ram: Patriot IEM 16GB @ 1600mhz | Primary Storage: 2 x Samsung 840 Pro 256GB | Backup Drives: 2 x Seagate Barracuda 2TB | PSU: Seasonic X850

  

Link to post
Share on other sites

Can you teach me

Teach you what exactly?  Development is kind of broad.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

Teach you what exactly? Development is kind of broad.

App dev

My Best 2013 Bitfenix Prodigy Build  Case: Bitfenix Prodigy White | Motherboard: ASRock Z77E-ITX | CPU: Intel i7 3770k | CPU Cooler: H100i | GPU: GTX 690

Fan Controller: Bitfenix Recon | Ram: Patriot IEM 16GB @ 1600mhz | Primary Storage: 2 x Samsung 840 Pro 256GB | Backup Drives: 2 x Seagate Barracuda 2TB | PSU: Seasonic X850

  

Link to post
Share on other sites

In terms of an every day job, what exactly do you do? Is it mostly coding yourself and how much effort goes into a project?

 

Is it many people working on it at once and what kind of challenges do you have to sometimes overcome?

Thanks!

Is this the real life? Or is this just fantasy?

 

Link to post
Share on other sites

App dev

 

I have never really made any "apps" in terms of apps for phones/tablets/etc aside from using Unity3D.  Every program/app though is based on the same basics though.  So if you have never coded before I would start there, reading up on loops, conditionals, data structures, and the like.  As far as which language you should use first is up to you.  I almost always tell people if they understand C then the others will come along more easy as C really makes you understand the fundamentals at a low level.  C++/Java are great though for learning Object Oriented stuff but hold off on that until you know the basics.

 

 

In terms of an every day job, what exactly do you do? Is it mostly coding yourself and how much effort goes into a project?

 

Is it many people working on it at once and what kind of challenges do you have to sometimes overcome?

Thanks!

 

Day to day was pretty much just coding by myself.  Most of the places I have been at you are broken down into teams, in some cases they are small (3-4) and sometimes they are a bit bigger but never too large, I would certainly classify them more as sub-teams than anything else really but those are the core people you talk to, not necessarily everyone on the project.

It's a little bit different as an intern though, so for example, at Google I was on the Google+ team, specifically the infrastructure team.   As an intern I was given a specific project to work on by myself to complete during my time there, so while the project was related to other people's projects I was pretty much left to my own devices to get the project done.  If I needed help though I was more than welcome to ask for help.

How much effort really depends what you're working on and how you manage your time.  I've had days where I really didn't do much, but a majority of the time I keep busy never really straying from the work.  I typically went into work around 8am and left around 6pm, about an hour of that is lunch and whatnot but yeah.

 

As far as the larger projects I can't go into specifics about how many people are working on what, but there is certainly a good amount of man power on projects.  Most of the obstacles I personally had to overcome was just learning everything I could in a fairly short amount of time.  As you can imagine, these bigger companies have a lot of proprietary information that is really only relevant to them, so coming in and having to work on something as large as infrastructure, there was a lot that I had to learn in a fairly short period of time, one of which was a new language, lol.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

What do you do for a living?

 

Right now?  Nothing, I'm just a student.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

Right now?  Nothing, I'm just a student.

Ah, so what are you studding in University?

15" MBP TB

AMD 5800X | Gigabyte Aorus Master | EVGA 2060 KO Ultra | Define 7 || Blade Server: Intel 3570k | GD65 | Corsair C70 | 13TB

Link to post
Share on other sites

Ah, so what are you studding in University?

 

Applied Mathematics and Computer Science

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

You had a Google internship  :o

 

Yup, lol.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

I did an AMA on Reddit a little while back but thought it'd be fun to do one here too since the ratio of tech people is a bit higher (or at least those interested in tech).

 

This will be a bit less structured than the Reddit AMA I suppose though as I will be coming and going responding as I can.  I will do my best to answer every single question but just don't expect anything immediate in most cases.  

 

With that said, the goal of this is firstly to help those that are aspiring to be software devs or those that are merely interested, but feel free to ask things non-dev related as well.

 

While I am currently a student, I have done many internships ranging from start ups to fortune 100 companies with the most recent being Google.  I am mostly familiar with infrastructure and backend work but have certainly done some work on UI, websites, test, etc.  Also, have done some work outside of dev (server hardware, networking, etc), but certainly not my focus.

 

Anyways, feel free to ask whatever you'd like and I'll do my best to answer.

 

:ph34r:

Moved to programming

Link to post
Share on other sites

How was it? @ Mountain View?

 

Loved every second of it.... and yeah, Mt View at the headquarters.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

Moved to programming

But, but, it's not really programming related...well, not strictly speaking, lol.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

Loved every second of it.... and yeah, Mt View at the headquarters.

Do you want to work there? (it's my dream job :wub: )

15" MBP TB

AMD 5800X | Gigabyte Aorus Master | EVGA 2060 KO Ultra | Define 7 || Blade Server: Intel 3570k | GD65 | Corsair C70 | 13TB

Link to post
Share on other sites

Do you want to work there? (it's my dream job :wub: )

 

I'd love to go back someday.  Goal for the immediate future though is to try out some other places to get a better idea of the industry as a whole.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

I'd love to go back someday.  Goal for the immediate future though is to try out some other places to get a better idea of the industry as a whole.

Good choice, where else are you looking at? (I think I've de-railed your topic) :P

15" MBP TB

AMD 5800X | Gigabyte Aorus Master | EVGA 2060 KO Ultra | Define 7 || Blade Server: Intel 3570k | GD65 | Corsair C70 | 13TB

Link to post
Share on other sites

Good choice, where else are you looking at? (I think I've de-railed your topic) :P

 

Not looking at any other places in particular.  Kind of want to check Austin, TX out though, have heard great things.

 

 

 

What's your favourite programming language and why?

What do you think is the most relevant programming language today?

 

I'd say my favorite would have to be Java, closely followed by C.  No real reasons in particular but they are used almost everywhere and are certainly pretty powerful.  It's all preference though and what you want to accomplish.  I'd say I enjoy C because I like playing with things at a low level and most low level stuff these days is written in C.  But I kind of fell in love with Java at Google and seeing how powerful it can be.

 

Most relevant programming language. That's a tough one as it's sooo dependent on the project.  Java is certainly at the top in my mind though, whether it be for mobile developement, back end tools, website (technically javascript but they certainly share many similarities).  But C++ is also very good, whether it be creating games, or powerful back end tools.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

At what age did you learn your first programming language and how long did it take you?

My rig: i5 2500k, MSI Z77A G45, Gainward GTX 980 Phantom, 8GB Corsair Vengeance, OCZ ZT series 750W PSU, 1TB HDD, 800D, fully water cooled. I am currently working on modding my HAF 912+ to fit a custom loop, here is the build log: http://linustechtips.com/main/topic/165963-project-viridis-water-cooled-haf-912/

Link to post
Share on other sites

At what age did you learn your first programming language and how long did it take you?

 

First language was 18 I think and I'm still constantly learning, but enough to write a basic program?  A week maybe?

 

It took me a year or two though to really start to grasp various languages, data structures, etc.  You never know everything though.  But 6+ months and you'll have enough of a grasp to get a majority of basic things done I'd say

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

 

Oh, another question! What do you think of the mathematical reasoning/logic needed for CS (e.g.: runtime proofs, reductions, etc.)? 

 

 

 

I think they serve their purpose and in some cases helpful.

 

Knowing the run times for various algorithms (including ones you create) are definitely necessary.  Had questions like that during interviews.  If you're just trying to figure something out, runtime doesn't really matter but if you are creating a solution that needs to scale then it really matters how fast something executes.  You don't really need to prove anything most of the time but it's good to know how.  

 

What exactly do you mean by reductions?  As in reducing the complexity of a problem?  I'd say that is paramount but within reason.  So there are certainly ways to write things that are very fast and elegant but at the same time, it has to be easily (relatively speaking) to understand because you are pretty much never the last person to look at that code and rework it.  Most compilers these days are smart enough to optimize a lot of things for you, you're not going to really need to do a taylor expansion on something to speed it up or anything like that.

3930k | RIVBE | 32GB Dominator Plat. | Titan XP | Intel 750 1.6TB | Mellanox 10Gb NIC | AX1200i 

Custom TJ07 | 2xD5 pumps | EK Supremacy EVO | EK Titan XP | EK RIVBE Block | Cu Tubing | 25x120mm Rad

Samsung U28D590D 4K | Leopold Otaku w/Browns | Corsair M65 | Corsair SP2500 | Sennheiser HD595

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×