Hacker News new | past | comments | ask | show | jobs | submit login
On Programming Languages: Why My Dad Went from Programming to Driving a Bus (ntguardian.wordpress.com)
195 points by albert-helmuth on March 13, 2017 | hide | past | favorite | 215 comments



As you might imagine, this article is raising a lot of issues for me since I took a break from programming and drove a city bus in Las Vegas. Now I am back to programming (before C++:PHP3:ES3, after:PHP7:ES7:Node.js) Driving a bus is a most interesting proposition and I can say without a doubt it was the most satisfying job I ever had. I had to learn street smarts and apply them effectively. As someone without them, this was both a challenge and a thrill. I'm not driving a city bus now because of high blood pressure.

Some thoughts: OP's Dad doesn't want admit to his son he prefers driving a bus. OR OP is assuming he doesn't when he actually does. OP's Dad certainly knows he is displaying a remarkable lack of initiative when it comes to learning new languages and it sounds like he's manufactured some excuses to satisfy the family. Bus driving is an addictive Zen like experience, I-kid-you-not, so I might be right.


>> OP's Dad certainly knows he is displaying a remarkable lack of initiative when it comes to learning new languages and it sounds like he's manufactured some excuses to satisfy the family

No, OP's dad is sick and tired of working for an industry that drowns him with its stress, misery, and corporate bullshit. The reason for finding an excuse to give your family is that they are expecting you provide them with a/an (upper?) middle class lifestyle. Screw your happiness and reduced levels of stress; what matters most to them is your paycheque and what it can offer them. For some people, $20+ more per hour is not worth rotting away in a cubicle, while being treated like a replaceable nobody, always being belittled like a child at every review for "not meeting company goals", all the while being part of the very reason the company is making millions of dollars a year. All for what? A white picket fence that ultimately adds no meaning whatsoever to life?

I'm single and turning 32 this year. I'm beyond sick and tired of this industry. I'm constantly put down like a piece of disposable garbage; and yet every time I leave a company, management is freaking out and begging me not to leave because of the success I've brought them. I can't imagine being a dad, with the burden of responsibility that adds. I'd be having my first heart attack before age 40.


You might enjoy moving to Silicon Valley, I can assure you good SWEs are treated much better here than whatever location you're describing. Talented engineers are highly valued and treated as such.


Hear, hear! Don't want to deal with it? Take off! Companies need us, not the other way around.


I'm a 35 year old Dad, my son is 3 years old. As a developer, I'm extremely well paid, and my working conditions are amazing. Sure I'd like a 500% payrise and a big office of my own, but I'm not going to complain about the wonderful job I already have.


At 37 and having suffered some truly bad burn out between 33 and 36 I think your view is being colored by your current employment. Lots of places treat code and programmers as a commodity. As soon as one burns out, replace with another. Those are just shitty places to work. What you're describing feels very familiar.


Unfortunately I am Canadian, working in Canada. The vast majority of companies employing developers within Canada's borders are American companies who generate all of their revenue in USD, and then pay $60k-$85k CAD per year to each software developer.

Why pay $100-200k USD per year + stock options + 401k + an expensive health care package to an American developer when you can outsource to hard-working Canadians for less than $60k USD - with no stock options, no retirement package, and an extremely cheap benefits package? Also, our federal government reimburses companies a significant portion of our salaries simply for employing us (the "SR&ED" program for research and development, but everyday development is fraudulently claimed as R&D by every company - SR&ED is a scam, where their agents nudge you in meetings to reword your basic web development as somehow qualifying as "R&D").

Developers in Canada are largely taken advantage of. Most of the companies who employ developers here only do so because they are getting 2-4 developers for the price of one they would have to pay to hire locally within the US. So yes, I'm burned out because developers in Canada are treated as nothing more than a cheap alternative. We may as well be India up here.


Is this the general consensus in the Valley ?


It might not be lack of initiative; It might be just the old fashioned mindset that companies are a lifelong partner in your career and retirement. After all, if not ever true, it was true enough to be a successful strategy for a generation of people. Those with pension funds intact did ok.

There was no final warning bell for everyone that from here on out you are 100% responsible for maintaining a skill set. It was so gradual it could have (and was by a lot of people) been missed.

I think the lesson is broader that passion for writing code. With equal intelligence and resources anyone will likely be crushed by someone with more motivation. How many scientists did great things because of insane drive bordering on or crossing into obsession?

To me the lesson is there is not one simplistic goal (learn coding, get a degree, etc) that will bring you success in life, monetary or otherwise. We have to be diligent through our lives because not only are the rules elusive, they're likely changing as we learn them.


I've met so many people who Uber/Lyft for similar reasons. They could be doing their regular job and making 2X$/hour but instead are driving make $X/hour. And I get it. It's the end of the working day and their job is done. So they do something else for a few hours, make a little money. Keep their sanity and come back to work the next morning.


I few years ago I met a I guy who run some small business and for few hours per week drove a buss, mostly at night shifts. He told me that he had to do that for little extra cash and to keep his bus driver skills in case the business would not work. But I got an impression that he just enjoyed the driving.


I recently went from programming to janitorial and I've been really happy with it.


I can see the attraction to janitorial work: no politics, a defined scope, knowing when you're done, not taking problem home, no reinventing and learning the new wheel every 2 years, etc...

I'd miss the building something part, and the intellectual challenges, be it understanding the business logic better, or debugging complex issue.

But, to be honest, unless I'm very mis-informed, the difference in renumeration would be the first issue I'd face.


> But, to be honest, unless I'm very mis-informed, the difference in renumeration would be the first issue I'd face.

Contract based cleaning was actually fairly lucrative not too long ago, particularly for overnight cleaning. It paid 2-3 times (maybe more) what you would make from being employed as janitorial staff. This all changed when large managed service companies started to be a thing and a local contract cleaner couldn't compete with professional salesmen. In turn it meant that well paying cleaning jobs became a thing of the past.

Source: My father ran his own one or two man cleaning business. He was making much more at this in 1990 than when he retired (as an employee) in 2010.


Is this serious and if so can you explain why?


At least when you clean up shit you're boss can tell.


I didn't much care for janitorial work, but man I'd jump at the chance to go pump gas in a full service gas station again, if I could keep my IT salary of course.


Work on your own projects from a laptop between pumping gas?


Then the gas company owns your IP.


I also am interested in this story.


  Bus driving is an addictive Zen like experience
The movie "Paterson" addresses this exact situation. A poet who drives a bus. Very good movie I recommend anyone interested in this topic to watch it.


Up to the age of thirty, I used to get on the bus, go to the terminal point, and come back. To clear my thoughts. I've tried this both in India and while I was a student in the US. Found it immensely beneficial. Unfortunately I live in a city which lacks public transport, so can't do it any longer.


Funny, I've found that the best place for me to concentrate is on a bus or train, provided there's not too much noise around. During one hour journey I can usually accomplish more work than 3-4 h in home/office.


Reminds me of a story about Poincaré and the contributions of public transit to mathematics.


Thanks for the recommendation! It's a newer release by the great director Jim Jarmaush so I bet it's really good.


This is a good object lesson for the common advice of "do what you love". If you really love working with computers, then it is really hard to resist messing with them all the time. So you have a side effect of constantly improving your knowledge. But if you don't love it, but are only into programming because you can make money at it, then you won't be driven to constantly learn (even if that learning is just a side effect of "playing"). Now that doesn't necessarily mean that you will be an expert at everything, but people who have a passion for this type of sport will be in a position to pivot when needed.

I've run into people in similar situations, they used to be a systems administrator or a developer, but are completely out of it and no longer able to write any code. In some cases it is burn out, but I couldn't imagine ever going so much as a week without experimenting with something that is intellectually stimulating.

Now it may be that the protagonist in this story really did have a passion for translating business logic rules into Cobol. But was he really doing programming, or was it more following a set of procedures that ended up cranking out the needed code, without having to really invest a lot into the process? Because if there was a strong passion there, I'd think it would have extended to continuously tinkering around with other technology. (Or am I getting dangerously to the "no true Scotsman" fallacy?)


Man, I am real, real sick of the premise that I, as a professional, am somehow second rate due to the fact that I have interests outside of my work when I am not working. I build a lot of shit, I am real good at my job, and I have survived multiple rounds of the predominant tech stack being totally purged, but when the whistle blows I am not in front of a keyboard.

You guys should really consider cultivating interests outside your work. You'll be glad you did.

And you'll also find that dedicating yourself to professional excellence just within the context of your daily work will yield more than enough opportunities to develop technologically. There's a lotta shit going on out there that's directly relevant to your work, you just gotta try it out.


... but you are second rate. Get over it. Professionalism has nothing to do with this.

You are second-rate (or worse), as am I, because there is always someone who is as smart or smarter who is also single-mindedly more interested in the topics of our work. For every discipline there is an Erdős, who will make the rest of us look like fools and dilettantes.

Tonight, when I knock off, I'm going to put on a silly cotton outfit and spend a couple hours grappling. There is absolutely no way that such a hobby would make me better at what I do than some shadow version of myself that instead spent those 2 hours learning about Galois Field Theory or advances in compiler optimization or some such. Next to that person, I am second-rate and will always be happy to be so, but I'm not going to get mad and bitch about how that sort of person does better than I do at work.


By that logic, since there is always someone as smart as or smarter than the next person, then by induction everyone is second-rate except some mythical super hero who is absolutely the best in a given field.

You know what happens to people who put in those two extra hours of work every night? They go to work the next day and still get paid the same amount of money as if they hadn't. Then they wake up at 40 wondering why they wasted decades doing extra work for the same salary instead of enjoying life and doing something, /anything/, besides staring at a computer all day.

99.9% of people don't have to care about being second-rate, or even third-rate or fourth-rate, because most developers aren't Paul Graham and they aren't Saving The World (TM). They're feeding their families and enjoying their hobbies outside the hours of 9:00 AM to 5:00 PM. And that's okay. Even so, just because they don't print out Linux kernel mailing list e-mails and snort Dennis Ritchie's ashes with them doesn't mean they're second-rate.


Your induction is nonsense, as the OP is talking about being a 9-5'er. It's not all that hard to outwork a 9-5'er and most names that we have heard, from any field of endeavor at all (math, cs, science, engineering, creative fields), would have done so.

Also, some of those people who put in those extra two hours of work go on to get promoted faster and/or wind up getting their names on Big Important Things.

Either way is a perfectly fine choice, but there's no call to have a hissy fit at the idea that there are people who are just as smart as you (or smarter) who are out-working you, and possibly not even having a particularly bad time doing it. Way back in this thread, the original guy was talking about enjoying tinkering with computers...


Moreover, the presumption that you're outworking me is... well, it's certainly possible, some do. I certainly know a few. Fewer than you seem to think though. It's possible that my disdain for recreational programming is a byproduct of my workload, rather than the other way around.

Either way, my server is back up, so I'm gonna go play my guitar.


At no point did I ever suggest I am outworking you.

I'm pretty squarely in the "work and go home" camp, although I have been known to spend more time pondering algorithms problems and SIMD programming than is entirely reasonable.

However, I have done you a similar reading comprehension fail by suggesting you are a 9-5'er, which is a idea introduced by the other guy (the one who imagines that elite programmers snort Dennis Ritchie's ashes) to the thread.


Whoever said I was a 9 to 5'er?


I think you're misunderstanding. The problem is not that there are very good people to be second to, it's that people are cargo-culting on their observable characteristics and thus mis-valuing people.

One doesn't become Erdős just by carrying around math books and sleeping on couches all the time, after all.


Speaking personally, I have a bunch of interests outside of work, many of which do not involve a keyboard. However, I also have an interest in programming projects, though I don't get as much time as I'd like to pursue them. Why would I want to do more programming at home when I do that all day at work? Simple: at work, I'm not working on my project, nor do I get to do it the way I want. At home, I can do whatever I want for my project, and I can do it any way I please, organizing my code however I want, using whatever OS on my computer I want, having whatever kind of workstation setup I want, and not having to use a computer that's hobbled by IT.


Fair enough, I been doing the startup thing for so long, I forget about big company problems. My typical workday is probably a lot more wild west than the average coder's. I imagine there are a lot of people out there whose creativity is somewhat stifled in their work. Many times it takes everything I have to keep the lights on around here.


Just to add to this: at home, my computer is more like Usain Bolt (well maybe that's exaggerating a bit, but still). It runs the OS I like, with a monitor setup I like, the keyboard I like, etc.

At work, my computer runs Windows, and Linux in a VM (but not the distro I want, but rather one which is pre-approved). So instead of a supreme athlete like Usain Bolt, it's like a 60-year old chain smoker who gobbles Twinkies.

Then, add in various IT policies and software. This is like taking the Twinkie-eating chain smoker and doing to him what happened to the guy in that movie "Misery".

And people wonder why I'd want to do more programming after work...

For a car analogy, my computer at home is like a Ferrari. My computer at work is like a 1980s Ford Taurus. And adding IT's changes to it is like trying to make the Taurus tow an 80,000 pound semi-trailer.


This is a pretty accurate description of my motivation for doing side projects. Corporate pays well if you are willing to work on maintaining their existing projects; the catch is that you'll often be working with languages and frameworks which peaked a few years ago. Also, corporate isn't always a productive place. A lot of creative energy is lost on stuff like communication, process and management.

Working on your own projects means getting to work with stuff that excites you, and to pave the road for future opportunities. Most of all, to have fun.

That being said, my wife and kids have first dibs on my spare time these years and that's fine. I try to squeeze in half an hour of recreative programming a day.


I like the cut of your jib. I am wondering, though, how does one keep current without spending copious off hours, when there's no way to learn anything not relevant to work on the job?


I mean, I grant that there are places where there's just nothing to do, or more specifically, the organization doesn't allow you to fully apply yourself, but man, there are a million shops out there with their hair on fire.

If you feel like you could do more, I promise there are people that would be happy to feed you as much as you can stand, haha. You do native mobile by any chance? :)


1. Not everyone knows what they love: what are these people supposed to do? Not get a job until they figure it out? For every one person I know who has a true passion and talent for their profession I know ten others who don't know what their "passion" is (and most of whom desperately wish they did)

2. Not every lovable thing is profitable or in demand: my roommate has a passion for film production. But it is a hugely competitive field that is difficult to break into. He's gotten the occasional gig here and there, but nowhere near enough to support himself (and sometimes not enough to pay rent, but that's a rant for another day).

Everyone needs to eat but not everyone can follow their passion.


For number 1, most people know about what they want, or the general direction of their interests, fairly early on. Although there is the bit about you don't know what you like until you've tried it. But the sooner one figures it out, the better off they will be.

For number 2, yes that is an issue. But if you force yourself to do a job you hate, you will be miserable. And if you tolerate it, but don't really dig into it, then those who do will usually come out further ahead. This isn't a moral or value judgement, it is just the way life works.

I personally don't know what I would do if there wasn't good money in computer work. My second choice would have been accounting probably, or one of the trades. But if I was in a job that I absolutely hated, or if it was tolerable but was going away, I most certainly would be working towards something better. Either that, or take up the life of a goat farmer.


>For number 1, most people know about what they want, or the general direction of their interests, fairly early on. Although there is the bit about you don't know what you like until you've tried it. But the sooner one figures it out, the better off they will be.

There's a special hell for those who don't want to treat non-special people as human beings.


Is that really the way I sounded? Not intended that way at all. That is, not intended as a value judgement -- just an observation. If I sounded otherwise, I guess that why I didn't go into a career as a writer.

The point was, You either like what you are good at, and excel, or you hate it, but are good at it anyway, then it takes a lot more effort to excel. Or you get too locked into what you think you like (that happens to pay the bills pretty good), that you don't explore other areas that you might end up being good at. Then the world leaves you behind. (Kind of like getting a kid to try different foods -- you don't know what you may like until you try it, and sometimes you have to keep trying at it until you learn that you like it).


maybe I missed your point, but imagine you were a person who could never go so much as a week without experimenting with something that is intellectually stimulating

then imagine you had spent decades working in programming shops, propping up one poorly conceived project after another, using so many languages and frameworks and operating systems that they blurred before your eyes.

then it might not be hard to understand how tending oranges might be a lot more intellectually stimulating. its not some generalized 'burnout', its just mind numbing boredom


I love making art. That doesn't mean that people are willing to pay me for it enough for me to afford the living that I desire.

Enough with this "do what you love" mantra. It's terrible advice that leads to perpetual career dissatisfaction. If it were so damn fun, then they probably wouldn't be paying you to do it because other people would be willing to do it for free.


