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.
Assume no prior programming or domain knowledge.
Assume no prior programming or domain knowledge.
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.
"It paid better but had way less responsibility and required very little cross-domain knowledge."
That sounds great, but why did you leave.
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).
I've experienced two outcomes.
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++...
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 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.
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!
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.
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.