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.
 
  • Locked thread
Jeffrey of YOSPOS
Dec 22, 2005

GET LOSE, YOU CAN'T COMPARE WITH MY POWERS

Soricidus posted:

if people get hired totally based on their ability to program rather than buzzwords and connections, why are so many professional programmers terrible at their job?
they(we???) get hired based on convincing interviewers they can program well - it's much easier than actually programming well

Adbot
ADBOT LOVES YOU

Notorious b.s.d.
Jan 25, 2003

by Reene

Jeffrey of YOSPOS posted:

Maybe at big companies - you can work somewhere small where resumes are looked at by actual programmer or one guy who passes them on to them. You gotta be prepared to talk up the poo poo you did but it's not so bad. Maybe I've just been fortunate here but the companies I've been at have regularly hired people from outside their respective industries.

first off, your anecdote isn't 100% relevant to the Epic situation. you haven't spent years of your life in a technology backwater. you're not coming from rural wisconsin with the last 5 years experience on a platform no one has ever heard of. poo poo on your resume is more relevant right at the outset, even if it isn't exactly the thing you did at the subsequent job.

secondly, no poo poo: small firms are hungry. they pay less. they can offer no prestige. the benefits are shittier. they get fewer applicants. they have to be willing to take on some less-good candidates or they won't make any hires.

i didn't assert that working in a narrow niche with low relevance to the outside world would make you unemployable, just that it would be difficult to market yourself

having to work at some pissant firm because no one else could be arsed to interview you is an example of what happens. that's a serious consequence

Notorious b.s.d.
Jan 25, 2003

by Reene

Jeffrey of YOSPOS posted:

they(we???) get hired based on convincing interviewers they can program well - it's much easier than actually programming well

you have to get the interview first

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Jeffrey of YOSPOS posted:

Maybe at big companies - you can work somewhere small where resumes are looked at by actual programmer or one guy who passes them on to them. You gotta be prepared to talk up the poo poo you did but it's not so bad. Maybe I've just been fortunate here but the companies I've been at have regularly hired people from outside their respective industries.

You do need to be able to program things besides mumps but I don't think that would be very hard to learn.

We do more than MUMPS. That's just put our database server. I just post about that because it's the most interesting. Our old client is vb6, and our new client is C#/.net on the controller serving html+javascript to the client.

We also have an android app and multiple ios apps.

I think bsd is right about some companies and not others. Some places are always just going to be about buzzwords, but that's not really the kind of environment I want. Epic really encourages us to spend work time learning in addition to just turning out code, and good ideas are genuinely fostered. Our Web framework was just some dev's pet project a few years ago, and now it's becoming decently robust.

Jeffrey of YOSPOS
Dec 22, 2005

GET LOSE, YOU CAN'T COMPARE WITH MY POWERS

Notorious b.s.d. posted:

first off, your anecdote isn't 100% relevant to the Epic situation. you haven't spent years of your life in a technology backwater. you're not coming from rural wisconsin with the last 5 years experience on a platform no one has ever heard of. poo poo on your resume is more relevant right at the outset, even if it isn't exactly the thing you did at the subsequent job.

secondly, no poo poo: small firms are hungry. they pay less. they can offer no prestige. the benefits are shittier. they get fewer applicants. they have to be willing to take on some less-good candidates or they won't make any hires.

i didn't assert that working in a narrow niche with low relevance to the outside world would make you unemployable, just that it would be difficult to market yourself

having to work at some pissant firm because no one else could be arsed to interview you is an example of what happens. that's a serious consequence
Small in number of employees doesn't mean small in revenue or market share - high revenue/employee is a metric I look at. Personally I can't stand working for large companies, it's miserable. Any time you want to change something that isn't in your team's clearly delineated purview there's a guy whose full time job is making excuses and saying no. I don't want to work at a company where I can't possibly have any influence over the direction of the company or at least the project in general - I find that super frustrating. I suppose I am speaking to my own preferences though - other people feel differently and I can understand the frustration of not getting called back because an algorithmic resume filter has never heard of the mumps on stumps framework.

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





Jeffrey of YOSPOS posted:

Most programmers, at least at good places(and microsoft I guess!!!), aren't hired because they know a lot of sweet APIs, they're hired because they are able to program. I wouldn't worry about that.

doing a couple of years at epic after ten years doing something else is fine; you can sell that as valuable exposure to alternate processes and platforms. only having epic and mumps and some proprietary js framework is going to make you unhireable tho unless you are willing to basically start over

you can, of course, keep up to date on other languages/platforms/frameworks on your own time, but that puts you way behind people who get to use them everyday as part of their job

i'm sure epic are very good to their employees but i wouldn't want to bet my whole career on a single company

fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

Jeffrey of YOSPOS posted:

Small in number of employees doesn't mean small in revenue or market share - high revenue/employee is a metric I look at. Personally I can't stand working for large companies, it's miserable. Any time you want to change something that isn't in your team's clearly delineated purview there's a guy whose full time job is making excuses and saying no. I don't want to work at a company where I can't possibly have any influence over the direction of the company or at least the project in general - I find that super frustrating. I suppose I am speaking to my own preferences though - other people feel differently and I can understand the frustration of not getting called back because an algorithmic resume filter has never heard of the mumps on stumps framework.

the guy in charge of all firmware development at my company is one of these guys

Jeffrey of YOSPOS
Dec 22, 2005

GET LOSE, YOU CAN'T COMPARE WITH MY POWERS

the talent deficit posted:

i'm sure epic are very good to their employees but i wouldn't want to bet my whole career on a single company

Yeah I would have to really love (or own significant equity in) a company to stay more than ~5 years - regardless of the other factors that is absolute for me and I agree with this.

Fanged Lawn Wormy
Jan 4, 2008

SQUEAK! SQUEAK! SQUEAK!
right now a i have project where I have several bar graphs I'm drawing on a TFT.

so I have several functions that are similar, like:
plotYaw(int);
plotElevation(int);

etc

with all the constants #defined and all the math laid out accordingly


now I'm wondering if I should make a bar graph object that I can use? so that then I setup static variables at the beginning for the dimensions, colors, and mapping... then I call up yawgraph.update(int) and elevationgraph.update(int) to do the same thing. or is doing the class/object overkill for this? idk i'm a bit beer'd right now and reading my books isn't too beneficial so maybe I'll just read more tomorrow and figure that out then

sarehu
Apr 20, 2007

(call/cc call/cc)
It depends on the product. If you're slopping together some Rails thing, you might want somebody with Rails experience. But if you're making many other kinds of stuff, the new employee ramp-up time is dominated by product-specific stuff. Also, it's likely that you'll need to be more choosy about general ability. Lots of people switch "niches" with no problem.

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer
Yeah, I think some of you are overly cynical. I know multiple people who weren't even good developers (I'm still fixing their mistakes) who have moved on to MS, Google, and other places.

And all of that even assumes I want to move, which I don't. I like where I live and I don't really care to try to job hop my way up to megabucks. I'd still be a broke rear end technical writer if I didn't work here anyway.

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

LeftistMuslimObama posted:

Yeah, I think some of you are overly cynical. I know multiple people who weren't even good developers (I'm still fixing their mistakes) who have moved on to MS, Google, and other places.

And all of that even assumes I want to move, which I don't. I like where I live and I don't really care to try to job hop my way up to megabucks. I'd still be a broke rear end technical writer if I didn't work here anyway.

not very yospos of you

Soricidus
Oct 21, 2010
freedom-hating statist shill
the reason people want to move on after a few years is 20% because that's the fastest way to get sweet raises and 90% because it's best to make your getaway before everyone notices you're a terrible programmer

leftist heap
Feb 28, 2013

Fun Shoe

Blinkz0rz posted:

ya it's myemailwithout@-companyinitials

i have no idea how to do the umbrella account thing. linku?

i think it's just an organization under github? that's how our company works. we have an organization and our personal github accounts are added to the org.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
not in my case sadly i had to register a second, corp account that conformed with a specific account naming schema so it matched my ad record

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Soricidus posted:

the reason people want to move on after a few years is 20% because that's the fastest way to get sweet raises and 90% because it's best to make your getaway before everyone notices you're a terrible programmer

I see. Average raise here is 15% per year. You have to really gently caress up not to make money around here. You get stock appreciation bonds too.

I guess I'm a terrible pos-er. I value stability and being tight with my coworkers over ruthlessly climbing the ladder. The pay and bennies are good enough to keep me happy and pay for everything I could want, so why worry?

I realize that not everyone has the same values as me, so don't take this as me saying my choices are the only choices. Just that I don't think my job is the raw deal folks are making it out to be.

My office building (where my private office is) looks like a castle, and the building 3 down has a moat and a life size dragon in then main conference room.

I had swordfish for lunch on Friday and it cost 3bux.

I probably won't make the next killer app or make a fortune clawing my way through startups, but I'll pay my debts, raise a family, never get home late, and occasionally something I did might catch someone's cancer a little earlier and they'll live instead of die on chemo. For me, it's a good deal.

Plus there's no snow in any of the tech hubs. gently caress that!

Arcsech
Aug 5, 2008
im doing some homework for my operating systems masters class and my poo poo locks up the system with no indication as to why, because i am a terrible programmer

also, gently caress this bullshit:
code:
#define list_entry(ptr, type, member) \
	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
why the hell doesnt this linked list just use a void* like a normal c collection that needs to be generic, instead of black magic

e: oh, apparently its so that you can overcomplicate thing by having the linked list pointers inside the data structure you want to have a list of. this is a thing you would want to do because ???????????

Arcsech fucked around with this message at 04:10 on Nov 23, 2015

Soricidus
Oct 21, 2010
freedom-hating statist shill

Arcsech posted:

code:
#define list_entry(ptr, type, member) \
	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))

:barf:

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Arcsech posted:

im doing some homework for my operating systems masters class and my poo poo locks up the system with no indication as to why, because i am a terrible programmer

also, gently caress this bullshit:
code:
#define list_entry(ptr, type, member) \
	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
why the hell doesnt this linked list just use a void* like a normal c collection that needs to be generic, instead of black magic

e: oh, apparently its so that you can overcomplicate thing by having the linked list pointers inside the data structure you want to have a list of. this is a thing you would want to do because ???????????

Wait, was this code given to you by the instructor? Horry cow.

Arcsech
Aug 5, 2008

LeftistMuslimObama posted:

Wait, was this code given to you by the instructor? Horry cow.

no, this code is in the linux kernel

Arcsech
Aug 5, 2008
the homework is to do a bunch of poo poo with page tables in the kernel, so crashing the entire system is very easy to do, and also involves some ultra unreadable code because this stuff has to be fast faST FAST

Arcsech
Aug 5, 2008
if you want an explanation of how that ugly bastard of a code snippet above works, see https://isis.poly.edu/kulesh/stuff/src/klist/

Soricidus
Oct 21, 2010
freedom-hating statist shill

Arcsech posted:

if you want an explanation of how that ugly bastard of a code snippet above works, see https://isis.poly.edu/kulesh/stuff/src/klist/

lol nice try but I'm not clicking on your terrorist propaganda

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Arcsech posted:

no, this code is in the linux kernel

Lol, I hope Linus doesn't see my ignorance and go into some crazy tirade about the president.

Jerry Bindle
May 16, 2003
linus's OS professor said that the linux kernel was a huge mess, a lot of people took this to mean that linus was the smarty man and the professor was a dum-dum

sarehu
Apr 20, 2007

(call/cc call/cc)

Arcsech posted:

e: oh, apparently its so that you can overcomplicate thing by having the linked list pointers inside the data structure you want to have a list of. this is a thing you would want to do because ???????????

The keyword you're looking for is "intrusive linked list." They are often useful, a good choice or the Right Choice for certain problems. The kind that do an offsetof calculation lets you have your object be in more than one container, by having two or more of them. (But they're useful even if it can just be part of one list.)

Brain Candy
May 18, 2006

Barnyard Protein posted:

linus's OS professor said that the linux kernel was a huge mess, a lot of people took this to mean that linus was the smarty man and the professor was a dum-dum

worse is better wins again

Brain Candy
May 18, 2006

sarehu posted:

The keyword you're looking for is "intrusive linked list." They are often useful, a good choice or the Right Choice for certain problems. The kind that do an offsetof calculation lets you have your object be in more than one container, by having two or more of them. (But they're useful even if it can just be part of one list.)

you can make a hash set that preserves insertion order, its great

Arcsech
Aug 5, 2008

sarehu posted:

The keyword you're looking for is "intrusive linked list." They are often useful, a good choice or the Right Choice for certain problems. The kind that do an offsetof calculation lets you have your object be in more than one container, by having two or more of them. (But they're useful even if it can just be part of one list.)

yeah, I kind of figured it was done for good reasons but its frustrating when youre trying to understand it finishing a homework that's due in a few hours.

fortunately the kernel takes 10 minutes to build on my vm so i have time to yospost

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Arcsech posted:

if you want an explanation of how that ugly bastard of a code snippet above works, see https://isis.poly.edu/kulesh/stuff/src/klist/

Having read that, it is pretty cool. Working with stuff like that made me feel really smart during my undergrad-level OS course.


Thanks City of Glompton for the glorious sig

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

LeftistMuslimObama posted:

Lol, I hope Linus doesn't see my ignorance and go into some crazy tirade about the president.

Linus "Lil Buster" Torvalds posted:

president obama should be retroactively impeached. how did this pathetic half-human even get elected president? if you ever f***ing commit any commie fucktrash to a bill again, im going to shut you down and good luck forking your library. every loving monkey on this *** **** list thinks they know how to code and makes any bill requests they want. im not letting you commit a bill like this to the constitution and


Thanks City of Glompton for the glorious sig

travelling wave
Nov 25, 2013

Barnyard Protein posted:

linus's OS professor said that the linux kernel was a huge mess, a lot of people took this to mean that linus was the smarty man and the professor was a dum-dum

if you're referring to tanenbaum then this is a pretty creative interpretation of history. linus was never his student (they were never at the same institution) and tanenbaum's argument was pretty much "linux is dumb because minikernels are the future", which is pretty funny in hindsight since every major OS uses a monolithic kernel, even the ones that started life as mini-kernels (NT/OSX).

Arcsech posted:

also, gently caress this bullshit:
code:
#define list_entry(ptr, type, member) \
	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
why the hell doesnt this linked list just use a void* like a normal c collection that needs to be generic, instead of black magic

e: oh, apparently its so that you can overcomplicate thing by having the linked list pointers inside the data structure you want to have a list of. this is a thing you would want to do because ???????????

the linux linked list implementation is actually pretty well thought out and any other way is going to be objectively worse in most respects. moving list_head out of the structure pretty much mandates performing an allocation whenever adding to a list and this nixes the only real advantage lists have in the first place, the constant time insert/delete. baking the list header into the structure allows you to guarantee that list operations will be constant time and that they will never fail.

sarehu
Apr 20, 2007

(call/cc call/cc)
In C++ you can make it a class that you inherit from.

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Jeffrey of YOSPOS posted:

Most programmers, at least at good places(and microsoft I guess!!!), aren't hired because they know a lot of sweet APIs, they're hired because they are able to program. I wouldn't worry about that.

we have people who have worked at epic as well, I actually showed LMO's "99 bottles of beer" to one and got an "oh god, that's mumps!" out of him

the good places don't care about memorization of APIs, we care about skills

and being able to do good work despite working in "the language that time forgot" can actually demonstrate skill if you can show you know how to contain the awfulness rather than just embrace and wallow in it

Ralith
Jan 12, 2011

I see a ship in the harbor
I can and shall obey
But if it wasn't for your misfortune
I'd be a heavenly person today

Fanged Lawn Wormy posted:

right now a i have project where I have several bar graphs I'm drawing on a TFT.

so I have several functions that are similar, like:
plotYaw(int);
plotElevation(int);

etc

with all the constants #defined and all the math laid out accordingly


now I'm wondering if I should make a bar graph object that I can use? so that then I setup static variables at the beginning for the dimensions, colors, and mapping... then I call up yawgraph.update(int) and elevationgraph.update(int) to do the same thing. or is doing the class/object overkill for this? idk i'm a bit beer'd right now and reading my books isn't too beneficial so maybe I'll just read more tomorrow and figure that out then
Do your various plotWhatever functions contain very similar code? If so, you should probably refactor them into one function (such as a class method), yes. This will allow you to fix bugs/make improvements in one place and have it benefit everything.

Valeyard
Mar 30, 2012


Grimey Drawer

eschaton posted:

we have people who have worked at epic as well, I actually showed LMO's "99 bottles of beer" to one and got an "oh god, that's mumps!" out of him

Lol

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Arcsech posted:

also, gently caress this bullshit:

if I understand correctly, list nodes point to list nodes instead of whole objects - it's a common pattern (see LIST_ENTRY in Windows. this macro in particular is called CONTAINING_RECORD in Windows but it properly uses offsetof instead of pointer arithmetics with NULL which is undefined behavior and will make compilers scream bloody murder). it's so that objects embed the list nodes that "contain" them, compared to storing a pointer to the object in the node you save an allocation and an indirection, both things that are considered important in operating system code. another important advantage is that when you destroy the object you can simply unlink its nodes, which removes a source of dangling pointers. drawback is that you have to known in advance which lists are going to contain your object, to define all the necessary node fields in advance, but that isn't usually an issue in the kind of code you'll write (and you can always have an intermediate "object pointer" object that contains a list node and a pointer to the real object, but then you're on your own re. dangling pointers)

no sarehu, this isn't an intrusive list because the list itself doesn't know poo poo about the objects it contains. the list manipulation routines operate on list nodes and for all they know the list is just nodes with no "contents". if anything, it's an "extrusive" (???) list

for the standards of the Linux kernel this is a very straightforward macro btw

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

hackbunny posted:

no sarehu, this isn't an intrusive list because the list itself doesn't know poo poo about the objects it contains. the list manipulation routines operate on list nodes and for all they know the list is just nodes with no "contents". if anything, it's an "extrusive" (???) list

It's an intrusive list because the list "intrudes" into the object. I'm not aware of any other common definition of an intrusive list.

Arcsech
Aug 5, 2008
i think it was somebody in here asking when you'd be able to make desktop apps with react native. well, https://github.com/ptmt/react-native-desktop

os x only atm and not prod ready but it looks reasonably active

Adbot
ADBOT LOVES YOU

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord
hey guys I'm supposed to help hire some kind of android developer but I don't know poo poo about android

what's a basic straightforward question that answering "idk" would flag the person as "obviously doesnt know poo poo about android"? thanks in advance

  • Locked thread