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
New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug
[edit]
nevermind I am dumb

New Yorp New Yorp fucked around with this message at 17:19 on Nov 13, 2015

Adbot
ADBOT LOVES YOU

22 Eargesplitten
Oct 10, 2010



Yeah, KernelSlanders pointed out I used +j where I should have used -j. Past my bedtime brain fart.

If they wanted me to check inputs, I would probably do it iteratively instead. Initially check to make sure that str is not null, set i to 0, set j to str.length(), and do a while loop. Doing it recursively, all I can think of is a second outer method to do those steps.

I would have to throw a custom exception in the case of str being null, I think. I don't have much experience doing that.

E: implementing a heap, I'm thinking you would want to make a tree out of nodes, with up, left, and right pointers. The thing is it seems messy as hell, with maybe 8-10 lines of code. I know there is a jtree structure, are there methods in that class that I should be using?

22 Eargesplitten fucked around with this message at 17:44 on Nov 13, 2015

Kuule hain nussivan
Nov 27, 2008

22 Eargesplitten posted:

I would have to throw a custom exception in the case of str being null, I think. I don't have much experience doing that.
Not necessarily, unless you want the calling method to know that the string was null. If that's not necessary, you could just do.
code:
if (str == null) {
     return false;
}

22 Eargesplitten
Oct 10, 2010



I assumed that something might go wrong down the line if the program thought it had been a valid string.

ExcessBLarg!
Sep 1, 2001

22 Eargesplitten posted:

I assumed that something might go wrong down the line if the program thought it had been a valid string.
That's actually a good question.

What happens if you pass a null string into your isPalindrome method (not including the null check Kuule hain nussivan suggested)? When does it happen?

Is there anything better the method can do when given a null string? Is there anything better the method should do?

22 Eargesplitten
Oct 10, 2010



Honestly, when I googled briefly I didn't see anything about the behavior of null strings when called. I would assume there's a runtime error when you attempt to call a method on the string.

Static variables are variables where there can only be one value for them throughout every instance of the class, correct? And finals can't be changed after being assigned? So by making a static final variable, you basically get an equivalent to a C++ constant?

And you can implement multiple interfaces, but you can only inherit one abstract class. You have to implement every interface method in the classes implementing it, but you don't have to implement every method from an abstract class. Is there anything else crucial I'm missing?

Sarcophallus
Jun 12, 2011

by Lowtax

22 Eargesplitten posted:

Honestly, when I googled briefly I didn't see anything about the behavior of null strings when called. I would assume there's a runtime error when you attempt to call a method on the string.

Static variables are variables where there can only be one value for them throughout every instance of the class, correct? And finals can't be changed after being assigned? So by making a static final variable, you basically get an equivalent to a C++ constant?

And you can implement multiple interfaces, but you can only inherit one abstract class. You have to implement every interface method in the classes implementing it, but you don't have to implement every method from an abstract class. Is there anything else crucial I'm missing?

Calling 'null.charAt(i)' will throw a NullPointerException. You can't invoke method calls on null. For the other cases, calling charAt() with an invalid index ( < 0 or > string.length) will throw an IndexOutOfBoundsException. This is all assuming Java, but other languages are similar.

ExcessBLarg!
Sep 1, 2001

22 Eargesplitten posted:

Honestly, when I googled briefly I didn't see anything about the behavior of null strings when called.
To be precise, it's a null reference. The behavior of calling a method on a null reference is the same regardless of the type.

22 Eargesplitten posted:

I would assume there's a runtime error when you attempt to call a method on the string.
Sure, but how does a runtime error manifest? Does the program die immediately? Do you get a SIGSEGV? Does something else happen?

22 Eargesplitten posted:

but you don't have to implement every method from an abstract class. Is there anything else crucial I'm missing?
When do you have to implement methods specified in an abstract class?

22 Eargesplitten
Oct 10, 2010



In my experience runtime errors bring up an error and the program just stops there. That might not be a consistent behavior, though. Would you have to implement methods from an abstract class when that abstract class itself is implementing an interface?

ExcessBLarg!
Sep 1, 2001

22 Eargesplitten posted:

In my experience runtime errors bring up an error and the program just stops there.
I'd review exception handling in Java. When you attempt to call a method on a null reference, the runtime issues a NullPointerException. It's effectively the same as if you did:
code:
if (str == null) {
    throw new NullPointerException();
}
Except the JVM does that for you. In the event that the exception (or one of it's supertypes) is not caught, the JVM invokes the default exception handler. If that's not defined ether, the JVM prints the exception and stack trace to stderr.

As a matter of style, you don't usually have to handle null references passed to your method as, eventually, a NullPointerException will be thrown. The three instances in which you should handle null references are (i) if the API you're implmenting specifically allows for them, (ii) the methods you call internally do something wrong when passed null values, and (iii) if care is needed to make sure that the NPE doesn't leave some external resource in an inconsistent state.

22 Eargesplitten posted:

Would you have to implement methods from an abstract class when that abstract class itself is implementing an interface?
You have to implement the methods defined in an interface that the abstract class itself doesn't implement. You also have to implement any abstract methods defined in the abstract class.

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.
For the palindrome question, I'd expect that "A man, a plan, a canal: Panama" would be a valid palindrome. That's an example from a real technical interview I've gotten before. Basically that's the kind of thing that you'd expect an interviewee to clarify, because it's non-obvious to start with how strict you're being with the definition of a palindrome. It's very common for there to be at least a little ambiguity in the initial question.

jabro
Mar 25, 2003

July Mock Draft 2014

1st PLACE
RUNNER-UP
got the knowshon


Cicero posted:

For the palindrome question, I'd expect that "A man, a plan, a canal: Panama" would be a valid palindrome. That's an example from a real technical interview I've gotten before. Basically that's the kind of thing that you'd expect an interviewee to clarify, because it's non-obvious to start with how strict you're being with the definition of a palindrome. It's very common for there to be at least a little ambiguity in the initial question.

I'm teaching myself JS and one of the test questions I had a few days ago was to write something to check for palindromes. I just ran that Panama phrase through it and it passed. Proudest I felt all month.

csammis
Aug 26, 2003

Mental Institution
Simplicity of implementation and ability to flex the specification is exactly the point of asking the palindrome question. Personally I start with a simple definition of a palindrome and if the applicant gets it right, then I ask how to extend their solution for more complicated cases like case insensitivity and punctuation.

The biggest thing to remember for any "implement this" question: clarify the inputs and expected outputs with the asker. It's expected of you to do this.

Jeb Bush 2012
Apr 4, 2007

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.

22 Eargesplitten posted:

Yeah, KernelSlanders pointed out I used +j where I should have used -j. Past my bedtime brain fart.

If they wanted me to check inputs, I would probably do it iteratively instead. Initially check to make sure that str is not null, set i to 0, set j to str.length(), and do a while loop. Doing it recursively, all I can think of is a second outer method to do those steps.

I would have to throw a custom exception in the case of str being null, I think. I don't have much experience doing that.

E: implementing a heap, I'm thinking you would want to make a tree out of nodes, with up, left, and right pointers. The thing is it seems messy as hell, with maybe 8-10 lines of code. I know there is a jtree structure, are there methods in that class that I should be using?

You *can* implement a heap using a tree, but implementing it with an array is going to be much more space and time-efficient.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug
So if one applies for development jobs is it normal to get calls or interviews for other things? I'm hunting entry level dev jobs and have noted that in cover letters or web applications but my only interviews so far have been for non-dev things.

fantastic in plastic
Jun 15, 2007

The Socialist Workers Party's newspaper proved to be a tough sell to downtown businessmen.

ToxicSlurpee posted:

So if one applies for development jobs is it normal to get calls or interviews for other things? I'm hunting entry level dev jobs and have noted that in cover letters or web applications but my only interviews so far have been for non-dev things.

I get recruiter spam for roles like insurance salesman or IT helldesk all the time. Sometimes I get them for a QA role, which is less annoying.

22 Eargesplitten
Oct 10, 2010



I get so many ads for UPS loading/unloading positions. No, using the label scanner does not count as a technical role.

For a heap in an array, does that just mean you'd have to swap positions? Yeah, that's a lot easier.

22 Eargesplitten fucked around with this message at 21:10 on Nov 14, 2015

TheOtherContraGuy
Jul 4, 2007

brave skeleton sacrifice
Hey I could use some advice. I'm in a good position but I've been thinking a lot about me future recently and am trying to figure out if I should get a master's.

I graduated university with goodish grades (B+) from a prestigious Canadian university with a degree in Biochemistry. I got a job at a local biotech and while my boss was on maternity leave, I started to learn Python to automate some boring text entry stuff. That was two years ago and I've been promoted three times as my technical skills have grown. My job title now has words "Technical Lead" in it, which is nice. My job is split between managing a bunch of small Wordpress websites, running QA on the big company website and writing scripts when people need them.

I still love biochemistry but I've been devouring computer science in my spare time. I've done a couple dozen Lynda/Pluralsight courses and completed Coursera/EdX courses in algorithms, linear algebra, bioinformatics and embedded programming.

I read The Master Algorithm by Pedro Domingos and it's got me obsessed with machine learning and data science. I would love to help push the fields forward but I have a suspicion that I'll need at least a master's degree before anyone would seriously consider for that type of position. Has anyone here tried doing an online master's while working full time? Would it be worth pursuing a formal computer science degree? How can I make myself a more attractive candidate?

greatZebu
Aug 29, 2004

If you want a job where machine learning and/or data science are an important component of what you're doing, I don't think a master's will help you much. It's better to keep self-teaching and work on developing some work of your own that you can use to demonstrate your competence. Given what you're interested in, kaggle might be a good path forward. If I was trying to hire people for middle of the road machine learning work, I'd give way more credence to a strong record on kaggle than to a master's degree. You can also learn a lot from the community there.

TheOtherContraGuy
Jul 4, 2007

brave skeleton sacrifice
Awesome. I've never heard of kaggle before. I'll give it a shot.

hooah
Feb 6, 2006
WTF?
Is this a good place to ask for advice about a company's culture? I've got one offer that sounds pretty good, and I anticipate another offer from my recent second-round interview, but I've heard some mixed things about this second company.

Jeb Bush 2012
Apr 4, 2007

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.

22 Eargesplitten posted:

I get so many ads for UPS loading/unloading positions. No, using the label scanner does not count as a technical role.

For a heap in an array, does that just mean you'd have to swap positions? Yeah, that's a lot easier.

Right, with the ith element being the parent of 2i+1 and 2i+2. Then you can add elements by putting them at the end of the array and swimming, and delete-min by taking the first element, moving the last element to the first element's slot, and swimming it.

greatZebu posted:

If you want a job where machine learning and/or data science are an important component of what you're doing, I don't think a master's will help you much. It's better to keep self-teaching and work on developing some work of your own that you can use to demonstrate your competence. Given what you're interested in, kaggle might be a good path forward. If I was trying to hire people for middle of the road machine learning work, I'd give way more credence to a strong record on kaggle than to a master's degree. You can also learn a lot from the community there.

I think it's fairly common for data science/machine learning jobs to ask for candidates to have at least a master's. Those jobs will not, in general, involve much "pushing the field forward", though.

jaffyjaffy
Sep 27, 2010
I have a resume question. My university has a format they wanted all of us to use for our co-ops and general job hunt. I've heard opinions on this format all across the board, but I wanted to get some more opinions on it from a software engineering standpoint. My main question was if I should have a section to talk about some projects I've done for classes or anything like that, or if I should just keep it standard as it is if I don't have anything super awesome that would be worth showing off. Alternatively, I can just rebuild the resume in a different format (such as Cicero's in the OP) if that format is absolutely awful.

Resume

Chomposaur
Feb 28, 2010




TheOtherContraGuy posted:

I read The Master Algorithm by Pedro Domingos and it's got me obsessed with machine learning and data science. I would love to help push the fields forward but I have a suspicion that I'll need at least a master's degree before anyone would seriously consider for that type of position. Has anyone here tried doing an online master's while working full time? Would it be worth pursuing a formal computer science degree? How can I make myself a more attractive candidate?

As someone with an MS, I was able to get offers at smaller shops where the main job was data engineering with an eye towards working on some ML stuff, but it was unlikely to push the field forward.

If you are really really committed to doing research and pushing the field forward, that's the entire point of a PhD. The research-heavy positions that I looked at all listed PhDs as a hard requirement. That's a hell of a commitment though, so I'd start with something like Kaggle as greatZebu mentioned. I have seen a couple places using Kaggle standings as a recruitment tool, and obviously on Kaggle you're free to experiment with whatever algorithms and tools you want.

sarehu
Apr 20, 2007

(call/cc call/cc)

jaffyjaffy posted:

I have a resume question. My university has a format they wanted all of us to use for our co-ops and general job hunt. I've heard opinions on this format all across the board, but I wanted to get some more opinions on it from a software engineering standpoint. My main question was if I should have a section to talk about some projects I've done for classes or anything like that, or if I should just keep it standard as it is if I don't have anything super awesome that would be worth showing off. Alternatively, I can just rebuild the resume in a different format (such as Cicero's in the OP) if that format is absolutely awful.

Drop the street address, keep the city when the job's local, don't have a separate home/cell number (just cell), drop the references section, and don't call it "Computer Skills," because that's for secretaries. And "Microsoft Windows" and "Linux" are great skills if you're applying for the Special Olympics but I'd put something like POSIX or something about the Windows API if you have programming experience specific to that. Some of your bullet points have one space after the bullet, while others have zero.

Overall it's a perfectly reasonable resume format, stylistically, but you should remember that university "career center" type help will at best keep students from making an awful monstrosity of a resume. That's their core competency, and it's probably very useful for some students. You should treat their advice with as much weight as you'd treat advice from a goon with a 2004 regdate, or worse, an anime avatar, i.e. question whether it makes sense, see if they have reasons for their opinion.

I recommend trying to write your objective without using the words secure, academic, endeavors, or Computer Science (which shouldn't be capitalized, by the way). You want something in the field of software development or software engineering, I'd say. That sentence gets mapped by the reader into a first impression, and you should try hard to tingle the right neurons.

I think your use of the present tense in the experience section is weird, and the most interesting things are the robotics challenge and your previous/current job. I want to know what you mean by scripts, what language they were written, some more roughage that would make you feel more like a real programmer. It's sort of like your resume goes out of its way not to talk about any actual programming that you've done. I think talking about projects in classes is kind of lame, but if you only have one job under "experience" to talk about... it depends on the project and how interesting it is, ultimately, and whether it's better than what's getting removed from the resume to make room for it.

fantastic in plastic
Jun 15, 2007

The Socialist Workers Party's newspaper proved to be a tough sell to downtown businessmen.

jaffyjaffy posted:

I have a resume question. My university has a format they wanted all of us to use for our co-ops and general job hunt. I've heard opinions on this format all across the board, but I wanted to get some more opinions on it from a software engineering standpoint. My main question was if I should have a section to talk about some projects I've done for classes or anything like that, or if I should just keep it standard as it is if I don't have anything super awesome that would be worth showing off. Alternatively, I can just rebuild the resume in a different format (such as Cicero's in the OP) if that format is absolutely awful.

Resume

I've seen worse.

"Objective" is probably better framed as "summary of qualifications" where you give a two-three sentence elevator pitch for yourself. My reasoning for this is because technology has a lot broader a variety of jobs at the entry level compared to, say, accounting. If you're absolutely wedded to having an objective section, be more specific about what you want in particular, since "the field of computer science" is extremely broad. Do you want a webdev job? Mobile dev? Sysadmin? Security? Computer janitor? Right now it reads as if you'll take something, anything as long as it involves touching a computer -- which you might think is the position you're in, but if you can write Android code, you can do worlds better than computer janitor in the bowels of First Bank of Anytown's IT department.

It might help to rewrite your experience bullet points to be more specific, too. Wrote scripts to improve what workflow? By how much? In what languages? Maintained what kind of computer system? What level of administrator/manager-type creature did you report to? Reading your resume I'm confident that you've taken money for touching a computer before, probably for opening a non-MS-word editor and typing poo poo into it -- but I don't have much more than that to go on.

