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
Ape Fist
Feb 23, 2007

Nowadays, you can do anything that you want; anal, oral, fisting, but you need to be wearing gloves, condoms, protection.
As someone whose about to start a Jr Front End role, I didn't know what a denounce was until you mentioned it. Now that I've googled it, it makes perfect sense.

It really depends what you want from your Jr Dev, as said before. If you're looking for someone who is clearly a fully knowledgeable programmer but you just want to pay them a Jr wage, go nuts and don't hire them based on this. If you're actually looking to really teach someone and make an investment I'd be satisfied that, if they failed to write a denounce, at least they understood what it was and why it was important when you explained it.

I really wouldn't expect a "Very Jr Dev" to have anything more than a working knowledge of JS/DOM manipulation, etc, and obviously some programming concepts. Everything else can be taught.

Adbot
ADBOT LOVES YOU

Radical
Apr 6, 2011

Got laid off from my first job today. I was only there 6 months and keeping all the bonuses and such means I came out pretty ahead in terms of cash. The job was also making me super depressed so I'm pretty glad to be gone, but its still kinda an interesting feeling. Not super excited about looking for another job, but the fact I'm currently living in California sure makes it a lot easier than when I was in Canada.

teen phone cutie
Jun 18, 2012

last year i rewrote something awful from scratch because i hate myself
After looking up debounce, i get that it throttles the timing of a function and I guess a good use case would be for AJAX/Fetch requests??

As for going through it line-by-line, its taking me a bit of time to wrap my head around the logic.

And after looking it up, I have a script in mind that I just wrote that definitely needs debouncing built in. poo poo

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.

Grump posted:

After looking up debounce, i get that it throttles the timing of a function and I guess a good use case would be for AJAX/Fetch requests??

As for going through it line-by-line, its taking me a bit of time to wrap my head around the logic.

And after looking it up, I have a script in mind that I just wrote that definitely needs debouncing built in. poo poo

It can involve ajax requests, but generally it's used more for bugs along the lines of "wow, resizing this window performs like rear end." Any event that fires continually and triggers something really slow to occur can be a candidate for debouncing.

Volguus
Mar 3, 2009
Never heard of debounce - like function in my life. I can see it being useful, but I never used it, never seen it in any tutorial anywhere, and really never heard of it. I have no idea if I could whip up an implementation (going blind) in an interview. It is, however, perfect for someone who really loves the front-end, lives and breathes javascript and has written 100 libraries that are featured in the npm repository. Someone who, when he/she has a bad day can destroy the builds of half the planet.

For anyone else, I'd say ... meh ...

MrMoo
Sep 14, 2000

debounce is critical for UI scrolling and expensive operations, pretty much of no value everywhere else. It's a specialised form of throttling.

Pronounced
Aug 18, 2013
Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?

Vincent Valentine
Feb 28, 2006

Murdertime

Thanks for the responses everyone, it's helpful. The entire point of this was to relieve nerves and make it easier to approach than something like whiteboarding. Whiteboarding requires someone to write actual code, whereas this was to give them code and just have them talk about it. Still has them explain their thought process, still has them logically walk through a problem, but no nerves of "am I writing the right code" or anything like that. If this many people believe that it's probably not a good call, that's pretty telling.

To be clear, the idea was going to be explaining the concept behind debounce then providing them with a function, something like this:
code:
const debounce = (func, delay) => {
  let inDebounce
  return function() {
    const context = this
    const args = arguments
    clearTimeout(inDebounce)
    inDebounce = setTimeout(() => func.apply(context, args), delay)
  }
}
Since a few of us don't seem to know what it would be used for, here's some examples:

One, firing a function on window resize. Every pixel of change would cause a function to fire if you are doing something with the elements in the page, for example resizing or re-positioning them. So if someone would drag their window from 400px height to 600px height, the function would fire 200 times. This causes slowdown because the browser typically can't process that fast. A second case would be to limit results filtering. This can be either Ajax based or just filtering a huge list of data on screen. If you're using an image hosting website and you have a few thousand favorite images, and you want all the ones tagged "Crocodiles", you don't want to run a function to regex tags for six thousand images ten times for each character they type in a search field, and you certainly don't want to make ten ajax requests.

In both of these cases, Debounce is a good solution. It keeps the function from actually completing until a set time has passed. So, after they've stopped resizing their window, or typing in a search field. Sure, not serving six thousand images to the cache to be filtered in the browser is probably also a good idea, but bear with me here.

On to the why I thought it would be good to use it:

Like I mentioned, we would provide the function and explain its use. From there, I would just like to hear an explanation of the concepts that cause it to do what it does on each line. I think that debounce is rather unique, in that it's only 7 lines of code, but each line has something interesting for you to talk about, even something as simple as the variable declarations. I would not punish anyone for missing any explanations at all, I'd mostly just be interested in how many they talk about and how they talk about it. If someone draws no attention to the weird gotcha with the arrow functions(two functions use it, but the anonymous function doesn't), I'm not going to hold that against them at all. But if someone does draw attention to it, it'd be a good bonus point for them.

I felt like talking to them personally line by line would be a bad call. If I ask them "Why are we re-assigning Arguments here, instead of passing it into func.apply directly?" and they couldn't answer, I would be worried they would feel like they failed, even if they did great in every other spot. By not asking and just letting them talk, I was hoping they would go into detail on things they were most comfortable with and gloss over bits they were less comfortable with. Ideally, it would give me insight into their knowledge depth and thought process, without intimidating them.

Of course, the lack of direction also gives some people nerves, but you can't win them all I guess.

I have to admit I'm a little surprised by the skepticism, I had thought that debounce would be a good barometer for a junior dev. It requires deep javascript knowledge, yes, but not outside of a junior devs capabilities(I thought). Just scoping, timeout(which I would be lenient with since it's infamously weird) and This knowledge. I guess my expectations are not aligned with other peoples, and that's entirely on me and something I'll have to re-evaluate.

Thanks guys, I appreciate the feedback.

Ape Fist
Feb 23, 2007

Nowadays, you can do anything that you want; anal, oral, fisting, but you need to be wearing gloves, condoms, protection.
Whiteboarding sucks because you definitely get the nerves like crazy and you have no idea whether or not the interviewer is looking for you to just have a general idea of something or whether or not they're actually going to be picky about your syntax. A way better method is to show code, ask them to walk through the code, and make a judgement about their ability from there.

As a Jr Dev I haven't memorized the syntax for doing almost half the stuff I'm going to need to do but for the most part I can read and understand what's going on.

I think there's a bunch of variables in how you should view your Jr devs. On one hand if you live in a "Silicon City" where there's loads of talent floating around then by all means be picky, but if your office is out in the sticks you've really got to lower the bar.

It's also important, I guess, for companies to get that the skills they're looking for are hugely in demand right now and that they're honestly going to have to be willing to take in bottom rung guys (like me) and train them hoping to make an investment.

Ape Fist fucked around with this message at 09:47 on Jan 19, 2018

Keetron
Sep 26, 2008

Check out my enormous testicles in my TFLC log!

Volguus posted:

Never heard of debounce - like function in my life. I can see it being useful, but I never used it, never seen it in any tutorial anywhere, and really never heard of it. I have no idea if I could whip up an implementation (going blind) in an interview. It is, however, perfect for someone who really loves the front-end, lives and breathes javascript and has written 100 libraries that are featured in the npm repository. Someone who, when he/she has a bad day can destroy the builds of half the planet.

For anyone else, I'd say ... meh ...

You are talking about left-pad or did this happen more often?

The one thing that struck me as odd was that npm restored left-pad without the author having a say in this. The other thing that stuck out was the lovely ecosystem npm is.

feedmegin
Jul 30, 2008

MrMoo posted:

debounce is critical for UI scrolling and expensive operations, pretty much of no value everywhere else. It's a specialised form of throttling.

Comes up all the time with hardware inputs in the embedded world.

Linear Zoetrope
Nov 28, 2011

A hero must cook
So to be clear, debounce doesn't quite throttle the rate a function is called (i.e. "this can only be called once every few seconds") so much as attempts to prevent repeated calls by making only the most recent call fire after we're reasonably sure whatever event keeps calling the function isn't going to keep happening?

Vincent Valentine
Feb 28, 2006

Murdertime

Linear Zoetrope posted:

So to be clear, debounce doesn't quite throttle the rate a function is called (i.e. "this can only be called once every few seconds") so much as attempts to prevent repeated calls by making only the most recent call fire after we're reasonably sure whatever event keeps calling the function isn't going to keep happening?

Correct. Throttle will ensure that a call will complete at most once every X seconds of continuous calling, guaranteeing execution at regular intervals. Debounce ensures that a call will complete at most once, when whatever is triggering the call stops triggering after X seconds. They're similar, but different tools for different situations. Throttle is great for infinite scroll populating content like twitter, imagine someone scrolling and each tick of the mousewheel causing a function call. You want it to actually execute once a second so they don't get browser slowdown, but do get constant content updates. Debounce is great for someone typing in a search bar. You only want to execute after the person is done typing, not on each letter.

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.

Linear Zoetrope posted:

So to be clear, debounce doesn't quite throttle the rate a function is called (i.e. "this can only be called once every few seconds") so much as attempts to prevent repeated calls by making only the most recent call fire after we're reasonably sure whatever event keeps calling the function isn't going to keep happening?

Throttling means limiting how often something can be called over a period of time (e.g. execute the function at most once every 200ms). Debouncing means "execute only if a certain amount of time has passed since the function was last invoked" (although the events can continue, there's nothing about waiting for the events to stop firing...) For an example, consider the address bar in Chrome, which tries to autocomplete searches as you type - you obviously don't want to update the list every single character the user types, especially if it's going to trigger a network request, but you do want it to update as you type.

Bruegels Fuckbooks fucked around with this message at 13:21 on Jan 19, 2018

Pollyanna
Mar 5, 2005

Milk's on them.


Pronounced posted:

Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?

As someone <= 3 years in the industry and as a dork that likes learning languages for some reason, COBOL sounds cool, but I would also be concerned about how it would reflect on my resume and for my long-term prospects...any seniors have insight on this?

downout
Jul 6, 2009

Pronounced posted:

Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?

Ive always heard that being a specialist in ancient languages is valuable for companies with critcal legacy apps. Honestly, i find this a bit hard to believe but pls correct me if wrong.

Jose Valasquez
Apr 8, 2005

A good COBOL developer is probably employable for the foreseeable future, but you also have to work with COBOL and ancient COBOL systems.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


And for the sort of companies who have ancient COBOL systems.

Space Gopher
Jul 31, 2006

BLITHERING IDIOT AND HARDCORE DURIAN APOLOGIST. LET ME TELL YOU WHY THIS SHIT DON'T STINK EVEN THOUGH WE ALL KNOW IT DOES BECAUSE I'M SUPER CULTURED.

Pronounced posted:

Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?

Yes, it's a legitimate concern, and I wouldn't take a job as a new COBOL dev. There are places that really need COBOL experience and are willing to pay good money for it, but that market is dying out; nobody is implementing big new systems in COBOL.

I'd also be more concerned about a below-market-value salary. Your starting salary tends to anchor itself throughout your career. Not only that, a place that underpays junior devs probably doesn't care all that much about professional development - they just want the cheapest work product they can get. Competitive pay isn't a guarantee that a company will treat you well, but deliberately shooting low is not a good sign.

downout posted:

Ive always heard that being a specialist in ancient languages is valuable for companies with critcal legacy apps. Honestly, i find this a bit hard to believe but pls correct me if wrong.

It can be incredibly valuable - but the people who are best equipped to take advantage of it are semi-retired old hands who can point to their 40 years of enterprise COBOL experience and demand the better part of a thousand bucks an hour to fix a critical bug.

The executives who have to sign off on this absolutely hate it, and you'll hear from them how COBOL development is a valuable skill, they really need junior people who can do it, and so on. But, the high-end market is incredibly thin, and everything below that is maintaining the worst kind of decades-old spaghetti code. It's not a great choice for people just out of college.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me
There are things that you are better off not knowing, given a finite mental capacity. I would put things like COBOL and VBScript in that category, unless you ACTUALLY want to be doing that on a long term basis. Which you shouldn't.

Volguus
Mar 3, 2009

Keetron posted:

You are talking about left-pad or did this happen more often?

The one thing that struck me as odd was that npm restored left-pad without the author having a say in this. The other thing that stuck out was the lovely ecosystem npm is.

It did just happen a week or so ago, some other snafu from the "professionals" at npm. Not the same cause as left-pad but the same effect. I am sure the year won't be over without yet another major issue coming up.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. Bertrand Russell

Regardless of npm, debounce is a thing present in GUI development for I'd guess decades.

Portland Sucks
Dec 21, 2004
༼ つ ◕_◕ ༽つ
At the very minimum if you are going to take a job supporting systems in a dead/dying language your compensation should reflect that you are essentially becoming a specialist in a rareified language. It seems like you're getting paid less than average to do something that is extremely niche. That's all kinds of messed up.

Volguus
Mar 3, 2009

Thermopyle posted:

Regardless of npm, debounce is a thing present in GUI development for I'd guess decades.

The concept yes, in any UI that reacts to changes of the data model (does a "push" instead of "poll"). I have personally used the concept in whatever UI desktop applications I have written over the years. Not in javascript and was not aware of it being called "debounce".

feedmegin
Jul 30, 2008

Portland Sucks posted:

At the very minimum if you are going to take a job supporting systems in a dead/dying language your compensation should reflect that you are essentially becoming a specialist in a rareified language. It seems like you're getting paid less than average to do something that is extremely niche. That's all kinds of messed up.

Also, if you are just starting to learn COBOL now, by the time you've done it enough to be an actual expert in it, that work for expert COBOL developers might finally have dried up as even the most legacy of systems get replaced. You don't want to become the equivalent of the guy who's an expert in Hollerith tabulators in 1970.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



feedmegin posted:

Also, if you are just starting to learn COBOL now, by the time you've done it enough to be an actual expert in it, that work for expert COBOL developers might finally have dried up as even the most legacy of systems get replaced. You don't want to become the equivalent of the guy who's an expert in Hollerith tabulators in 1970.

Counterpoint: IBM still makes and sells new systems designed to run it. New as in 'this years model'.

Jose Valasquez
Apr 8, 2005

I was a part of a project to replace a small part of a legacy COBOL system with Java. We spent a year and a few million dollars and in the end the project was scraped because we still weren't even close to having a replacement. That was for 1/100th of the overall COBOL system

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun
There are billions of lines of COBOL out there running daily. It is highly unlikely it's going away any time soon. And you still need experts to help port to other languages if someone ever decides to go that way.

Whether you want to work with legacy code using an ancient, obsolete language, on weird hardware, and likely not do much development of new stuff, that's what's important there. And because there are fewer and fewer COBOL programmers every year, eventually you'll be able to just say "give me all the money" and someone will.

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.

Ghost of Reagan Past posted:

There are billions of lines of COBOL out there running daily. It is highly unlikely it's going away any time soon. And you still need experts to help port to other languages if someone ever decides to go that way.

Whether you want to work with legacy code using an ancient, obsolete language, on weird hardware, and likely not do much development of new stuff, that's what's important there. And because there are fewer and fewer COBOL programmers every year, eventually you'll be able to just say "give me all the money" and someone will.

pronounced just graduated, so we're not talking about "any time soon". it's certainly possible there will still be a good supply of COBOL jobs in 35 years' time, but I wouldn't want to stake my future on it

Capri Sun Tzu
Oct 24, 2017

by Reene

Pronounced posted:

Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?
If you do end up taking this position, try and work on some side projects or something and aggressively look for other opportunities. Being a niche systems expert is something that might happen naturally towards the end of your career but absolutely not something you should aim for at the beginning.

JawnV6
Jul 4, 2004

So hot ...

feedmegin posted:

Comes up all the time with hardware inputs in the embedded world.

I was gonna say, even I know what debouncing is and I've never touched front-end javascript :v:

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Munkeymon posted:

Counterpoint: IBM still makes and sells new systems designed to run it. New as in 'this years model'.

Sometimes I find it scary and sometimes comforting that the JavaScript code I'm doing now will one day be like COBOL.

feedmegin
Jul 30, 2008

Munkeymon posted:

Counterpoint: IBM still makes and sells new systems designed to run it. New as in 'this years model'.

Well, that and other things, it's not like mainframes are COBOL specific.

As the other guy mentioned, will they still be running when this guy is in his 50s and pigeonholed? Maaaaybe but also maybe not. At some point it will actually be a dead skill.

downout
Jul 6, 2009

Portland Sucks posted:

At the very minimum if you are going to take a job supporting systems in a dead/dying language your compensation should reflect that you are essentially becoming a specialist in a rareified language. It seems like you're getting paid less than average to do something that is extremely niche. That's all kinds of messed up.

Ya, great points.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



feedmegin posted:

Well, that and other things, it's not like mainframes are COBOL specific.

As the other guy mentioned, will they still be running when this guy is in his 50s and pigeonholed? Maaaaybe but also maybe not. At some point it will actually be a dead skill.

Oh sure, but I expect my hypothetical future children to die of old age before COBOL, barring, I dunno, nuclear war wiping out every mainframe.

Skandranon posted:

Sometimes I find it scary and sometimes comforting that the JavaScript code I'm doing now will one day be like COBOL.

Angular is already a dead quasi-language ;P

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Munkeymon posted:

Angular is already a dead quasi-language ;P

It's all falling into place... :unsmigghh:

Volguus
Mar 3, 2009

feedmegin posted:

Well, that and other things, it's not like mainframes are COBOL specific.

As the other guy mentioned, will they still be running when this guy is in his 50s and pigeonholed? Maaaaybe but also maybe not. At some point it will actually be a dead skill.

One can do a lot worse than COBOL

Pixelboy
Sep 13, 2005

Now, I know what you're thinking...

feedmegin posted:

Well, that and other things, it's not like mainframes are COBOL specific.

As the other guy mentioned, will they still be running when this guy is in his 50s and pigeonholed? Maaaaybe but also maybe not. At some point it will actually be a dead skill.

COBOL will still be here long after you're dead.

There is no appetite for the risk of replacing it in places such as banking, insurance, and healthcare.

huhu
Feb 24, 2006


quote:

OPERATORS: No precedence, executed left to right, parenthesize as desired. 2+3*10 yields 50.

Adbot
ADBOT LOVES YOU

downout
Jul 6, 2009

Pronounced posted:

Graduated in December. Was just offered $48,000 for an Entry level software developer position in Houston. I'll be working with COBOL. The pay is below market value but i'm not too worried about that. What worries me more is that working with COBOL isn't really going to add much to my resume. I don't want to work there for a few years and then start job hunting with no applicable experience. Is this a legitimate concern?

Given all the feedback from others and my opinion that no job is worth blatantly turning down, it might be best to try to negotiate for more pay. For comparison, I started at relatively the same pay rate in a small city. I do not know what the going rate is for beginning developers in Houston, but I would expect it's 15 - 25% higher than the offer you've been given. Check glassdoor to try to find some relative salaries as I could be very wrong. It might be helpful to discuss you concerns directly with them as part of the negotiations WRT getting stuck (find a better word, typecasted?) in COBOL and concerns with long-term career goals. Generally, I've found good management can appreciate concerns on these terms.

All of this is relative to your experience, credentials, etc as well as your situation, since I don't know those details.

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