What type of art? Are you somewhat good at it (i.e., do you have the "gift" of an artist's eye)? See if that skill can translate to CSS page layouts. Many programmers (such as myself) may be able to put together a functional web app, but a good artist can come in and change a site from functional to an eye-popping pleasure to use. Architecture, photography, book layout, these are other areas that one may not consider to be directly applicable to a love of making art, but really they are (or can be).

And that was my point. It doesn't work for everyone, but it does for more people than they realize (and to more of a degree than what they realize). Find a way to apply a talent to some other domain that can benefit from that talent.


Music. I only like making music for my own sake though - making music to please others never interested me.


That sounds like open source software...


It's not always a lack of passion for the subject. I have plenty of that, and I still hack on things more often than I am idle. I'm always trying to create vs. consume.

However I definitely get not wanting to learn the next thing - especially after hours. Most of what I've watched happen over the last 10 years is just yet another shiny tool to replace the old tool, without any real-world benefit towards actually Getting Shit Done(tm).

Essentially I've watched a lot of technologies get replaced by tech that is only marginally better (if at all) that has one significant feature: It's not the old 'boring' technology. From what I can tell programming languages have become less about getting things done, and more about social signaling you are part of an "in" group.

For technologies that are truly groundbreaking and game changing? I can't tear myself away. For the shiny language of the week? Meh. For Yet Another Web Framework? Yawn. I simply am tired of learning those technologies - learning one or two should be enough, and then you get to work and solve real issues. Learning the syntax differences between Perl, Python, and Ruby is truly a waste of time that is extremely boring in nature - you're generally not learning many new concepts, just different ways of implementing the same stuff you've been doing for 20 years.

You don't need to understand how to operate 14 different hammer models - you pick the regular hammer you usually use, and maybe a speciality one or two for occasional jobs where they make sense. Programmers seem to pick the hammer based on how cool it looks and if their friends think more of the project because it's made with the same hammer they also chose.

I think the amount of time technologists put into re-inventing the wheel is absurd, and has really caused me to largely burn out in the industry and start planning something for "post tech" where it's less learning treadmill for few real world business gains.

Put another way - What gets me up in the morning is solving problems for people in an efficient manner and moving on to the next problem. Many seem to think technology exists to build other technology, and that problem set simply isn't interesting to me.

Thankfully I'm not a programmer - I only have to dabble to show proof of concepts. If I were, I know I would no longer be for largely this fact alone. Learning and using the next new shiny is simply getting boring as hell and uninteresting. It's almost as if the industry has run out of real work to do some days.


I was surprised at the end you say you are not a programmer. What do you do? It certainly sounds like you work with programmers or very close to them.

You have a tremendous advantage in that you understand the customer / end user does not care how the thing works, as long as it works.


I spent a fair bit of time staring at the ruby hammer recently in order to fix up a ruby-hammer-user's misuse of ruby concepts in perl (and I suspect their own native code is rather difficult to understand too). Bleargh.


If you love pursuing a career, finding jobs, following job trends, promoting yourself to potential employers, doing the work necessary to stay ahead of the competition, etc., than sure, doing what you love will keep you employed. Loving to work with computers will not.


What if programming in 30 years looks so different from what it looks like today that it's no longer what you currently love? You're just outta luck?


Yes -- my rant above wasn't intended to be a value judgement, just more of an observation of the facts. On the other side, it is possible to change what you love. I used to not like tomatoes, but I got tired of taking them off a burger -- so I trained myself to like tomatoes. Also, got tired of throwing out buttermilk (that I'd buy to make biscuits), so I learned to like that too (so I'd drink it before it went to waste). On the tech side, there's been many times that I've preferred one technology, but hated another. But by working towards it, I've become fairly good with things that I previously despised (such as Oracle databases, or Windows API). The trick is to try to find something that you like about those things. Find beauty in even the ugliest of nasties. It is just an approach to life.


"Find beauty even in the ugliest of nasties." Man, that's beautiful. You should write an ebook! (no sarcasm intended)


What you love can change as you move through your life. Sometimes significantly. Investing a couple of decades in something and then finding you're no longer very motivated by it, can be profoundly discouraging.


right on. programming is a reasonably fast-evolving field, just relying on things like employer-provided training is not enough.

There are exceptions of course - you'd be surprised how many 9-5 types working in big corporations where they are far removed from the core business of the company (manufacturing, insurance, retail etc type industries) never ever take any kind of training or put any effort to stay up to speed otherwise.

Typical model for these companies is to rely on new hires to bring their expertise in modern tech if they are looking to revamp something or they just straight up hire consultants to build "cutting edge" things for them and then look for an inside team to support those once the contractors are gone. In the meantime the 9-5ers become team leads and go from there :)


One thing to point out - there are hundreds of thousands of fully capable programmers out there who could easily be trained in the languages of the day in the right environment or business, but there are next to no places willing to train someone.

Whether thats a jr. frontend job or a senior backend job but Java instead of C# (or vice versa), people would rather spend months with a position unfilled than take a risk on training someone to do better. Its hilarious with all the "right to work" states that you could basically just try someone out and get rid of them if they don't work out that it always seems like too much trouble to invest in someone's learning and get a good and usually pretty loyal engineer out of it.


Why do people need someone to train them? Can they not teach themselves? 20 years ago we had books and CD-ROM magazines, now we have websites, youtube, and e-learning. The resources are and have been out there...


I started programming at age 11, so I taught myself a lot of stuff. To this day, nobody believes I know anything I haven't done inside a for-profit company. Self-teaching as a kid? Nah. Self-teaching as an adult? Still nah. Things I worked with in uni and grad-school? Hell naw.


> To this day, nobody believes I know anything I haven't done inside a for-profit company

I have this same issue. I'm a PM who has been trying to move into a dev role for some time. For 6 years now I've self-designed, developed, and published several reasonably polished mobile apps and games that have decent reviews, and even some press. Interviewers always thank me for my time and tell me they are impressed with my projects, but "unfortunately we are looking for candidates with professional experience".


I went through the same path. I started with some personal projects. I used them to get part-time programming jobs in a university hospital. I used that to get a job at a desperate startup. I used that to get a job at a larger company. And so on. It is easier to move up gradually than in big leaps.


> "unfortunately we are looking for candidates with professional experience".

Just develop something on your job. Any role in a tech company, or beyond, has lots of opportunities for developing code. Bosses won't get in your way, they are hungry for automation. Then, once you have spent even a little time coding, your role as described in your resume accurately includes coding.


How many hours over those 6 years?

I'd have no problem looping you but you probably wouldn't end up at the level you wanted based on your pm experience.

Also coding solo and coding on a team are different. We spend a lot of time trying college hires or the few so developers we hire to work on teams and think about how others will intact and maintain your code.

Feel free to email me. No idea what city you are in.


You have to show stuff that's impressive. If they go "wow!" then I've found it doesn't matter where it came from (provided you actually made it)


>Why do people need someone to train them?

You should be asking the other question. People don't realize how poor professional IT training is.

All APS[1] registered psychologists have to do 10 hours of formal training a month. It's mandatory to keep your accreditation. Employers give them the time off, and pay to send them to seminars on the latest developments in the field.

About a quarter of a specialist doctors job is to stay up to day with the field. Hospitals bring in experts to lecture and send their staff to conferences. They have to, especially in the USA where healthcare income is proportional to success rates.

The same is true for lawyers. Good lawyers must keep up to date with the latest developments in their countries case work, and again, legal firms that hire their lawyers on a salaried basis expect them to spend 30-50% of their time just reading case reports.

It's pretty much only IT that expects it's employees to keep track of a fast-developing field in their spare time. So a) I don't think we're due anything less than anyone else and b) you're inevitably going to see some pretty serious attrition if you ask people to choose between a family/social life and their career.

[1] http://www.psychology.org.au/


The answer is simple. Developers are victims of their own success. Talented developers are in such high demand that book publishing cannot compete with what they can earn. Conferences and training vendors cannot afford to pay them properly based on the current industry model.

Instead, you get a selection of developers at conferences who write and teach because they enjoy doing so. The training vendors only get what's left... People who need the job.


That's actually a super-persuasive theory, I'd buy that.


I was told by the PayPal founder/CTO that a good programmer can program in any language, and that they will learn as they go. So far I hired about 12 programmers and this was verified empirically.


That's the very definition of anecdotal, but yes, any programmer worth their salt should be able to program in any language. Many programmers however, aren't.


"Let's write it in FOO because BAR programmers are hard to find."

"Why would you hire FOO programmers that felt they couldn't learn BAR?"


> "Why would you hire FOO programmers that felt they couldn't learn BAR?"

Did they really feel they couldn't learn it or were there factors in them not wanting to learn it? What if I was worried about future job prospects after a few years of BAR development?


No hire.

Personally, I'm pretty elitist when it comes to programming. I think about nine out of ten people who are being paid to write software today should be shown the door.

Most of the industry is a scam (however inadvertent.)

Now, in 2017, most folks software needs could be met by picking and configuring canned components from a library. There really isn't a lot of requirement for real programming.

But we just keep going. Another JS framework. Another chat app.

But I'm starting to rant now. I'm close the window and back away slowly. ;-)


i think on paper everyone will agree with you. i've hired for [insert specific language] and struggled with the same contradiction.

