On Programming Languages: Why My Dad Went from Programming to Driving a Bus
ntguardian.wordpress.com
ntguardian.wordpress.com
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.
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.
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.
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.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.
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.
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.
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?)
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
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 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.
There's a special hell for those who don't want to treat non-special people as human beings.
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).
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.
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.
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 :)
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.
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.
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.
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.
One doesn't become Erdős just by carrying around math books and sleeping on couches all the time, after all.
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.
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...
Either way, my server is back up, so I'm gonna go play my guitar.
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.
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? :)
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.
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.
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.
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.
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.
i mostly agree with you. i did try to soften it by saying "some" extra risk. as in, the net risk is > 0.
Have you considered you may be waiting too long to hire.
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.
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.
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'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.
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.
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.
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.
"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?
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'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.
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.
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.
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?
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.
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.
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)
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.
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.
* 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.
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.
> 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]).
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.
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."
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.
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.
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.
Though I'm biased (I work there), I'd recommend Dad check out Pluralsight for quality affordable CS education.
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.
After a while people forget how to learn. Once the neural plasticity is gone it's not just picking up a new language.
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.
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.
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.
>Learning lots of programming languages is surprisingly easy. Eventually, familiar patterns appear that makes learning new languages easier.
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.
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.
In contrast, java with something like swing (not something that I would recommend learning BTW) would feel pretty familiar to you.
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.
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.
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.
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.
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.
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...
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.
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)
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...
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.
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.
I'm actually not criticizing poor people, I'm trying to explain their situation to people who were raised to know better from childhood.
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.
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.
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.
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.
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.)
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.
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
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.
We have at least math and chemistry notations as special cases, though.
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.
Thanks for C language and Pascal that basic concept i learnt from high school.
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 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.
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.
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.
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.
"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.
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.
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
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].
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.
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.
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. :-)
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.
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.
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.
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.