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
Dren
Jan 5, 2001

Pillbug

Thermopyle posted:

I question whether this is something that's widespread enough to worry about. Not that I know one way or the other as I've never worked in a Hot New Startup, but I just read this on Quora a couple days ago.

Sidebar: Quora made me login with google then asked me to create a password? wtf?

Adbot
ADBOT LOVES YOU

Impotence
Nov 8, 2010
Lipstick Apathy

Dren posted:

Sidebar: Quora made me login with google then asked me to create a password? wtf?

Add ?share=1 to the end of any quora url

Thermopyle
Jul 1, 2003

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

Volmarias posted:

"All of these people founded successful companies when they were > 35, therefore your question is invalid by anecdote."

No, that's not what I said at all.

Pollyanna
Mar 5, 2005

Milk's on them.


Volmarias posted:

2. This person is so bad that they can't hold down a job for even a year before getting booted.

This can easily be solved by asking for references and talking to prior employers. And what if the person just has incredibly bad luck and all the companies they're hired by end up folding after a year?

Also, you build skills and become better at design, project management, etc. over the years, so it's not like that entire time was wasted. Time spent at a company is one of many variables, and it's a complicated one at that.

Polio Vax Scene
Apr 5, 2009



There are totally HR people here that are desperately searching for someone to throw money at, anyone who knows COBOL and can keep this loving ancient system running it alive because the original developer is long gone and nobody has the aptitude to learn it or make it in a better language.

e: whoops it is actually FORTRAN not COBOL apparently.

EAT THE EGGS RICOLA
May 29, 2008

Pollyanna posted:

This can easily be solved by asking for references and talking to prior employers. And what if the person just has incredibly bad luck and all the companies they're hired by end up folding after a year?

Also, you build skills and become better at design, project management, etc. over the years, so it's not like that entire time was wasted. Time spent at a company is one of many variables, and it's a complicated one at that.

Lots of companies won't say anything beyond "they worked here from X to Y", so that's not always helpful.

Huragok
Sep 14, 2011
Welp, I just lost my ~startup~ job 10 minutes ago because I couldn't fix the shittiest iOS codebase made by Pakistani coders.

Anyone know of a good jobs site?

Pollyanna
Mar 5, 2005

Milk's on them.


Huragok posted:

Welp, I just lost my ~startup~ job 10 minutes ago because I couldn't fix the shittiest iOS codebase made by Pakistani coders.

Anyone know of a good jobs site?

You see what I mean!?

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Volmarias posted:

The reality is that most people are not Gordon Moore, and won't found the next Intel. It's a good question to ask. I would definitely hesitate before hiring someone with a majority of experiences lasting < 1 year. There are two possible conclusions there:

Hey, I have the best (or worst) of both worlds. I have not been unemplyed for 1 day after I graduated 9 years ago, but I've worked for consultation companies doing projects that last from 1 to 18 months, usually maintaining terrible terrible code. I've actually changed jobs once in that time, but through aquisitions, I've been employed by 4 companies.

I'm not a dropout, like many (most?) of my peers, so I guess that's good.

Freakus
Oct 21, 2000
Sometimes I think I've taken the other direction a bit too far. I've worked for the same small software company right out of college for 8 years now.

One of the primary owners is technical but doesn't really code anymore. Other than them I'm the only technical employee at a software company - this can make it a bit difficult to grow as a developer. The salary is about 50% less than what I could probably get elsewhere, but they give me 10% of anything we've started, which has so far more than made up for that lack of salary (I keep a running tally).

We had some big hits a year ago, including selling one of the companies off, and the owners have gotten a bit lazy. I figure I'll stick it out for another year to see how things develop.

Dr Monkeysee
Oct 11, 2002

just a fox like a hundred thousand others
Nap Ghost

biznatchio posted:

That works fine until one day you wake up and you're 40 years old and no Hot New Startups want to hire you, grandpa, and none of the Big Conservative Established companies want to hire you anymore either because your CV shows you never stay in a position for more than 300 days.

No one wants to hire you to sling code around after 40 anyway because you draw a senior salary and as far as management can tell the fresh college grad does the same thing for 1/4 of the price. Age discrimination is a legit problem in this career and it's why so many devs end up going into architect/lead/management eventually.

Knyteguy
Jul 6, 2005

YES to love
NO to shirts


Toilet Rascal

Monkeyseesaw posted:

No one wants to hire you to sling code around after 40 anyway because you draw a senior salary and as far as management can tell the fresh college grad does the same thing for 1/4 of the price. Age discrimination is a legit problem in this career and it's why so many devs end up going into architect/lead/management eventually.

Can always go the consulting route, too.

Are there any older Goons in here that have some input on this situation? This is legit why I want to get a successful web business or e-commerce business running ASAP (and I work nearly another 40 hours a week trying to make it happen). Hopefully in 13 years (when I'll be 40) I'll be the one hiring people instead. Considering I just broke into the field pretty much this year, it sucks to think that my length of time practicing my professional career, at least getting paid decently, will be about that of an NFL running back.

Knyteguy fucked around with this message at 21:00 on Sep 27, 2013

npe
Oct 15, 2004

Knyteguy posted:

Can always go the consulting route, too.

Are there any older Goons in here that have some input on this situation? This is legit why I want to get a successful web business or e-commerce business running ASAP (and I work nearly another 40 hours a week trying to make it happen). Hopefully in 13 years (when I'll be 40) I'll be the one hiring people instead. Considering I just broke into the field pretty much this year, it sucks to think that my length of time practicing my professional career, at least getting paid decently, will be about that of an NFL running back.

I'm not "old" but in my late 30's and know a bunch of mid 40's devs, which is probably what you mean. I think the ageism thing is overblown a tad, but what I think is definitely true is that the stakes are higher: no one is going to want to hire a mediocre 45 year old. You better bring some serious poo poo to the table, and be prepared to take on more responsibilities (project management, etc).

And the flip side to no one hiring you because of excessive job hopping is no one wanting to hire you because all you did was work at one job with one tech for 20 years. Both are real problems, and a middle ground is probably not a terrible idea.

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

Knyteguy posted:

Can always go the consulting route, too.

Are there any older Goons in here that have some input on this situation? This is legit why I want to get a successful web business or e-commerce business running ASAP (and I work nearly another 40 hours a week trying to make it happen). Hopefully in 13 years (when I'll be 40) I'll be the one hiring people instead. Considering I just broke into the field pretty much this year, it sucks to think that my length of time practicing my professional career, at least getting paid decently, will be about that of an NFL running back.

I'm in my late 30s as well, but have been working strictly on ecommerce for the last 8 years (with two companies). Do it, jump on that train; ecommerce is crazy right now. My co-worker started a drop ship company in his spare time 4 years ago, and it's in the 7 digits for yearly sales now.

BigRedDot
Mar 6, 2008

I'm 40 and I work at a hot new startup, go figure.

Dessert Rose
May 17, 2004

awoken in control of a lucid deep dream...

Pollyanna posted:

And what if the person just has incredibly bad luck and all the companies they're hired by end up folding after a year?

You see bad luck, I see a common denominator.

Knyteguy
Jul 6, 2005

YES to love
NO to shirts


Toilet Rascal
Thanks all for the input re the ageism bullshit. I ended up reading about it quite a bit before deciding to turn to this industry in my mid-20s. It's heartening to know it's not that bad.

My wife and I have one ecommerce site up but it's in a more competitive area than we were thinking, so we said gently caress it and plan to make 10 or more sites all targeting separate niche products and product lines while working SEO on the one we've already got. We're following this guide: http://forums.somethingawful.com/showthread.php?threadid=3564355

We're also in active development on a new web app suite of tools which will actually target people trying to get into e-commerce of any sort (affiliate links, making money of ads, writing Kindle books, etc). I'm really excited to show it off later in here. There's some competition in this area but it's all very expensive whereas we're actually looking at a contribution-based "freemium" and/or monthly subscription type model.

If anything actually ends up taking off I won't hire anyone but 40 yr + developers :colbert:

Anyway I apologize for extending the derail

Dessert Rose posted:

You see bad luck, I see a common denominator.

This made me laugh.

No Safe Word
Feb 26, 2005

Dessert Rose posted:

You see bad luck, I see a common denominator.

Clearly they aren't willing their companies to success, PASS

Pythagoras a trois
Feb 19, 2004

I have a lot of points to make and I will make them later.
The ageism/employability discussion reminds me of these two rules of thumb, which are coding horrors in and of themselves:

quote:

If a programmer is paid at a certain rate, they're generally worth it.

quote:

A great programmer is a thousand times better than a good programmer.

If anyone can source where these rules come from, I'd be much obliged, for they haunt me.

edit: removed (some) of the hyperbole.

Pythagoras a trois fucked around with this message at 20:13 on Sep 28, 2013

ymgve
Jan 2, 2004


:dukedog:
Offensive Clock
I don't really think the second is a coding horror. I consider myself just an "OK" programmer, and while I don't do a lot of the syntactic WTFs that fills this thread, I probably have way too many architectural WTFs.

A great programmer is worth his weight in gold because he can visualize an architecture that is clean and robust and will save a company several man-years that would otherwise be spent refactoring and working around bad design choices. Maybe not 1000 times better, but he would definitely be a magnitude or two better than a merely good programmer.

Pollyanna
Mar 5, 2005

Milk's on them.


So...is that part of what I should learn in order to be a "great" programmer? What would be the most beneficial thing to focus on when starting a career like this?

baquerd
Jul 2, 2007

by FactsAreUseless

Pollyanna posted:

So...is that part of what I should learn in order to be a "great" programmer? What would be the most beneficial thing to focus on when starting a career like this?

The thing about architecture is that it's hugely complicated to understand exactly what internal code structure will be best for a large and complex program. There are so many considerations, edge cases, and changing requirements such that it really requires real world experience to master. It's related to coding and requires knowledge of the challenges faced by implementation and maintenance, but it's almost a different field.

Early on in your career you are expected to know how to program, but you're definitely not expected to be an amazing architect, and your job responsibilities will generally reflect that. It's something to keep in mind as you progress, but getting good at coding individual components or small programs will help you understand the challenges of integrating large numbers of components that architects deal with.

Suspicious Dish
Sep 24, 2011

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

Pollyanna posted:

So...is that part of what I should learn in order to be a "great" programmer? What would be the most beneficial thing to focus on when starting a career like this?

It seems that some people think that architecture is about designing a piece of software entirely up-front so that it's perfect when you write it. This ignores that the whole point about software is that it can change. So, from my experience, well-designed and well-architected programs are those that are easy to change when you have to change them, and that things that don't need to change aren't overly obtuse designing for change that will never happen.

And what makes you a great programmer is that you can take code that isn't so easy to change and change it so that it becomes easier to change in the future. I've been coding for well over 10 years in professional settings and I still get this wrong all the time. You learn with experience.

Personally, I actually hate "abstract" statements like this, so let me show you both sides:

Here's some code that's too difficult to change. The logic is complex and dense, and he uses a lot of globals to manage state. It's twisty and curvy and too many things depend on too many other things. Trying to change it from mouse controls to keyboard controls, for instance, would probably necessitate a rewrite.

Here's some code that's overdesigned for change. It makes the bogus assumption that changing software should never happen, so it designs an overly flexible system to ensure that it can accommodate any possible change.

You need to strike a balance somewhere between these two extremes. Try to find some code that you find that you like it, and see if you can emulate it.

Pollyanna
Mar 5, 2005

Milk's on them.


baquerd posted:

The thing about architecture is that it's hugely complicated to understand exactly what internal code structure will be best for a large and complex program. There are so many considerations, edge cases, and changing requirements such that it really requires real world experience to master. It's related to coding and requires knowledge of the challenges faced by implementation and maintenance, but it's almost a different field.

Early on in your career you are expected to know how to program, but you're definitely not expected to be an amazing architect, and your job responsibilities will generally reflect that. It's something to keep in mind as you progress, but getting good at coding individual components or small programs will help you understand the challenges of integrating large numbers of components that architects deal with.

So it's learn as you go and wisdom gained over the years, huh? If that's how it works, then what's up with the idea that 45 y/o with 20+ years of experience is less hireable than a 25 y/o with 3+ years of experience? The way I understand it, expertise and reliability is directly proportional to time and experience. Why would they work counter to that?

That said, I am glad to hear that I'm not expected to know all this off the bat, or that I'd have to be born with it or something.

Suspicious Dish posted:

It seems that some people think that architecture is about designing a piece of software entirely up-front so that it's perfect when you write it. This ignores that the whole point about software is that it can change. So, from my experience, well-designed and well-architected programs are those that are easy to change when you have to change them, and that things that don't need to change aren't overly obtuse designing for change that will never happen.

And what makes you a great programmer is that you can take code that isn't so easy to change and change it so that it becomes easier to change in the future. I've been coding for well over 10 years in professional settings and I still get this wrong all the time. You learn with experience.

Personally, I actually hate "abstract" statements like this, so let me show you both sides:

Here's some code that's too difficult to change. The logic is complex and dense, and he uses a lot of globals to manage state. It's twisty and curvy and too many things depend on too many other things. Trying to change it from mouse controls to keyboard controls, for instance, would probably necessitate a rewrite.

Here's some code that's overdesigned for change. It makes the bogus assumption that changing software should never happen, so it designs an overly flexible system to ensure that it can accommodate any possible change.

You need to strike a balance somewhere between these two extremes. Try to find some code that you find that you like it, and see if you can emulate it.

Python code:
 ## SAVE LEVEL?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#########################################################################################
def write_to_file_WEEE_STRANGE(file_namey, data):
    noq = '\n'
    filey = open(file_namey, 'w')
    for d in data:
     filey.write(   str(d) + noq)
 ## SAVE LEVEL?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#########################################################################################

def Find_where_ball_stops_on_line_w(ball_w, ball_z, ball_wol, ball_zol, ball_rad, line_w, line_rad):
    did_collide = False
    totally = ball_rad + line_rad
    b1 = line_w + totally
    b2 = line_w - totally
    New_ball_w = ball_w + ball_wol
    New_ball_z = ball_z + ball_zol
    if   ball_w >= b1 and ball_wol < 0 and New_ball_w < b1: New_ball_w = b1; did_collide = True
    elif ball_w <= b2 and ball_wol > 0 and New_ball_w > b2: New_ball_w = b2; did_collide = True
    else:
     if ball_w > b2 and ball_w < b1:
      if   ball_w > line_w and ball_wol < 0:
       New_ball_w = ball_w; New_ball_z = ball_z
       did_collide = True
      elif ball_w < line_w and ball_wol > 0:
       New_ball_w = ball_w; New_ball_z = ball_z
       did_collide = True
     return New_ball_w, New_ball_z, did_collide
    New_ball_z = (float(ball_zol) / float(ball_wol) * float(New_ball_w - ball_w)) + float(ball_z)
    return New_ball_w, New_ball_z, did_collide

<insert reset_stuff() here, seriously just go look at line 502>
:barf:

I try and incorporate that philosophy when I make sure the code's properly formatted, commented, and documented. Plus, I like having everything in order when I code, because if I don't the whole thing looks like poo poo and I hate it. Having a structure to your program helps a shitload when things inevitably change.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

Pollyanna posted:

So it's learn as you go and wisdom gained over the years, huh? If that's how it works, then what's up with the idea that 45 y/o with 20+ years of experience is less hireable than a 25 y/o with 3+ years of experience? The way I understand it, expertise and reliability is directly proportional to time and experience. Why would they work counter to that?

The "politically correct" reason is that 20+ years of experience kind of demands a senior developer level of pay, and companies tend to be satisfied with hiring junior-to-intermediate developers and paying them less.

There's also straight-up ageist stereotypes about older people being "set in their ways" and less able to pick up new technology which, while being not really true and also illegal to use as a basis for discrimination, still tends to affect hiring decisions.

shrughes
Oct 11, 2008

(call/cc call/cc)
There's also the fact that old people are dumber than young people.

Soricidus
Oct 21, 2010
freedom-hating statist shill

shrughes posted:

There's also the fact that old people are dumber than young people.
While young people don't know poo poo.

It's loving tragic how brilliant young programmers waste their best years reinventing all the same loving wheels over and over again because they think they're so drat smart they shouldn't have to build on the crap those stupid olds wrote.

pigdog
Apr 23, 2004

by Smythe

baquerd posted:

The thing about architecture is that it's hugely complicated to understand exactly what internal code structure will be best for a large and complex program. There are so many considerations, edge cases, and changing requirements such that it really requires real world experience to master. It's related to coding and requires knowledge of the challenges faced by implementation and maintenance, but it's almost a different field.

Early on in your career you are expected to know how to program, but you're definitely not expected to be an amazing architect, and your job responsibilities will generally reflect that. It's something to keep in mind as you progress, but getting good at coding individual components or small programs will help you understand the challenges of integrating large numbers of components that architects deal with.

Does anybody really know how a "Hello world" program works?

I mean how the system loads and renders a TrueType font to form the "Hello world" message, how it passes through the display driver and in HDCP-encoded signals over monitor cable to flip the exact pixels on the screen at the right timings?

Chances are that few people do, but it doesn't matter, because they know how their language's println() method works and how exactly it accomplishes what it does is irrelevant. The language/OS can take care of it -- reliably. Rather than being a super-genius who's able to visualize and memorize orders of magnitude more components and variables, architecting is in large part about chipping little chunks off the huge and complicated system which could be separately used, tested and verified to reliably work as advertised by their interface, much like println(). Once they do, then he can forget about the internals of that component and focus on chipping the next component off the big block. It's not that an architect needs to memorize more things, but work to compartmentalize the system to minimize the amount of things he does need to remember at any point.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem

pigdog posted:

Rather than being a super-genius who's able to visualize and memorize orders of magnitude more components and variables, architecting is in large part about chipping little chunks off the huge and complicated system which could be separately used, tested and verified to reliably work as advertised by their interface, much like println(). Once they do, then he can forget about the internals of that component and focus on chipping the next component off the big block. It's not that an architect needs to memorize more things, but work to compartmentalize the system to minimize the amount of things he does need to remember at any point.

Yup, this is pretty much it.

If your abstraction is so brittle that to make any changes to the rest of the program you need to dig down into the internals, it's not helping. Similarly, if it's so general that the rest of the program is just as complex as it would have been without it, it's a complete waste of effort.

Software architecture is about finding the middle ground where you can completely ignore how a given component works under the hood and just use it to make everything else simpler.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

shrughes posted:

There's also the fact that old people are dumber than young people.

My dad was so dumb until I turned 30.

JawnV6
Jul 4, 2004

So hot ...

No Safe Word posted:

Clearly they aren't willing their companies to success, PASS

If someone's on year 9 of every company failing within a year we're not dinging them for lack of supernatural ability. It's their selection process.

Dren
Jan 5, 2001

Pillbug

Soricidus posted:

It's loving tragic how brilliant young programmers waste their best years reinventing all the same loving wheels over and over again because they think they're so drat smart they shouldn't have to build on the crap those stupid olds wrote.

If they spend their best years reinventing the wheel maybe they're not so smart.

baquerd
Jul 2, 2007

by FactsAreUseless

pigdog posted:

Rather than being a super-genius who's able to visualize and memorize orders of magnitude more components and variables, architecting is in large part about chipping little chunks off the huge and complicated system which could be separately used, tested and verified to reliably work as advertised by their interface, much like println(). Once they do, then he can forget about the internals of that component and focus on chipping the next component off the big block. It's not that an architect needs to memorize more things, but work to compartmentalize the system to minimize the amount of things he does need to remember at any point.

I agree to a point, but without understanding how the components will fit together, you can easily make a bunch of totally discrete, easily testable components that require the coding equivalent of duct tape and superglue to function well when put together.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

baquerd posted:

I agree to a point, but without understanding how the components will fit together, you can easily make a bunch of totally discrete, easily testable components that require the coding equivalent of duct tape and superglue to function well when put together.

TBH that's not really all that terrible of an outcome. This is definitely a false dichotomy, but if I had to choose between high-quality isolated components duct-taped together and leaky components that fit together well, there's plenty of times where I'd choose the former.

baquerd
Jul 2, 2007

by FactsAreUseless

Plorkyeran posted:

TBH that's not really all that terrible of an outcome. This is definitely a false dichotomy, but if I had to choose between high-quality isolated components duct-taped together and leaky components that fit together well, there's plenty of times where I'd choose the former.

Sure, but it's not a dichotomy. You need both for good software.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

JawnV6 posted:

If someone's on year 9 of every company failing within a year we're not dinging them for lack of supernatural ability. It's their selection process.
I don't mean to defend or absolutely condemn job-hopping, but making assumptions about what a candidate might do if given an offer and then deciding whether to recruit at all based on those assumptions is putting the cart before the horse.

Doctor w-rw-rw-
Jun 24, 2008
I jumped jobs, only with good reasons since I worked under the scum of the earth, twice. It has bitten me HARD. I'm still suffering from the aftereffects. Don't do it.

gonadic io
Feb 16, 2011

>>=

Doctor w-rw-rw- posted:

I jumped jobs, only with good reasons since I worked under the scum of the earth, twice. It has bitten me HARD. I'm still suffering from the aftereffects. Don't do it.

Could you be a little more specific with your important advice please?

FlapYoJacks
Feb 12, 2009
So right now I am programming for a small company doing embedded Linux poo poo/android (low level systems ops stuff) and I want to move on.

However it seems like doing embedded Linux poo poo (Bash/C/C++/python/git/svn/${VAR}) isn't necessarily a good resume builder and I would like to make a career move but don't know where to go.

Currently I am sitting at about 10+ years of Linux experience, and 2 years of actual programming experience, and I know POSIX like the back of my hand at this point but I don't have a degree at all.

Should I stick with embedded Linux or start transitioning to mobile/web development? Looking at some of the code in this thread has shown me that if you are a good programmer you are ahead of about 95% of other coders. The main advantages of course being that for mobile/web development there are a lot less jobs that require a degree. Any advice would be welcome. :unsmith:

PS: No I will not code in MUMPS.

Adbot
ADBOT LOVES YOU

biznatchio
Mar 31, 2001


Buglord
I can't help but think that this (good) discussion should be taking place in a thread of its own.

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