Had some conversations recently and it got me thinking about the knowledge and experience I have gained over the years by constantly learning and changing what I thought was a better approach to creating software. How do new graduates in computer science learn to program effectively? Paul Beckford said something to me the other day and I guess its quite obvious if you take the time to stop and think. People who care about what they do will find the time to invest in their chosen discipline. My current thought process had been centered around values and culture and I think that caring is right in the mix - are they interrelated? I am sure they are - if you come from a culture where people care about one another, your values will reflect it.
So for those out there who do care, there is so much noise, even if you do your due diligence, how do you know what information to trust? Especially when some of the biggest technology players are out there with their sales hats on. Who is going to teach the up and coming new folk? This is why I like the idea of the apprenticeship - in England, this was popular until the late 80's - and emphasized learning your craft from a master who had practiced it for years. While I view this as a great way to learn your chosen craft, there are still problems. As far as I know, the western world in particular does not seem to place much value on any career path where one has to learn on the job for years before being set free to earn a living on their own. Today's emphasis is on immediate returns - to take as much as possible without putting in the effort to learn and care about what you do.
Individual motives and values are really the only thing that will dictate how good someone will be in their chosen profession. Do you care about what you do?
My feeling is that there are few who really know what they're doing, and they tend to just get on with it - because they enjoy it and gain fulfillment from it - that's why I entered software development too.
I face the challenge of getting a number of very capable and enthusiastic developers onto the right path of developing valuable software, when they have little experience of doing so. Can one person succeed in achieving this goal? I don't know the answer, but something leads me to think that if they just follow a simple, tried and trusted formula and they care, then I think its possible. However, its more their choice than mine, I see myself as a catalyst to provide support and encouragement and if they care and want to learn I can be there to help or point them in the direction of someone who can. It is an exercise in futility to assume that 15+ years of experience can just be learned overnight, because my experiences were formed by trial and error, and empirical feedback of good and bad things over many years. Also, I have the advantage of learning many different things over the years that all have their place and helped to load up my arsenal of 'tools' to use as and when needed. This prior context is impossible to shortcut, but is that necessarily a bad thing?