Learning at work is work, and we must make space for it
sloanreview.mit.edu
sloanreview.mit.edu
I subscribe to those weekly emails for the programming languages we use at work and I read them when they come in. I sometimes watch a conference talk about implementing something similar to whatever I’m scheduled to do next.
If I were running a company I’d expect this of all high level employees. It’s your responsibility to be on top of whatever’s going on in your field.
You can't heads-down slam out code for 8 hours a day 5 days a week. Be responsible with your time and use it to push forward the vision & mission of the company by taking your professional development into your own hands.
I've always felt a level of entitlement around that. You (the business) want me to learn and get better. You get more value over time that way.
I've experienced the polar opposite in a Japanese bigco where we were given extensive material to learn (generally about the industry, or certifications), and it was very clearly understood that we were to learn the material off company time. As an American naturally I had an allergic reaction to this culture.
He says the amount of persuading he had to do to the global execs that being off-grid for two weeks might have it's benefits almost made it futile.
I can't help but wonder if this attitude has inhibited japanese progress.
Not only that, but if you choose to learn on your own time, finding a lesson to fit in your daily routine is also tricky, especially if you're caring for a family or have other commitments. Couple that with uncertainty about what to learn next, it can become overwhelming just to get started.
Very recently, I started working on a project[1] to address this exact issue. The project is to help established software engineers progress their careers, learn new concepts, and refresh their existing knowledge with daily bite-size software engineering lessons designed to fit in their daily routines.
Unless you use load balancers in non-trivial ways at scale and really need to understand the ins and outs of how they work to utilize them effectively.
This is so short-sighted, because it means you can't learn anything unless your boss is 100% sure it will be immediately useful (at which moment, someone else is probably already assigned to do it). Most things I learned in my life were not immediately useful when I learned them, but many became useful later. Programming itself is a good example of this; when I was a kid, computers were considered just an expensive toy. By this logic, I should have never learned programming in the first place.
These constraints do not allow you to explore. If there is a new framework or a new programming language which MIGHT improve your productivity, but also MIGHT be a useless fad, you are not allowed to find out which one it is. No one in your team is. Thus you get stuck with the old technologies forever (or someone breaks the rules, or someone studies the new technology in their free time).
Or was that a faux story for your sales pitch?
I have no idea who started using these acronyms but they definitely forgot they're new and not universal.
We use SE here in Japan for both software engineers and system engineers. How are they difference? The latter is older and seems to have originated from people doing architectural, consulting type of work.
Fun fact, consulting/contracting businesses here and also known as SES, System Engineer (as a) Service.
--
Are these an internal thing for your organization? is it Just joining a mailing list for X language? Or is there some aggregation service you could share?
I do not write any code on Friday (unless it's a severe production level issue). Instead, I spend the mornings reviewing PRs that I wasn't included on (to keep up with whats happening, but also to learn more about how other people write and review code) and the afternoons are spent reading/researching/online classes.
This has really helped me avoid burn out. I go into the weekend less exhausted and more motivated to return on Monday and implement new stuff. It has also helped generate some inspiration for weekend/personal projects.
Oh the joys of the JIRA sweatshop. We have JIRA pulled up on the big screen TV and the product guys cycle through the status of each dev team members’ items during each daily standup. This is my first development job, surely it’s not like this everywhere?
> product guys cycle through the status of each dev team members’ items during each daily standup
Something has gone horrible off the rails. Standup is supposed to be a quick time for every team member to raise any blockers primarily, with a quick "here's what I did, here's what I'm doing" type blurb. The benefit of standup is identifying blockers and if engineers are getting mired in problems (so you can fix those issues outside of standup).
I've worked in environments where the PMs micromanage like this. It's both hellish and extremely inefficient.
So we’re not really any worse off than before.
I haven’t heard too many examples of “oh man we used to be free and ship great features on time but now that we have a backlog and talk to each other every day it’s a hellscape death march”
Generally, I’ve found that the level to which agile approaches make life better depends on how much management is actually willing to let the team do its work and stay empowered. This can happen with trust and top cover in large enterprises, but it takes constant work at the PO / product manager level otherwise regression to the mean takes over. Also hard to avoid the inertia of making successful teams bigger rather than letting them continue small.
I wonder how the Amazons / Facebooks of the world avoid the trap, but then their enabling teams are likely a big percentage of their workforce because they understand how important software is to their business.
Also, by discussing the issue you might discover others feel the same way and are open to changing the process.
If I run into a blocker why would I wait until the next morning to try and get it resolved?
"Hey I was trying to use Mary's api but I couldn't figure it out, can someone help me find who to contact?"
If you ask immediately for help all the time you aren't being self sufficient. At the same time if you are spinning your wheels then just a second pair of eyes can be helpful.
Blockers are not just people and usually it's not done for accountability. They can be undocumented APIs, an unfamiliar requirement ("do we already have a way to extract images from PDFs before I download this new thing?"), etc.
If it is urgent and your only option is to sit there and do nothing then asking the team for help during the day is fine. Just weigh up the cost of interrupting everyone (or that high-performer who has all the answers) against what you gain.
Sit there and do nothing for awhile just may be the right thing to do!
I'm thinking about the Theory of Constraints and optimizing a system versus individual parts. This is a concept you would want your PM to know. So when they are mentally mapping the workflow heard during standups, they can be thinking about optimizing the entire production system.
Next step is the importance of communicating this to everyone on the team, so that they understand that there may be times when the right thing to do is nothing.
People brought chairs. To a standup!
E.g: If we as engs think we can do 12 tickets in a one-week sprint, we commit to 8. This leaves room to pick up any production issue related work, address tech debt, and have some breathing room so we're not rushing through jira tickets.
It's also workplace specific, but imo product people shouldn't be engaging in daily standups other than passive observation. If they are drilling through the jira board and asking for status updates, they're taking on the role of a micro-manager, not a product owner/manager.
Standups should be engineers talking to eachother and raising blockers/issues that would prevent them from meeting the sprint goal they committed to, not daily check ins with product (again, imo).
If you want to stay in the organization and get promoted by performance metrics, then figure out what numbers are being evaluated and work to maximize them, so that you appear as the model worker. It's not very hard to stay one step ahead of management if that's the game you're playing. If you have the best relationships and the best metrics, you should be able to get your promotions.
If you want to stay in the organization and coast, then who cares, just do what you want and they're almost certainly not going to fire you without plenty of warning. If you do get put on a PIP, then go find a new job immediately, and repeat. From what I can tell, most of the workforce does something similar to this for 30-40 years.
If you're not a leader, not a model worker, and not on autopilot, then you probably need to find a new organization where you can be one of those things.
https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
(although leader, model worker, autopilot are more polite terms than sociopath, clueless, and losers)
Sometimes you learn to play around the rules. For example, if you are required to report your progress every day (and "sharpening the axe" is frowned upon), a possible solution is to report on Friday morning only half of what you did yesterday, and keep the rest for the Monday report.
You're unlucky, there are a lot of software teams out there where the developers are pretty much autonomous. That's not to say they do absolutely whatever they want, but micromanagement is usually out of the question.
A couple of months ago I spent about half my working hours in a week watching everything that happened at .Net Conf. I didn't ask anyone, I just said I was taking training time and since I don't take much no-one cared.
If I was in your position, I'd take this as a sign that there are better places to work. Wait out your current job until it's adding value to your CV (few good projects and contributions you can talk about), then move out. You'll get more money, and you'll probably have a better idea of what to look for.
Start with asking questions about how work is assigned/doled out. Where does all of their work come from, the Agile board? Someone stopping by and asking "can you do x" or "can you help Jill with Y".
Follow that up by digging into how they then talk to others about their progress on that work. Ask if they're interrupted or allowed to progress independently? How often does someone ask them "Is that done yet?"
Ask about how often they're asked about the status of the same piece of work by different people. Dig into how they keep everyone else apprised of what they're doing.
Ask them about their relationship with their Scrum Master, Project Manager, Product Owner, Dev Manager, etc. Ask what they could change about it if they could.
That line of questions may uncover the micromanagement pattern. Even if it doesn't, it will go a long ways in helping you get a feel for how a team works.
If the product guys are any good they will care about having 'options' and will therefore welcome devs that are taking a broader look of the solution space.
This is not just common, but the norm in most organizations. I think the only time in the past 12 years (working with probably 20 organizations) where this didn't occur is the one engagement when I was charged managing the team.
There's far too many places where a team of even just four or five developers will spend 30 minutes (sometimes an hour!) every morning in "standup" being grilled on every single item committed to in the sprint.
I convinced the team to do without the standup and just put the status updates in slack for a week. At the end I was the only one who thought it was better. To quote one developer "I don't read it when its in slack". That indicates to me that the information isn't necessary to do your goddamned job.
I dislike agile now as a result of that experience.
About once a week (usually Friday) I tell my team I'm going to spend the day researching or exploring some new idea that doesn't have any stories yet. It's never a problem. A decent chunk of our big leaps forward for our projects have come from us working on random stuff nobody told us to work on.
Micromanaging means you have nothing useful to do, and you are needlessly making other people angry. Such people should be fired first. (Yeah, I know, they are often the last ones to stay, because people who have better options leave first.)
Better yet, cancel that standup because it's garbage. Only one representative needs to go to the product meeting.
Do they look over your shoulder every minute?
Those two were both large corporations. It is my theory that it happens as soon as you have a separate scrum/project manager for the project you work on.
So far the only problems I've seen is that sometimes it's hard to convince engineers to actually use the time instead of still working on tickets.
But sadly over the past few years we've kind of just done away with it. We don't allot time for it specifically anymore. We think about it from time to time and wish we still had the bandwidth for it.
But it just doesn't happen anymore.
It's a tough thing to build into a team's structure, I think, and in such a way that it's sustainable.
https://www.youtube.com/watch?v=e3msMuwqp-o&list=PLctkxgWNSR...
What we don’t do, is “no deploy Fridays”. We deploy all the time, and maybe somebody wants to do some minor bug or light UI cleanup. I’m certainly not going to stop them. Requiring an “off-day” for deployments is a major red flag for me.
The biggest extreme that I've faced was a team where there was a 36 hour window between Wednesday and Thursday where deployments to production were allowed and it was a nightmare getting any code out especially with most deployments involving 10-20 new commits so if something did break we had to rollback a lot and rack our heads to figure out what went wrong.
Also, sites "go down" for more reasons than deployments, and often, a deployment is one of the fastest or only ways to fix or work around the issue.
Companies do think "It’s your responsibility to be on top of whatever’s going on in your field" and they might even claim that learning and development on the job is important, but when it comes time to log JIRA hours, they tend to show how much they really believe in this.
I wish misuse of these tools wasn't so widespread, but it was to be expected.
Are all these people really hired for their competency? The amount of wasted time this describes is staggering. Even at the worst of times, ticket interaction by even a skip-level was a sign of mounting org-wide desperation.
That is school and university in a nutshell though.
IIRC, management actually questioned people who didn't log much time on it. There were a lot of problems at this place but I liked that.
This makes me sad. I had a great experience with what I now think of as “authentic agile” at my second job, now I doubt I’ll ever get to do things that way ever again.
Were you reading Stackoverflow? Taking a digital course and watching lecture videos? Reading a textbook with a pencil and paper out? Attending in-person trainings?
All of these things are scrutinized very differently in the workplace.
Personally I agree with you, and find that discouraging people from training themselves during business hours just results in most employees not fully applying themselves.
That's a key thing.
Even in the most high pressure environments, where "project management professionals" are breathing down your neck for "deliverables" it is your responsibility to learn stuff and evolve.
It's nice if there's time and resources for people to better themselves, but these are typically limited to activities which are "related" to one's work function and are subject to "approval" from people whose interest in your career stops hard at what you can do for them in the roles they assume you're best-suited for.
The good news is most places are NOT rank-and-yank hellscapes where every minute you do something that's not on somebody's gantt chart will cause you harm in the long term. In most places you can lift your nose off the grindstone... but you have to be willing to impose your own self-direction and structure.
When I finished I had so much free time I could finally start doing the interesting projects and my work output was consistently 2x my co-workers. I considered explaining this to management but they had just admonished a co-worker for not doing the thing they asked and trying to improve process. So I kept it to myself.
Obviously this was a bit of a toxic work environment (early in my career) and I was luckily switched out of this group.
My point is that you can fight bad management to make a better working environment for yourself but it takes a lot of effort and you need to be strategic in what you tell them as it can backfire.
I suspect that one of the drivers behind open offices is to make it easy to “catch” people who are “wasting time” learning on the job.
Something very important to this approach IMHO is paying your learning forward. Mentor other devs, write guides for your team/organization, etc. Make the benefit of your learning visible to everyone else.
That means that yes, your learning has to have value to the business and to the team. If that aligns, I can't imagine many problems arising. Your learning becomes an act of giving and taking, rather than just taking, which is a win-win for everyone involved.
Why have WIP limits? Well one of the reasons is to be able to create downtime where you can go watch a video or read a newsletter. So I've been trying to spread this message in my team when someone has asked "The WIP is blocking and I can't really help anywhere at the moment" by answering "Go watch a video or read or take a walk for 10 minutes".
I mentioned in a comment above that with the Theory of Constraints in mind, sometimes the right thing to do for an individual contributor at a point in time is, nothing.
You went ahead and explicitly turned that into time to learn for them. Bravo.
On top of that we dedicate one week every year to something that we call MJ University. We rent a hotel in a location and fly everyone in to that location. If you're interested on all the details, we've written them up here: https://mobilejazz.com/blog/mj-university-staying-ahead-of-t...
Also latter half of Friday is officially, by company policy, set up for such tasks - learning, and finishing internal tasks that always get pushed back.
The more i learn, the better value/cost ratio for my employer.
I would immiedetly change jobs if they didn't challenge me, or at least provide an environment where i can learn.
That said, as a manager I find it hard to get direct reports to accept sometimes that it is not only okay, but required, by me that they learn new things. I do what I can to encourage it, offer to buy books for people, give time to do online course work, etc. They often complain that they don’t feel like they are “Working” even though I explain to them that as long as its work/business related I will expect to be able to call upon them in the future with this new knowledge.
So what can I do as a manager to make it more “okay” to spend time at work learning?
So the solution is to make it clear you pay them to learn.
Reward learning with career advancement.
Send your people on relevant training courses out of the office as often as is useful/practical.
Oh and if you have timesheets make sure you can "bill" to training!
In my experience formalizing "learning" in the work place doesn't work because it requires the performance of learning for management types rather than real learning which involves working through real new problems over an extended period of time.
The real way to get employees to learn is to hand them responsibilities they are not fully prepared for along with the pay that goes with them and see how it goes. Right or wrong managers are rarely comfortable doing that.
Employees need to be comfortable failing in front of you and few are because there are few good examples of that turning out well. When it does go well, all too often the raise they were promised doesn't come through.
this isn't to say you're a poor manager, just that it's unusual to have a healthy environment for on the job learning.
Does this apply to skills that might be more applicable to another team?
My current manager encourages learning, but shoos me away from topics that are handled by other managers. Frustratingly, he's blocked transitions of mine to other teams with work that I've found interesting and educated myself on.
How do you prioritize learning, and balance it against your interests as a manager to keep your resources focused on your objectives?
Being able to place your own work in broader context is very powerful.
Would that I could safely direct your ire to my manager.
Training is on there (with a 5% of time budget for it), and if they don't achieve their objectives, their next appraisal will go badly. Pay rises and promotions and so on depend on good appraisals, and I anticipate some quarterly review meetings in which I tell people that they're on track to do badly because they're not meeting their training objectives.
If having their training objectives written in black and white, and being reviewed quarterly and appraised annually on whether or not they're meeting their objectives doesn't make it "okay", well, I guess I'll have to come up with something else, but I sure hope that will make it clear.
Maybe instead of having them read something, make them give a presentation on it to the rest of the team?
Then they have deadlines and produce content. Sounds just like work to me.
If the entire org doesn't encourage learning, grant the time for it to happen, and protect employees from operational reprecussions of spending time learning, it is hard for individual employees to make it happen.
Once the goals align, it will become clear to everyone that employees must both have deep understanding of the current company and an eye towards the future.
So as manager take a look and see if your environment makes people into ticket closing machines or into people who have the freedom to allocate their time where they feel it’s most useful.
Reality of course differs.
You are providing the “option” but not literally scheduling the time. Employees need cover otherwise you are “learning” but nervous something will “slip” because “Learning” isn’t business critical.
That's a great idea in theory because tackling a real world problem tends to motivate towards a real world solution.
However, learning invariably encompasses failure which rarely measures up well with typical (if arguably useful/useless) performance metrics that developers contend with.
I was referring to the potential for a metric that could backfire in the context of a performance review. (And that'd be a relatively tame surprise in one of those god-forsaken events...)
Be seen doing it yourself.
https://news.ycombinator.com/item?id=21763789
Having an actual story to back the learning process might help making employees feel more comfortable with it.
Too often, companies "expect" their employees to take advantage of the fact that they allow them to learn on the job, but only reward short-term performance.
The problem with this approach I think is you get more buy-in, but might be arguably less directly applicable to work.
Why is this a problem?
IC continuing education isn't (primarily) about having them finish reading the RFC even though they've already gleaned what they needed for their immediate problem. Rather, it's about drawing in whole new areas of knowledge. It's about keeping your deck stacked with wildcards so when you get blocked by something hard, not covered by your standard 'best-practices' you have enough diversity of experience to actually have a hope in hell of having something to draw upon for inspiration on how to solve it.
I don't see it as a problem; my boss sees it as a problem. I've tried reasoning, but without that direct connection of "what am I paying you for" it just falls of deaf ears.
Learning must be optional, never required. And must have incentive: I learn programming because it makes my work faster. But if I can't use my program, I feel like I wasted my time.
Learning should tell me that I am increasing my value.
I can never learn new stuff just because I am supposed to. Nor will anyone suffer a book if there is no IMMEDIATE benefit.
1. Make it part of their annual goals (e.g. attend a conference, get a certification, compete in a competition).
2. Throw them in the deep end, a little beyond their edge, and be okay if they fumble around a bit.
3. Make them teach. Give them stuff to understand and present to your team or other teams. That forcing function will give them a mechanism to immediately exercise their newfound knowledge/skill.
4. Make room in your project schedules for it. They'll learn on their own if they have the time, or they'll invent something. The ones that don't are your bottom tier.
My first boss sent me to Siggraph my first year to drink from the fire hose. He also asked me, on my first day, what I was worst at of all the areas of programming I was aware of (Windows UI) and assigned me three months of work writing custom controls... I did it in six months, and I've never been able to thank him enough for teaching me, right off the bat, that your people are your greatest investment, that optimizing for the project is rarely the right choice.
So I'm trying to hack the system to get fewer hours: 30-32 per week. That gives me enough time to self-study, handle some of my own training and overdeliver, yet still have a life.
I have extremely strong open source bona fides, I'm an inveterate organizer of study groups both at work and elsewhere, I speak regularly at meetups in order to force myself to learn new things well. Giving me the space to train myself is a great deal for potential employers.
But they aren't biting. 40 hours is what they are set up for and it is hard for them to figure out how to be flexible, even if they want to.
At my last job with a small growth-stage startup, I successfully negotiated for 32 hours, and it worked out great for all parties. But it seems harder than I think it should be to close such deals.
I had the same experience. asked for 32 hours week with corresponding pay cut. The HR people barely could comprehend the idea and certainly didn’t have a process for dealing with such a request.
Within my probationary period I decided that 50% of money for 80% of time is too much of a discount; that I could simply work full-time for a year or two and then take a break for a year or two instead. But I never actually took that break.
There are many companies complaining how they can't find enough competent programmers. But almost none of them is willing to provide part-time work as a benefit. I believe that a software company that would publicly declare a 4-day workweek would soon have hundreds of people begging for an interview.
I don't imagine this works for companies with employees numbering over ~250 or so, so I've been very lucky.
Of course it’s a pay cut, but it was fantastic :)
You’re presuming that you’re not allowed to do the things you think are crucial as part of your daily work, but that’s already conceding too much to your superiors.
You do have to wait for the right time to do things, so it is justifiable as part of some near-term team goal. And be willing to wait when it’s not the time.
As long as you're not actually working for a different company during this time, it's all good. If company doesn't like it, move on.
It’s not difficult to pull that off at a big company.
If you prove it, they may just expect more from you in the same amount of time.
If you can’t do that, they were right to refuse the 32hr/wk proposal. If you can, just do it, sneak in some studying, and act like it took you 40.
And if that doesn't work out then move on.
For example, if you're doing daily standups, then one hour of an 8-hour workday is doable. But if you want to learn something that requires from time to time that you concentrate deeply for a longer period of time, say 4 hours, then that's half a workday, which may well show on daily standups.
If you have a manager who has a tendency to show up at your desk unannounced and they glimpse you watching a video, they probably won't say anything or ask what you were watching, but may walk away having mentally applied a discount factor to what they think your rate of productivity might be.
Also, while siphoning-off may work well in a good culture of consistent non-rushed problem solving, it may not work so well in a culture where it's constantly management by crisis. Like tomorrow may be the deadline for delivering something in the context of a crisis. The crisis may be entirely made up, but you would still end up looking really bad if you didn't deliver. Then you're probably not going to spend an hour learning that day if you know there's a risk you will have to stay at the office for an hour longer as a result.
Instead: (1) Here are your priorities. (2) Tell me if you run into any blockers. (3) Let the team periodically know what they need to about what you're working on.
It's a society wide thing. I don't work in tech, I don't do anything CS related, for certification/licensing that will assist us in our jobs (and that is used to prioritize applicants for positions) we are expected to do it on our own time, outside of work, on our own dime which if you actually get the license/certification they will then refund a portion of a course you took IF it was graded and the only ones that carry grades require you to attend in person for 40 hours where you'd have to take a week off then go put yourself up in another state... and then annually the exam for the one with a license has a 3-20% annual pass rate, with the average around 15%.
He told me "Sure but you'll need to learn all that stuff on your own time". So I never did it because I'm interested in doing other things at home.
They benefited and I also did, as it helped me evolve into a full-stack (web, mobile & server) developer. This was essential for me to transition into building my own company [1] at a later point, as I could build the product on my own both for web and mobile.
So half a day a month? That's pretty much nothing. Maybe time to work through a couple chapters of a book on some new topic.
Even if you were to justify your statement, it would be an ad hominem attack.
Imagine yourself trying to learn a real skill in that allocation of time.
If anything, you may even be reducing your tech employees' "professional development" with that metric, because I bet the average tech employee already spends greater than 4 hours per month on active learning with or without management actively allowing them.
Educational materials/courses are out there, it's all about you, wanting to smash it on the wall and work hard for the goal.
I’m no longer in software and when I want to upgrade my skills, I’m doing it on my own time and my own dime. Often doubly so if I have to take time off work (hourly) for training.
Some people are more passionate about their jobs than others no matter the discipline.
I love my job but it's still just something I do to fund my actual dreams/passion. Why would I spend more time on it than I need to when I already feel like I don't have enough time for my own interests?
TBH I wouldn't expect any manager (especially it's just a lead, not even a mgr) to sacrifice for my own benefit. I thank them and provide material reward if they do, but I'm 100% with them (and study on my own, then leave the company) if they don't. It has to be mutually beneficial, or at least looks like. So my feeling is that both OP and his team leader are not good at communication.
1. learning outside of work for your own personal enjoyment;
2. learning for professional growth and;
3. for professional needs.
Category 1 is where learning for free, at anytime is valuable, you are doing it as a hobby or as a personal curiosity, so taking your own time for that is fun and enjoyable.Category 2 is murky, I've definitely done a lot of studying on my own dime to improve myself or learn technologies I could apply on my day-to-day work but... When I could I did it on company's time, on this category I'm using my time for something that will have a direct return to the company, if I can get paid for it I'd always choose so.
Category 3 SHOULD NEVER be done on your own time.
This mentality of needing to use your own time to do any kind of professional development only fosters the race to the bottom, where you are required to use your own time to improve yourself because the company you work for is only interested in extracting maximum value out of your billable hours...
I agree that in the parent's comment case they could have used some of their free time to improve their backend skills and then try a lateral move in their job but it shouldn't make you "amazed" that someone isn't willing to sacrifice their free time to earn a little bit more of salary while their company extracts a higher multiple out of that same work.
If companies want efficient and capable workers, they have to be willing to train themselves. We are < 500 people and are currently building a training center just for that purpose (not software focused). Granted, a culture where job hopping is common, that can come at a steep price.
I've got better ways to spend my time for my career and life than learning things for the benefit of my current employer.
Time is the only thing you have in life, use it wisely and balanced.
Someone with understanding of both FE and BE is valuable in certain situations. Companies love the idea of a "full stack engineer" because they believe they are getting two for the price of one. But in practice, and accounting for exceptions, that's not necessarily the case. A full-time FE with equal experience will be better at the front than a FE/BE and a full-time BE with equal experience will be better at the back than a FE/BE. This is the reality of having deep experience in a specific domain. As an attempt at an example, if you went to college and got an English minor and a CompSci minor you'd be capable in both areas but you would likely not be as knowledgeable as an English major nor a CompSci major within the respective domain.
This divide becomes much more visible when you see a FE/BE architect a solution versus a full time FE or BE. When fixing bugs and implementing straight-forward features a FE/BE has a handy skill set. But when you move past that point, deep experience within an area starts to show it's value.
This seems like it should be true abstractly, but concretely I've never met anyone with deep experience in a specific domain who didn't in the process gain enough experience in other domains to have basic competence in multiple domains. Not necessarily as much as specialists in those domains, but it's practically required to achieve the depths of experience in the domain you think they specialized in.
(Which is not usually the domain they thought they were specializing in.)
This is particularly relevant where there isn't a clean separation of concerns and the involved skills are highly transferable.
So in a world where your choices are 1) learn other tech within our toolbox or 2) learn stuff in your domain but outside of the scope of your current work... only one of those is okay to do much of on work time.
All those ES2018 features and CSS variables may be cool things a front-end engineer should be learning, but if we have to support older browsers then I don't get to use any of it.
Learning only the stuff that covers your immediate working needs isn't a winning strategy, neither for you nor for the company.
No battle plan survives contact with the enemy. There are tons of strategies I know to solve problems that I never use because it confuses other people (and some of them confuse me too when I look at them six months later). That's experience. That's wisdom. You won't find that in a private github repository, and only those who already know what they're looking for will find it in a book.
Book learning ain't bad; in my experience, most of the developers I know would do well if they picked an actual book every now and then. It's not as good as hands-on experience, but still miles ahead of "learning" by StackOverflow-driven development. Experience is an important piece of the puzzle of wisdom, but it's not the whole thing. You need to also have understanding, and reading (and thinking about what you read) is a good way to acquire insight.
WRT. closing the loop, your users and peers aren't the only way to close a loop (and arguably, they can only provide certain kinds of feedback that are very context-specific). Trying things out for yourself is also a good way to close the loop through feedback from reality itself (e.g. whether something works, or how difficult you find it, are such pieces of feedback). On top of that, peer/customer feedback makes no sense for a lot of useful knowledge - for instance the new ES2018 and CSS features you've mentioned upthread.
I don't think this analogy works, because CompSci and English are pretty unrelated to each other as fields, whereas frontend and backend by definition work together to create a product. That makes a person experienced in both worth more when working on either, because they're more likely to have in mind the entire system when they do design decisions pertaining to their side of the network.
But in general, I think this is just a different mindset, I love being able to be independent, and complete a stories from FE to BE. I used to be in a position where I could only do FE work, and it really scared me. I had no clue where critical data was coming from, if something went wrong, I couldn't debug our APIs, I was in the dark constantly. Now if something goes wrong, I can switch over to our backend, debug, write extra test cases to cover the bug and push code. I also understand what BE engineers are talking about, and when designing a new feature, it's much easier to come up with new APIs.
In my team I’m just the only FE, so naturally most of that work falls on me. There are months where I only did BE stories.
Or, can I ask my employer to reimburse my under-graduate and graduate tuition?
It's a balancing act. If a company wants employees to keep learning, they need to invest in that. If I, as a salaried employee, am expected to be available outside of the explicit working hours for emergencies, then it's also fair that I be allowed to do things that are directed at my own career during work, bonus if it proves useful to the company.
My company not only encourage transitions, we actually "pay" for them. That means we will assign a senior developer that will have responsibility for growth of the new mentee and we purchase any educational materials the person requires.
We have quite decent amount of transitions within last few years and all were successful. They do require commitment and investment from both sides.
I do believe we are stronger for it as people appreciate the opportunity for growth and support we provide. We, on the other hand, re-gain skilled colleague that is not looking elsewhere.
I can understand your boss though: would you swap a competent employee for an incompetent one, paying the same amount? Probably not. Yes, you retain your knowledge about the front-end, but you wouldn't be using that.
My advice would be to work out the basics on your time and then ask somebody in the backend team to be involved, baby steps.
If you actually become useful for the backend team, they will advocate themselves for your switch, and bring you up to speed once there.
But this is the glass-half-empty boss. The glass-half-full boss is happy to have a competent employee who can be called upon when needed for important front-end stuff and is picking up backend work at a faster rate than the intern the team would have otherwise, because they're already an experienced engineer (with knowledge of the front-end no less!) and there is skill beyond just writing code that transfers between domains.
And that's to say nothing of swapping a competent employee who's already onboarded for an empty seat and a talent search, when the employee quits to expand their skills elsewhere.
Languages tend to be super easy.
Frameworks are a little bit of work.
Domain knowledge is hard.
I'm extremely happy when my team members want to expand their horizons, it keeps them engaged in their work and makes the team as a whole stronger.
Your lead should have paired you with a backend developer and have had simple backend tickets assigned to you. This works really well in turning Windows developers into Web developers (together with some coaching).
E.g. look at any PG essay that tried to talk about broader philosophical or political issues and you'll see this limitation. His frame of reference is stuck in a recent enlightenment framing of the world. Granted, PG is indeed a great communicator in technical fields.
The question is if that cost an individual occurs if they choose not to spend their free time on career-related skills is ethical or good for society.
While by contrast, there are some people who want to kick back and simply collect a pay check, there is a whole segment of people in the middle ground who are hungry to learn, but are stretched so thin that they can’t outside of work — a whole segment that isn’t being catered for, and therefore an opportunity exists to tap into this.
At my university engineers were offered two elective courses in the faculty of arts or sciences. That's not a particularly broad education.
The good news is, you can do it without going back to school. IMO an SE will get little benefit out of going back for another degree. You'll get much more ROI spending your time contributing to OSS projects and making a name for yourself.
Sure, CS or STEM courses are probably really solid to pair with a non-CS major because it teaches you stuff that helps extend your abilities in your own field. So I can see why my friend that was going to school to be a nurse might have wanted to take a CS course or two instead of minoring in sociology.
Edit: Let me state it a different way that might shed more light on my point. A CS major can pass all of his/her classes with a perfect GPA and still be incapable of writing software ready for a production system (even at small scale).
The STEM degrees emphasize fundamentals that are rarely (if ever) used in day-to-day "real jobs".
Sure
> and what it means to live a good life
That's just self-aggrandizing bullshit. There is no class that will tell you what it means to live a good life. Anyone who thinks so is dearly lacking perspective.
>an exclusive focus on STEM is indeed 'super specialized'.
An exclusive focus on STEM will include the philosophy of science and what it means to seek truths about the physical world. IMO that has immensely more value in a philosophical sense than you seem to imply.
STEM at best tells you how to do something, but can never tell you what to do, or why to do it. For that you need philosophy, much more than philosophy of science.
However, I guess non-technical/engineering degrees have different results.
By the time you are in a financially stable situation, old habits are ingrained.
Because nobody could read and copies the bible were sparse the catholic church was the single source of word of god. The printing press changed things. The bible became widespread and people read the bible for themselves. With that came an important shift, that one's own interpretation of a text was a valid interpretation. Tons of important literary works became widespread. The middle class valued literacy and saw it as a ticket to wealth and began teaching their kids to read and write competitively at younger and younger ages. They invented the education system we have today; the entire idea of a sequential learning system based around books, and becoming an adult when you could read at a certain level (as opposed to the catholic belief that you were an adult when you were old enough to fight at age ten), that was also the enlightenment and romantic period. Protestantism came about because people valued individual interpretations of the bible, which the catholic church had serious qualms with since that was their entire claim to authority...
So the fact that you grew up in a family which valued literacy, which sent you to a university where you spent four years reading books, and then came out of that with your own valid and rational ideas about what those texts mean, and your rite of passage into adulthood is based on your ability to read and write at a university level, that is still very much framed in the values of the enlightenment.
A good book for you to check out is Rodney Stark's "For the Glory of God", written by a secular historian debunking much of the above narrative.
The fact that many educated today take your narrative for unarguable fact also illustrates the problem. The 'enlightenment' narrative is ironically very self limiting.
As far as protestantism and the printing press being invented prior to the enlightenment, yeah. Without widespread use of both you don't get the enlightenment for reasons I mentioned previously. And neither were really new ideas, either. Ancient greece had the printing press, high rates of literacy and a belief in interpreting texts for yourself, but these ideas were lost during the dark ages.
At any rate, we are obviously referring to different things by the term 'enlightenment', definitely different historical epochs.
Based on what you're saying here, are you arguing for a kind of Scholasticism?
Finally, your criticism of a "radically egalitarian" view is somewhat perplexing to me. Would you mind expanding on that point?
And yes, a teleological philosophy like scholasticism makes the most sense if we are trying to figure out the best way to live. Otherwise we just end up with the specious word game philosophy that everyone hates
My experience of interacting with older, more stable 'intellectuals' who do not have a broad background of reading is an acquired indolence towards foreign ideas and older ideas, subsisting on a shallow 'tolerance' as a sign of their broad mindedness.
1. not going to find a good economic deal
2. not going to get any true value
3. not going to have fun
You're better to take a 2-year programming diploma or go into the trades if you want the highest short/midterm pay-off.
If you're playing a longer term strategic game and actually enjoy learning for the sake of growing (i.e. you do it on your own regardless) look at the career-long pay-off.
Now, if all companies made it part of their "offer" to train people "enough" (say, 1d/w), then you'd expect all the workforce to become more qualified, better in time and in age.
You could actually pay/recover the "investment" of training the equivalent of university/grad/postgrad/etc for all employees simply by the fact that everyone else would do it too (and it would certainly lower wages a bit for the early years of these newcomers, since they'd skip the idling 20's decade of many youths currently).
I don't know, it's clearly not something you could do overnight or even over a generation, it's likely to be deeper and more 'revolutionary' than that in people's minds; but mathematically, economically, it tends to make sense (we've done that for years with "guilds" and "companions" in the medieval ages and actually since forever in some trades).
I think the current mainstream / massive education (take hundreds, thousands, and grad them each year) is just the result / need of industrialization (requiring an educated workforce), a novelty of the late 19th and 20th century.
I think the cursor is moving and the explosion of alternative means and times/ages of learning is a strong indicator of that.
Some places require spending a certain percentage of payroll on training by law, failing which the employer must pay the difference to a government training fund. I live in the Canadian province of Quebec which is such a place. I think at least one major tech city in the US has a similar law, though I'm not sure.
Q: What happens if we provide education and training to our employees and they leave?
A: Well, what happens if we don't, and they stay?
Growing a company's knowledge and skill base is an investment, not charity. Companies that don't do it reap exactly what they sow -- they're the same companies whose CEOs will otherwise loudly complain about how difficult it is to find skilled employees, especially at a senior level, and decry the terrible state of universities. As if everyone else just stumbles upon people with twenty years of experience in a particular niche on the street.
Yes, some people will leave. The smart thing to do is to convince as many of them to stay and to stay on good terms with those who leave. Keeping a loyal employee base whose knowledge and skills remain largely unchanged after joining the company doesn't provide any kind of meaningful growth.
On a few educational systems, you have dedicated curriculums for technicians and artisans/craftmen, with theory in classes, practice in labs and internship on the job.
Even if learning on the job is a big part (roughly half of the training), it's not purely that.
The key (which I think you're making) is that once you're an apprentice you learn by doing and get paid.
For instance, my friend was a mechanical engineer at Total, and after 3 years left to go study ML 1 year. Not only was the school all paid for by this fund, but the now student got a decent share of his salary everymonth. Best of best, he can go work for another company after his degree without any problem.
I thought that was a great idea. Although in practice, not every one is eligible to this particular program. I forgot how its called, CIFRE maybe
this particular degree isnt paid for by the government like the rest french education. Although it is taught at a very famous engineering school in france
The thing you are thinking about is probably Compte Personnel de Formation (CPF) which was called Droit Individual à la Formation (DIF) a few years back.
Note that this is not some incredible sum of money, however a year in a classic STEM university costs a few hundred euros in France, so what you get from CPF is quite enough.
For five years of engineering school I spend about 3500 euros which included insurance. A full pension with private room costs a bit more than 300 euros per month. The difference with US education prices is just staggering.
When corporations start sponsoring degrees you will see a lot less "fluff" in those forms of higher education.
It's also a clever way for tech companies to externalize a lot of their R&D costs—because academic labs often rely on private grant funding more than the state, corporations can determine research priorities by extending grants, and then have the costs of that research partially subsidized by tuition-paying students!
This is an interesting talk on the subject. Haven't listened to it in a while but it really shaped my thinking about the university while I was a student: https://wearemany.org/a/2014/06/fall-of-faculty
1. Generally, education leads to productivity. 2. College education is typically tranferrable -- learning CS topics improves worker productivity regardless of who they work for. 3. Education is sticky to the individual; it can't be repo'd (or confiscated by fascists / nazis). 4. Employers generally try to match wages to productivity. Even if they pay as little as possible, in a fair market they will have to be prepared to bid close to worker productivity or lose out to a competitor who will.
Given these factors, I think the status quo is going to do a better job optimizing things than requiring employers to pay for training. When deciding who should bear the costs of training, it's appropriate to remember who the benefits accrue to. It's not only fair, but also ensures the incentives are aligned. When the topic is general and tranferable, the benefits of training largely accrue to the trainee.
Which is why I'm sitting in a training class about how our software works and code review culture, and not one about Python or Go.
I thought this was a new battery technology and had to google it.
https://hr.toolbox.com/articles/hr-hipos-identifying-hipos-h...
Companies should encourage people to learn stuff on the job, because no tutorials or classes can really teach you the day to day struggles.
Nevertheless he should give a more encouraging answer as a team lead. And if you still want to make the change (looks like you are not very interested in it too), maybe just ask to spend a little more time on server stuffs and see what's the reply.
It's all negotiation and sometimes it's difficult to ask the right question.
When somebody says that to you, your responsibility is to either a) change jobs or b) learn during work time anyway.
Imho it's about 50/50, company should not expect employees getting new skills only on their own time and the employee should not expect learning only from 9 to 5.
Technically searching through the internet for examples, is already learning.
Edit: clarified schedule to work schedule.
I actively picked up stories I wasn't familiar with, just to learn it. Other engineers pick up stories because they're already familiar with the subject, that's not how you learn new things.
--
"Get your brokers license"
ok provide me with a course
"well, we've got a limited number of people that can do it at a time"
ok so make the material available to me for learning at home and I'll do it on my own time
"We appreciate your feedback. You could purchase a course on your own, with your own money, and study on your own at home"
-- This is an actual event, with the person parroting the 'we value degrees' line being the head of HR for our opco at the time, on the phone with me cutting me off every time I started to say anything, with me at one point saying a vulgarity and "would you give me some respect and allow me to finish a sentence":
applies to position above me that finally opened up and interviews
"We just wanted to let you know we went with another candidate, we suggest you get a bachelors degree and then an MBA if you'd like to move up"
at entry level position for 13 and a half years I don't want a degree, what sort of a degree
"Oh business is good"
How would a business degree benefit me in any role in this office, at all?
"We prioritize education"
I don't want to take on tens of thousands of dollars of debt to make an extra 10% so that would mean I could pay the loans off in a decade from the raise
"With tuition reimbursement you could get a degree in as little as 6 years"
In 6 years I'll be 40 and you'll give the job to a 22 year old that's been here 6 months, why don't you create some sort of system for advancement internally that is equal to degree work
"We prioritize education, if you want to move up you should really work on a 4 year degree and then an MBA"
Why
"We prioritize education, if you want to move up you should really..."
That's classism
"We prioritize..."
I don't want your defacto dues card, I guess I'll just keep working for people above me that have been at the company a fraction of the time that I have because they have a 4-year degree in Artisan Baking Social Media Marketing with their minor in Mayan Whittling from 2000BC to 1990BC.
--
Sigh. There isn't even a degree in what I do, and the university my employer has partnered with only has one degree you can do, some random super-specific business degree that has literally nothing to do with what I do.
Even if I wanted to get a degree, by the time I do 8 hours of this work my brain is shot. Processing large amounts of data, with all sorts of legal and fiscal ramifications, while being under pressure to not only meet but exceed production... yeah do that all day and the last thing you want to do is go home and study/research/write papers that have to be in some asinine format scheme or you fail outright.
Then even if they did come up with some way to teach us on the job, it wouldn't even work because due to the nature of the job if someone leaves it can take 6-12 months to replace their processing capacity and business volume grows so we're always chugging along with no downtime and we hot bunk desks so when your shift is up, someone else will be along in a couple of hours to sit down and keep going.
Lots of companies blow smoke about a lot of shit, especially after a merger. What they actually value is what they're willing to invest in. If an initiative has no funding, it's not an initiative.
It's always couched in some doublespeak about "ownership". Trust me, if I were owner or part-owner in the enterprise, I wouldn't mind. But I'm not.
People complain about entitlement attitudes among the young. They need to look at employers if they really want to see entitlement.
It sounds like your boss feels entitled to your time without taking an ownership stake in your professional development.
The hiring manager also spent some time whining about the state of the developer market and said they couldn't afford the higher end of the range they had posted on their website.
Because both of us were interested in the other part of the work, we offered a solution that we could spend some time teaching each other. At the end, both of us would know both parts of the work, and be able to substitute for each other during the vacation.
"No, that would be a waste of time."
I spent a bunch of years in the USAR doing basic computer stuff, both in training, and then learning from others as I went along. I was the US Army version of a general purpose "IT" fellow. Once I got out of the military and I interviewed at a few private sector jobs I realized I was not overly well equipped for IT, but if I could show I wanted to learn they would usually bring me on-board. I did desktop support for ~2 years before I landed a veryyyy basic SysAdmin job. I did that for a year, and rolled it into a real SysAdmin job. Did that for a year and turned it into a Server Engineer job (Super sysadmin?) I did that for ~2 years....you can kind of see where this is going.
I've been out of the military for ~10 years now, and every job I've had has been about learning, (and then learning that my current job wasn't going to pay me what I was actually worth) while trying something new. I got paid to "learn" every step of the way. It just wasn't a direct "learn X and you get Y" process, but even then, most companies offered some level of college reimbursement (I never really did that college thing) or will pay for certifications/training, and really, IT is one of the few fields I can think of where all of the knowledge needed to do it is open, accessible, and available to everyone.
Of course, I'm not even in my thirties, so I can afford to optimise for learning now to have the compound interest pay off for it when I'm older.
The problem, in my experience, is when they bring in non-technical managers in, preferably from completely other environments (production / manufacturing / industry).
Luckily it's getting more rare these days, but I've seen managers that were hired on the basis "a good manager is a good manager, no mater where he/she comes from", only to manage production floor like a factory.
Maybe this is why programming interviews are infamous for arbitrary puzzles: the more unexpected and weird, the more the interview tests adaptability rather than current skill.
Then, that policy, which is a boring dystopia in and of itself, gets applied to other individual contributors "to make things fair". I've seen this in more than one customer-service focused company (though thankfully avoided being in the category).
We have a policy of "Chargeable work always comes first but if you've got nothing to do go learn something, we'll call you when something comes in"
This has lead to times before where we go dead around the same time every year and you spend 2 months being paid to independently upskill. Come the busy November-February period its really obvious who spent their time wisely and who goofed off.
I wish that was ever the case with me! One of the downsides of being part of a very small team.. there is always too much to do. But it is important to take advantage of any times where it's a little less crazy than others to continue to learn new stuff.
This means by July/August its a mad scrap to find work.
At one point I was in a reading group on Quantum Computing (we were working through some classic text book). I eventually stopped since I was bad at making time to do the exercises.
(Side note: I'm on a mission to spread the power of coaching by making it easier to find the right coach: https://uplevel.coach/ Happy to chat with anyone interested in learning more!)
You seem to have jumped to a conclusion but I don't think this has anything to do with being high performer or not.
I've joined my current company two years ago. We are small (but constantly growing) company - about 10 programmers at the moment. 10 separate programmers, lack of notion of any "team". Time (and money) lost on problems arising from that fact is XXX% or even XXXX% per project.
The most important thing about learning is not accumulation of knowledge by individual, but accumulation of knowlege by group, making knowledge common, therfore creating higher level being called "team".
I recently did a python project for a customer where I was very open about my limited python skills and the fact I hadn't really used it in over a decade. But I got them to pay for me because I had other skills that they needed (building search backends using Elasticsearch). In the end, I brushed up my python skills on the job and had a happy customer. It wasn't a big deal but I definitely spent some billable time googling the basics of using Python (I literally had to google the syntax for e.g. for loops, lambdas functions, and a few other things).
I would argue my ability to learn and adapt is actually what makes me valuable. I can wrap my head around complex tech stacks, new languages, etc. while applying skills I already have.
I figured this would be great in a number of ways -- developer deepens their knowledge of some topic, possibly even has fun, practices their communication skills by sharing with others, and the entire team learns something. Although the idea was technically backed by management, it didn't really catch on. I think the problem was that the short term opportunity costs were too high when everything was on fire (which was often).
[1] 2-3 days max, probably.
[2] "Short" is the key word here.
That’s such a sad way of thinking but pretty common. In addition a lot of people seem to be thinking that if not everything is on fire all the time they are moving too slowly.
Fires keep you on edge, show you what’s actually important, and help trim fat. But without long period of calm in between, I can’t consolidate what I’ve learned, nor build upon that wealth.
Quite like endurance training, actually.
The 5K can be used for training, conference and travel tickets etc etc.
This is in Norway so everything is mostly nice all the time, but to be honest it is the first time I've had anything like this. Feels awesome.
I wouldn't knowingly join an employer that pigeonholes anyone across their organization. I'd also propose that a role with little or no horizontal or vertical professional mobility is probably a good candidate for automation and a human shouldn't be subject to it for longer than necessary anyhow.
If you're working at a factory, the time you spend to sharpen the saw, so you can continue to work, is paid and no one is questioning that. Also, factory workers are not learning how to use new tools at home. They get the training paid by the company and that is normal.
So why would the learning on the job in the computer industry, as a way to sharpen your skills, be treated any different and (I dare to say) almost be stigmatized in some places.
The Silicon Valley has made an industry in a way out of 'cheating' by encouraging super long hours far beyond normal labour requirements. As a personal choice, this is fine of course ... but it's never just personal or localised because it 'forces' everyone else to go to that level 'or die'.
I wonder if it might require legislation i.e. '3 weeks training / learning'. Maybe better for the powers that be simply to put pressure on.
My methods for avoiding this are to have a core set of criteria that is minimalized. It widens the possible tool list and makes it harder to get caught up in minutiae. Then, I have found that actually just spinning up each set of tooling in testing to find real world implementation issues first-hand is a great first-gate narrower.
This is just a particular subset of learning at work though, so in general what I would say is learn how to get better at learning in general. Learning at work and elsewhere will get better if you do.
I used to have second thoughts about it, but after some time I just thought fuck it, other people spend this time scrolling Facebook on their phones or whatever, there is no reason to feel guilty about it. Since I started doing it, nobody made a problem of it.
Yeah not gonna lie my job is lousy compared to most people here.
Instead if you need new skills or want to advance your current skills my recommendation is to write an original application that solves some problem. Then you are forced to make original decisions and own the resulting consequences under risk of failure.
I bookmarked the Rust book and started to learn the language in order to keep me stimulated. I also read a lot of Wikipedia articles on older computer scientists because I love history. Overall a good experience, but definitely would have liked a more engaging job overall.
Then when it comes to the job, they don't tell you to learn specifically, but subconsciously they do know this and as a consequence rather judge on the quality of your work than "looking over your shoulder".
Of course, it's also cheaper to hire younger people.
Where was I to learn? On whose dollar? Multiple clients need me to learn the same thing? Who takes the hit?
In the end the system is setup to pressure me into taking the hit out of my own time. I consider this one of the great evils of consulting companies.
A lot of professional musicians (e.g. permanent orchestra members) are definitely paid to practice scales. A lot of instruments even require training specific muscles to manage playing at all.
For gig-musicians (of any kind), the practice must be factored into the gig payment.
I'd say your analogy is appropriate, but for the opposite point. I don't see any reason for programmers to keep their relevant work skills up to date for free.
I'm imagining the type of week that Bill Gates and John Carmack take.
Nice thought, but if my wife can see me, that week will become "fix stuff around the house leave" or "visit her parents and don't read anything leave". If my coworkers can see me, that week becomes "fix these bugs for me leave". They'd have to fly me somewhere for that to work.
This quote MADE the article for me. I've been saying something similar for a long time now.
I personally love to learn. It’s what I do best. If I don’t do it I get bored.
I introduced a "interests & responsibilities" matrix, supposed to align team members skills with their interests.
Goal was to: * ensure all needed skills are covered within the team * foster collaboration between knowledgeable persons and those wanting to gain more expertise.
But it's quite hard to use if you don't tie it to the team processes. It has to be visible and integrated to the team's workflow.
I have quit a job because it felt like my day devolved into a glorified "copy-paste monkey". We had a basic template we used for clients, we just did a bit of copy-paste-modify crap to it, and then gave it back to them. I rarely if ever learned anything, but it was technically development at some level.
So I'm kind of where I was when I was 20 except now I have a whole lot more skills and experiences. I'm not actually sure what I'm going to do long term. All I really know is I was headed down the wrong path and I've been lying to myself for far too long.
But actually I do kind of know. The only thing that really makes sense is some kind of tech entrepreneurship. I mean I know success isn't guaranteed but it comes down to kind of a deep question which is what do you want to do with your life. Sitting behind a desk coding what someone else tells me to all day long is simply not going to get me where I want to be in life. So I kind of jumped off the cliff hoping I can learn to fly on the way down.
I totally might fail so don't follow my lead too much.
I will tell you that since I've been working on cars all day I'm so much physically stronger than I was as a coder and it feels fantastic. It isn't really long-term because technically you're not allowed to buy a car with the intention of fixing and reselling it unless you're a dealer but succeeding and failing based on my own decisions feels so much better then being cemented underneath someone else in a corporate hierarchy.
I was a developer for about 10 years and even though I could get another development job I'd rather crawl through the mud and find a new way forward before I get too old and it's too late.
I went the opposite direction, leaving a comfortable but soul-sucking job in a totally different industry to transition into programming. It was rough for a few years as I was struggling to build up my experience and make enough money to get by on, but now I have a great job that I actually enjoy going to.
I have it great; I make a 6-fig salary, I work remote full time, and never more than 40 hours. I feel guilty for complaining, but the work is just damn boring. I would rather be a janitor than code anymore. Some days I sit and just stare at my screen for an hour depressed as hell wondering how I'm going to get out of this and still provide for my family. We have chronic medical issues, so the insurance alone makes it hard to escape. The great recession also left me with severe anxiety about being broke and unemployed.
I recently rebuilt a manual transmission with minimal prior experience working on cars and it made me feel so damn good afterwards, so I really respect your decision to work on cars. I agree, it feels great to do manual labor! I spend my free time doing manual work around the house like yard work or building things like a green-house. I'm learning a lot and having a great time, but when I sit down at the desk it makes me even more depressed about coding.
I hope it all works out for you.
Jesus. Yeah, this entire thing hits home. I think a lot of mid- to late-career software folks are in this position of hating the work, feeling super guilty for hating the work, and not seeing a way out that won't risk their family's financial security.
My best job ever was a Summer job helping manage a campground. Outdoors, some social interaction, enough down time to read a few pages of a novel or do some pushups here and there, a bit of moving heavy things around, nothing whatsoever to think about when you leave for the day. If something like that paid 75% as much comp + bennies as my WFH software job and had similar future job prospects, I'd quit effective today and go do that. And probably cancel my home Internet service, sell my computers, and downgrade to a dumbphone. It's all just so incredibly low-value, once the shininess wears off.
(I say, as someone who is currently staying full-time employed, paused on entrepreneurship, and trying, and often failing, to be better in my work relationships)
That said, best of luck to you. You’re clearly self aware, which will see you through a lot.
Good for you in a manner speaking. Most people keep 'lying' to themselves their whole lives, not just about their sorry corporate jobs but life in general ( things like marriage, children etc.)
I really hope you succeed in the long run. I'm cheering for you.
Today, that’s clearly out of fashion. Nobody seems to maintain anything and the next group wants to reimplement much of the same function in the new flavor of the month. Anecdotally, it does not all look more stable, bug free and performant but it does seem more fun.
/okboomer
Is it usually the case to have product teams documenting clear business cases to explain why something is important?