the hard part is there is no obvious cost/reward outcome. the ideal scenario is hiring someone with the relevant knowledge immediately. so you shoot for that. a month in you're saying "we're close now, though...". when do you cut your losses?

hiring someone who doesn't know your stack comes with some extra risk, and compared to alternatives, seems like settling.


> hiring someone who doesn't know your stack comes with some extra risk, and compared to alternatives, seems like settling.

Is that risk significant in the grand scheme of things? Especially considering how many have used a particular stack incorrectly for years. I have an MVC project around here that is very much a webforms project in MVC clothing.


depends on the project. and your hiring timeline. and a lot of other things...

i mostly agree with you. i did try to soften it by saying "some" extra risk. as in, the net risk is > 0.


Give me an experienced programmer who doesn't know the stack over a junior who does any day.

Knowing the stack is often syntax related and doesn't take long to learn. Knowing best practices does take longer to learn, but its easy to point experienced people in the right direction. Knowing how to write elegant solutions and how to do high level architecture takes longer still, thats where experience comes in.


> hiring someone who doesn't know your stack comes with some extra risk...

Have you considered you may be waiting too long to hire.


yes, that's half my point. :)


If a position goes unfilled for months, are there really any alternatives?


1. if you've let it go on for months you can probably afford to wait A Little Longer.

2. because everything is relative i take "for months" to mean "for a dangerously long time". and this is what i mean by cutting your losses: it's hard to know in the moment when to fall on plan b.

everyone agrees they could train any decent programmer- no one really does it. i'm not trying to defend any practice, just trying to reconcile the contradiction.


I learned front end dev on my own with no classical CS training... if I can do it, any Java or C dev certainly can.


Sounds like my predicted outcome for a lot of folks I knew back in the day. Got into the industry because dollars, didn't particularly like it, so when (for example) COBOL dies off their career dies with it.

I'm from the same era, how did I avoid it? I never knew just one language, for starters. Unlike the author's father, I never waited around for someone else to train me. I bought a book and wrote throw-away projects in Delphi, VB, or whatever. FoxPro (a primary source of my income for a period) died a slow death? Good thing I know .NET (granted, working on the MSFT VS team kind of helped with that). IOW, I didn't sit around and wait for $IT (for various values of whatever we're waiting for) to come to me or be served to me.

So why doesn't everyone else do that? Because I wasn't learning Delphi with an eye on a job, it just looked cool and I thought it might at some point come in handy. People that got into this field for the money don't do that. They see the hands on the clock go to 5:01 and don't think about computers until 8:59 the next day, at least that's my guess. Would I be a lawyer for twice what I make currently? Oh, hell, no. No amount of money can make up for half my waking hours spent doing something that doesn't look like fun. Don't go into a computer-related field just because of the money, either.


Could be all sorts of reasons though. I am a guy who loves or rather loved programming, learning every possible language, doing all sorts of projects in my spare time.

Yet nobody can predict the future. I never would have thought I'd burn out/get depressed or whatever happened. I am not sure how to label it but I certainly lost the spark big time. I had a long period where I frankly enjoyed doing laundry more than programming. I am not kidding.

That can be a bitter experience because so much of my life was centered around programming and that is how I kind of defined myself. It is actually a time I wish I had not been so in love with programming and it was just a job, because then I would have had another life to fall back on. If programming consumes too big part of your life, you are screwed if you should happen to lose the interest.

I am slowly getting back to enjoying it more, but my take away is that shit can happen to anybody. Doesn't matter how excited and passionate your are about it now.


I get a lot of flag for saying this but it's the same reason most girls don't get into programming or math; it's no fun for them, at least not near the same ratio as boys; as it is observable from an early age. Just like (sadly) fighting is more fun for males so are logic puzzles; and that's fine; except now it gets framed as a discrimination issue.


> it's no fun for them

Have you considered that maybe it's "no fun" for them because the societal expectations of what girls and boys should enjoy begin from an early age?

Perhaps the forms of play that lead many to programming (eg building things with lego) aren't encouraged as much as playing with dolls. These pressures and expectations come from family and friends from the day we are born, it's the classic problem of separating nature vs nurture.


Before I got my Vic-20, I had an extensive HO gauge train set. I would lay track all over the floor of the house, trying to see all the new combinations I could create. But, I never enjoyed running the trains as much as laying the track. Maybe that's why I enjoy coding so much.


Most people have considered this, yet most "solutions" the industry come up with kick in far too late in development.


Separating nurture/nature is a dispurpose; like separating a house into bricks and pipelines, one is no good without the other. You could raise a child in isolation and see what comes up; but whatever happens the child is not going to handle too well being in any society later on.

In all races/societies without exception human males are more inclined to fight wars, more inclined to suicide, why it is so hard to believe that some positive traits are also wired?


Male here, legos bored me. I do computers because I like computers. My parents, working class government employees, constantly pestered me to follow them and always asked me what anyone could possibly do with math and computers besides be an accountant, actuary, or teach those subjects in highschool. But like most males I had a driving interest in computers so I couldn't be dissuaded.


My parents, 1987: "What are you going to do with that? You can't just sit in front of the computer all day for the rest of your life."

Me, 2017: "How do you like me NOW?!"

It's easy to forget that in the 1980's in the U.S. being obsessed with computers was not a highly regarded trait. The idea then that much of our work in the future would completely revolve around them was insanity to most people.


>Have you considered that maybe it's "no fun" for them because the societal expectations of what girls and boys should enjoy begin from an early age?

Do you have a link to data supporting this theory? The theory has been around for many years, I'm interested to see the new findings.


My daughter is two and says her favorite colors are pink and purple. Girls aren't innately drawn to those colors but pick them disproportionately based on our society.

I personally can't stand pinky princess shit. I ask for the boy toy in the Happy Meal. And yet she's picked that up.

Most of what kids do is because what society instills in them as the proper thing.


I highly recommend reading "Unlocking the Clubhouse" by Jane Margolis and Allan Fisher [0]. It's a relatively short read and i found it to be an eye-opener with regards to the various factors that go into shaping our very (embarrassingly so!) gender-imbalanced field.

0. https://mitpress.mit.edu/books/unlocking-clubhouse


Do you have any evidence to back these statements up? Asking as a female mathematician hanging out with my math gal pals for the week... just talking about how to algorithmically test some of our conjectures & drinking wine while getting snowed in...


I do actually: http://psycnet.apa.org/journals/amp/60/9/950/ (men advantage on various logic tasks)

https://www.sciencedaily.com/releases/2008/03/080303120346.h... (girl advantage on language processing)

So it appears gender doesn't define an absolute of interests, but it provides amplification to certain interest. So of course you can gather hundreds of women who love math, logic puzzles and D&D; which is great, but is not relevant when talking about predisposition (but about conclusion)


… a lot of flak


Haha yeah; native speakers must have been confused after visualizing me receiving lots of flags.


I do plenty of side projects. They mostly seem to make people think I'm a dilettante. I kind of agree with them, although I'm plenty useful at work.


I don't really get this blog post.

Why couldn't his father self-teach some other languages? He doesn't need professionally taught courses, just a couple of books from Amazon and he would be able to get some projects up on Github to pad his resume. I can appreciate finding the time to do this while working shifts as a bus driver would be hard but why didn't he do this before it got to that situation?

Sorry if I come across as rude/uncaring but I have seen people working 2 jobs and still be able to self-learn web development with no programming background/education. I don't understand why his father couldn't have helped himself a bit more during his career.


I have a very similar reaction. I _can_ say that when I worked in (state) govt, I encountered this mentality that nothing could be released without "training" everyone. From this, I guess one of two conclusions are true:

* There exists a myth that people cannot learn without training that some people have bought into.

OR

* There is a collection of people that are (currently) not effective learners without a teacher

I can have some sympathy for the latter - I definitely learn faster when I can ask questions and understand best practices earlier - but I'm uncertain if anyone that just doesn't learn well without instruction are doing so because they never learned how to learn, or if it's something fundamental, like some people prefer to listen to music while working and others can't stand it.


It's much more fundamental than that. I think a lot of folks who tend to frequent sites like HN truly live in an echo chamber - a good one, but still a bubble. I think it's difficult for many here to imagine that "learning stuff" just isn't fun for most folks. When I was a kid my idea of having a fun night was staying up late reading the encyclopedia under the covers. Most people hear that and find it absolutely absurd - as if I was torturing myself since they cannot imagine doing something like that for fun.

The simple fact is most humans do not enjoy learning for the sake of learning. They are in no way self-directed whatsoever, and expecting anything resembling even a large minority of the population to exhibit such traits will leave you hating humanity.

It has taken me many years to come to terms with that conclusion. Most folks are simply mentally lazy - or being charitable the modern world does not trigger whatever their interests are and motivate them.

I've struggled with how to explain to my "less successful" friends what this means, with little success. It means showing up on time for your 9-5 job and working hard at it is the absolute minimal bar for success. Most people do not understand that fact, and vehemently disagree with it as a universal truth of life. But it is. The folks who are consistently successful in life are the ones hustling 24x7 - where most of their effort is in learning and furthering their career prospects - not just toil for someone else at a salaried job. They are successful largely due to the fact others simply don't put in the effort they do.


I can't say that your summary matches my life - I've been pretty lazy, but having just enough work ethic about certain things and a drive to learn and a crapton of dumb luck has seen me "successful". I have friends at various points along the financial success/security path, and I only see strong correlation between working hard and success at the very low end.

> It means showing up on time for your 9-5 job and working hard at it is the absolute minimal bar for success

I've violated your absolute minimum - I'm not saying you can and should slack off all the time, but at the same time slavish devotion to fulfilling a 1950s viewpoint doesn't actually get you that far either.

> The simple fact is most humans do not enjoy learning for the sake of learning.

Probably and sadly true. I _suspect_ that it's because we (society) do a terrible job of TEACHING learning, so only those with the right parents/friends/genetic happenstance learn it. But that' is an unproven suspicion. It might also be a fundamental truth of the current state of human evolution. ( I have a theory that brain usage is "expensive" calorie-wise, and we've evolved to minimize the actual exercise of our brains. My theory gets a little support when they find that starvation/crisis spurs more energy directed to the brain, but I've not seen anything that has actually studied my theory. On the gripping hand, I've not really tried to check either, because that seems like work. [joke]).


I think you are correlating success in life (whatever that is) with drive to learn. There are people who could be seen as very unsuccessful in life, but are active learners.


Training is a huge industry especially for enterprise and government organizations. Every RFP will include a significant training component and it's a huge fraction of spending in government and enterprise IT.

Maybe it's because most enterprise/government software sucks so bad it's impossible to use without significant training.

Sidebar: Back in the first dot-com boom, the CTO of the company I worked for (who was an idiot in most respects) had one gem that I still remember: if users need training to use our website, we have failed.

Whatever the case, if you've only worked in enterprise IT, it may not really occur to you that software and programming is something you can learn on your own without training.

I am thankful that my computer science curriculum was never specifically about languages. The language used for a class, whether it was C, Scheme, assembler, or whatever was "an excercise left to the student." That helped me learn that learning any language was just a matter of using it, with the aid of a couple of good books.


It's why he cited his father's poor decision as a cautionary tale. He contrasts that with his own decision and recommendation: "don't be like my dad".

I find it odd that so many posts here take the tack "why couldn't he just" when the article is pointing out "he should've, but didn't."


It's a series of poor decisions, starting with the decision to stick with what he knew was a dying language because he thought the talent pool would be smaller and therefore demand higher.

Don't get me wrong; I've made plenty of bad decisions and judgment calls in my life and it's only by the grace of God and sheer tenacity that I've been able to recover from each of them. OP's tale just goes to show how quickly things can change if you're not careful.

TL; DR: This is an industry where you can't afford to sit still. Be a shark.


Why couldn't his father self-teach some other languages?

Presumably a belief that he would fail so the effort would a waste. The same belief stops me ditching coding to become a hedgefund manager; rightly or wrongly I assume I'll fail, so I don't try.

Don't assume everyone is entirely rational all the time.


Yeah, it's hard to understand when I, who am not even as multilingual as other programmers, code in... R, Python, Java, Apex, VB, JavaScript, HTML/CSS, SQL, and that's just my recent experience. Further back it was C and Pascal. In a lot of ways I just don't "get" how one could only ever learn/know ONE language.

Though I'm biased (I work there), I'd recommend Dad check out Pluralsight for quality affordable CS education.


Imagine that 40 years ago you joined a Fortune 500 company as a junior developer writing COBOL. There's a good likelihood that your entire environment was decided by some 8-figure enterprise sales process; your OS and tooling were vendor provided and custom set up by your own internal IT team; deploying software was something that was done by a team that only saw your code after a rigid human QA process; you never even saw a PC or hobbyist computer until the time when you already had 2 or 3 kids with little spare time.

Granted there are a lot of assumptions there, but I don't think it's too hard to imagine how someone could spend a career sheltered from the current GitHub-driven development world and be completely overwhelmed.


> Sorry if I come across as rude/uncaring but I have seen people working 2 jobs and still be able to self-learn web development with no programming background/education. I don't understand why his father couldn't have helped himself a bit more during his career.

Plenty of reasons could have lead to this, and citing anecdotal experience of people that manage extra ordinaire feat shouldn't set a standard for everyone.


I thought in the article the father did attempt to go to a program to learn something new.

Anyhow, demands of family and health can take a lot of free time away. You need kids to understand this, hopefully some of you do.


> Why couldn't his father self-teach some other languages?

After a while people forget how to learn. Once the neural plasticity is gone it's not just picking up a new language.


While I feel sympathy for the father in this situation, being a software engineer (or data scientist) transcends the language which you happen to be working with. People who work in software learn quickly that the language you use is just a tool, like any other, which you should use for the right task at the right time.

Of course, not everyone will be an expert in every language. But having the ability to shift when needed to an unfamiliar language is what really makes a person a software engineer and not just a programmer.


I used to think this, but it is not entirely true. Sure learning new languages is easy. I do it all the time. However learning the environment, libraries, tools and businesses which go with these languages is a huge undertaking.

I've been a desktop C++ developer for most of my career. I switched to iOS development for the last years. It was doable because Objective-C is native language like C++ and mobile apps work in similar fashion to desktop apps.

However I found doing Android development a huge barrier. The language Java was the easy part. The hard part was a completely different ecosystem, thinking and tools. With iOS it is easy, you got clang, xCode, cocoapods, homebrew and mostly apple tools and libraries to deal with. With Android there is a myriad of Java IDEs. There are several build systems. And each build system is seemingly huge and complicated, doubling and package or library distribution tools. Then there is a all sorts of testing systems, and the fact that Java is a world to its own. You don't use all the commands and tools a regular Unix guy might be used to like otool, nm, make, gdb, lldb, ld, gcc etc.

Still it was kind of doable.

Enter Java Script and web development. It confused the hell out of me. A completely different way of thinking of software development compared to what somebody used to native GUI toolkits running on one computer is used to. You got a client and server existing on different computers which have to synchronize. You don't debug in an IDE but in the browser.

And in some ways it feels like Java Script is harder for people who actually know a bunch of languages. You know there are common sensible ways of doing things which lots of languages do whether that is C/C++, Go, Java, Swift, Objective-C, Python, Ruby or Lua. But Oh no, JavaScript has the most odd ball nonsensical way of doing things. It is hard to get, because you can't figure out why on earth anybody would make the language behave this way. If you simply stopped thinking and didn't realize how stupid it was, you'd probably be better off.


Android feels like another world even if you know java and are used to GUI development in higher level languages. Even for java android is particularly reliant on tooling, to the point where if the IDE screws up it's easier to recreate the project and copy the files in than it is to debug the tooling.

In contrast, java with something like swing (not something that I would recommend learning BTW) would feel pretty familiar to you.


I work in data science, and last year learned the Scala/Spark stack, switching from Python's numeric computing/ML ecosystem. I would say that this involved something like 200 hours of work to get to the point where environment differences were no longer a daily distraction, and of that, only about 20 hours were due to the language itself–most of it was things like getting an IDE to work, futzing around with sbt, learning about the common libraries, Spark configuration headaches etc.

200 hours is a lot of time. It was worth it in this case, because Spark lets you do a lot of things that the Python environment doesn't (and vice versa), but I would be pretty hesitant to invest that time for something without an obvious benefit.


Visual Studio code has the nice ability to interface with the Chrome debugging API. Once it's all set up correctly (which can be a bit of a pain, depending on your Javascript build process) it's kind of IDE-like.


when you say "it's just a tool", you are minimizing the significance of actually knowing a language and the surrounding libraries and technology. Much like an aircraft is just a tool, it still requires a well trained pilot.


I think you're both right. Once trained, someone who can fly a 747 can also fly an A320 or an L-1011 since they know how to fly a multi-engine plane.

Programming is similar in that once you "get it" the skills transfer easily between languages. Learning a new language is much easier than learning the first one.


A 747 pilot will have to go through a significant retraining process before being allowed to fly an A320 or L-1011 in commercial service. This involves classroom sessions, simulator flights, and real flights with an instructor. Boeing and Airbus aircraft have significant differences in cockpit layout, controls, and emergency procedures.


exactly my point, you can know "how to fly" but you need to be trained on specific aircraft, not only that, you need to be trained on landing / takeoff on that aircraft into specific airports. In fact I used to work on software that helped manage pilots / aircrews and schedule them onto aircraft and maintain legal requirements, certifications, etc.


That's true, but do you think a developer with 10 years of Java would ever get offered a C job if their only experience of it was self-learning? Unless they have other exceptional skills beyond code, or they're very lucky, they're stuck doing Java.


Thats only because there is no agreed upon way to understand talent. I'd bet that that MOST Java programmers could take a C job and start doing pretty damn well in the first month or two.


my experience is the opposite, ( talking about embedded C environment ). It is a hard transition, if they get trained, it's better, but self learning is often characterized by a lot of "learning from mistakes"


Correct.


The author says it himself:

>Learning lots of programming languages is surprisingly easy. Eventually, familiar patterns appear that makes learning new languages easier.


Most folks who say they "know" 12 languages barely can code in most of them.

From personal experience hiring programmers and dabbling in programming - the guy who devotes his life around being a Java programmer and grokking the entire ecosystem is far more effective at writing Java than the guy who is a stellar C guy who has been using Java for a year.

I think the "languages are just a tool! pick up the best one for the job!" trope is over evangelized. There are exceedingly few competent programmers who can pick up a language and be a true expert at it within a few months. Those guys are not who we're talking about in the article.

The more average programmer (e.g. guys who would let skills rust) is likely struggling with the basic concepts to begin with, much less picking up an entirely new syntax. These guys would take time measured years to get up to their same basic productivity as their first language.


My parents were refugees from the Vietnam War and studied computer science as new careers. Today, judging from how confused they are about things like Google and how they never talked about programming at home or particularly encouraged me to go into programming, my perception is that they were not very good programmers.

However, even though the company they worked at for 20+ years outsourced most of its coding work, they had jobs easily through retirement because while the Java work could be outsourced, the COBOL work couldn't. Unlike the OP, COBOL helped my family eke out a lower-middle-class existence, which wasn't too bad of a thing, all things considered.


I don't know about your parents, but I think many old people who used to do technical work are not that good with modern technology.


theres a really cool dude on youtube who makes programming videos -- he will implement a raycasting engine or crack old games or do whatever. one very common comment is "why are you not a programmer when you can program so well" and his answer is really interesting. he used to to write web apps but the deadlines were so stressful that he decided to be a bus driver instead. where he lives the government will retrain you and find you a job if you decide to switch (i think he lives in scandanavia) so he did it. apparently hes way happier now.


Who?



As a friend related the other day, "wow, all these coders, they want to be woodworkers now. What's up with that?"

Working in a fine woodworking, cabinet makers setup, vs hacking C#? Your call.

PS, you can make 3X in a week learning how to use a router, but keep it under your hat. And the girls LOVE carpenters for some wild and crazy reason.


As a bald man, a router under my hat would be extremely painful!


A wood router or a Cisco router?


Serious question, I honestly don't know this:

Is this expectation that you're always on the learning treadmill* an issue for other professions like doctors and lawyers? For example, do doctors _need_ to continue to stay abreast of the latest surgical techniques in order to remain employed? Or do they do they consider it an optional activity, to maybe work at a better hospital or something?

* I hate to put it that way, and while I'm a big fan of always learning, not everyone is, and the "technology treadmill" is definitely a thing.


Lawyers in most jurisdictions are required to take Continuing Legal Education courses, but my experience was they were of limited use and the ongoing practice of law kept me far more current about legal trends than the courses did. They seemed more geared toward keeping the lowest common denominator from dropping into the realm of malpractice than teaching you anything that would be 'cutting edge'.


> Is this expectation that you're always on the learning treadmill an issue for other professions like doctors and lawyers?

Of course. A certain minimum is even required by law for licensure for some professions.

"For dedicated professional engineers, earning a PE license is just the beginning. Many state licensing boards require that PEs maintain and improve their skills through continuing education courses and other opportunities for professional development."

https://www.nspe.org/resources/licensure/maintaining-license

"Continuing legal education (CLE), also known as mandatory or minimum continuing legal education (MCLE) or, in some jurisdictions outside the United States, as continuing professional development, consists of professional education for attorneys that takes place after their initial admission to the bar. Within the United States, U.S. attorneys in many states and territories must complete certain required CLE in order to maintain their U.S. licenses to practice law."

https://en.wikipedia.org/wiki/Continuing_legal_education

"Almost all states require some amount of continuing professional development education and training be completed by teachers to maintain their licenses. Specific requirements for license renewal vary greatly from state to state, and are often quite complex."

http://www.teachtomorrow.org/continuing-education-for-teache...

"More than 40 jurisdictions require that architects complete continuing education to update their professional skills to renew their license while additional states are considering such requirements."

http://www.ncarb.org/Continuing-Education/Continuing-Educati...


PE continuing education requirements are a joke compared to what this industry expects. Texas, where I used to work and considered getting my PE requires 15 hours per year. What person here in their right mind is going to claim a software engineer can keep current with that little independent study?


15 hours is just the minimum that Texas chose to require for continued licensure. I'd be rather surprised if successful PEs didn't spend as much time in independent study as successful software developers.


First off, I wouldn't be. I used to work with them.

Second off, your post, and the others in this chain, are putting forward CE requirements in other professions as evidence that the at-times insane self-learning required by this industry is not unusual. It is. CE requirements are a joke and hold no weight in this discussion. If you want to argue other professions have similar impositions to ours, you need to do it without referring to these requirements.


The term that you would want to use in place of "learning treadmill" is "continuing education".

https://en.wikipedia.org/wiki/Continuing_medical_education informs me that many states in the US require some form of CME in order for a doctor to remain licensed. It's easy to imagine why this might be the case; as the state of medical science changes, so to would a doctor's recommendation.

edit: I can imagine that lawyers probably need to stay abreast of recent decisions as well, since precedent makes for a compelling argument.


I think that the difference is that continuing education builds on established precedent, while the CS learning treadmill is often about throwing out existing ideas in favor of some new paradigm -- or some new Javascript framework that's gratuitously incompatible with the previous version of the same framework.


For doctors, yes. You get sued if you aren't. More importantly, you're giving suboptimal care and effecting people's lives.


Some licensed medical professions in the US are contingent upon completion of "continuing medical education" requirements. This often involves learning about changes in diagnoses and treatments of illnesses.


The difference is that other professionals get paid for this, whereas software developers are expected to sacrifice their free time for it.


Yes, at least around here in .nl, both doctors and lawyers are required to take a certain number of hours of training every year to keep their licences.


> He’s kept looking for computer programming work, and bought a book on Java, but the life of the poor is hard, and erratic bus driving schedules coupled with living paycheck-to-paycheck makes learning programming hard, especially without a decent computer.

I hate to be unsympathetic because I won the birth lottery by far. But these days it seems like you could learn python or java on a $50 used tablet or raspberry pi. Is it really so hard to learn to program for the poor? (serious question, not being critical)


The poor are generally not in a position to dump large amounts of time, energy, and attention into something with such a risky and far-future payoff. I mean, they often don't have the wherewithal to cook dinner rather than grab something from McDonald's.


I think it's a (very real) problem of mental "energy" more than actual time.

What you mention of McDonalds has been studied:

https://arstechnica.com/science/2016/12/junk-food-cravings-a...

And also, some studies say that poor people don't have the mental "energy" because everything has to be evaluated against tradeoffs:

https://newrepublic.com/article/89377/poverty-escape-psychol...


50 dollars is a lot of money. try being poor for a while. try being so poor that you barely survive. like, you have to ration your food. like eating one apple a day for months.


The problem we have when thinking about poor people is that we think they're people just like us, but with no money.

That's not the way to think about it.

You would be astonished at their ignorance and, as an effect of that ingnorance, laziness. They literally have no idea what is possible. No idea what effort could achieve.

It's typically not their fault either. Someone with influence in their life has to set an example and show them the way otherwise they'll never understand how to unlock their potential.


You might want to consider this, too: https://www.theatlantic.com/business/archive/2013/11/your-br... - be mindful of your privilege when judging other people. Since you're posting on HN, you're probably already in a few multi-sigma-from-mean categories.


I am mindful. I'm speaking from the experience of being that ignorant person and being lucky enough to have a few people in my life that showed me the way.


That's partially true, but also assumes there's "something wrong" with being poor. Now of course, being poor is a worse lifestyle than being rich if all else were equal, but all else isn't equal. What if someone doesn't want to move to a major tech hub and instead makes just enough money doing something tolerable with people they like enough and they get to live and spend time with people they love. Am I really going to tell them they're missing out on life by not fleeing to a research university for 4 years and then Skyping their loved ones from their [big city] apartment while their roommates are playing loud music through the wall and they have no friends within 2 hours travel? All I'm saying is that there are tradeoffs that make working class people better off in many cases.


You don't have to live in a major tech hub to be a programmer. Programmers are employed all over the country. They'll generally get a lot more money in tech hubs, but you don't have to go there. Now, you probably won't get a job in some little 1000-person small town far from everything, but go to your nearest small city and there's probably some jobs there.


Exactly. It's not how much money you make anyway, it's how much you keep.

It can be harder to keep more when you're living in one of the most expensive cities in the world and those expenses aren't tax deductible.


Not that this applies to this case, the guy was an ex-programmer, not just poor, but you're getting downvoted for raising a good point.

It's one of those cases of "you don't know what you don't know". Yes anyone could get a raspberry pi and become a web developer, but they have no idea it's a profession, let alone a relatively easy one to get in to. Even if they've heard of software developers, it's likely in the context of an entrepreneur in far off silicon valley, not in their community.


Thank you for understanding my point.

What other folk here fail to consider is that I was speaking from experience.

I was that ignorant when I was young and I was surrounded by others who were also ignorant of the possibilities around them. I was saved by someone when I was seventeen.

It's not an indictment to say these people are ignorant. It explains their apparent laziness. It's not that they refuse to better themselves, it's that they don't know why they should or how they could. It's obvious to us why and how, so it's hard to imagine someone not knowing.

To clarify, they're not actually lazy, they're directionless which can appear to others as laziness.


Are you Paul Ryan?


Nope. Seriously though, I lived through not knowing any better and being surrounded by people who didn't know any better.

I'm actually not criticizing poor people, I'm trying to explain their situation to people who were raised to know better from childhood.


lmao


It's not so much the programming languages now, it's the build tools and middleware.

Classically, UNIX used the same build tools (make, shell, SCCS/RCS) across languages. Libraries across languages tended to be similar. For a while, you could use Eclipse as an IDE on many different languages. Now, each language has its own quite different tooling and libraries. This makes language switching a pain.


I'm still quite young, but I notice it is harder for me to learn new concepts or programming languages than it was when I was a teenager. I can imagine many programming jobs have little room for learning. I'm still a PhD student so learning is part of my daily "work". I don't have a family to take care of either. I can imagine that in 10-20 years I will hardly have any time to learn new things and will have to rely on what I already know.

Also I frequently hear people say "programming is easy" or "you don't want to be programming all of your life, right?", so maybe people think they don't need to study new languages, because they think they will actually need to do less programming in the future as they get more senior jobs. I'm not sure if they are right or wrong.

I really hope I can spend a large part of my life learning about new things, and I hope those things I learn will help keep me employed. At the same time, it's hard to predict whether the things we study today will still be relevant by the time we are in a position to apply what we learned.


If software development is your vocation as well as your job, and you want a career, then you better not be dependent on any particular language.

My first job, in high school, was programming a CDC 160-A in assembly language to render characters on a Calcomp plotter, fast.

I've done FORTRAN (II, IV), some PL/I, APL, RATFOR, Bliss, C, PERL, PHP, Java yadda yadda yadda who cares?

The point is: you want a career in a fast moving engineering field? Plan on reading at least one technical book a month for the rest of your life. Yes, for the rest of your life. 120 books a decade.

(Tim O'Reilly's Safari Books Online service is a good way to do this without having to hire two moving vans when you move.)


> Perhaps this article can serve as a warning to those who don’t love programming what they should expect in order to stay relevant in their career. And if what it takes is a turn-off, maybe they should pursue a different line of work.

This is such a reasonable summary. Many times here I see people comment on HN "Not everybody loves coding side projects in their spare time, and that should be ok. I have more important things to do..." This attitude is fine, but just know you're setting yourself up for a letdown when your job doesn't prepare you for the next "fad language" that ends up making or breaking employment decisions.


I don't think this is language specific as much as it is about keeping up to date in your field of employment.


Many of us spend time on various entertainment sites with active content discussions, HN is one of them. And the state of these communities is highly dependent on owner's and moderators' power and vision on their evolution. Moderation is a thing that projects an experience on newcomers, who always do the same wrong things, because they are at the beginning of their way to be mature participants.

Otoh, there are few mostly uncontrolled communities that go through newbie hell via some sort of elitism/indifference to them. When you spend few years in these places, you start to see all the patterns — from newbies to almost speechless "old" guys with hardened mental armor. You easily estimate the amount of time your opponent was here (or in similar place) and you see where your discussion goes in terms of "meta". You feel the rotation in that group, because names change, but thoughts remain. You do not need the moderator's help to be able to stay. That's great in a sense, but in fact the community voice consists mostly of immature boys who throw fucks at each other and argue about things that have no real matter.

This resembles the state of the entire programming industry for me. Each year we see new "developers" of various grades ready to fight and produce more complex shit that has no real meaning. Countless new abstractions, conceptions, frameworks, etc that were already invented before their birth, but had no chance to jump in their minds because there is no news with cool design on whatever.io. Really seasoned and experienced guys have no voice in there, because the management consists of the same unprofessional people who delegate everything down. You're using 20-year old technology? Ha-ha, the MODERN way is foobar.js with server-side bazlets, you old loser! You know nothing! Maybe, but your tech is 2 years old, so you can't be experienced in it by definition.

I really wish they all just stop and look around. Technology is already there for decades, you just have to not reinvent it and accept rough edges, because they are there for a reason. Forced moderation of hyped "modern" junk at institution level is also welcome, so mainstream doesn't fall into this madness. Our area is so big that a regular professional starts to understand everything just around the time his career is over. There is nothing smart in it, this is pure insanity. /rant

Edit: word order, typo


Technology is already there for decades, you just have to not reinvent it and accept rough edges, because they are there for a reason.

There isn't just one technology, or one company, or one team, who can sit down and agree to stop. "People like the Amiga, so we're not going to make a competing computer, we're just going to fire everyone and go home" - every other computer company.

"People like the iPod, but I can play .au files from my Sun workstation command line, so why doesn't everyone just accept the rough edges?"

"rsync works, who needs DropBox anyway?"

New technology is invented at least partly because rough edges are horrible, and at least partly because if we (collectively) don't invent stuff, what can we sell? How can we compete with other businesses?

Why does anyone write? Shakespeare existed so writing should be over.


All new shiny things involve learning and making mistakes curve. That should be compared to different brand new languages and sentence construction methods, not different authors. Why doesn't anyone invent new languages? Is english really that good and easy? No, it is horrible in so many ways. But it is known to ~anyone so anyone can learn it and tell whatever they need to whoever they need. No need to complement that with chinese or russian, unless you are both native speakers and have no foreign sides in your business plan.

We have at least math and chemistry notations as special cases, though.


I've known lots of people who got CS degrees when I went to school who now are no longer employed or doing other things because they assumed nothing would change. For 35 years I have stayed viable by constantly learning (but also avoiding just chasing every new thing).


This affects people 5-10 years into their career and new grads alike. People I graduated it that thought they could coast on their degree alone without internships or projects have been unemployed for a year.

The "study CS -> get a job!" myth is no longer true, if it ever was. While the market is great, you still have to work for a good job.


I used Linux/Apache/PHP/MySQL over 16 years and while changed 5 jobs. I am still learning new programming languages(swift) or some programming languages I have not learnt yet like embedded C. that is true if you can master one programming language then you can easier to pickup difference programming languages.

Thanks for C language and Pascal that basic concept i learnt from high school.


I've met a couple of people like that.

I met an Assembly and C++ programmer on my first job. He was asked to maintain a Visual Basic project and months later got fired for underperforming.

Then, I met an APL programmer that at some point even owned a consultant firm. Nowadays he works as a cab driver, barely covering his cab expenses.


>I met an Assembly and C++ programmer on my first job. He was asked to maintain a Visual Basic project and months later got fired for underperforming.

I can imagine why. After coming from an asm/C++ background, he was probably completely demoralized in having to work in the comparative hell that is Visual BASIC.


Unfortunately back in my country there wasn't a lot of opportunities for low level programmers.


True Programmers Never Stop Learning. He can give a changce to Javascript. It is the most popular programming language now: https://jobsquery.it/stats/language/group


From my experiences R is easy for statistician to learn and Python is easier for cs people to learn.

Post ignore the fact that R usually have bleeding edge statistic package out there most of the time compare to Python.

I'm going to learn Python but because I believe their Neural Network libraries are better. And it makes me better rounded but I'm not going to pretend as if Python is some how faster than R. It doesn't matter. These two languages are for modeling stage. Once your model hit production people are using something else C++, Java, etc..

Also seems like his father isn't well rounded enough to pick up another language.

Which leads to learn and play with as many different language out there especially paradigm, it'll make you a better programmer in general and you'll pick up language faster. Because of similar paradigm and because syntax evolve over time or adapted from other languages.


I thought that COBOL programmers were in great demand, for maintenance of old systems, and increasingly so as old programmers retire.


A friend's father is a COBOL programmer. He works for a bank (shocker!) and has said that while there are jobs they are not available all over the country but mostly limited to certain areas. So while a Java or PHP programmer will be able to find work pretty much anywhere a COBOL programmer might only find a dozen companies with openings and mostly in places like London, New York, etc. Places with big financial institutions.


I've heard this, but whenever I've looked at job listings for COBOL they pay is much lower than for a similarly skilled Python or Java developer.


I would think COBOL jobs are probably secure, they are not going to get rid of you quickly with few people available to replace you, but they are not abundant.


I think situations like that are a double edged sword. Sure they are in demand but maybe it also requires them to move to another place or even move around a lot which might be incompatible with other lifestyle choices.


Not sure about COBOL but RPG programmers are still highly sought after by large, moated institutions.


Now that your dad can't drive a bus anymore, for god's sake, give him that SICP book to read.


Today is one of those days when driving a bus actually doesn't sound so bad.


Or maybe driving for FedEx/UPS... I think I'd like the varied routes, and learning new neighborhoods/streets.


I hate to punt for "the man" on this one, but the story is dripping with motivation issues, and getting any kind of on-the-job training in the past 20 years (even if it's not very good) is a rare blessing.

Whenever I trained someone up, they'd snag a better job offer within months. That's why industry dumps all of it off on college/self-study/github/etc.

If they had some kind of claw-back, like police academies, things might be different, but why even bother with that when state universities are cranking-out eager young graduates by the busload, and we have a visa program that is ripe with abuse.


Sounds like your dad is blaming everyone except himself. He could've learned R himself instead of blaming the training service. Learning a new programming language is something every programmer does.


Driving a bus??? I frequently wish I was doing something else for a living due to many complaints I have about the state of this industry these days, but driving a bus sounds far worse to me. Having to deal with the general public every day would be a nightmare for me.


Oh, the stories you hear...


My dad was programmer, then he opened a hardware shop (plumbing and sanitary hardware). And never looked back and made good money


> He did eventually realize this and sought employers who would train him

I can't understand that. Modern programming is not like engineering nuclear reactors or driving mars rovers. All you need to learn is a cheap laptop, mediocre internet connection and passion to learn it.

Just apt-get python/R/whatever and start writing simple things, then more and more complicated, then your own projects (make your own home automated, after all), and after a year you'll be able to find an entry-level dev job.

> bought a book on Java but the life of the poor is hard, and erratic bus driving schedules coupled with living paycheck-to-paycheck makes learning programming hard, especially without a decent computer.

Oh cmon. It's the same bs as "girls don't become programmers, because of males/stigma/gender-language". If you have interest in programming, you'll learn it, and won't stop at some "it's enough for resume" level. I, personally, learned C++, being in army, with night shifts, drills, living for $150 a month, just because I loved it and used every hour of my spare time to explore it.


To your last paragraph: if the girl think programming is male occupation girls are not naturaly interested in, she won't consider it nor try it. If she won't try it, there is no way for her to find out she like it or love it.

I was told multiple times girls are just not good nor interested by people who knew I plan to study computer science. Had I not met teacher in school who showed me interesting parts and treated me realy equally, I would have no idea it can be potentially something for me.

If you would be a guy who work in kindergaden and knit for hobby, your theories about gender not matering would hold something. You have systematically picked occupations that have no risk in feminizing you nor has "but women do it naturally better" element of.


"Not consider nor try it" means that she doesn't have interest in programming. You don't need anyone's opinion to start programming or knitting, or learning Mandarin. If you like it, you do it for yourself, and then someone starts paying money for things that you know and love.

P.S.: it's funny but I knitted. My aunt taught me and I knitted a scarf. It rolled up and became a tube, and I lost interest after that fail. :-)


That's funny, I knitted too when I was a kid. It didn't last very long either. I think I was about 8 years old.

I have to agree: if you like something, you just do it. But I guess a lot of people just can't bear to do anything without getting approval from their social circle first.


>To your last paragraph: if the girl think programming is male occupation girls are not naturaly interested in, she won't consider it nor try it.

I'd like to see a source on a paper that finds evidence that supports this theory.

As far as I know all the gender study department grant money thrown at this has not been able to produce data to convincingly affirm that hypothesis.


This has to be the worst post I've read on HN so far.


Why? Guys who want to work with little children are discriminated against even more - some parents are evenjoying afraid of them. I don't think it was that bad comparison.


We're not talking about job discrimination here, we're talking about learning something because of personal interest. Being discriminated against in employment is a separate issue that comes later after you're actually qualified for such a job (or maybe after you've got the job).

There's plenty of men, I believe, who would be interested in working with little children, but who avoid those professions because of the social stigma. It's sensible to avoid a profession if you think you're going to have a very hard time gaining employment in it, or will suffer a lot socially for it (many people seem to think such men are pedophiles).

But we're talking here about people learning something out of personal interest. You don't need anyone's approval to learn programming, nor many other things. But many things do require more resources to learn; aircraft piloting for instance. You're not going to ever do that for free, though you can learn some of it with a software simulator fairly cheaply. Sailing is another that comes to mind; that's pretty impossible to learn I think without having an actual sailboat. But programming is comparatively easy; all you need is a computer and internet connection, which these days are considered cheap and ubiquitous. The software is all free; you can download absolutely everything you need, including an OS. There's an absolute plethora of websites and forums to go to to learn more (e.g. StackExchange). The barrier to entry is ridiculously low. But you do need time, and personal interest and drive. Now maybe you'll have some trouble gaining employment after you've learned it, esp. since you don't have a college degree in a related field, but that's another subject. The original article here was about someone already working in programming, who didn't bother to learn another language.


fucking please. while in the army you have guaranteed housing and food every day. thats a fucking luxury compared to what people going through actual adversity deal with.


fucking please, you don't know the story. "guaranteed housing" and "food every day", wtf are you talking about.

That's funny how people with US/Canada/EU citizenship and English as first language and western culture as first culture, love to seek excuses.


Let me rephrase your own statement from another perspective:

"I, personally, learned C++, being in the army at 20 something years old, with night shifts (for which I had incredible energy being 20 something years old, living for $150 a month (because I didn't have any kids), etc..."

I think you see where I'm going with this.


For what it's worth, my mum had to literally limit my coding time so I didn't completely flunk out of high school due to inattention. I did have to repeat a year.

These days my girlfriend limits my coding time because apparently adults are supposed to, like, be adults. I'm often late for work, where my main job is coding, because I'm solving a fun coding puzzle of my own in the morning and lose track of time.

Yes, I'm weird. My point is that if you enjoy something, you'll find time to do it. If you don't, you won't. and that's okay


Responsible people don't like things less. They are just responsible enough or value families enough to do things they do not like so much for them.


I agree way more with you than with the parent, /but/...

Those I know who're the most successful at software will train themselves, and will look for the opportunities to do that; you don't need the company to train you, you just need them to give you [pay you for] the time to learn.

On the other hand, this moves it from "a small matter of work/life balance" to "a small matter of office politics"...

but on the gripping hand, it does make sense that this difference in attitude is such a differentiator.


At somepoint with a family and having other obligations... It's Not easy. Some people choose the easier Road.


Oh, I totally agree. This is why software will never be a blue collar job. It requires an absolute commitment to self-improvement that has probably no equal anywhere else.


No, I do not see.

I'm 41 now, have two kids and wife, and still work at nights, exploring python/ML stuff and writing my own OS X app for interactive plotting [shameless plug removed].


Sure! So do I. This is what is needed to survive, and not even thrive, in the software industry.


I feel for the author's father, but I think the author knows the score. His father made a bad decision to assume he could ride out the rest of his career on his COBOL skills.


So a programming career is so fragile that one mistake kills all past experience gained? I don't think mistakes should be so costly, and in the article the father tried to remedy mistakes and was met with misfortune.


>So a programming career is so fragile that one mistake kills all past experience gained? I don't think mistakes should be so costly, and in the article the father tried to remedy mistakes and was met with misfortune.

I don't think he made one just one mistake. COBOL was already in decline when he made the initial career switch in 1995. So every year that he complacently did nothing while his marketability as a programmer declined along with it was a mistake.

All in all, I think he's fortunate he was able to make a decent living as long as he did during that particular time period, knowing only COBOL.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: