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
EAT THE EGGS RICOLA
May 29, 2008

Lyon posted:

What are some good open source projects that relative beginners could get involved in? I'd love to learn by contributing minor work to an open source project but finding projects I can contribute too seems difficult.

What kind of stuff do you do or want to do?

Adbot
ADBOT LOVES YOU

Cicero
Dec 17, 2003

Jumpjet, melta, jumpjet. Repeat for ten minutes or until victory is assured.

Lyon posted:

What are some good open source projects that relative beginners could get involved in? I'd love to learn by contributing minor work to an open source project but finding projects I can contribute too seems difficult.
Personally, I've come to believe that contributing to open source projects is usually a bad choice for developing experience as a beginner. Not because the experience wouldn't be valuable (it would be), but because the difficulty level would be too high.

My experience has been that diving into new large codebases, as a general rule, is very confusing. It's generally more confusing to newbies, who haven't yet become comfortable with working in a codebase that is mostly a black box to their eyes (as is basically always the case in large codebases). Add on to that that in an open-source project, you won't have more senior co-workers that you can physically go to to get answers to your many questions about how things work, and that sounds like a recipe for disaster to me. Well ok, not disaster, since there aren't any real consequences for failing except wasted time, but I don't think most newbie coders would get very far.

My own recommendation would be to work on a personal project of significant size first. If you haven't written anything that's at least thousands of lines of code, that would be a valuable experience in and of itself.

Alternatively, maybe contribute to the Awful apps for iOS or Android? I think they each have a thread as a jumping in point.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
In the US at least, a company that dished out dirt on your previous employment would be asking for a defamation lawsuit. This is why public representatives are universally instructed not to comment on personnel issues, and why HR reps only confirm your employment and whether you'd be eligible again at the same company.

HondaCivet posted:

I had to meet with my boss and be scolded and sign something saying that I got told and that I knew the policies and poo poo. I work for a very corporate bureaucratic place.
If you were fired from a job, you can assume that the company will say that you are not eligible for future employment if they are asked. It's a bad situation to be in.

If you left without being fired, then bureaucracy can work in your favor because any HR rep that future employers contact for verification will not care about your boss's bitter feelings, only the facts as they relate to corporate policy.

EAT THE EGGS RICOLA
May 29, 2008

Strong Sauce posted:

But how would you ever know?

If I was convinced that a previous employer was defaming me to new potential employers, I would have someone call them and ask for a reference.

kitten smoothie
Dec 29, 2001

Some companies even outsource the verification so there is no way they could inadvertently divulge information that would expose them to a defamation situation, as well as to just avoid having to waste HR employees' time doing verifications.

Pollyanna
Mar 5, 2005

Milk's on them.


Cicero posted:

Personally, I've come to believe that contributing to open source projects is usually a bad choice for developing experience as a beginner. Not because the experience wouldn't be valuable (it would be), but because the difficulty level would be too high.

My experience has been that diving into new large codebases, as a general rule, is very confusing. It's generally more confusing to newbies, who haven't yet become comfortable with working in a codebase that is mostly a black box to their eyes (as is basically always the case in large codebases). Add on to that that in an open-source project, you won't have more senior co-workers that you can physically go to to get answers to your many questions about how things work, and that sounds like a recipe for disaster to me. Well ok, not disaster, since there aren't any real consequences for failing except wasted time, but I don't think most newbie coders would get very far.

My own recommendation would be to work on a personal project of significant size first. If you haven't written anything that's at least thousands of lines of code, that would be a valuable experience in and of itself.

Alternatively, maybe contribute to the Awful apps for iOS or Android? I think they each have a thread as a jumping in point.

This was a bit ago but - you may have responded to some of my questions before, and I just forgot you had answered already. :v: I have a bad memory.

Contributing to open source projects seems a bit difficult as a beginner project to me because the projects are most worthwhile to contribute to are large and widely used, and they tend to have a lot of code, involve a lot of CS concepts you don't know about yet, and tend to have competition from others looking to contribute (e.g. there's no guarantee of a mentor or supervisor). Plus, like you said, it's just so huge.

