> Babbage considered using number systems other than decimal including binary as well as number bases 3, 4, 5, 12, 16 and 100. He settled for decimal out of engineering efficiency - to reduce the number of moving parts - as well as for their everyday familiarity.
Developers need to get away from the idea that it is the companies responsibility for your career development. You are responsible for your own career development. The company has hired you to do a job and they pay you for doing that job. Do not expect anyone else to invest in you unless it is in their interest.
It is in their interest. You want the best people at their best positions so you can leverage them to make more money. If your company doesn't care about making sure people are empowered to make the business money then I'd be worried about how they're going to pay your salary in the future.
If empowering and training is in their interest then the company (if it is smart) will provide it. The problem is that because you can leave at anytime the ideal investment for the company is likely to be less than what is ideal for you.
If they provide less than ideal for you, then you leave. Providing less than ideal is less than ideal for them, unless they don't care about losing you, in which case you probably don't want to be there anyway.
Out of the four jobs which I have voluntarily chosen to leave, three of my four resignations were because the employer stopped giving me meaningful work that prevented skill atrophy in my primary areas.
Preventing this skill atrophy on my own time, such as with side projects, is (a) ridiculous and (b) a physical impossibility because of the burden of working hours and exhaustion demanded by the employers I had at the time.
It's absolutely unreasonable to say that someone must find a way, outside of work hours, to effectively perform an entire second job's worth of practice and development, because their job isn't giving them work that exercises them.
It's like hiring a super model, asking him or her to sit on a sofa eating candy bars all day as the work you are paying them for, but then telling them to use their personal time to remain fit for supermodeling. It's a patently absurd idea.
You're free to say the words "developers should take control of their own career development" if you want to, it's just absurd. I mean, in once sense of course you're in control. Even if the career development happens at work, it's you doing it, so you (by definition) are in control.
But you aren't just saying "you're in control" in the obvious, tautological sense. You're going further to say that you should place no expectations whatsoever upon your employer to match up real-world business items to your skill set in any way that is related to appropriateness or which factors in your goals. That's the absurd part. You're saying "don't expect your manager to actually manage anything ... just resign yourself to the idea that they will randomly throw undifferentiated business concerns at you like a dartboard."
Real management acts as a double-sided adapter, with bespoke, unpleasant business realities on one side, and well-fitting tasks that are matched up to employees on the other side. Converting bespoke, unpleasant business needs into appropriate, on-topic tasks for specialized employees is managing. Saying an employee shouldn't care about this, to me, is among the worst advice I can think of. This should be one of the primary things any employee cares about.
Because the one thing that absolutely won't happen, simply by physical limits of exhaustion and life responsibilities, is for you to personally cultivate or exercise those skills during non-work time. Yeah, maybe you can read a tech book here and there. Maybe you go to a conference. Maybe you occasionally do some open-source work. And all of that put together amounts to maybe 5% of what's actually necessary to stay sharp and competitive in the employment market.
Instead, you absolutely should hold the employer accountable. They are asking you to bear an insane opportunity cost of lost time whenever you're working for them -- so much lost time in fact that if that time is not actively dedicated to building competitive skills, you will quickly become unemployable and you'll be so atrophied that you'll have no option but to stay at that employer because no one else will want the shell-of-a-former-expert your current job will have morphed you into.
There are a lot of good reasons to quit a job. You might not be paid the amount you prefer. You might not receive benefits that enable the life you prefer. And you might not be asked to perform tasks that cause you grow in skill, solve challenges, or learn new things in the way you prefer.
For me, these are not tradeoff-able. An employer either satisfies all of them adequately, or else it's not really an employer but just a thing wasting my time that I quit from.
For me, these are not tradeoff-able. An employer either satisfies all of them adequately, or else it's not really an employer but just a thing wasting my time that I quit from.
I think you might be missing that you have a total compensation and any costs to the company comes out of your salary. You could get lucky and the cost of the company providing you training and new skills is less than its value to you, but this normally doesn’t happen.
Think about it another way - if you lose a day a week of productive work because of training that means your employer is paying you for 5 days and only getting 4 days of work from you. This reduces your value to the company and hence how much they are willing to pay you. All things being equal you can choose to take a job at lower pay with more training or higher pay with less company provided training.
The things you depict as "training" ought to be business-value-additive tasks that happen to be both my daily work and also tasks that facilitate the career growth I desire. If the business can't do that, then they hired me for the wrong reasons. If they can't fix it, but are happy with my performance on tasks not related to my goals, they may be disappointed when I leave, and hopefully learn that it's necessary to structurally build into the concept of hiring someone the need to empower their personal goal achievement, just as their labor empowers business success.
Also, there is no reason why compensation must be conserved when decomposed into some traditional monetary part and some part from goal achievement. It could just be that I become more costly to employ as time goes on while at the same time I never reach a degree of costliness that motivates my employer to end the relationship. In fact, that seems obvious and surely something businesses plan for when investing in a long-term hire.
Also, my value to the company is not only my short-term labor, but also my future stream of labor. If they want me to stick around such that they profit from that future stream, they may have to do things that reduce my short-term output. It all comes down to what is their discount factor.
Expecting zero support in this regard is the same as assuming a hyperbolic discount function (or an extremely low probability that you'll choose to continue with that firm).
Finally, some of this is simply non-negotiable biology. Self-Determination Theory and theories of heteronomous vs autonomous goal satisfaction are just biologically at odds with what you describe. Wise companies would factor this in rather than trying to shoehorn humans into non-human situations and require them to attempt to sublimate away the basic need or drive.
Yes there is some friction in the process of wage determination, but in aggregate anything that reduces your productivity will reduce your income.
I think we might be talking past each other a little. It is not that companies should not provide training (most good ones do as it is in their interest for many reasons), but that each person should take responsibility for their own career development and not expect this is something provided by their employer. Apart from the fact that any employer is unlikely to invest the ideal amount in your development (since you can walk out the door), the training provided by the company reflects the skills they want you to have, not the ones that you might most want to have.
Letting anyone else set your training almost certainly is sub-optimal for you. Developers need to get out of the mindset that it is the company that grows them and into the mindset that it is their own responsibility. Sure you might take advantage of the opportunities offered by the company, but don’t expect that someone else will be responsible.
> the training provided by the company reflects the skills they want you to have, not the ones that you might most want to have.
This usually means you should leave if they won't fix it. They either bait-and-switched you into a job different from the job you signed up for, or else they did not understand their own needs and hired a wrong-fitting person.
I agree that developers are responsible for their own growth -- in the sense that they should quit jobs that are not imparting experience to them that helps them to reach their goals.
They should not, however, work that demanding yet not-goal-empowering job and also perform overly burdensome self-study, second jobs, night classes, etc., to make up the gap created by their employer's lack of ability or willingness to plan or manage correctly.
> but that each person should take responsibility for their own career development
> not expect this is something provided by their employer
The best way to take responsibility for your career development is to insist it is provided by your employer and to find a better employer if/when that's not the case.
I only have X hours of high productivity a week. I need the high productivity hours to effectively learn but they are also the hours that really justify my high income.
Think about it another way - if you lose a day a week of productive work because of training that means your employer is paying you for 5 days and only getting 4 days of work from you.
You can look at it in different way.
If company buys a car, it starts loosing its value. There is certain proportion you can write off each year and finally you can write off the car completely.
You are in fact suggesting the same to be applied to human beings.
I think that human beings can not afford that, they have to be as new also after 5 years of work, or even 10 and more.
This does not happen by itself, one has to put time and money into it and this should be fairly compensated.
There are two ways for it - it happens as part of work and is therefore compensated as salary, or it happens after regular work hours and is compensated as overtime.
There is no other way how it would be fair to the employee. They are not cars that can be used and thrown away.
That's like saying developers need to get away from the idea that it is the company's responsibility to pay them salary, offer retirement benefits, provide them shelter from the weather while working, etc.
The company may not have any literal obligation to provide such things, and no one cares. If they don't provide such things, reject them, move on, life's too short.
No it is the companies responsibility to pay you a salary (and any other conditions negotiated or legislated) in return for your labor.
Of course companies invest some resources in career development as part of their salary package, but it is likely to be less than what is ideal for you as an individual since you can walk out the door at anytime. Every developer needs to take control of their own career development because they gain the most out any investment.
This does not mean that you always take the highest salary, but you need to look at training and career development as an extra that is part of your overall salary package. In some cases the training offered to you is more valuable to you than it costs the company to provide and in other cases it is better to take the cash and invest it yourself. The important thing is take control of your own career development and don’t expect it to be handed to you by someone else.
Yes this is one of the difficulties of management. You need to balance the desires of the employees with the needs of the company and try to achieve the right balance. It is not easy.
Whoa. Slow down. They have only confirmed replacing their custom configuration language with JavaScript and hinted at an official JavaScript module [1], as opposed to the existing third-party module [2].
Bundling a Node.js-like JavaScript api layer with their official module would be a logical next step, because nginx is an event loop anyway. But, I highly doubt JavaScript will be anywhere near the Nginx core.
I have an alternative, and potentially equally silly, hypothesis.
Many programmers are young and have just enough money, time, and knowledge to get into trouble.
This is compounded by the growth rate of the programming field. New, young, programmers jump into the industry every year. So, a young programmer can potentially encounter entire teams of equally young programmers, creating a school like atmosphere of aggression and dominance. (Which is sometimes taken advantage of by employers.)
As silly as your theory is, I have anecdotal support for it based on some of the places I worked at. The younger the crowd, the stronger the "new, assert technology X" superiority vibe is.
Where I work now, no one cares and I get questioned on using something that is less than 3 years old. xD
> The younger the crowd, the stronger the "new, assert technology X" superiority vibe is.
This could also be due to simple inexperience. The first time you come across something that seems amazing, it's easy to make the leap from "amazing" to "perfect" and become a zealot about it.
Then you live with the amazing thing for a while and discover that it actually has flaws that weren't obvious at first glance. Then you go through this cycle a few times and realize that everything has flaws, and that the art is learning how to identify the things whose flaws impact what you want to do the least, rather than being able to find the One Perfect Thing that solves every problem cleanly. And you come to value the tools that tell you their flaws and limitations up front over those that try to hide them behind blustery assertions of perfection.
But by the time you realize all that stuff, you're not young anymore :-D
My silly theory is that this is economically driven- why compete with senior devs in technology x, when you can choose new tech Y and be just as senior as everyone else to managers and recruiters?
I call those tests the airplane test. say you need to hire an airplane designer and you know d*ck all about aircraft design. You have two candidates both that tell you they have a new design being flow this week. So you go and watch, Candidate A's aircraft trundles down the runway and then crashes and burns. Candidate B's takes to the air and then lands. Candidate A could be a smooth talker and Candidate B could sound like a stuttering loon but B is the choice.
It's been said that the population of programmers doubles every ~5 to 10 years. And, that loosely correlates to the hype cycle of "hot technologies".
I don't think it's possible to avoid a pop culture with that many young and inexperienced programmers, especially with a cultural emphasis on self-training over mentoring.
http://www.computerhistory.org/babbage/engines/