Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
in_cahoots
Sep 12, 2011
PhDs are the norm (or close to it) in data science. Both the recruiter and the hiring manager will understand what you mean.

Adbot
ADBOT LOVES YOU

hobbesmaster
Jan 28, 2008

You're a grad student or a post doc, put either one that is applicable and describe your thesis research and anything else you've used for publications/conferences under that.

You have a phd, they know you've spent a decade in school. You don't have to try and make it look like something else.

baquerd
Jul 2, 2007

by FactsAreUseless

FaradayCage posted:

Beyond that, any other advice for transitioning to industry would be greatly appreciated.

Learn enough Spark or Hadoop that you can do and explain some map-reduce operations.

FaradayCage
May 2, 2010

baquerd posted:

Learn enough Spark or Hadoop that you can do and explain some map-reduce operations.

Do you have any particular suggestions regarding resources for learning Hadoop?

I've mostly gone through https://www.udacity.com/course/intro-to-hadoop-and-mapreduce--ud617 but I saw some criticisms leveraged against it for emphasizing coding more than Hadoop.

mekkanare
Sep 12, 2008
We have detected you are using ad blocking software.

Please add us to your whitelist to view this content.
Since I graduated and still haven't found work to have lined up, I've decided that I should spend more time doing coding challenges and maybe another project.
Although I have a question: how does anybody find the motivation to do coding challenges and projects?
I enjoy brain teasers and maths (basically one I can solve with paper and thinking).
However as soon as it comes to doing a problem, I have the added sense of trying to find an optimal solution on top of a correct one and then just give up.
For projects, I feel like either it's been done before so I can just read the manpage from a program somebody else already made to solve it.
Or if I choose language A to do it in then when I go to show it off to employers they say "okay, but what about your experiences in languages B and C?"

I don't know how to make this post not sound like whining, so excuse me if it came off that way to you dear reader.

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

mekkanare posted:

Since I graduated and still haven't found work to have lined up, I've decided that I should spend more time doing coding challenges and maybe another project.
Although I have a question: how does anybody find the motivation to do coding challenges and projects?
I enjoy brain teasers and maths (basically one I can solve with paper and thinking).
However as soon as it comes to doing a problem, I have the added sense of trying to find an optimal solution on top of a correct one and then just give up.
For projects, I feel like either it's been done before so I can just read the manpage from a program somebody else already made to solve it.
Or if I choose language A to do it in then when I go to show it off to employers they say "okay, but what about your experiences in languages B and C?"

I don't know how to make this post not sound like whining, so excuse me if it came off that way to you dear reader.
The obvious thing to say is "find something you think is interesting." This is obviously not great advice because if you knew what you wanted to build you could go build it. Here are some neat things to poke at if you're just wanting to find something interesting Cryptopals, a site full of challenges that explain cryptography.Intermezzos, an OS in Rust. Try learning a new language and build a simple project that you've built before in it. Reinvent the wheel: I've been tinkering very slowly with a relational database written in Python even though it'll never see the light of day, and I think I'm gonna just gently caress around and build a web server in some language I don't know like Erlang or Haskell or Go (or whatever), because why not? Maybe you like games, in which case check out Unity or Unreal Engine. Do you like a service? Write a client library in your favorite language for their API. Even if one exists, who gives a gently caress? And maybe build something with their API (check out the Spotify API, it's cool).

The hard part is knowing what to start building. So if you find something unsatisfying, try something else. You'll learn something even if you don't finish it. As for languages, what languages do you know? I didn't have anyone ask me "okay, but what about LANGUAGE YOU HAVEN'T TALKED ABOUT" when I was looking for a job. Maybe if everything you have is written in, like, Fortran, and you're applying for Java jobs, you'd get that, but chances are that's not you.

mekkanare
Sep 12, 2008
We have detected you are using ad blocking software.

Please add us to your whitelist to view this content.

Ghost of Reagan Past posted:

As for languages, what languages do you know?

Hey thanks for the reply and the information.
I don't "know" any language well in a practical sense.
I enjoy very much reading about languages, but when it comes to use them I don't really feel any desire to because of what I mentioned earlier.
The most I've written has been in C++ using '03 in school and '11 in the one project I managed to do over the summer (which could have been done in a week).

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

mekkanare posted:

Since I graduated and still haven't found work to have lined up, I've decided that I should spend more time doing coding challenges and maybe another project.
Although I have a question: how does anybody find the motivation to do coding challenges and projects?
I enjoy brain teasers and maths (basically one I can solve with paper and thinking).
However as soon as it comes to doing a problem, I have the added sense of trying to find an optimal solution on top of a correct one and then just give up.
For projects, I feel like either it's been done before so I can just read the manpage from a program somebody else already made to solve it.
Or if I choose language A to do it in then when I go to show it off to employers they say "okay, but what about your experiences in languages B and C?"

I don't know how to make this post not sound like whining, so excuse me if it came off that way to you dear reader.

"I can't seem to find a job" is definitely a thing worth whining about. I whined about it a lot.

My motivation was a mix of "I actually like coding" and "I'd like to pad my resume with poo poo I've done." Anyway, if too much optimization is a problem for you give yourself hard deadlines and penalties if you fail. Like you have to have X thing working by Y day or you'll watch a movie you hate, give away $100, or something. It's kind of difficult to learn how to stop yourself form always improving things because you always can improve things. With no boss and no deadlines it's easy to fall into that trap.

If somebody asks you about a language you don't know be honest about it. You won't know every language. You can't know every language. As long as you know a popular one or two you should be fine. Just don't put down anything you don't know on your resume. The other thing of it is that your core skills are what matters. Study some logic and make some little things that are functional. You know, a little website that does something neat or a simple game or something. I guess HackerRank is a good place to find jobs but I don't do that site anymore. I really should...

Apparently some people get offers just by doing things like answering questions on Stack Overflow. That can also get your brain working.

Anyway, I actually had an interview where I was expected to write PHP. I just handed it in pretty much blank with a comment that said "I don't know PHP" and left it at that. It's nowhere on my resume. I know gently caress all about it. That was the end of that, really; that only ever happened once. Other than that just be honest. The job I did get I write a poo poo load of Java but my Java experience was entirely confined to two university classes. If you're a competent programmer you can pick up a new language pretty easy. As a recent graduate you won't be expected to be a wizard with deep knowledge of any language let alone multiple. The most popular languages also have enough similarity that moving between them is relatively painless. C++ has its own madness but other than that a lot of skills transfer over.

I got my job writing a FizzBuzz and a pair of Fibonacci methods in C#. We don't use C# at work at all. Far as I can tell the more important thing for entry level jobs is just proving that you can understand the core basics. Keep applying; a lot of places aren't keen on hiring a noob but for programmer types it's really only a matter of playing the numbers game. There's a shortage of programmers; you'll find a job eventually. No idea where you're located but the local market might just suck.

Also, learn Java if you haven't yet. For better or for worse it's the most popular language in the world and doesn't look like it's going away any time soon.

FaradayCage
May 2, 2010

mekkanare posted:

Hey thanks for the reply and the information.
I don't "know" any language well in a practical sense.
I enjoy very much reading about languages, but when it comes to use them I don't really feel any desire to because of what I mentioned earlier.
The most I've written has been in C++ using '03 in school and '11 in the one project I managed to do over the summer (which could have been done in a week).

Then you definitely need to invent your own project.

The best way to learn a language without formal training is to need to use it to do something you want. That forces you to use google, forums, brute force, and plenty of healthy hair-pulling to get the result you're looking for.

For example, I've only had one semester of undergrad Java 101 as the entirety of my formal programming education. I soon realized my graduate research would require a lot of C programming.

So I decided to solve the ancient question "Who would win in a war: Dwarves or Elves?" using the 3.5 edition D&D rules:

I wrote a program in C that would run a monte carlo simulation of 100 Dwarf warriors vs 100 Elf warriors. There was primitive A.I., a text-grid (ASCII?) visual, and a summary report. As expected, elves would consistently win at larger starting distances and dwarves would consistently win at shorter starting distances.

In retrospect, I didn't learn much C in that first iteration. Mostly because I used arrays to store everything when classes would be a much better solution. It was still fun, though. I wanted to do it because I was in uncharted territory (as far as I knew), so I couldn't just "look up" the optimal solution.

I'm not sure if I ever reached a satisfying conclusion on how to instantiate N classes. Just do a loop to generate number strings and concatenate them to "elf_" for the name of the instantiation? But I did learn bits and pieces, and more importantly - I got experience doing something with code.

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

mekkanare posted:

Hey thanks for the reply and the information.
I don't "know" any language well in a practical sense.
I enjoy very much reading about languages, but when it comes to use them I don't really feel any desire to because of what I mentioned earlier.
The most I've written has been in C++ using '03 in school and '11 in the one project I managed to do over the summer (which could have been done in a week).
I suggest just building something and committing.

Build a Tic-Tac-Toe program. Language doesn't matter, use C++, use Python, use OCaml, use whatever. There, a project for you to finish and be proud of. Everyone starts somewhere.

mekkanare
Sep 12, 2008
We have detected you are using ad blocking software.

Please add us to your whitelist to view this content.
I actually already did this as an exercise for demonstrating AI in AI class.
I don't have an issue thinking of things to do, it's the motivation I'm having trouble finding.

I guess what I mean by "know" is that I can't seem to remember the stuff that seems like trivia to me.
For example, I had an interview a while ago for C++ and the guy asked things like "What comes as default with classes?"
I couldn't remember all 6 members (I forgot that there was a move constructor, not just the move operator).
Another was I couldn't remember how to use the erase-remove idiom.
Or things such as the difference between TDD and BDD, or what are the data structures available in the Standard Library.
It's in this way that I'm an idiot. I just usually google them and then read wikipedia quick or something to that effect when I forget.


I'm in Southern WI. Java doesn't bug me, but I didn't go out of my way to read up about it like I have other languages.

Thanks for the responses everyone, I do appreciate them.

StashAugustine
Mar 24, 2013

Do not trust in hope- it will betray you! Only faith and hatred sustain.

Hey so I need some advice. I'm just out of a two-year degree in 'software development' (which was a mess of a bunch of different introductory courses) and I have an interview coming up for an "IT/system developer" position for a logistics company. It looks like a good entry-level position and says that "knowledge or experience working with IBM Power8 hardware, Extol, PHP, RGPLE, and / or SQL preferred". I'm relatively comfortable with SQL but don't have much knowledge of the other ones, does anyone have recommendations for simple things to look at for them? Also, anything I should know about how database design works in a practical professional standpoint?

Che Delilas
Nov 23, 2009
FREE TIBET WEED
You should learn what you need from the senior devs at the company. If you already know basic querying that's fine for now. The other stuff is pretty specific, I wouldn't waste my time with anything but a random php tutorial.

Don't wait, just apply.

Che Delilas fucked around with this message at 23:44 on Dec 22, 2016

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

mekkanare posted:

I don't have an issue thinking of things to do, it's the motivation I'm having trouble finding.

Forget motivation, just make it a habit. That's how writers do it.

StashAugustine posted:

LAlso, anything I should know about how database design works in a practical professional standpoint?

Interview SQL questions for beginners are normally just to write simple query that demonstrates a join, plus a simple modeling question like, "design the tables for a small store and shopping cart." If they're really ambitious they might add, "and accept multiple payments during checkout."

Jose Valasquez
Apr 8, 2005

The "motivation" should be the fact you need a job and doing a project or programming challenges will help you get one. Getting a job is your job right now, not something you do when you feel like it.

You may as well get used to programming when you aren't motivated to do it now because that's going to be a large part of your day at times during your career. I love software development but there are days when I don't feel motivated to do it, but it's my job.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

mekkanare posted:

I'm in Southern WI. Java doesn't bug me, but I didn't go out of my way to read up about it like I have other languages.

Thanks for the responses everyone, I do appreciate them.

I used to poo poo all over Java. In my own defense it used to be pretty bad other than "write once, run everywhere."

However, Java 8 is fantastic. I used to swear by C# and still use it when futzing around with Unity but Java 8 is a magnificent beast you should definitely look into.

Felime
Jul 10, 2009

The Wizard of Poz posted:

Sorry but this caught my eye and I had to respond. You shouldn't consider this to be unimpressive. That mindset/process of identifying a problem, working out a solution and using code to implement it is absolutely critical to being a developer and is one of the things that is really hard to teach to someone who doesn't already think that way. Make sure you mention this in any interviews, it's pretty important. In addition, it's a completed project that was done purely for your own amusement/convenience - this counts for a lot as well, it shows a genuine interest.

Tell me about it. I'm brushing up on my fundamentals and working on a little project.

I upload photos to imgur reasonably often, and I figured I could automate the resizing to sane dimensions and uploading, and it'd be a good chance to learn to fiddle with an API.

As I break the problem down and the parts become comprehensible it gets kinda difficult to think of the stuff I'm doing then putting together as complex, despite the fact that I spent several hours getting to the bottom of what the gently caress any of the API meant, how to deal with basic html requests, etc... (with a couple hour derail on regex because I really needed to at least know what I could do with regex).

At least I'm pretty sure it'll look impressive all commented up and with some configuration options and authentication added.


How should I go about sharing code on here? Just accept that if someone wanted to internet detective my real name they probably could and link my github I have it up on? Should I obfusticate the link so that the second result if someone googles my github URL isn't an awful forum for awful people?

sarehu
Apr 20, 2007

(call/cc call/cc)
I still get job offers so you should be fine.

mekkanare
Sep 12, 2008
We have detected you are using ad blocking software.

Please add us to your whitelist to view this content.
I recently had an online coding interview and one of the questions was something like this:

quote:

Given two strings, find and return the number of characters that have to be removed from either string in order to have them be the same string.
For example, "boat" and "oar" would be two, since 'b' and 'r' have to be removed.
Another example, 'toilet' and 'tine' would be four: 'o' 'l' 't' 'n'
I had 15 minutes to find the answer, and iirc it should have been done in linear time and space (not sure 100% now).
The only thing I could think of was having two hash maps, one for each string, and find the difference in number of characters.
But the order did matter, and I forgot the exact syntax for C++ (since it had to run to pass), and well here I am posting about it.

Was I anywhere close to a proper solution?

sarehu
Apr 20, 2007

(call/cc call/cc)
Doing that in fifteen minutes is complete bullshit.

asur
Dec 28, 2012

mekkanare posted:

I recently had an online coding interview and one of the questions was something like this:

I had 15 minutes to find the answer, and iirc it should have been done in linear time and space (not sure 100% now).
The only thing I could think of was having two hash maps, one for each string, and find the difference in number of characters.
But the order did matter, and I forgot the exact syntax for C++ (since it had to run to pass), and well here I am posting about it.

Was I anywhere close to a proper solution?

Did they specific that it had to be the longest? It's a bullshit solution, but as written you'd just need to find a single matching character and eliminate everything else. If they did then it's the Longest Common Subsequence problem and it's nominally O(nm) in space and time with some potential optimizations that no one is going to get in 15 minutes assuming they even get the solution to begin with.

Also agree that this is complete garbage for 15 minutes.

asur fucked around with this message at 20:22 on Dec 29, 2016

JawKnee
Mar 24, 2007





You'll take the ride to leave this town along that yellow line
set intersection won't preserve the order but is the quickest almost-solution I can think of off the top of my head.

Jose Valasquez
Apr 8, 2005

It's a modified edit distance that only allows deletes. It's a pretty standard dynamic programming problem but implementing it in 15 minutes wouldn't be easy even if you recognize it immediately.

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

mekkanare posted:

I recently had an online coding interview and one of the questions was something like this:

I had 15 minutes to find the answer, and iirc it should have been done in linear time and space (not sure 100% now).
The only thing I could think of was having two hash maps, one for each string, and find the difference in number of characters.
But the order did matter, and I forgot the exact syntax for C++ (since it had to run to pass), and well here I am posting about it.

Was I anywhere close to a proper solution?
You could do it pretty straightforwardly with Python list comprehensions I think, but doing it in 15 minutes would definitely be some bullshit since it took me like 5 minutes to figure out exactly what the question was asking and my stab at it missed the second letter 't' in toilet so I figure my solution would be suboptimal.

And again, this is in Python, not C++.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug
That sounds like a code trivia question designed specifically to make the interviewer feel smart.

Felime
Jul 10, 2009
Doing that in 15 minutes... maybe.

Doing that in linear time in 15 minutes? No loving way.

Only way I can think of in the five minutes of planning 15 minute code really allows for is to do something like strip out any characters unique to each string, then start iterating though and deleting stuff that isn't in the right order (and thus couldn't be permissible).

Even if you had a really elegant solution thought up in 5 minutes, 15 minutes is probably less than the time it would take to test that poo poo and make actually sure that your cleverness would work.

I might just be rusty, but even when I did programming competitions, that was the sort of question I'd read, think "Is there partial credit on anything I can bullshit here?" then discard, because it's not worth doing on time constraints.

mekkanare
Sep 12, 2008
We have detected you are using ad blocking software.

Please add us to your whitelist to view this content.

Jose Valasquez posted:

It's a modified edit distance that only allows deletes. It's a pretty standard dynamic programming problem but implementing it in 15 minutes wouldn't be easy even if you recognize it immediately.

It was this. This was the first I've heard of this problem, but thanks everyone for commenting 15 minutes was not enough time for the optimal.
I feel a bit better about not doing well on it now :unsmith:

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

mekkanare posted:

It was this. This was the first I've heard of this problem, but thanks everyone for commenting 15 minutes was not enough time for the optimal.
I feel a bit better about not doing well on it now :unsmith:

You're going to fail a lot of really stupid interviews for places that have really stupid interview procedures. It's fine; don't worry about it.

Che Delilas
Nov 23, 2009
FREE TIBET WEED

ToxicSlurpee posted:

You're going to fail a lot of really stupid interviews for places that have really stupid interview procedures. It's fine; don't worry about it.

I love those interviews. They're basically asking the following questions:

1) Did you memorize this particular algorithm (that you will probably never need to use in this job) and the problems it solves?

If you answered no:

2) Are you a loving genius?

And then if you answer yes to either they would love to offer you $53k per year oh by the way you're unofficially on call 24/7 because they don't hire support engineers.

Yeah, the answer after an interview like that is to learn a bit about the algorithm and think, "oh, that's neat" and move onto the next interview.

Jose Valasquez
Apr 8, 2005

Also depending on the company and the interviewer they might not care that much if you didn't get the answer as long as you talked through it and demonstrated good problem solving skills. I've had interviews I thought I absolutely bombed and it turned out the interviewers thought I did really well.

lifg
Dec 4, 2000
<this tag left blank>
Muldoon

ToxicSlurpee posted:

You're going to fail a lot of really stupid interviews for places that have really stupid interview procedures. It's fine; don't worry about it.

"How would you create a system that can rollback a database update? Normally you can do it in the database layer with MySQL trans and rollback. But can you do it in the code layer in Perl?"

<<whiteboard a really ugly answer where updates statements are turned into select statements, and run to get their values, which are cached for a potential rollback>>

"No, I'm sorry, the right answer was to use MySQL *inside* the Perl layer and use trans and rollbacks."

Jose Valasquez
Apr 8, 2005

The best is when your interviewer gives you a hint for a problem that is really confusing and days later you realize they were mixing up something with their hint and you were on the right track before the hint

Doghouse
Oct 22, 2004

I was playing Harvest Moon 64 with this kid who lived on my street and my cows were not doing well and I got so raged up and frustrated that my eyes welled up with tears and my friend was like are you crying dude. Are you crying because of the cows. I didn't understand the feeding mechanic.
I interviewed with Raytheon for an internship a few years back, and they asked me something like, if you have a system that tracks airplane flight, and there is a bug where the image of the plane is not showing up on the screen, what is the probable reason for the bug?

:confused:

Fellatio del Toro
Mar 21, 2009

Can you tell us? Please? They're running out of fuel

cloudchamber
Aug 6, 2010

You know what the Ukraine is? It's a sitting duck. A road apple, Newman. The Ukraine is weak. It's feeble. I think it's time to put the hurt on the Ukraine

Doghouse posted:

I interviewed with Raytheon for an internship a few years back, and they asked me something like, if you have a system that tracks airplane flight, and there is a bug where the image of the plane is not showing up on the screen, what is the probable reason for the bug?

:confused:

What was the correct answer?

Humphrey Appleby
Oct 30, 2013

Knowledge only means complicity in guilt; ignorance has a certain dignity.
I feel like in this situation you go with "user error".

Reminds me of question I had in an interview where I was given virtually no details. I was asked why the production system had users getting mixed up sessions and appearing logged in on different accounts. I did not get that job, but also considering they had been unable to fix this problem for at least 3-6 months I did not feel too bad about it either.

The answer was (according to them), memcached sessions overflowing with poor handling by their php framework.

The point is if they don't like the user error answer go with "caching".

spiritual bypass
Feb 19, 2008

Grimey Drawer
Why would memcache be used to handle sessions? PHP's default session behavior (with sticky load balancers, if applicable) ought to be fine for pretty much anything.

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Doghouse posted:

I interviewed with Raytheon for an internship a few years back, and they asked me something like, if you have a system that tracks airplane flight, and there is a bug where the image of the plane is not showing up on the screen, what is the probable reason for the bug?

:confused:

QA engineer: what else is or is not on the screen? Is it just the image of that one plane missing or inages for all the planes? Is it consistent with that specific plane or random with whatever plane? Basically: how can we reproduce the bug? If found, your answer is probably caching in that specific situation.

Doghouse
Oct 22, 2004

I was playing Harvest Moon 64 with this kid who lived on my street and my cows were not doing well and I got so raged up and frustrated that my eyes welled up with tears and my friend was like are you crying dude. Are you crying because of the cows. I didn't understand the feeding mechanic.
I wasn't even done with school, I had no idea what was flying. They didn't tell me what the right answer was, and I don't remember what I said.

Adbot
ADBOT LOVES YOU

Fellatio del Toro
Mar 21, 2009

TBH they probably just want to hear you speculate about potential reasons a thing might not appear on a screen when it's supposed to. Eg there's lots of reasons the plane could be rendered outside of the viewport: different coordinate systems, metric conversion putting the plane in the wrong location, etc. Maybe it's being rendered in the same color as the background and you just can't see it. Maybe the graphic for the plane isn't loading correctly. Maybe the background is being drawn on top of the plane. Maybe the sensor data is just hosed.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply