Let's assume this person is college educated and fluent in your native language. They show up to work every day and will do research in their spare time if needed.
No prior programming or domain knowledge? Absolutely not. Even good programmers take months to become productive in my team due to how obscure the knowledge that is required. You have to lean piles of stuff you would otherwise not have learned, on top of what a programmer in our "general area of knowledge" is expected to have.
After a decade as a dev, I work in developer support now. It's often much harder than regular coding because I have to try to guess what the other dev might be doing wrong (or how their edge case could cause a bug) just from experience and intuition, often without being able to see their source code and logs.
I don't think I can teach someone all of this in a month if they have no prior web dev experience. It requires an awareness (if not deep expertise) of the whole stack and various network and caching factors across several codebases and vendors.
On the other hand, my previous job was just a frontend dev. It paid better but had way less responsibility and required very little cross-domain knowledge. I'm pretty confident I could teach someone to do that within a month. My partner there was actually a boot camp grad (few months of education), but he was terrific. It's not terribly difficult work, just requires an eye for detail and some empathy.
Not sure if that's the proper title, but it's just support for other developers (like if you work at a SaaS company or on a lib/SDK type thing, where your customers are also developers, as opposed to tech support for general computer users who aren't coders).
It's not really DevRel because I'm not schmoozing them or trying to manage community functions. I just answer their emails and Slacks and provide help on our APIs, look at some of their code, try to help optimize their queries and components, etc.
It feels a lot like what mentoring newer devs in a regular team would be like, except they're customers and not coworkers.
> That sounds great, but why did you leave.
TLDR there was a change in management halfway through my stint there and our dev process completely changed. They added so many new layers of bureaucracy, doubling down on dogmatic, obsessive Agile and hiring a consultant to teach us all the ceremonies. I couldn't get anything done anymore and it felt like I was suffocating. My mental health was deteriorating and I started to resent going to work to attend yet another useless meeting to discuss how the last meeting went.
Before that change, I had an awesome team and awesome managers and we all worked together really well, did great work (by the company's own measurements), and did it all with no meaningless bullshit and micromanagement. After the change, it was the opposite: way too much fluff and ceremony and too little actual work. Before the change, we delivered good software. After the change, we mostly delivered inflated story points. Looked good on paper but less actual output was produced.
I complained, they told me to provide feedback to the VP, I wrote a detailed 3-page report with examples and suggestions, and the VP just told me to hide the report so nobody else could see it. I quit soon after (and am much happier now, thankfully).
If a job can be learned in a month to a degree where the learner is now proficient in it, then the barrier to entry is low and the job is either repetitive in nature or has a very low expectations bar (e.g. for junior roles). I highly doubt that's the case for most folks on HN. This is a field where experience can't be entirely replaced with diligent study (doubly true for management roles).
The first where they outright did it wrong, imagine someone not understanding basics like variables and parameters, so they just hard code everything and copy and paste all over the place.
The manager said this was fine, since it made our metrics look better, and I ultimately left over this.
In another case, they basically all listened to me and I got to lead a few initiatives. I did have to help out every now and then, but they caught on quickly.
I think Python and JavaScript are learnable within a month. Wouldn't say the same for Java or C#. Personally I still don't touch the most difficult languages, Rust, C++...
Knowing how to code is the most trivial part of a software engineer's job. Making sense of vague (or even conflicting) requirements, knowing when and how to make the right trade-offs, communicating effectively up/down/with peers/cross-functionally, etc etc are what separate an experienced engineer from someone who just learned the language. My 14-year-old can code in several languages, but I don't think he's ready to be hired just yet. The job, at the end of the day, is about delivering business value, not lines of code. Writing less code to deliver more value is something that only comes from experience.
I think many (most?) boot camps are money grabs that overpromise and underdeliver. I've also seen great juniors come out of boot camps. Either way, you're now talking about something different than your original question - most jobs out there are not junior-level jobs, so a month or a few of boot camp or self study just aren't sufficient.
You can teach a person the basics of a programming language like Python in a week... but that doesn't mean they'll be able to code effectively. Programming is at its heart a craft, the more that you actively practice it the more you'll improve. Aptitude and an affinity for logical thinking and problem solving go a long way as well.
It's like a foreign language, you can acquire a vocabulary of several thousand words using flashcards over a month, but that doesn't mean you're going to be able to actually communicate.
I mean we're talking about someone doing my job and just replacing me, not necessarily doing everything I can do. I'm sure there are things they might be able to do that I can't. I'm just a midlevel. I assume there are a fair number of "entry level" folks on here. I'm over 10 years in and "entry level". It seems the bar is quite low for most jobs if you have the right credentials or connections (but I pretty much don't).
I was a JavaScript developer for 15 years and now I do something different that is new to me.
I could easily train somebody off the street, assuming higher than 125 IQ, to be a decent JavaScript developer in a month assuming that month is dedicated to training and I can assign homework. By decent I mean not an expert but certainly far superior to the average professional JavaScript developer.
How, you might ask? Teach them from the technology standards without helpful abstractions. Tooling and configuration nonsense are what bad developers do to look busy and justify their existence, so absolutely avoid all of that. Don't waste time on stupid things indented for stupid people. Build their confidence one step at a time so that they can write original high performance software at high durability.
To go through the motions? Sure. To do the job right the first time and completely, not a chance.
It takes more than a month to come up to speed in a new environment - new tools, new processes, new goals and constraints, you go home every night with your head hurting and tired from sweating it.
And that's if you've done most of it before. Getting that context, internalizing it so you can do the work without second-guessing yourself on every little thing, that takes a long time for anybody.
Velocity, the Agile people call it. That's why folks are paid less, maybe half what an experienced 'resource' gets paid, for maybe a year. Until they do enough to be worth keeping around!
> Assume no prior programming or domain knowledge.
That makes it a “no” for any programming job. I’ve taught programming, and it takes a good 3 months of full time education and practice for smart, motivated beginners to become Jr level. Even that puts most of them at intern-level, rather than Jr.
Maybe if they've already had a very similar job at a different company. Then still not 100% but it would be good enough for them to pick the rest on their own after the 1 month.
Starting from scratch with no prior programming and domain knowledge - no way.
Have you ever started a new job? How long did it take you to be relatively productive compared to the rest of your teammates? Now imagine how it would take if you lost all of your technical skills and experience.
Maybe? I'm a software architect and while 20 years of programming experience cannot be communicated in a month a sufficiently acceptable job of "How to draw technical pictures and write documents" could probably be communicated. Of course, lacking experience it won't be long before designs are created which are digital houses of cards waiting for a stiff breeze...
Not even close. Someone without programming or domain knowledge would take at least a year (more likely two or three) to learn to do my job. Seasoned devs with domain knowledge typically take 3-6 months to become productive.
Make that five or more years for someone coming cold to do the jobs of a couple of my teammates.
"Could you train someone to do your job in a month?"
Yes and no. If they are an employee, then most likely yes. If they are a contractor, my experiences tell me they most likely will not learn it fast enough or well enough.
I can probably (and had many times - in a few months) train someone to write ruby,js code that compiles and even achieves few simple real world like goals.
But this is ~15-20 years far away from my job and ~1 year far away from a job that would be useful for real company.
This depends on the specific work he is doing and his natural talents. If he is responsible for important parts of the code and he has been lacking in relevant domain experience in the past, it could be quite challenging.
My job is mostly designing solutions (figuring out the best code), so I don't think a college graduate can get there in a month. I can teach them the patterns- but understanding the tradeoffs, knowing what is a major vs a minor priority, communicating effectively with other people involved, and knowing what to do when the shit hits the fan are things that I think are mostly garnered form sheer experience.
Nope. I could train someone to update, commit and push edits to markdown files, but the rest will be a lot harder.
Eventually the static website will need bigger updates. Then they'll need a full stack web developer. Someone who knows SEO and marketing wouldn't hurt. Oh and UX too. Technical writing experience wouldn't hurt.
But even then, they will still miss the huge amount of context and obscure domain knowledge I have acquired over the years. They won't have all the connections to industry experts.
I love being self-employed and wearing so many hats, but it makes me quite hard to replace.