6 ms·
I advise training programmers instead of throwing them in front of a screen without any training. Companies these days provides no training at all. When I was
by jmclnx 3y ago
I advise training programmers instead of throwing them in front of a screen without any training. Companies these days provides no training at all. When I was hired over 40 years ago, I spent plenty of time being trained for my first 3 months.
Now, nothing, and you if you want to train a new person, you do it on your own time.
- synergy20 3y agoabsolutely correct, in fact now some new hires are expected to do a few git-commit the first day(looking at you, Meta). no wonder so many bugs here and there.
- disgruntledphd2 3y ago> absolutely correct, in fact now some new hires are expected to do a few git-commit the first day(looking at you, Meta). Meta have a phenomenally good training program, called Bootcamp for basically everyone in engineering, so they're probably not the example you're looking for.
- synergy20 3y agoI recall meta expects new hires to do first commit the first day, not sure how its training will help in this scenario, this is in no way saying meta has no good training, it just does not add up here though.
- viraptor 3y agoWhat kind of commit though? We expect a first commit on the first day. The commit adds you to the maintainers list in readme and grants you some new roles after merging. It is not a "solve this user's issue" kind of commit.
- 0cf8612b2e1e 3y agoHow is that possible? It takes over a week just to get a new employee configured. Laptop, IDE, permissions to the hundred needed things, etc. Let alone opening up an unfamiliar codebase. Unless it is a “hello world” commit to confirm tooling is operational, I have strong doubts.
- disgruntledphd2 3y ago> How is that possible? It takes over a week just to get a new employee configured. Laptop, IDE, permissions to the hundred needed things, etc. Let alone opening up an unfamiliar codebase. When I started at FB in 2013, I had all the laptop/permissions things done by end of the first day. At the time, the presumption was that you'd push a really small change by the end of the week, but all of the tasks available tended to be pretty easy (note I wasn't in eng then, so all my info is second hand here).
- HotHotLava 3y agoUnlike 40 years ago these commits will be reviewed by an experienced colleague and automatically unit and integration tested, so there's no benefit anymore to training people separately before being allowed to touch the real codebase. Back in the day people with SVN/CVS commit access would push directly to the main branch after testing locally, and testing would be done as part of preparing a release, so it was more necessary to have a "safety" period where new people could get used to the new codebase.
- AdamN 3y agoStartups are likely to fail, big tech is likely to fire the developer (or they quit), and poorly run companies just don't know how to train. End result is it just doesn't happen much anymore.
- timbit42 3y agoEmployers complain they can't find people with the skills they need yet they refuse to provide training for those skills as it's cheaper to hire someone that was trained in the skills they need by another employer.
- staunton 3y ago> yet they refuse That doesn't seem like a contradiction at all. As you say, they want to hire trained workers rather than providing training themselves. Also, complaining is free while hiring good people is not...
- timbit42 3y agoSure, but my point is that no one is training anyone so now they can't find people with any training, yet they still refuse to train them.
- DelightOne 3y agoWhy train when they just leave the company in a year for 10%+ more money.
- tharne 3y agoWith that attitude, it's not shocking you have a retention problem.
- felideon 3y agoObligatory: "what if they stay?"
- JambalayaJim 3y agoGive them a 10% raise if they do well in the first year, problem solved.
- hsbauauvhabzb 3y agoSure, but even the best programmers can write buffer overflows and other memory issues. Not that average shops have any interest in actually training people, though.
- citrin_ru 3y agoBest programmers tend to work on the most complex software though. There are small and relatively simple C/C++ programs around which have no know memory issues (but a person with minimal viable knowledge can introduce new bugs even there and that's where training would be useful).
- VikingCoder 3y agoI worked with someone who said it great once. I wish I'd written it down. It was something like, "I'd rather use a threading library written by one great programmer than by ten average programmers."
- hsbauauvhabzb 3y agoSure and for every small and simple application there’s are hundreds of terrible apps. I actually think memory safety is a pretty poor measure (in my isolated world I rarely see C code). I see plenty of php logic which is far more likely to be publicly exposed and generally of a terrible quality.
- hnrodey 3y ago"intentional training" (my term) is one of the most under utilized levers to pull for a team or organization to level up. Your observation aligns with my anecdotal experiences with teams, and it's sad to be honest. The pushback I've received is something I'd categorize as "cart before the horse" - executives want to know exactly what will be achieved with such effort before approving any expenditure. The teams I've been involved with - training has generally come organically and grass roots.
- VikingCoder 3y ago[dead]
- rowanG077 3y agoNo training will prepare a human for writing safe C. It seems to be impossible for a human to do that.
- cryptos 3y agoTraining and technical security measures shouldn't be treated as alternatives. Even trained programmers produce bugs and security issues, if at least some of them can be prevented by an additional safety net, then it would be stupid not to use it.
- brookst 3y agoNot to worry! In the future most programmers will undergo tens of thousands of GPU hours of training.
- osigurdson 3y agoWe will see. I suspect things will not turn out as expected.
- brookst 3y agoI think you just said you agree with me?
- datameta 3y agoThere might be a layer of humor you didn't pick up on.
- dylan604 3y agoor that this hype about the tech replacing programmers is not going to pan out. so maybe it is you who didn't pick up on something? to be able to provide commentary on a joke does not mean the joke was missed
- datameta 3y agoit is possible that I missed out on what the other commenter meant but I wasn't trying to be derisive
- joncrane 3y agoI feel like each company/organization has such a unique DevOps toolset that all the "training" goes into figuring out which IDE you're allowed to use, which git client to install, what even are the processes/policies for installing stuff on your work computer, what's the workflow, etc etc etc. All the bandwidth is used on that and there's not much left over for the actual art of coding.
- staunton 3y agoIt's plausible that in many settings this is actually most efficient from the point of view of the company. Do training on the things that can cause trouble longer term (inconsistent tooling taking over, security issues, company-specific things you cannot find online) and just hope people pick up the rest as they go. Good workers will usually manage. The people deciding how to train new workers maybe don't even know what kinds of "main" knowledge a given worker would need. Rather than assigning an expensive senior worker to training them, they might hope someone good willing will do it in their spare time.
- osigurdson 3y agoI think people should take responsibility for their own awesomeness.
- bumby 3y agoI assume that includes leaders taking responsibility for the organization they are paid to lead. That includes investing in their coworkers' "strategic awesomeness" via training.
- osigurdson 3y agoAgree. Leaders (though I think "Gatekeepers" is a more accurate term in this context) should not stand in the way of anyone's awesomeness.
- VikingCoder 3y agoI think you do not appreciate that some people have jobs that don't give them adequate support to be awesome. I just watched the most recent Last Week Tonight, where they went in depth on Freight Trains [1]. Specifically they talked about 3 mile long trains that currently only have two operators - one conductor and one engineer - and the industry is trying to cut it down to one. That's just an analogy for software development. But I've definitely seen people be over-worked and under-supported. [1]: https://www.youtube.com/watch?v=AJ2keSJzYyY https://www.youtube.com/watch?v=AJ2keSJzYyY
- CoastalCoder 3y agoI wonder of part of the issue is that 40 years ago, people typically stayed much longer with companies. (I actually don't know what the norm was. My dad was an EE for the defense industry, and IIRC he worked for 3 different employers over his career.)
- munk-a 3y agoWell 40 years ago stuff was absolutely laden with exploits... if you're talking about code written 40 years ago that we still use today? Most of that stuff is battle tested and came from teams that were highly disciplined to begin with - the good code floats.
- bakuninsbart 3y agoMy dad is in his 60s, started his company with some friends in the 90s. None of them got super rich, but they are all doing well, and all slowly going into pension. The company grew to a mid-size level, but actually most of the early employees stayed, and I think the average tenure is still probably > 10 years. Switching jobs every 3 years is weird, it is pretty much the time it takes to learn the ins and outs deeply enough to be an expert. There's some sense to it, as after learning all you can, it might be better for your career to search for new challenges. There's also the nonsense that switching that often generally yields significantly higher pay.
- underlipton 3y agoIt's impossible to stay long with companies. The nascence of "shareholder value" as an overriding concept means that if you're far more likely to be laid off, or forced to job-hop to maintain purchasing power, than to be able to stay with one business for years and still have a successful career. By companies' own policies, it has become untenable for them to train. So it's all on them. They've got to fix the issue (before the government does it for them).
- munk-a 3y agoAs someone who has worked in C/C++ on teams for a while. My personal opinion is that safe C++ programmers never use pointers - put everything on the stack and use (usually const) references. But I've really got to ask - at that point do you really want to program in C++ anymore or is it just better to use a safer language that removes pointers entirely?
- LoganDark 3y agoDo "references" even exist in C? Aren't they a C++ thing? How do you manage heap allocations without ever touching a pointer?
- munk-a 3y agoEdited for correctness - I was indeed talking about C++ and references are relevant only in C++. C absolutely has stack allocations which can make things a fair bit safer but if you're passing around collections it's usually done by pointer just to avoid copy actions.
- LoganDark 3y agoC has VLA, but I think C++ can still use alloca, although that returns a pointer still.
- UncleMeat 3y agoAnd this still permits oodles of memory safety issues. You can have lifetime problems with stack-use-after-return. You can have bounds checking issues on stack allocated arrays. You can have data leakage through use of uninitialized memory. And while there are some kinds of applications where never performing heap allocations is viable, this design is simply not an option for a huge number of applications.
- butlerm 3y agoIt is basically impossible to write general purpose software like compilers, word processors, and layout engines without doing heap allocations. That means either pointers or references, which are difficult to distinguish if you do not engage in pointer arithmetic. Any C++ program that does not do heap allocations either uses arrays as a substitute for the same thing or isn't a general purpose application.
- natsucks 3y ago"In attempts to mitigate the dangers of memory unsafe code in C and C++, many software manufacturers invest in training programs for their developers. Many of these training programs include tactics designed to reduce the prevalence of memory unsafe vulnerabilities produced by those languages. Additionally, there are numerous commercial and industry trade association training programs. Further, various organizations and universities offer trainings and a professional certificate for demonstrating knowledge of secure coding practices in C and C++. While training can reduce the number of vulnerabilities a coder might introduce, given how pervasive memory safety defects are, it is almost inevitable that memory safety vulnerabilities will still occur. Even the most experienced developers write bugs that can introduce significant vulnerabilities. Training should be a bridge while an organization implements more robust technical controls, such as memory safe languages."
- manishsharan 3y agoDoes the training go beyond showing them how to use Valgrind ?
- ARandomerDude 3y agoHow to quit vim.
- tempmac 3y agolong-press power button
- hansvm 3y agoI can see why that would sometimes work, but the better preconfigured vim installations have a long-press of the power button remapped to a 911 call, in case the user has fallen unconscious onto the keyboard and needs medical attention.
- pjot 3y agokillall -9 vim
- hardware2win 3y agoYea, clearly faang level engineers lack of training. Edit. Idk why downvotes Chrome and Windows code bases had 70% of cves due to mem issues and their engineers arent some unqualified and lacking of training opportunities ppl
- bjord 3y agoDepends on the company these days. In my initial role, I was given a couple days to "read over the codebase" and was then expected to start producing results. Most of my peers had weeks or months-worth if training before they started contributing.
- bigbillheck 3y agoWhat's that got to do with the issue?
- genmud 3y agoIf (security) training worked, we wouldn’t have these issues. Even in highly regulated, controlled environments memory safety is still an issue. I have seen bugs in these environments where I know for a fact that the developer has had 40-80 hours of training on memory safety and they still pop up. If these people have occasional issues, the rest of the world has no effin chance.
- deleted 3y ago[deleted]
- ralphc 3y agoIt doesn't take long to find comments on HN about how there are plenty of people out there that can do a good interview but can't code their way out of a paper bag. The standard solution to this, and I've been on the receiving end of this, is to have someone as a contractor for 3+ months before converting them to full time employee. I'm afraid your approach would mean hiring someone and spending time and money on them before you're sure they'll work out in your organization. Few want to train contractors and firing FTEs after 3 months and change is a dim prospect as well.