I don't think the course list is useful unless they're electives and specifically linked to your job goal. I'd also strongly consider killing the "special skills" section unless you can expand on them to be specific and job-related. To me, those signal that you're a little uninformed/unsophisticated regarding business (which might be the case, but for heaven's sake, try not to look it when you're dealing with the business types).

The robotics challenge thing is interesting. I'd consider making a "Projects" section, moving that to there, and explaining more -- being able to say you're a national champion in anything is a way to stand out. The Rocket Gold scholarship might be interesting depending on what the qualifications are and how much - if it's for maintaining a high math/science GPA, for instance.

jaffyjaffy
Sep 27, 2010

Tao Jones posted:

The Rocket Gold scholarship might be interesting depending on what the qualifications are and how much - if it's for maintaining a high math/science GPA, for instance.

It was that school's equivalent of a full-ride scholarship for high school GPA.

I was considering dropping the courses part entirely since most of the big companies (Google, for one according to the e-mail I got from their rep) seem to request an unofficial transcript as well, which would tell them everything course wise.

Projects for class assignments were pretty standard fare (I can edit this later if anyone want specifics) but the big standout project would probably be the one I'm doing now for a capstone project with a team. We're developing a "smart pantry" app that'll let a user scan a UPC on some product to add it to a sql (sqlite) db, then pull that db into another section will recipes that will be displayed based on what is in the pantry database. There is also some Bluetooth interaction that will talk with these dispensers an mechanical engineering student is working on.
The scripts I wrote at my current job were just standard IT fare stuff (IE temp file deletion since it's the only fix for the broken EMR we are using, etc) just done with batch files since that was the best solution for that task. Unfortunately I haven't had the opportunity to do any "real" programming in Java/C++ or what have you. I will elaborate on those though, since any experience developing something that will be used by a bunch of people (and writing/maintaining documentation for that) is better than nothing.

Thanks for the feedback, everyone!

edit: I'm looking at a few other formats and they drop the objective section entirely. Is that only recommended with more real work experience?

edit2: The SumoBot thing was technically done in high-school, but I think it's worth keeping since it was a big year-long team project that dealt with budget management and everything. We also built a BattleBot within that project, but unfortunately we couldn't compete with that due to logistics with the school district. As it stands I'm fleshing out both as they were part of the same project and putting that in a projects section I'm drafting as well.

jaffyjaffy fucked around with this message at 21:33 on Nov 15, 2015

Star War Sex Parrot
Oct 2, 2003

jaffyjaffy posted:

edit: I'm looking at a few other formats and they drop the objective section entirely. Is that only recommended with more real work experience?
Objectives are worthless. Most people can't write one of any real significance, and it's redundant with a cover letter. At best you don't embarrass yourself, at worst you waste space on your resume (aka time of the person skimming it) or completely misrepresent yourself.

Don't do an Objective. Same with the "references available on request" stuff.

Edit: these are covered in the OP of the resume thread, which you should definitely read

http://forums.somethingawful.com/showthread.php?threadid=3553582

Star War Sex Parrot fucked around with this message at 06:58 on Nov 15, 2015

Hadlock
Nov 9, 2004

I don't think anyone has ever requested a reference. I stopped putting references on my resume, that's one free line you're burning up on a formality that you could stuff full of A- or B+ -grade buzzwords, skills, projects etc. instead.

Tezzeract
Dec 25, 2007

Think I took a wrong turn...

TheOtherContraGuy posted:

I read The Master Algorithm by Pedro Domingos and it's got me obsessed with machine learning and data science. I would love to help push the fields forward but I have a suspicion that I'll need at least a master's degree before anyone would seriously consider for that type of position. Has anyone here tried doing an online master's while working full time? Would it be worth pursuing a formal computer science degree? How can I make myself a more attractive candidate?

Like what other folks said, a PhD is your best bet for pushing the field forward and it is generally seen as the route to get those really interesting research oriented ML jobs.

Kaggle is probably applicable to a more data analyst/statistician style day to day job (which is part of data science) - finding what combinations of the pre-existing tools gives best predictive fit, etc. Data engineer is the infrastructure development oriented role where you work on the underlying technology and build up the API for analysts.

Phds/professors get to work on the fuzzier/higher order problems where you don't know if there is even an answer. One interesting talk I've seen was on how can you predict if a Twitter post goes viral. You see researchers decompose the problem in different ways depending on what you want to know. There's the NLP problem of what word characteristics form an interesting post to the CS/stochastic problem of expected time of a super viral post.

mobby_6kl
Aug 9, 2009

by Fluffdaddy
^^^
That's definitely something I'd prefer to work on rather than code monkey level stuff, but doing a PhD is... questionable



So through a colleague's former classmate I got offered to work on a C++ project:

quote:

The work involves modifying a FileMaker plugin and daemon to use OmniORB instead of DCE RPC for 32/64bit multiplatform compatibility. Apparently the IDL definition file can be converted with MIDL.
I know some C++, STL, and could even answer some trivia questions about move semantics and what not. The problem is, prior to seeing this description, I've never heard of OmniORB or DCE, IDL or MIDL stuff, and have zero experience with RPC in general though I'm aware of it.

So my question isn't technical, I'm sure I'll figure it out eventually. I'd like to do this project to get more experience with something above hobby-level stuff while getting paid for it, with eventually landing an interesting C++ job. So could I approach this? Should I explain this to the guy? Or just say "I'll do it, the rate is $100/hr" and then improvise? Not do it at all?

ExcessBLarg!
Sep 1, 2001
I wouldn't do a PhD unless you like to write papers and proposals more than you like to write code.

mobby_6kl posted:

So through a colleague's former classmate I got offered to work on a C++ project:
So it's not just RPC. It's converting a codebase that uses a seriously old RPC mechanism to one that's slightly less old. To do a decent job of it you'd want to already have experience with CORBA (i.e., have worked on a project that used CORBA and were already familiar with its idioms). Otherwise you may be learning to deal with two 25 year old technologies (DCE and CORBA) at the same time.

Plus, there's a very good chance the plugin was written in the 90s and predates ISO C++ and possibly STL, let alone C++11/14 and all its modern idioms. The experience you'd get, aside from general distributed systems experience, won't really apply outside of dealing with other 20+ year old codebases.

Honestly I think your cousin's former roommate should find some old CORBA veteran to do the job and you should concentrate on modern technologies.

ExcessBLarg! fucked around with this message at 17:41 on Nov 17, 2015

SurgicalOntologist
Jun 17, 2004

I'm about a year from finishing a Ph.D (Psychology). Although I am still pursuing academic jobs, I am also tempted by industry. Specifically I would be interested in the "data science" side of things (would prefer more a title closer to "analyst" than "engineer" but I'd like to think I'm qualified for both) as I seem to enjoy developing computing tools for science/statistics as much as the actual science itself.

But anyways, my question isn't about my qualifications. What I'm wondering is: when should I start applying for jobs? I don't even know for sure when I'll be done, I'd say 75% chance during fall semester 2016, 25% chance spring semester 2017. However the academic cycle takes a long time so I am already having discussions about potential post-docs. This is likely to involve applying for grants, etc. that would require me to commit to the opportunity. However I don't want to commit without knowing all my options. Is it too soon to apply for an industry job if the start date couldn't be for at least year?

mobby_6kl
Aug 9, 2009

by Fluffdaddy

ExcessBLarg! posted:

Honestly I think your cousin's former roommate should find some old CORBA veteran to do the job and you should concentrate on modern technologies.

Thanks, this is exactly the kind of feedback I was looking for. Maybe the question was more C++ specific than I realized. Anyway, I'll tell him I'm not his guy unless I guess he's really desperate/rich I guess.

KernelSlanders
May 27, 2013

Rogue operating systems on occasion spread lies and rumors about me.

SurgicalOntologist posted:

I'm about a year from finishing a Ph.D (Psychology). Although I am still pursuing academic jobs, I am also tempted by industry. Specifically I would be interested in the "data science" side of things (would prefer more a title closer to "analyst" than "engineer" but I'd like to think I'm qualified for both) as I seem to enjoy developing computing tools for science/statistics as much as the actual science itself.

But anyways, my question isn't about my qualifications. What I'm wondering is: when should I start applying for jobs? I don't even know for sure when I'll be done, I'd say 75% chance during fall semester 2016, 25% chance spring semester 2017. However the academic cycle takes a long time so I am already having discussions about potential post-docs. This is likely to involve applying for grants, etc. that would require me to commit to the opportunity. However I don't want to commit without knowing all my options. Is it too soon to apply for an industry job if the start date couldn't be for at least year?

The initial transition out of academia is tough, especially if your PhD isn't in an engineering discipline. I did it a year or so ago (from Neuroscience) and I've been doing what I can to help others behind me. I would recommend you start looking about a year ahead of time. Data science is a big field and it takes a while to figure out where all the niches are and which one you'd fit into. You won't be actively applying until a few months before you graduate. Sadly, job hunting isn't like applying to grad school. You don't get to apply to a bunch, see who accepts you, and then pick the one you like most. You have to take interviews/offers as they come and either accept and be done with the job search or pass and keep looking.

From your posts in the python and scientific computing threads I think you've got a good foundation. Also, if you're in the NYC area shoot me a PM.

SurgicalOntologist
Jun 17, 2004

KernelSlanders posted:

The initial transition out of academia is tough, especially if your PhD isn't in an engineering discipline. I did it a year or so ago (from Neuroscience) and I've been doing what I can to help others behind me. I would recommend you start looking about a year ahead of time. Data science is a big field and it takes a while to figure out where all the niches are and which one you'd fit into. You won't be actively applying until a few months before you graduate. Sadly, job hunting isn't like applying to grad school. You don't get to apply to a bunch, see who accepts you, and then pick the one you like most. You have to take interviews/offers as they come and either accept and be done with the job search or pass and keep looking.

From your posts in the python and scientific computing threads I think you've got a good foundation. Also, if you're in the NYC area shoot me a PM.

Thanks, appreciate the advice. What should I be doing up until I'm actually applying? Obviously, practicing interview skills, studying, that kind of thing. But should I also be seeking informational interviews or something like that?

KernelSlanders
May 27, 2013

Rogue operating systems on occasion spread lies and rumors about me.

SurgicalOntologist posted:

Thanks, appreciate the advice. What should I be doing up until I'm actually applying? Obviously, practicing interview skills, studying, that kind of thing. But should I also be seeking informational interviews or something like that?

Yeah, definitely line up lots of coffee meetings. Talk to as many people as you can. Brush up on both software engineering and statistics, whichever you've had less practice at lately. I'd also suggest studying a little business/marketing theory. It will help you in your later round interviews to be comfortable with jargon like margin, churn, CTR, etc. Those are the types of things you may have to design experiments to optimize. I think the most important thing is having a good understanding of how to explain your accomplishments in a interview/resume friendly way, which can differ significantly from how you would describe them to other academics. Focus on outcomes. Methods are only necessary if needed to demonstrate a particular skill (like Python).

sexual rickshaw
Jul 17, 2001

I AM A SOCIALIST COMMUNIST MARXIST FASCIST FREEDOM-HATING NAZI LIBERAL CZAR!
I've done some web development in the past, both part-time, on contract and freelance, but I'm still somewhat of a junior developer and I've been looking for something more stable - here's my anonymous resume - any suggestions on things I should change and comment on? How should I be looking for jobs? I live in a major tech market, but all the jobs I'm finding are asking for 4-5 years of experience

Bognar
Aug 4, 2011

I am the queen of France
Hot Rope Guy

sexual rickshaw posted:

I live in a major tech market, but all the jobs I'm finding are asking for 4-5 years of experience

Apply anyway, the numbers are mostly bullshit.

Adbot
ADBOT LOVES YOU

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Bognar posted:

Apply anyway, the numbers are mostly bullshit.

What was the quote about "the requirements are like a kid's Christmas wish list?"

I've heard cases of a guy right out of college getting a senior position because literally nobody else applied for it. Worst case scenario is you send your resume in and they say "no" or just ignore you.

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