I think that part of human nature is that people like people who are like themselves, so you sometimes get these insular / discriminatory sub cultures that judge people on superficial traits instead of the quality of their minds. From both this article and the tales of many friends, San Francisco strikes as one of these low-tolerance / high-discrimination places.
I live in NH, on a farm and work (mostly) remotely. I've got a network of contacts, I get pinged w requests for contracting work, I do the job, I get paid. No one asks me about my age (45) or judges me because of it.
Personally, I dislike places where people are provincial and close-minded, so I'll stick to the rural countryside and leave SF to the bigots.
The rapidity with which people flip the idiot bit on you, due to puddle-shallow signalling in the Bay Area really takes my breath away.
- The sound of keys clicking in a phone interview automatically means you are Googling the answer in an interview. Never mind that you are a dynamic language programmer and you are writing a 10 second scriptlet to answer the question.
- The mention of anything that sounds "audiophile" automatically means you are a terrible douche who naively believes in all of Monster Cable's woo. No need to actually evaluate what you are saying through knowledge of physics.
- You must subscribe to the magical powers of [insert paradigm/language here] or you are a dirty mudblood who's simply too dim to appreciate the magic. (Don't say anything like, "Soft factors, like how well your team works together, swamps the effect...")
- You must be able to mad-libs complete the paraphrase of recent CS textbooks, or you obviously never covered the topic.
This isn't even to mention weird prejudices and half-baked knowledge about older technologies. It's as if people didn't understand that https://news.ycombinator.com/item?id=5695816 is also a parody of programmers misunderstanding of technology.
This kind of thing is the worst in interviews. Like getting asked some fill-in-the-blanks question on the pillars of OOP or to define some random bit of jargon or what-have-you. That coupled with the "have you seen this question before" interviewing is just infuriating.
Quite frankly understated.
When I interview someone, I will usually ask if they've seen the question before, so that I can skip it -- is there something wrong with that?
I suspect that this was meant to refer to interview questions with an "Aha!" answer, that are unlikely to be answered correctly by people who don't already know the answer.
For example, I think, "How would you detect a cycle in a linked list?" is a bad question because, if the candidate implements Floyd's algorithm on the whiteboard, the likely assumption is that they remembered it, not that they came up with it on the spot.
In general I think there are two kinds of coding questions that are worth asking. Straightforward implementation based questions that should be solved basically as fast as the candidate can write, assuming they're familiar with the basic techniques. These are in the same vein as fizzbuzz and generally just give you a sense of the techniques the candidate has mastered (basic programming, bit-wise operations, recursion, etc.) The other kind are open ended questions that help show problem solving skills, knowledge of different algorithms and data structures, etc. These sorts of questions don't have the same variance as the secret puzzle questions. The amount of time to throw up a fizzbuzz implementation if you've seen the problem before should be about the same as if you haven't. And the same goes for open ended questions that are more about design, thinking, etc.
And of course you always want to factor in the problem of dealing with candidates who are nervous, in an unfamiliar and uncomfortable situation, and not operating at peak performance. You shouldn't expect production quality code for complex problems in those situations, you should be looking for code that gives you data.
1. If they're not aware of an existing algorithm, it's good to see what they come up with isn't terrible. It's insane the number of times I've seen unbounded time shuffle algorithms in production code. (Repeatedly pick a random element from src, linear scan of dst, and append to dst if not found.)
2. If they know a few famous algorithms, it's much more likely they're aware of the existence of lots of algorithms and are much more likely to Google for the pre-existing algorithm instead of making up something terrible on the spot.
3. A lot of these famous algorithms aren't as difficult to come up with as you'd think. When I first heard of the key schedule biases in RC-4, I thought about it for half an hour and came up with something identical to Fischer-Yates, using the unbalanced Feistel cipher at the core of MD5 (unfortunately, killing the speed advantages of RC4). Years later, when I heard there was a name for the algorithm, I checked Google to see if they had included the back-to-front optimization, and sure enough, what I had come up with was identical to Fischer-Yates.
This area has a high density of people who conflate academic computer science with software engineering, or who think the latter is some easily learned demi-skill to be looked down on, etc.
Which is mind boggling. I took an introductory "software engineering" class in (a reasonably prestigious) university ~15 yrs ago which was ostensibly about learning how to use the right tool for the right job, and one of the assignments was to build a web application in C++!
Perhaps the intent of that assignment was to show that it wasn't the right tool, but that was certainly never communicated by the professor.
I didn't really learn any software engineering until I got my first job and had to build software, with a team, that people actually used.
As an aside, we were doing this in the mid-late 90s (NSAPI) and we were running rings around Perl/CGI shops. Why? Because what took them a whole rack of machines took us a single box, and we simply skipped all the issues of syncing data, accessing a shared database with locking etc etc etc that they had to deal with.
Right tool for the job ;-)
Edit - There a quite a few frameworks out there. This one seemed quite nice: https://github.com/ipkn/crow
1. There isn't a low-level performance bottleneck within most web-dev code. It's almost all occurring at levels slightly above that(disk access, network bandwidth, database queries, horizontal scaling). The stuff that needs to eke out another 50% in an inner loop through optimizing cache access or careful use of hardware parallelism tends to be a single algorithm or batch process that can be developed independently of the larger application.
2. For eliminating whole categories of errors, there is a bounty of options out there that can claim to improve on C++ through better tools, type systems, and compiler technologies. Even Java, as maligned as it is, can constitute a credible step forward.
3. Good C++ developers aren't that common. There are plenty of junior developers who are eager and ignorant of the potential dangers, though - they will make a mess in any environment, but they'll make a bigger one when given power tools. (This is the argument for Go, and w/r to the case of low-pass-filtering junior devs it definitely makes sense.)
1. There are a number of reasons one might choose C++ that aren't related to low-level performance in almost any application. For a particular web application it may or may not be a good choice, but I wouldn't categorically reject it, even for a class project or assignment web app.
2. Any language or suite of them has whole categories of errors, deficiencies in tooling and other issues that can make it suitable or not in the hands of a given team. C++ has more or fewer of these than other languages depending on the context.
3. This seems to be hurling a pretty broad insult at many C++ developers, and "good" requires context.
The requirements were specifically to build a game, any game, and as long as it was playable (and your code was readable) you'd get an A.
So, annoyed as I was at the requirement that the backend be built in C++, I decided go above and beyond the requirements and built a single page Othello game, complete with a strong and fast AI (I happened to take this class much later in my studies than the standard curriculum called for, so I had already taken an AI class and had learned how to build a minimax tree with alpha beta pruning, though up until that point I'd only ever done it in Lisp).
So, by changing the actual requirements of the project, I actually made C++ a more appropriate choice of tools for this project and was able to build a very responsive single page Othello game with a strong AI capable of running pretty fast on the hardware we were tasked with using.
I was the only one who used Ajax to make it a single page app, and the only person to build an AI. Needless to say, I got the best grade in the class, but I suppose I had an unfair advantage.
I've often wondered about this. c++ has a tendency to fail fast and hard whereas higher level languages can lead to a false sense of security/understanding. Blowing your foot off isn't necessarily a bad thing.
Only recently a friend of mine narrated an interview tale. I don't exactly remember the precise question, but apparently he was asked to solve a problem in 30 mins(Two problems is what interviewer expected him to solve in an hour). One of such problem apparently he couldn't solve it in the time complexity the interviewer expected him to. Though he got some solution working in an hour.
He later on went and googled it and apparently the algorithm couldn't be solved unless you knew about Suffix Automata(http://codeforces.com/blog/entry/20861)
Long story short, these days apparently without everyday exposure competitive programming exercises(spending hours every day on sites like codeforces, SPOJ and hackerrank) there is no way you can clear interviews.
Reminds me of the Aho-Corasick string-matching algorithm.
Edit: in a further comment, you assert an unspoken insult being communicated in a perfectly neutral sentence. I guess what I'm saying is I bet you bring quite a bit of the negativity you experience to your interactions.
I am not convinced that your assumption about his negativity is any more valid than his interpretation of his experience.
My own experiences in SF has been positive. I've found people are generally very excited about what they are doing in life, optimistic about the future and most importantly, willing to lend a hand. (This is in huge contrast to the cut throat image of the valley in the media; while individual startups and industries within tech may be cut throat, I wouldn't describe SF tech world as "generally cut throat")
One thing to keep in mind is SF has a fair share of folks who move here for their first job. These people are just entering the workforce and are maturing more, not less, each day. I've seen some pretty radical transformations of the same people over 1-3 years. A lot of the portrayal of the Valley in the media is of a fixed non-evolving mindset, which again, is the opposite of my experience.
It was entirely certain that he did not understand that he repeated the 2nd option I gave him. Furthermore, when I tried to correct him, he behaved as if I was lying to him.
I take it you're not familiar with the wonder that is Yes, Minister?
(More broadly, and to explain the joke for the benefit of HN, a large amount of British oblique humor and especially political and civil service culture relies on the art of the indirect insult.)
I like that quote. Copied it to my notes for future reference.
To expand more on the topic, I wonder if remote workers are a good way to bring some revival for smaller rural communities.
I visit some of those places and many have a beautiful setting, everyone knows each other, there is a sense of a community. It is quiet.
There is probably a tipping point where if enough companies would hire remote workers, people won't be afraid to move to such communities. Currently many (including me) even if they do remote work, would probably be hesitant to move, because if they have to jump ship, they know there is a smaller chance of getting remote work again. So staying closer to a tech center seems like a better option.
The advantages I've had by moving from Arkansas to here have been numerous, and mainly this is due to human nature causing companies with enough co-located employees to leave remote workers out of the loop.
The OP is right though: I find the "herd effect" that occurs from a bunch of very similar people especially potent in SF. What's funny is how diverse they think they are based on superficial traits like maybe ethnicity, but the reality is they tend to be very uniform in socio-economic background, age, and education.
But for a developer working from home the company can't tell the difference between a bug that took three days of plugging away to find and one that you knocked out in twenty minutes before binge watching House of Cards on company time.
Most professionals have enough personal integrity to work when they say they're working, but the ones that don't can be very corrosive to morale and a big drag on productivity. I got the impression that's why Marissa Meyer forced everyone at Yahoo back into the office.
I'm more productive this way. Having something like House of Cards on in the background provides enough distraction that I don't get distracted by other things, like HN. But if I were to do this in the office I doubt it would go over well.
I can damn well see when a issue has been entered in a bug tracker and when the bug has finally been marked fixed with the commit listed in the bug tracker..
So can everyone else including managers
Relying too much on commits / tracking tools is a red flag of poor management.
If any of my team reported "still working on bug X" in the standup 3 days in row, without any significantly interesting details, I'd have assigned a few more people to help out.
Something as simple as a software review board, which places time estimates on a problem agreed on by a panel of at least 2 developers and then a process to check those estimations against actual results to find how far their estimation deviate from actuality across all developers, gives a fairly accurate picture of how long something should take and becomes more accurate over time. Further automation like linking the ticketing system to the SCM, so that when a branch is created for the issue the clock starts ticking and stops at checkin/smoke test, gives a pretty accurate picture of time spent on a task. Any developer that is deviating far below the low threshold is potentially wasting time and his/her work should be reviewed, as it is only an indicator that there may be a problem not conclusive proof.
I have worked remote for over 7 years, and currently reside in a very remote area for developers (Key West) and have no issue with remote development. Either a company has these process in place or I quickly put them in place. That or find other remote work as my only bad experiences have been with companies that do not have such measured in place. It's not a hard problem to solve one just needs to know the problem domain, most managers don't, so they just resort to the butts in seats management style and honestly without similar controls the same kind of time wasting can be employed, it just manifests itself differently but incompetent managers figure well they are here so work must be getting done.
I can easily check the code in at the end of my television spree.
The presumption is that remote means lower value or productivity as a default in classic companies. It's not necessarily a matter of luxury either; your C levels don't work from their yachts in a marina normally. Some are just too rigid in approach to change how they work even if it's demonstrably negligible. I had a client before that had a mostly distributed team and wouldn't let us increase the hourly rate unless we relocated to an office - few people even at the offices ever talked that often and we hardly ever met in person with the client ourselves even for those five miles down the road.
The usual tech company reasoning now is that the tools for remote work do not facilitate creative, spontaneous insights that are critical for competitive companies.
The cheapest house I've seen in Boulder has been around $450K. If you want a condo or town home in Boulder, you're looking at about $270K and that's probably going to be on the out skirts of town and built in the early 90s.
There's also permanently affordable housing. They are subsidized properties that you have to qualify to purchase, but you can't re-sell them for more than you bought them for. I've always made too much money to qualify, even right out of undergrad with a BS.
However, like all programs like this that are a stupid fucking band-aid for NIMBY assholes interfering with the free market, they are neverr enough. It's an incredibly long line of people trying to get each home, and might as well be a lottery. These programs don't help the people they claim to. They are nothing more than ways for rich hippies to feel a little better after they vote for policies that set de-facto financial segregation firmly into place.
People aren't buying houses to flip in six months, they are buying them to hold onto long-term. It's pretty clear that public policy isn't going to shift towards affordable housing any time soon. So the only options are: continue to pay high rents and wait for people to lose their jobs/homes so they can be bought cheaper, or buy now and hope you don't become one of the former.
If we start seeing houses sold multiple times in the same year, or people starting buying homes that they clearly can't afford, then we have a problem. But I don't see evidence that is where the US is. The housing shortage is ensuring that only those top earners are competing. Price are driven up by the fact that the top 20% of buyers can afford to outspend the bottom 80% on housing by a factor of 5 or more.
An additional $500/mo can cover another 100k for a 30 year mortgage. A couple making around $10k/mo after taxes can spend $5k/mo on a mortgage and still live comfortably while a median income couple earning maybe $4k/mo can only spend $2k/mo before things get tight. So, the high income couple can easily afford a million dollar mortgage, but could stretch that to $1.2MM if they really had to while the median earner can only spend $400k MAX.
Boulder itself has ALWAYS been expensive (even when I was in college in the early 90s) for housing. If you're serious about relocating, look at some less insane, but very close communities that the majority of the "Boulderites" live in:
You can have a "reasonable" commute, and a less insane house price in those areas. They are all bedroom communities for the area... Personally, I lived in Louisville and Lafayette at least half of my time in the county (the other in Boulder proper, renting, always).
There are always options.
Check out Gunbarrel, it's about 7 minutes away from Boulder and is still somewhat reasonable. Although my SO bought her 30yr old condo for $165K in the Fall of 2014 and Zillow is now saying 302K, LOL.
We were supposed to get a modern "rural electrification project" in the 90s for broadband, but cable companies stole the money, aided and abetted by Congress.
Depends, REI has better internet for ND than anything I've seen elsewhere. Some of the rural telephone companies do quite well. Its really luck of the draw.
> We were supposed to get a modern "rural electrification project" in the 90s for broadband, but cable companies stole the money, aided and abetted by Congress.
The key part of the last bill that killed it was the requirement that "broadband speeds" were not available in an area. The bill didn't specify a minimum price or that its was universal to the area. So, it pretty much killed a lot of attempts because broadband is available for $1,000 a month.
My parents are just about to install an 80' tower on their rural property, because a local WISP is the only unmetered option available.
I feel like the cellular revolution has really crippled itself by virtue of nearly all "cellular wifi hot spot" plans being data capped to some number of GB per month. There's just so much culture I can't share with my parents if they can't spare the data to watch online video.
This situation becomes only more frustrating each time you hear about a provider upgrading their network to an even faster technology. "Cool, so now I can exhaust my monthly data plan in... 10 minutes?".
(Somewhat similar to the frustration of seeing Apple make thinner and thinner devices, rather than throwing in a bigger battery -- is this really what your customers want?)
I was told 8mbs down and 2mbs up. That worked great for about 6 months and then it started to degrade month by month. I assume as more people subscribed to the service. By the end of 3 years I was only getting about 2mbs down and 700kbs up. (at 3am I might get 5/1). Worked ok for browsing facebook, but the main issue was really bad packet loss on the upstream end.
Through reading many of the administrator manuals for the antennas I found online, I came to the conclusion that it was just bad technology and exacerbated by inappropriate default settings. The gist of the way the canopy protocol works is that it is very easy for the AP to transmit data to an end point. The problem is how the data is transmitted to the AP from the customer end point device.
It must first send a request to send (RTS) and then wait for the OK. By default the AP's are set to 10 miles line of sight, which adds in even more delay for the timings. The end result is for a busy AP, most of the RTS requests will be ignored. Which works ok for browsing the net, but I was getting 5-20% packet loss on upstream, which basically meant talking to people on my voip office phone sounded fine to me, but people on the other end only heard bits and pieces of what I was saying. Trying to VPN into work was very painful too.
I dealt with that for 3 years before I finally realized that ATT had 6mbs dsl for $60 a month. I switched and was so happy.
IME when correctly configured Canopy is one of the most robust last mile fixed-wireless systems on the market (though LTE may change that), but it has to be configured correctly.
The main feature of Canopy is GPS synchronization of tx/rx timeslots so you can reuse spectrum. A lot of WISPs bought it for that and then never changed settings because they didn't understand how the sync worked and didn't want to change a setting that alters timeslots and break sync. Never mind that there is a built-in calculator to help you figure that out...
Getting 5-20% packet loss upstream indicated they were doing something terribly wrong. Perhaps they screwed up timeslots and the AP received interference from other APs causing errors when listening for your SM, perhaps they didn't add control frames after their subscriber count significantly increased, or they simply oversubscribed the AP. The most widely deployed Canopy version (gen2 PMP100, came out in 2004 and still widely deployed) could handle up to 10Mbps down & 4Mbps up. Selling 8M/2M plans on that platform is a bit ambitious but unfortunately all too common.
Try rural Sweden.
This is sad but not unexpected since politics and big companies play in this space.
>I visit some of those places and many have a beautiful setting, everyone knows each other, there is a sense of a community. It is quiet.
Depending on what part of the country you're talking about, many of those beautiful small communities are very bigoted also -- and not just in the South.
There are absolutely small towns where open discrimination is a problem. And there are absolutely small minded jerks that have a problem with people of color.
But what I've observed personally living in the south and travelling the country is that the south is often less functionally segregated than other areas of the country. It's sheer demographics if nothing else; when the population of many major southern cities are majority minority, then it's difficult for people to avoid living and working next to each other.
Where the dynamic gets really interesting because of all this is with people that want to fight inequality, but don't realize that they have a massive blindspot when it comes to what functional racism looks like because they don't actually live in functionally diverse environments.
>But what I've observed personally living in the south and travelling the country is that the south is often less functionally segregated than other areas of the country. It's sheer demographics if nothing else; when the population of many major southern cities are majority minority, then it's difficult for people to avoid living and working next to each other.
Functional racism (or any other "ism" tends to follow groups with enough wealth to insulate themselves from people who are different and people who have so little that they need to be reassured that no matter how little they have they're always better than someone.
>Where the dynamic gets really interesting because of all this is with people that want to fight inequality, but don't realize that they have a massive blindspot when it comes to what functional racism looks like because they don't actually live in functionally diverse environments.
This. It's like a bunch of 5th graders debating foreign policy.
Only if there was some sort of a "survey" on people's attitudes in different parts of the country. Perhaps people with competing ideologies would represent one side or another and then the general public would decide to pick one of those choices to represent the majority view from that area. This way we'd actually know what a majority of the population in a given state/region believes.
Of course it would suck for the reputation of a certain part of the country where bigoted, white supremacist people keep getting the majority votes year after year, decade after decade. But I guess that reputation would be well deserved if those representatives keep winning so consistently for so long a time.
It's a mix that requires. A different lense that most don't have.
I grew up in liberal DC, and then went to texas. I'm now up north again, but my view of the south has changed dramatically.
From the responses I've gotten, I feel like people think I'm saying the south doesn't have very real problems with race. It does. But the daily reality is much closer to what you're describing.
I wish I could 1984 myself this throughly. My life will get so much easier.
I explicitly acknowledged that there are absolutely still real problems with race in the south. Things like the state of Alabama implementing voter ID laws and then shutting down DMV offices in poor black counties absolutely happen.
But what I was talking about was functional racism in terms of daily life. While many southerners absolutely say and support shitty things, it's not on the level of mid 20th century Jim Crow and other parts of the country aren't the relative panacea they perceive themselves to be. In completely functional terms, many of those areas are more racially segregated and/or isolated than the south.
Again, when demographically many cities are majority minority, there's more of an intermixing by necessity. That leads to blindspot in perspective of people that don't live in those environments that they don't even realize they have.
It's not limited to race; there's a similar very real problem in the media business where there's an inherent bias toward jobs going to the children of already affluent families that academically understand poverty, but don't fully understand how poverty functionally affects people because it's never been an inherent part of their lives.
"But what I was talking about was functional racism in terms of daily life"
I think you're the one missing the point here. If disenfranchising a large part of the population based on their race, by politicians who more or less campaign on this sort of platform (though in coded language) and win elections repeatedly is not "functional racism", I don't know what is.
And of course you know very well that voting rights is not an isolated case of the racism exhibited by southern states.
That is not to say that only the southern states have racist people but what this sort of blatant, racist policy-making at the highest level is signalling to people of minority races is to stay away from those states altogether if you can. There's a reason immigrant communities are strongest in states like California and NewYork and not Alabama or Mississippi.
Is it "assuming" when you base your opinion on things said by federal courts?
This is based on living in other countries, mostly in US though, in both poor and rich communities, some were diverse poor and diverse rich.
Edit: It looks like Nex-Tech now offers gigabit internet. It's around $200 a month with cable and phone but to be fair it's rural Kansas. I use to pay $65 for their 10/5 when that was the mid-tier Internet only package. So they've really improved their service.
the recent trend in insane housing prices has definitely accelerated it, just from my circle of anecdotes.
I think a lot of the startup failures of really early stage startups might be due to the entire team being exactly the same age and right out of college. So they make mistakes that have been made many times before. Put another way there are many mistakes that can kill you and the more experience you have on your team the better you are at identifying them-- but you have to have innovation and new ideas too.
Which is not to say that any of these sets of characteristics are exclusive to a specific age -- this is just generalizations.
It's the older women who rock both architecture and quick execution. :) ("I'm sorry, but you opened the door, counselor")
Age does not immediately confer advantages or disadvantages - we just often use it as a proxy for "experienced", "more methodical", "slower", "inflexible", "good mentor". (Your pick here)
All of those are independent of age. Please don't compose a team by age. (Speaking as an older person. I bring a lot of things to the table, but my birthdate isn't one of them)
Like I said, you want diversity of ages. I'm in my late 40s, I work with 20 year olds and 30 year olds and a guy whose even a fair bit older than me.
Hire the best people first, then make your team diverse, both across thinking and across ages and across everything else.
But there's a synergy I've noticed more than once when pairing a 40ish with a 20ish. OR even a 20ish, 30ish and 40ish three person team.
I'm obviously not (and it should be clear in the above message) calling for quotas, but it's a good goal.
Homogenity reduces ingenuity.
You can't have 15 years of experience in [whatever thing] when [whatever thing] didn't exist 15 years ago.
Note: 15 years ago = 56k internet, paying by the hour, for the 0.xyz% of select few people on the planet
Some of the details have changed, the languages, the size of the databases, the devices involved, and a million frameworks for front end have come and gone.
Some of the time 20 years experience feels like 4 years experience repeated 5 times with different buzzwords. The same screw ups, the same lack of understanding from missing the same point, the same management wish to do SEO and security later. Or to budget 2 weeks for bug fixing.
Now you know 5-10 languages all with good and bad points so tune out most of the zealotry of the latest fashion to try and get to real distinguishing points.
All that experience can help a lot. It's far from dead. We can even have the same emacs vs vim argument that happened in 1990.
To quote the other comment: "20 years experience feels like 4 years experience repeated 5 times with different buzzwords".
There are two things which come to mind and that I'd like to point out.
- Each 4 year cycle is bringing less and less experience. The guy who is starting now is going to work for at least 45 years. We could say that it will be a tremendous amount of experience, but it's more likely than he will not be able to sell > 30 years of experience. [it's challenging and not specific to tech work]
- There exist no people with > 30 years of experience. That's not to negate the handful of these guys in the SV and a couple of research centers across the world. Relatively speaking, the amount of people with 30 years of experience is roundable to zero.
- Corollary: It's difficult to know what it's like to have 30 years of experience in the current market.
- Final word: Shiny technologies are only affecting the 20 years old bro coders in the 70 hours web startups. The bunch of the jobs are still in old school industries like medical/aerospace/finance/government/contracting who stick to old school tech and never upgrade.
You couldn't pay me enough to live in a place like SF.
I'm curious; where in rural Arizona are you based off ?
I get paid less at this job than I would if I was willing to commute to the city where my office is located. But I consider the mental and emotional benefit of not having that daily grind to be worth more than the wage gap.
I greatly prefer to slow pace of country life after a day working, whether at home or in the office. The technology industry is stressful enough without the added stress of city dwelling, in my opinion.
* be an excellent communicator
* be high bandwidth. F2F, skype, etc.
* be a whole stack developer
* manage "up". Think of things before your manager does, alert the manager to dangers and problems, give expert advice, avoid the problems. Managers love people who solve the total problem; they hate people who solve one very very narrow niche problem and then leave them (the manager) dealing with a leaky bag of shit. Saying "well, that wasn't in scope!" does not make them happier about holding the leaky bag.
I guarantee you that no one bidding $5/hr and working on a timezone 12 hours away delivers this.
So, to recap:
1) work in a city when young
2) make contacts
3) be good at what you do
4) manage up ; solve the REAL problem
Do that and you'll have lots of work and make good money.
I agree, and I hate it. What happened to the days when I could just be productive? Now, I have to spend hours "working as a team" (ie, socializing) on Slack. I hate it so much that I've dramatically cut down on the work I do. It's not that I'm asocial, it's just that I don't want to be exchanging memes when there's work to be done. I want to do the work, and do it well, so I can spend time with my wife and kids. Work for work, socializing for after work.
Even with IRC, it didn't use to be like this. What happened?
For the record, I'm not talking about being responsive, or good communications. That's critical. I've always responded to client emails within 2-3 hours (I break up my day into 3 email checks). But I find it impossible to get much done with teams that expect me to hang out in Slack or Hipchat all day long. But the younger kids love it. Maybe they code and chat at the same time, I don't know. I can't do it.
Doesn't anyone just hire people to do a job anymore? Are even contractors doomed to spending their days "meshing"?
What I'm talking about now is working as a contractor/freelancer for short-term projects, like even as short as 3-4 week projects. Most of the good freelance jobs expect you to be on Slack coordinating with their team in Eastern European country X. It really didn't use to be like this, I used to be able to make good money as a freelancer just coordinating with other freelancers and the contracting company/individual a few times a day. And in my opinion, it worked a lot better. Yeah, the irresponsible devs can't screw around as much if someone's keeping tabs on Slack, but the productive ones are significantly less productive this way. And why would you hire a remote freelancer you didn't trust to do the work?
And jobs that are paid per job and not per hour aren't any better, in my experience. Everyone has to be online, checking in, chatting, exchanging memes.
Maybe I've just had a streak of bad luck this year, but it definitely seems to be a significant trend.
I don't know, maybe I need to make a concerted effort just to work for small businesses, and not start-ups or mid-sized companies.
You work with people. Those people know people. They know other people. Someone says 'I need a good PHP guy' and a guy in the network replies 'I know a guy, SadWebDeveloper - here is his email address'. Boom: you have made contact with someone who wants to hire you.
Join the Whatever User Group in your area. Go to the meetings - introduce yourself. Be a presence on their mail list. Boom: more networking contacts.
This is a really good example. TJIC and I have talked on the internet for -years- via email and twitter and blog. A customer of mine mentioned she was looking for a local developer (Los Angeles) but couldn't find anyone who met even her minimal standards.
I said 'Hey, I know a guy', he lives 8,000 miles away, he's about a hermit and a half, and he knows his sh*t' and a few weeks later TJIC got some months of work and everyone was happy.
And now, here we are, talking. Maybe I can be converted to a networking contact. You never know, hunh?
No they don't. And your solution to not being stuck with closed and insular groups is join some closed and insular groups so that your name can be passed around as one of the group.
All you have to do is set your mind to it.
...and you're doing a great job so far!
* I emailed a band I liked whose song was featured as Demo Of The Month in a magazine, asking to buy all their CDs. We kept in touch, and months later they asked me for some (free) advice about setting up their website. Later again, one of their friends was looking to hire someone & they recommended me - I worked remotely for them for 10 years.
* I wrote a script in PHP and made both a free version & a paid version, then mentioned it on a forum. I got a handful of sales, but one of those customers liked the code quality so much they asked if they could hire me for contract work. That work was done remotely too.
* I went to a blogger conference overseas & before I went I made a Twitter list of all the attendees, read their tweets and made online friends with a few who I found interesting. I met some of them at the conference, and one of them I kept in touch with for a year after the conference. We grabbed some coffee when they visited my city, I mentioned I was having a slow work period, they mentioned they needed someone technical, and we worked together for a couple of years. Again, mostly remote work (though I did fly to their offices every few months).
Instead of being negative, plant the seeds now. Start making friends, keep those friendships alive, keep letting people know what you do, keep creating proof that you're good at what you do (even if it's your own projects). It's a long process and it still won't guarantee you work, but it will give you a much better chance of offers coming your way. That's what worked for me anyway.
Therefore it works for everyone.
There are lots of people that do not make friends easily. There are lots of people that do not have friends in the industry that they work in. There are lots of people that have moved very far away from any friends once or many times in the past few years and have either completely lost contact or don't have friends that would be in any position to throw other contacts your way.
So no, it is not just go make friends and everything will be great.
> No they don't.
Could be you are a deaf and mute yak herder in Outer Mongolia and suffer the heartbreak of psoriasis. Your situation is unique and you have my pity.
For those of us in the mart of competitive commerce there is no possible way a person can exist in this economy without knowing people.
> join some closed and insular groups
You have no idea what you are talking about.
You have my pity.
It may very well be that the best way to kick start your career is to move to SF or some other big city. So be it. I did the first 20 years of my career in the Boston area.
I have no idea what you mean about websites being racist. For picking lower cost developers? It seems odd to call people who give work to people in other countries "racist". Isn't doing that exactly the opposite of racism?
I'm telling you not to use those websites.
Move to the city, make contacts, do good work.
Or establish relationships with people instead of lowest common denominator platforms and let the quality of your work sell itself?
Word of mouth and personal recommendations are worth more than how many stars you are on a platform.
Just so your communication skills improve, discrimination is not the same as racism.
I got a lot more relaxed about language after reading numerous books by linguists (because that is their attitude, they just watch what is going on). In this context, I think the train has left the station (as we Germans say, "der Zug ist abgefahren") and "racist" now indeed has a new much wider meaning in public discourse contexts. It now seems to include "being different", in not necessarily clearly defined ways, the exact nature of the differences are to be taken from context.
I could just yesterday or today read about "racism" in a Guardian article about an attack on a Polish immigrant somewhere in Britain, who certainly wasn't of a different race . However, I'm very relaxed about it - everybody knows what is meant. Also, a shift in meaning in some context does not mean the stricter meaning of the word is lost! The exact same people who may use a word loosely in one context use it with its strict meaning in a different one. If you start talking about biology this will happen. Words and language are extreme flexible, and such a change is not the end of the world.
I think their is some justification: When the word is used in such wider meaning it's more about the effect, not the cause.
My motto for language is the same as in programming: Be as lenient as possible with input - but be strict about output. In the language context that means I won't criticize when I actually clearly understand the meaning, but I myself try to use the right expressions, grammar, punctuation, etc.
 https://www.theguardian.com/uk-news/2016/sep/12/polish-man-a... (sub-headline: "...they are treating incident ... as racially aggravated")
The term is used because the person being attacked was thought of as being of a different "race" by their racist attackers (and because that's the reason he was attacked; bot for being non-heterosexual, or for being a fan of the wrong football team). Not because one is in agreeance with the alleged "racial" distinctions (in the mind of the racist).
der Zug ist abgefahren
In English one would say "the horse has left the barn."
At least in my native English speaking world, we also say "that train has left the station". It's even listed as a cliche on a MetaFilter page on cliches and hackneyed sayings.
We also say "that ship has sailed".
But the cat's out of the bag now, so what can I do?
> Not because one is in agreeance with the alleged "racial" distinctions
> (in the mind of the racist)
That's the thing -- "race" doesn't really have a biological meaning. If anything it's just a vague suspicion that certain people are inferior or "alien" because of their DNA, the breeding, or simply their cultural upbringing. Of course it's all invented tripe, and biologically speaking it's equally untenable (from a biological point of view) to think of Poles, Anglo-Saxons and Italians as being of different "races" than it to think of Africans or East Asians in those terms.
But racists aren't the smartest bunch, you know, so in fact that's pretty much exactly what they think.
> "race" doesn't really have a biological meaning
And now the meaning of that word has shifted. That is all I said.
The idea of having to give up working on my startup goals after 20 years of continuous failure is in itself terrifying enough - But combine that with the fact that I might be penniless; forced to join a mega-corporation to become corporate cattle.
... In a company filled with arrogant lucky people in their 20s bossing me around. I couldn't take it.
I fear the next generation. I think MY generation is already so arrogant - We severely underestimate the value of experience.
I was one of the few people lucky enough to learn that lesson early though.
I once worked with a lady (a software engineer) who was in her early 40s and she always said that she never really cared much about her work. She always left work on the dot.
I was 21 at the time and I had been working like crazy since I was 14 but even back then it was clear that she was a much better software engineer than I was. For me, my career was the center of my life; for her, it was just a way to pay the mortgage.
In spite of what the media tries to tell us; 7 years of obsessive, passionate labour is not more valuable 22 years of 'bare minimum' labour. That's how valuable time is.
You hate where people are close-minded so you're _sticking_ with the countryside..? It's possible that NH countryside is different than the other small towns I've visited, but I have zero data points on that. Another discussion, another day.
I lived in SF for five years and performed a couple of hundred interviews for the companies I consulted with. Software engineers have the capability to produce millions of dollars in profits with the right product. People can quickly get over prejudices if they think you will be able to produce that million dollar product.
Keeping up with the startup Jones's is about relevancy. No one wants a senior engineer barking at them babbling about how "Smalltalk did the same thing 20 years ago and now we're just reinventing the wheel!".
Do yourself a favor in the interview; do a bake off of old style vs new stack implementations. Compare and contrast. It shows your vast knowledge. And it quickly graduates you from grumpy old programmer to a mentor for the entire team.
New web/mobile based companies start all the time in SF, and with each new fresh start comes the chance to wipe the slate clean and choose a newer stack that may provide a competitive advantage. Reactjs with redux right now, but probably something different in a year. New companies. New choice of stacks, all the time. The tides change quickly in SF.
If you've been turned down by a Bay Area startup, I guarantee it's much less to do with your lack of skinny jeans or because you have some grey hairs..
P.S. Also, you're a consultant. You obviously have an understanding of client relationships. Understand that your clients in SF are going to skew younger. One of my best friends was the CTO of a startup where the founder was 20. He was 45.
You may have a team of fresh-out-of-Berkley-engineers and that's it. If you're not comfortable in a mentor setting, you may also get rejected. At a later stage in your career and with a young team, you're expected to contribute more than code.
This is only true for startups and other companies that have small budgets or need cheap labor. If you are going after the high paying contracts you'll quickly learn that being 45 or older is often an advantage if you have the necessary experience. (not just technical skill but also social skill)
These corporations aren't going to allow a 25 year old consulter to come in and take lead of a team or a product. (except if the person shows truly remarkable skill)
If they hire young consulters it usually means they want someone that is cheap to hire and easy to fire.
Naturally that's just the most extreme example; far more commonplace was casual ignorant small-talk generalizing about "the blacks"/"the coloreds"/"the hispanics" in gas stations/convenience stores/the barber/etc. And the soft bigotry of low expectations absolutely permeated an area where people could and did go months, years without seeing a nonwhite individual in person.
You don't have to think I am funny any more than either one of us thought the idiot with the car was funny, but the purposeful, obvious misunderstanding of hate-speak accompanied by finger-pointing and laughter is a valid method of calling out idiots. And I think we can agree that the dude with the car was an idiot.
Anyway, I don't think anyone is saying that it's 100% impossible to find tech work if you're 45. I'm sure there is work, and I'm also sure it's the case that Bay area tech is different from elsewhere. But one of those differences is what gets produced- nobody is designing the iPhone outside of SF Bay, to put it bluntly. And it's important that work at that level is not age-discriminatory.
I'm 35, just started at a Bay area company, one that makes really nice products and has some of the best designers anywhere. And I can already see it coming, so many of the people I work with are 25-27. The people who founded this company are a good bit younger than me. The grey hairs are people like the general counsel. Sure, nobody asked my age, and I look younger than I am anyway. But still, I see it coming.
There's a real irony that tech in "liberal cities" is provincial and close minded and you are avoiding that by being in the country on a farm.
Also: I have never had trouble getting jobs in the Bay Area, though I moved before I turned 45. I did however work with people who were late 40s/early 50s and engineers, so I didn't see a huge age prejudice.
I'm the creator of the site the down blog in the OP links to https://oldgeekjobs.com. I developed it as an MVP last night in one hour.
The blog looks like it's getting crushed under load, so here's the content of the post:
Check out https://oldgeekjobs.com/ if you’re over 30.
In the software development industry it’s hard to get hired when you get past 35 and are still “just a developer”. Employers look down on you because you’re too smart, or they think you’re too stupid because you never wanted to be a manager. Employers will use the excuse of “culture fit” to exclude you and get you out of the hiring pool. You’re too smart to be tricked into working 60 hours a week for zero equity and zero bonuses. You’re too smart to be working on a legacy code base that has low quality and will hurt your future career prospects. Employers know that which is why they love to hire fresh faces out of school and under 30s; give tech companies your young and naive to burn them out and make them piles of cash. You’re experienced enough to avoid that demoralizing burning out.
Check out https://oldgeekjobs.com/ because there may just be a job for you, a place where you won’t be discriminated against just because you’re getting older and wiser.
This isn't necessarily an indictment of you. I'm just a little sick of people stereotyping younger developers on Hacker News when the truth is that most of us get great value for our time and are well aware of the choices we make.
It feels more natural if it progresses through asking what games I've played
A. Turnabout is not fair play; two wrongs do not make a right, especially when your wrong is to discriminate against people other than those who may have discriminated against you
B. Inflated expectations != discrimination
C. Discriminating against someone because they are too old is illegal; discriminating against someone because they are too young is not (both are equally wrong).
D. "I'm rather bitter and sometimes it shows" - Get over it.
It is completely discriminatory in B. when the only people who could possibly meet those inflated expectations can not logically be under the age of 30. I've seen this far too often to dismiss it as occasional - it is/was systemic.
It's the burden of the accuser to claim they were discriminated against because of age, and as we can see, there's no qualms with making lots and lots of articles and "think-pieces" out of the hypothesis. Sometimes "older" workers have unreasonably inflated senses of skills and/or worth, and can't take the ego blow, so, off to coping (see A) above.
Haha thanks for the armchair therapy with D., it's worth every penny from your barely 30 perspective.
I've seen this more with younger workers. In fact, that was me exactly 10 years ago.
My problem is when that site is accompanied by an attitude of old developers being better. Likewise, I would absolutely object to a job site for black people marketing itself by disparaging white people: "give tech companies your white and naive to burn them out and make them piles of cash."
I, for one, have a lush neck beard and am seriously contemplating going with the sandals with socks look.
It must be such a hard life, not having huge student debt and already having equity in a house so you can afford to turn down the 60 hour jobs. If only everyone understood how much you deserve it better than those young people.
There are millennials staring 40 in the face right now. People who graduated college in the late 90s/early 2000s are in their mid- to late-30s. The guy who posted this site is one of those people (though I think he misses the "millennial" cut off by 1 year).
Those of us in this age bracket are "old" by startup standards/stereotypes. I promise you college and home-buying wasn't terribly different 15-20 years ago than it is now. Still plenty of opportunity to go into incredible debt. And hell, 2016's 45-year-old who bought his first house in, say, 2000, may just have watched his home's value crash in 2006/2007.
So maybe just tone it down.
i'm one of these, and i don't consider myself a millennial.
anyone who's legitimately used a rotary phone (or even just seen one in use) in a non-ironic way should not be considered a millennial.
The last rotary phone I saw for sale was, I think, in the 1980s, the last one I saw in use was in the 2000s. Its quite possible that someone could be a millennial and have used one (IIRC, we used one in my house until 1986 -- the other phones in the house were touch tone -- and only ditched it because we happened to move.)
Really, the oldest are mid 30s, and I think even that is a stretch.
Most sources put the end of generation X as 1980. So unless you want to come up with a micro-generation for people born between 1980-1985, we're stuck in the millennial group.
The thing is that if we stick with a 15 year span, the youngest people who should really be called millennials are around 21 or 22, but it seems like each year the lower bound for millennial grows (I occasionally see news reports referring to children as millennials).
I'm assuming this trend will stop when we settle on a name for the next generation.
Tuition for the college I went to is around ~18% more expensive now than when I went in inflation adjusted terms, the loans you can get now to cover them are around half of what I paid between 1996-2000 (at a state school). I haven't done the math to see how that all breaks out for real cost differences, but I'll concede college is more expensive now.
Also if you've graduated in the last 6 years or less, you've come into a job situation that is phenomenally better than that of someone who graduated from 1990-94 or from 2002-2006, which has probably a bigger impact on your lifetime earnings than your generation (think how capricious that is).
If you're truly ignorant of the subprime mortgage crisis a few years back, you can check out The Big Short (book or movie, but I'm told the book is much better) for good insight into history and mechanics.
Point is that the economy has changed a LOT in the last 15 years, and lots and lots of people suffered. Generation X is not the Baby Boom generation. I think you sound a bit foolish/ignorant appropriating the "Baby Boomers ruined the economy!" rhetoric and applying it to the generation-and-a-half that followed them.
You are trying way too hard to make yourself sound like a victim.
The usual starting point for the Millenial generation is a birth year of 1980; if 36 is "starting 40 in the face", it is not from a particularly close distance.
And that's the absolute leading edge.
I've been a part of hundreds of interviews for dozens of engineering positions at a variety of companies and organizations. While I have witnessed clear-cut ageism with qualified older candidates, it's with the distinct minority of older candidates, and typically only with borderline ones. Compare to even the most qualified female candidates, where there's almost always a strong undercurrent of sexism, or non-Asian minority candidates, where there's almost always a strong undercurrent of racism^.
So I won't deny that ageism is a problem but - in the case of white dudes - it's the jolt of a sudden uphill at the end of a couple decades of easy slightly downhill coast. Compared to continuous vertical climb that women and non-Asian minorities have to put up with in engineering, it's a pretty modest problem that the affected have both ample time and opportunity to prepare for.
^- The tech industry isn't, at least in my experiences, blatantly racist/sexist these days. Anecdotally, women and minorities have an easier time making it through HR/recruiter screening. It's a more subtle and pernicious effect in tech interviews, where correct answers are overscrutinized for flaws and even marginally incorrect answers are blown out of proportion. Never seen this with older (white/Asian, male) candidates.
30 is old now? Ha! Joke's on them, or indeed anyone who would have wanted to hire me at 25.
All I see is a form to post job-ads, and nowhere to look at them.
The varies a bit depending on the kind of dance, but, yeah, people who can stay in dance much longer than that (and, really, people who can make a decent living in it at all, even below that age), mostly do so as dance instructors, choreographers, etc., with their own dancing (if its even something they directly get paid for at all) sort of an adjunct and means of advertising the other parts of what they do.
There's something much weaker in technology (not just in computing) in the worker -> manager push, where people who don't jump that divide by a particular time start being seen as less desirable as workers. But its brutal in dance (and only partly due to the actual physical requirements of performing the movements.)
It's amazing if you can even live as a dancer. Usually, there's a second job. (I worked in CS in parallel to the dance thing. And at some point looked at the pay checks :)
I am curious, did they need to retire because they no longer possessed whatever it took to dance, or was it because people in their industry assumed they no longer could, or simply because they needed a more lucrative job?
After 6 months of interviews in the Bay, I gave up (due to cost) and decided to try another market... less than 6 weeks and I had a job in Charlotte. I had my first iOS role at a startup another 6 months after that. Even after the startup coughed me up (thanks again Zomato), I was able to get another iOS job in a month. I won't mention (any other) names but I can say that the culture fit issue doesn't really exist outside the Bay.
And to any decision makers out there, you are making a mistake if you assume someone like me can't fit on a team of 18-30 y/o. I fit in so well, in fact, that almost all of my new connections on LinkedIn are these same 18-30 y/o. I have made more friends with interns than I did when I was the age to intern. And my 20 year-old friends have no fear in making fun of my age just as I have no fear in making fun of theirs. We even talk sH$@! about race (oh yeah, I'm also black).
The experience has been awesome for me as well as them (I believe). So, the next time you have a chance to hire an old dev who just wants to be a fu$!@E~!! DEV - just hire her.
People who share complaints here, on Reddit or on more or less similar places, do indeed keep up in general and always have personal interest in tech. But that isn't a magic bullet. They'd have better chances if they had stuck with COBOL, for example.
Go tell that to a recruiter... most don't care about what you toy with; they generally don't even have the slightest idea of what it may be. They just care about what you've been doing at your previous company, if it sounds like the position they have to fill, if the title of the gigs looks good, if the company name looks good or if at least they've heard its name before, and that's all. You are not given a chance to explain the interests you have and side skills you may have developed, it would be all Greek to them anyway and they do not value non-professional experience. Admittedly, I am not talking about California here.
I'm really interested in hearing more of your story.
Yeah, almost all of my connections are people I worked with too. ;)
I wonder if it makes any difference being > ~40 years old but having less experience. Instead of trying to walk in and be the ultra senior person, you just walk and do the job of a mid level dev.
The only thing that matters is if the candidate can do the job and get along with people. Everyone talking about "would I want to have a beer with this person" can fuck off.
I have seen the culture fit thing outside the bay, though.
What’s really happening is two things. First, companies typically don’t like paying people lots of money (even if they are great at blowing millions on other mindless things). Second, these companies do not understand that their unwillingness to hire expensive people is causing months of bug-chasing and monkey-patching in their products.
When your organization is under the impression that “a developer is a developer”, new college grads willing to work for peanuts are very attractive. It takes a good manager to understand that someone’s decades of experience or advanced degree really is worth a lot more money, and not just in the long run. Experienced people have seen more programming constructs in more languages, they have encountered more examples of APIs in more libraries, they have made more mistakes and learned from them, they are more likely to be able to apply suitable algorithms and data formats to problems, and so on. Also, having experienced people on staff actually gives your new developers somebody to learn from.
These companies would NEVER hire an older, experienced developer because they know they wouldn't be able to retain them.
Its worth noting that I work on a dev team where the average age is about 40 (I am 27). We have multiple members of the team nearing retirement. Having the older guys around makes my job much easier and gives me resources that I wouldn't have otherwise. We are able to keep these guys around because we work on interesting projects, don't work more than 40 hours a week, and have a great manager.
Not only that, but they don't have to retain them. . There is a large supply of "~20 year olds who aren't quite Google material" lined up to take on those $80K developer roles. The "churn and burn" strategy seems to be working for these companies so why change?
People only care about how long it takes to write something from scratch. That dictates everything, from which frameworks or languages are "hot", to which methodology people use, how projects are managed, and....who gets hired.
There isn't a big argument that someone straight out of college with low experience who happens to know the latest new trendy thing will probably pump out a semi-functional MVP faster than someone more experienced. More energy, more willing to work late hours at home because of less responsabilities, but also less experience leading to less time spent trying to think about real problems that could come down the road and how to prevent them.
That lets someone code really, REALLY quick. It will blow up down the road and then thats just "normal" and goes in the bug queue and tech debt goes out of control.
I was once in a meeting where someone was like "Well, of course this code is buggy and sucks: Its at least a year old!!!"
I was floored.
Many SF tech startups overtly believe that actually planning your code before you write it is just, well, not very "agile" -- that's old school, that's waterfall, proven to be deficient, that's not how we do things in the new world. Planning an architecture before coding it?? Why, you may as well be wearing a pocket protector and hating on women and minorities from some massive IBM cubicle farm in the suburbs while chainsmoking and punching your code into paper cards.
In the new world, you break things and move fast -- when you're assigned a massive new project, you just sit down and start typing. When your unplanned, non-architected code turns out to have serious structural issues that make it unextensible and unmaintainable, why, you just layer another level of crap code on top of that to plaster over the cracks, and another on top of that, and so on.
I wonder how much of this has to do with the churn-and-burn VC culture, where they fund hundreds of startups with just enough money to build an MVP so they can "test for market fit," then burn 99 of them and move on to the next batch.
Peanuts being a ways north of 100k a year at the bigger companies.
> advanced degree really is worth a lot more money, and not just in the long run.
Are we talking PhD?
Agreed. I started working in tech when I was 22--now I'm over 30. I've never witnessed old-age discrimination. What I have witnessed are start-ups, built on newer tech, (AWS over on-prem, nosql over relational, etc), passing on candidates whose last reference book was the Data Warehouse Toolkit and still want to be called WebMasters.
The law of the tech industry is when you stop learning--at any age, you lose market value.
You can always catch-up and learn something that becomes important/mainstream, but you can't un-waste your time deep diving on a dead-end technology.
So I focused on skills and went into contracting as soon as I could. Now the reason I don't work for startups is that they keep trying to pay me with a mystery box of stock options and I'm not buying it.
Another bonus about contracting, apart from the money and flexibility, is that you get left out of company politics.
So tl;dr... Life doesn't owe you anything. And I recommend contracting as a career / lifestyle choice.
And if you work 80 hours a week, you get paid 2x as much.
This isn't a dig at freelancing / contracting. I did it for a while and it was great. But you have to be realistic. Also, billing 80h per week would be near impossible unless you had someone else managing your business for you.
However, lots of people allow their minds and bodies to rot as they get older. My parents, as much as I love them, are not very employable at this point(at least not when compared to a younger candidate). They don't get much exercise and spend a large chunk of the day sitting in front of the boob tube. They are smart people, but their ability to learn new things has gone way down, and I have noticed they are a little more gullible than they used to be. Meanwhile, I have friends who are in their 50s and they have the energy, motivation, and learning abilities of someone in their 20s.
I wonder if this has something to do with the exercise they get, and the lack of TV watching. The calorie defecit from both those things probably slows their aging a tad too. I think if you want to be programming at age 50, you can easily add years, perhaps decades to your youthfulness by taking some basic care of both body and mind. It may seem like an obvious statement, but most people don't actually do this, and it shows in people my age who have the habits of my parents while also drinking heavily and smoking way too much. It's kind of spooky when I see people who were once youthful looking, in their 20s, quickly start to look like they are in their 40s because they don't really take care of themselves beyond basic hygiene.
Exercise and physical activity are supremely important.
Also remember that you are 30 and not 50. I did mention how I've seen people essentially become 40 at age 25-30, but I'm sure there are exceptions. There are also some factors that complicate this:
- Junk food is defined differently depending on who you ask. Much of what I eat is "junk food" in the sense that it's mostly red meat, fat, cheese, and some fish, yet I weigh 145 lbs and always check out fine during physical exams. Someone can also eat food that isn't commonly considered healthy, but they may also not eat very much of it. The French are a good example of the latter as the common French diet includes lots of carbohydrates and sugar, yet they don't have nearly the obesity problem of America, and it's suspected that them not eating as much of it is a significant factor. (Americans often value quantity over quality)
- As I hinted at a few times, calorie intake is actually a factor in how a person ages. If I remember correctly, a 400 calorie deficit slows aging slightly, and it has something to do with activating a protection of the chromosomes during mitosis, but it's not really understood by researchers as to why this happens. Note: This is highly speculative on my part, so keep that in mind. I do suspect that this plays a part in why some people I know age so poorly, and these same people also consume large amounts of food. Please don't just believe what I say, though. :)
- Sugar, which added to nearly everything you buy from the grocery store, has been linked to aging in that it causes oxidation in cells causing damage to proteins. I can't remember how the specific process works, but I think you can look up Advanced Glycation End Products and get a better explanation.
- Many people have this idea that consuming fats of any kind is bad. They really need to get this bad science out of their heads, but it's a zombie theory that doesn't want to die. I remember being taught about how bad fat was in the nutrition class I had in high school, and it's pretty bogus as fat is needed by the body in many ways, including brain function and synthesizing hormones. You can get away without it for a long time, but I don't think that it's sustainable, and maintaining a low fat diet probably has long-term consequences on cognitive function.
I know I've gotten way off-point here in explaining my hypotheses, but my point really was that $AGE != $ABILITY. Someone who is in their 50s could keep up with a person in their 20s, but might be rejected because their hair is too grey, which is sad. The best thing one can do for themselves, if they want to continue their career into their late adulthood, is live both for now and then; eat good healthy food and exercise now, eat good junk food occasionally, and maybe you'll still be coding and jumping into the mosh pit when you're 55. Everyone's body is different, but certain decisions you make will improve your odds of being in better health later on, and those decisions aren't a losing bet.
EDIT: It might sound like I'm advocating for some specific diet, but I am really not.