Then there's personal projects - the question is what? People always say "write a program that fixes something about your computer you don't like", but in many cases tools already exist for whatever you need. Trying to address a frustrating issue with a program you use is either daunting due to its complexity, or impossible because you don't have the source code.

Maybe a piece specifically regarding how to tackle the whole "make something that makes your life easier" problem would help...?

EAT THE EGGS RICOLA
May 29, 2008

Pollyanna posted:

This was a bit ago but - you may have responded to some of my questions before, and I just forgot you had answered already. :v: I have a bad memory.

Contributing to open source projects seems a bit difficult as a beginner project to me because the projects are most worthwhile to contribute to are large and widely used, and they tend to have a lot of code, involve a lot of CS concepts you don't know about yet, and tend to have competition from others looking to contribute (e.g. there's no guarantee of a mentor or supervisor). Plus, like you said, it's just so huge.

Then there's personal projects - the question is what? People always say "write a program that fixes something about your computer you don't like", but in many cases tools already exist for whatever you need. Trying to address a frustrating issue with a program you use is either daunting due to its complexity, or impossible because you don't have the source code.

Maybe a piece specifically regarding how to tackle the whole "make something that makes your life easier" problem would help...?

Find some super cool information/data that exists in a disorganized or unstructured format and get it into a database with a web front end that makes it easy to access and visualize. You will learn a million things doing this.

aBagorn
Aug 26, 2004

EAT THE EGGS RICOLA posted:

Find some super cool information/data that exists in a disorganized or unstructured format and get it into a database with a web front end that makes it easy to access and visualize. You will learn a million things doing this.

This x1000.

Just messing around with NFL.com's gamecenter data has proven to be monumentally worthwhile.

I actually think I'm going to use it as my "learn how to manipulate data in other languages" primer, and possibly throw up some basic APIs in a few languages on GitHub for people to trash and write better. So I can learn from them.

HondaCivet
Oct 16, 2005

And then it falls
And then I fall
And then I know


Gazpacho posted:

In the US at least, a company that dished out dirt on your previous employment would be asking for a defamation lawsuit. This is why public representatives are universally instructed not to comment on personnel issues, and why HR reps only confirm your employment and whether you'd be eligible again at the same company.

If you were fired from a job, you can assume that the company will say that you are not eligible for future employment if they are asked. It's a bad situation to be in.

If you left without being fired, then bureaucracy can work in your favor because any HR rep that future employers contact for verification will not care about your boss's bitter feelings, only the facts as they relate to corporate policy.

This has me a little worried because part of my "discipline" is that I can't apply to other jobs in the company for like 2 years. I'm not sure if that's the same thing as being ineligible for rehire? I hope not or I'd be kind of screwed. Hopefully no one actually asks I guess?

It looks like my company does outsource the work verification thing though so maybe I'm safe?

shrughes
Oct 11, 2008

(call/cc call/cc)

Cicero posted:

Personally, I've come to believe that contributing to open source projects is usually a bad choice for developing experience as a beginner. Not because the experience wouldn't be valuable (it would be), but because the difficulty level would be too high.

I agree. My one contribution to an existing open source project before leaving college was only possible because it was on a very nascent project. I believe it was before the 0.1 release, definitely 0.2, on a project designed to be minimalist. My other open source thing that seemed "real" was a library re-built from the ground up.

On the other hand, contributing to a large existing project would definitely be a learning experience. But maybe an unnecessarily hard one. It's kind of a given that a fresh college graduate is going to have some ramp-up time in that aspect.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

HondaCivet posted:

This has me a little worried because part of my "discipline" is that I can't apply to other jobs in the company for like 2 years. I'm not sure if that's the same thing as being ineligible for rehire?
Sounds bad, but you'd have to check the terms of the agreement as to whether they promised not to say that you are ineligible.

For future reference, once you're terminated from a company, their problems are no longer your problems and you don't have to sign anything for their sake.

Lyon
Apr 17, 2003

EAT THE EGGS RICOLA posted:

What kind of stuff do you do or want to do?

I have no idea. The company I work for (in a non development role) produces a web application in Java so I kind of want to extend my skills in that general direction. I want to get a better understanding of the technologies in general, not necessarily Java, so I'm working in Python and building some web applications in Django.

I want to learn more about web services as well, using them but also providing an API and how all of that fun stuff works I guess.

aBagorn posted:

This x1000.

Just messing around with NFL.com's gamecenter data has proven to be monumentally worthwhile.

I actually think I'm going to use it as my "learn how to manipulate data in other languages" primer, and possibly throw up some basic APIs in a few languages on GitHub for people to trash and write better. So I can learn from them.

Are you scraping or does NFL.com have some sort of API? I'm currently writing a scraper for ESPN's Fantasy Football section so I can automate setting my lineup and putting in waiver requests. I can currently scrape all the stats that show up on the available players page and for my (well any) team but I haven't gotten into scraping an individual player's stats for the entire season. I would really like to do this but scraping all those data points for hundreds of players seems like it would be CPU intensive so I'm hoping there is an easier way.

I need to improve my xpath/scraping as right now I have the jankiest for loop, maybe I'll post it in coding horrors later.

Lyon fucked around with this message at 01:31 on Nov 16, 2013

aBagorn
Aug 26, 2004

Lyon posted:

Are you scraping or does NFL.com have some sort of API? I'm currently writing a scraper for ESPN's Fantasy Football section so I can automate setting my lineup and putting in waiver requests. I can currently scrape all the stats that show up on the available players page and for my (well any) team but I haven't gotten into scraping an individual player's stats for the entire season. I would really like to do this but scraping all those data points for hundreds of players seems like it would be CPU intensive so I'm hoping there is an easier way.

I need to improve my xpath/scraping as right now I have the jankiest for loop, maybe I'll post it in coding horrors later.

I'm scraping.

I'd like to see how you're going through ESPN.com. NFL.com keeps all their game data in JSON if you know where to look so it's as simple as running the scraper every Tuesday for the games from the previous weeks and parsing the JSON

Lyon
Apr 17, 2003

aBagorn posted:

I'm scraping.

I'd like to see how you're going through ESPN.com. NFL.com keeps all their game data in JSON if you know where to look so it's as simple as running the scraper every Tuesday for the games from the previous weeks and parsing the JSON

I am scraping with requests and lxml... I looked for a JSON feed for the team and available player data but was unable to find one, I may just have missed it though. That would make my life so much easier if there was a feed.

Hmm maybe I can just grab the NFL's feed and use that in combination with my scraping.

JawnV6
Jul 4, 2004

So hot ...

Lyon posted:

Hmm maybe I can just grab the NFL's feed and use that in combination with my scraping.

Nah, you don't want to re-implement your league's scoring rules. Scrape from the Players tab.

Lyon
Apr 17, 2003

JawnV6 posted:

Nah, you don't want to re-implement your league's scoring rules. Scrape from the Players tab.

Yeah I'm still going to scrape my team and the players tab my way, but I want all the data on all the players to try and compute a more advanced ranking than espn does (this might be futile but whatever).

Tomorrow or Sunday I'm going to write the code to add and drop players and set my lineup. Once I'm done that I need to clean up the scraping, it is slow and ugly. I think at that point it will be fully functional and maybe I'll post it to GitHub so you guys can fix it for me hah.

aBagorn
Aug 26, 2004
To grab the NFL JSON feeds simply utilize this url structure

http://www.nfl.com/liveupdate/game-center/{gamekey}/{gamekey}_gtd.json

The gamekey is all digits date+gameID. Date is YYYYMMDD and thr gameID is just a double digit identifier that starts at 00 and increments up to the last game played on a given game day.

For example last night's game would be:

http://www.nfl.com/liveupdate/game-center/2013111400/2013111400_gtd.json

aBagorn fucked around with this message at 05:10 on Nov 16, 2013

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

2banks1swap.avi posted:

Has this happened?

Why on earth would it? "We'd love to hire you, but because you won't discuss salary during the interview, you're out"

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Pollyanna posted:

Then there's personal projects - the question is what? People always say "write a program that fixes something about your computer you don't like", but in many cases tools already exist for whatever you need. Trying to address a frustrating issue with a program you use is either daunting due to its complexity, or impossible because you don't have the source code.

Maybe a piece specifically regarding how to tackle the whole "make something that makes your life easier" problem would help...?

From your posts across CoC and YOSPOS, you seem to have a serious problem with not following through on things. At this point, all that matters is that you pick a problem interesting to you and you actually get started on solving it.

Been solved already? Doesn't matter, this is a learning experience. Hella complex? Doesn't matter, it'll teach you how to decompose problems. Proprietary source? Well that might matter, but it might also be time to learn some APIs or tricks for intercepting user input/draw calls/etc.

I will say that I'm not a fan of "fix something about your computer that you don't like" though. Programming's tool, and restricting yourself to solving only computer problems seems like a waste. If you've got domain experience somewhere else - or even if haven't but you'd like to - draw on that. I seem to remember something about bioinformatics? Great, write something for fetching/generating DNA sequences and then something for aligning them. That's a hard problem and a solved problem, but it's still an interesting problem.

e: Just for kicks: there are many solutions in the world without good explanations of how the solver works given different inputs. If a problem has already been solved but there isn't an interactive tool that steps you through solution and its behaviour, that there's a problem in itself.

Personally I started programming six months ago and I'm currently 5k lines deep in a modular, interactive global circulation model. It's slow as balls and frankly I've got no idea what I'm doing, but the amount it's taught me is staggering.

coffeetable fucked around with this message at 09:28 on Nov 16, 2013

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Cicero posted:

Personally, I've come to believe that contributing to open source projects is usually a bad choice for developing experience as a beginner. Not because the experience wouldn't be valuable (it would be), but because the difficulty level would be too high.

My experience has been that diving into new large codebases, as a general rule, is very confusing. It's generally more confusing to newbies, who haven't yet become comfortable with working in a codebase that is mostly a black box to their eyes (as is basically always the case in large codebases). Add on to that that in an open-source project, you won't have more senior co-workers that you can physically go to to get answers to your many questions about how things work, and that sounds like a recipe for disaster to me. Well ok, not disaster, since there aren't any real consequences for failing except wasted time, but I don't think most newbie coders would get very far.

My own recommendation would be to work on a personal project of significant size first. If you haven't written anything that's at least thousands of lines of code, that would be a valuable experience in and of itself.

Alternatively, maybe contribute to the Awful apps for iOS or Android? I think they each have a thread as a jumping in point.

In the open-source project I work on, we have an active outreach program, and a mentor program if you're new. A lot of students are intimidated by the scope of the project at first, but then once they have a task to do, they're able to focus quite well when collaborating with a mentor.

And if you're contributing to open source, don't be afraid to ask too many questions. I've never felt like anybody was "stupid" or "annoying" by asking millions of questions, and sometimes, they even stump me and I learn quite a bit by researching as well.

Belgarath
Feb 21, 2003
I had an interview for a new job yesterday. I'd already got through a telephone interview, and I had a two-hour face-to-face interview, with a technical test at the end. The interview portion was fairly technical and took up most of the time. The test at the end was fairly easy I thought, design a basic database structure for a pizza ordering app, and write some lovely Linq in a C# console app.

Rescue Toaster
Mar 13, 2003
Well I got my first real offer coming out of school (embedded C), and I'm going to get a second one soon from the place I have an internship at now. At least by glassdoor it's pretty much right on the money for 1-3 years experience there. (I have about 2-3 years worth of pretty good internships.)

But I know I have an extremely strong background in electronics and embedded architecture compared to most software engineer types, especially right out of school, and I like to think I could pull something better than just average.

All the negotiation at this point would be through an HR person on the phone. Do I counter-offer? Mention the other offer (not amounts specifically) and just flatly ask them if there's flexibility? I have no idea how much the HR person would know about my skills or if it's them or the department that sets budget limits. I'm sure the HR person is probably operating under something like, get them for as cheap as possible, with limit of $X. I also, very stupidly, when filling out the application originally checked one of those 10K ranges (where it's like 30-40k, 40-50k, etc..etc..) but their offer is near the lower end of my range so I could certainly counter with something near the top end of it without seeming like I was lying originally.

shrughes
Oct 11, 2008

(call/cc call/cc)
What's your location, what's the offer, what's the actual range you gave? Why would "30-40K" even be on the sheet of ranges? Don't worry about going out of that range or "lying", it's not lying, you changed your mind.

Good Will Hrunting
Oct 8, 2012

I changed my mind.
I'm not sorry.

Suspicious Dish posted:

In the open-source project I work on, we have an active outreach program, and a mentor program if you're new. A lot of students are intimidated by the scope of the project at first, but then once they have a task to do, they're able to focus quite well when collaborating with a mentor.

Dang, this seems really cool. I just picked up Android cause I've been interested in making an app (it's football related for all you fellow sports nerds in here) but I might give this a look in the future.

NovemberMike
Dec 28, 2008

Rescue Toaster posted:

Well I got my first real offer coming out of school (embedded C), and I'm going to get a second one soon from the place I have an internship at now. At least by glassdoor it's pretty much right on the money for 1-3 years experience there. (I have about 2-3 years worth of pretty good internships.)

But I know I have an extremely strong background in electronics and embedded architecture compared to most software engineer types, especially right out of school, and I like to think I could pull something better than just average.

All the negotiation at this point would be through an HR person on the phone. Do I counter-offer? Mention the other offer (not amounts specifically) and just flatly ask them if there's flexibility? I have no idea how much the HR person would know about my skills or if it's them or the department that sets budget limits. I'm sure the HR person is probably operating under something like, get them for as cheap as possible, with limit of $X. I also, very stupidly, when filling out the application originally checked one of those 10K ranges (where it's like 30-40k, 40-50k, etc..etc..) but their offer is near the lower end of my range so I could certainly counter with something near the top end of it without seeming like I was lying originally.

Just tell them "I didn't realize how much programmers are getting paid right now, this is my actual preferred range".

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

NovemberMike posted:

Just tell them "I didn't realize how much programmers are getting paid right now, this is my actual preferred range".

Also keep in mind that you need to subtract about 20k from your salary for liquor expenses if you work in enterprise software.

Fuck them
Jan 21, 2011

and their bullshit
:yotj:

NovemberMike posted:

Just tell them "I didn't realize how much programmers are getting paid right now, this is my actual preferred range".

If I get a chance to drop that line to renegotiate it's going to feel very good.

hedgecore
May 2, 2004
Had a request for some tips on front-end web developer interviews... I am a front-end dev myself, and I handle both phone screenings and in-person interviews for our front-end team for a startup in NYC. Competition is high for both candidates and companies here. I cannot guarantee any other interviewer in the world takes an identical approach, so YMMV. And if you want a basic guideline of what you should do for all jobs, read + obey: http://fosslien.com/job/

Primer: we're a Backbone.js shop, powering a non-trivial web application. We do NOT just knock out one-off HTML/CSS/jQuery landing sites or 5 page CMS implementations, so if that's what you're looking for, this is more in-depth than what probably pertains to you. We have a lot of front-end work to be done, so we seek candidates with varying levels of experience. As you would expect, having more experience with modern front-end development tools will result in you being considered for a higher level position. But a lot of those tools are new, and the demands of the web are constantly changing, so having some proven track record of being able to learn and keep up is certainly a next best substitute.

So I handle phone screenings and in-person interviews. I'm going to focus on phone screenings first - if this is at all useful, I will be happy to follow up with some in-person interview tips.

Phone screenings:
Hi! This is often our first exchange (you've probably only dealt with HR this point, or even less, your recruiter has). Please be ready for the phone call (I schedule ~30 minutes for mine). I will not call before the time we agreed upon. If I am 5 minutes late for our call, I'm sorry. I can guarantee you something came up. I'm not testing you or trying to waste your time. If something comes up and you need to re-schedule, it's fine. Just contact HR (or your recruiter) immediately. Keep it succinct. I won't think twice about re-scheduling unless a) it keeps happening, or b) you don't tell us.

I have a few goals here and very few deal breakers. I want to feel good about most or all of these categories after our discussion. If I do, you'll be coming in for face-to-face interviews.
1) You are able to hold a conversation. This is not some ploy to target the socially inept. You're going to need to communicate well with technical AND non-technical people - other developers, designers, your product managers, your bosses, and maybe sometimes even clients. If you can't do so in a productive, polite, and appropriate manner, then it's just not going to work out.
a) Stand up while you are on the phone. You will project better and sound more confident.
b) If you just want to code and don't want to speak with non-developers... well, that's fine, but be aware of a company's culture when you are applying. Find yourself a more traditional employer where you'll only have to speak to your boss and maybe whoever sits next to you. Don't find an Agile shop. These jobs certainly do exist, just in a lower capacity. You can keep looking around all you like, but it's probably better to just work on your social skills. Meetups are a great way to branch out and socialize while in your familiar territory of development.

2) You are the person who is represented on the resume in front of me. I will ask you about your most recent work experience. Yes, it's on the page in front of me. No, I do not want you to just read it back to me. (Oh yeah, have your resume in front of you.) I want to make sure you are comfortable discussing your job and your team structure and I want to ask you questions about things like which team memembers you work with. I also didn't read your cover letter where you probably already did this - I'm not lazy, HR doesn't distribute it. (Oh yeah, any tech experience or buzzword on your resume is fair game for questioning).

3) You generally know what you're talking about. I'll request code samples / a link to your Github account later to find out if your code sucks. I trust our HR department with screenings up to this point. At this point I'm more interested in hearing you discuss web development on a higher level. I'll ask what your level of web dev experience is, and what your familiarity is with HTML, CSS, and JS. If you make it to an in-person interview, the questions will be considerably more in-depth.

3a) HTML: I really don't want to have to waste your time asking you questions about HTML. It's implied that you have a seriously standard grasp of it and understand writing valid and semantically correct HTML. I will ask you about HTML5 - which of the new features you have used. Naming the new tags is a good sign. Mentioning the canvas element is a good sign. Having used localstorage is a very good sign (bonus points if you can explain how to store a JS object in localstorage). I will ask you if you prefer divs or tables for layout - saying "tables" is a deal breaker. I will find out if the rest of your markup sucks if and when I review your portfolio.
3b) CSS: I also expect you to have a very good understanding of CSS. I will ask if you are comfortable with any CSS3 properties and know what a vendor prefix is. I will more importantly ask if you have ever used a CSS preprocessor, if you understand the benefits of using one, and if you can tell me what a mixin is. (We use SASS, so this is a bonus). I will ask if you have any experience with coding responsive layouts. I may ask you how to make two divs appear on the same line if I suspect you don't know anything.
3c) JS: I will ask you are comfortable writing jQuery and then immediately ask if you are comfortable writing JS without jQuery. I will then go back and ask you if you are comfortable performing operations with jQuery such as caching selector results, binding to events, and your experience with $.ajax(). I will ask if you are comfortable working with JSON. I will ask how you feel about wrapping your scripts in anonymous functions. I will ask if you lint your code. I will also ask if you've used libraries we use - examples include Require.JS, MVC/MV* frameworks like Angular or Backbone, underscore/lodash etc. I will ask if you are playing with anything new that has caught your eye - node.js and d3.js are really good answers to this question, but even having an answer is a really good sign from my point of view.
3d) If I'm familiar with a framework or library or technique listed, I may ask you something related to that. For instance, if you list that you code responsive layouts, I may ask you what dictates your breakpoints. Do you let the content determine logical breakpoints? Do you target specific resolutions? If so, why?
(Good answer: this site is always demo'd at conventions on iPads / our designs require a minimum width)
Bad answer: Because no one reads sites on their phones / because iPads are better than Android tablets / etc.)

5) You know how to solve problems. I'll ask you how you handle higher-level issues... including:
Browser testing?
(What browsers are you comfortable developing for?)
(How far back in IE-land are you equipped to handle?)
(Do you believe in progressive enhancement? Do you have any tools for making this easier on yourself? Modernizr is a good answer.)

JavaScript errors?
(Do you use Chrome devtools/Firebug/etc? Do you know how to console.log, set breakpoints, etc?)

Slow page load?
(What do you check for? Good answers include: monitoring for slow network requests, excess/redundant network requests, concatenating and minifying js and css into single requests, correctly compressing images, etc. Bonus points for namedropping Big O notation, but even just saying something like "inefficient for loops" is much better than nothing.

Version control?
Git is ideal, but SVN is better than nothing.

5a) If I'm unconvinced at this point you are able to keep up, I may ask you how you keep yourself strong as a developer. Good answers include (and only if they're truthful): working on side or passion projects, contributing to open source repos, reading Smashing Magazine / other relevant blogs, trying to teach yourself a new language, lurking GitHub's trending repositories, etc. Bad answers include: not having an answer to this question.

6) If you know what you want in your next position - everything from languages to responsibilities to learning potential to team structure to stability qualifies as a good answer. Not having anything to say here is a bad sign. If you gave me short answers the whole way through, have soooomething for me here. If it sounds like you don't give a drat, well... you won't be coming in for an interview.

7) Lastly, I will ask you if you have any questions for me about working here. If we have had a full conversation at this point, I won't think twice if you don't have anything to ask (you can even say something like "we actually covered every thing I had in mind").

Depending on how the interview is going, how wordy your answers are, and what I feel is appropriate, I'll spend more / less time on each section.

Code samples:
I want to find out if your code sucks or not before we bring you in for an interview. Also, the capacity to which it sucks is crucial - sometimes you just need a mentor to guide you to best-practice land, and sometimes you need a ton of work and we can't spend forever curating you. I'll keep it mostly positive - here are things I like to see and not see... just try to hit as many +s as possible (and no -s).

+ If I can actually run the script / open the page, that's a big plus
+ Validating HTML / correct usage of HTML tags
+ HTML5 tags used appropriately
+ Logically grouped CSS properties
+ CSS3 / progressive enhancement
+ SASS/LESS with mixins, variables
+ Consistent naming/capitalization in filenames and in variable/function/class declarations
+ Nicely formatted code
+ === instead of ==
+ Useful in-line comments - not explaining what code is doing (except for edge cases), but why it is being run
+ Anonymous function wrapping
+ "use strict";
+ Proper use of if/else vs switch/case
+ ['string', var, 'string'].join('') instead of string + var + string
+ Cached jQuery selectors
+ $.ajax() GET/POST
+ Error handling in $.ajax() requests
+ Good usage of underscore/lodash
+ _.each or $.each in place of generic for loops
- Inline CSS
- CSS declarations that are nested super deep
- Any JS errors at all seriously why would you submit this
- Big try / catch blocks
- Copy pasted code from the Internet (it's really obvious because the style never matches up)
- Typos
- Code that does not work / run

Generally I like to see at least two examples - one of a specific module or piece of functionality (JS based ideally), and one of a complete page template that shows me you can handle building a whole page correctly. I should be able to see this one in my browser.

Other gotchas:
If you keep mentioning something with any confidence, I reserve the right to ask you about it. If you keep saying MVC and I don't think you actually know what that stands for, I will ask you to define the acronym and give me a very brief summary of how each piece fits together. If you tell me you have a complete grasp on REST APIs and can't name any REST verbs besides GET and POST, I will groan.

Hope this helps someone out!

hedgecore fucked around with this message at 07:40 on Nov 18, 2013

HondaCivet
Oct 16, 2005

And then it falls
And then I fall
And then I know


hedgecore posted:

Hope this helps someone out!

Thanks, that's a pretty nice post. It's always good to hear from the other side of the table. I try to keep their position and (possible) mindset in mind when they're asking me stuff if only because it helps me feel less terrified.

shrughes
Oct 11, 2008

(call/cc call/cc)
Stand up for a phone screen? What kind of phone screen doesn't have the candidate writing code in an interactive online text editor writing actual code?

hedgecore posted:

Had a request for some tips on front-end web developer interviews... I am a front-end dev myself, and I handle both phone screenings and in-person interviews for our front-end team for a startup in NYC. Competition is high for both candidates and companies here. I cannot guarantee any other interviewer in the world takes an identical approach, so YMMV. And if you want a basic guideline of what you should do for all jobs, read + obey: http://fosslien.com/job/

Wow, I thought I'd never wear a suit for an interview but now I'm thinking white suit + gym shorts.

Also this is how you should answer the question "What is your greatest weakness": http://shrughes.com/p/my-greatest-weakness/

rsjr
Nov 2, 2002

yay for protoss being so simple that retards can win with it

That color scheme aaaaaa

pigdog
Apr 23, 2004

by Smythe

rsjr posted:

That color scheme aaaaaa

LaTeX :smugdog:

No Safe Word
Feb 26, 2005

shrughes posted:

Also this is how you should answer the question "What is your greatest weakness": http://shrughes.com/p/my-greatest-weakness/
Don't do this. It's a really lovely interview question anyway and you should just give one of the garbage throwaway answers because it's a garbage question, and then you should think about not really wanting to work somewhere that uses lovely interview questions. But you shouldn't shrughes it up and just make everyone uncomfortable.

THE PLATFORM MASTER
Jun 3, 2008

shrughes posted:

Also this is how you should answer the question "What is your greatest weakness":

quote:

:words:

tef posted:

Tell them you over think things.

Sarcophallus
Jun 12, 2011

by Lowtax

shrughes posted:

Stand up for a phone screen? What kind of phone screen doesn't have the candidate writing code in an interactive online text editor writing actual code?


Wow, I thought I'd never wear a suit for an interview but now I'm thinking white suit + gym shorts.

Also this is how you should answer the question "What is your greatest weakness": http://shrughes.com/p/my-greatest-weakness/

You may as well just tell them you're a sperglord outright and save everyone a bit of time.

a lovely poster
Aug 5, 2011

by Pipski

shrughes posted:

Also this is how you should answer the question "What is your greatest weakness": http://shrughes.com/p/my-greatest-weakness/

I hope you're referring to tef's comment at the end.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

shrughes posted:

Also this is how you should answer the question "What is your greatest weakness": http://shrughes.com/p/my-greatest-weakness/

Wowzers! You sure showed that imaginary reviewer! I'm sure he's so impressed that he's going to fire his entire staff and hire you instead, given your incredible talent for reasoning and common sense.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I mean, how can they not hire you! You're like a modern day Feynmann!

JawnV6
Jul 4, 2004

So hot ...

Sarcophallus posted:

You may as well just tell them you're a sperglord outright and save everyone a bit of time.

I'm trying to imagine what paucity of contact would allow for that to be an open question with srhughes and leave someone still wanting to ask the weakness question.

Adbot
ADBOT LOVES YOU

shrughes
Oct 11, 2008

(call/cc call/cc)
Sheesh people it's a joke.

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